Browse Source

queue

master
pengjun 2 years ago
parent
commit
a43507f1f5
  1. 78
      src/components/doctorCheck/QueueCheckList.vue
  2. 224
      src/components/occDisease/occReport.vue
  3. 4
      src/components/queue/Queue.vue

78
src/components/doctorCheck/QueueCheckList.vue

@ -38,7 +38,7 @@
</el-table>
<div style="margin-top: 20px;">
<div>
<el-button type="primary" class="commonbutton" @click="btnCall(waitQueueRegisterId, '1')"
<el-button type="primary" class="commonbutton" @click="btnCall(waitRow.queueRegisterId, '1')"
style="width: 40px;min-width: 40px;height: 26px;">呼叫</el-button>
</div>
<div style="margin: 10px 0;">
@ -68,7 +68,7 @@
</el-table>
<div style="margin-top: 20px;">
<div>
<el-button type="primary" class="commonbutton" @click="btnCall(alreadyQueueRegisterId, '2')"
<el-button type="primary" class="commonbutton" @click="btnCall(alreadyRow, '2')"
style="width: 40px;min-width: 40px;height: 26px;">过号</el-button>
</div>
</div>
@ -89,11 +89,11 @@
</el-table>
<div style="margin-top: 20px;">
<div>
<el-button type="primary" class="commonbutton" @click="btnCall(overQueueRegisterId, '9')"
<el-button type="primary" class="commonbutton" @click="btnCall(overRow, '9')"
style="width: 40px;min-width: 40px;height: 26px;">重呼</el-button>
</div>
<div style="margin: 10px 0;">
<el-button type="primary" class="commonbutton" @click="btnCall(overQueueRegisterId, '0')"
<el-button type="primary" class="commonbutton" @click="btnCall(overRow, '0')"
style="width: 40px;min-width: 40px;height: 26px;">退回</el-button>
</div>
</div>
@ -129,9 +129,10 @@ export default {
alreadyCalledDetail: [],
overNumberDetail: [],
waitQueueRegisterId: '',
alreadyQueueRegisterId: '',
overQueueRegisterId: '',
waitRow: {},
alreadyRow: {},
overRow: {},
LocalConfig: {
doctorCheck: { //
@ -232,7 +233,8 @@ export default {
})
}
if (!this.interval) {
//
if (!this.interval && this.queue_refresh_interval != 0) {
this.interval = setInterval(() => {
this.getQueueRegisterList(this.LocalConfig.doctorCheck.queueRoom, this.LocalConfig.doctorCheck.queueItemTypeIds)
}, this.queue_refresh_interval * 1000);
@ -240,32 +242,32 @@ export default {
}
},
btnCall(refQueueRegisterId, completeFlag) {
let queueRegisterId = refQueueRegisterId
btnCall(refRow, completeFlag) {
let row = Object.assign({}, refRow)
switch (completeFlag) {
case "0": // 退
if (!queueRegisterId) {
if (this.overNumberDetail.length > 0) queueRegisterId = this.overNumberDetail[0].queueRegisterId
if (!row.queueRegisterId) {
if (this.overNumberDetail.length > 0) row = this.overNumberDetail[0]
}
if (!queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择过号人员' })
if (!row.queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择过号人员' })
break;
case "1": //
if (!queueRegisterId) {
if (this.waitDetail.length > 0) queueRegisterId = this.waitDetail[0].queueRegisterId
if (!row.queueRegisterId) {
if (this.waitDetail.length > 0) row = this.waitDetail[0]
}
if (!queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择候诊人员' })
if (!row.queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择候诊人员' })
break;
case "2": //
if (!queueRegisterId) {
if (this.alreadyCalledDetail.length > 0) queueRegisterId = this.alreadyCalledDetail[0].queueRegisterId
if (!row.queueRegisterId) {
if (this.alreadyCalledDetail.length > 0) row = this.alreadyCalledDetail[0]
}
if (!queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择已呼人员' })
if (!row.queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择已呼人员' })
break;
case "9": //
if (!queueRegisterId) {
if (this.overNumberDetail.length > 0) queueRegisterId = this.overNumberDetail[0].queueRegisterId
if (!row.queueRegisterId) {
if (this.overNumberDetail.length > 0) queueRegisterId = this.overNumberDetail[0]
}
if (!queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择过号人员' })
if (!row.queueRegisterId) this.$message.warning({ showClose: true, message: '未可操作的数据,或未选择过号人员' })
break;
}
@ -274,7 +276,7 @@ export default {
.then(res => {
if (res.code > -1) {
this.getQueueRegisterList(this.LocalConfig.doctorCheck.queueRoom, this.LocalConfig.doctorCheck.queueItemTypeIds)
if (this.$peisAPI && completeFlag == '1') this.outShellCall()
if (this.$peisAPI && completeFlag == '1') this.outShellCall(row)
}
})
} else if (completeFlag == '9') {
@ -283,18 +285,20 @@ export default {
},
// api
outShellCall() {
// /api/app/Room/Get
// {
// "roomId": "3a13f191-1c1a-0749-fda4-5b10b0b10c15"
// }
this.$peisAPI.getIsSpeechEnable()
outShellCall(row) {
let roomName = ''
postapi('/api/app/Room/Get', { roomId: this.LocalConfig.doctorCheck.queueRoom })
.then(res => {
if (res.code > -1) {
roomName = res.data.displayName
return this.$peisAPI.getIsSpeechEnable()
}
})
.then(res => {
if (res == 'Y') return this.$peisAPI.speechConnect()
})
.then(res => {
let toOutShell = { SendText: "欢迎光临", RepatPlayNum: 2, Delay: 1 }
let toOutShell = { SendText: `${row.patientName}${roomName}检查`, RepatPlayNum: 3, Delay: 1 }
return this.$peisAPI.speechSendText(JSON.stringify(toOutShell))
})
.catch(err => {
@ -330,9 +334,9 @@ export default {
this.alreadyCalledDetail = []
this.overNumberDetail = []
this.waitQueueRegisterId = ''
this.alreadyQueueRegisterId = ''
this.overQueueRegisterId = ''
this.waitRow = {}
this.alreadyRow = {}
this.overRow = {}
let itemTypeIds = []
itemType.forEach(e => {
@ -394,17 +398,17 @@ export default {
//
rowClickWait(row) {
this.waitQueueRegisterId = row.queueRegisterId
this.waitRow = row
},
//
rowClickAlready(row) {
this.alreadyQueueRegisterId = row.queueRegisterId
this.alreadyRow = row
},
//
rowClickOver(row) {
this.overQueueRegisterId = row.queueRegisterId
this.overRow = row
},
},

224
src/components/occDisease/occReport.vue

@ -34,7 +34,8 @@
</el-select>
</div>
<div class="query">
<el-button @click="btnQuery" size="small" class="commonbutton">查询</el-button>
<el-button @click="btnQuery(true)" size="small" class="commonbutton">预览</el-button>
<el-button @click="btnQuery(false)" size="small" class="commonbutton">打印</el-button>
</div>
<!--
<div class="query">
@ -48,29 +49,30 @@
<div v-show="format == 3" ref="imageDom0">
<div style="background-color: #fff; padding: 15px; border-radius: 8px">
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="tableData" id="standardTableData" ref="standardTableData" style="width: 100%"
:header-cell-class-name="headerStyle">
<el-table-column :label="reportTitle">
<el-table-column :label="`单位: ${customerOrgName||''} 体检次数 ${medicalTimes||''} 开始月份: ${startMonth||''} 结束月份: ${endMonth||''}`">
<el-table-column
:label="`单位: ${customerOrgName || ''} 体检次数 ${medicalTimes || ''} 开始月份: ${startMonth || ''} 结束月份: ${endMonth || ''}`">
<template slot-scope="scope">
<el-table :data="scope.row.patientRegisterPositiveReports" border show-summary
:summary-method="summarizeRegisterCounts" :header-cell-class-name="headerStyle">
<el-table-column label="人员阳性结果清单">
<el-table-column :label="`${startDate||''}
<el-table-column :label="`${startDate || ''}
${endDate||''}
${endDate || ''}
体检人员共计
${sumMedicalNumber|| ''}
${sumMedicalNumber || ''}
其中男
${maleMedicalNumber|| ''}
${maleMedicalNumber || ''}
${femaleMedicalNumber||''}
${femaleMedicalNumber || ''}
其他
${otherMedicalNumber||''}
${otherMedicalNumber || ''}
`">
<el-table-column prop="patientNo" label="档案号" width="120" />
<el-table-column prop="patientName" label="姓名" width="120" />
@ -86,17 +88,17 @@
<el-table :data="scope.row.positivePatientRegisterReportStandards" border
:header-cell-class-name="headerStyle" style="margin-top: 15px">
<el-table-column label="阳性结果人员清单">
<el-table-column :label="`${startDate||''}
<el-table-column :label="`${startDate || ''}
${endDate||''}
${endDate || ''}
体检人员共计
${sumMedicalNumber|| ''}
${sumMedicalNumber || ''}
其中男
${maleMedicalNumber|| ''}
${maleMedicalNumber || ''}
${femaleMedicalNumber||''}
${femaleMedicalNumber || ''}
其他
${otherMedicalNumber||''}
${otherMedicalNumber || ''}
`">
<template slot-scope="scopes">
<el-table :data="scopes.row.patientRegisters" border show-summary
@ -124,20 +126,21 @@
</el-table-column>
</el-table>
<el-table :data="scope.row.diseaseCountStatisticsReports" border :header-cell-class-name="headerStyle"
show-summary :summary-method="summarizeRegisterCount" style="margin-top: 15px">
<el-table :data="scope.row.diseaseCountStatisticsReports" border
:header-cell-class-name="headerStyle" show-summary :summary-method="summarizeRegisterCount"
style="margin-top: 15px">
<el-table-column label="疾病人数统计">
<el-table-column :label="`${startDate||''}
<el-table-column :label="`${startDate || ''}
${endDate||''}
${endDate || ''}
体检人员共计
${sumMedicalNumber|| ''}
${sumMedicalNumber || ''}
其中男
${maleMedicalNumber|| ''}
${maleMedicalNumber || ''}
${femaleMedicalNumber||''}
${femaleMedicalNumber || ''}
其他
${otherMedicalNumber||''}
${otherMedicalNumber || ''}
`">
<el-table-column label="序号" type="index">
</el-table-column>
@ -156,29 +159,30 @@
<div v-show="format == 4" ref="imageDom1">
<div style="background-color: #fff; padding: 15px; border-radius: 8px">
<el-table border :height="flag
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
? window.pageHeight < 600
? 415
: window.pageHeight - 185 - 20
: ''
" :data="reducetableData" id="reducetableData" ref="reducetableData" style="width: 100%"
:header-cell-class-name="headerStyle">
<el-table-column :label="reducereportTitle">
<el-table-column :label="`单位: ${customerOrgName||''} 体检次数 ${medicalTimes||''} 开始月份: ${startMonth||''} 结束月份: ${endMonth||''}`">
<el-table-column
:label="`单位: ${customerOrgName || ''} 体检次数 ${medicalTimes || ''} 开始月份: ${startMonth || ''} 结束月份: ${endMonth || ''}`">
<template slot-scope="scope">
<el-table :data="scope.row.patientRegisterPositiveReports" border show-summary
:summary-method="summarizeRegisterCounts" :header-cell-class-name="headerStyle">
<el-table-column label="人员阳性结果清单">
<el-table-column :label="`${reducestartDate||''}
<el-table-column :label="`${reducestartDate || ''}
${reduceendDate||''}
${reduceendDate || ''}
体检人员共计
${reducesumMedicalNumber||''}
${reducesumMedicalNumber || ''}
其中男
${reducemaleMedicalNumber||''}
${reducemaleMedicalNumber || ''}
${reducefemaleMedicalNumber||''}
${reducefemaleMedicalNumber || ''}
其他
${reduceotherMedicalNumber||''}
${reduceotherMedicalNumber || ''}
`">
<el-table-column prop="patientNo" label="档案号" width="120" />
<el-table-column prop="patientName" label="姓名" width="120" />
@ -195,17 +199,17 @@
:header-cell-class-name="headerStyle" show-summary :summary-method="summarizeRegisterCount"
style="margin-top: 15px">
<el-table-column label="阳性结果人员清单">
<el-table-column :label="`${reducestartDate||''}
<el-table-column :label="`${reducestartDate || ''}
${reduceendDate||''}
${reduceendDate || ''}
体检人员共计
${reducesumMedicalNumber||''}
${reducesumMedicalNumber || ''}
其中男
${reducemaleMedicalNumber||''}
${reducemaleMedicalNumber || ''}
${reducefemaleMedicalNumber||''}
${reducefemaleMedicalNumber || ''}
其他
${reduceotherMedicalNumber||''}
${reduceotherMedicalNumber || ''}
`">
<el-table-column label="序号" type="index">
</el-table-column>
@ -216,20 +220,21 @@
</el-table-column>
</el-table>
<el-table :data="scope.row.diseaseCountStatisticsReports" border :header-cell-class-name="headerStyle"
show-summary :summary-method="summarizeRegisterCount" style="margin-top: 15px">
<el-table :data="scope.row.diseaseCountStatisticsReports" border
:header-cell-class-name="headerStyle" show-summary :summary-method="summarizeRegisterCount"
style="margin-top: 15px">
<el-table-column label="疾病人数统计">
<el-table-column :label="`${reducestartDate||''}
<el-table-column :label="`${reducestartDate || ''}
${reduceendDate||''}
${reduceendDate || ''}
体检人员共计
${reducesumMedicalNumber||''}
${reducesumMedicalNumber || ''}
其中男
${reducemaleMedicalNumber||''}
${reducemaleMedicalNumber || ''}
${reducefemaleMedicalNumber||''}
${reducefemaleMedicalNumber || ''}
其他
${reduceotherMedicalNumber||''}
${reduceotherMedicalNumber || ''}
`">
<el-table-column label="序号" type="index">
</el-table-column>
@ -331,9 +336,8 @@ export default {
...mapState(["window", "dict", "patientRegister", "report"]),
},
methods: {
btnQuery() {
let body = {},
customerOrgs = [];
btnQuery(isPreview) {
let customerOrgs = [];
if (this.report.dataCusOrgOCX.length > 0) {
this.report.dataCusOrgOCX.forEach((e) => {
let rd = {
@ -361,64 +365,64 @@ export default {
});
}
body.customerOrgs = customerOrgs;
if (this.completeFlag) body.completeFlag = this.completeFlag;
body.isAudit = this.classification;
if (customerOrgs.length == 0) {
this.$message.warning({ showClose: true, message: "请选择单位" })
return
}
if (this.format == 0) {
postapi(
"/api/customerreport/getunitphysicalexaminationreportstandard",
body
).then((res) => {
if (res.code != -1) {
this.tableData = [];
this.tableData.push(res.data);
this.reportTitle = res.data.reportTitle;
this.customerOrgName = res.data.customerOrgName;
this.medicalTimes = res.data.medicalTimes;
this.startMonth = res.data.startMonth;
this.endMonth = res.data.endMonth;
this.startDate = res.data.startDate;
this.endDate = res.data.endDate;
this.sumMedicalNumber = res.data.sumMedicalNumber;
this.maleMedicalNumber = res.data.maleMedicalNumber;
this.femaleMedicalNumber = res.data.femaleMedicalNumber;
this.otherMedicalNumber = res.data.otherMedicalNumber;
}
});
} else if (this.format == 1) {
postapi(
"/api/customerreport/getunitphysicalexaminationreportreduce",
body
).then((res) => {
if (res.code != -1) {
this.reducetableData = [];
this.reducetableData.push(res.data);
this.reducereportTitle = res.data.reportTitle;
this.reducecustomerOrgName = res.data.customerOrgName;
this.reducemedicalTimes = res.data.medicalTimes;
this.reducestartMonth = res.data.startMonth;
this.reduceendMonth = res.data.endMonth;
this.reducestartDate = res.data.startDate;
this.reduceendDate = res.data.endDate;
this.reducesumMedicalNumber = res.data.sumMedicalNumber;
this.reducemaleMedicalNumber = res.data.maleMedicalNumber;
this.reducefemaleMedicalNumber = res.data.femaleMedicalNumber;
this.reduceotherMedicalNumber = res.data.otherMedicalNumber;
}
});
if (!this.$peisAPI) {
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" })
return
}
//
// if (this.format == 0)
let ReportCode = '0009';
let token = window.sessionStorage.getItem('token');
let user = window.sessionStorage.getItem('user');
let toOutShell = {
ReportCode,
token,
isBuildImage: 'N',
IsUploadPdf: 'N',
preViewCanPrint: "Y",
Parameters: [
{ Name: "printer", Value: user },
{ Name: "hisLog", Value: "pic/hisLog.jpg" },
{ Name: 'pageFooter', Value: 'pic/peisQrCode.jpg' },
],
BusinessCode:JSON.stringify(customerOrgs)
};
console.log('toOutShell', toOutShell)
if (isPreview) {
this.$peisAPI.printPre(JSON.stringify(toOutShell))
.then(res => {
let lres = JSON.parse(res)
if (lres.code < 0) {
this.$message.error({ showClose: true, message: lres.message })
}
})
.catch((err) => {
this.$message.error({ showClose: true, message: err })
});
} else {
postapi(
"/api/customerreport/getunitphysicalexaminationreportexportword",
body
).then((res) => {
if (res.code != -1) {
const sysConfig = JSON.parse(window.sessionStorage.getItem('sysConfig'))
this.reportUrl = sysConfig.apiurl + res.data.reportUrl;
}
});
this.$peisAPI.print(JSON.stringify(toOutShell))
.then(res => {
let lres = JSON.parse(res)
if (lres.code < 0) {
this.$message.error({ showClose: true, message: lres.message })
}
})
.catch((err) => {
this.$message.error({ showClose: true, message: err })
});
}
},
summarizeRegisterCounts(param) {
const { columns, data } = param;
const sums = [];
@ -579,6 +583,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
:deep .left-align .cell {
text-align: left !important;
}
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 5px;
@ -598,7 +603,8 @@ page-break-before: avoid;}}`, // 去除页眉页脚
::v-deep .el-icon-search:before {
color: #00F;
}
.query:last-child{
.query:last-child {
margin-right: 0;
}
</style>

4
src/components/queue/Queue.vue

@ -44,10 +44,10 @@
<el-table-column label="房间" min-width="80" prop="roomName" align="center" />
</el-table>
<div style="margin: 25px 0 10px 0;">
<el-button class="commonbutton" @click="btnQueue">人工排队</el-button>
<el-button class="commonbutton" @click="btnQueue">人工分诊排队</el-button>
</div>
<div>
<el-button class="commonbutton" @click="btnQueueAuto">自动排队</el-button>
<el-button class="commonbutton" @click="btnQueueAuto">AI智能分诊</el-button>
</div>
<div style="margin: 10px 0;">当前排队房间</div>
<div style="height: 40px;margin-left: 20px;">

Loading…
Cancel
Save