修改患者档案

This commit is contained in:
limengnan 2025-11-28 14:11:36 +08:00
parent da2dc38a51
commit 94d52e4237
17 changed files with 438 additions and 55 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

View File

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

View File

@ -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>

View File

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

View File

@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -216,7 +216,7 @@
@endChange="endChange"></Detection>
</div>
<PatientProfile v-if="isPatientProfile"
:PatientProfileType="true"
:archiveType="false"
:selectedPatient="selectedPatient"
@closePatientProfile="closePatientProfile"/>
</div>
@ -242,7 +242,7 @@ const patienttotal = ref(0)
//
const activeNav = ref('detection')
const searchKeyword = ref('')
const selectedPatient = ref(null)
const selectedPatient = ref({})
const patients = ref([])
const userInfo = reactive({
username: '医生',

View File

@ -413,7 +413,10 @@
<el-dialog class="historyDialogVisible" v-model="historyDialogVisible" center title="查看档案" width="100%">
<HistoryDashboard v-if="historyDialogVisible" :patientId="patientId"/>
</el-dialog>
<PatientProfile v-if="historyDialogVisible"
:archiveType="true"
:selectedPatient="selectedPatient"
@closePatientProfile="closePatientProfile"/>
</div>
</template>
@ -2131,7 +2134,9 @@ function closecreatbox(e){
function handleEditUserInfo(){
isCloseCreat.value = true
}
function closePatientProfile(){
historyDialogVisible.value =false
}
</script>
<style scoped>

View File

@ -71,15 +71,17 @@
</div>
<div class="patientprofile-son-display">
<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">
<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 v-if="selectedPatient" type="primary"
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
:class="selectedData.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@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>
</div>
@ -136,6 +138,8 @@
<div class="patientprofile-son-text">测试医生李莉莉</div>
<div class="patientprofile-son-text">就诊时间2025年10月20日 10:48:23</div>
<div class="patientprofile-son-text">档案ID25002</div>
<div v-if="archiveType == true" class="patientprofile-son-detectiontext">正在检测</div>
</div>
</div>
<div class="patientprofile-container-bottombox">
@ -148,20 +152,47 @@
<div>
<el-button type="primary"
class="button-width70"
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
:class="checkboxGroup.length == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@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 class="button-width70" type="primary"
:class="selectedData.leng>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
:class="checkboxGroup.length>0? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@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>
</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 class="patientprofile-container-video">
<div class="patientprofile-container-data-displaycup">
@ -170,13 +201,39 @@
<div class="patientprofile-container-data-title">检测视频</div>
</div>
<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">
<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>
</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 class="patientprofile-container-info">
<div class="patientprofile-container-data-displaycup">
@ -185,15 +242,33 @@
<div class="patientprofile-container-data-title">检测数据</div>
</div>
<el-button type="primary"
class="button-width70"
:class="selectedData.leng == 2? 'patientprofile-selectedbutotn':'patientprofile-butotn'"
@click="viewPatientProfile">
<img src="@/assets/new/bi.svg" alt="" style="margin-right: 8px;">
查看
class="button-width70 patientprofile-selectedbutotn"
@click="handleDiagnosticInfo('completed')">
<img src="@/assets/new/save.png" alt="" style="margin-right: 8px;">
保存
</el-button>
</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>
@ -213,8 +288,15 @@ const props = defineProps({
required: false,
type: Object,
default: null
},
archiveType: {
required: false,
type: Boolean,
default: false
}
})
const archiveType =ref(false)
const profileInfo = ref({}) //
const selectedRecord = ref({})
const recordData =ref([{
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) => { //
if (!birthDate) return '—'
const today = new Date()
@ -261,16 +366,26 @@ function handleCancel(){
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){ //
selectedRecord.value = data
}
const handleSelectionChange = (val) => { //
multipleSelection.value = val
selectedData.value = val
}
const sessionsInit = async () => {
try {
debugger
let params ={
patient_id: props.selectedPatient.id
}
@ -287,7 +402,7 @@ const sessionsInit = async () => {
}
}
onMounted(() => {
archiveType.value = props.archiveType
// sessionsInit()
})
@ -328,6 +443,132 @@ function fileClick(row){
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>
<style scoped>
@ -606,7 +847,6 @@ function fileClick(row){
.patientprofile-container-bottombox{
width: 100%;
height: calc(100% - 50px);
background: red;
padding: 20px;
box-sizing: border-box;
}
@ -617,10 +857,26 @@ function fileClick(row){
}
.patientprofile-container-databg{
width: 100%;
height: calc(100% - 30px);
height: calc(100% - 40px);
background-color: rgba(27, 27, 27, 1);
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{
width: 100%;
height: 32%;
@ -636,7 +892,7 @@ function fileClick(row){
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 5px;
padding:10px 0;
}
.patientprofile-container-data-display{
display: flex;
@ -658,4 +914,150 @@ function fileClick(row){
width: 70px !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>