Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
shidongli 2024-04-10 15:43:17 +08:00
commit 320ca59fb9
16 changed files with 607 additions and 279 deletions

View File

@ -0,0 +1,11 @@
import request from '@/utils/request'
// 查询患者列表
export function tasklist(query) {
return request({
url: '/manage/signnode/tasklist',
method: 'get',
params: query
})
}

View File

@ -12,7 +12,7 @@ export function listVisitRecord(query) {
// 查询患者就诊记录基本信息详细
export function getVisitRecord(id) {
return request({
url: '/manage/visitRecord/' + id,
url: '/manage/patientInfo/' + id,
method: 'get'
})
}

View File

@ -52,10 +52,8 @@ const user = {
return new Promise((resolve, reject) => {
getInfo().then(res => {
const user = res.user
console.log(user,'user')
Cookies.set("userId",user.userId)
Cookies.set("userName",user.userName)
// localStorage.setItem("userId",user.userId);
const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
localStorage.setItem('user', JSON.stringify(user))

View File

@ -1,6 +1,6 @@
<template>
<div class="header">
<div class="leftheader">
<div class="leftheader" v-if="categorylist.length > 0">
<div class="item" v-for="(item, index) in categorylist" :key="item.id" @click="clickcategory(item, index)"
:class="index == categoryindex ? 'selectitem' : ''">
<div class="name">
@ -8,36 +8,11 @@
</div>
</div>
</div>
<div class="rightheader">
<div class="rightheader" v-if="categorylist.length > 0">
<div class="richtext">
饮食种类宣教知多少
00:00:00
00:02:26
1 普通饮食
①适用范围:病情较轻或疾病恢复期无消化道疾患不必限制饮食的病人
②饮食要求:一般易消化无刺激性食物均可大多数疾病恢复期的病人需要补充蛋白质热量和多种维生素故可多合动物理白加H内难内マ向饮食种类宣教知多少
00:00:00
00:02:26
1 普通饮食
①适用范围:病情较轻或疾病恢复期无消化道疾患不必限制饮食的病人
②饮食要求:一般易消化无刺激性食物均可大多数疾病恢复期的病人需要补充蛋白质热量和多种维生素故可多合动物理白加H内难内マ向饮食种类宣教知多少
00:00:00
00:02:26
1 普通饮食
①适用范围:病情较轻或疾病恢复期无消化道疾患不必限制饮食的病人
②饮食要求:一般易消化无刺激性食物均可大多数疾病恢复期的病人需要补充蛋白质热量和多种维生素故可多合动物理白加H内难内マ向饮食种类宣教知多少
00:00:00
00:02:26
1 普通饮食
①适用范围:病情较轻或疾病恢复期无消化道疾患不必限制饮食的病人
②饮食要求:一般易消化无刺激性食物均可大多数疾病恢复期的病人需要补充蛋白质热量和多种维生素故可多合动物理白加H内难内マ向饮食种类宣教知多少
00:00:00
00:02:26
1 普通饮食
①适用范围:病情较轻或疾病恢复期无消化道疾患不必限制饮食的病人
②饮食要求:一般易消化无刺激性食物均可大多数疾病恢复期的病人需要补充蛋白质热量和多种维生素故可多合动物理白加H内难内マ向
</div>
</div>
<el-empty description="暂无" style="width: 100%;" v-else></el-empty>
</div>
</template>
<script>
@ -128,5 +103,4 @@ export default {
}
}
}
</style>
</style>

View File

@ -1,6 +1,6 @@
<template>
<div class="header">
<div class="leftheader">
<div class="leftheader" v-if="categorylist.length > 0">
<div class="item" v-for="(item, index) in categorylist" :key="item.id" @click="clickcategory(item, index)"
:class="index == categoryindex ? 'selectitem' : ''">
<div class="time">{{ item.signTime }}
@ -11,7 +11,7 @@
<!-- <el-tag class="type" size="mini" type="success">门诊</el-tag> -->
</div>
</div>
<div class="rightheader">
<div class="rightheader" v-if="categorylist.length > 0">
<div class="richtext">
<el-descriptions title="基本信息" style="margin-top: 20px;">
<el-descriptions-item label="医院">{{ ByRecord.hospitalAgencyName }}</el-descriptions-item>
@ -24,7 +24,7 @@
<el-descriptions title="签约信息" style="margin-top: 40px;">
<el-descriptions-item label="服务包">{{ ByRecord.packageName }}</el-descriptions-item>
<el-descriptions-item label="服务包缴费状态">{{ ByRecord.packagePaymentStatus == 'PAID' ? '已缴费' :
ByRecord.packagePaymentStatus == 'UNPAID_FEES' ? '未缴费' : '' }}</el-descriptions-item>
ByRecord.packagePaymentStatus == 'UNPAID_FEES' ? '未缴费' : '' }}</el-descriptions-item>
<el-descriptions-item label="到期时间">{{ ByRecord.serviceEndTime }}</el-descriptions-item>
<el-descriptions-item label="服务包价格">{{ ByRecord.packagePrice }}</el-descriptions-item>
<el-descriptions-item label="服务时间">{{ ByRecord.serviceStartTime }}</el-descriptions-item>
@ -57,6 +57,7 @@
</el-descriptions>
</div>
</div>
<el-empty description="暂无" v-else style="width: 100%;"></el-empty>
</div>
</template>
<script>

View File

@ -40,7 +40,7 @@
</el-descriptions>
<el-descriptions title="健康管理师信息" style="padding:20px 30px 10px" class="descriptions">
</el-descriptions>
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="100px" class="demo-ruleForm"
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="110px" class="demo-ruleForm"
:inline="true" style="padding-left:40px">
<el-form-item label="健康管理师" prop="healthManageId">
<el-select v-model="signPackage.healthManageId" filterable placeholder="请选择健康管理师"
@ -53,7 +53,7 @@
</el-form>
<el-descriptions title="服务包信息" style="padding:20px 30px 10px" class="descriptions">
</el-descriptions>
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="100px" class="demo-ruleForm"
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="110px" class="demo-ruleForm"
:inline="true" style="padding-left:40px">
<el-form-item label="选择服务包" prop="packageName">
<el-input v-model="signPackage.packageName" disabled></el-input>
@ -69,7 +69,7 @@
</el-form>
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="80px" class="demo-ruleForm"
:inline="true" style="padding-left:40px">
<el-form-item label="签约期限" prop="" label-width="100px">
<el-form-item label="签约期限" prop="" label-width="110px">
<div>
<el-input v-model="signPackage.packageTerm" style="width:130px" disabled
placeholder="请输入签约周期"></el-input>
@ -97,7 +97,7 @@
</el-form>
<el-descriptions title="专病管理信息" style="padding:20px 30px 10px" class="descriptions">
</el-descriptions>
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="100px" class="demo-ruleForm"
<el-form :model="signPackage" :rules="rules" ref="signPackage" label-width="110px" class="demo-ruleForm"
:inline="true" style="padding-left:40px">
<el-form-item label="专病管理路径" prop="routeId">
<specialDiseaseRoute @on-template="onroute" :routeId="signPackage.routeId"
@ -107,7 +107,7 @@
</el-form>
<el-descriptions title="硬件信息" style="padding:20px 30px 10px" class="descriptions">
</el-descriptions>
<el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm" :inline="true"
<el-form :model="form" :rules="rules" ref="form" label-width="110px" class="demo-ruleForm" :inline="true"
style="padding-left:40px">
<div v-for="(item, index) in form.devices" :key="index">
<el-form-item label="硬件类型" :prop="`devices[${index}].hardwareType`"
@ -165,7 +165,10 @@ export default {
serviceStartTime: undefined,
serviceEndTime: '',
healthManageId: "",
healthManageName: "",
packagePaymentStatus: '',
routeId: '',
routeName: '',
},
pickerOptions: {
disabledDate: (time) => {
@ -190,6 +193,12 @@ export default {
informeds: []
},
rules: {
routeId: [
{ required: true, message: '请选择专病管理路径', trigger: 'change' }
],
healthManageId: [
{ required: true, message: '请选择健康管理师', trigger: 'change' }
],
packageName: [
{ required: true, message: '请选择服务包', trigger: 'change' }
],
@ -243,6 +252,10 @@ export default {
getByRecordId(this.$route.query.patientSignRecordId).then(res => {
this.list = res.data
this.signPackage.packagePaymentStatus = res.data.packagePaymentStatus
this.signPackage.healthManageId = res.data.healthManageId
this.signPackage.healthManageName = res.data.healthManageName
this.signPackage.routeId = res.data.routeId
this.signPackage.routeName = res.data.routeName
// this.signPackage.packageName = this.list.packageName
// this.signPackage.packageId = this.list.servicePackageId
// this.signPackage.serviceCycle = this.list.serviceCycle

View File

@ -3,7 +3,8 @@
<div class="topheader">
<div class="user">
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="" v-if="$route.query.sex == 'MALE'">
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt="" v-if="$route.query.sex == 'FEMALE'">
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt=""
v-if="$route.query.sex == 'FEMALE'">
<div class="name">
{{ $route.query.patientName }}
</div>
@ -28,7 +29,8 @@
小程序
</div>
</div>
<div class="item" style="color:#F4881F;border-color:#F4881F" v-if="$route.query.patientSource == 'MANAGE_END'">
<div class="item" style="color:#F4881F;border-color:#F4881F"
v-if="$route.query.patientSource == 'MANAGE_END'">
<img src="../../../assets/manage/gld.png" alt="">
<div>
管理端
@ -54,7 +56,9 @@
<el-tab-pane label="就诊记录" name="first">
<visitRecords></visitRecords>
</el-tab-pane>
<el-tab-pane label="康复计划及记录" name="second">康复计划及记录</el-tab-pane>
<el-tab-pane label="康复计划及记录" name="second">
<el-empty description="暂无" style="width: 100%;"></el-empty>
</el-tab-pane>
<el-tab-pane label="健康宣教" name="third">
<healthEducation v-if="activeName == 'third'"></healthEducation>
</el-tab-pane>
@ -68,7 +72,7 @@
</div>
</div>
</template>
<script>
import visitRecords from '../components/visitRecords.vue';
import healthEducation from '../components/healthEducation.vue';
@ -192,5 +196,4 @@ export default {
}
}
}
</style>
</style>

View File

@ -0,0 +1,361 @@
<template>
<div class="app-container">
<el-tabs v-model="queryParams.routeCheckStatustwo" @tab-click="handleClick">
<el-tab-pane label="未审核" name="routeCheckStatustwo"></el-tab-pane>
<el-tab-pane label="已审核" name="AGREE"></el-tab-pane>
<el-tab-pane label="已忽略" name="DISAGREE"></el-tab-pane>
</el-tabs>
<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">
<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>
<el-table v-loading="loading" :data="patientInfoList">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="患者姓名" align="center" prop="patientName" />
<el-table-column label="患者电话" align="center" prop="patientPhone" width='120' />
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
{{ scope.row.sex == 'MALE' ? '男' : '' }}
{{ scope.row.sex == 'FEMALE' ? '女' : '' }}
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" />
<el-table-column label="出生日期" align="center" prop="birthDate" width='130' />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" width='130' />
<el-table-column label="院区" align="center" prop="campusAgencyName" width='130' />
<el-table-column label="科室名称" align="center" prop="departmentName" width='130' />
<el-table-column label="病区名称" align="center" prop="wardName" width='130' />
<el-table-column label="住院/门诊号" align="center" prop="inHospitalNumber" width='130' />
<el-table-column label="患者来源" align="center" prop="patientSource">
<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" />
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
<el-table-column label="手术名称" align="center" prop="surgicalName" />
<el-table-column label="出院/就诊时间" align="center" prop="dischargeTime" width='130'>
<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">
<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.routeCheckStatustwo == 'routeCheckStatustwo'">审核</el-button>
<el-button size="mini" type="text" @click="handleLook(scope.row)"
v-if="queryParams.routeCheckStatustwo != 'routeCheckStatustwo'">查看</el-button>
</template>
</el-table-column>
</el-table>
<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 { usergetList } from "@/api/unitconfig/patientConfiguration";
export default {
name: "manualReview",
dicts: ['patient_type', 'visit_method', 'sign_status', 'patient_source'],
data() {
return {
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: '',
routeCheckStatustwo: 'routeCheckStatustwo',
},
dischargeTime: [],
admissionTime: [],
//list
hospitalAgencylist: [],
// list
campusAgencylist: [],
//list
departmentlist: [],
//list
wardlist: [],
};
},
created() {
this.getList();
this.selectAgencyinfo();
},
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
if (tab.index == '0') {
this.queryParams.routeCheckStatus = ''
} else if (tab.index == '1') {
this.queryParams.routeCheckStatus = 'AGREE'
} else if (tab.index == '2') {
this.queryParams.routeCheckStatus = 'DISAGREE'
}
this.getList();
},
//
usergetListinfo() {
usergetList({
agencyId: this.queryParams.hospitalAgencyId,
postName: 'DOCTOR'
}).then(res => {
this.attendingPhysicianlist = res.data
})
},
//
handleLook(row) {
},
/** 审核操作 */
handleAuthRole(row) {
// this.$router.push({
// path: "/patient/patientdetails",
// query: {
// patientId: row.id,
// cardNo: row.cardNo,
// patientName: row.patientName,
// patientPhone: row.patientPhone,
// sex: row.sex,
// birthDate: row.birthDate,
// familyMemberPhone: row.familyMemberPhone,
// address: row.address,
// patientSource: row.patientSource,
// createTime: row.createTime,
// age: row.birthDate ? getAge(row.birthDate) : ''
// },
// });
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
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]
}
if (this.admissionTime?.length > 0) {
this.queryParams.admissionTimeStart = this.admissionTime[0]
this.queryParams.admissionTimeEnd = this.admissionTime[1]
}
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',
// agencyId: 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
this.getAgencyListinfo('CAMPUS', this.queryParams.campusAgencyId)
},
}
};
</script>

View File

@ -373,9 +373,9 @@
/>
</el-form-item>
<el-form-item label="LIS对照" prop="lisCompare">
<!-- <el-form-item label="LIS对照" prop="lisCompare">
<el-input v-model="form.lisCompare" placeholder="请输入LIS对照" />
</el-form-item>
</el-form-item> -->
<el-form-item label="计量单位" prop="projectUnit">
<el-input v-model="form.projectUnit" placeholder="请输入计量单位" />
</el-form-item>

View File

@ -556,6 +556,8 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.deviceType=''
this.handleQuery();
},
//

View File

@ -223,7 +223,7 @@
prop="serviceWayFrequencyList"
>
<!-- <template slot-scope="scope">
<el-select
size="mini"
@click="getSuppliers()"
@ -232,7 +232,7 @@
clearable
placeholder="请选择"
>
<el-option
v-for="item in scope.row.serviceWayFrequencyList"
:key="item.id"
@ -249,7 +249,7 @@
>
</el-option>
</el-select>
</template> -->
<!-- </div> -->
@ -355,7 +355,7 @@
<el-form-item label="" prop="serviceFrequencyStart" label-width="">
<el-input
:disabled="disableda"
oninput="value=value.replace(/[^\d.]/g,'')"
:change="checkPrice()"
v-model="form.serviceFrequencyStart"
placeholder="请输入服务频次数字起始值"
/>
@ -364,6 +364,7 @@
<el-form-item label="" prop="serviceFrequencyEnd" label-width="">
<el-input
:disabled="disabledb"
:change="checkPricemax()"
oninput="value=value.replace(/[^\d.]/g,'')"
v-model="form.serviceFrequencyEnd"
placeholder="请输入服务频次数字结束值"
@ -395,6 +396,7 @@
v-model="form.serviceSort"
controls-position="right"
:min="0"
@change="$forceUpdate()"
style="width: 250px"
/>
</el-form-item>
@ -553,6 +555,41 @@ export default {
this.mentlist();
},
methods: {
/**只能输入数字且有小数点最多保留两位*/
checkPrice() {
let checkPlan = "" + this.form.serviceFrequencyStart;
checkPlan = checkPlan
.replace(/[^\d.]/g, "") // .
.replace(/\.{2,}/g, ".") // .
.replace(/^\./g, "") // .
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
if (checkPlan.indexOf(".") < 0 && checkPlan !== "") {
// 0102
checkPlan = parseFloat(checkPlan) + "";
} else if (checkPlan.indexOf(".") >= 0) {
checkPlan = checkPlan.replace(/^()*(\d+)\.(\d\d).*$/, "$1$2.$3"); //
}
this.form.serviceFrequencyStart = checkPlan;
},
checkPricemax() {
let checkPlan = "" + this.form.serviceFrequencyEnd;
checkPlan = checkPlan
.replace(/[^\d.]/g, "") // .
.replace(/\.{2,}/g, ".") // .
.replace(/^\./g, "") // .
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
if (checkPlan.indexOf(".") < 0 && checkPlan !== "") {
// 0102
checkPlan = parseFloat(checkPlan) + "";
} else if (checkPlan.indexOf(".") >= 0) {
checkPlan = checkPlan.replace(/^()*(\d+)\.(\d\d).*$/, "$1$2.$3"); //
}
this.form.serviceFrequencyEnd = checkPlan;
},
// getSuppliers(e) {
// console.log(e);
// },
@ -733,7 +770,6 @@ export default {
this.disableda = false;
this.disabledb = false;
this.disabled = true; //
this.form.serviceFrequencyType = "DIGIT";
console.log(this.itemname, "itemname");
if (this.itemname) {
@ -741,10 +777,6 @@ export default {
this.form.serviceWayId = this.itemname;
console.log(this.form, " this.form");
}
// else if (this.itemname == null) {
// this.form.serviceWayId = ""
// }
this.open = true;
this.title = "添加服务方式内容";
},
@ -757,7 +789,12 @@ export default {
this.reset();
getServicewaycontent(row.id).then((response) => {
this.form = response.data;
// this.form.serviceWayId=row.serviceWayId
if (response.data.serviceFrequencySort) {
this.form.serviceSort = response.data.serviceFrequencySort;
}
else {
this.form.serviceSort = undefined;
}
this.form.id = response.data.serviceFrequencyId;
if (response.data.serviceWayId) {
this.form.serviceWayId = response.data.serviceWayId;
@ -996,4 +1033,4 @@ export default {
.el-button--success.is-plain {
font-size: 10px;
}
</style>
</style>

View File

@ -89,8 +89,11 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5" v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">
<el-button type="primary" plain size="mini" @click="addTask">手动创建任务</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['manage:signRecord:add']">新增</el-button>
</el-col>
@ -105,9 +108,9 @@
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['manage:signRecord:export']">导出</el-button>
</el-col>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
</el-row>
<div v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'">
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
@ -164,7 +167,8 @@
</el-table>
</div>
<div v-if="queryParams.serviceStatus == 'SERVICE_CENTER'">
<el-table v-loading="loading" :data="signRecordList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="signRecordList" highlight-current-row @current-change="singleElection"
@selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" width="130" />
@ -333,7 +337,8 @@ export default {
patientId: [
{ required: true, message: "患者信息表id不能为空", trigger: "blur" }
],
}
},
addTaskitem: {},
};
},
created() {
@ -431,6 +436,29 @@ export default {
this.resetForm("queryForm");
this.handleQuery();
},
//
singleElection(item) {
this.addTaskitem = item
},
//
addTask() {
if (this.addTaskitem) {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/patient/ManuallyCreatingTasks",
query: {
signPatientRecordId: this.addTaskitem.id,
patientId: this.addTaskitem.patientId,
patientName: this.addTaskitem.patientName,
departmentId: this.addTaskitem.departmentId,
departmentName: this.addTaskitem.departmentName,
},
});
})
} else {
this.$message.error('请先选择一名签约服务中患者');
}
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
@ -480,6 +508,7 @@ export default {
this.queryParams.intentionalTimeStart = null
this.queryParams.intentionalTimeEnd = null
this.signTime = []
this.queryParams.pageNum = 1;
this.queryParams.signTimeStart = null
this.queryParams.signTimeEnd = null
this.getList();
@ -692,3 +721,13 @@ export default {
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-table__body tr.current-row>td.el-table__cell {
background-color: #409EFF;
color: #fff;
.el-button {
color: #fff;
}
}
</style>>

View File

@ -2,7 +2,7 @@
<div>
<div class="title">
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="upload">执行</el-button>
<el-button type="primary" @click="upload">保存</el-button>
</div>
<el-descriptions title="手动创建任务">
</el-descriptions>
@ -84,7 +84,8 @@
</el-timeline>
</div>
<div class="nodetexts">
<div style=" background-color: #fff; border-radius: 10px;padding:20px;height:160px">
<div style=" background-color: #fff; border-radius: 10px;padding:20px;"
:style="formInline.taskType == 'TEXT_REMIND' ? '' : 'height:160px'">
<el-form :model="formInline" class="demo-form-inline">
<el-form-item label="任务内容">
<el-radio-group v-model="formInline.taskType">
@ -121,21 +122,30 @@
</el-form-item>
</el-form>
</div>
<div class="PushMethod">
<span>推送方式短信</span>
<el-switch v-model="formInline.messagePushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
<div
v-if="formInline.taskType == 'TEXT_REMIND' || formInline.taskType == 'PROPAGANDA_ARTICLE' || formInline.taskType == 'QUESTIONNAIRE_SCALE'">
<div class="PushMethod">
<span>推送方式短信</span>
<el-switch v-model="formInline.messagePushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
</div>
<div class="PushMethod">
<span>推送方式公众号</span>
<el-switch v-model="formInline.officialPushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
</div>
<div class="PushMethod">
<span>推送方式小程序</span>
<el-switch v-model="formInline.appletPushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
</div>
</div>
<div class="PushMethod">
<span>推送方式公众号</span>
<el-switch v-model="formInline.officialPushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
</div>
<div class="PushMethod">
<span>推送方式小程序</span>
<el-switch v-model="formInline.appletPushSign" active-color="#13ce66" active-value="1"
<div class="PushMethod" v-if="formInline.taskType == 'PHONE_OUTBOUND'">
<span>推送方式人工电话</span>
<el-switch v-model="formInline.phonePushSign" active-color="#13ce66" active-value="1"
inactive-value="0">
</el-switch>
</div>
@ -157,6 +167,11 @@ export default {
data() {
return {
updata: {
signPatientRecordId: '',
patientId: '',
patientName: '',
departmentId: '',
departmentName: '',
routeName: '',
suitRange: '',
routeNodeList: [],
@ -183,6 +198,7 @@ export default {
officialPushSign: '0',
messagePushSign: '0',
appletPushSign: '0',
phonePushSign: '0',
},
list: [
{
@ -200,6 +216,7 @@ export default {
officialPushSign: '0',
messagePushSign: '0',
appletPushSign: '0',
phonePushSign: '0',
}
],
listindex: 0,
@ -207,6 +224,11 @@ export default {
},
created() {
this.formInline = this.list[0]
this.updata.signPatientRecordId = this.$route.query.signPatientRecordId
this.updata.patientId = this.$route.query.patientId
this.updata.patientName = this.$route.query.patientName
this.updata.departmentId = this.$route.query.departmentId
this.updata.departmentName = this.$route.query.departmentName
},
methods: {
addtriggerCondition() {
@ -253,6 +275,7 @@ export default {
officialPushSign: '0',
messagePushSign: '0',
appletPushSign: '0',
phonePushSign: '0',
})
},
delitem(item, index) {
@ -261,7 +284,19 @@ export default {
upload() {
this.updata.routeNodeList = this.list
signrouteadd(this.updata).then(res => {
this.$notify({
type: 'success',
title: '提示',
message: '保存成功,即将返回签约患者列表',
duration: 3000
});
setTimeout(() => {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/patient/signRecord",
});
})
}, 3000);
})
},
}

View File

@ -164,7 +164,7 @@ export default {
handleselect(item) {
this.handleselectId = item.id
this.handleselectName = item.commonScriptName
this.$emit("on-template", { templateId: item.id, templateName: item.commonScriptName });
this.$emit("on-template", { templateId: item.id, templateName: item.commonScriptName, templateContent: item.scriptIntroduction });
this.classificationOpen = false
},
classificationOpenfalse() {

View File

@ -1,10 +1,5 @@
<template>
<div class="app-container">
<!-- <el-tabs v-model="queryParams.serviceStatus" @tab-click="handleClick">
<el-tab-pane label="未执行" name="INTENTIONAL_SIGNING"></el-tab-pane>
<el-tab-pane label="执行中" name="SERVICE_CENTER"></el-tab-pane>
<el-tab-pane label="已执行" name="SERVICE_END"></el-tab-pane>
</el-tabs> -->
<el-form
:model="queryParams"
ref="queryForm"
@ -16,49 +11,17 @@
<el-form-item label="执行时间" prop="startDate" label-width="110px">
<el-date-picker
v-model="intentionalTime"
@change="pickerChangeFn"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
style="width: 300px"
value-format="yyyy-MM-dd"
clearable
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<!-- <el-form-item
label="出院时间"
prop="intentionalTimeStart"
label-width="110px"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'"
>
<el-date-picker
v-model="intentionalTime"
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="intentionalTimeStart"
label-width="110px"
v-if="queryParams.serviceStatus == 'INTENTIONAL_SIGNING'"
>
<el-date-picker
v-model="intentionalTime"
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="hospitalAgencyId">
<el-select
v-model="queryParams.hospitalAgencyId"
@ -66,10 +29,8 @@
placeholder="请选择医院"
style="width: 200px"
clearable
>
<!-- @clear="clearhospitalAgency" -->
<!-- @clear="clearhospitalAgency" -->
<el-option
v-for="item in hospitalAgencylist"
:key="item.id"
@ -79,69 +40,7 @@
</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.campusAgencyId"
>
<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.departmentId">
<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 label="就诊方式" prop="visitMethod">
<el-select
v-model="queryParams.visitMethod"
@ -156,14 +55,7 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="患者表id" prop="patientId">
<el-input
v-model="queryParams.patientId"
placeholder="请输入患者表id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="就诊流水号" prop="visitSerialNumber">
<el-input
v-model="queryParams.visitSerialNumber"
@ -172,14 +64,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="签约患者管理任务节点表id" prop="manageRouteNodeId">
<el-input
v-model="queryParams.manageRouteNodeId"
placeholder="请输入签约患者管理任务节点表id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="患者姓名" prop="patientName">
<el-input
v-model="queryParams.patientName"
@ -198,43 +83,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="路径节点名称" prop="manageRouteNodeName">
<el-input
v-model="queryParams.manageRouteNodeName"
placeholder="请输入管理路径节点名称"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="任务执行时间" prop="executeTime">
<el-date-picker
clearable
style="width: 200px"
v-model="queryParams.executeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择任务执行时间格式yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item> -->
<!-- <el-form-item label="执行人姓名" prop="executePerson">
<el-input
v-model="queryParams.executePerson"
placeholder="请输入执行人姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<!-- <el-form-item label="模板名称" prop="executeRemark">
<el-input
v-model="queryParams.executeRemark"
placeholder="请输入模板名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
@ -303,10 +151,14 @@
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键id" align="center" prop="id" /> -->
<!-- <el-table-column label="患者表id" align="center" prop="patientId" /> -->
<el-table-column label="患者姓名" align="center" prop="patientName" />
<el-table-column label="电话" align="center" prop="patientPhone" />
<el-table-column label="就诊流水号" align="center" prop="visitSerialNumber" />
<el-table-column
label="就诊流水号"
align="center"
prop="visitSerialNumber"
/>
<el-table-column label="医院" align="center" prop="hospitalAgencyName" />
<el-table-column label="院区" align="center" prop="campusAgencyName" />
<el-table-column label="科室名称" align="center" prop="departmentName" />
@ -314,9 +166,17 @@
<!-- <el-table-column label="门诊/住院号" align="center" prop="patientName" />
<el-table-column label="手术名称" align="center" prop="patientName" /> -->
<el-table-column label="执行人姓名" align="center" prop="executePerson" />
<el-table-column label="签约患者管理路径节点名称" align="center" prop="manageRouteNodeName" />
<el-table-column label="签约患者管理任务名称" align="center" prop="manageRouteName" />
<el-table-column
label="签约患者管理路径节点名称"
align="center"
prop="manageRouteNodeName"
/>
<el-table-column
label="签约患者管理任务名称"
align="center"
prop="manageRouteName"
/>
<el-table-column
label="入院时间"
align="center"
@ -341,7 +201,7 @@
<template slot-scope="scope">
<span
>{{ scope.row.visitMethod == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
{{ scope.row.visitMethod == "BE_IN_HOSPITAL" ? "住院" : "" }}
{{ scope.row.visitMethod == "BE_HOSPITALIZED" ? "住院" : "" }}
</span>
</template></el-table-column
>
@ -380,16 +240,7 @@
</span>
</template></el-table-column
>
<el-table-column
label="执行时间"
align="center"
prop="executeTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.executeTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="执行人姓名,手动执行时记录" align="center" prop="executePerson" /> -->
<!-- <el-table-column label="任务执行方式人工执行MANUAL_EXECUTE系统自动执行SYSTEM_AUTOMATIC_EXECUTE" align="center" prop="executeType" /> -->
<!-- <el-table-column
@ -430,8 +281,6 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
@ -444,9 +293,7 @@ import {
} from "@/api/system/taskExecuteRecord";
import { getAge } from "@/utils/age";
import {
selectAgencyList,
} from "@/api/manage/selectAgencyList";
import { selectAgencyList } from "@/api/manage/selectAgencyList";
export default {
name: "TaskExecuteRecord",
dicts: ["visit_type"],
@ -518,6 +365,18 @@ export default {
this.selectAgencyinfo();
},
methods: {
// pickerChangeFn(value){ // ~
pickerChangeFn() {
if (this.intentionalTime == null) {
this.intentionalTime = [];
this.queryParams.startDate = null;
this.queryParams.endDate = null;
} else {
this.queryParams.startDate = this.intentionalTime[0];
this.queryParams.endDate = this.intentionalTime[1];
}
},
// },
//list
selectAgencyinfo() {
let query = {
@ -567,19 +426,15 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
if (this.intentionalTime?.length > 0) {
this.queryParams.startDate = this.intentionalTime[0]
this.queryParams.endDate = this.intentionalTime[1]
}
this.getList();
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
this.intentionalTime = [];
this.queryParams.startDate = null;
this.queryParams.endDate = null;
this.getList();
},
//
handleSelectionChange(selection) {
@ -595,12 +450,12 @@ export default {
},
/** 修改按钮操作 */
handleUpdate(row) {
console.log(row)
console.log(row);
this.$router.push({
path: "/task/record",
query: {
patientId: row.patientId,
taskContent:row.taskContent,
taskContent: row.taskContent,
cardNo: row.cardNo,
patientName: row.patientName,
patientPhone: row.patientPhone,
@ -613,7 +468,6 @@ export default {
age: row.birthDate ? getAge(row.birthDate) : "",
},
});
},
/** 提交按钮 */
submitForm() {

View File

@ -163,9 +163,9 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="pat_id" prop="patientId">
<!-- <el-form-item label="pat_id" prop="patientId">
<el-input v-model="form.patientId" placeholder="" disabled />
</el-form-item>
</el-form-item> -->
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
@ -242,9 +242,9 @@ export default {
cardNo: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }
],
patientId: [
{ required: true, message: "患者表id不能为空", trigger: "blur" }
],
// patientId: [
// { required: true, message: "id", trigger: "blur" }
// ],
}
};
},