| | |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="患者范围" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.searchscope" |
| | | placeholder="请选择患者范围" |
| | | > |
| | | <el-option |
| | | v-for="item in source" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | <!-- <el-form-item label="患者范围" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.searchscope" |
| | | placeholder="请选择患者范围" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-option |
| | | v-for="item in source" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="患者范围" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.scopetype" |
| | | placeholder="默认全部" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="telcode"> |
| | | <el-input |
| | | v-model="queryParams.telcode" |
| | |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <!-- <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | |
| | | v-hasPermi="['system:user:add']" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | </el-col> --> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | height="660" |
| | | height="808" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | |
| | | key="id" |
| | | prop="id" |
| | | /> --> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | fixed |
| | | label="姓名" |
| | | width="100" |
| | | align="center" |
| | | key="name" |
| | | prop="name" |
| | | /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | /> --> |
| | | <el-table-column |
| | | label="姓名" |
| | | width="100" |
| | | align="center" |
| | | key="name" |
| | | prop="name" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="gettoken360(scope.row.idcardno,scope.row.drcode,scope.row.drname)" |
| | | ><span class="button-textsc">{{ |
| | | scope.row.name |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="性别" |
| | | width="100" |
| | | align="center" |
| | | key="sex" |
| | | prop="sex" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="60" |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | label="出生年月" |
| | |
| | | align="center" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | width="180" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <el-table-column |
| | | label="证件号码" |
| | | align="center" |
| | | key="idcardno" |
| | |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="建档日期" |
| | | align="center" |
| | | key="createTime" |
| | | prop="createTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | label="更新日期" |
| | | align="center" |
| | | prop="archivetime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.archivetime) }}</span> |
| | |
| | | fixed="right" |
| | | label="操作" |
| | | align="center" |
| | | width="190" |
| | | width="200" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | ><i class="el-icon-edit"></i>患者过滤</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Distributionservice(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-menu"></i>服务</span |
| | | ></el-button |
| | | > |
| | | > --> |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="RiskMarker(scope.row)" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-menu"></i>风险标记</span |
| | | ></el-button |
| | | > --> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | prop="templatename" |
| | | /> |
| | | <el-table-column |
| | | label="待执行/总任务" |
| | | label="总任务/已随访" |
| | | align="center" |
| | | key="nickName" |
| | | width="120" |
| | | prop="nickName" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> |
| | | <span |
| | | >{{ scope.row.wfs ? scope.row.wfs + scope.row.yfs : "" }}/{{ |
| | | scope.row.yfs |
| | | }}</span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | key="sendState" |
| | | prop="sendState" |
| | | width="120" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-form-item label="姓名" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请输入姓名" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-form-item label="性别" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="!amendtag"> |
| | | <el-row v-if="!amendtag"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="民族" prop="name"> |
| | | <el-input |
| | |
| | | |
| | | <el-row v-if="!amendtag"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="出生地" prop="idcardno"> |
| | | <el-form-item label="出生地" prop="birthplace"> |
| | | <el-input |
| | | v-model="form.birthplace" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | |
| | | /> |
| | | </el-form-item> </el-col |
| | | ><el-col :span="12"> |
| | | <el-form-item label="居住地" prop="idcardno"> |
| | | <el-form-item label="居住地" prop="placeOfResidence"> |
| | | <el-input |
| | | v-model="form.placeOfResidence" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="amendtag?12:24"v-if="!amendtag" > |
| | | <el-col :span="amendtag ? 12 : 24" v-if="!amendtag"> |
| | | <el-form-item label="患者类型"> |
| | | <el-select v-model="form.pattype" placeholder="请选择类型"> |
| | | <el-option |
| | |
| | | <div class="uploading" v-else-if="dractive == 2"> |
| | | <el-table :data="uploadingData" style="width: 100%"> |
| | | <el-table-column prop="serial" label="序号"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名"> </el-table-column> |
| | | <el-table-column prop="sex" label="性别"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="sex" label="性别" width="100"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="certificatenum" label="证件号码"> |
| | | </el-table-column> |
| | |
| | | <div v-if="dractive == 3"> |
| | | <el-table :data="uploadingData" style="width: 100%"> |
| | | <el-table-column prop="serial" label="序号"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名"> </el-table-column> |
| | | <el-table-column prop="sex" label="性别"> </el-table-column> |
| | | <el-table-column prop="name" label="姓名" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="sex" label="性别" width="100"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificatenum" label="证件号码"> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="出生日期"> </el-table-column> |
| | |
| | | <el-button type="primary" @click="CreateService">创建服务</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 风险类型 --> |
| | | <el-dialog title="选择风险类型" :visible.sync="RiskVisible"> |
| | | <el-card class="box-card"> |
| | | <el-form> |
| | | <el-form-item label="风险类型"> |
| | | <el-radio-group v-model="Riskradio"> |
| | | <el-radio :label="1">正常</el-radio> |
| | | <el-radio :label="2">轻微</el-radio> |
| | | <el-radio :label="3">高危</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="活动性质"> |
| | | <el-checkbox-group v-model="Risklist"> |
| | | <el-checkbox label="情况1" name="type"></el-checkbox> |
| | | <el-checkbox label="情况2" name="type"></el-checkbox> |
| | | <el-checkbox label="情况3" name="type"></el-checkbox> |
| | | <el-checkbox label="情况4" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-card> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="RiskVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="RiskService">确认修改</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | Exporterrorpatient, |
| | | toleadpatient, |
| | | } from "@/api/patient/homepage"; |
| | | import { getTasklist } from "@/api/AiCentre/index"; |
| | | import { getTasklist,query360PatInfo } from "@/api/AiCentre/index"; |
| | | import { listtag } from "@/api/system/label"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "Patient", |
| | | dicts: ["sys_normal_disable", "task_status", "sys_user_sex",'futter_patient'], |
| | | dicts: [ |
| | | "sys_normal_disable", |
| | | "task_status", |
| | | "sys_user_sex", |
| | | "futter_patient", |
| | | ], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | // 总条数 |
| | | total: 0, |
| | | tasktotal: 0, |
| | | Risklist: [], |
| | | // 用户表格数据 |
| | | userList: null, |
| | | taskuserList: null, |
| | |
| | | serviceVisible: false, |
| | | serviceradio: 1, |
| | | distributeVisible: false, |
| | | RiskVisible: false, |
| | | tasktopic: "5", //新增类型 |
| | | Riskradio: 1, |
| | | RiskObj: {}, |
| | | // 查询参数 |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | |
| | | ], |
| | | |
| | | cardlist: [ |
| | |
| | | idcardtype: "", |
| | | relativetelcode: "", |
| | | }, |
| | | postData: { |
| | | XiaoXiTou: { |
| | | FaSongFCSJC: "ZJHES", |
| | | FaSongJGID: localStorage.getItem("orgid"), |
| | | FaSongJGMC: localStorage.getItem("orgname"), |
| | | FaSongSJ: "2025-01-09 17:29:36", |
| | | FaSongXTJC: "SUIFANGXT", |
| | | FaSongXTMC: "随访系统", |
| | | XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", |
| | | XiaoXiLX: "SC_LC_360STCX", |
| | | XiaoXiMC: "360 视图查询", |
| | | ZuHuID: localStorage.getItem("ZuHuID"), |
| | | ZuHuMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YeWuXX: { |
| | | BingRenXX: { |
| | | ZhengJianHM: "", |
| | | ZhengJianLXDM: "01", |
| | | ZhengJianLXMC: "居民身份证", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YongHuXX: { |
| | | XiTongID: "SUIFANGXT", |
| | | XiTongMC: "随访系统", |
| | | YongHuID: "1400466972205912064", |
| | | YongHuXM: "JNRMYY", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | idp: "lyra", |
| | | }, |
| | | }, |
| | | }, |
| | | activeName: "first", //侧边选择 |
| | | //导入进度 |
| | | dractive: 1, |
| | |
| | | pageNum: 1, |
| | | allhosp: "1", |
| | | pageSize: 10, |
| | | searchscope:2, |
| | | idcardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | | tagIds: undefined, |
| | | telcode: undefined, |
| | | notrequiredFlag: 0, |
| | | searchscope: 2, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "科室", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "病区", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "全部", |
| | | }, |
| | | ], |
| | | // 表单校验 |
| | | rules: { |
| | | name: [ |
| | |
| | | ], |
| | | |
| | | sex: [{ required: true, message: "性别不能为空", trigger: "blur" }], |
| | | age: [{ required: true, message: "年龄不能为空", trigger: "blur" }], |
| | | nation: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | telcode: [ |
| | | { required: true, message: "联系方式不能为空", trigger: "blur" }, |
| | |
| | | ], |
| | | |
| | | idcardno: [ |
| | | { required: true, message: "证件号能为空", trigger: "blur" }, |
| | | { required: true, message: "证件号可能为空", trigger: "blur" }, |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | |
| | | ], |
| | | placeOfResidence: [ |
| | | { required: true, message: "居住地不能为空", trigger: "blur" }, |
| | | ], |
| | | birthplace: [ |
| | | { required: true, message: "出生地不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | |
| | | this.getList(); |
| | | this.gettabList(); |
| | | //获取已筛选后的可选任务类型 |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.sourcetype[1].children = store.getters.belongWards.map((dept) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | this.taskoptions = store.getters.Serviceauthority; |
| | | }, |
| | | methods: { |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | if (this.queryParams.searchscope == 1) { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes=null; |
| | | } else if (this.queryParams.searchscope == 2) { |
| | | this.queryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | this.queryParams.leaveldeptcodes=null; |
| | | } else { |
| | | if (this.queryParams.searchscope == 3) { |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | //患者360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水市中医院') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | | this.postData.YeWuXX.YongHuXX.YongHuXM = 'LSZYY'; |
| | | } |
| | | query360PatInfo(this.postData).then((res) => { |
| | | if (res.data.url) { |
| | | window.open(res.data.url, "_blank"); |
| | | // this.linkUrl = res.data.url; |
| | | } else { |
| | | this.$modal.msgWarning("360查询无结果"); |
| | | } |
| | | }); |
| | | }, |
| | | // 查询导入展示列表 |
| | | geterryList() { |
| | | this.loading = true; |
| | |
| | | }, |
| | | Distributionservice(row) { |
| | | this.serviceVisible = true; |
| | | }, |
| | | RiskMarker(row) { |
| | | this.RiskVisible = true; |
| | | this.RiskObj = row; |
| | | }, |
| | | |
| | | // 取消按钮 |
| | |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | allhosp: "1", |
| | | pageSize: 10, |
| | | notrequiredFlag: 0, |
| | | searchscope: 2, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 患者范围处理 |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.leaveldeptcodes = []; |
| | | |
| | | if (type == 1) { |
| | | this.queryParams.leaveldeptcodes.push(code); |
| | | this.queryParams.leavehospitaldistrictcodes = []; |
| | | this.queryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | this.queryParams.leavehospitaldistrictcodes.push(code); |
| | | this.queryParams.leaveldeptcodes = []; |
| | | this.queryParams.searchscope = 2; |
| | | } else { |
| | | this.queryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | |
| | | this.$router.push({ |
| | | path: "/followvisit/particty", |
| | | query: { type: this.serviceradio }, |
| | | }); |
| | | }, |
| | | RiskService() { |
| | | this.RiskObj.visitFlag = this.Risklist.join(", "); |
| | | this.RiskObj.visitType = this.Riskradio; |
| | | alterpatient(this.RiskObj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.getList(); |
| | | this.Risklist = []; |
| | | this.Riskradio = 1; |
| | | this.$modal.msgSuccess("异常记录成功"); |
| | | } |
| | | }); |
| | | }, |
| | | distribute() { |
| | |
| | | } |
| | | .sidecolumn { |
| | | width: 180px; |
| | | min-height: 100vh; |
| | | min-height: 80vh; |
| | | position: fixed; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | |
| | | } |
| | | .leftvlue { |
| | | width: 80%; |
| | | margin-left: 220px; |
| | | margin-top: 10px; |
| | | } |
| | | .leftvlue-bg { |