修改触发条件

This commit is contained in:
闫晓茹 2024-06-24 14:25:37 +08:00
parent 0efcc624da
commit 8af54e4a47
4 changed files with 854 additions and 530 deletions

View File

@ -7,6 +7,13 @@ export function taskPartitionList(taskTypeId) {
method: 'get',
})
}
export function getList(dictType,dictDataType) {
return request({
url: `/system/dict/data/getList?dictType=${dictType}&dictDataType=${dictDataType}`,
method: 'get',
})
}
export function triggerCondition(data) {
return request({
url: `/system/triggerCondition/edit`,

View File

@ -1,403 +1,621 @@
<template>
<div class="app-container" ref="layout">
<el-tabs v-model="queryParams.routeCheckStatus" @tab-click="handleClick" style="flex: 1;">
<el-tab-pane label="未审核" name="UNAUDITED"></el-tab-pane>
<el-tab-pane label="已审核" name="AGREE"></el-tab-pane>
<el-tab-pane label="已忽略" name="DISAGREE"></el-tab-pane>
</el-tabs>
<div ref="topform" class="form">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="患者姓名" prop="patientName">
<el-input v-model="queryParams.patientName" placeholder="请输入患者姓名" clearable
@keyup.enter.native="handleQuery" style="width:200px" />
</el-form-item>
<el-form-item label="患者电话" prop="patientPhone">
<el-input v-model="queryParams.patientPhone" placeholder="请输入患者电话" clearable
@keyup.enter.native="handleQuery" style="width:200px" />
</el-form-item>
<el-form-item label="出院/就诊时间" prop="dischargeTimeStart" label-width="120px">
<el-date-picker v-model="dischargeTime" type="daterange" range-separator=""
start-placeholder="开始日期" style="width:300px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="诊断" prop="mainDiagnosis">
<el-input v-model="queryParams.mainDiagnosis" placeholder="请选择诊断" clearable style="width:200px"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="患者来源" prop="patientSource">
<el-select v-model="queryParams.patientSource" placeholder="请选择患者来源" clearable style="width:200px">
<el-option v-for="dict in dict.type.patient_source" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId">
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:200px"
clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="院区" prop="campusAgencyId" v-if="queryParams.hospitalAgencyId">
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width:200px"
clearable @clear="clearcampusAgency" @change="changecampusAgency">
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="科室" prop="departmentId" v-if="queryParams.hospitalAgencyId">
<el-select v-model="queryParams.departmentId" filterable placeholder="请选择科室" style="width:200px"
clearable @clear="cleardepartment" @change="changedepartment">
<el-option v-for="item in departmentlist" :key="item.id" :label="item.departmentName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="病区" prop="wardId" v-if="queryParams.hospitalAgencyId">
<el-select v-model="queryParams.wardId" filterable placeholder="请选择病区" style="width:200px"
clearable>
<el-option v-for="item in wardlist" :key="item.id" :label="item.departmentName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</div>
<div ref="table">
<el-table :max-height="maxTableHeight" v-loading="loading" :data="patientInfoList">
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="患者姓名" align="center" prop="patientName" width="80"/>
<el-table-column label="患者电话" align="center" prop="patientPhone" width='120' />
<el-table-column label="性别" align="center" prop="sex" width='50'>
<template slot-scope="scope">
{{ scope.row.sex == 'MALE' ? '男' : '' }}
{{ scope.row.sex == 'FEMALE' ? '女' : '' }}
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" width='50'/>
<el-table-column label="出生日期" align="center" prop="birthDate" width='100' />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" :show-overflow-tooltip="true"/>
<el-table-column label="院区" align="center" prop="campusAgencyName" :show-overflow-tooltip="true"/>
<el-table-column label="科室名称" align="center" prop="departmentName" :show-overflow-tooltip="true"/>
<el-table-column label="病区名称" align="center" prop="wardName" />
<el-table-column label="住院/门诊号" align="center" prop="inHospitalNumber" width='105' :show-overflow-tooltip="true" />
<el-table-column label="患者来源" align="center" prop="patientSource" width="80">
<template slot-scope="scope">
<dict-tag :options="dict.type.patient_source" :value="scope.row.patientSource" />
</template>
</el-table-column>
<el-table-column label="医生" align="center" prop="attendingPhysicianName" width="80" :show-overflow-tooltip="true"/>
<el-table-column label="诊断" align="center" prop="mainDiagnosis" :show-overflow-tooltip="true" width='100'/>
<el-table-column label="手术名称" align="center" prop="surgicalName" />
<el-table-column label="出院/就诊时间" align="center" prop="dischargeTime" width="105">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.dischargeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="就诊方式" align="center" prop="visitMethod">
<div class="app-container" ref="layout">
<el-tabs
v-model="queryParams.routeCheckStatus"
@tab-click="handleClick"
style="flex: 1"
>
<el-tab-pane label="未审核" name="UNAUDITED"></el-tab-pane>
<el-tab-pane label="已审核" name="AGREE"></el-tab-pane>
<el-tab-pane label="已忽略" name="DISAGREE"></el-tab-pane>
</el-tabs>
<div ref="topform" class="form">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="80px"
>
<el-form-item label="患者姓名" prop="patientName">
<el-input
v-model="queryParams.patientName"
placeholder="请输入患者姓名"
clearable
@keyup.enter.native="handleQuery"
style="width: 200px"
/>
</el-form-item>
<el-form-item label="患者电话" prop="patientPhone">
<el-input
v-model="queryParams.patientPhone"
placeholder="请输入患者电话"
clearable
@keyup.enter.native="handleQuery"
style="width: 200px"
/>
</el-form-item>
<!-- <el-form-item
label="出院/就诊时间"
prop="dischargeTimeStart"
label-width="120px"
>
<el-date-picker
v-model="dischargeTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
style="width: 300px"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item> -->
<el-form-item label="签约时间" prop="signTimeStart">
<el-date-picker
v-model="signTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
style="width: 300px"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="诊断" prop="mainDiagnosis">
<el-input
v-model="queryParams.mainDiagnosis"
placeholder="请选择诊断"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="患者来源" prop="patientSource">
<el-select
v-model="queryParams.patientSource"
placeholder="请选择患者来源"
clearable
style="width: 200px"
>
<el-option
v-for="dict in dict.type.patient_source"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId">
<el-select
v-model="queryParams.hospitalAgencyId"
filterable
placeholder="请选择医院"
style="width: 200px"
clearable
@clear="clearhospitalAgency"
@change="changehospitalAgency"
>
<el-option
v-for="item in hospitalAgencylist"
:key="item.id"
:label="item.agencyName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="院区"
prop="campusAgencyId"
v-if="queryParams.hospitalAgencyId"
>
<el-select
v-model="queryParams.campusAgencyId"
filterable
placeholder="请选择院区"
style="width: 200px"
clearable
@clear="clearcampusAgency"
@change="changecampusAgency"
>
<el-option
v-for="item in campusAgencylist"
:key="item.id"
:label="item.agencyName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="科室"
prop="departmentId"
v-if="queryParams.hospitalAgencyId"
>
<el-select
v-model="queryParams.departmentId"
filterable
placeholder="请选择科室"
style="width: 200px"
clearable
@clear="cleardepartment"
@change="changedepartment"
>
<el-option
v-for="item in departmentlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="病区"
prop="wardId"
v-if="queryParams.hospitalAgencyId"
>
<el-select
v-model="queryParams.wardId"
filterable
placeholder="请选择病区"
style="width: 200px"
clearable
>
<el-option
v-for="item in wardlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div ref="table">
<el-table
:max-height="maxTableHeight"
v-loading="loading"
:data="patientInfoList"
>
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column
label="患者姓名"
align="center"
prop="patientName"
width="80"
/>
<el-table-column
label="患者电话"
align="center"
prop="patientPhone"
width="120"
/>
<el-table-column label="性别" align="center" prop="sex" width="50">
<template slot-scope="scope">
{{ scope.row.sex == "MALE" ? "男" : "" }}
{{ scope.row.sex == "FEMALE" ? "女" : "" }}
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" width="50" />
<el-table-column
label="出生日期"
align="center"
prop="birthDate"
width="100"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="院区"
align="center"
prop="campusAgencyName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
:show-overflow-tooltip="true"
/>
<el-table-column label="病区名称" align="center" prop="wardName" />
<el-table-column
label="住院/门诊号"
align="center"
prop="inHospitalNumber"
width="105"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column label="就诊方式" align="center" prop="visitMethod" width="80"> -->
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.patient_source" :value="scope.row.visitMethod" />
</template> -->
<!-- </el-table-column> -->
<el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag
:options="dict.type.visit_method"
:value="scope.row.visitMethod"
/>
</template>
</el-table-column>
<!-- <el-table-column label="医生" align="center" prop="attendingPhysicianName" width="80" :show-overflow-tooltip="true"/> -->
<el-table-column
label="主要诊断"
align="center"
prop="signDiagnosis"
:show-overflow-tooltip="true"
width="100"
/>
<!-- <el-table-column label="手术名称" align="center" prop="surgicalName" /> -->
<el-table-column
label="签约时间"
align="center"
prop="signTime"
width="105"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.signTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="就诊方式" align="center" prop="visitMethod">
<template slot-scope="scope">
<dict-tag :options="dict.type.visit_method" :value="scope.row.visitMethod" />
</template>
</el-table-column>
<el-table-column label="住址" align="center" prop="address" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)"
v-if="queryParams.routeCheckStatus == 'UNAUDITED'">审核</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)"
v-if="queryParams.routeCheckStatus != 'UNAUDITED'">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleAuthRole(scope.row)"
v-if="queryParams.routeCheckStatus == 'UNAUDITED'"
>审核</el-button
>
<el-button
size="mini"
type="text"
@click="handleLook(scope.row)"
v-if="queryParams.routeCheckStatus != 'UNAUDITED'"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { tasklist } from "@/api/manage/manualReview";
import { getAge } from "@/utils/age";
import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList";
import {
selectAgencyList,
getDepartmentList,
getAgencyList,
} from "@/api/manage/selectAgencyList";
import { usergetList } from "@/api/unitconfig/patientConfiguration";
export default {
name: "manualReview",
dicts: ['patient_type', 'visit_method', 'sign_status', 'patient_source'],
data() {
return {
maxTableHeight: undefined,
attendingPhysicianlist: [],
//
loading: true,
//
total: 0,
//
patientInfoList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
patientName: null,
patientPhone: null,
birthDate: null,
patientType: null,
visitMethod: null,
mainDiagnosis: null,
attendingPhysicianId: null,
hospitalAgencyId: null,
hospitalAgencyName: null,
campusAgencyId: null,
campusAgencyName: null,
departmentId: null,
departmentName: null,
wardId: null,
wardName: null,
surgicalName: null,
admissionTimeStart: null,
admissionTimeEnd: null,
outpatientNumber: null,
dischargeTimeStart: null,
dischargeTimeEnd: null,
dischargeMethod: null,
patientSource: null,
routeCheckStatus: 'UNAUDITED',
},
dischargeTime: [],
admissionTime: [],
//list
hospitalAgencylist: [],
// list
campusAgencylist: [],
//list
departmentlist: [],
//list
wardlist: [],
};
name: "manualReview",
dicts: ["patient_type", "visit_method", "sign_status", "patient_source"],
data() {
return {
maxTableHeight: undefined,
attendingPhysicianlist: [],
//
loading: true,
//
total: 0,
//
patientInfoList: [],
signTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
patientName: null,
patientPhone: null,
birthDate: null,
patientType: null,
visitMethod: null,
mainDiagnosis: null,
attendingPhysicianId: null,
hospitalAgencyId: null,
hospitalAgencyName: null,
campusAgencyId: null,
signTimeStart: null,
signTimeEnd: null,
campusAgencyName: null,
departmentId: null,
departmentName: null,
wardId: null,
wardName: null,
surgicalName: null,
admissionTimeStart: null,
admissionTimeEnd: null,
outpatientNumber: null,
dischargeTimeStart: null,
dischargeTimeEnd: null,
dischargeMethod: null,
patientSource: null,
routeCheckStatus: "UNAUDITED",
},
dischargeTime: [],
admissionTime: [],
//list
hospitalAgencylist: [],
// list
campusAgencylist: [],
//list
departmentlist: [],
//list
wardlist: [],
};
},
created() {
this.getList();
this.selectAgencyinfo();
},
mounted() {
this.getMaxTableHeight();
this.screenChange();
},
methods: {
handleClick(tab, event) {
this.dischargeTime = [];
this.queryParams.dischargeTimeStart = null;
this.queryParams.dischargeTimeEnd = null;
this.admissionTime = [];
this.queryParams.admissionTimeStart = null;
this.queryParams.admissionTimeEnd = null;
this.queryParams.pageNum = 1;
this.getList();
},
created() {
this.getList();
this.selectAgencyinfo();
//
usergetListinfo() {
usergetList({
hospitalAgencyId: this.queryParams.hospitalAgencyId,
postName: "DOCTOR",
}).then((res) => {
this.attendingPhysicianlist = res.data;
});
},
mounted() {
this.getMaxTableHeight()
this.screenChange()
//
handleLook(row) {
this.$router.push({
path: "/task/LookAuditing",
query: {
patientId: row.patientId,
routeCheckStatus: this.queryParams.routeCheckStatus,
},
});
},
methods: {
handleClick(tab, event) {
this.dischargeTime = []
this.queryParams.dischargeTimeStart = null
this.queryParams.dischargeTimeEnd = null
this.admissionTime = []
this.queryParams.admissionTimeStart = null
this.queryParams.admissionTimeEnd = null
this.queryParams.pageNum = 1
this.getList();
/** 审核操作 */
handleAuthRole(row) {
this.$router.push({
path: "/task/Auditing",
query: {
patientId: row.patientId,
},
//
usergetListinfo() {
usergetList({
hospitalAgencyId: this.queryParams.hospitalAgencyId,
postName: 'DOCTOR'
}).then(res => {
this.attendingPhysicianlist = res.data
})
},
//
handleLook(row) {
this.$router.push({
path: "/task/LookAuditing",
query: {
patientId: row.patientId,
routeCheckStatus: this.queryParams.routeCheckStatus,
},
});
},
/** 审核操作 */
handleAuthRole(row) {
this.$router.push({
path: "/task/Auditing",
query: {
patientId: row.patientId,
},
});
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
// this.queryParams.taskCreateType = 'MANUAL_CREATE's
tasklist(this.queryParams).then(response => {
response.rows.forEach(e => {
e.birthDate ? e.age = getAge(e.birthDate) : ''
})
this.patientInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
if (this.dischargeTime?.length > 0) {
this.queryParams.dischargeTimeStart = this.dischargeTime[0]
this.queryParams.dischargeTimeEnd = this.dischargeTime[1]
} else {
this.queryParams.dischargeTimeStart = null
this.queryParams.dischargeTimeEnd = null
}
if (this.admissionTime?.length > 0) {
this.queryParams.admissionTimeStart = this.admissionTime[0]
this.queryParams.admissionTimeEnd = this.admissionTime[1]
} else {
this.queryParams.admissionTimeStart = null
this.queryParams.admissionTimeEnd = null
}
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.admissionTime = [];
this.queryParams.admissionTimeStart = null
this.queryParams.admissionTimeEnd = null
this.dischargeTime = []
this.queryParams.dischargeTimeStart = null
this.queryParams.dischargeTimeEnd = null
this.resetForm("queryForm");
this.handleQuery();
},
selectAgencyinfo() {
let query = {
agencyStatus: 'ON',
nodeType: 'HOSPITAL',
}
selectAgencyList(query).then(res => {
this.hospitalAgencylist = res.data
})
},
//
getAgencyListinfo(nodeType, id) {
let query = {
nodeType: nodeType,
}
if (nodeType == 'HOSPITAL') {
query.hospitalId = id
} else if (nodeType == 'CAMPUS') {
query.campusId = id
} else if (nodeType == 'DEPARTMENT') {
query.departmentId = id
}
getAgencyList(query).then(res => {
if (nodeType == 'HOSPITAL') {
this.campusAgencylist = res.data.campusList
this.departmentlist = res.data.departmentList
} else if (nodeType == 'CAMPUS') {
this.departmentlist = res.data.departmentList
}
this.wardlist = res.data.wardList
})
},
//
changehospitalAgency(id) {
this.getAgencyListinfo('HOSPITAL', id)
// let query = {
// agencyStatus: 'ON',
// nodeType: 'CAMPUS',
// parentId: id,
// }
// selectAgencyList(query).then(res => {
// this.campusAgencylist = res.data
this.queryParams.campusAgencyId = null
this.queryParams.departmentId = null
this.queryParams.wardId = null
this.queryParams.attendingPhysicianId = null
// })
//
this.usergetListinfo();
},
//
changecampusAgency(id) {
this.getAgencyListinfo('CAMPUS', id)
// let query = {
// nodeType: 'DEPARTMENT',
// hospitalAgencyId: id,
// }
// getDepartmentList(query).then(res => {
// this.departmentlist = res.data
this.queryParams.departmentId = null
this.queryParams.wardId = null
// })
},
//
changedepartment(id) {
this.getAgencyListinfo('DEPARTMENT', id)
// let query = {
// nodeType: 'WARD',
// parentDepartmentId: id,
// }
// getDepartmentList(query).then(res => {
// this.wardlist = res.data
this.queryParams.wardId = null
// })
},
//
clearhospitalAgency() {
this.queryParams.campusAgencyId = null
this.queryParams.departmentId = null
this.queryParams.wardId = null
this.queryParams.attendingPhysicianId = null
},
//
clearcampusAgency() {
this.queryParams.departmentId = null
this.queryParams.wardId = null
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
},
//
cleardepartment() {
this.queryParams.wardId = null
if (this.queryParams.departmentId) {
this.getAgencyListinfo('DEPARTMENT', this.queryParams.departmentId)
} else if (this.queryParams.campusAgencyId) {
this.getAgencyListinfo('CAMPUS', this.queryParams.campusAgencyId)
} else if (this.queryParams.hospitalAgencyId) {
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
}
},
//
getMaxTableHeight() {
const windowInnerHeight = window.innerHeight //
const layoutDiv = this.$refs.layout
const formDiv = this.$refs.topform
this.maxTableHeight =
windowInnerHeight - 134 - 54 -
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(formDiv)
},
// resize
screenChange() {
// resizeresize
window.addEventListener('resize', this.getMaxTableHeight, true)
//
//
// beforeDestroy
this.$once('hook:beforeDestroy', () => {
window.removeEventListener('resize', this.getMaxTableHeight, true)
})
},
}
});
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
// this.queryParams.taskCreateType = 'MANUAL_CREATE's
tasklist(this.queryParams).then((response) => {
response.rows.forEach((e) => {
e.birthDate ? (e.age = getAge(e.birthDate)) : "";
});
this.patientInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
if (this.dischargeTime?.length > 0) {
this.queryParams.dischargeTimeStart = this.dischargeTime[0];
this.queryParams.dischargeTimeEnd = this.dischargeTime[1];
} else {
this.queryParams.dischargeTimeStart = null;
this.queryParams.dischargeTimeEnd = null;
}
if (this.admissionTime?.length > 0) {
this.queryParams.admissionTimeStart = this.admissionTime[0];
this.queryParams.admissionTimeEnd = this.admissionTime[1];
} else {
this.queryParams.admissionTimeStart = null;
this.queryParams.admissionTimeEnd = null;
}
if (this.signTime?.length > 0) {
this.queryParams.signTimeStart = this.signTime[0];
this.queryParams.signTimeEnd = this.signTime[1];
} else {
this.queryParams.signTimeStart = null;
this.queryParams.signTimeEnd = null;
}
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.signTime = [];
this.admissionTime = [];
this.queryParams.signTimeStart = null;
this.queryParams.signTimeEnd = null;
this.queryParams.admissionTimeStart = null;
this.queryParams.admissionTimeEnd = null;
this.dischargeTime = [];
this.queryParams.dischargeTimeStart = null;
this.queryParams.dischargeTimeEnd = null;
this.resetForm("queryForm");
this.handleQuery();
},
selectAgencyinfo() {
let query = {
agencyStatus: "ON",
nodeType: "HOSPITAL",
};
selectAgencyList(query).then((res) => {
this.hospitalAgencylist = res.data;
});
},
//
getAgencyListinfo(nodeType, id) {
let query = {
nodeType: nodeType,
};
if (nodeType == "HOSPITAL") {
query.hospitalId = id;
} else if (nodeType == "CAMPUS") {
query.campusId = id;
} else if (nodeType == "DEPARTMENT") {
query.departmentId = id;
}
getAgencyList(query).then((res) => {
if (nodeType == "HOSPITAL") {
this.campusAgencylist = res.data.campusList;
this.departmentlist = res.data.departmentList;
} else if (nodeType == "CAMPUS") {
this.departmentlist = res.data.departmentList;
}
this.wardlist = res.data.wardList;
});
},
//
changehospitalAgency(id) {
this.getAgencyListinfo("HOSPITAL", id);
// let query = {
// agencyStatus: 'ON',
// nodeType: 'CAMPUS',
// parentId: id,
// }
// selectAgencyList(query).then(res => {
// this.campusAgencylist = res.data
this.queryParams.campusAgencyId = null;
this.queryParams.departmentId = null;
this.queryParams.wardId = null;
this.queryParams.attendingPhysicianId = null;
// })
//
this.usergetListinfo();
},
//
changecampusAgency(id) {
this.getAgencyListinfo("CAMPUS", id);
// let query = {
// nodeType: 'DEPARTMENT',
// hospitalAgencyId: id,
// }
// getDepartmentList(query).then(res => {
// this.departmentlist = res.data
this.queryParams.departmentId = null;
this.queryParams.wardId = null;
// })
},
//
changedepartment(id) {
this.getAgencyListinfo("DEPARTMENT", id);
// let query = {
// nodeType: 'WARD',
// parentDepartmentId: id,
// }
// getDepartmentList(query).then(res => {
// this.wardlist = res.data
this.queryParams.wardId = null;
// })
},
//
clearhospitalAgency() {
this.queryParams.campusAgencyId = null;
this.queryParams.departmentId = null;
this.queryParams.wardId = null;
this.queryParams.attendingPhysicianId = null;
},
//
clearcampusAgency() {
this.queryParams.departmentId = null;
this.queryParams.wardId = null;
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
},
//
cleardepartment() {
this.queryParams.wardId = null;
if (this.queryParams.departmentId) {
this.getAgencyListinfo("DEPARTMENT", this.queryParams.departmentId);
} else if (this.queryParams.campusAgencyId) {
this.getAgencyListinfo("CAMPUS", this.queryParams.campusAgencyId);
} else if (this.queryParams.hospitalAgencyId) {
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
}
},
//
getMaxTableHeight() {
const windowInnerHeight = window.innerHeight; //
const layoutDiv = this.$refs.layout;
const formDiv = this.$refs.topform;
this.maxTableHeight =
windowInnerHeight -
134 -
54 -
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(formDiv);
},
// resize
screenChange() {
// resizeresize
window.addEventListener("resize", this.getMaxTableHeight, true);
//
//
// beforeDestroy
this.$once("hook:beforeDestroy", () => {
window.removeEventListener("resize", this.getMaxTableHeight, true);
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-table {
overflow: auto;
overflow: auto;
}
.app-container {
padding-top: 0 !important;
padding-top: 0 !important;
}
</style>

View File

@ -9,30 +9,30 @@
<div class="node" v-if="updata">
<!-- {{ updata.length }} -->
<el-select
v-model="updata.triggerConditionCode"
v-model="updata.triggerConditionName"
style="width: 120px"
disabled
@change="changetriggerConditionName($event, index)"
>
<el-option
v-for="item in optionsname"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
<el-select
disabled
v-model="updata.triggerConditionOperator"
v-model="updata.triggerConditionOperatorName"
style="width: 100px"
@change="changetriggerLogic($event, index)"
>
<el-option
v-for="item in optionstriggerConditionOperator"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
@ -81,7 +81,7 @@
</div>
<div>
<el-select
v-model="item.triggerConditionCode"
v-model="item.triggerConditionName"
style="width: 120px"
disabled
@change="changetriggerConditionName($event, index)"
@ -96,7 +96,7 @@
</el-select>
<el-select
disabled
v-model="item.triggerConditionOperator"
v-model="item.triggerConditionOperatorName"
style="width: 100px"
@change="changetriggerLogic($event, index)"
>
@ -169,7 +169,7 @@
>
<div class="top">
<div class="toptop">
<el-select v-model="item.routeNodeName" style="width: 100px">
<el-select v-model="item.routeNodeName" style="width: 100px" @change="changetoday">
<el-option
v-for="item in parentDictCodelist"
:key="item.dictValue"
@ -541,6 +541,7 @@
v-for="(item, index) in openlist.triggerConditionList"
:key="index"
>
<!-- 且或 -->
<div
style="width: 60px; position: absolute; left: 2%; top: 57%"
v-if="openlist.triggerConditionList.length === 3"
@ -563,6 +564,7 @@
</el-select>
</div>
</div>
<!-- 诊断 -->
<el-select
v-model="item.triggerConditionCode"
style="width: 120px"
@ -570,12 +572,13 @@
>
<el-option
v-for="item in optionsname"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
<!-- 包含 -->
<el-select
v-model="item.triggerConditionOperator"
style="width: 100px"
@ -583,21 +586,22 @@
>
<el-option
v-for="item in optionstriggerConditionOperator"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
<el-input
v-if="item.triggerConditionCode != 'DRESSING_CHANGE_DATE'"
v-if="item.dictDataType == 'STRING'"
v-model="item.triggerConditionValue"
style="width: 300px"
placeholder="请输入触发条件"
maxlength="100"
></el-input>
<el-date-picker
v-if="item.triggerConditionCode == 'DRESSING_CHANGE_DATE'"
v-if="item.dictDataType == 'DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
@ -605,6 +609,14 @@
value-format="yyyy-MM-dd"
>
</el-date-picker>
<!-- {{ item }} -->
<el-input
v-if="item.dictDataType == 'DECIMAL'"
style="width: 300px"
v-model="item.triggerConditionValue"
type="number"
:min="0"
></el-input>
<span class="icon">
<el-button
type="danger"
@ -699,6 +711,7 @@ import {
updateRouteCheckStatus,
list,
triggerConditionList,
getList,
} from "@/api/system/specialDiseaseNode";
import Cookies from "js-cookie";
@ -715,6 +728,7 @@ export default {
name: "specialDiseaseNode",
data() {
return {
dictDataType: "",
openlist: {
suitRange: "",
routeId: "",
@ -728,50 +742,12 @@ export default {
routeCheckRemark: "",
},
optionslist: [],
optionstriggerConditionOperator: [
{
value: "CONTAIN",
label: "包含",
},
{
value: "NOT_CONTAIN",
label: "不包含",
},
{
value: "EQUAL_TO",
label: "等于",
},
{
value: "NOT_EQUAL_TO",
label: "不等于",
},
],
//
optionstriggerConditionOperator: [],
optionslistS: [],
optionslistSname: [],
optionsname: [
{
value: "DIAGNOSIS",
label: "诊断",
},
{
value: "DRESSING_CHANGE_DATE",
label: "换药日期",
},
{
value: "TREATMENT_METHOD",
label: "治疗方式",
},
{
value: "SURGICAL_NAME",
label: "手术名称",
},
{
value: "DRUG_NAME",
label: "药品名称",
},
],
//
optionsname: [],
routeName: "",
updata: [],
updatalists: [],
@ -833,10 +809,14 @@ export default {
this.openlist.routeId = this.$route.query.id;
}
this.taskinfo();
this.infolistname();
this.infolists();
this.infolistoptionslistS();
this.infolistMESSAGE();
this.infolistword();
this.optiononditionOperator();
this.optiononditionOperators();
},
beforeDestroy() {},
watch: {
@ -882,10 +862,16 @@ export default {
e.routeId = this.$route.query.id;
e.routeName = this.$route.query.routeName;
});
console.log(
this.openlist.triggerConditionList,
" this.openlist.triggerConditionList"
);
loading.close();
triggerCondition(this.openlist).then((res) => {
loading.close();
if (res.code == 200) {
this.$notify({
type: "success",
title: "提示",
@ -895,28 +881,30 @@ export default {
Cookies.remove("routeName");
Cookies.set("routeName", this.routeName);
// Cookies.set("username", this.loginForm.username, { expires: 30 });
}
this.infolist();
this.handlelist();
this.openfalse();
});
},
//
openfalse() {
// this.openlist.triggerConditionList = [
// {
// routeId: "",
// routeName: "",
// triggerConditionName: "",
// triggerConditionOperator: "",
// triggerConditionValue: "",
// triggerConditionName: "",
// triggerConditionOperatorName: "",
this.openlist.triggerConditionList = [
{
routeId: "",
routeName: "",
triggerConditionName: "",
triggerConditionOperator: "",
triggerConditionValue: "",
triggerConditionName: "",
triggerConditionOperatorName: "",
dictDataType: "STRING",
// triggerLogic: "",
// triggerLogicName: "",
// },
// ];
triggerLogic: "AND",
triggerLogicName: "",
},
];
this.open = false;
this.resetForm("openlist");
},
@ -931,13 +919,13 @@ export default {
triggerConditionValue: "",
triggerConditionName: "",
triggerConditionOperatorName: "",
triggerLogic: "",
dictDataType: "STRING",
triggerLogic: "AND",
triggerLogicName: "",
};
if (this.openlist.triggerConditionList.length == 3) {
this.$message.error("最多批量添加2条");
this.$message.error("至多仅支持两种属性");
} else {
this.openlist.triggerConditionList.push(obj);
}
@ -1017,6 +1005,9 @@ export default {
this.parentDictCodelist = res.rows;
});
},
changetoday(e){
console.log(e,'eeeeeeeeeeeeeooooooooooooo')
},
//
info() {
const loading = this.$loading({
@ -1133,21 +1124,71 @@ export default {
this.optionslistS = res.data;
});
},
//
optiononditionOperators() {
var dictType = "trigger_condition_name";
getAgencytype(dictType).then((res) => {
this.optionsname = res.data;
});
},
//
optiononditionOperator() {
var dictType = "trigger_condition_operator";
getAgencytype(dictType).then((res) => {
this.optionstriggerConditionOperator = res.data;
});
},
//
handlelist() {
var dictType = "trigger_condition_operator";
getList(dictType, this.dictDataType).then((res) => {
console.log(res, "res");
this.optionstriggerConditionOperator = res.data;
});
},
//
changetriggerLogic(e, index) {
console.log(e, index, "e包含,index");
this.openlist.triggerConditionList[index].triggerConditionOperatorName =
this.optionstriggerConditionOperator.find((el) => el.value == e).label;
this.optionstriggerConditionOperator.find(
(el) => el.dictValue == e
).dictLabel;
this.openlist.triggerConditionList[index].triggerConditionValue = null;
},
// =s
// changetriggerLogics(e,index){
// console.log(e,index,'e,index')
// this.openlist.triggerConditionList[index].triggerConditionOperator =
// this.optionstriggerConditionOperator.find(
// (el) => el.dictValue == e
// ).dictLabel;
// this.openlist.triggerConditionList[index].triggerConditionValue = null;
// },
//
changetriggerConditionName(e, index) {
console.log(e, index, "e诊断, index");
// this.dictDataType = e;
this.openlist.triggerConditionList[index].triggerConditionName =
this.optionsname.find((el) => el.value == e).label;
this.optionsname.find((el) => el.dictValue == e).dictLabel;
this.openlist.triggerConditionList[index].triggerConditionOperator = null;
this.openlist.triggerConditionList[index].triggerConditionValue = null;
this.dictDataType = this.optionsname.find(
(el) => el.dictValue == e
).dictDataType;
this.openlist.triggerConditionList[index].dictDataType =
this.optionsname.find((el) => el.dictValue == e).dictDataType;
console.log(
this.openlist.triggerConditionList[index].dictDataType,
"this.dictDataType"
);
this.handlelist();
},
//
changetriggerLogicsname(e, index) {
console.log(e,'qie')
this.openlist.triggerConditionList[index].triggerLogic = e;
this.openlist.triggerConditionList[index].triggerLogicName =
this.optionslistS.find((el) => el.dictValue == e).dictLabel;
@ -1165,13 +1206,57 @@ export default {
this.routeId = this.$route.query.id;
triggerConditionList(this.routeId).then((res) => {
this.openlist.triggerConditionList = res.data;
this.handlelist();
// this.openlist.triggerConditionList.forEach((o) => {
// // this.triggerConditionCode=o.triggerConditionCode
// this.handlelist();
// // o.dictDataType = this.optionstriggerConditionOperator.find(
// // (el) => el.dictValue == o.triggerConditionOperator
// // )?.dictDataType;
// });
// console.log(
// this.openlist.triggerConditionList,
// " this.openlist.triggerConditionList"
// );
if (res.data.length == 1) {
//
this.updata = res.data[0];
this.updata.triggerConditionOperatorName =
this.optionstriggerConditionOperator.find(
(el) => el.dictValue == this.updata.triggerConditionOperator
)?.dictLabel;
console.log(
this.updata.triggerConditionOperatorName,
"updata.triggerConditionOperatorName"
);
this.updatalist = [];
} else {
//
this.updata = res.data[0];
// this.handlelist();
this.updata.triggerConditionOperatorName =
this.optionstriggerConditionOperator.find(
(el) => el.dictValue == this.updata.triggerConditionOperator
)?.dictLabel;
console.log(
this.updata.triggerConditionOperatorName,
"updata.triggerConditionOperatorName"
);
res.data.splice(0, 1);
this.updatalist = res.data;
this.updatalist.forEach((e) => {
e.triggerConditionOperatorName =
this.optionstriggerConditionOperator.find(
(el) => el.dictValue == e.triggerConditionOperator
)?.dictLabel;
});
// this.updatalist.triggerConditionOperatorName = this.optionstriggerConditionOperator.find(
// (el) => el.dictValue == this.updatalist.triggerConditionOperator
// )?.dictLabel;
}
if (this.open == true) {
this.$set(this.openlist, "suitRange", this.$route.query.suitRange);
@ -1185,6 +1270,18 @@ export default {
this.routeId = this.$route.query.id;
triggerConditionList(this.routeId).then((res) => {
this.openlist.triggerConditionList = res.data;
this.openlist.triggerConditionList.forEach((o) => {
this.optiononditionOperators();
o.dictDataType = this.optionsname.find(
(el) => el.dictValue == o.triggerConditionCode
)?.dictDataType;
console.log(o.dictDataType, "dict");
});
console.log(
this.openlist.triggerConditionList,
" this.openlist.triggerConditionList11111111111"
);
this.$set(this.updata, "suitRange", this.openlist.suitRange);
});
},
@ -1192,6 +1289,7 @@ export default {
edit() {
this.open = true;
this.infolistname();
// this.infolist()
},
//wangeditor
onNodeContent(item) {

View File

@ -208,16 +208,11 @@
>
<el-option
v-for="itemq in optionsname"
:key="itemq.value"
:label="itemq.label"
:value="itemq.value"
:key="itemq.dictValue"
:label="itemq.dictLabel"
:value="itemq.dictValue"
>
</el-option>
<!-- <el-option label="诊断" value="DIAGNOSIS" />
<el-option label="换药日期" value="DRESSING_CHANGE_DATE" />
<el-option label="治疗方式" value="TREATMENT_METHOD" />
<el-option label="手术名称" value="SURGICAL_NAME" />
<el-option label="药品名称" value="DRUG_NAME" /> -->
</el-select>
<el-select
v-model="item.triggerConditionOperator"
@ -226,26 +221,22 @@
>
<el-option
v-for="itemr in optionstriggerConditionOperator"
:key="itemr.value"
:label="itemr.label"
:value="itemr.value"
:key="itemr.dictValue"
:label="itemr.dictLabel"
:value="itemr.dictValue"
>
</el-option>
</el-select>
<!-- <el-select v-model="item.suitRange" style="width: 120px;">
<el-option label="在院" value="IN_THE_HOSPITAL" />
<el-option label="出院" value="DISCHARGE" />
<el-option label="门诊" value="OUTPATIENT_SERVICE" />
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
</el-select> -->
<!-- {{ item }} -->
<el-input
v-if="item.triggerConditionCode != 'DRESSING_CHANGE_DATE'"
v-if="item.dictDataType == 'STRING' || item.dictDataType == ''"
v-model="item.triggerConditionValue"
style="width: 300px"
placeholder="请输入触发条件"
maxlength="100"
></el-input>
<el-date-picker
v-if="item.triggerConditionCode == 'DRESSING_CHANGE_DATE'"
v-if="item.dictDataType == 'DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
@ -253,6 +244,14 @@
value-format="yyyy-MM-dd"
>
</el-date-picker>
<!-- {{ item }} -->
<el-input
v-if="item.dictDataType == 'DECIMAL'"
style="width: 300px"
v-model="item.triggerConditionValue"
type="number"
:min="0"
></el-input>
<span class="icon">
<el-button
type="danger"
@ -343,6 +342,7 @@ import {
updateSpecialDiseaseRoute,
getById,
} from "@/api/system/specialDiseaseRoute";
import { getList } from "@/api/system/specialDiseaseNode";
import {
specialDiseaseRoute,
triggerConditiondel,
@ -360,47 +360,9 @@ export default {
data() {
return {
options: [],
optionstriggerConditionOperator: [
{
value: "CONTAIN",
label: "包含",
},
{
value: "NOT_CONTAIN",
label: "不包含",
},
{
value: "EQUAL_TO",
label: "等于",
},
{
value: "NOT_EQUAL_TO",
label: "不等于",
},
],
optionsname: [
{
value: "DIAGNOSIS",
label: "诊断",
},
{
value: "DRESSING_CHANGE_DATE",
label: "换药日期",
},
{
value: "TREATMENT_METHOD",
label: "治疗方式",
},
{
value: "SURGICAL_NAME",
label: "手术名称",
},
{
value: "DRUG_NAME",
label: "药品名称",
},
],
dictDataType: "",
optionstriggerConditionOperator: [],
optionsname: [],
optionslistS: [],
form: {
version: "",
@ -425,7 +387,7 @@ export default {
// triggerConditionName: "",
triggerConditionOperator: "",
triggerConditionValue: "",
dictDataType: "STRING",
triggerLogic: "",
triggerLogicName: "",
},
@ -455,21 +417,57 @@ export default {
this.info();
this.infolist();
this.infolistoptionslistS();
this.optiononditionOperator();
this.optiononditionOperators();
},
watch: {},
methods: {
//
optiononditionOperators() {
var dictType = "trigger_condition_name ";
getAgencytype(dictType).then((res) => {
this.optionsname = res.data;
});
},
//
optiononditionOperator() {
var dictType = "trigger_condition_operator ";
getAgencytype(dictType).then((res) => {
this.optionstriggerConditionOperator = res.data;
});
},
//
changetriggerLogic(e, index) {
this.updata.triggerConditionList[index].triggerConditionOperatorName =
this.optionstriggerConditionOperator.find((el) => el.value == e).label;
this.optionstriggerConditionOperator.find(
(el) => el.dictValue == e
).dictLabel;
this.updata.triggerConditionList[index].triggerConditionValue = null;
},
//
changetriggerConditionName(e, index) {
this.updata.triggerConditionList[index].triggerConditionName =
this.optionsname.find((el) => el.value == e).label;
this.optionsname.find((el) => el.dictValue == e).dictLabel;
this.updata.triggerConditionList[index].triggerConditionOperator = null;
this.updata.triggerConditionList[index].triggerConditionValue = null;
this.dictDataType = this.optionsname.find(
(el) => el.dictValue == e
).dictDataType;
this.updata.triggerConditionList[index].dictDataType =
this.optionsname.find((el) => el.dictValue == e).dictDataType;
console.log(
this.updata.triggerConditionList[index].dictDataType,
"this.dictDataType"
);
this.handlelist();
},
//
handlelist() {
var dictType = "trigger_condition_operator";
getList(dictType, this.dictDataType).then((res) => {
console.log(res, "res");
this.optionstriggerConditionOperator = res.data;
});
},
changeoptions() {},
//
@ -563,8 +561,8 @@ export default {
triggerConditionValue: "",
triggerConditionName: "",
triggerConditionOperatorName: "",
triggerLogic: "",
dictDataType: "STRING",
triggerLogic: "AND",
triggerLogicName: "",
};
@ -626,15 +624,18 @@ export default {
e.routeId = this.$route.query.id;
e.routeName = this.$route.query.routeName;
});
loading.close();
triggerConditionadd(this.updata).then((res) => {
loading.close();
this.$notify({
type: "success",
title: "提示",
message: "新增触发条件成功",
});
this.info();
this.openfalse();
if (res.code == 200) {
this.$notify({
type: "success",
title: "提示",
message: "新增触发条件成功",
});
this.info();
this.openfalse();
}
});
},
//