| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-form-item label="任务关联" prop="longTask"> |
| | | <el-radio-group v-model="form.appltype"> |
| | | <el-radio label="1">科室关联</el-radio> |
| | | <el-radio label="2">病区关联</el-radio> |
| | | <el-radio label="3">疾病关联</el-radio> |
| | | <el-radio label="4">手术关联</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-row v-if="form.appltype == 1"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用科室" prop="region"> |
| | | <el-select |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :value="item.deptCode" |
| | | > |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-row v-if="form.appltype == 2"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用病区" prop="region"> |
| | | <el-select |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row v-if="form.appltype == 3"> |
| | | <!-- <el-col :span="20" |
| | | ><el-form-item label="适用疾病" prop="region"> |
| | | <el-select |
| | | v-model="illnesscodes" |
| | | style="width: 400px" |
| | | @remove-tag="removediagg" |
| | | size="medium" |
| | | :remote-method="remotedonor" |
| | | multiple |
| | | filterable |
| | | remote |
| | | placeholder="请选择病区" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in donorchargeList" |
| | | :key="item.icdcode" |
| | | :label="item.icdname" |
| | | :value="item.icdcode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> --> |
| | | <div class="xinz-infs"> |
| | | <el-form-item> |
| | | <template #label> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | | content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" |
| | | placement="top-start" |
| | | > |
| | | <i class="el-icon-warning-outline"></i> |
| | | </el-tooltip> |
| | | </template> |
| | | <div style="margin-bottom: 10px"> |
| | | <el-button |
| | | type="warning" |
| | | @click="$refs.child.handleAddpatient()" |
| | | >添加疾病诊断</el-button |
| | | > |
| | | </div> |
| | | <el-tag |
| | | v-for="tag in diagglist" |
| | | @close="removediagg(tag.icd10code)" |
| | | type="warning" |
| | | closable |
| | | :disable-transitions="false" |
| | | > |
| | | {{ tag.icdname }} |
| | | </el-tag> |
| | | <!-- <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> --> |
| | | </el-form-item> |
| | | </div> |
| | | </el-row> |
| | | <el-row v-if="form.appltype == 4"> |
| | | <el-col :span="20" |
| | | ><el-form-item label="适用手术" prop="region"> |
| | | <el-select |
| | | v-model="operationcodes" |
| | | style="width: 400px" |
| | | @remove-tag="removeopera" |
| | | size="medium" |
| | | :remote-method="remoteopcode" |
| | | multiple |
| | | filterable |
| | | remote |
| | | placeholder="请选择手术" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in baseoperaList" |
| | | :label="item.opdesc" |
| | | :value="item.opcode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | |
| | | <!-- 选择患者列表 --> |
| | | <SFtable |
| | | ref="multipleTable" |
| | | |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :currentList="patientuserList" |
| | | :tableLabel="tableLabelhz" |
| | |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <div class="xinz-infs"> |
| | | <el-form-item> |
| | | <template #label> |
| | | 适用疾病 |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | | content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" |
| | | placement="top-start" |
| | | > |
| | | <i class="el-icon-warning-outline"></i> |
| | | </el-tooltip> |
| | | </template> |
| | | |
| | | <el-tag |
| | | v-for="tag in illnesslist" |
| | | :key="tag.icdid" |
| | | type="warning" |
| | | :disable-transitions="false" |
| | | > |
| | | {{ tag.icdname }} |
| | | </el-tag> |
| | | <!-- <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> --> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="问卷描述" prop="description"> |
| | | <el-input |
| | | type="textarea" |
| | |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="问卷名称"> |
| | | <el-input v-model="topqueryParams.svyname"></el-input> |
| | | <el-input |
| | | v-model="topqueryParams.svyname" |
| | | @keyup.enter.native="handleQuerymb" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="适用形式" prop="status"> |
| | | <el-select v-model="topqueryParams.topica" placeholder="请选择"> |
| | |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | <Optional-Form |
| | | ref="child" |
| | | :dialogVisiblepatient="dialogVisiblepatientjb" |
| | | :overallCase="diagglist" |
| | | @addoption="dialogVisiblepatientjb = false" |
| | | @kkoption="dialogVisiblepatientjb = true" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import store from "@/store"; |
| | | import { |
| | | getTaskpatientQC, |
| | | getlibrarylist, |
| | | taskoperhospgetsondel, |
| | | taskdiaghospgetsondel, |
| | | getillnesslist, |
| | | getbaseopera, |
| | | Externallist, |
| | | getQtemplatelist, |
| | | getQtemplateobj, |
| | |
| | | getillness, |
| | | Editsingletask, |
| | | getQtemplateclassify, |
| | | depthospgetsonlist, |
| | | taskdepthospgetsondel, |
| | | taskdepthospgetsonlist, |
| | | taskdiaggetlist, |
| | | taskopergetlist, |
| | | } from "@/api/AiCentre/index"; |
| | | |
| | | import OptionalForm from "@/components/OptionalForm"; //正则组件 |
| | | import SFtable from "@/components/SFtable"; //表格组件 |
| | | import { MessageBox, } from "element-ui"; |
| | | import { MessageBox } from "element-ui"; |
| | | |
| | | export default { |
| | | name: "ServiceDetails", |
| | |
| | | loading: false, // 遮罩层 |
| | | patientloading: false, // 遮罩层 |
| | | dialogVisiblepatient: false, //添加患者弹框 |
| | | dialogVisiblepatientjb: false, //添加疾病弹框 |
| | | deptcodesWards: [], //科室数据 |
| | | leavehospitaldistrictcodes: [], //病区数据 |
| | | operationcodes: [], //手术数据 |
| | | illnesscodes: [], //疾病数据 |
| | | radio: 1, |
| | | checkboxlist: [], |
| | | tableLabel: [], |
| | | questionList: [], |
| | | donorchargeList: [], |
| | | baseoperaList: [], |
| | | usable: [ |
| | | { value: "0", label: "可用" }, |
| | | { value: "1", label: "停用" }, |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。", |
| | | kcb: |
| | | "亲爱的患者/家属,我们是" + |
| | | localStorage.getItem("orgname") + |
| | | "的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!", |
| | | }, |
| | | taskoptions: [ |
| | |
| | | value: "6", |
| | | label: "院外患者", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "手术病人", |
| | | }, |
| | | ], |
| | | source: [ |
| | | { |
| | |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "心电随访", |
| | | value: "1", |
| | | label: "监测评估", |
| | | }, |
| | | { |
| | | value: 2, |
| | | value: "2", |
| | | label: "出院随访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "影像随访", |
| | | value: "3", |
| | | label: "门诊随访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | value: "4", |
| | | label: "宣教关怀", |
| | | }, |
| | | { |
| | | value: 5, |
| | | value: "5", |
| | | label: "复诊管理", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满意度调查", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "患者报告", |
| | | }, |
| | | // { |
| | | // value: "8", |
| | | // label: "其他通知", |
| | | // }, |
| | | { |
| | | value: "9", |
| | | label: "体检随访", |
| | | }, |
| | | // { |
| | | // value: "10", |
| | | // label: "医技随访", |
| | | // }, |
| | | { |
| | | value: 11, |
| | | label: "医技随访", |
| | | value: "11", |
| | | label: "影像随访", |
| | | }, |
| | | { |
| | | value: 10, |
| | | label: "专科随访", |
| | | value: "12", |
| | | label: "心电随访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "专科随访", |
| | | // }, |
| | | ], |
| | | // 科室/病区 |
| | | belongWards: [], |
| | | deptlist: [], |
| | | hosplist: [], |
| | | diagglist: [], |
| | | operlist: [], |
| | | tempDetpRelevanceslist: [], //科室数据 |
| | | tempDetpRelevanceslistform: [], //科室数据 |
| | | tempbelongWards: [], //病区数据 |
| | |
| | | // { required: true, message: "适用病区不能为空", trigger: "blur" }, |
| | | // ], |
| | | }, |
| | | belongDepts:[], |
| | | belongDepts: [], |
| | | // 科室院区查询入参 |
| | | queryParamsdept: {}, |
| | | quote: false, |
| | | serviceType: null, |
| | | }; |
| | | }, |
| | | components: { SFtable }, |
| | | components: { SFtable, OptionalForm }, |
| | | |
| | | created() { |
| | | this.appraiselist = store.getters.appraiselist; |
| | |
| | | this.serviceType = Number(this.$route.query.serviceType); |
| | | this.form.serviceType = Number(this.$route.query.serviceType); |
| | | this.Acquisitiontype(); |
| | | this.getillnesslist(); |
| | | this.Getdetails(); |
| | | this.getQtemplateclassify(); |
| | | }, |
| | |
| | | this.getQtemplateclassify(); |
| | | } |
| | | }, |
| | | |
| | | computed: { |
| | | displayedTags() { |
| | | // 返回前10个tag |
| | | return this.illnesslist.slice(0, 10); |
| | | }, |
| | | hasMore() { |
| | | // 判断是否有更多的tag |
| | | return this.illnesslist.length > 10; |
| | | }, |
| | | remaining() { |
| | | // 计算剩余的tag数量 |
| | | return this.illnesslist.length - 10; |
| | | }, |
| | | }, |
| | | methods: { |
| | | // { |
| | | // 姓名: { "${name}": "龙傲天" }, |
| | | // 地址: { "${dzz}": "龙宫" }, |
| | | // 电话: { "${dhh}": "八个八" }, |
| | | // } |
| | | // 变量转换对象转数组 |
| | | convertFormat1ToFormat2(data) { |
| | | let result = []; |
| | |
| | | // label: "智能机器人", |
| | | // }, |
| | | ]; |
| | | } else if (this.form.serviceType == 7 || this.form.serviceType == 9) { |
| | | } else if ( |
| | | this.form.serviceType == 7 || |
| | | this.form.serviceType == 10 || |
| | | this.form.serviceType == 11 || |
| | | this.form.serviceType == 8 || |
| | | this.form.serviceType == 12 || |
| | | this.form.serviceType == 13 || |
| | | this.form.serviceType == 9 |
| | | ) { |
| | | this.checkboxlist = [ |
| | | { |
| | | value: "1", |
| | |
| | | { |
| | | value: "6", |
| | | label: "微信小程序", |
| | | }, |
| | | { |
| | | value: "7", |
| | | label: "术后随访", |
| | | }, |
| | | ]; |
| | | } else if ( |
| | |
| | | xh: 1, |
| | | }, |
| | | ]; |
| | | if (this.form.appltype == 1) { |
| | | this.leavehospitaldistrictcodes = []; |
| | | this.operationcodes = []; |
| | | this.illnesscodes = []; |
| | | } else if (this.form.appltype == 2) { |
| | | this.deptcodesWards = []; |
| | | this.operationcodes = []; |
| | | this.illnesscodes = []; |
| | | } else if (this.form.appltype == 3) { |
| | | this.deptcodesWards = []; |
| | | this.leavehospitaldistrictcodes = []; |
| | | this.operationcodes = []; |
| | | } else if (this.form.appltype == 4) { |
| | | this.deptcodesWards = []; |
| | | this.illnesscodes = []; |
| | | this.leavehospitaldistrictcodes = []; |
| | | } |
| | | if (this.checkList) { |
| | | this.form.preachform = this.checkList; |
| | | } else { |
| | | this.$modal.msgError("请选择服务类型"); |
| | | return; |
| | | } |
| | | if (this.deptcodesWards[0]||this.leavehospitaldistrictcodes[0]) { |
| | | console.log(this.operationcodes[0]); |
| | | console.log(this.operationcodes); |
| | | |
| | | if ( |
| | | this.deptcodesWards[0] || |
| | | this.leavehospitaldistrictcodes[0] || |
| | | this.diagglist[0] || |
| | | this.operationcodes[0] |
| | | ) { |
| | | } else { |
| | | this.$modal.msgError("请选择科室或病区"); |
| | | this.$modal.msgError("请选择任务关联条件"); |
| | | return; |
| | | } |
| | | |
| | |
| | | this.form.deptcode = this.deptcodesWards.join(","); |
| | | this.form.leavehospitaldistrictcode = |
| | | this.leavehospitaldistrictcodes.join(","); |
| | | |
| | | this.form.opcode = this.operationcodes.join(","); |
| | | this.form.icd10code = this.diagglist |
| | | .map((item) => item.icdcode) |
| | | .join(","); |
| | | Editsingletask(this.form).then((res) => { |
| | | if (res.code == 200) { |
| | | if (this.form.taskid) { |
| | |
| | | }, |
| | | // 预览 |
| | | previewfnmb() { |
| | | console.log(this.form.templateid); |
| | | |
| | | getTaskQuestioncomit(this.form.templateid).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res, "预览数据"); |
| | |
| | | this.illnesslist.forEach((item) => { |
| | | item.icdname = item.icd10name; |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | getillnesslist() { |
| | | getillnesslist({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | }).then((res) => { |
| | | this.donorchargeList = res.rows; |
| | | }); |
| | | getbaseopera({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | }).then((res) => { |
| | | this.baseoperaList = res.rows; |
| | | }); |
| | | }, |
| | | // 手术查询 |
| | | remoteopcode(name) { |
| | | if (name) { |
| | | getbaseopera({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | opdesc: name, |
| | | }).then((res) => { |
| | | this.baseoperaList = res.rows; |
| | | }); |
| | | } |
| | | }, |
| | | // 疾病查询 |
| | | remotedonor(name) { |
| | | if (name) { |
| | | getbaseopera({ |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | opdesc: name, |
| | | }).then((res) => { |
| | | this.baseoperaList = res.rows; |
| | | }); |
| | | } |
| | | }, |
| | |
| | | item.deptName = item.dept; |
| | | item.admindate = item.inhosptime; |
| | | item.sfzh = item.idcardno; |
| | | if (this.patientqueryParams.allhosp==6) { |
| | | item.patfrom = 1; |
| | | if (this.patientqueryParams.allhosp == 6) { |
| | | item.patfrom = 1; |
| | | } |
| | | this.overallCase.push(item); |
| | | this.form.patTaskRelevances.push(item); |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。", |
| | | kcb: |
| | | "亲爱的患者/家属,我们是" + |
| | | localStorage.getItem("orgname") + |
| | | "的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", |
| | | }; |
| | | |
| | |
| | | this.time3 = ""; //晚上时间段 |
| | | this.time4 = ""; //晚上时间段 |
| | | }, |
| | | // 获取任务科室列表 |
| | | // 获取各类 |
| | | listDept() { |
| | | this.leavehospitaldistrictcodes = []; |
| | | this.deptcodesWards = []; |
| | |
| | | }); |
| | | } |
| | | }); |
| | | taskdiaggetlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | getillnesslist({ |
| | | icdcode: item.icd10code, |
| | | }).then((res) => { |
| | | item.icdname = res.rows[0].icdname; |
| | | this.diagglist.push(item); |
| | | }); |
| | | this.illnesscodes.push(item.icd10code); |
| | | }); |
| | | } |
| | | }); |
| | | taskopergetlist(this.queryParamsdept).then((res) => { |
| | | if (res.code == 200) { |
| | | let arr = res.rows; |
| | | arr.forEach((item) => { |
| | | this.operlist.push(item); |
| | | this.operationcodes.push(item.opcode); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 任务科室删除触发 |
| | | removetag(row) { |
| | |
| | | if (result.length) { |
| | | taskdepthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("删除成功"); |
| | | } |
| | | }); |
| | | } |
| | |
| | | if (result.length) { |
| | | taskdepthospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("删除成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 手术删除触发 |
| | | removeopera(row) { |
| | | let result = this.operlist |
| | | .filter((item) => item.opcode == row) |
| | | .map((item) => item.id); |
| | | if (result.length) { |
| | | taskoperhospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("删除成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | // 疾病删除触发 |
| | | removediagg(row) { |
| | | let result = this.diagglist |
| | | .filter((item) => item.icd10code == row) |
| | | .map((item) => item.id); |
| | | if (result.length) { |
| | | taskdiaghospgetsondel(result).then((res) => { |
| | | if (res.code) { |
| | | this.diagglist = this.diagglist.filter( |
| | | (item) => item.icd10code != row |
| | | ); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | getQtemplateclassify() { |
| | | getQtemplateclassify({}).then((res) => { |
| | | this.optionsclass = res.rows; |
| | |
| | | "功能提示", |
| | | { |
| | | confirmButtonText: "保存任务", |
| | | cancelButtonText: "取消", |
| | | cancelButtonText: "暂存模板", |
| | | type: "warning", |
| | | } |
| | | ) |
| | |
| | | this.objyl.templateid = this.objyl.svyid; |
| | | this.form.libtemplateid = this.objyl.svyid; |
| | | this.objyl.isoperation = 1; |
| | | this.objyl.svyTaskTemplateScriptVOS = this.objyl.svyTemplateLibScripts; |
| | | this.form.svyTaskTemplateVO=this.objyl; |
| | | this.objyl.svyTaskTemplateScriptVOS = |
| | | this.objyl.svyTemplateLibScripts; |
| | | this.form.svyTaskTemplateVO = this.objyl; |
| | | this.submitForm(); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { |
| | | if (Array.isArray(this.objyl.suitway)) { |
| | | this.objyl.suitway = this.objyl.suitway.join(","); |
| | | } |
| | | this.objyl.templateid = this.objyl.svyid; |
| | | this.form.libtemplateid = this.objyl.svyid; |
| | | this.objyl.isoperation = 1; |
| | | this.objyl.svyTaskTemplateScriptVOS = |
| | | this.objyl.svyTemplateLibScripts; |
| | | this.form.svyTaskTemplateVO = this.objyl; |
| | | this.form.templatename = this.objyl.svyname; |
| | | this.$modal.msgSuccess("暂存成功保存任务后模板失效"); |
| | | this.drawermb = false; |
| | | this.previewtf = false; |
| | | }); |
| | | } else { |
| | | setTimeout(() => { |
| | | this.previewFn(); |