¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | title="æ´¾åæ£è
éæ©" |
| | | :visible.sync="dialogVisiblepatient" |
| | | width="70%" |
| | | :before-close="handleClosehz" |
| | | > |
| | | <div class="examine-jic"> |
| | | <div style="margin: 0 10px 20px 10px"> |
| | | <el-card class="box-card"> |
| | | <el-tag |
| | | v-for="item in overallCase" |
| | | :key="item.icdid" |
| | | type="primary" |
| | | closables |
| | | @close="handleClose(item)" |
| | | > |
| | | {{ item.name }} |
| | | </el-tag> |
| | | <div style="margin-top: 20px; text-align: right"> |
| | | å
±éæ©<span |
| | | style="font-size: 18px; color: #409eff; margin: 0 10px" |
| | | >{{ overallCase.length }}</span |
| | | >使£è
|
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div class="jic-value"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | | :model="patientqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="æ£è
ï¼"> |
| | | <el-input |
| | | v-model="patientqueryParams.name" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
ç±»å"> |
| | | <el-select |
| | | v-model="patientqueryParams.allhosp" |
| | | placeholder="è¯·éæ©æ°å¢ç±»å" |
| | | > |
| | | <el-option |
| | | v-for="item in taskoptions" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
è¯æï¼"> |
| | | <el-input |
| | | v-model="patientqueryParams.leavediagname" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="主治å»çï¼"> |
| | | <el-input |
| | | v-model="patientqueryParams.drname" |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- éæ©æ£è
å表 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="donorchargeList" |
| | | tooltip-effect="dark" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column |
| | | fixed="left" |
| | | class="checkall" |
| | | type="selection" |
| | | width="55" |
| | | > |
| | | </el-table-column> |
| | | <div v-for="(item, index) in tableLabel"> |
| | | <el-table-column |
| | | v-if="item.label == 'åºé¢æ¥æ'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.endtime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if="item.label == 'æ§å«'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "ç·" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | v-if="item.label != 'æ§å«' && item.label != 'åºé¢æ¥æ'" |
| | | :key="index" |
| | | :prop="item.prop" |
| | | :width="item.width" |
| | | :label="item.label" |
| | | :formatter="formatData" |
| | | > |
| | | </el-table-column> |
| | | </div> |
| | | </el-table> |
| | | </el-row> |
| | | <pagination |
| | | v-show="patienttotal > 0" |
| | | :total="patienttotal" |
| | | :page.sync="patientqueryParams.pageNum" |
| | | :limit.sync="patientqueryParams.pageSize" |
| | | @pagination="handleQuery" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="$emit('addoption')">å æ¶</el-button> |
| | | <el-button type="primary" @click="AddDispatchpatients" |
| | | >ç¡®å®æ·»å </el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getillnesslist, |
| | | deltargetillness, |
| | | getTaskpatientQC, |
| | | Questionnairetaskgetson, |
| | | Externallist, |
| | | Editsingletask, |
| | | } from "@/api/AiCentre/index"; |
| | | export default { |
| | | name: "Diseasetotality", |
| | | data() { |
| | | return { |
| | | patienttotal: 0, // |
| | | allpids: [], |
| | | // å½å页é䏿°æ® |
| | | multipleSelection: [], |
| | | overallpatin: [], |
| | | form: {}, |
| | | patientqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | allhosp: "4", |
| | | pids: null, |
| | | }, |
| | | donorchargeList: [], |
| | | donorchargeanlList: [], //æ¡ä¾å表 |
| | | taskoptions: [ |
| | | { |
| | | value: "4", |
| | | label: "åºé¢ç
人", |
| | | }, |
| | | { |
| | | value: "1", |
| | | label: "å¨é¢ç
人", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "é¨è¯ç
人", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "使£ç
人", |
| | | }, |
| | | { |
| | | value: "6", |
| | | label: "é¢å¤æ£è
", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "ææ¯ç
人", |
| | | }, |
| | | ], |
| | | overallCase:[], |
| | | tableLabel: [ |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "inhosptime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "主治å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "240", prop: "dept" }, |
| | | { label: "ç
åº", width: "240", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | | }; |
| | | }, |
| | | |
| | | props: { |
| | | dialogVisiblepatient: { |
| | | type: Boolean, |
| | | default: () => { |
| | | return false; |
| | | }, |
| | | }, |
| | | |
| | | // 5é®å·æ¨¡æ¿ã3é访模æ¿ã6宣æ |
| | | type: { |
| | | type: Number, |
| | | default: () => { |
| | | return 5; |
| | | }, |
| | | }, |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | mounted() { |
| | | // this.handleAddpatient(); |
| | | }, |
| | | |
| | | watch: {}, |
| | | |
| | | methods: { |
| | | // æ°æ®è¿æ»¤ |
| | | formatData(row, column, cellValue) { |
| | | if (column.property === "createType") { |
| | | if (cellValue === 1) { |
| | | return "èªå¨"; |
| | | } |
| | | return "æå¨"; |
| | | } |
| | | if ( |
| | | column.property === "createTime" || |
| | | column.property === "inhosptime" |
| | | ) { |
| | | if (cellValue === null) { |
| | | return ""; |
| | | } |
| | | return dayjs(cellValue).format("YYYY-MM-DD "); |
| | | } |
| | | return cellValue; |
| | | }, |
| | | handleClosehz() { |
| | | this.$emit("addoption"); |
| | | }, |
| | | // éæ©æ°æ®æ ç¾å é¤äºä»¶ |
| | | handleClose(item) { |
| | | console.log(item); |
| | | if (this.multipleSelection.indexOf(item) == -1 && !item.outid) { |
| | | this.overallCase.splice(this.overallCase.indexOf(item), 1); |
| | | } else if (item.outid) { |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤å称为"' + item.icd10name + '"çæ°æ®é¡¹ï¼') |
| | | .then(() => { |
| | | this.multipleSelection.splice( |
| | | this.multipleSelection.indexOf(item), |
| | | 1 |
| | | ); |
| | | deltargetillness(item.id).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | this.overallCase.splice(this.overallCase.indexOf(item), 1); |
| | | } |
| | | }); |
| | | // åæ¶æè½½ç¶æ |
| | | this.$refs.multipleTable.toggleRowSelection(item, false); |
| | | }) |
| | | .catch(() => {}); |
| | | } else { |
| | | this.overallCase.splice(this.overallCase.indexOf(item), 1); |
| | | this.multipleSelection.splice(this.multipleSelection.indexOf(item), 1); |
| | | // åæ¶æè½½ç¶æ |
| | | this.$refs.multipleTable.toggleRowSelection(item, false); |
| | | } |
| | | }, |
| | | resetQuery() { |
| | | this.patientqueryParams.name = null; |
| | | this.handleAddpatient(); |
| | | }, |
| | | // è§¦åæ¥è¯¢äºä»¶ |
| | | handleAddpatients() { |
| | | this.$emit("kkoption"); |
| | | |
| | | getillnesslist(this.patientqueryParams).then((res) => { |
| | | this.donorchargeList = res.rows; |
| | | this.patienttotal = res.total; |
| | | this.Restorecheck(); |
| | | }); |
| | | }, |
| | | // è§¦åæ¥è¯¢äºä»¶ |
| | | handleAddpatient(taskid) { |
| | | this.$emit("kkoption"); |
| | | if (taskid != this.taskid) { |
| | | this.recover(); |
| | | } |
| | | if (taskid) { |
| | | this.taskid = taskid; |
| | | Questionnairetaskgetson({ taskid: this.taskid }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.form = res.data; |
| | | this.overallpatin = this.form.patTaskRelevances.concat(); |
| | | this.allpids = []; |
| | | this.overallpatin.forEach((item) => { |
| | | this.allpids.push(item.patid); |
| | | }); |
| | | if (this.allpids[0]) { |
| | | this.patientqueryParams.pids = this.allpids; |
| | | } else { |
| | | this.patientqueryParams.pids = null; |
| | | } |
| | | this.handleQuery(); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | handleQuery() { |
| | | // è·åå¤é¨æ£è
|
| | | if (this.patientqueryParams.allhosp == 6) { |
| | | this.Externallist(); |
| | | return; |
| | | } |
| | | console.log(11); |
| | | |
| | | if (this.patientqueryParams.allhosp == 4) { |
| | | this.tableLabel = [ |
| | | // { label: "å
¥é¢æ¥æ", width: "170", prop: "starttime" }, |
| | | { label: "åºé¢æ¥æ", width: "150", prop: "endtime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "180", prop: "dept" }, |
| | | { label: "ç
åº", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabel = [ |
| | | { label: "å
¥é¢æ¥æ", width: "150", prop: "starttime" }, |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "æ£è
è¯æ", width: "", prop: "leavediagname" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | { label: "责任æ¤å£«", width: "", prop: "nurseName" }, |
| | | { label: "å»ç", width: "", prop: "drname" }, |
| | | { label: "ç§å®¤", width: "180", prop: "dept" }, |
| | | { label: "ç
åº", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | | } |
| | | console.log(this.patientqueryParams.allhosp); |
| | | |
| | | // è·åæ£è
æ°æ® |
| | | getTaskpatientQC(this.patientqueryParams).then((response) => { |
| | | this.donorchargeList = response.rows; |
| | | this.donorchargeList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.Restorecheck(); |
| | | |
| | | this.patienttotal = response.total; |
| | | }); |
| | | }, |
| | | // è·åå¤é¨æ£è
导å
¥å表 |
| | | Externallist() { |
| | | this.tableLabel = [ |
| | | { label: "æ£è
", width: "", prop: "name" }, |
| | | { label: "身份è¯", width: "200", prop: "idcardno" }, |
| | | { label: "æ§å«", width: "", prop: "sex" }, |
| | | { label: "å¹´é¾", width: "", prop: "age" }, |
| | | { label: "åºé¢å¤©æ°", width: "", prop: "endDay" }, |
| | | ]; |
| | | this.patientqueryParams.pageSize = 1000; |
| | | |
| | | Externallist(this.patientqueryParams).then((response) => { |
| | | this.donorchargeList = response.rows; |
| | | this.donorchargeList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | // this.dialogVisiblepatient = true; |
| | | this.patienttotal = response.total; |
| | | }); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | if (this.decision) return; |
| | | // 夿æ¯å¦æå é¤ |
| | | if (this.multipleSelection.length <= selection.length) { |
| | | this.multipleSelection = selection; |
| | | } else { |
| | | this.multipleSelection.forEach((item) => { |
| | | if (selection.includes(item)) { |
| | | } else { |
| | | if (this.multipleSelection.length == 1) { |
| | | this.multipleSelection = []; |
| | | } else { |
| | | this.multipleSelection.splice( |
| | | this.multipleSelection.indexOf(item), |
| | | 1 |
| | | ); |
| | | } |
| | | if (this.overallCase.length == 1) { |
| | | this.overallCase = []; |
| | | } else { |
| | | this.overallCase.splice(this.overallCase.indexOf(item), 1); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | // èµå¼ç»æ´ä½é䏿°ç» |
| | | this.multipleSelection.forEach((item) => { |
| | | if (this.overallCase.every((obj) => obj.name != item.name)) { |
| | | item.isoperation = 1; |
| | | item.patid = item.id; |
| | | item.hospType = this.patientqueryParams.allhosp; |
| | | item.sfzh = item.idcardno; |
| | | item.deptCode = item.deptcode; |
| | | item.deptName = item.dept; |
| | | item.admindate = item.inhosptime; |
| | | item.diagname = item.leavediagname; |
| | | item.sfzh = item.idcardno; |
| | | if (this.patientqueryParams.allhosp == 6) { |
| | | item.patfrom = 1; |
| | | } |
| | | this.overallCase.push(item); |
| | | } |
| | | }); |
| | | console.log(this.multipleSelection, "触åéæ©åmultipleSelection"); |
| | | }, |
| | | // 忢页忢å¤éä¸ |
| | | Restorecheck() { |
| | | console.log(this.overallCase, "this.overallCase"); |
| | | const allid = this.overallCase.map((item) => item.name); |
| | | const overlap = this.donorchargeList.filter((value) => { |
| | | return allid.includes(value.name); |
| | | }); |
| | | // ä¿æidsåå½å页é¢çåæ¥æ§ |
| | | this.multipleSelection = overlap; |
| | | console.log(this.multipleSelection, "è¿å
¥å页multipleSelection"); |
| | | |
| | | this.toggleSelection(overlap); |
| | | }, |
| | | // æè½½éæ©ç¶æ |
| | | toggleSelection(rows) { |
| | | if (rows) { |
| | | this.decision = true; |
| | | this.$nextTick(() => { |
| | | rows.forEach((row) => { |
| | | this.$refs.multipleTable.toggleRowSelection(row, true); |
| | | }); |
| | | this.decision = false; |
| | | }); |
| | | console.log(123); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }, |
| | | AddDispatchpatients() { |
| | | console.log(this.overallCase); |
| | | this.form.patTaskRelevances.push(...this.overallCase); |
| | | console.log(this.form.patTaskRelevances); |
| | | this.form.isoperation=2; |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | } else { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | } |
| | | this.recover(); |
| | | this.$emit("addoption"); |
| | | |
| | | } |
| | | }); |
| | | // this.dialogVisiblepatient = false; |
| | | // this.$emit("addoption"); |
| | | }, |
| | | recover() { |
| | | this.donorchargeList = []; |
| | | this.donorchargeanlList = []; |
| | | this.multipleSelection = []; |
| | | this.allpids = []; |
| | | this.overallpatin = []; |
| | | this.form = {}; |
| | | this.patientqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | allhosp: "4", |
| | | pids: null, |
| | | }; |
| | | this.overallCase = []; |
| | | // this.dialogVisiblepatient = false; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .examine-jic { |
| | | .headline { |
| | | font-size: 24px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .Add-details { |
| | | font-size: 18px; |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .jic-value { |
| | | font-size: 20px; |
| | | border-top: 1px solid #a7abac; |
| | | padding: 10px; |
| | | margin-bottom: 10px; |
| | | .details-jic { |
| | | padding: 10px 15px; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .details-title { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | div:nth-child(2) { |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .details-renw { |
| | | background: #e4ebfc; |
| | | padding: 15px 5px; |
| | | border-radius: 5px; |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.el-table .el-table__header th:first-child .el-checkbox { |
| | | display: none; |
| | | } |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |