|
|
|
@ -21,9 +21,11 @@ |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="btnNext">下一人</el-button> |
|
|
|
</div> |
|
|
|
<!-- |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="save">保存结果</el-button> |
|
|
|
</div> |
|
|
|
--> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="edit">修改结果</el-button> |
|
|
|
</div> |
|
|
|
@ -36,39 +38,49 @@ |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="delItem">删除明细项目</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="unAudit">取消审核</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass">历次结果</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass">体检报告</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="btnMakeDiagnosis">生成小结</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="toSumDoctorCheck">总检</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="audit">审核</el-button> |
|
|
|
</div> |
|
|
|
<el-button type="primary" class="btnClass" @click="btnMakeDiagnosis">生成小结</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="unAudit">取消审核</el-button> |
|
|
|
<el-button type="primary" class="btnClass" @click="addSummary">新增小结</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass">排队</el-button> |
|
|
|
</div> |
|
|
|
<el-button type="primary" class="btnClass" @click="audit">审核</el-button> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" class="btnClass" @click="addSummary">新增小结</el-button> |
|
|
|
<el-button type="primary" class="btnClass">排队</el-button> |
|
|
|
</div> |
|
|
|
<!-- 体检人员列表 |
|
|
|
<el-dialog title="体检人员列表" :visible.sync="doctorCheck.doctorCheckDialogVisible" width="1000px"> |
|
|
|
<PatientRegisterList win="doctorCheck" /> |
|
|
|
</el-dialog> |
|
|
|
--> |
|
|
|
|
|
|
|
|
|
|
|
<div v-if="doctorCheck.doctorCheckDialogVisible" |
|
|
|
:style="`border-radius: 10px;border: 1px solid #000;background-color:#FFF; position: absolute;top:70px;right:10px;width:300px;height: ${window.pageHeight - 42 - 5 - 30}px;opacity:1;`"> |
|
|
|
|
|
|
|
<PatientRegisterList win="doctorCheck" :winAbsolute="true"/> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 抽屉方式,遮罩层不能操作 |
|
|
|
<el-drawer title="体检人员列表" :visible.sync="doctorCheck.doctorCheckDialogVisible" direction="rtl" |
|
|
|
:wrapperClosable="false" :modal="false" :size="300"> |
|
|
|
<PatientRegisterList win="doctorCheck" /> |
|
|
|
</el-drawer> |
|
|
|
--> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 体检人员登记 --> |
|
|
|
<el-dialog style="z-index:30001;" |
|
|
|
@ -115,6 +127,8 @@ export default { |
|
|
|
PatientRegisterEdit, |
|
|
|
PatientRegisterList, |
|
|
|
}, |
|
|
|
props:["optGrant","addSummary","btnMakeDiagnosis","save","audit","unAudit"], |
|
|
|
|
|
|
|
data() { |
|
|
|
return { |
|
|
|
medicalStartDate:'', //设置体检日期 |
|
|
|
@ -185,6 +199,7 @@ export default { |
|
|
|
maxResultCount:50000, |
|
|
|
}, |
|
|
|
|
|
|
|
displayPrList:false, //是否显示人员列表 |
|
|
|
|
|
|
|
}; |
|
|
|
}, |
|
|
|
@ -200,7 +215,7 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
computed: { |
|
|
|
...mapState(["dict", "patientRegister", "doctorCheck","sumDoctorCheck"]), |
|
|
|
...mapState(["window", "dict", "patientRegister", "doctorCheck","sumDoctorCheck"]), |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
@ -356,64 +371,6 @@ export default { |
|
|
|
this.doctorCheck.prBase = Object.assign({},patientRegister) |
|
|
|
this.patientRegister.photo = patientRegister.photo |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//操作判断 |
|
|
|
optGrant(optType) { |
|
|
|
let ret = '' |
|
|
|
if (!this.doctorCheck.RegisterCheckEdit.id) return '请选择组合项目' |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isLock == 'Y') return '组合项目已锁定,不可执行此操作' |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '2') return '组合项目已弃检,不可执行此操作' |
|
|
|
if (optType == 'save') { |
|
|
|
// if (!this.doctorCheck.RegisterCheckEdit.checkDoctorId) return "请选择检查医生" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '1') return "该项目项目已保存,不可再执行此操作,如需操作请点【修改结果】" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'Y') return '组合项目已审核,请先取消审核,方可执行此操作!' |
|
|
|
} |
|
|
|
if (optType == 'edit') { |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '0') return "该检查项目尚未保存,无需执行此操作" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'Y') return '组合项目已审核,请先取消审核,方可执行此操作!' |
|
|
|
} |
|
|
|
if (optType == 'del') { |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '0') return "该检查项目尚未保存,无需执行此操作" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'Y') return '组合项目已审核,请先取消审核,方可执行此操作!' |
|
|
|
} |
|
|
|
if (optType == 'audit') { |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '0') return "该检查项目尚未保存,无需执行此操作" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'Y') return "该检查项目已审核,无需再执行此操作" |
|
|
|
} |
|
|
|
if (optType == 'unAudit') { |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '0') return "该检查项目尚未保存,无需执行此操作" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'N') return "该检查项目尚未审核,无需执行此操作" |
|
|
|
} |
|
|
|
if (optType == 'delItem' || optType == 'refuseItem' || optType == 'makeDiagnosis' ) { |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.completeFlag == '1') return "该项目项目已保存,不可再执行此操作,如需操作请点【修改结果】" |
|
|
|
if (this.doctorCheck.RegisterCheckEdit.isAudit == 'Y') return "该检查项目已审核,请先取消审核" |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ret |
|
|
|
}, |
|
|
|
|
|
|
|
//保存数据 |
|
|
|
save() { |
|
|
|
let ret = this.optGrant('save') |
|
|
|
if (ret) { |
|
|
|
this.$message.warning(ret) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
//更新明细 |
|
|
|
this.updateCheckItemList(); |
|
|
|
|
|
|
|
//更新检查项目与医生 |
|
|
|
this.updateDoctorCheck(); |
|
|
|
|
|
|
|
//更新小结 |
|
|
|
this.saveCheckSummary(); |
|
|
|
|
|
|
|
//更新建议 |
|
|
|
this.saveCheckSuggestion(true); |
|
|
|
}, |
|
|
|
|
|
|
|
//修改结果 |
|
|
|
edit() { |
|
|
|
@ -517,300 +474,15 @@ export default { |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
//审核 |
|
|
|
audit() { |
|
|
|
let ret = this.optGrant('audit') |
|
|
|
if (ret) { |
|
|
|
this.$message.warning(ret) |
|
|
|
return |
|
|
|
} |
|
|
|
let body = { |
|
|
|
registerCheckId: this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
//auditorUserId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|
|
|
//auditTime: "string" 不传时,取当前时间 |
|
|
|
} |
|
|
|
|
|
|
|
console.log(`/api/app/registercheck/updateauditordoctor`, body) |
|
|
|
postapi(`/api/app/registercheck/updateauditordoctor`, body) |
|
|
|
.then((res) => { |
|
|
|
console.log("audit", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
this.doctorCheck.RegisterCheckEdit.isAudit = 'Y'; |
|
|
|
this.$message({ type: "success", message: `组合项目审核成功` }); |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `组合项目审核失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
//取消审核 |
|
|
|
unAudit() { |
|
|
|
let ret = this.optGrant('unAudit') |
|
|
|
if (ret) { |
|
|
|
this.$message.warning(ret) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
console.log(`/api/app/registercheck/updateisaudit?RegisterCheckId=${this.doctorCheck.RegisterCheckEdit.id}&IsAudit=N`) |
|
|
|
postapi(`/api/app/registercheck/updateisaudit?RegisterCheckId=${this.doctorCheck.RegisterCheckEdit.id}&IsAudit=N`) |
|
|
|
.then((res) => { |
|
|
|
console.log("unAudit", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
this.doctorCheck.RegisterCheckEdit.isAudit = 'N'; |
|
|
|
this.$message({ type: "success", message: `组合项目取消审核成功` }); |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `组合项目取消审核失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
// 生成小结 |
|
|
|
btnMakeDiagnosis(){ |
|
|
|
let ret = this.optGrant('makeDiagnosis') |
|
|
|
if (ret) { |
|
|
|
this.$message.warning(ret) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
console.log('生成小结'); |
|
|
|
let back = false |
|
|
|
|
|
|
|
if(this.doctorCheck.checkSummaryList.length > 0){ |
|
|
|
this.$confirm("已经有小结,是否重新生成小结?", "提示", { |
|
|
|
confirmButtonText: "是", |
|
|
|
cancelButtonText: "否", |
|
|
|
type: "warning", |
|
|
|
}).then(() => { |
|
|
|
back = false |
|
|
|
}).catch((err) => { |
|
|
|
if (err == "cancel") { |
|
|
|
this.$message.info("已取消"); |
|
|
|
back = true |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
if(back) return |
|
|
|
|
|
|
|
// /api/app/diagnosisfunction/getdiagnosisresult |
|
|
|
// { |
|
|
|
// "registerCheckId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|
|
|
// "items": [ |
|
|
|
// { |
|
|
|
// "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|
|
|
// "result": "string" |
|
|
|
// } |
|
|
|
// ] |
|
|
|
// } |
|
|
|
if(this.doctorCheck.checkItemList.length == 0){ |
|
|
|
this.$message.warning("系统错误,组合项目没有明细") |
|
|
|
return |
|
|
|
} |
|
|
|
let registerCheckId = this.doctorCheck.checkItemList |
|
|
|
let body = { |
|
|
|
registerCheckId:'', |
|
|
|
items:[] |
|
|
|
} |
|
|
|
|
|
|
|
this.doctorCheck.checkItemList.forEach((e,index) =>{ |
|
|
|
if(index == 0) body.registerCheckId = e.registerCheckId |
|
|
|
body.items.push({ |
|
|
|
itemId:e.itemId, |
|
|
|
result:e.result |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
console.log(`/api/app/diagnosisfunction/getdiagnosisresult`, body) |
|
|
|
this.doctorCheck.checkSummaryList = [] |
|
|
|
this.doctorCheck.checkSuggestionList = [] |
|
|
|
postapi(`/api/app/diagnosisfunction/getdiagnosisresult`, body) |
|
|
|
.then((res) => { |
|
|
|
if (res.code != -1) { |
|
|
|
// console.log(res.data) |
|
|
|
// { |
|
|
|
// "diagnosisResultDetails": [ |
|
|
|
// { |
|
|
|
// "diagnosisResult": "超重" |
|
|
|
// } |
|
|
|
// ], |
|
|
|
// "diagnosisSuggestionDetails": [ |
|
|
|
// { |
|
|
|
// "diagnosisSuggestion": "定期复查" |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// "diagnosisSuggestion": "控制热量摄入,适当运动" |
|
|
|
// } |
|
|
|
// ] |
|
|
|
// } |
|
|
|
|
|
|
|
// 小结 |
|
|
|
res.data.diagnosisResultDetails.forEach(e =>{ |
|
|
|
this.doctorCheck.checkSummaryList.push({ |
|
|
|
id:Math.random(), |
|
|
|
registerCheckId:body.registerCheckId, |
|
|
|
summary:e.diagnosisResult, |
|
|
|
summaryFlag:'Y' |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
// 建议 |
|
|
|
res.data.diagnosisSuggestionDetails.forEach(e =>{ |
|
|
|
this.doctorCheck.checkSuggestionList.push({ |
|
|
|
id:Math.random(), |
|
|
|
registerCheckId:body.registerCheckId, |
|
|
|
suggestion:e.diagnosisSuggestion |
|
|
|
}) |
|
|
|
}) |
|
|
|
this.$message.success("操作成功!") |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `生成小结失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//总检 |
|
|
|
toSumDoctorCheck() { |
|
|
|
this.sumDoctorCheck.sumPREdit = Object.assign({},this.doctorCheck.prBase) |
|
|
|
this.$router.push({ path: "/sumDoctorCheck" }); |
|
|
|
}, |
|
|
|
|
|
|
|
//更新检查项目与医生 |
|
|
|
updateDoctorCheck(successTip) { |
|
|
|
let checkDate = this.doctorCheck.RegisterCheckEdit.checkDate||new Date(); |
|
|
|
checkDate = moment(new Date(checkDate)).format('yyyy-MM-DD'); //yyyy-MM-DD HH:mm:ss |
|
|
|
let checkDoctorId = this.doctorCheck.RegisterCheckEdit.checkDoctorId||window.sessionStorage.getItem("user"); |
|
|
|
|
|
|
|
let body = { |
|
|
|
registerCheckId: this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
checkDoctorId, |
|
|
|
checkDate |
|
|
|
} |
|
|
|
console.log(`/api/app/registercheck/updatecheckdoctor`, body) |
|
|
|
postapi(`/api/app/registercheck/updatecheckdoctor`, body) |
|
|
|
.then((res) => { |
|
|
|
console.log("updateCheckItemList", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
this.doctorCheck.RegisterCheckEdit.completeFlag = '1'; |
|
|
|
//更新组合项目列表记录状态 |
|
|
|
let lfind = arrayExistObj(this.doctorCheck.RegisterCheckList,'id',body.registerCheckId) |
|
|
|
if(lfind > -1) this.doctorCheck.RegisterCheckList[lfind].completeFlag = '1' |
|
|
|
if(successTip) this.$message.success("操作成功!") |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `项目明细保存失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
//更新明细 |
|
|
|
updateCheckItemList(successTip) { |
|
|
|
let checkDate = this.doctorCheck.RegisterCheckEdit.checkDate||new Date(); |
|
|
|
checkDate = moment(new Date(checkDate)).format('yyyy-MM-DD'); //yyyy-MM-DD HH:mm:ss |
|
|
|
let checkDoctorId = this.doctorCheck.RegisterCheckEdit.checkDoctorId||window.sessionStorage.getItem("user"); |
|
|
|
let body = [] |
|
|
|
for (let i = 0; i < this.doctorCheck.checkItemList.length; i++) { |
|
|
|
body.push({ |
|
|
|
registerCheckId: this.doctorCheck.checkItemList[i].registerCheckId, |
|
|
|
itemId: this.doctorCheck.checkItemList[i].itemId, |
|
|
|
result: this.doctorCheck.checkItemList[i].result, |
|
|
|
checkDoctorName: checkDoctorId, |
|
|
|
checkDate, |
|
|
|
}) |
|
|
|
} |
|
|
|
console.log(`/api/app/registercheckitem/updateregistercheckitemmany`, body) |
|
|
|
postapi(`/api/app/registercheckitem/updateregistercheckitemmany`, body) |
|
|
|
.then((res) => { |
|
|
|
console.log("updateCheckItemList", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
if(successTip) this.$message.success("操作成功!") |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `项目明细保存失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
//更新小结 |
|
|
|
saveCheckSummary(successTip) { |
|
|
|
let details = [] |
|
|
|
this.doctorCheck.checkSummaryList.forEach(item => { |
|
|
|
details.push({ |
|
|
|
registerCheckId: item.registerCheckId, |
|
|
|
summary: item.summary, |
|
|
|
summaryFlag: item.summaryFlag, |
|
|
|
}) |
|
|
|
}); |
|
|
|
let body = { |
|
|
|
registerCheckId:this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
details |
|
|
|
} |
|
|
|
|
|
|
|
console.log(`/api/app/registerchecksummary/createregisterchecksummarymany`, body) |
|
|
|
postapi(`/api/app/registerchecksummary/createregisterchecksummarymany`, body) |
|
|
|
.then((res) => { |
|
|
|
console.log("saveCheckSummary", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
if(successTip) this.$message.success("操作成功!") |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `项目明细保存失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
//更新建议 |
|
|
|
saveCheckSuggestion(successTip) { |
|
|
|
let details = [] |
|
|
|
this.doctorCheck.checkSuggestionList.forEach(item => { |
|
|
|
details.push({ |
|
|
|
registerCheckId: item.registerCheckId, |
|
|
|
suggestion: item.suggestion |
|
|
|
}) |
|
|
|
}); |
|
|
|
|
|
|
|
let body = { |
|
|
|
registerCheckId:this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
details |
|
|
|
} |
|
|
|
|
|
|
|
console.log(`/api/app/registerchecksuggestion/createregisterchecksuggestionmany`, body) |
|
|
|
postapi(`/api/app/registerchecksuggestion/createregisterchecksuggestionmany`, body) |
|
|
|
.then((res) => { |
|
|
|
console.log("saveCheckSuggestion", res.data); |
|
|
|
if (res.code != -1) { |
|
|
|
//this.doctorCheck.RegisterCheckEdit.completeFlag = '1'; |
|
|
|
if(successTip) this.$message.success("操作成功!") |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
this.$message({ type: "error", message: `项目明细保存失败,原因:${err}` }); |
|
|
|
}); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
addSummary() { |
|
|
|
if (!this.doctorCheck.RegisterCheckEdit.id) { |
|
|
|
this.$message.warning("请选择检查项目") |
|
|
|
return |
|
|
|
} |
|
|
|
this.doctorCheck.checkSummaryList.push({ |
|
|
|
id:Math.random(), |
|
|
|
registerCheckId: this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
summary: '', |
|
|
|
summaryFlag: 'N', |
|
|
|
}) |
|
|
|
this.doctorCheck.checkSuggestionList.push({ |
|
|
|
id:Math.random(), |
|
|
|
registerCheckId: this.doctorCheck.RegisterCheckEdit.id, |
|
|
|
suggestion: '', |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
//监听事件() |
|
|
|
@ -863,6 +535,6 @@ export default { |
|
|
|
margin-top: 1px; |
|
|
|
width: 100px; |
|
|
|
height: 26px; |
|
|
|
padding: 5px 5px; /*原始 默认值 500 */ |
|
|
|
padding: 5px 5px; /*原始 默认值 10px 10px */ |
|
|
|
} |
|
|
|
</style> |