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

This commit is contained in:
2024-04-10 16:29:34 +08:00
commit 14cf6c7546
4 changed files with 293 additions and 130 deletions

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

@ -1,5 +1,9 @@
<template>
<div class="app-container">
<el-tabs v-model="queryParams.nodeExecuteStatus" @tab-click="handleClick">
<el-tab-pane label="未执行" name="UNEXECUTED"></el-tab-pane>
<el-tab-pane label="已执行" name="EXECUTED"></el-tab-pane>
</el-tabs>
<el-form
:model="queryParams"
ref="queryForm"
@ -317,11 +321,20 @@
>
<template slot-scope="scope">
<el-button
v-if="queryParams.nodeExecuteStatus == 'UNEXECUTED'"
size="mini"
type="text"
icon="el-icon-bank-card"
@click="handleUpdate(scope.row)"
>处理</el-button
>
<el-button
v-if="queryParams.nodeExecuteStatus == 'EXECUTED'"
size="mini"
type="text"
icon="el-icon-notebook-2"
@click="handleUpdate(scope.row)"
>处理</el-button
@click="handledatail(scope.row)"
>详情</el-button
>
</template>
</el-table-column>
@ -347,7 +360,7 @@ import {
selectAgencyList, getAgencyList
} from "@/api/manage/selectAgencyList";
export default {
name: "TaskExecuteRecord",
name: "Followup22",
dicts: ["visit_type"],
data() {
return {
@ -390,6 +403,7 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
nodeExecuteStatus: 'UNEXECUTED',
followStartTime: null,
followEndTime: null,
clinicalStartTime: null,
@ -446,6 +460,30 @@ export default {
this.selectAgencyinfo();
},
methods: {
handleClick(tab, event) {
this.intentionalTime = [],
this.mzTime = [],
this.ryTime = [],
this.queryParams.dischargeStartTime = null
this.queryParams.dischargeEndTime = null
this.queryParams.clinicalStartTime = null
this.queryParams.clinicalEndTime = null
this.queryParams.followStartTime = null
this.queryParams.followEndTime = null
this.queryParams.admissionEndTime=null
this.queryParams.admissionStartTime=null
this.queryParams.mainDiagnosis=null
this.queryParams.visitSerialNumber=null
this.queryParams.attendingPhysicianId=null
this.queryParams.visitMethod=null
this.queryParams.patientName=null
this.queryParams.hospitalAgencyId=null
this.queryParams.campusAgencyId=null
this.queryParams.departmentId=null
this.queryParams.wardId=null
this.queryParams.patientPhone=null
this.getList();
},
change(e) {
if (e == 'DISCHARGE') {
this.queryParams.clinicalStartTime = null
@ -454,13 +492,12 @@ export default {
} else if (e == 'OUTPATIENT_SERVICE') {
this.queryParams.dischargeStartTime = null
this.queryParams.dischargeEndTime = null
}else{
} else {
this.queryParams.dischargeStartTime = null
this.queryParams.dischargeEndTime = null
this.queryParams.clinicalStartTime = null
this.queryParams.clinicalEndTime = null
}
console.log(e)
// DISCHARGE
@ -503,13 +540,6 @@ export default {
//
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
@ -521,12 +551,6 @@ export default {
//
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
// })
@ -588,6 +612,7 @@ export default {
//
reset() {
this.form = {
nodeExecuteStatus: 'UNEXECUTED',
id: null,
patientId: null,
manageRouteId: null,
@ -626,7 +651,7 @@ export default {
this.queryParams.clinicalEndTime = null
} else {
console.log(this.queryParams, '-----')
if (!this.queryParams.visitMethod || this.queryParams.visitMethod=='IN_THE_HOSPITAL') {
if (!this.queryParams.visitMethod || this.queryParams.visitMethod == 'IN_THE_HOSPITAL') {
this.queryParams.clinicalStartTime = this.mzTime[0]
this.queryParams.clinicalEndTime = this.mzTime[1]
this.queryParams.dischargeStartTime = this.queryParams.clinicalStartTime
@ -677,6 +702,7 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 10,
nodeExecuteStatus: 'UNEXECUTED',
followStartTime: null,
followEndTime: null,
clinicalStartTime: null,
@ -684,7 +710,6 @@ export default {
admissionEndTime: null,
admissionStartTime: null,
mainDiagnosis: null,
visitSerialNumber: null,
attendingPhysicianId: null,
patientId: null,
@ -723,7 +748,7 @@ export default {
this.open = true;
this.title = "添加患者管理任务执行记录";
},
/** 修改按钮操作 */
/** 处理按钮操作 */
handleUpdate(row) {
console.log(row)
this.$router.push({
@ -735,7 +760,7 @@ export default {
cardNo: row.cardNo,
patientName: row.patientName,
manageRouteName: row.manageRouteName,
manageRouteNodeName:row.routeNodeName,
manageRouteNodeName: row.routeNodeName,
patientPhone: row.patientPhone,
sex: row.sex,
birthDate: row.birthDate,
@ -746,9 +771,20 @@ export default {
age: row.birthDate ? getAge(row.birthDate) : "",
manageRouteId: row.manageRouteId,
manageRouteNodeId: row.manageRouteNodeId,
departmentId: row.departmentId,
departmentName: row.departmentName,
diseaseTypeId: row.diseaseTypeId ? row.diseaseTypeId : null,
diseaseTypeName: row.diseaseTypeName ? row.diseaseTypeName : null,
},
});
},
//
handledatail(row) {
console.log(row)
},
/** 提交按钮 */
submitForm() {

View File

@ -39,7 +39,6 @@
<div style="width: 50%">出生日期{{ list.birthDate }}</div>
</div>
<div class="bottom">
<!-- <div>注册时间{{ $route.query.createTime }}</div> -->
<div>家属电话{{ list.familyMemberPhone }}</div>
<div style="width: 50%">住址{{ list.address }}</div>
</div>
@ -50,9 +49,18 @@
<!-- 问卷模板 -->
<div
class="right"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
v-if="
$route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
"
>
<div style="float: right; margin-top: 20px">
<div
style="float: right; margin-top: 20px"
v-if="
$route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
"
>
<el-form
:inline="true"
class="demo-form-inline"
@ -69,10 +77,38 @@
</el-form-item>
</el-form>
</div>
<div class="sport">问卷模板: Barthel指数评定问卷</div>
<div class="words">
<div
class="sport"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷模板: Barthel指数评定问卷
</div>
<div
class="words"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
您好!本问卷用于评估日常生活能力请根据自身日常实际表现选择合适的选项
</div>
<div
class="sport"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
人工随访模板: 神经内科人工随访
</div>
<div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
**您好!
</div>
<div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
我是医院的工作人员今天给您打电话想要了解一下您的恢复情况
</div>
<div
class="words"
v-for="(item, index) in questiondata.questionSubjectList"
@ -167,8 +203,8 @@
style="margin: 20px 0 10px 30px"
>
<el-date-picker
@change="timepicker($event,index)"
clearable
@change="timepicker($event, index)"
clearable
v-model="item.optionAnswer"
type="date"
value-format="yyyy-MM-dd"
@ -182,8 +218,8 @@
v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>
<el-time-select
@change="timepickerselect($event,index)"
clearable
@change="timepickerselect($event, index)"
clearable
v-model="item.optionAnswer"
:picker-options="{
start: '08:30',
@ -199,39 +235,41 @@
<!-- 电话外呼 -->
<div v-if="$route.query.taskType == 'PHONE_OUTBOUND'">
<div class="sport">电话外呼</div>
<div class="nexttime">话术名称</div>
</div>
<!-- 人工随访 -->
<div
class="right"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
<div class="sport">人工随访模板: 神经内科人工随访</div>
<div class="words">**您好!</div>
<div class="words">
我是医院的工作人员今天给您打电话想要了解一下您的恢复情况
</div>
<div class="words">
1.进食单选题
<el-radio-group v-model="radio" class="custom-radio-group">
<el-radio
v-for="item in options"
:key="item.id"
:label="item.value"
>
{{ item.label }}
</el-radio>
<!-- <el-radio label="1" class="custom">备选项</el-radio>
<el-radio label="2" class="custom">备选项</el-radio>
<el-radio label="3" class="custom">备选项</el-radio> -->
</el-radio-group>
<div class="nexttime">
<el-form
ref="form"
:model="formlist"
label-width="110px"
:inline="true"
>
<el-form-item label="话术名称" prop="scriptName">
<el-input
disabled
v-model="formlist.scriptName"
placeholder="请输入话术名称"
/>
</el-form-item>
<br />
<el-form-item label="通用话术名称" prop="commonScriptName">
<el-input
disabled
v-model="formlist.commonScriptName"
placeholder="请输入通用话术名称"
/>
</el-form-item>
<br />
<el-form-item label="话术简介" prop="scriptIntroduction">
<el-input
disabled
type="textarea"
v-model="formlist.scriptIntroduction"
placeholder="请输入话术简介"
/>
</el-form-item>
</el-form>
</div>
</div>
<!-- <div v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'">
<div class="sport">人工随访模板:</div>
<div class="sport">人工随访模板内容:</div>
</div> -->
</div>
</div>
</div>
@ -239,8 +277,8 @@
<script>
import { selectFollowPatientInfo, question, addPatientQuestionResult } from "@/api/system/followupsee";
import { getScript } from "@/api/manage/script";
import Cookies from 'js-cookie'
export default {
name: "patientdetails",
data() {
@ -248,17 +286,28 @@ export default {
obj: {},
checkList: [],
checked: false,
formlist: {},
form: {
taskType: this.$route.query.taskType,
routeHandleId: Cookies.get('userId'),
routeHandlePerson: Cookies.get('userName'),
routeHandleRemark: null,
patientId: this.$route.query.patientId,
manageRouteId: this.$route.query.manageRouteId,
manageRouteNodeId: this.$route.query.manageRouteNodeId,
patientName: this.$route.query.patientName,
manageRouteName: this.$route.query.manageRouteName,
manageRouteNodeName: this.$route.query.manageRouteNodeName,
departmentId: null,
departmentName: null,
diseaseTypeId: null,
diseaseTypeName: null,
},
rules: {
routeHandleRemark: [
{ required: true, message: '请输入任务处理信息', trigger: 'change' }
],
},
options: [
{ id: 1, value: 'A', label: '选项A' },
{ id: 2, value: 'B', label: '选项B', show: 'true' },
{ id: 3, value: 'C', label: '选项C' }
],
radio: "B",
id: "",
list: [],
@ -268,29 +317,33 @@ export default {
totalScore: 0, //
routeHandlePerson: null,
routeHandleId: null,
},
};
},
created() {
this.id = this.$route.query.manageRouteId;
this.info();
this.questioninfo();
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE' || this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') {
this.questioninfo();
} else {
getScript(this.$route.query.templateId).then(response => {
if (response.data) {
this.formlist = response.data;
}
});
}
},
methods: {
//
timepicker(e,index){
this.questiondata.questionSubjectList[index].optionAnswer=e
timepicker(e, index) {
this.questiondata.questionSubjectList[index].optionAnswer = e
},
//
timepickerselect(e,index){
console.log(e)
this.questiondata.questionSubjectList[index].optionAnswer=e
timepickerselect(e, index) {
this.questiondata.questionSubjectList[index].optionAnswer = e
},
radioGroupChange(e, item) {
},
// radio
@ -304,27 +357,21 @@ export default {
el.optionChooseSign = '1'
}
})
console.log(this.questiondata, 'this.questiondata')
this.questiondata
},
//
radioChangecheck(e, item, index, aindex) {
console.log(e, item, index, '选中某个复选框时')
if (e == true) {
this.questiondata.questionSubjectList[index].questionSubjectOptionList[aindex].optionChooseSign = '0'
} else {
this.questiondata.questionSubjectList[index].questionSubjectOptionList[aindex].optionChooseSign = '1'
}
console.log(this.questiondata, '11111111复选框')
},
info() {
selectFollowPatientInfo(this.id).then((res) => {
this.list = res.data;
});
},
@ -340,13 +387,18 @@ export default {
this.questiondata.patientName = this.$route.query.patientName
this.questiondata.manageRouteName = this.$route.query.manageRouteName
this.questiondata.manageRouteNodeName = this.$route.query.manageRouteNodeName
this.questiondata.taskType = this.$route.query.taskType
this.questiondata.totalScore = 0
this.questiondata.questionSubjectList.forEach(e => {
if (e.questionType == 'MULTIPLE_CHOICE' || e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'SCORING_QUESTIONS' || e.questionType == 'COMBINATION_RADIO_SUBJECT' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT' || e.questionType == 'COMBINATION_SCORING_SUBJECT') {
e.whetherScore = '1'
} else {
e.whetherScore = '0'
}
e.questionSubjectOptionList.forEach(el => {
el.questionNumber = e.questionNumber
if (e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT') {
el.optionChooseSign = '1'
}
})
})
@ -357,52 +409,118 @@ export default {
/** 提交按钮 */
submit() {
var score = 0
//
this.questiondata.questionSubjectList.forEach(e => {
if (e.questionSubjectOptionList?.length > 0) {
e.questionSubjectOptionList.forEach(el => {
if (e.questionType == 'MULTIPLE_CHOICE' || e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'SCORING_QUESTIONS') {
if(el.optionChooseSign=='0'){
score += el.optionScore
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE') {
// .=.
this.$delete(this.questiondata, 'updateBy',)
this.$delete(this.questiondata, 'updateTime',)
var score = 0
//
this.questiondata.questionSubjectList.forEach(e => {
if (e.questionSubjectOptionList?.length > 0) {
e.questionSubjectOptionList.forEach(el => {
if (e.questionType == 'MULTIPLE_CHOICE' || e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'SCORING_QUESTIONS' || e.questionType == 'COMBINATION_RADIO_SUBJECT' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT' || e.questionType == 'COMBINATION_SCORING_SUBJECT') {
if (el.optionChooseSign == '0') {
score += el.optionScore
}
}
}
})
console.log(score,'score')
this.questiondata.totalScore=score
})
// console.log(score, 'score')
this.questiondata.totalScore = score
}
}
})
console.log(this.questiondata, 'questiondata')
// .=.
this.questiondata.subjectResultDTOList = this.questiondata.questionSubjectList
this.obj = JSON.parse(JSON.stringify(this.questiondata))
delete this.obj.questionSubjectList;
this.obj.subjectResultDTOList.forEach(e => {
e.optionResultList = e.questionSubjectOptionList
// console.log(e.optionResultList, 'e.optionResultList')
if (e.optionResultList.optionSubmitAnswer) {
e.optionResultList.optionSubmitAnswer = e.optionResultList.optionSubmitAnswer
}
this.$delete(this.obj, '0', '')
// this.obj.splice(index, 1)
})
this.questiondata.subjectResultDTOList = this.questiondata.questionSubjectList
this.obj = JSON.parse(JSON.stringify(this.questiondata))
delete this.obj.questionSubjectList;
this.obj.subjectResultDTOList.forEach(e => {
e.optionResultList = e.questionSubjectOptionList
if (e.optionResultList.optionSubmitAnswer) {
e.optionResultList.optionSubmitAnswer = e.optionResultList.optionSubmitAnswer
}
// this.$delete(this.obj, '0', '')
delete e.questionSubjectOptionList;
});
// console.log(this.obj, 'obj')
delete e.questionSubjectOptionList;
});
console.log(this.obj, 'obj')
// console.log(this.questiondata, 'questiondata')
this.$refs["questiondata"].validate(valid => {
if (valid) {
addPatientQuestionResult(this.obj).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
} else if (this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') {
console.log(this.questiondata, 'questiondata')
// .=.
this.$delete(this.questiondata, 'updateBy',)
this.$delete(this.questiondata, 'updateTime',)
this.questiondata.subjectResultDTOList = this.questiondata.questionSubjectList
this.obj = JSON.parse(JSON.stringify(this.questiondata))
delete this.obj.questionSubjectList;
this.obj.subjectResultDTOList.forEach(e => {
e.optionResultList = e.questionSubjectOptionList
if (e.optionResultList.optionSubmitAnswer) {
e.optionResultList.optionSubmitAnswer = e.optionResultList.optionSubmitAnswer
}
// this.$delete(this.obj, '0', '')
delete e.questionSubjectOptionList;
});
// this.$delete(this.obj, 'totalScore',)
}
});
}
// 访
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE' || this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') {
// console.log(this.obj, 'objobj')
// return
this.$refs["questiondata"].validate(valid => {
if (valid) {
addPatientQuestionResult(this.obj).then(response => {
this.$confirm('保存成功, 是否返回上一页?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'success'
}).then(() => {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/task/followup",
});
})
}).catch(() => {
this.$modal.msgSuccess("保存成功");
});
});
}
});
} else if (this.$route.query.taskType == 'PHONE_OUTBOUND') {
console.log(this.form, '话术')
// return
this.$refs["form"].validate(valid => {
if (valid) {
this.form.departmentId=this.formlist.departmentId,
this.form.departmentName=this.formlist.departmentName,
this.form.diseaseTypeId=this.formlist.diseaseTypeId,
this.form.diseaseTypeName=this.formlist.diseaseTypeName,
console.log(this.form, 'this.form')
// return
addPatientQuestionResult(this.form).then(response => {
this.$confirm('保存成功, 是否返回上一页?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'success'
}).then(() => {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/task/followup",
});
})
}).catch(() => {
this.$modal.msgSuccess("保存成功");
});
});
}
});
}
},
//
cencal() {
@ -412,7 +530,6 @@ export default {
});
},
handleClick(tab, event) {
console.log(tab, event);
},
@ -420,6 +537,14 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .el-input.is-disabled .el-input__inner {
background: #fff !important;
color: #606266;
}
::v-deep .el-textarea.is-disabled .el-textarea__inner {
color: #606266;
background: #fff;
}
.tk {
::v-deep .el-textarea__inner {
margin: 20px 0 10px 30px;