修改患者档案
BIN
frontend/src/renderer/src/assets/new/bi.png
Normal file
|
After Width: | Height: | Size: 492 B |
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g transform="matrix(1 0 0 1 -301 -488 )">
|
|
||||||
<path d="M 1.28597284696696 2.56561085477938 L 1.28597284696696 11.4343891452206 L 5.08687783547794 11.4343891452206 L 5.08687783547794 12.7013574586397 L 0 12.7013574586397 L 0 1.29864254136032 L 5.08687783547794 1.29864254136032 L 5.08687783547794 2.56561085477938 L 1.28597284696696 2.56561085477938 Z M 8.25429863511033 12.7013574586397 L 8.25429863511033 11.4343891452206 L 9.52126696461403 11.4343891452206 L 9.52126696461403 12.7013574586397 L 8.25429863511033 12.7013574586397 Z M 10.1547511374081 12.7013574586397 L 10.1547511374081 11.4343891452206 L 11.4217194508273 11.4343891452206 L 11.4217194508273 12.7013574586397 L 10.1547511374081 12.7013574586397 Z M 13.322171953125 12.7013574586397 L 12.0552036236213 12.7013574586397 L 12.0552036236213 11.4343891452206 L 13.322171953125 11.4343891452206 L 13.322171953125 12.7013574586397 Z M 13.322171953125 8.2669683295037 L 12.0552036236213 8.2669683295037 L 12.0552036236213 7 L 13.322171953125 7 L 13.322171953125 8.2669683295037 Z M 13.322171953125 10.1674208157169 L 12.0552036236213 10.1674208157169 L 12.0552036236213 8.90045248621323 L 13.322171953125 8.90045248621323 L 13.322171953125 10.1674208157169 Z M 13.322171953125 6.36651584329047 L 12.0552036236213 6.36651584329047 L 12.0552036236213 5.09954751378677 L 13.322171953125 5.09954751378677 L 13.322171953125 6.36651584329047 Z M 13.322171953125 4.4660633409926 L 12.0552036236213 4.4660633409926 L 12.0552036236213 3.19909502757355 L 13.322171953125 3.19909502757355 L 13.322171953125 4.4660633409926 Z M 13.322171953125 2.56561085477938 L 12.0552036236213 2.56561085477938 L 12.0552036236213 1.29864254136032 L 13.322171953125 1.29864254136032 L 13.322171953125 2.56561085477938 Z M 11.4217194508273 1.29864254136032 L 11.4217194508273 2.56561085477938 L 10.1547511374081 2.56561085477938 L 10.1547511374081 1.29864254136032 L 11.4217194508273 1.29864254136032 Z M 9.52126696461403 1.29864254136032 L 9.52126696461403 2.56561085477938 L 8.25429863511033 2.56561085477938 L 8.25429863511033 1.29864254136032 L 9.52126696461403 1.29864254136032 Z M 6.35384614889711 13.9683257881434 L 6.35384614889711 0.0316742118566253 L 7.6208144784008 0.0316742118566253 L 7.6208144784008 13.9683257881434 L 6.35384614889711 13.9683257881434 Z " fill-rule="nonzero" fill="#787878" stroke="none" transform="matrix(1 0 0 1 301 488 )" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
BIN
frontend/src/renderer/src/assets/new/bi2.png
Normal file
|
After Width: | Height: | Size: 407 B |
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g transform="matrix(1 0 0 1 -301 -488 )">
|
|
||||||
<path d="M 1.28597284696696 2.56561085477938 L 1.28597284696696 11.4343891452206 L 5.08687783547794 11.4343891452206 L 5.08687783547794 12.7013574586397 L 0 12.7013574586397 L 0 1.29864254136032 L 5.08687783547794 1.29864254136032 L 5.08687783547794 2.56561085477938 L 1.28597284696696 2.56561085477938 Z M 8.25429863511033 12.7013574586397 L 8.25429863511033 11.4343891452206 L 9.52126696461403 11.4343891452206 L 9.52126696461403 12.7013574586397 L 8.25429863511033 12.7013574586397 Z M 10.1547511374081 12.7013574586397 L 10.1547511374081 11.4343891452206 L 11.4217194508273 11.4343891452206 L 11.4217194508273 12.7013574586397 L 10.1547511374081 12.7013574586397 Z M 13.322171953125 12.7013574586397 L 12.0552036236213 12.7013574586397 L 12.0552036236213 11.4343891452206 L 13.322171953125 11.4343891452206 L 13.322171953125 12.7013574586397 Z M 13.322171953125 8.2669683295037 L 12.0552036236213 8.2669683295037 L 12.0552036236213 7 L 13.322171953125 7 L 13.322171953125 8.2669683295037 Z M 13.322171953125 10.1674208157169 L 12.0552036236213 10.1674208157169 L 12.0552036236213 8.90045248621323 L 13.322171953125 8.90045248621323 L 13.322171953125 10.1674208157169 Z M 13.322171953125 6.36651584329047 L 12.0552036236213 6.36651584329047 L 12.0552036236213 5.09954751378677 L 13.322171953125 5.09954751378677 L 13.322171953125 6.36651584329047 Z M 13.322171953125 4.4660633409926 L 12.0552036236213 4.4660633409926 L 12.0552036236213 3.19909502757355 L 13.322171953125 3.19909502757355 L 13.322171953125 4.4660633409926 Z M 13.322171953125 2.56561085477938 L 12.0552036236213 2.56561085477938 L 12.0552036236213 1.29864254136032 L 13.322171953125 1.29864254136032 L 13.322171953125 2.56561085477938 Z M 11.4217194508273 1.29864254136032 L 11.4217194508273 2.56561085477938 L 10.1547511374081 2.56561085477938 L 10.1547511374081 1.29864254136032 L 11.4217194508273 1.29864254136032 Z M 9.52126696461403 1.29864254136032 L 9.52126696461403 2.56561085477938 L 8.25429863511033 2.56561085477938 L 8.25429863511033 1.29864254136032 L 9.52126696461403 1.29864254136032 Z M 6.35384614889711 13.9683257881434 L 6.35384614889711 0.0316742118566253 L 7.6208144784008 0.0316742118566253 L 7.6208144784008 13.9683257881434 L 6.35384614889711 13.9683257881434 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 301 488 )" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g transform="matrix(1 0 0 1 -408 -488 )">
|
|
||||||
<path d="M 13.9522983870968 3.23185483870968 C 13.9522983870968 2.90415322580645 13.6881048387097 2.63911290322581 13.3604032258065 2.63911290322581 L 9.86153225806447 2.63911290322581 L 9.86153225806447 1.82959677419355 C 9.86153225806447 0.847338709677416 9.06217741935484 0.0479838709677409 8.07991935483869 0.0479838709677409 L 5.70302419354834 0.0479838709677409 C 4.7207661290322 0.0479838709677409 3.92141129032257 0.847338709677416 3.92141129032257 1.82959677419355 L 3.92141129032257 2.63911290322581 L 0.644395161290277 2.63911290322581 C 0.316693548387093 2.63911290322581 0.0516532258063762 2.90415322580645 0.0516532258063762 3.23185483870968 C 0.0516532258063762 3.55955645161291 0.316693548387093 3.82459677419355 0.644395161290277 3.82459677419355 L 1.6147983870967 3.82459677419355 L 1.6147983870967 11.0060887096774 C 1.6147983870967 12.3406048387097 2.70036290322582 13.4253225806452 4.0340322580646 13.4253225806452 L 9.76076612903216 13.4253225806452 C 11.0952822580646 13.4253225806452 12.1800000000001 12.3397580645161 12.1800000000001 11.0060887096774 L 12.1800000000001 3.82459677419355 L 13.3595564516129 3.82459677419355 C 13.6872580645161 3.82459677419355 13.9522983870968 3.55955645161291 13.9522983870968 3.23185483870968 Z M 5.10689516129037 2.63911290322581 L 5.10689516129037 1.82959677419355 C 5.10689516129037 1.50104838709677 5.37447580645153 1.23346774193548 5.70302419354834 1.23346774193548 L 8.08076612903233 1.23346774193548 C 8.40931451612892 1.23346774193548 8.6768951612903 1.50104838709677 8.6768951612903 1.82959677419355 L 8.6768951612903 2.63911290322581 L 5.10689516129037 2.63911290322581 Z M 10.9953629032259 11.0052419354839 C 10.9953629032259 11.6860483870968 10.4415725806452 12.2389919354839 9.7616129032258 12.2389919354839 L 4.034879032258 12.2389919354839 C 3.35407258064515 12.2389919354839 2.80112903225813 11.6852016129032 2.80112903225813 11.0052419354839 L 2.80112903225813 3.82459677419355 L 10.9962096774193 3.82459677419355 L 10.9962096774193 11.0052419354839 Z M 5.89778225806458 6.22604838709677 C 5.89778225806458 5.89834677419356 5.63274193548386 5.63330645161291 5.30504032258068 5.63330645161291 C 4.9773387096775 5.63330645161291 4.71229838709678 5.89834677419356 4.71229838709678 6.22604838709678 L 4.71229838709678 9.85193548387096 C 4.71229838709678 10.1796370967742 4.9773387096775 10.4446774193548 5.30504032258068 10.4446774193548 C 5.63274193548386 10.4446774193548 5.89778225806458 10.1796370967742 5.89778225806458 9.85193548387096 L 5.89778225806458 6.22604838709677 Z M 9.01560483870958 6.22604838709677 C 9.01560483870958 5.89834677419356 8.74971774193546 5.63330645161291 8.42286290322591 5.63330645161291 C 8.09516129032249 5.63330645161291 7.830120967742 5.89834677419356 7.830120967742 6.22604838709678 L 7.830120967742 9.85193548387096 C 7.830120967742 10.1796370967742 8.09516129032249 10.4446774193548 8.42286290322591 10.4446774193548 C 8.75056451612909 10.4446774193548 9.01560483870958 10.1796370967742 9.01560483870958 9.85193548387096 L 9.01560483870958 6.22604838709677 Z " fill-rule="nonzero" fill="#787878" stroke="none" transform="matrix(1 0 0 1 408 488 )" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
BIN
frontend/src/renderer/src/assets/new/del2.png
Normal file
|
After Width: | Height: | Size: 370 B |
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="14px" height="14px" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g transform="matrix(1 0 0 1 -408 -488 )">
|
|
||||||
<path d="M 13.9522983870968 3.23185483870968 C 13.9522983870968 2.90415322580645 13.6881048387097 2.63911290322581 13.3604032258065 2.63911290322581 L 9.86153225806447 2.63911290322581 L 9.86153225806447 1.82959677419355 C 9.86153225806447 0.847338709677416 9.06217741935484 0.0479838709677409 8.07991935483869 0.0479838709677409 L 5.70302419354834 0.0479838709677409 C 4.7207661290322 0.0479838709677409 3.92141129032257 0.847338709677416 3.92141129032257 1.82959677419355 L 3.92141129032257 2.63911290322581 L 0.644395161290277 2.63911290322581 C 0.316693548387093 2.63911290322581 0.0516532258063762 2.90415322580645 0.0516532258063762 3.23185483870968 C 0.0516532258063762 3.55955645161291 0.316693548387093 3.82459677419355 0.644395161290277 3.82459677419355 L 1.6147983870967 3.82459677419355 L 1.6147983870967 11.0060887096774 C 1.6147983870967 12.3406048387097 2.70036290322582 13.4253225806452 4.0340322580646 13.4253225806452 L 9.76076612903216 13.4253225806452 C 11.0952822580646 13.4253225806452 12.1800000000001 12.3397580645161 12.1800000000001 11.0060887096774 L 12.1800000000001 3.82459677419355 L 13.3595564516129 3.82459677419355 C 13.6872580645161 3.82459677419355 13.9522983870968 3.55955645161291 13.9522983870968 3.23185483870968 Z M 5.10689516129037 2.63911290322581 L 5.10689516129037 1.82959677419355 C 5.10689516129037 1.50104838709677 5.37447580645153 1.23346774193548 5.70302419354834 1.23346774193548 L 8.08076612903233 1.23346774193548 C 8.40931451612892 1.23346774193548 8.6768951612903 1.50104838709677 8.6768951612903 1.82959677419355 L 8.6768951612903 2.63911290322581 L 5.10689516129037 2.63911290322581 Z M 10.9953629032259 11.0052419354839 C 10.9953629032259 11.6860483870968 10.4415725806452 12.2389919354839 9.7616129032258 12.2389919354839 L 4.034879032258 12.2389919354839 C 3.35407258064515 12.2389919354839 2.80112903225813 11.6852016129032 2.80112903225813 11.0052419354839 L 2.80112903225813 3.82459677419355 L 10.9962096774193 3.82459677419355 L 10.9962096774193 11.0052419354839 Z M 5.89778225806458 6.22604838709677 C 5.89778225806458 5.89834677419356 5.63274193548386 5.63330645161291 5.30504032258068 5.63330645161291 C 4.9773387096775 5.63330645161291 4.71229838709678 5.89834677419356 4.71229838709678 6.22604838709678 L 4.71229838709678 9.85193548387096 C 4.71229838709678 10.1796370967742 4.9773387096775 10.4446774193548 5.30504032258068 10.4446774193548 C 5.63274193548386 10.4446774193548 5.89778225806458 10.1796370967742 5.89778225806458 9.85193548387096 L 5.89778225806458 6.22604838709677 Z M 9.01560483870958 6.22604838709677 C 9.01560483870958 5.89834677419356 8.74971774193546 5.63330645161291 8.42286290322591 5.63330645161291 C 8.09516129032249 5.63330645161291 7.830120967742 5.89834677419356 7.830120967742 6.22604838709678 L 7.830120967742 9.85193548387096 C 7.830120967742 10.1796370967742 8.09516129032249 10.4446774193548 8.42286290322591 10.4446774193548 C 8.75056451612909 10.4446774193548 9.01560483870958 10.1796370967742 9.01560483870958 9.85193548387096 L 9.01560483870958 6.22604838709677 Z " fill-rule="nonzero" fill="#ffffff" stroke="none" transform="matrix(1 0 0 1 408 488 )" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
BIN
frontend/src/renderer/src/assets/new/del3.png
Normal file
|
After Width: | Height: | Size: 409 B |
BIN
frontend/src/renderer/src/assets/new/leftjiantou.png
Normal file
|
After Width: | Height: | Size: 342 B |
BIN
frontend/src/renderer/src/assets/new/leftjiantou2.png
Normal file
|
After Width: | Height: | Size: 502 B |
BIN
frontend/src/renderer/src/assets/new/rightjiantou.png
Normal file
|
After Width: | Height: | Size: 341 B |
BIN
frontend/src/renderer/src/assets/new/rightjiantou2.png
Normal file
|
After Width: | Height: | Size: 500 B |
BIN
frontend/src/renderer/src/assets/new/save.png
Normal file
|
After Width: | Height: | Size: 361 B |
BIN
frontend/src/renderer/src/assets/new/test.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
@ -216,7 +216,7 @@
|
|||||||
@endChange="endChange"></Detection>
|
@endChange="endChange"></Detection>
|
||||||
</div>
|
</div>
|
||||||
<PatientProfile v-if="isPatientProfile"
|
<PatientProfile v-if="isPatientProfile"
|
||||||
:PatientProfileType="true"
|
:archiveType="false"
|
||||||
:selectedPatient="selectedPatient"
|
:selectedPatient="selectedPatient"
|
||||||
@closePatientProfile="closePatientProfile"/>
|
@closePatientProfile="closePatientProfile"/>
|
||||||
</div>
|
</div>
|
||||||
@ -242,7 +242,7 @@ const patienttotal = ref(0)
|
|||||||
// 响应式数据
|
// 响应式数据
|
||||||
const activeNav = ref('detection')
|
const activeNav = ref('detection')
|
||||||
const searchKeyword = ref('')
|
const searchKeyword = ref('')
|
||||||
const selectedPatient = ref(null)
|
const selectedPatient = ref({})
|
||||||
const patients = ref([])
|
const patients = ref([])
|
||||||
const userInfo = reactive({
|
const userInfo = reactive({
|
||||||
username: '医生',
|
username: '医生',
|
||||||
|
|||||||
@ -413,7 +413,10 @@
|
|||||||
<el-dialog class="historyDialogVisible" v-model="historyDialogVisible" center title="查看档案" width="100%">
|
<el-dialog class="historyDialogVisible" v-model="historyDialogVisible" center title="查看档案" width="100%">
|
||||||
<HistoryDashboard v-if="historyDialogVisible" :patientId="patientId"/>
|
<HistoryDashboard v-if="historyDialogVisible" :patientId="patientId"/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<PatientProfile v-if="historyDialogVisible"
|
||||||
|
:archiveType="true"
|
||||||
|
:selectedPatient="selectedPatient"
|
||||||
|
@closePatientProfile="closePatientProfile"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -2131,7 +2134,9 @@ function closecreatbox(e){
|
|||||||
function handleEditUserInfo(){
|
function handleEditUserInfo(){
|
||||||
isCloseCreat.value = true
|
isCloseCreat.value = true
|
||||||
}
|
}
|
||||||
|
function closePatientProfile(){
|
||||||
|
historyDialogVisible.value =false
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@ -71,15 +71,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-son-display">
|
<div class="patientprofile-son-display">
|
||||||
<el-button v-if="selectedPatient" type="primary"
|
<el-button v-if="selectedPatient" type="primary"
|
||||||
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
:class="selectedData.length == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||||
@click="viewPatientProfile">
|
@click="viewPatientProfile">
|
||||||
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
|
<img v-if="selectedData.length == 2" src="@/assets/new/bi2.svg" alt="" style="margin-right: 8px;">
|
||||||
|
<img v-else src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
|
||||||
报告对比
|
报告对比
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="selectedPatient" type="primary"
|
<el-button v-if="selectedPatient" type="primary"
|
||||||
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
:class="selectedData.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||||
@click="viewPatientProfile">
|
@click="viewPatientProfile">
|
||||||
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
|
<img v-if="selectedData.length>0" src="@/assets/new/del2.svg" alt="" style="margin-right: 8px;">
|
||||||
|
<img v-else src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
|
||||||
删除记录
|
删除记录
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -136,6 +138,8 @@
|
|||||||
<div class="patientprofile-son-text">测试医生:李莉莉</div>
|
<div class="patientprofile-son-text">测试医生:李莉莉</div>
|
||||||
<div class="patientprofile-son-text">就诊时间:2025年10月20日 10:48:23</div>
|
<div class="patientprofile-son-text">就诊时间:2025年10月20日 10:48:23</div>
|
||||||
<div class="patientprofile-son-text">档案ID:25002</div>
|
<div class="patientprofile-son-text">档案ID:25002</div>
|
||||||
|
<div v-if="archiveType == true" class="patientprofile-son-detectiontext">正在检测</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-bottombox">
|
<div class="patientprofile-container-bottombox">
|
||||||
@ -148,20 +152,47 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-button type="primary"
|
<el-button type="primary"
|
||||||
class="button-width70"
|
class="button-width70"
|
||||||
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
:class="checkboxGroup.length == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||||
@click="viewPatientProfile">
|
@click="viewPatientProfile">
|
||||||
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
|
<img v-if="checkboxGroup.length == 2" src="@/assets/new/bi2.png" alt="" style="margin-right: 8px;">
|
||||||
|
<img v-else src="@/assets/new/bi.png" alt="" style="margin-right: 8px;">
|
||||||
查看
|
查看
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button class="button-width70" type="primary"
|
<el-button class="button-width70" type="primary"
|
||||||
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
:class="checkboxGroup.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||||
@click="viewPatientProfile">
|
@click="viewPatientProfile">
|
||||||
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
|
<img v-if="checkboxGroup.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;">
|
||||||
|
<img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-databg"></div>
|
<div class="patientprofile-container-databg">
|
||||||
|
<div class="patientprofile-arrowbox">
|
||||||
|
<div class="leftjiantou" @click="handleUpward"></div>
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-imgbgbox">
|
||||||
|
<el-checkbox-group v-model="checkboxGroup" size="large" @change="selectedChange" >
|
||||||
|
<div v-for="(item, index) in useImgList" :key="index"
|
||||||
|
class="patientprofile-imgbox">
|
||||||
|
<div class="patientprofile-imgactive">
|
||||||
|
<img src="@/assets/new/test.png" alt="">
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-imgtextbox">
|
||||||
|
<el-checkbox
|
||||||
|
:value="item.id" size="large" style="display:flex; align-items: center; justify-content: space-between">
|
||||||
|
<div>{{ item.name }}</div>
|
||||||
|
<span>2025-05-12 12:12:12</span>
|
||||||
|
</el-checkbox>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-arrowbox">
|
||||||
|
<div class="rightjiantou" @click="handleNext"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-video">
|
<div class="patientprofile-container-video">
|
||||||
<div class="patientprofile-container-data-displaycup">
|
<div class="patientprofile-container-data-displaycup">
|
||||||
@ -170,13 +201,39 @@
|
|||||||
<div class="patientprofile-container-data-title">检测视频</div>
|
<div class="patientprofile-container-data-title">检测视频</div>
|
||||||
</div>
|
</div>
|
||||||
<el-button class="button-width70" type="primary"
|
<el-button class="button-width70" type="primary"
|
||||||
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
:class="checkboxVideo.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
||||||
@click="viewPatientProfile">
|
@click="viewPatientProfile">
|
||||||
<img src="@/assets/new/del.svg" alt="" style="margin-right: 8px;">
|
<img v-if="checkboxVideo.length>0" src="@/assets/new/del2.png" alt="" style="margin-right: 8px;">
|
||||||
|
<img v-else src="@/assets/new/del3.png" alt="" style="margin-right: 8px;">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-databg"></div>
|
<div class="patientprofile-container-databg">
|
||||||
|
<div class="patientprofile-arrowbox">
|
||||||
|
<div class="leftjiantou" @click="handleVideoUpward"></div>
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-imgbgbox">
|
||||||
|
<el-checkbox-group v-model="checkboxVideo" size="large" @change="selectedChange" >
|
||||||
|
<div v-for="(item, index) in useVideoList" :key="index"
|
||||||
|
class="patientprofile-imgbox">
|
||||||
|
<div class="patientprofile-imgactive">
|
||||||
|
<img src="@/assets/new/test.png" alt="">
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-imgtextbox">
|
||||||
|
<el-checkbox
|
||||||
|
:value="item.id" size="large" style="display:flex; align-items: center; justify-content: space-between">
|
||||||
|
<div>{{ item.name }}</div>
|
||||||
|
<span>2025-05-12 12:12:12</span>
|
||||||
|
</el-checkbox>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-arrowbox">
|
||||||
|
<div class="rightjiantou" @click="handleVideoNext"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-info">
|
<div class="patientprofile-container-info">
|
||||||
<div class="patientprofile-container-data-displaycup">
|
<div class="patientprofile-container-data-displaycup">
|
||||||
@ -185,15 +242,33 @@
|
|||||||
<div class="patientprofile-container-data-title">检测数据</div>
|
<div class="patientprofile-container-data-title">检测数据</div>
|
||||||
</div>
|
</div>
|
||||||
<el-button type="primary"
|
<el-button type="primary"
|
||||||
class="button-width70"
|
class="button-width70 patientprofile-selectedbutotn"
|
||||||
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
|
@click="handleDiagnosticInfo('completed')">
|
||||||
@click="viewPatientProfile">
|
<img src="@/assets/new/save.png" alt="" style="margin-right: 8px;">
|
||||||
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
|
保存
|
||||||
查看
|
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="patientprofile-container-databg"></div>
|
<div class="patientprofile-container-dataInfobg">
|
||||||
|
<div class="patientprofile-container-dataInfobg-left">
|
||||||
|
<div class="patientprofile-container-dataInfobg-lefttext">记录</div>
|
||||||
|
<el-input type="textarea" :resize="'none'" class="patientprofile-container-dataInfobg-textarea"
|
||||||
|
v-model="profileInfo.diagnosis_info"></el-input>
|
||||||
|
</div>
|
||||||
|
<div style="width: 50%;height: calc(100% - 10px) ">
|
||||||
|
<div class="patientprofile-container-dataInfobg-rightbox">
|
||||||
|
<div class="patientprofile-container-dataInfobg-lefttext" style="padding-top:0px">处理</div>
|
||||||
|
<el-select v-model="profileInfo.treatment_info" placeholder="请选择">
|
||||||
|
<el-option :label="'保持观察,不予处理'" :value="'保持观察,不予处理'" />
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<div class="patientprofile-container-dataInfobg-rightbottombox">
|
||||||
|
<div class="patientprofile-container-dataInfobg-lefttext" style="padding-top:0px">建议</div>
|
||||||
|
<el-input type="textarea" v-model="profileInfo.suggestion_info" :resize="'none'" class="patientprofile-container-dataInfobg-textarea"></el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -213,8 +288,15 @@ const props = defineProps({
|
|||||||
required: false,
|
required: false,
|
||||||
type: Object,
|
type: Object,
|
||||||
default: null
|
default: null
|
||||||
|
},
|
||||||
|
archiveType: {
|
||||||
|
required: false,
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
const archiveType =ref(false)
|
||||||
|
const profileInfo = ref({}) // 患者信息
|
||||||
const selectedRecord = ref({})
|
const selectedRecord = ref({})
|
||||||
const recordData =ref([{
|
const recordData =ref([{
|
||||||
id: 1,
|
id: 1,
|
||||||
@ -245,7 +327,30 @@ const recordData =ref([{
|
|||||||
}
|
}
|
||||||
|
|
||||||
])
|
])
|
||||||
const selectedData = ref([])
|
|
||||||
|
const checkboxGroup = ref([]) // 图片列表选中的数据
|
||||||
|
|
||||||
|
const checkboxVideo =ref([]) // 视频列表选中的数据
|
||||||
|
const imageList = ref([])
|
||||||
|
for (let i = 0; i < 10; i++) {
|
||||||
|
imageList.value.push({
|
||||||
|
id: i,
|
||||||
|
name: '图片' + i,
|
||||||
|
url: '',
|
||||||
|
description: '这是一个测试图片',
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const tempImgList = ref([])
|
||||||
|
tempImgList.value = [...imageList.value]
|
||||||
|
const useImgList = ref([])// 图片
|
||||||
|
const useVideoList = ref([])// 视频
|
||||||
|
useImgList.value =[...tempImgList.value.slice(0, 4)] // 图片
|
||||||
|
useVideoList.value =[...tempImgList.value.slice(0, 4)] // 视频
|
||||||
|
|
||||||
|
const selectedData = ref([]) // 列表选中的数据
|
||||||
|
|
||||||
|
|
||||||
const calculateAge = (birthDate) => { // 获取年龄
|
const calculateAge = (birthDate) => { // 获取年龄
|
||||||
if (!birthDate) return '—'
|
if (!birthDate) return '—'
|
||||||
const today = new Date()
|
const today = new Date()
|
||||||
@ -261,16 +366,26 @@ function handleCancel(){
|
|||||||
emit('closePatientProfile',false)
|
emit('closePatientProfile',false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleSubmit = (item) => {
|
||||||
|
let is = false
|
||||||
|
for (let i = 0; i < patientList.value.length; i++) {
|
||||||
|
if (patientList.value[i].id === item.id) {
|
||||||
|
patientList.value[i] = item
|
||||||
|
is = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
function selectRecord(data){ // 列表点击单选
|
function selectRecord(data){ // 列表点击单选
|
||||||
selectedRecord.value = data
|
selectedRecord.value = data
|
||||||
}
|
}
|
||||||
const handleSelectionChange = (val) => { // 列表多选
|
const handleSelectionChange = (val) => { // 列表多选
|
||||||
multipleSelection.value = val
|
selectedData.value = val
|
||||||
}
|
}
|
||||||
|
|
||||||
const sessionsInit = async () => {
|
const sessionsInit = async () => {
|
||||||
try {
|
try {
|
||||||
debugger
|
|
||||||
let params ={
|
let params ={
|
||||||
patient_id: props.selectedPatient.id
|
patient_id: props.selectedPatient.id
|
||||||
}
|
}
|
||||||
@ -287,7 +402,7 @@ const sessionsInit = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
archiveType.value = props.archiveType
|
||||||
// sessionsInit()
|
// sessionsInit()
|
||||||
|
|
||||||
})
|
})
|
||||||
@ -328,6 +443,132 @@ function fileClick(row){
|
|||||||
duration: 3000
|
duration: 3000
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function selectedChange(val){
|
||||||
|
console.log(val)
|
||||||
|
}
|
||||||
|
const activeImgIndex = ref(0)
|
||||||
|
const activeVideoIndex = ref(0)
|
||||||
|
function handleNext(){
|
||||||
|
|
||||||
|
if(activeImgIndex.value + 4 >= imageList.value.length){
|
||||||
|
ElMessage.success({
|
||||||
|
message: '已最后一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
activeImgIndex.value = activeImgIndex.value + 1
|
||||||
|
tempImgList.value = [...imageList.value]
|
||||||
|
useImgList.value =[...tempImgList.value.slice(activeImgIndex.value, activeImgIndex.value+4)]
|
||||||
|
ElMessage.success({
|
||||||
|
message: '下一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function handleUpward(){
|
||||||
|
|
||||||
|
if(activeImgIndex.value + 4 <= 4){
|
||||||
|
ElMessage.success({
|
||||||
|
message: '已第一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
activeImgIndex.value = activeImgIndex.value - 1
|
||||||
|
tempImgList.value = [...imageList.value]
|
||||||
|
useImgList.value =[...tempImgList.value.slice(activeImgIndex.value, activeImgIndex.value+4)]
|
||||||
|
ElMessage.success({
|
||||||
|
message: '下一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function handleVideoNext(){
|
||||||
|
if(activeVideoIndex.value + 4 >= imageList.value.length){
|
||||||
|
ElMessage.success({
|
||||||
|
message: '已最后一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
activeVideoIndex.value = activeVideoIndex.value + 1
|
||||||
|
tempImgList.value = [...imageList.value]
|
||||||
|
useVideoList.value = [...tempImgList.value.slice(activeVideoIndex.value, activeVideoIndex.value+4)]
|
||||||
|
ElMessage.success({
|
||||||
|
message: '下一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function handleVideoUpward(){
|
||||||
|
|
||||||
|
if(activeVideoIndex.value + 4 <= 4){
|
||||||
|
ElMessage.success({
|
||||||
|
message: '已第一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
activeVideoIndex.value = activeVideoIndex.value - 1
|
||||||
|
tempImgList.value = [...imageList.value]
|
||||||
|
useVideoList.value = [...tempImgList.value.slice(activeVideoIndex.value, activeVideoIndex.value+4)]
|
||||||
|
ElMessage.success({
|
||||||
|
message: '下一页',
|
||||||
|
duration: 3000
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function handleDiagnosticInfo(status) { // 保存诊断信息
|
||||||
|
try {
|
||||||
|
// 检查是否有活跃的会话ID
|
||||||
|
if (!profileInfo.value.id) {
|
||||||
|
throw new Error('缺少会话Id')
|
||||||
|
}
|
||||||
|
// 调用后端API采集检测数据
|
||||||
|
const response = await fetch(`${BACKEND_URL}/api/detection/${profileInfo.value.id}/save-info`, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
diagnosis_info:profileInfo.value.diagnosis_info,
|
||||||
|
treatment_info:profileInfo.value.treatment_info,
|
||||||
|
suggestion_info:profileInfo.value.suggestion_info,
|
||||||
|
status:status,
|
||||||
|
id:profileInfo.value.id,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = await response.json()
|
||||||
|
if (result.success) {
|
||||||
|
profileInfo.value[profileInfo.value.index].diagnosis_info = profileInfo.value.diagnosis_info
|
||||||
|
profileInfo.value[profileInfo.value.index].treatment_info = profileInfo.value.treatment_info
|
||||||
|
profileInfo.value[profileInfo.value.index].suggestion_info = profileInfo.value.suggestion_info
|
||||||
|
profileInfo.value[profileInfo.value.index].status = status
|
||||||
|
ElMessage.success({
|
||||||
|
message: '诊断信息成功',
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
dialogVisible.value =false
|
||||||
|
} else {
|
||||||
|
throw new Error(result.message || '诊断信息失败')
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error({
|
||||||
|
message: errorMessage,
|
||||||
|
duration: 5000
|
||||||
|
})
|
||||||
|
} finally {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -606,7 +847,6 @@ function fileClick(row){
|
|||||||
.patientprofile-container-bottombox{
|
.patientprofile-container-bottombox{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 50px);
|
height: calc(100% - 50px);
|
||||||
background: red;
|
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
@ -617,10 +857,26 @@ function fileClick(row){
|
|||||||
}
|
}
|
||||||
.patientprofile-container-databg{
|
.patientprofile-container-databg{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 30px);
|
height: calc(100% - 40px);
|
||||||
background-color: rgba(27, 27, 27, 1);
|
background-color: rgba(27, 27, 27, 1);
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.patientprofile-container-dataInfobg{
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
background-color: rgba(27, 27, 27, 1);
|
||||||
|
border-radius: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.patientprofile-container-video{
|
.patientprofile-container-video{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 32%;
|
height: 32%;
|
||||||
@ -636,7 +892,7 @@ function fileClick(row){
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding-bottom: 5px;
|
padding:10px 0;
|
||||||
}
|
}
|
||||||
.patientprofile-container-data-display{
|
.patientprofile-container-data-display{
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -658,4 +914,150 @@ function fileClick(row){
|
|||||||
width: 70px !important;
|
width: 70px !important;
|
||||||
height: 26px !important;
|
height: 26px !important;
|
||||||
}
|
}
|
||||||
|
.patientprofile-arrowbox{
|
||||||
|
width: 70px;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.patientprofile-imgbgbox{
|
||||||
|
width: calc(100% - 140px);
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.patientprofile-imgbox{
|
||||||
|
width: 23%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.patientprofile-imgactive{
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100% - 30px);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 2px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.patientprofile-imgactive:hover{
|
||||||
|
border: 2px solid rgba(38, 111, 255, 1);
|
||||||
|
}
|
||||||
|
.patientprofile-imgtextbox{
|
||||||
|
width: 100%;
|
||||||
|
height: 30px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-checkbox-group{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.el-checkbox--large{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.el-checkbox__label{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #fff !important;
|
||||||
|
}
|
||||||
|
.leftjiantou{
|
||||||
|
width: 11px;
|
||||||
|
height: 20px;
|
||||||
|
background-image: url(@/assets/new/leftjiantou.png);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.leftjiantou:hover{
|
||||||
|
width: 11px;
|
||||||
|
height: 20px;
|
||||||
|
background-image: url(@/assets/new/leftjiantou2.png);
|
||||||
|
|
||||||
|
}
|
||||||
|
.rightjiantou{
|
||||||
|
width: 11px;
|
||||||
|
height: 20px;
|
||||||
|
background-image: url(@/assets/new/rightjiantou.png);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.rightjiantou:hover{
|
||||||
|
width: 11px;
|
||||||
|
height: 20px;
|
||||||
|
background-image: url(@/assets/new/rightjiantou2.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.patientprofile-container-dataInfobg-left{
|
||||||
|
width: calc(50% - 10px) ;
|
||||||
|
margin-right: 20px;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-items: center;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-lefttext{
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #787878;
|
||||||
|
width: 60px;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg .el-select{
|
||||||
|
width: calc(100% - 60px);
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-textarea{
|
||||||
|
width: calc(100% - 60px) ;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-textarea .el-textarea__inner{
|
||||||
|
width: 100% ;
|
||||||
|
height: 100%;
|
||||||
|
background: #282828;
|
||||||
|
box-shadow: 0 0 0 1px rgb(54, 54, 54) inset;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-textarea .el-textarea__inner:hover{
|
||||||
|
width: 100% ;
|
||||||
|
height: 100%;
|
||||||
|
background: #282828;
|
||||||
|
box-shadow: 0 0 0 1px rgba(38, 111, 255, 1) inset;
|
||||||
|
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-rightbox{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg .el-select__wrapper{
|
||||||
|
height: 40px;
|
||||||
|
background: #282828;
|
||||||
|
box-shadow: 0 0 0 1px rgb(54, 54, 54) inset;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg .el-select__wrapper:hover{
|
||||||
|
background: #282828;
|
||||||
|
box-shadow: 0 0 0 1px rgba(38, 111, 255, 1) inset !important;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-rightbottombox{
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.patientprofile-container-dataInfobg-rightbottombox .patientprofile-container-dataInfobg-textarea{
|
||||||
|
height: calc(100% - 45px);
|
||||||
|
}
|
||||||
|
.patientprofile-son-detectiontext{
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #00CC00;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||