8 changed files with 2011 additions and 655 deletions
-
145src/components/doctorCheck/PatientRegisterList.vue
-
414src/components/report/BtnReport.vue
-
996src/components/report/PatientRegisterListNobtn.vue
-
123src/components/report/PatientRegisterQueryNobtn.vue
-
76src/components/report/RegisterCheckStatus.vue
-
1src/store/index.js
-
439src/views/charge/charge.vue
-
472src/views/report/report.vue
@ -0,0 +1,414 @@ |
|||
<template> |
|||
<div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary" class="btnClass" @click="prList">查询</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary" class="btnClass" @click="toDoctorCheck">预览报告</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary" class="btnClass" @click="save">打印报告</el-button> |
|||
</div> |
|||
<div class="listBtn"> |
|||
<el-button type="primary" class="btnClass" @click="edit">领用报告</el-button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
|
|||
import { mapState } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { arrayExistObj, parseID } from "../../utlis/proFunc"; |
|||
|
|||
//import PatientRegisterList from "../doctorCheck/PatientRegisterList.vue"; |
|||
export default { |
|||
components: { |
|||
//PatientRegisterList, |
|||
}, |
|||
data() { |
|||
return { |
|||
|
|||
|
|||
}; |
|||
}, |
|||
|
|||
created() { }, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
|
|||
}, |
|||
|
|||
computed: { |
|||
...mapState(["dict", "patientRegister", "doctorCheck", "sumDoctorCheck"]), |
|||
}, |
|||
|
|||
methods: { |
|||
prList() { |
|||
this.sumDoctorCheck.sumDoctorCheckDialogVisible = true |
|||
}, |
|||
//to医生诊台 |
|||
toDoctorCheck() { |
|||
this.$router.push({ path: "/doctorCheck" }); |
|||
}, |
|||
|
|||
//操作判断 |
|||
optGrant(optType) { |
|||
let ret = '' |
|||
if (!this.sumDoctorCheck.sumPREdit.id) return '请选择体检人员' |
|||
if (this.sumDoctorCheck.sumPREdit.isLock == 'Y') return '人员已锁定,不可执行此操作' |
|||
|
|||
if (optType == 'save') { |
|||
//if (!this.sumDoctorCheck.sumPREdit.summaryDoctor) return "请选择总检医生" |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag == '3') return "该人员已总检,不可再执行此操作,如需操作请点【修改】" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'Y') return '该人员检查已审核,请先取消审核,方可执行此操作!' |
|||
} |
|||
if (optType == 'edit') { |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag != '3') return "该人员尚未总检,无需执行此操作" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'Y') return '该人员检查已审核,请先取消审核,方可执行此操作!' |
|||
} |
|||
if (optType == 'del') { |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag != '3') return "该人员尚未总检,无需执行此操作" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'Y') return '该人员检查已审核,请先取消审核,方可执行此操作!' |
|||
} |
|||
if (optType == 'audit') { |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag != '3') return "该检查项目尚未保存,不可执行此操作" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'Y') return "该人员检查已审核,无需再执行此操作" |
|||
} |
|||
if (optType == 'unAudit') { |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag != '3') return "该人员尚未总检,不可执行此操作" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'N') return "该人员检查尚未审核,无需执行此操作" |
|||
} |
|||
if (optType == 'report') { |
|||
if (this.sumDoctorCheck.sumPREdit.completeFlag != '3') return "该人员检查尚未总检,不可执行此操作" |
|||
if (this.sumDoctorCheck.sumPREdit.isAudit == 'N') return "该人员检查尚未审核,不可执行此操作" |
|||
} |
|||
|
|||
return ret |
|||
}, |
|||
|
|||
//保存数据 |
|||
save() { |
|||
let ret = this.optGrant('save') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
|
|||
//更新总检 |
|||
this.updateSumDoctorCheck(); |
|||
|
|||
//更新综述 |
|||
this.saveSummary(); |
|||
|
|||
//更新建议 |
|||
this.saveSuggestion(); |
|||
}, |
|||
|
|||
//修改结果 |
|||
edit() { |
|||
let ret = this.optGrant('edit') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
this.sumDoctorCheck.sumPREdit.completeFlag = '2' |
|||
}, |
|||
|
|||
//取消结果 |
|||
del() { |
|||
let body = { |
|||
patientRegisterId: this.sumDoctorCheck.sumPREdit.id, |
|||
//summaryDoctor: this.sumDoctorCheck.sumPREdit.summaryDoctor, |
|||
//summaryDate: this.sumDoctorCheck.sumPREdit.summaryDate, |
|||
completeFlag: '2' |
|||
} |
|||
console.log(`/api/app/patientregister/updatepatientregistersummarydoctor`, body) |
|||
postapi(`/api/app/patientregister/updatepatientregistersummarydoctor`, body) |
|||
.then((res) => { |
|||
console.log("del", res.data); |
|||
if (res.code != -1) { |
|||
this.sumDoctorCheck.sumPREdit.completeFlag = '2'; |
|||
console.log(`/api/app/sumsummaryheader/deletesumsummarymany?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`) |
|||
return postapi(`/api/app/sumsummaryheader/deletesumsummarymany?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`) |
|||
} |
|||
}) |
|||
.then((res) => { |
|||
console.log("deletesumsuggestionmany", res.data); |
|||
if (res.code != -1) { |
|||
console.log(`/api/app/sumsuggestionheader/deletesumsuggestionmany?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`) |
|||
return postapi(`/api/app/sumsuggestionheader/deletesumsuggestionmany?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`) |
|||
} |
|||
}) |
|||
.then((res) => { |
|||
console.log("deletesumsuggestionmany", res.data); |
|||
if (res.code != -1) { |
|||
this.$message({ type: "success", message: `取消总检成功!` }); |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `取消总检失败,原因:${err}` }); |
|||
}); |
|||
}, |
|||
|
|||
//审核 |
|||
audit() { |
|||
let ret = this.optGrant('audit') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
let body = { |
|||
patientRegisterId: this.sumDoctorCheck.sumPREdit.id, |
|||
//auditDoctor: "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
//auditDate: "string" 不传时,取当前时间 |
|||
isAudit: 'Y' |
|||
} |
|||
|
|||
console.log(`/api/app/patientregister/updatepatientregisterauditordoctor`, body) |
|||
postapi(`/api/app/patientregister/updatepatientregisterauditordoctor`, body) |
|||
.then((res) => { |
|||
console.log("audit", res.data); |
|||
if (res.code != -1) { |
|||
this.sumDoctorCheck.sumPREdit.isAudit = 'Y'; |
|||
this.$message({ type: "success", message: `总检审核成功` }); |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `总检审核失败,原因:${err}` }); |
|||
}); |
|||
}, |
|||
|
|||
//取消审核 |
|||
unAudit() { |
|||
let ret = this.optGrant('unAudit') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
|
|||
let body = { |
|||
patientRegisterId: this.sumDoctorCheck.sumPREdit.id, |
|||
//auditDoctor: "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
//auditDate: "string" 不传时,取当前时间 |
|||
isAudit: 'N' |
|||
} |
|||
|
|||
console.log(`/api/app/patientregister/updatepatientregisterauditordoctor`, body) |
|||
postapi(`/api/app/patientregister/updatepatientregisterauditordoctor`, body) |
|||
.then((res) => { |
|||
console.log("unAudit", res.data); |
|||
if (res.code != -1) { |
|||
this.sumDoctorCheck.sumPREdit.isAudit = 'N'; |
|||
this.$message({ type: "success", message: `取消总检审核成功` }); |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `取消总检审核失败,原因:${err}` }); |
|||
}); |
|||
}, |
|||
|
|||
//体检报告 |
|||
report() { |
|||
let ret = this.optGrant('report') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
|
|||
///3a0c990e-5756-2dc0-19d5-69a617fe4048 |
|||
let ReportCode = '0005'; |
|||
let token = localStorage.getItem('token'); |
|||
let user = localStorage.getItem('user'); |
|||
let toOutShell = { |
|||
ReportCode, token, |
|||
preViewCanPrint: this.sumDoctorCheck.sumPREdit.isAudit, |
|||
Parameters: [ |
|||
{ Name: 'printer', Value: user }, |
|||
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, |
|||
{ Name: "peisReportFirstPage", Value: "pic/peisReportFirstPage.jpg" }, |
|||
{ Name: "peisReportPageHeader", Value: "pic/peisReportPageHeader.jpg" }, |
|||
{ Name: "peisReportPageFooter", Value: "pic/peisReportPageFooter.jpg" } |
|||
], |
|||
}; |
|||
|
|||
|
|||
postapi(`/api/app/printreport/getpeisreport?PatientRegisterId=${this.sumDoctorCheck.sumPREdit.id}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = res.data; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.printPre(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
|
|||
}, |
|||
|
|||
//增加建议 |
|||
addSuggtion() { |
|||
let id = String(new Date().getTime()) |
|||
let pojo = { |
|||
id, |
|||
patientRegisterId: this.sumDoctorCheck.sumPREdit.id, |
|||
details: [ |
|||
{ |
|||
sumSuggestionHeaderId: id, |
|||
suggestionContent: '', |
|||
} |
|||
] |
|||
} |
|||
this.sumDoctorCheck.suggestionList.push(pojo); |
|||
}, |
|||
|
|||
//复查 |
|||
reCheck() { |
|||
console.log("parseID('123456198007240000')", parseID('123456198007240000')) |
|||
let ret = this.optGrant('reCheck') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
|
|||
}, |
|||
|
|||
//干预措施 |
|||
intervene() { |
|||
let ret = this.optGrant('intervene') |
|||
if (ret) { |
|||
alert(ret) |
|||
return |
|||
} |
|||
}, |
|||
|
|||
//更新总检 |
|||
updateSumDoctorCheck() { |
|||
let body = { |
|||
patientRegisterId: this.sumDoctorCheck.sumPREdit.id, |
|||
//summaryDoctor:this.sumDoctorCheck.sumPREdit.summaryDoctor, |
|||
//summaryDate: this.sumDoctorCheck.sumPREdit.summaryDate, |
|||
completeFlag: '3' |
|||
} |
|||
console.log(`/api/app/patientregister/updatepatientregistersummarydoctor`, body) |
|||
postapi(`/api/app/patientregister/updatepatientregistersummarydoctor`, body) |
|||
.then((res) => { |
|||
console.log("updateSumDoctorCheck", res.data); |
|||
if (res.code != -1) { |
|||
this.sumDoctorCheck.sumPREdit.completeFlag = '3'; |
|||
this.$message({ type: "success", message: `总检保存成功!` }); |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `总检保存失败,原因:${err}` }); |
|||
}); |
|||
|
|||
}, |
|||
|
|||
|
|||
//更新综述 |
|||
saveSummary() { |
|||
let body = [] |
|||
this.sumDoctorCheck.summaryList.forEach(item => { |
|||
delete item.id; |
|||
delete item.summaryFlag; |
|||
delete item.displayOrder; |
|||
|
|||
item.details.forEach(e => { |
|||
delete e.sumSummaryHeaderId; |
|||
delete e.displayOrder; |
|||
}) |
|||
body.push(item) |
|||
}); |
|||
console.log(`/api/app/sumsummaryheader/createsumsummary`, body) |
|||
if (body.length < 1) return |
|||
postapi(`/api/app/sumsummaryheader/createsumsummary`, body) |
|||
.then((res) => { |
|||
console.log("saveSummary", res.data); |
|||
if (res.code != -1) { |
|||
//this.sumDoctorCheck.sumPREdit.completeFlag = '1'; |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `综述保存失败,原因:${err}` }); |
|||
}); |
|||
|
|||
}, |
|||
|
|||
|
|||
//更新建议 |
|||
saveSuggestion() { |
|||
let body = [] |
|||
this.sumDoctorCheck.suggestionList.forEach(item => { |
|||
delete item.id; |
|||
delete item.suggestionFlag; |
|||
delete item.displayOrder; |
|||
|
|||
item.details.forEach(e => { |
|||
delete e.sumSuggestionHeaderId; |
|||
delete e.displayOrder; |
|||
}) |
|||
body.push(item) |
|||
}); |
|||
console.log(`/api/app/sumsuggestionheader/createsumsuggestion`, body) |
|||
if (body.length < 1) return |
|||
postapi(`/api/app/sumsuggestionheader/createsumsuggestion`, body) |
|||
.then((res) => { |
|||
console.log("saveSuggestion", res.data); |
|||
if (res.code != -1) { |
|||
//this.sumDoctorCheck.sumPREdit.completeFlag = '1'; |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
this.$message({ type: "error", message: `建议保存失败,原因:${err}` }); |
|||
}); |
|||
|
|||
}, |
|||
|
|||
addSummary() { |
|||
if (!this.sumDoctorCheck.sumPREdit.id) { |
|||
alert("请选择检查项目") |
|||
return |
|||
} |
|||
this.doctorCheck.checkSummaryList.push({ |
|||
registerCheckId: this.sumDoctorCheck.sumPREdit.id, |
|||
summary: '', |
|||
summaryFlag: 'N', |
|||
}) |
|||
this.doctorCheck.checkSuggestionList.push({ |
|||
registerCheckId: this.sumDoctorCheck.sumPREdit.id, |
|||
suggestion: '', |
|||
}) |
|||
}, |
|||
}, |
|||
|
|||
//监听事件() |
|||
watch: { |
|||
//1级单位值改变,分组改变 |
|||
"patientRegister.query.CustomerOrgParentId"(newVal, oldVal) { |
|||
console.log( |
|||
"watch patientRegister.query.CustomerOrgParentId newVal:", |
|||
newVal, |
|||
" oldVal:", |
|||
oldVal |
|||
); |
|||
if (newVal != oldVal && newVal !== this.dict.personOrgId) { |
|||
this.getCustomerOrgGroup(newVal); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.listBtn { |
|||
margin-top: 10px; |
|||
/* |
|||
text-align: center; |
|||
*/ |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,996 @@ |
|||
<template> |
|||
<div> |
|||
<div @contextmenu.prevent="onContextmenu"> |
|||
<el-table :data="patientRegister.prList" border :height="(window.pageHeight < 600) ? 260:(window.pageHeight - 340)" highlight-current-row |
|||
@row-click="rowick" size="small" @selection-change="handleSelectionChange" @cell-contextmenu="onCellRightClick"> |
|||
<el-table-column type="selection" width="40"></el-table-column> |
|||
<el-table-column prop="completeFlag" label="体检进度"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ ldddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="guidePrintTimes" label="打印" width="50"> |
|||
<template slot-scope="scope"> |
|||
<i class="el-icon-printer" v-if="scope.row.guidePrintTimes > 0" style="font-size: 24px;color: green;"></i> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="isLock" label="锁住"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="customerOrgParentName" label="单位" width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="customerOrgName" label="部门" width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="patientName" label="姓名" /> |
|||
<el-table-column prop="sexId" label="性别"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ ldddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="age" label="年龄" /> |
|||
<el-table-column prop="patientRegisterNo" label="条码号" width="150" /> |
|||
<el-table-column prop="patientNo" label="档案号" /> |
|||
<el-table-column prop="medicalTimes" label="体检次数"></el-table-column> |
|||
<el-table-column label="分组/套餐" width="150"> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId"> |
|||
{{ ldddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }} |
|||
</div> |
|||
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId"> |
|||
{{ ldddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="nationId" label="民族"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
{{ ldddw(dict.nation, "nationId", scope.row.nationId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="idNo" label="身份证" width="150" /> |
|||
<el-table-column prop="birthDate" label="出生日期" width="100"> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.birthDate"> |
|||
{{ lmoment(scope.row.birthDate, "yyyy-MM-DD") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="email" label="邮箱" width="180" /> |
|||
<el-table-column prop="mobileTelephone" label="手机" width="100" /> |
|||
<el-table-column prop="telephone" label="电话" width="100" /> |
|||
<el-table-column prop="address" label="地址" width="300" /> |
|||
<el-table-column prop="medicalCardNo" label="体检卡号" /> |
|||
<el-table-column prop="jobCardNo" label="工卡号" /> |
|||
<el-table-column prop="maritalStatusId" label="婚姻状况"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
{{ ldddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="medicalTypeId" label="体检类别"> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.medicalTypeId !== dict.personOrgId"> |
|||
{{ ldddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="personnelTypeId" label="人员类别"> |
|||
<template slot-scope="scope"> |
|||
<div v-if="scope.row.personnelTypeId !== dict.personOrgId"> |
|||
{{ ldddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }} |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="jobPost" label="职务" /> |
|||
<el-table-column prop="jobTitle" label="职称" /> |
|||
<el-table-column prop="salesman" label="介绍人" /> |
|||
<el-table-column prop="isVip" label="是否VIP"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="creatorName" label="登记人" /> |
|||
<el-table-column prop="creationTime" label="登记日期" width="100"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="isUpload" label="是否上传"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
<!-- |
|||
"sexHormoneTermId": "00000000-0000-0000-0000-000000000000", |
|||
"interposeMeasure": null, |
|||
"medicalConclusionId": "00000000-0000-0000-0000-000000000000", |
|||
"reportPrintTimes": 0, |
|||
"isMedicalStart": "N", |
|||
"medicalStartDate": "6/28/2023", |
|||
"isRecoverGuide": "N", |
|||
"summaryDate": "", |
|||
"summaryDoctor": null, |
|||
"isAudit": "N", |
|||
"auditDoctor": null, |
|||
"auditDate": "", |
|||
"isNameHide": "N", |
|||
"isPhoneFollow": "N", |
|||
"thirdInfo": null, |
|||
"guidePrintTimes": null, |
|||
"remark": null, |
|||
"organizationUnitId": "00000000-0000-0000-0000-000000000000", |
|||
"customerOrgRegisterId": "00000000-0000-0000-0000-000000000000", |
|||
"lastModifierName": "", |
|||
"lastModificationTime": null, |
|||
"lastModifierId": null, |
|||
"creatorId": null, |
|||
"id": "3a0c196d-a6d0-37fe-5c32-4806bdc4530f" |
|||
--> |
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
|
|||
import moment from "moment"; |
|||
import { mapState, mapActions } from "vuex"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { dddw, objCopy, arrayReduce, arrayExistObj } from "@/utlis/proFunc"; |
|||
|
|||
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue"; |
|||
import Camera from "../../components/patientRegister/Camera.vue"; |
|||
import PatientRegisterAsbItem from "../../components/patientRegister/patientRegisterAsbItem.vue"; |
|||
|
|||
export default { |
|||
components: { |
|||
PatientRegisterEdit, |
|||
Camera, |
|||
PatientRegisterAsbItem, |
|||
}, |
|||
data() { |
|||
return { |
|||
multipleSelection: [], //选中的数据列表 |
|||
dialogVisible: false, |
|||
dialogCamera: false, |
|||
dialogGuide: false, |
|||
guideMsg: 'guideMsg', |
|||
tabChoosed: "1", |
|||
formInitData: {}, //体检登记初始表单数据 |
|||
editTimes: 0, |
|||
|
|||
rClickRow: null, //右击的行 |
|||
rClickColumn: null, //右击的列(预留) |
|||
|
|||
dialogGroup: false, |
|||
groupBatch: { |
|||
patientRegisterId: null, |
|||
customerOrgGroupId: null, |
|||
payTypeFlag: "1", //0:个人付费,1:单位付费 2:免费 |
|||
isReserveAddAsbitem: true, //是否保留加做项目 |
|||
}, |
|||
|
|||
dialogAsbitem: false, |
|||
asbitemBatch: { |
|||
operate: 'add', |
|||
isDeleteGroup: false, |
|||
asbItemId: '', |
|||
asbitemsTemp: [], //删除或增加项目临时用 |
|||
asbitemCurr: {}, //当前选中要删除的项目(批量调整) |
|||
}, |
|||
quickAsb: [], //可供快速选择的组合项目 |
|||
}; |
|||
}, |
|||
|
|||
|
|||
created() { }, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.quickAsb = this.dict.asbItemAll; |
|||
}, |
|||
computed: { |
|||
...mapState(["window", "dict", "patientRegister", "customerOrg"]), |
|||
}, |
|||
methods: { |
|||
...mapActions(["getCustomerOrgGroup", "getPatientRegisterAbs"]), |
|||
|
|||
// 打印指引单(isPreview) |
|||
async guidePrint(ReportCode, isPreview) { |
|||
let token = localStorage.getItem('token'); |
|||
let user = localStorage.getItem('user'); |
|||
let toOutShell = { |
|||
ReportCode, token, |
|||
preViewCanPrint: 'N', |
|||
Parameters: [ |
|||
{ Name: 'printer', Value: user }, |
|||
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, |
|||
], |
|||
}; |
|||
let lfind = -1; |
|||
|
|||
|
|||
if (this.multipleSelection.length < 1) { |
|||
this.$message.info("请勾选要打印指引单的人员记录!"); |
|||
return; |
|||
} |
|||
|
|||
if (isPreview) { |
|||
// |
|||
//this.multipleSelection.forEach((item,index) =>{ |
|||
|
|||
getapi(`/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${this.multipleSelection[0].id}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = res.data; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.printPre(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
// }); |
|||
} else { |
|||
this.multipleSelection.forEach((item, index) => { |
|||
getapi(`/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${item.id}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = res.data; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.print(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.then(res => { |
|||
if (res.toLowerCase() == 'success') { |
|||
//更新打印次数 |
|||
return postapi('api/app/patientregister/updatepatientregisterguideprinttimesmany', [item.id]) |
|||
} |
|||
}) |
|||
.then(res => { |
|||
if (res.code != -1) { |
|||
lfind = arrayExistObj(this.patientRegister.prList, 'id', item.id) |
|||
if (lfind > -1) { |
|||
if (this.patientRegister.prList[lfind].guidePrintTimes) { |
|||
this.patientRegister.prList[lfind].guidePrintTimes = Number(this.patientRegister.prList[lfind].guidePrintTimes) + 1; |
|||
} else { |
|||
this.patientRegister.prList[lfind].guidePrintTimes = 1; |
|||
} |
|||
} |
|||
|
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
}); |
|||
} |
|||
}, |
|||
|
|||
handleSelectionChange(val) { |
|||
this.multipleSelection = val; |
|||
//console.log('this.multipleSelection',this.multipleSelection) |
|||
}, |
|||
|
|||
//获取单位分组 /api/app/customer-org-group/in-customer-org-id/3a0c0444-d7a0-871f-4074-19faf1655caf |
|||
getCustomerOrgGroup(customerOrgld) { |
|||
getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`) |
|||
.then((res) => { |
|||
console.log("getCustomerOrgGroup", res.data); |
|||
if (res.code == 1) { |
|||
this.patientRegister.customerOrgGroup = res.data; |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
//点击体检次数行 |
|||
rowick(row) { |
|||
this.patientRegister.photo = ""; //清除照片缓存 |
|||
|
|||
this.patientRegister.patientRegisterId = row.id; |
|||
this.patientRegister.patientRegisterRd = row; |
|||
this.patientRegister.query.customerOrgParentId = row.customerOrgParentId; |
|||
this.patientRegister.customerOrgGroupChange = 0; //控制体检列表记录切换时,0 无需触发更换分组操作 |
|||
this.patientRegister.medicalPackageChange = 0; //控制体检列表记录切换时,0 无需触发更换套餐操作 |
|||
this.getCustomerOrgGroup(row.customerOrgParentId); |
|||
this.dict.asbItem = [...this.dict.asbItemAll] |
|||
this.getPatientRegisterAbs(row.id); |
|||
}, |
|||
|
|||
//体检次数 相关操作 |
|||
add() { |
|||
let customerOrgId = this.patientRegister.query.customerOrgId; |
|||
if (!customerOrgId) { |
|||
alert("请选择单位或个人"); |
|||
return; |
|||
} |
|||
//console.log('customerOrgId',customerOrgId) |
|||
this.patientRegister.patientRegisterId = ""; |
|||
// this.patientRegister.patientRegisterRd.photo = ''; |
|||
// this.patientRegister.patientRegisterRdInit.id = ""; |
|||
// this.patientRegister.patientRegisterRdInit.customerOrgId = this.patientRegister.query.customerOrgId; |
|||
// this.patientRegister.addTimes++; |
|||
// this.patientRegister.patientRegisterTimes++; |
|||
this.patientRegister.patientRegisterRdInit.customerOrgId = this.patientRegister.query.customerOrgId; |
|||
this.formInitData = { ...this.patientRegister.patientRegisterRdInit }; |
|||
this.patientRegister.patientRegisterAbs = []; |
|||
this.dialogVisible = true; |
|||
this.editTimes++; //触发表单窗口,数据更新 |
|||
this.getPatientRegisterAbs(); |
|||
}, |
|||
|
|||
|
|||
edit() { |
|||
if (!this.patientRegister.patientRegisterRd.id) { |
|||
alert("请选择要操作的记录"); |
|||
return; |
|||
} |
|||
//this.patientRegister.patientRegisterTimes++; |
|||
this.getPatientRegisterAbs(this.patientRegister.patientRegisterRd.id); |
|||
this.formInitData = { ...this.patientRegister.patientRegisterRd }; |
|||
this.dialogVisible = true; |
|||
this.editTimes++; //触发表单窗口,数据更新 |
|||
}, |
|||
|
|||
//拍照 |
|||
openCamera() { |
|||
if (!this.patientRegister.patientRegisterId) { |
|||
alert("请选择要操作的记录"); |
|||
return; |
|||
} |
|||
this.patientRegister.cameraVisble = true; |
|||
}, |
|||
|
|||
//删除(可批量删除) |
|||
// /api/app/patient-register/many?PatientRegisterIds=3a0c2cac-f44c-f407-9504-c1fc5e80a159&PatientRegisterIds=3a0c2cb3-d10c-ed70-db6a-b835e75ce641 |
|||
del() { |
|||
if (this.multipleSelection.length < 1) { |
|||
alert("请先勾选要操作的记录"); |
|||
return; |
|||
} |
|||
let patientRegisterIds = []; |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
patientRegisterIds.push(this.multipleSelection[i]["id"]); |
|||
} |
|||
|
|||
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
}) |
|||
.then(() => { |
|||
//console.log('{patientRegisterIds}',{patientRegisterIds}) |
|||
return postapi(`/api/app/patient-register/delete-many`, { |
|||
patientRegisterIds, |
|||
}); |
|||
}) |
|||
.then((res) => { |
|||
this.$message.success("删除成功"); |
|||
this.patientRegister.query.times++; |
|||
this.patientRegister.patientRegisterId = ""; |
|||
}) |
|||
.catch(() => { |
|||
this.$message({ |
|||
type: "info", |
|||
message: "已取消删除", |
|||
}); |
|||
}); |
|||
}, |
|||
|
|||
//单个删除方式 |
|||
delBak() { |
|||
if (!this.patientRegister.patientRegisterId) { |
|||
alert("请选择要操作的记录"); |
|||
return; |
|||
} |
|||
|
|||
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
}) |
|||
.then(() => { |
|||
//console.log('${this.patientRegister.patientRegisterId}',this.patientRegister.patientRegisterId) |
|||
return deletapi(`/api/app/patient-register/${this.patientRegister.patientRegisterId}`); |
|||
}) |
|||
.then((res) => { |
|||
this.$message.success("删除成功"); |
|||
this.patientRegister.query.times++; |
|||
this.patientRegister.patientRegisterId = ""; |
|||
}) |
|||
.catch(() => { |
|||
this.$message({ type: "info", message: "已取消删除", }); |
|||
}); |
|||
}, |
|||
|
|||
ldddw(arrayData, key, value, display) { |
|||
return dddw(arrayData, key, value, display); |
|||
}, |
|||
|
|||
lmoment(date, forMat) { |
|||
return moment(new Date(date)).format(forMat); |
|||
}, |
|||
|
|||
//查询 |
|||
async query() { |
|||
this.patientRegister.prList = []; |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}); |
|||
|
|||
let body = {} |
|||
|
|||
console.log(`this.patientRegister.query`, this.patientRegister.query) |
|||
if (this.patientRegister.query.customerOrgFlag) { |
|||
if (this.patientRegister.query.CustomerOrgParentId) { |
|||
body.customerOrgId = this.patientRegister.query.CustomerOrgParentId |
|||
} else { |
|||
if (this.patientRegister.query.customerOrgId) body.customerOrgId = this.patientRegister.query.customerOrgId |
|||
} |
|||
} |
|||
|
|||
if (this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex |
|||
|
|||
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName |
|||
|
|||
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag |
|||
|
|||
//StartDate EndDate |
|||
if (this.patientRegister.query.dateRange) { |
|||
body.startDate = moment(new Date(this.patientRegister.query.dateRange[0])).format("yyyy-MM-DD") |
|||
body.endDate = moment(new Date(this.patientRegister.query.dateRange[1])).format("yyyy-MM-DD") |
|||
} |
|||
|
|||
|
|||
if (this.patientRegister.query.idCardNo) body = { idNo: this.patientRegister.query.idCardNo } |
|||
|
|||
if (this.patientRegister.query.patientNo) body = { patientNo: this.patientRegister.query.patientNo } |
|||
|
|||
if (this.patientRegister.query.patientRegisterNo) body = { patientRegisterNo: this.patientRegister.query.patientRegisterNo } |
|||
|
|||
|
|||
console.log('/api/app/patientregister/getlistinfilter', body) |
|||
postapi('/api/app/patientregister/getlistinfilter', body) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
this.patientRegister.prList = res.data.items; |
|||
} |
|||
loading.close(); |
|||
}) |
|||
.catch((err) => { |
|||
loading.close(); |
|||
}); |
|||
// try { |
|||
// let res =await postapi('/api/app/patientregister/getlistinfilter', body); |
|||
// this.patientRegister.prList = res.data; |
|||
// } catch (error) { |
|||
// console.log("query error",error); |
|||
// } |
|||
}, |
|||
|
|||
//右击菜单 |
|||
onCellRightClick(row, column) { |
|||
this.rClickRow = { ...row }; //右击的行 |
|||
this.rClickColumn = { ...column }; //右击的列(预留) |
|||
console.log(row, column.property); |
|||
}, |
|||
onContextmenu(event) { |
|||
//console.log('onContextmenu',event); |
|||
if (!this.rClickRow) return false; |
|||
let row = { ...this.rClickRow }; |
|||
this.$contextmenu({ |
|||
items: [ |
|||
{ |
|||
label: "发送检验申请", |
|||
onClick: () => { |
|||
this.lisRequest(row.id); |
|||
} |
|||
}, |
|||
{ |
|||
label: "预览检验条码", |
|||
onClick: () => { |
|||
this.lisPrint(row.id, '0002', true); |
|||
} |
|||
}, |
|||
{ |
|||
label: "打印检验条码", |
|||
onClick: () => { |
|||
this.lisPrint(row.id, '0002', false); |
|||
} |
|||
}, |
|||
{ |
|||
label: "预览Pacs条码", |
|||
onClick: () => { |
|||
this.pacsPrint(row.id, '0004', true); |
|||
} |
|||
}, |
|||
{ |
|||
label: "打印Pacs条码", |
|||
onClick: () => { |
|||
this.pacsPrint(row.id, '0004', false); |
|||
} |
|||
}, |
|||
], |
|||
event, |
|||
//x: event.clientX, |
|||
//y: event.clientY, |
|||
customClass: "custom-class", |
|||
zIndex: 3, |
|||
minWidth: 80, |
|||
}); |
|||
|
|||
this.rClickRow = null; |
|||
return false; |
|||
}, |
|||
|
|||
//批量更新分组按钮 |
|||
btnGroupBatch() { |
|||
let customerOrgId = this.patientRegister.query.customerOrgId; |
|||
if (!customerOrgId) { |
|||
alert("请选择单位或个人"); |
|||
return; |
|||
} |
|||
if (this.multipleSelection.length < 1) { |
|||
this.$message.info("请勾选要操作的人员!"); |
|||
return; |
|||
} |
|||
|
|||
this.dialogGroup = true; |
|||
}, |
|||
|
|||
//批量更新分组处理 |
|||
async groupBatchHandle() { |
|||
let groupBatch = { patientRegisterId: null, ...this.groupBatch }; |
|||
|
|||
if (groupBatch.isReserveAddAsbitem) { |
|||
groupBatch.isReserveAddAsbitem = 'Y'; |
|||
} else { |
|||
groupBatch.isReserveAddAsbitem = 'N'; |
|||
} |
|||
console.log('groupBatch', groupBatch); |
|||
if (!groupBatch.customerOrgGroupId) { |
|||
this.$message.warning("请选择分组"); |
|||
return; |
|||
} |
|||
|
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
groupBatch.patientRegisterId = this.multipleSelection[i].id; |
|||
try { |
|||
await postapi('/api/app/patientregister/updatepatientregistercustomerorggroup', groupBatch); |
|||
} catch (error) { |
|||
console.log(error); |
|||
} |
|||
} |
|||
this.$message.success("操作成功!"); |
|||
this.dialogGroup = false; |
|||
this.query(); |
|||
}, |
|||
|
|||
|
|||
//快速查询项目 |
|||
remoteMethod(keyWords) { |
|||
//console.log('remoteMethod',this.dict.asbItemQuick) |
|||
if (keyWords) { |
|||
this.quickAsb = []; |
|||
this.dict.asbItemQuick.forEach(item => { |
|||
if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 |
|||
|| item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1 |
|||
|| item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) { |
|||
this.quickAsb.push(item); |
|||
} |
|||
}); |
|||
} else { |
|||
this.quickAsb = [...this.dict.asbItemQuick]; |
|||
} |
|||
}, |
|||
|
|||
//快速选择项目 |
|||
quickChoosedAsb(v) { |
|||
//过滤已选的的组合项目 |
|||
let lfind = -1 |
|||
if (v) { |
|||
lfind = arrayExistObj(this.quickAsb, 'id', v) |
|||
if (lfind > -1) { |
|||
this.asbitemBatch.asbitemsTemp.push({ |
|||
asbitemId: v, |
|||
asbitemName: this.quickAsb[lfind].displayName, //仅作显示用 |
|||
patientRegisterId: null, |
|||
standardPrice: this.quickAsb[lfind].price, |
|||
chargePrice: this.quickAsb[lfind].price, |
|||
payTypeFlag: '1',//默认单位支付 |
|||
isCharge: 'N', |
|||
amount: 1, |
|||
}); |
|||
this.quickAsb.splice(lfind, 1); |
|||
arrayReduce(this.dict.asbItemQuick, { id: v }, 'id'); |
|||
} |
|||
} |
|||
console.log(v, this.asbitemBatch.asbitemsTemp) |
|||
}, |
|||
|
|||
//删除临时显示的组合项目 |
|||
removeAbs(row) { |
|||
let lfind = arrayExistObj(this.asbitemBatch.asbitemsTemp, 'asbitemId', row.asbitemId); |
|||
if (lfind > - 1) this.asbitemBatch.asbitemsTemp.splice(lfind, 1); |
|||
}, |
|||
|
|||
rowClickaAbitemCurr(row) { |
|||
this.asbitemBatch.asbitemCurr = row; |
|||
}, |
|||
|
|||
btnRemoveAbs() { |
|||
if (!this.asbitemBatch.asbitemCurr.asbitemId) { |
|||
this.$message.warning("请选择要删除的组合项目!"); |
|||
return; |
|||
} |
|||
this.removeAbs(this.asbitemBatch.asbitemCurr); |
|||
this.asbitemBatch.asbitemCurr.asbitemId = null; |
|||
}, |
|||
|
|||
removeAllAbs() { |
|||
this.asbitemBatch.asbitemsTemp = []; |
|||
}, |
|||
|
|||
//批量更新项目 |
|||
asbBatch() { |
|||
let customerOrgId = this.patientRegister.query.customerOrgId; |
|||
if (!customerOrgId) { |
|||
alert("请选择单位或个人"); |
|||
return; |
|||
} |
|||
this.dialogAsbitem = true; |
|||
//供快速选择的组合项目 |
|||
this.dict.asbItemQuick = [...this.dict.asbItemAll]; |
|||
this.asbitemBatch.asbitemCurr.asbitemId = null; |
|||
this.asbitemBatch.asbitemsTemp = []; |
|||
}, |
|||
|
|||
asbitemDel(type) { |
|||
//typ==0 为批量删除 |
|||
if (Number(type) == 0) { |
|||
this.asbitemBatch.asbitemsTemp = []; |
|||
} else { |
|||
if (!this.asbitemBatch.asbitemCurr.asbitemId) { |
|||
this.$message.warning("请选中要删除的项目!"); |
|||
return; |
|||
} |
|||
//console.log(this.asbitemBatch.asbitemsTemp,this.asbitemBatch.asbitemCurr) |
|||
let lfind = arrayExistObj(this.asbitemBatch.asbitemsTemp, 'asbitemId', this.asbitemBatch.asbitemCurr.asbitemId); |
|||
if (lfind > -1) { |
|||
this.asbitemBatch.asbitemsTemp.splice(lfind, 1); |
|||
this.asbitemBatch.asbitemCurr.asbitemId = null; |
|||
} |
|||
//console.log(lfind); |
|||
} |
|||
}, |
|||
|
|||
//批量调整支付方式 |
|||
changePayTypeFlag(flag) { |
|||
this.asbitemBatch.asbitemsTemp.forEach(e => { |
|||
e.payTypeFlag = flag; |
|||
return e; |
|||
}); |
|||
}, |
|||
|
|||
async asbitemBatchHandle() { |
|||
let msg = '', body = {}; |
|||
if (this.asbitemBatch.asbitemsTemp.length == 0) { |
|||
this.$message.warning("没有选择组合项目,不可执行此操作!"); |
|||
return; |
|||
} |
|||
if (this.asbitemBatch.operate == 'add') { |
|||
this.asbitemBatch.asbitemsTemp.forEach((e, index) => { |
|||
if (!e.amount || !e.chargePrice) { |
|||
msg = '第 ' + (index + 1) + " 行,未输入数量或价格!"; |
|||
} |
|||
}); |
|||
if (msg) { |
|||
this.$message.warning(msg); |
|||
return; |
|||
} |
|||
// { |
|||
// "organizationUnitId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "createRegisterAsbitemDtos": [ |
|||
// { |
|||
// "asbitemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "standardPrice": 0, |
|||
// "chargePrice": 0, |
|||
// "payTypeFlag": "string", |
|||
// "isCharge": "string", |
|||
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "amount": 0, |
|||
// "groupPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" |
|||
// } |
|||
// ] |
|||
// } |
|||
let createRegisterAsbitemDtos = [...this.asbitemBatch.asbitemsTemp]; |
|||
|
|||
createRegisterAsbitemDtos.forEach(e => { |
|||
delete e.asbitemName; |
|||
return e; |
|||
}); |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
createRegisterAsbitemDtos.forEach(e => { |
|||
e.patientRegisterId = this.multipleSelection[i].id; |
|||
return e; |
|||
}); |
|||
body = { |
|||
organizationUnitId:this.multipleSelection[i].organizationUnitId, |
|||
createRegisterAsbitemDtos, |
|||
} |
|||
try { |
|||
await postapi('/api/app/registerasbitem/createregisterasbitemincustomerorgmany',body); |
|||
} catch (error) { |
|||
console.log('批量增加项目错误,原因:',error); |
|||
} |
|||
} |
|||
} else { |
|||
// { |
|||
// isDeleteGroup: 'N', |
|||
// patientRegisterId: null, |
|||
// asbitemIds: [], |
|||
// } |
|||
let asbitemIds = []; |
|||
if(this.asbitemBatch.isDeleteGroup){ |
|||
body.isDeleteGroup = 'Y'; |
|||
}else{ |
|||
body.isDeleteGroup = 'N'; |
|||
} |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
|
|||
this.asbitemBatch.asbitemsTemp.forEach(e => { |
|||
asbitemIds.push(e.asbitemId); |
|||
}); |
|||
|
|||
body.patientRegisterId = this.multipleSelection[i].id; |
|||
body.asbitemIds = asbitemIds |
|||
|
|||
try { |
|||
await postapi('/api/app/registerasbitem/deleteregisterasbitemincustomerorgmany',body); |
|||
} catch (error) { |
|||
console.log('批量删除项目错误,原因:',error); |
|||
} |
|||
} |
|||
} |
|||
|
|||
this.$message.success("操作成功!"); |
|||
this.dialogAsbitem = false; |
|||
this.query(); |
|||
}, |
|||
|
|||
//检验申请 |
|||
async lisRequest(prId) { |
|||
let isPrintLisRequest = false |
|||
let res = null |
|||
if (prId.length < 1) { |
|||
this.$message.info("人员信息尚未保存,不可执行此操作!"); |
|||
return; |
|||
} |
|||
|
|||
try { |
|||
res = await postapi(`/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`); |
|||
console.log(`/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`, res) |
|||
} catch (error) { |
|||
return; |
|||
} |
|||
if (res.Code != -1) { |
|||
this.$message.info("发送检验申请成功!"); |
|||
isPrintLisRequest = true; |
|||
} |
|||
|
|||
//重复申请,重打 |
|||
if (res.Code == -1 && res.Message.indexOf('已申请') > -1) { |
|||
isPrintLisRequest = true; |
|||
} |
|||
|
|||
if (!isPrintLisRequest) return; |
|||
|
|||
try { |
|||
await this.$confirm("是否打印检验申请单?", "提示", { |
|||
confirmButtonText: "是", |
|||
cancelButtonText: "否", |
|||
type: "info", |
|||
showClose: false, |
|||
closeOnClickModal: false, |
|||
closeOnPressEscape: false, |
|||
}); |
|||
} catch (error) { |
|||
return; |
|||
} |
|||
//打印检验申请单 |
|||
this.lisPrint(prId, '0003', false); |
|||
}, |
|||
|
|||
//检验条码打印 |
|||
lisPrint(prId, ReportCode, isPreview) { |
|||
|
|||
let token = localStorage.getItem('token'); |
|||
let user = localStorage.getItem('user'); |
|||
let toOutShell = { |
|||
ReportCode, token, |
|||
preViewCanPrint: 'N', |
|||
Parameters: [ |
|||
{ Name: 'printer', Value: user }, |
|||
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, |
|||
], |
|||
}; |
|||
|
|||
|
|||
if (isPreview) { |
|||
//http://140.143.162.39:9529/api/app/printreport/getlisrequestreport?PatientRegisterId=3a0d2e90-da68-3746-6775-bf17e5f9b295 |
|||
//this.multipleSelection.forEach((item,index) =>{ |
|||
postapi(`/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = { lisRequest: res.data }; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.printPre(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
// }); |
|||
} else { |
|||
|
|||
postapi(`/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = { lisRequest: res.data }; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.print(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.then(res => { |
|||
if (res.toLowerCase() == 'success') { |
|||
//更新打印状态 /api/app/lisrequest/updatelisrequestisprint |
|||
// { |
|||
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId) |
|||
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" |
|||
// } |
|||
return postapi('/api/app/lisrequest/updatelisrequestisprint', { operateType: 1, patientRegisterId: prId }) |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
|
|||
} |
|||
}, |
|||
|
|||
//pacs条码打印 |
|||
pacsPrint(prId, ReportCode, isPreview) { |
|||
|
|||
let token = localStorage.getItem('token'); |
|||
let user = localStorage.getItem('user'); |
|||
let toOutShell = { |
|||
ReportCode, token, |
|||
preViewCanPrint: 'Y', |
|||
Parameters: [ |
|||
{ Name: 'printer', Value: user }, |
|||
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, |
|||
], |
|||
}; |
|||
|
|||
|
|||
if (isPreview) { |
|||
//http://140.143.162.39:9529/api/app/printreport/getpacsnoreport?PatientRegisterId=3a0c990e-5756-2dc0-19d5-69a617fe4048 |
|||
//this.multipleSelection.forEach((item,index) =>{ |
|||
postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = { lisRequest: res.data }; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.printPre(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
// }); |
|||
} else { |
|||
|
|||
postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`) |
|||
.then((res) => { |
|||
if (res.code != -1) { |
|||
toOutShell.ReportTable = { lisRequest: res.data }; |
|||
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell)); |
|||
return this.$peisAPI.print(JSON.stringify(toOutShell)); |
|||
} |
|||
}) |
|||
.then(res => { |
|||
if (res.toLowerCase() == 'success') { |
|||
//更新打印状态 /api/app/lisrequest/updatelisrequestisprint |
|||
// { |
|||
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId) |
|||
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" |
|||
// } |
|||
return postapi('/api/app/lisrequest/updatelisrequestisprint', { operateType: 1, patientRegisterId: prId }) |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
this.$message.warning(err); |
|||
}); |
|||
|
|||
} |
|||
}, |
|||
|
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//触发查询事件 |
|||
"patientRegister.query.times"(newVal, oldVal) { |
|||
if (newVal != oldVal) { |
|||
//alert('触发查询事件') |
|||
this.query(); |
|||
} |
|||
}, |
|||
|
|||
//新增后,触发赋值 |
|||
"patientRegister.patientRegisterRd.id"(newVal, oldVal) { |
|||
if (newVal != oldVal) { |
|||
//console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId) |
|||
objCopy(this.patientRegister.patientRegisterRd, this.form); |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.box { |
|||
display: flex; |
|||
} |
|||
|
|||
.listBtn { |
|||
margin-top: 5px; |
|||
text-align: center; |
|||
} |
|||
|
|||
.btnClass { |
|||
width: 110px; |
|||
} |
|||
|
|||
::v-deep .el-input__inner { |
|||
text-align: center; |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table th.el-table__cell { |
|||
text-align: center; |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table td.el-table__cell { |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table .cell { |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep input[type="number"]::-webkit-inner-spin-button, |
|||
input[type="number"]::-webkit-outer-spin-button { |
|||
-webkit-appearance: none !important; |
|||
margin: 0 !important; |
|||
}</style> |
|||
@ -0,0 +1,123 @@ |
|||
<template> |
|||
<div style="display: flex"> |
|||
<div style="display: flex; flex-wrap: wrap; height:100px;"> |
|||
<div class="query"> |
|||
<el-select v-model="patientRegister.query.dateType" placeholder="请选择" filterable clearable size="small" style="width: 100px"> |
|||
<el-option label="登记日期" value="creationTime" /> |
|||
<el-option label="体检日期" value="medicalStartDate" /> |
|||
<el-option label="总检日期" value="summaryDate" /> |
|||
</el-select> |
|||
<el-date-picker v-model="patientRegister.query.dateRange" type="daterange" align="right" unlink-panels |
|||
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" size="small" |
|||
style="width: 240px"> |
|||
</el-date-picker> |
|||
</div> |
|||
<div class="query"> |
|||
<span>条码号:</span> |
|||
<el-input placeholder="条码号" v-model="patientRegister.query.patientRegisterNo" size="small" clearable |
|||
style="width: 150px" /> |
|||
</div> |
|||
<div class="query"> |
|||
<span>档案号:</span> |
|||
<el-input placeholder="档案号" v-model="patientRegister.query.patientNo" size="small" clearable |
|||
style="width: 135px" /> |
|||
</div> |
|||
<div class="query"> |
|||
<span>姓名:</span> |
|||
<el-input placeholder="姓名" v-model="patientRegister.query.patientName" size="small" clearable |
|||
style="width: 100px" /> |
|||
</div> |
|||
<div class="query"> |
|||
<span>性别:</span> |
|||
<el-select v-model="patientRegister.query.sex" placeholder="请选择" style="width: 80px" size="small"> |
|||
<el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
<div class="query"> |
|||
<span>身份证号:</span> |
|||
<el-input placeholder="身份证号" v-model="patientRegister.query.idCardNo" size="small" clearable |
|||
style="width: 180px" /> |
|||
</div> |
|||
<div class="query"> |
|||
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll" |
|||
:props="{checkStrictly: true,expandTrigger: 'hover',...customerOrg.treeprops,}" placeholder="请选择单位" |
|||
:show-all-levels="false" clearable :disabled="orgEnable == 'Y' ? false : true" size="small"> |
|||
</el-cascader> |
|||
<el-checkbox v-model="patientRegister.query.customerOrgFlag">单位作为查询条件</el-checkbox> |
|||
</div> |
|||
<div class="query"> |
|||
<span>状态:</span> |
|||
<el-select v-model="patientRegister.query.completeFlag" placeholder="请选择" clearable style="width: 80px" |
|||
size="small"> |
|||
<el-option v-for="item in dict.completeFlag" :key="item.id" :label="item.displayName" :value="item.id"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { mapState } from "vuex"; |
|||
|
|||
|
|||
export default { |
|||
components: {}, |
|||
props: ["orgEnable"], |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
|
|||
pickerOptions: { |
|||
shortcuts: [ |
|||
{ |
|||
text: "最近一周", |
|||
onClick(picker) { |
|||
const end = new Date(); |
|||
const start = new Date(); |
|||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
|||
picker.$emit("pick", [start, end]); |
|||
}, |
|||
}, |
|||
{ |
|||
text: "最近一个月", |
|||
onClick(picker) { |
|||
const end = new Date(); |
|||
const start = new Date(); |
|||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
|||
picker.$emit("pick", [start, end]); |
|||
}, |
|||
}, |
|||
{ |
|||
text: "最近三个月", |
|||
onClick(picker) { |
|||
const end = new Date(); |
|||
const start = new Date(); |
|||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
|||
picker.$emit("pick", [start, end]); |
|||
}, |
|||
}, |
|||
], |
|||
}, |
|||
}; |
|||
}, |
|||
|
|||
created() { }, |
|||
|
|||
//挂载完成 |
|||
mounted() { }, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict", "patientRegister", "customerOrg"]), |
|||
}, |
|||
methods: { |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.query { |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,76 @@ |
|||
<template> |
|||
<div> |
|||
<el-table :data="doctorCheck.RegisterCheckList" border |
|||
:height="(window.pageHeight < 600) ? 260 : (window.pageHeight - 340)" size="small" highlight-current-row |
|||
ref="doctorCheck.RegisterCheckList"> |
|||
<el-table-column prop="asbitemName" label="组合项目" width="120" /> |
|||
<el-table-column prop="checkCompleteFlag" label="状态"> |
|||
<template slot-scope="scope"> |
|||
<div> |
|||
<el-radio v-model="scope.row.checkCompleteFlag" label="0">未检</el-radio> |
|||
<el-radio v-model="scope.row.checkCompleteFlag" label="1">已检</el-radio> |
|||
<el-radio v-model="scope.row.checkCompleteFlag" label="2">弃检</el-radio> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="checkDate" label="检查日期" width="90"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ moment(scope.row.checkDate).format("yyyy-MM-DD") }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import moment from "moment"; |
|||
import { mapState } from "vuex"; |
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return {}; |
|||
}, |
|||
|
|||
created() { }, |
|||
|
|||
//挂载完成 |
|||
mounted() { }, |
|||
|
|||
computed: { |
|||
...mapState(["window", "dict", "doctorCheck"]), |
|||
}, |
|||
methods: { |
|||
moment, |
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
|
|||
::v-deep .el-input__inner { |
|||
text-align: center; |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table th.el-table__cell { |
|||
text-align: center; |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table td.el-table__cell { |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep .el-table .cell { |
|||
padding-left: 1px; |
|||
padding-right: 1px; |
|||
} |
|||
|
|||
::v-deep input[type="number"]::-webkit-inner-spin-button, |
|||
input[type="number"]::-webkit-outer-spin-button { |
|||
-webkit-appearance: none !important; |
|||
margin: 0 !important; |
|||
} |
|||
|
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue