| | |
| | | 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; |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleAddpatient(scope.row)" |
| | | @click="handleAddpatient(scope.row.taskid, scope.row.type)" |
| | | ><span class="button-hz" |
| | | ><i class="el-icon-circle-plus-outline"></i>新增患者</span |
| | | ></el-button |
| | |
| | | <Patient-Selection |
| | | ref="Patient" |
| | | :dialogVisiblepatient="dialogVisiblepatient" |
| | | :overallCase="Patientlist" |
| | | :tableLabel="tableLabelhz" |
| | | @addoption="dialogVisiblepatient = false" |
| | | @addoption="addoption" |
| | | @kkoption="dialogVisiblepatient = true" |
| | | /> |
| | | </div> |
| | |
| | | } from "@/api/system/user"; |
| | | import { |
| | | getTasklist, |
| | | getTaskInfo, |
| | | Editsingletask, |
| | | delTaskInfo, |
| | | Questionnairetasklist, |
| | | Questionnairetaskget, |
| | | Questionnairetasksponsor, |
| | | TaskTemplateSendExecution, |
| | | } from "@/api/AiCentre/index"; |
| | | import store from "@/store"; |
| | |
| | | export default { |
| | | name: "Tasklist", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], |
| | | components: { Treeselect }, |
| | | components: { Treeselect, PatientSelection }, |
| | | data() { |
| | | return { |
| | | // 遮罩层 |
| | |
| | | const item = data.find((item) => item.value === value); |
| | | return item ? item.label : null; |
| | | }, |
| | | //患者添加相关 |
| | | handleAddpatient(row) { |
| | | this.allpids = []; |
| | | this.overallCase.forEach((item) => { |
| | | this.allpids.push(item.patid); |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 4) { |
| | | this.tableLabelhz = [ |
| | | // { 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.tableLabelhz = [ |
| | | { 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" }, |
| | | ]; |
| | | } |
| | | if (this.allpids[0]) { |
| | | this.patientqueryParams.pids = this.allpids; |
| | | } else { |
| | | this.patientqueryParams.pids = null; |
| | | } |
| | | // 来源判断 |
| | | |
| | | if (this.patientqueryParams.allhosp == 4) { |
| | | this.patientqueryParams.hospitaldistrictcodes = []; |
| | | this.patientqueryParams.deptcodes = []; |
| | | } else if (this.patientqueryParams.allhosp == 1) { |
| | | this.patientqueryParams.deptcodes = |
| | | this.patientqueryParams.leaveldeptcodes; |
| | | this.patientqueryParams.hospitaldistrictcodes = |
| | | this.patientqueryParams.leavehospitaldistrictcodes; |
| | | this.patientqueryParams.leavehospitaldistrictcodes = []; |
| | | this.patientqueryParams.leaveldeptcodes = []; |
| | | } |
| | | getTaskpatientQC(this.patientqueryParams).then((response) => { |
| | | this.patientuserList = response.rows; |
| | | this.patientuserList.forEach((item) => { |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | }); |
| | | this.patienttotal = response.total; |
| | | this.loading = false; |
| | | this.Restorecheck(); |
| | | }); |
| | | this.dialogVisiblepatient = true; |
| | | handleAddpatient(taskid) { |
| | | this.$refs.Patient.handleAddpatient(taskid); |
| | | this.dialogVisiblepatient = true; // 手动控制弹窗显示 |
| | | }, |
| | | // 查询 |
| | | handleQuery() { |
| | | // 获取外部患者 |
| | | |
| | | if (this.patientqueryParams.allhosp == 6) { |
| | | this.Externallist(); |
| | | console.log(); |
| | | |
| | | return; |
| | | } |
| | | if (this.patientqueryParams.searchscope == 1) { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.patientqueryParams.leavehospitaldistrictcodes = []; |
| | | } else if (this.patientqueryParams.searchscope == 2) { |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.patientqueryParams.leaveldeptcodes = []; |
| | | } else { |
| | | this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.patientqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if ( |
| | | !this.patientqueryParams.leavehospitaldistrictcodes || |
| | | !this.patientqueryParams.leavehospitaldistrictcodes[0] |
| | | ) |
| | | this.patientqueryParams.leavehospitaldistrictcodes = null; |
| | | if ( |
| | | !this.patientqueryParams.leaveldeptcodes || |
| | | !this.patientqueryParams.leaveldeptcodes[0] |
| | | ) |
| | | this.patientqueryParams.leaveldeptcodes = null; |
| | | this.handleAddpatient(); |
| | | addoption() { |
| | | this.dialogVisiblepatient = false; // 手动控制弹窗显示 |
| | | this.handleQuery(); |
| | | }, |
| | | }, |
| | | }; |