罗斌杰 11 months ago
parent
commit
7bb2dc4bc0
  1. 35
      src/components/follow/FollowCriticalCheck.vue
  2. 97
      src/components/follow/FollowList.vue
  3. 9
      src/components/follow/FollowQuery.vue
  4. 18
      src/components/follow/PhoneFollowUp.vue
  5. 6
      src/components/follow/follow.vue
  6. 6
      src/store/index.js
  7. 79
      src/views/fee-settings/Item.vue

35
src/components/follow/FollowCriticalCheck.vue

@ -5,7 +5,7 @@
<div @contextmenu.prevent="onContextmenu">
<el-form ref="form" :model="tableData" label-width="105px">
<el-row>
<el-col :span="11">
<el-col :span="12">
<el-form-item label="危急值范围">
<el-input
v-model="tableData.criticalRangeValue"
@ -15,6 +15,17 @@
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="诊断级别">
<el-select v-model="tableData.diagnosisLevelId" placeholder="请选择诊断级别" clearable style="width: 150px"
size="small" @clear="clear">
<el-option v-for="item in dict.diagnosisLevel" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<el-form-item label="危急值标志">
<el-checkbox
@ -168,7 +179,9 @@ export default {
isReview:"N",
isFollowUp:"N",
followUpCreatorName:"",
followUpCreationTime:""
followUpCreationTime:"",
criticalRangeValue:"",
diagnosisLevelId:null
},
tableDataCurrentRow: {}, //
@ -272,7 +285,11 @@ export default {
this.loadOpts.maxResultCount = Number(this.LocalConfig.normal.maxResultCount || 100)
this.loadOptsInit = Object.assign({}, this.loadOpts)
// this.tableData=this.doctorCheck.RegisterCheck
getapi("/api/app/diagnosis-level/in-filter").then((res) => {
if (res.code > -1) {
this.dict.diagnosisLevel = res.data;
}
});
if(this.doctorCheck.combinationCriticalValue){
getapi(`/api/app/registercheck/getregistercheck?id=${this.doctorCheck.RegisterCheckId}`)
.then(res => {
@ -280,9 +297,7 @@ export default {
this.tableData=res.data
}
})
// this.tableData=this.doctorCheck.RegisterCheckEdit
}else{
console.log(this.doctorCheck.singleDetailedProject)
postapi("/api/app/RegisterCheckItem/GetRegisterCheckItem",{
registerCheckId:this.doctorCheck.RegisterCheckId,
itemId:this.doctorCheck.singleDetailedProject.itemId
@ -671,7 +686,9 @@ export default {
this.dataTransOpts.refresh.register_check_asbitem.M++ //
// }
},
clear(){
this.tableData.diagnosisLevelId=null
},
// ()
btnImportOrgData() {
if(this.doctorCheck.combinationCriticalValue){
@ -681,7 +698,8 @@ export default {
isFollowUp:this.tableData.isFollowUp,
criticalValueContent:this.tableData.criticalValueContent,
isCriticalValueAudit:this.tableData.isCriticalValueAudit,
isReview:this.tableData.isReview
isReview:this.tableData.isReview,
diagnosisLevelId:this.tableData.diagnosisLevelId
}).then(res => {
this.doctorCheck.RegisterCheckEdit.isCriticalValue=this.tableData.isCriticalValue
this.dialogWin.FollowCriticalCheck = false
@ -695,7 +713,8 @@ export default {
criticalValueContent:this.tableData.criticalValueContent,
isCriticalValueAudit:this.tableData.isCriticalValueAudit,
isReview:this.tableData.isReview,
itemId:this.tableData.itemId
itemId:this.tableData.itemId,
diagnosisLevelId:this.tableData.diagnosisLevelId
}).then(res => {
for(let i=0;i<this.doctorCheck.checkItemList.length;i++){
console.log(this.doctorCheck.checkItemList[i])

97
src/components/follow/FollowList.vue

@ -39,12 +39,12 @@
<div v-html="mergeSummarys(scope.row.abnormalItemDetail,'itemName')"></div>
</template>
</el-table-column> -->
<el-table-column prop="isSmsComplete" label="短信随访创建完成" width="200">
<el-table-column prop="isSmsComplete" label="短信随访创建完成" width="120">
<!-- <template slot-scope="scope">
<el-checkbox v-model="scope.row.isSmsComplete" disabled true-label="Y" false-label="N"></el-checkbox>
</template> -->
</el-table-column>
<el-table-column prop="isPhoneComplete" label="电话随访创建完成" width="200">
<el-table-column prop="isPhoneComplete" label="电话随访创建完成" width="120">
<!-- <template slot-scope="scope">
<el-checkbox v-model="scope.row.isPhoneComplete" disabled true-label="Y" false-label="N"></el-checkbox>
</template> -->
@ -54,6 +54,11 @@
<div v-html="scope.row.criticalValueContents"></div>
</template>
</el-table-column>
<el-table-column prop="diagnosisLevelNames" label="诊断级别" width="200">
<template slot-scope="scope">
<div v-html="scope.row.diagnosisLevelNames"></div>
</template>
</el-table-column>
<el-table-column prop="jobCardNo" label="工卡号" width="90" align="center" />
<el-table-column prop="medicalCardNo" label="体检卡号" width="90" align="center" />
<el-table-column prop="maritalStatusName" label="婚姻状况" width="90" align="center" />
@ -143,7 +148,7 @@ export default {
FollowCritical,
PhoneFollowUp,
SmsSend,
AsbitemCriticalValue
AsbitemCriticalValue,
},
data() {
return {
@ -308,7 +313,7 @@ export default {
},
},
LocalConfigInit: {},
columnData:[]
columnData: [],
};
},
@ -369,14 +374,15 @@ export default {
deepCopy,
checkPagePriv,
setPrStatusColor,
mergeSummarys(array,itemKey) {
let ret = ''
mergeSummarys(array, itemKey) {
let ret = "";
array.forEach((e, i) => {
let splitStr = "<br>"
if (i == 0) splitStr = ""
return ret += splitStr + e[itemKey]+' '+e.isCriticalValue+' '+e.isReview
})
return ret
let splitStr = "<br>";
if (i == 0) splitStr = "";
return (ret +=
splitStr + e[itemKey] + " " + e.isCriticalValue + " " + e.isReview);
});
return ret;
},
//
handleRowClassName({ row, rowIndex }) {
@ -747,7 +753,7 @@ export default {
async Query() {
//
this.dataTransOpts.tableS.patient_register.followUpId = "";
this.dataTransOpts.tableS.patient_register.patientRegisterId=""
this.dataTransOpts.tableS.patient_register.patientRegisterId = "";
this.tableDataCurrentRow = {}; //
this.tableData = [];
@ -769,19 +775,16 @@ export default {
async getPrList() {
// console.log('getPrList', this.loadOpts)
let body = {
},
let body = {},
customerOrgs = [];
if (this.report.dataCusOrgOCX.length > 0) {
if (this.report.dataCusOrgOCX.length > 1) {
return this.$message({
message: '只能选择一个单位',
type: 'warning'
message: "只能选择一个单位",
type: "warning",
});
} else {
this.report.dataCusOrgOCX.forEach((e) => {
if (e.customerOrgId) {
body.customerOrgId = e.customerOrgId;
if (e.customerOrgId == this.dict.personOrgId) {
@ -792,14 +795,14 @@ export default {
body.customerOrgGroupId = e.customerOrgGroupIds;
}
}
body.startDate=moment(e.startDate).format("yyyy-MM-DD"),
body.endDate= moment(e.endDate).format("yyyy-MM-DD"),
body.dateType=
(body.startDate = moment(e.startDate).format("yyyy-MM-DD")),
(body.endDate = moment(e.endDate).format("yyyy-MM-DD")),
(body.dateType =
e.dateType == "summaryDate"
? "3"
: e.dateType == "medicalStartDate"
? "2"
: "1"
: "1");
});
}
}
@ -831,6 +834,8 @@ export default {
if (this.patientRegister.query.isPhoneComplete)
body.isPhoneComplete = this.patientRegister.query.isPhoneComplete;
if (this.patientRegister.query.diagnosisLevelId.length>0)
body.diagnosisLevelIds = this.patientRegister.query.diagnosisLevelId;
if (this.patientRegister.query.idCardNo)
body = {
@ -861,22 +866,40 @@ export default {
).then((res) => {
if (res.code > -1) {
let that = this;
for(let i=0;i<res.data.length;i++){
for(let k = 0; k <res.data[i].phoneFollowUpDetail.length;k++){
that.columnData.push("第"+[k+1]+"次"+"随访内容")
that.columnData.push("第"+[k+1]+"次"+"回复内容")
that.columnData.push("第"+[k+1]+"次"+"随访日期")
that.columnData.push("第"+[k+1]+"次"+"随访完成")
this.$set(res.data[i],"第"+[k+1]+"次"+"随访内容",res.data[i].phoneFollowUpDetail[k].followUpContent)
this.$set(res.data[i],"第"+[k+1]+"次"+"回复内容",res.data[i].phoneFollowUpDetail[k].replyContent)
this.$set(res.data[i],"第"+[k+1]+"次"+"随访日期",moment(res.data[i].phoneFollowUpDetail[k].planFollowDate).format("yyyy-MM-DD"))
this.$set(res.data[i],"第"+[k+1]+"次"+"随访完成",res.data[i].phoneFollowUpDetail[k].isComplete)
for (let i = 0; i < res.data.length; i++) {
for (let k = 0; k < res.data[i].phoneFollowUpDetail.length; k++) {
that.columnData.push("第" + [k + 1] + "次" + "随访内容");
that.columnData.push("第" + [k + 1] + "次" + "回复内容");
that.columnData.push("第" + [k + 1] + "次" + "随访日期");
that.columnData.push("第" + [k + 1] + "次" + "随访完成");
this.$set(
res.data[i],
"第" + [k + 1] + "次" + "随访内容",
res.data[i].phoneFollowUpDetail[k].followUpContent
);
this.$set(
res.data[i],
"第" + [k + 1] + "次" + "回复内容",
res.data[i].phoneFollowUpDetail[k].replyContent
);
this.$set(
res.data[i],
"第" + [k + 1] + "次" + "随访日期",
moment(
res.data[i].phoneFollowUpDetail[k].planFollowDate
).format("yyyy-MM-DD")
);
this.$set(
res.data[i],
"第" + [k + 1] + "次" + "随访完成",
res.data[i].phoneFollowUpDetail[k].isComplete
);
}
}
that.columnData = Array.from(new Set(that.columnData));
this.tableData=res.data
this.tableData = res.data;
//
if (this.dataTransOpts.tableS.patient_register.id) {
if (this.dataTransOpts.tableS.patient_register.patientRegisterId) {
this.dataTransOpts.refresh.register_check_asbitem.M++;
}
}
@ -1488,7 +1511,7 @@ export default {
},
handleExport() {
exportToExcel("#phoneFollowUp", "随访列表", false);
this.window.export=false
this.window.export = false;
},
},
@ -1517,11 +1540,11 @@ export default {
"window.export": {
// immediate:true,
handler(newVal, oldVal) {
if (newVal){
if (newVal) {
this.handleExport();
}
},
}
},
//
// "patientRegister.patientRegisterRd.id"(newVal, oldVal) {

9
src/components/follow/FollowQuery.vue

@ -66,6 +66,14 @@
<span class="spanClass">电话随访创建完成</span>
<el-checkbox v-model="patientRegister.query.isPhoneComplete" true-label="Y" false-label="N"></el-checkbox>
</div>
<div class="query">
<span class="spanClass">诊断级别</span>
<el-select v-model="patientRegister.query.diagnosisLevelId" placeholder="请选择诊断级别" clearable style="width: 150px"
size="small" multiple collapse-tags>
<el-option v-for="item in dict.diagnosisLevel" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>
</div>
<!-- 按钮区域 -->
@ -199,7 +207,6 @@ export default {
// console.log('this.patientRegister.query.customerOrgRegister',this.patientRegister.query.customerOrgRegister)
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code > -1) {

18
src/components/follow/PhoneFollowUp.vue

@ -296,6 +296,10 @@ export default {
id: "1",
displayName: "生成多条",
},
{
id: "2",
displayName: "创建三个月计划",
},
],
title: "",
};
@ -363,7 +367,7 @@ export default {
}
});
}
} else {
} else if(this.mode == 0) {
if (this.form.planFollowDate == "") {
this.$message.warning("请选择随访日期");
} else {
@ -380,6 +384,18 @@ export default {
}
});
}
}else{
postapi("/api/app/PhoneFollowUp/CreateThreeMonthPlan", {
followUpId: this.dataTransOpts.tableS.patient_register.followUpId,
followUpContent: this.form.followUpContent,
replyContent: this.form.replyContent,
}).then((res) => {
if (res.code > -1) {
this.getLists();
this.dialogVisible = false;
this.mode = "0";
}
});
}
} else {
postapi("/api/app/PhoneFollowUp/Update", {

6
src/components/follow/follow.vue

@ -150,6 +150,12 @@ export default {
this.dict.payMode = res.data;
}
});
//
getapi("/api/app/diagnosis-level/in-filter").then((res) => {
if (res.code > -1) {
this.dict.diagnosisLevel = res.data;
}
});
},
},

6
src/store/index.js

@ -214,7 +214,10 @@ export default new Vuex.Store({
idCardNo: '', //身份证号
isSeries: 'N',
isSmsComplete: "N",
isPhoneComplete: "N"
isPhoneComplete: "N",
diagnosisLevelId: [],
medicalTypeIds: [],
completeFlags: []
}, //查询条件
customerOrgGroup: [], //分组(针对单位)
patientRegisterAbs: [], //人员已选组合项目
@ -294,6 +297,7 @@ export default new Vuex.Store({
sexHormoneTerm: [], //性激素期
nation: [], //民族
birthPlace: [], //籍惯 ,出生地
diagnosisLevel: [], //诊断级别
completeFlag: [
//体检完成标志
{ id: "0", displayName: "预登记" },

79
src/views/fee-settings/Item.vue

@ -547,10 +547,12 @@
</div> -->
<!-- 结果模板弹框 -->
<el-dialog title="结果模板" :visible.sync="rurestdialogVisible" width="80%" :close-on-click-modal="false">
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane label="结果模板" name="first">
<div style="display: flex">
<div style="width: 90%">
<el-table :data="reusttableData" @row-click="reustclick" row-key="id" highlight-current-row
style="width: 100%" :height="window.pageHeight < 600 ? 280 : window.pageHeight - 320" ref="reusttableData"
style="width: 100%" :height="window.pageHeight < 600 ? 270 : window.pageHeight - 330" ref="reusttableData"
class="el-table__body-wrappers tbodys">
<!-- <el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="项目编号" prop="itemId"></el-table-column> -->
@ -638,13 +640,28 @@
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="词条类别" name="second">
<div style="display: flex">
<div style="flex:1;overflow: scroll;height:450px;" :style="'overflow: scroll;height:' + (window.pageHeight < 600 ? 270 : window.pageHeight - 330) + 'px;'">
<el-tree :data="menuInfoView" :props="treeprops"
node-key="bigtextResultTypeId" show-checkbox
default-expand-all
:default-checked-keys="defaultExpandedKeys" highlight-current ref="customerOrgTree" size="small"/>
</div>
<div style="margin-top: 5px; margin-left: 15px;">
<el-button type="" @click="saveEntry" class="commonbutton">保存</el-button>
</div>
</div>
</el-tab-pane>
</el-tabs>
<el-divider></el-divider>
<span slot="footer" class="dialog-footer">
<el-button @click="
(rurestdialogVisible = false), (rusetform = {}), (curRows = {})
(rurestdialogVisible = false), (rusetform = {}), (curRows = {}),(activeName='first')
" class="difference"> </el-button>
<el-button type="primary" @click="
(rurestdialogVisible = false), (rusetform = {}), (curRows = {})
(rurestdialogVisible = false), (rusetform = {}), (curRows = {}),(activeName='first')
" class="commonbutton"> </el-button>
</span>
</el-dialog>
@ -1005,7 +1022,7 @@ import {
import { unitlist, instrumentlist } from "@/request/systemapi";
import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { deepCopy, dddw } from "../../utlis/proFunc";
import { deepCopy, dddw, tcdate} from "../../utlis/proFunc";
import ReferenceRange from "../../components/itemSet/ReferenceRange.vue";
import { mapState, mapActions } from "vuex";
export default {
@ -1391,7 +1408,17 @@ export default {
isshows: true,
isshowes: true,
initItemTypeId: "",
deviceTypeId: []
deviceTypeId: [],
activeName:"first",
menuInfoView:[],
treeprops: {
label: "displayName", //displayName
value: "bigtextResultTypeId",
id: "bigtextResultTypeId",
children: "treeChildren",
checkStrictly: true
},
defaultExpandedKeys:[]
};
},
created() {
@ -1976,6 +2003,25 @@ export default {
}
);
},
saveEntry(){
let selectedNodes=this.$refs.customerOrgTree.getCheckedNodes()
let itemBigtextResultTypeIds=[]
for(let i=0;i<selectedNodes.length;i++){
if(!selectedNodes[i].treeChildren){
itemBigtextResultTypeIds.push(selectedNodes[i].bigtextResultTypeId)
}
}
postapi("/api/app/item/CreateItemBigtextResultType",{
itemId:this.form.id,
itemBigtextResultTypeIds:itemBigtextResultTypeIds
}).then(
(res) => {
if (res.code != -1) {
this.$message.success("设置成功");
}
}
);
},
resulttemplate() {
let that = this;
this.form = { ...this.curRow };
@ -1994,6 +2040,29 @@ export default {
}
}
);
postapi("/api/app/BigtextResultType/GetByCodeAll").then(
(res) => {
if (res.code != -1) {
this.menuInfoView = res.data;
tcdate(this.menuInfoView);
}
}
);
postapi("/api/app/item/GetItemBigtextResultTypeByItemId",{
itemId:this.form.id
}).then(
(res) => {
if (res.code != -1) {
let defaultExpandedKeys=[]
res.data.forEach((e)=>{
defaultExpandedKeys.push(e.itemBigtextResultTypeId)
})
this.defaultExpandedKeys = defaultExpandedKeys;
console.log(this.defaultExpandedKeys)
}
}
);
// //
// getapi("/api/app/item-type/by-code-all").then((res) => {

Loading…
Cancel
Save