Browse Source

AIdiagnosis

master
pengjun 7 months ago
parent
commit
cd320bf2fe
  1. 88
      src/components/doctorCheck/ButtonList.vue
  2. 81
      src/components/sumDoctorCheck/ButtonList.vue

88
src/components/doctorCheck/ButtonList.vue

@ -28,6 +28,10 @@
<el-button type="primary" class="btnClass" @click="save">保存结果</el-button>
</div>
-->
<div v-show="checkPagePriv(pagePriv.privs, 'AI诊断')" class="divBtnClass">
<el-button slot="reference" class="commonbutton" @click="btnAIdiagnosis(false)"
:disabled="doctorBtnDisabled('save')">AI诊断</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '修改结果')" class="divBtnClass">
<el-button type="primary" class="commonbutton" @click="btnEdit"
:disabled="doctorBtnDisabled('btnEdit')">修改结果</el-button>
@ -125,19 +129,19 @@
<div>
<el-tabs v-model="tabChoosed">
<el-tab-pane label="明细结果" name="2">
<CheckDetails :patientRegisterId="doctorCheck.prBase.id" :refParams="{ place: 'doctor' }"/>
<CheckDetails :patientRegisterId="doctorCheck.prBase.id" :refParams="{ place: 'doctor' }" />
</el-tab-pane>
<el-tab-pane label="本次图文报告" name="4">
<ImageTextReport :refParams="{ place: 'doctor' }"/>
<ImageTextReport :refParams="{ place: 'doctor' }" />
</el-tab-pane>
<!-- <el-tab-pane label="项目对比" name="4">
<SumItemsType :patientId="doctorCheck.prBase.patientId" />
</el-tab-pane> -->
<el-tab-pane label="横向对比" name="5">
<SumItems :patientId="doctorCheck.prBase.patientId" :refParams="{ place: 'doctor' }"/>
<SumItems :patientId="doctorCheck.prBase.patientId" :refParams="{ place: 'doctor' }" />
</el-tab-pane>
<el-tab-pane label="历次综述" name="6">
<SumHistory :patientId="doctorCheck.prBase.patientId" :refParams="{ place: 'doctor' }"/>
<SumHistory :patientId="doctorCheck.prBase.patientId" :refParams="{ place: 'doctor' }" />
</el-tab-pane>
</el-tabs>
</div>
@ -147,6 +151,31 @@
:append-to-body="true">
<OccDisease />
</el-dialog>
<!-- AI诊断-->
<div v-show="AI.visible"
:style="`z-index:3;border-radius: 10px;border: 1px solid #ddd;background-color:#FFF; position: absolute;top:50px;right:0px;width:${AI.width}px;height: ${AI.height}px;opacity:1;`">
<div v-show="AI.max" style="display: flex;justify-content: space-between;">
<p>AI诊断内容</p>
<el-tooltip content="隐藏 AI诊断内容" placement="top">
<i class="el-icon-minus" @click="btnAImax(AI.max)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</el-tooltip>
</div>
<div v-show="!AI.max">
<el-tooltip content="显示 AI诊断内容" placement="top">
<i class="el-icon-plus" @click="btnAImax(AI.max)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</el-tooltip>
</div>
<el-input v-show="AI.max" type="textarea" v-model="AI.diagnosis" placeholder="AI诊断内容"
:autosize="{ minRows: AIDH, maxRows: AIDH }" style="text-align: right;">
</el-input>
<div v-show="AI.max" style="text-align: right; margin-top: 10px;">
<el-button class="commonbutton" @click="AI.visible = false">关闭</el-button>
<el-button class="commonbutton" @click="btnAIdiagnosis(true)">AI重新诊断</el-button>
</div>
</div>
</div>
</template>
<script>
@ -256,6 +285,13 @@ export default {
displayPrList: false, //
dialogVisibleCheckHistory: false, //
tabChoosed: '2',
AI: {
width: 500,
height: 24,
max: true,
visible: false,
diagnosis: 'AI诊断信息',
}
};
},
@ -266,6 +302,7 @@ export default {
this.formInitData = Object.assign({}, this.formData)
this.medicalStartDateTemp = new Date()
this.AI.height = this.frameHeight
},
//
@ -275,6 +312,13 @@ export default {
computed: {
...mapState(["window", "dialogWin", "dataTransOpts", "dict", "patientRegister", "doctorCheck", "sumDoctorCheck"]),
frameHeight() {
return this.window.pageHeight - 42 - 10
},
// AIdiagnosisHeight
AIDH() {
return Math.floor((this.AI.height - 24 - 42 - 4) / 21.5)
}
},
methods: {
@ -625,6 +669,42 @@ export default {
this.dataTransOpts.plus.OccDisease++
this.dialogWin.OccDisease = true
},
// AI AI
btnAIdiagnosis(again) {
if (!again) {
if (this.AI.visible) {
this.btnAImax(false)
return
}
}
let reqText = ''
let linkStr = ';'
this.doctorCheck.checkItemList.forEach(e => {
if (e.result) {
if (reqText) {
linkStr = ';'
} else {
linkStr = ''
}
reqText += linkStr + e.itemName + ':' + e.result
}
});
this.AI.visible = true
this.AI.diagnosis = reqText
this.btnAImax(false)
},
btnAImax(max) {
this.AI.max = !max
if (this.AI.max) {
this.AI.width = 500
this.AI.height = this.frameHeight
} else {
this.AI.width = 24
this.AI.height = 24
}
},
},
//()

81
src/components/sumDoctorCheck/ButtonList.vue

@ -14,6 +14,10 @@
<el-button type="primary" class="commonbutton" @click="btnImportResult('lis')"
:disabled="sumBtnDisabled('save')">导入检验结果</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, 'AI诊断')" class="listBtn">
<el-button slot="reference" class="commonbutton" @click="btnAIdiagnosis(false)"
:disabled="sumBtnDisabled('save')">AI诊断</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '保存')" class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnSave"
:disabled="sumBtnDisabled('save')">保存</el-button>
@ -56,6 +60,30 @@
:disabled="sumBtnDisabled('btnOcc')">职业病</el-button>
</div>
<!-- AI诊断-->
<div v-show="AI.visible"
:style="`z-index:3;border-radius: 10px;border: 1px solid #ddd;background-color:#FFF; position: absolute;top:50px;left:0px;width:${AI.width}px;height: ${AI.height}px;opacity:1;`">
<div v-show="AI.max" style="display: flex;justify-content: space-between;">
<p>AI诊断内容</p>
<el-tooltip content="隐藏 AI诊断内容" placement="top">
<i class="el-icon-minus" @click="btnAImax(AI.max)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</el-tooltip>
</div>
<div v-show="!AI.max">
<el-tooltip content="显示 AI诊断内容" placement="top">
<i class="el-icon-plus" @click="btnAImax(AI.max)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</el-tooltip>
</div>
<el-input v-show="AI.max" type="textarea" v-model="AI.diagnosis" placeholder="AI诊断内容"
:autosize="{ minRows: AIDH, maxRows: AIDH }" style="text-align: right;">
</el-input>
<div v-show="AI.max" style="text-align: right; margin-top: 10px;">
<el-button class="commonbutton" @click="AI.visible = false">关闭</el-button>
<el-button class="commonbutton" @click="btnAIdiagnosis(true)">AI重新诊断</el-button>
</div>
</div>
<div v-show="sumDoctorCheck.sumDoctorCheckDialogVisible"
:style="`z-index:3;border-radius: 10px;border: 1px solid #ddd;background-color:#FFF; position: absolute;top:50px;right:0px;width:300px;height: ${window.pageHeight - 42 - 10}px;opacity:1;`">
@ -114,6 +142,14 @@ export default {
}
],
summary_check_doctor_alias: ["总检", "审核"],
AI:{
width:500,
height:24,
max:true,
visible: false,
diagnosis: 'AI诊断信息',
}
};
},
@ -121,6 +157,7 @@ export default {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
this.AI.height = this.frameHeight
},
//
@ -135,6 +172,13 @@ export default {
computed: {
...mapState(["window", "dict", "dataTransOpts", "dialogWin", "patientRegister", "doctorCheck", "sumDoctorCheck"]),
frameHeight(){
return this.window.pageHeight - 42 - 10
},
// AIdiagnosisHeight
AIDH(){
return Math.floor((this.AI.height - 24 - 42 - 4)/21.5)
}
},
methods: {
@ -365,12 +409,45 @@ export default {
})
}
},
// AI AI
btnAIdiagnosis(again) {
if (!again) {
if (this.AI.visible){
this.btnAImax(false)
return
}
}
let reqText = ''
let linkStr = ';'
this.sumDoctorCheck.summaryList.forEach(e => {
if (reqText) {
linkStr = ';'
} else {
linkStr = ''
}
reqText += linkStr + e.summaryTitle + ':'
e.details.forEach((e1,i) => {
reqText += (i+1) + ')、' + e1.summaryContent
});
});
this.AI.visible = true
this.AI.diagnosis = reqText
this.btnAImax(false)
},
btnAImax(max){
this.AI.max = !max
if(this.AI.max){
this.AI.width = 500
this.AI.height = this.frameHeight
}else{
this.AI.width = 24
this.AI.height = 24
}
},
//

Loading…
Cancel
Save