|  |  | 
 |  |  |               closables | 
 |  |  |               @close="handleClose(item)" | 
 |  |  |             > | 
 |  |  |               {{ item.icdname }} | 
 |  |  |               {{ 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> | 
 |  |  | 
 |  |  |               :inline="true" | 
 |  |  |               label-width="98px" | 
 |  |  |             > | 
 |  |  |               <el-form-item label="疾病名称" prop="name"> | 
 |  |  |               <el-form-item label="患者:"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="patientqueryParams.icdname" | 
 |  |  |                   placeholder="请输入疾病名称" | 
 |  |  |                   @keyup.enter.native="handleAddpatient" | 
 |  |  |                 /> | 
 |  |  |                   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> | 
 |  |  | 
 |  |  |                   type="primary" | 
 |  |  |                   icon="el-icon-search" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="handleAddpatient" | 
 |  |  |                   @click="handleQuery" | 
 |  |  |                   >搜索</el-button | 
 |  |  |                 > | 
 |  |  |                 <el-button | 
 |  |  | 
 |  |  |                 > | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-form> | 
 |  |  |             <!-- 选择器官列表 --> | 
 |  |  |             <!-- 选择患者列表 --> | 
 |  |  |             <el-table | 
 |  |  |               ref="multipleTable" | 
 |  |  |               :data="donorchargeList" | 
 |  |  | 
 |  |  |               style="width: 100%" | 
 |  |  |               @selection-change="handleSelectionChange" | 
 |  |  |             > | 
 |  |  |               <el-table-column class="checkall" type="selection" width="55"> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 prop="icdid" | 
 |  |  |                 label="疾病编号" | 
 |  |  |                 width="100" | 
 |  |  |                 show-overflow-tooltip | 
 |  |  |                 fixed="left" | 
 |  |  |                 class="checkall" | 
 |  |  |                 type="selection" | 
 |  |  |                 width="55" | 
 |  |  |               > | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column label="疾病名称" show-overflow-tooltip> | 
 |  |  |                 <template slot-scope="scope">{{ scope.row.icdname }}</template> | 
 |  |  |               </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 prop="icdcode" label="疾病编码" width="150"> | 
 |  |  |               </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 | 
 |  |  | 
 |  |  |             :total="patienttotal" | 
 |  |  |             :page.sync="patientqueryParams.pageNum" | 
 |  |  |             :limit.sync="patientqueryParams.pageSize" | 
 |  |  |             @pagination="handleAddpatient" | 
 |  |  |             @pagination="handleQuery" | 
 |  |  |           /> | 
 |  |  |         </div> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import { getillnesslist, deltargetillness } from "@/api/AiCentre/index"; | 
 |  |  | import { | 
 |  |  |   getillnesslist, | 
 |  |  |   deltargetillness, | 
 |  |  |   getTaskpatientQC, | 
 |  |  |   Questionnairetaskgetson, | 
 |  |  |   Externallist, | 
 |  |  |   Editsingletask, | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | export default { | 
 |  |  |   name: "Diseasetotality", | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       patienttotal: 0, // | 
 |  |  |       allpids: [], | 
 |  |  |       // 当前页选中数据 | 
 |  |  |       multipleSelection: [], | 
 |  |  |       // 总选中数据 | 
 |  |  |       // overallCase: [], | 
 |  |  |       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" }, | 
 |  |  |       ], | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  | 
 |  |  |         return false; | 
 |  |  |       }, | 
 |  |  |     }, | 
 |  |  |     // 选中 | 
 |  |  |     overallCase: { | 
 |  |  |       type: Array, | 
 |  |  |       required: true, | 
 |  |  |       default: () => [], | 
 |  |  |     }, | 
 |  |  |     pids: { | 
 |  |  |       type: Array, | 
 |  |  |       required: true, | 
 |  |  |       default: () => [], | 
 |  |  |     }, | 
 |  |  |     allhosp: { | 
 |  |  |       type: String, | 
 |  |  |       required: true, | 
 |  |  |       default: () => [], | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 5问卷模板、3随访模板、6宣教 | 
 |  |  |     type: { | 
 |  |  |       type: Number, | 
 |  |  | 
 |  |  |   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) { | 
 |  |  |         console.log(1); | 
 |  |  |         this.overallCase.splice(this.overallCase.indexOf(item), 1); | 
 |  |  |       } else if (item.outid) { | 
 |  |  |         this.$modal | 
 |  |  | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     resetQuery() { | 
 |  |  |       this.patientqueryParams.icdname = null; | 
 |  |  |       this.patientqueryParams.name = null; | 
 |  |  |       this.handleAddpatient(); | 
 |  |  |     }, | 
 |  |  |     // 触发查询事件 | 
 |  |  |     handleAddpatient(row) { | 
 |  |  |     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; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  | 
 |  |  |       } | 
 |  |  |       // 赋值给整体选中数组 | 
 |  |  |       this.multipleSelection.forEach((item) => { | 
 |  |  |  | 
 |  |  |         if (this.overallCase.every((obj) => obj.icdname != item.icdname)) { | 
 |  |  |         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); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  | 
 |  |  |     // 切换页后恢复选中 | 
 |  |  |     Restorecheck() { | 
 |  |  |       console.log(this.overallCase, "this.overallCase"); | 
 |  |  |       const allid = this.overallCase.map((item) => item.icdname); | 
 |  |  |       const allid = this.overallCase.map((item) => item.name); | 
 |  |  |       const overlap = this.donorchargeList.filter((value) => { | 
 |  |  |         return allid.includes(value.icdname); | 
 |  |  |         return allid.includes(value.name); | 
 |  |  |       }); | 
 |  |  |       // 保持ids和当前页面的同步性 | 
 |  |  |       this.multipleSelection = overlap; | 
 |  |  | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     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; | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; |