pengjun 1 year ago
parent
commit
df9f5f6257
  1. 185
      src/components/doctorCheck/CheckItemList.vue
  2. 196
      src/components/follow/AsbitemCriticalValue.vue
  3. 84
      src/components/follow/FollowList.vue
  4. 6
      src/components/follow/PhoneFollowUp.vue
  5. 6
      src/components/follow/SmsSend.vue
  6. 6
      src/views/customerReport/detailedIitems.vue

185
src/components/doctorCheck/CheckItemList.vue

@ -44,34 +44,46 @@
size="small"
>P</el-button
>
<!-- <el-popover placement="top-end" width="500" trigger="click" :title="scope.row.itemName">
<el-button
style="min-width: 23px; padding: 5.8px; margin-left: 2px"
:disabled="rowResultDisabled(scope.row)"
@click="btnPacsRessulst(scope.row)"
size="small"
>S</el-button
>
<!-- <el-popover
placement="top-end"
width="500"
trigger="click"
:title="scope.row.itemName"
>
<el-tabs v-model="activeName">
<el-tab-pane label="文字结果" name="first">
<el-table :data="gridData">
<el-table-column
width="150"
property="date"
label="日期"
property="checkDate"
label="检查日期"
align="center"
></el-table-column>
<el-table-column
width="100"
property="name"
label="姓名"
></el-table-column>
<el-table-column
width="300"
property="address"
label="地址"
property="itemResult"
label="项目结果"
align="center"
></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="折线图" name="second"></el-tab-pane>
<el-tab-pane label="折线图" name="second">
<div
style="height: 200px; width: 200px"
ref="chart"
></div>
</el-tab-pane>
</el-tabs>
<el-button
slot="reference"
style="min-width: 23px; padding: 5.8px; margin-left: 2px"
:disabled="rowResultDisabled(scope.row)"
@click="btnPacsRessulst(scope.row, scope.$index)"
@click="btnPacsRessulst(scope.row)"
size="small"
>S</el-button
>
@ -262,6 +274,35 @@
:refFuncOther="handlePacsResult"
/>
</el-dialog>
<el-dialog
:title="curRow.itemName"
:visible.sync="previousResults"
width="500px"
:close-on-click-modal="true"
:show-close="false"
@close="resultsclose"
>
<el-tabs v-model="activeName">
<el-tab-pane label="文字结果" name="first">
<el-table :data="gridData">
<el-table-column
property="checkDate"
label="检查日期"
align="center"
></el-table-column>
<el-table-column
property="itemResult"
label="项目结果"
align="center"
></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="折线图" name="second">
<div style="height: 400px; width: 500px" ref="chart1"></div>
</el-tab-pane>
</el-tabs>
</el-dialog>
</div>
</div>
</template>
@ -271,7 +312,7 @@ import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj, dddw, deepCopy } from "../../utlis/proFunc";
import PacsTemplate from "./PacsTemplate.vue";
import * as echarts from "echarts";
export default {
components: {
PacsTemplate,
@ -280,28 +321,8 @@ export default {
data() {
return {
activeName: "first",
gridData: [
{
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-04",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-01",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-03",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
],
previousResults:false,
gridData: [],
resultStatus: [], //
tipsNormal: {
id: "01",
@ -353,6 +374,7 @@ export default {
result: "",
summary: "",
},
curRow:{}
};
},
@ -448,9 +470,90 @@ export default {
}
});
},
btnPacsRessulst(row, index) {
console.log("显示", row);
btnPacsRessulst(row) {
this.curRow = row;
postapi("/api/app/RegisterCheckItem/GetItemTwoHistoricalResults", {
registerCheckId: row.registerCheckId,
itemId: row.itemId,
}).then((res) => {
if (res.code != -1) {
this.previousResults=true
this.gridData = res.data;
this.$nextTick(()=>{
this.initEcharts();
})
}
});
},
initEcharts() {
let yAxisData = [];
let xAxisData = [];
for(let i=0;i<this.gridData.length;i++){
if(this.gridData[i].checkDate){
xAxisData.push(this.gridData[i].checkDate)
yAxisData.push(this.gridData[i].itemResult)
}
}
let myChart = echarts.init(this.$refs.chart1);
let option1 = {
tooltip: {
trigger: "axis",
confine: true,
},
legend: {
type: "scroll",
orient: "horizontal", //
right: "3%", //
top: "0%", //
},
grid: {
show: false,
left: "2%",
right: "2%",
top: "6%",
bottom: "0%",
containLabel: true,
},
xAxis: {
type: "category",
data: xAxisData,
axisLabel: {
textStyle: {
fontSize: "14",
},
},
axisLine: {
show: true,
},
},
yAxis: {
type: "value",
axisLabel: {
textStyle: {
fontSize: "14",
},
},
},
series: [
{
name: "项目结果",
type: "line",
data: yAxisData,
},
],
};
myChart.setOption(option1)
},
resultsclose(){
this.activeName="first"
},
// chartTabs(tab) {
// if (tab.name == "second") {
// this.$nextTick(() => {
// this.initEcharts();
// });
// }
// },
//
// displayName: "",
// dataInputPrompt: "×",
@ -702,8 +805,6 @@ export default {
this.dialogWinPacsTemplate = true;
},
//
dblclickResult(item) {
this.moreResult.result = "";
@ -750,7 +851,7 @@ export default {
// pacs
handlePacsResult(row, index, pacsResult) {
// console.log('row,index,pacsResult', row, index, pacsResult)
// this.doctorCheck.checkItemList[index].result = pacsResult.result;
// this.doctorCheck.checkItemList[index].result = pacsResult.result;
this.doctorCheck.checkSummaryList = [
{
id: Math.random(),

196
src/components/follow/AsbitemCriticalValue.vue

@ -22,9 +22,14 @@
</el-table-column>
<el-table-column prop="criticalRangeValue" label="危急值范围" />
<el-table-column prop="isCriticalValue" label="危急值标志">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValue" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.isCriticalValue"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column
prop="criticalValueContent"
@ -32,19 +37,34 @@
width="150"
/>
<el-table-column prop="isCriticalValueAudit" label="危急值审核">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isCriticalValueAudit" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.isCriticalValueAudit"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="isReview" label="复查">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isReview" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.isReview"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="isFollowUp" label="随访标志">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isFollowUp" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.isFollowUp"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="itemName" label="项目"> </el-table-column>
<el-table-column prop="itemResult" label="项目结果"> </el-table-column>
@ -54,9 +74,14 @@
<el-table-column prop="itemCriticalRangeValue" label="危急值范围">
</el-table-column>
<el-table-column prop="itemIsCriticalValue" label="危急值标志">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.itemIsCriticalValue" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.itemIsCriticalValue"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column
prop="itemCriticalValueContent"
@ -65,19 +90,34 @@
>
</el-table-column>
<el-table-column prop="itemIsCriticalValueAudit" label="危急值审核">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.itemIsCriticalValueAudit" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.itemIsCriticalValueAudit"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="itemIsReview" label="复查">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.itemIsReview" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.itemIsReview"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="itemIsFollowUp" label="随访标志">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.itemIsFollowUp" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
<template slot-scope="scope">
<el-checkbox
v-model="scope.row.itemIsFollowUp"
disabled
true-label="Y"
false-label="N"
></el-checkbox>
</template>
</el-table-column>
</el-table>
</div>
@ -102,59 +142,63 @@ export default {
dddw,
moment,
getLists() {
postapi(
"/api/app/PhoneFollowUp/GetAsbitemOrItemCriticalByPatientRegisterId",
{
patientRegisterId:
this.dataTransOpts.tableS.patient_register.patientRegisterId,
if (this.dataTransOpts.tableS.patient_register.patientRegisterId) {
postapi(
"/api/app/PhoneFollowUp/GetAsbitemOrItemCriticalByPatientRegisterId",
{
patientRegisterId:
this.dataTransOpts.tableS.patient_register.patientRegisterId,
}
).then((res) => {
if (res.code > -1) this.asbitemCriticalValue = res.data;
});
}else{
this.asbitemCriticalValue=[]
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (
//if
columnIndex == 0 ||
columnIndex == 1 ||
columnIndex == 2 ||
columnIndex == 3 ||
columnIndex == 4 ||
columnIndex == 5 ||
columnIndex == 6 ||
columnIndex == 7
) {
const _row = this.flitterData2(this.asbitemCriticalValue).one[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
flitterData2(arr) {
let spanOneArr = [];
let concatOne = 0;
arr.forEach((item, index) => {
if (index === 0) {
spanOneArr.push(1);
} else {
//name
if (item.registerCheckId === arr[index - 1].registerCheckId) {
//pid
//
spanOneArr[concatOne] += 1;
spanOneArr.push(0);
} else {
spanOneArr.push(1);
concatOne = index;
}
}
).then((res) => {
if (res.code > -1) this.asbitemCriticalValue = res.data;
});
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (
//if
columnIndex == 0 ||
columnIndex == 1 ||
columnIndex == 2 ||
columnIndex == 3 ||
columnIndex == 4 ||
columnIndex == 5 ||
columnIndex == 6 ||
columnIndex == 7
) {
const _row = this.flitterData2(this.asbitemCriticalValue).one[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
one: spanOneArr,
};
}
},
flitterData2(arr) {
let spanOneArr = [];
let concatOne = 0;
arr.forEach((item, index) => {
if (index === 0) {
spanOneArr.push(1);
} else {
//name
if (item.registerCheckId === arr[index - 1].registerCheckId) {
//pid
//
spanOneArr[concatOne] += 1;
spanOneArr.push(0);
} else {
spanOneArr.push(1);
concatOne = index;
}
}
});
return {
one: spanOneArr,
};
},
},
},
updated() {
this.$nextTick(() => {
@ -179,8 +223,8 @@ export default {
<style scoped>
@import "../../assets/css/global.css";
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{
background-color: #409EFF;
border-color: #409EFF;
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
background-color: #409eff;
border-color: #409eff;
}
</style>

84
src/components/follow/FollowList.vue

@ -29,16 +29,30 @@
<el-table-column prop="sexName" label="性别" width="50" align="center" />
<el-table-column prop="birthDate" label="出生日期" width="90" align="center" />
<el-table-column prop="age" label="年龄" width="50" align="center" />
<el-table-column prop="isSmsComplete" label="短信随访创建完成" width="200">
<el-table-column prop="abnormalAsbitemDetail" label="组合项目异常" width="200">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isSmsComplete" disabled true-label="Y" false-label="N"></el-checkbox>
<div v-for="(item,index) in scope.row.abnormalAsbitemDetail" :key="index">
{{item.asbitemName+' '+item.isCriticalValue+' '+item.isReview}}
</div>
</template>
</el-table-column>
<el-table-column prop="isPhoneComplete" label="电话随访创建完成" width="200">
<el-table-column prop="abnormalItemDetail" label="项目异常" width="200">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.isPhoneComplete" disabled true-label="Y" false-label="N"></el-checkbox>
<div v-for="(item,index) in scope.row.abnormalItemDetail" :key="index">
{{item.itemName+' '+item.isCriticalValue+' '+item.isReview}}
</div>
</template>
</el-table-column>
<el-table-column prop="isSmsComplete" label="短信随访创建完成" width="200">
<!-- <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">
<!-- <template slot-scope="scope">
<el-checkbox v-model="scope.row.isPhoneComplete" disabled true-label="Y" false-label="N"></el-checkbox>
</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" />
@ -47,9 +61,9 @@
<el-table-column prop="jobPost" label="职务" width="90" align="center" />
<el-table-column prop="jobTitle" label="职称" width="90" align="center" />
<el-table-column prop="isUpload" label="上传WEB" width="90" align="center">
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<el-checkbox v-model="scope.row.isUpload" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
</template> -->
</el-table-column>
<el-table-column prop="completeFlag" label="状态" width="90" align="center">
<template slot-scope="scope">
@ -57,9 +71,9 @@
</template>
</el-table-column>
<el-table-column prop="isMedicalStart" label="开始标志" width="90" align="center">
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<el-checkbox v-model="scope.row.isMedicalStart" disabled true-label="Y" false-label="N"></el-checkbox>
</template>
</template> -->
</el-table-column>
<el-table-column prop="medicalStartDate" label="开始日期" width="90" align="center" />
<el-table-column prop="patientNo" label="档案号" width="90" align="center" />
@ -67,6 +81,14 @@
<el-table-column prop="mobileTelephone" label="手机号" />
<el-table-column prop="customerOrgName" label="单位" />
<el-table-column prop="customerOrgParentName" label="父级单位" />
<el-table-column
v-for="(item, index) in columnData"
:key="index"
:prop="item"
:label="item"
align="left"
>
</el-table-column>
</el-table>
<div style="display: flex; justify-content: space-between">
<div></div>
@ -285,6 +307,7 @@ export default {
},
},
LocalConfigInit: {},
columnData:[]
};
},
@ -715,12 +738,13 @@ export default {
async Query() {
//
this.dataTransOpts.tableS.patient_register.followUpId = "";
this.dataTransOpts.tableS.patient_register.patientRegisterId=""
this.tableDataCurrentRow = {}; //
this.tableData = [];
// setTimeout(() => {
// this.dataTransOpts.refresh.register_check_asbitem.M++; //
// }, 10);
setTimeout(() => {
this.dataTransOpts.refresh.register_check_asbitem.M++; //
}, 10);
this.loadOpts = Object.assign(this.loadOpts, this.loadOptsInit);
await this.getPrList();
@ -827,31 +851,21 @@ export default {
body
).then((res) => {
if (res.code > -1) {
let curLoad = res.data;
// let oldCount = 0
// /
// curLoad.forEach((e) => {
// if (e.customerOrgId == this.dict.personOrgId) {
// e.groupPack = e.medicalPackageId;
// } else {
// e.groupPack = e.customerOrgGroupId;
// }
// });
if (body.skipCount == 0) {
//
this.tableData = [];
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]+"次"+"随访日期",res.data[i].phoneFollowUpDetail[k].planFollowDate)
this.$set(res.data[i],"第"+[k+1]+"次"+"随访完成",res.data[i].phoneFollowUpDetail[k].isComplete)
}
}
this.tableData = this.tableData.concat(curLoad);
// else {
// // ,
// oldCount = this.tableData.length
// }
// curLoad.forEach((e, index) => {
// this.tableData.push(Object.assign({ index: Number(oldCount) + Number(index), choosed: false }, e))
// })
that.columnData = Array.from(new Set(that.columnData));
this.tableData=res.data
//
if (this.dataTransOpts.tableS.patient_register.id) {
this.dataTransOpts.refresh.register_check_asbitem.M++;

6
src/components/follow/PhoneFollowUp.vue

@ -329,11 +329,15 @@ export default {
});
},
getLists() {
postapi("/api/app/PhoneFollowUp/GetList", {
if(this.dataTransOpts.tableS.patient_register.followUpId){
postapi("/api/app/PhoneFollowUp/GetList", {
followUpId: this.dataTransOpts.tableS.patient_register.followUpId,
}).then((res) => {
if (res.code > -1) this.phoneFollowUp = res.data;
});
}else{
this.phoneFollowUp=[]
}
},
addoredit() {
if (this.title == 1) {

6
src/components/follow/SmsSend.vue

@ -241,11 +241,15 @@ export default {
});
},
getLists() {
postapi("/api/app/SmsSend/GetList", {
if(this.dataTransOpts.tableS.patient_register.followUpId){
postapi("/api/app/SmsSend/GetList", {
followUpId: this.dataTransOpts.tableS.patient_register.followUpId,
}).then((res) => {
if (res.code > -1) this.phoneFollowUp = res.data;
});
}else{
this.phoneFollowUp=[]
}
},
rowick(row) {
this.curRow = { ...row };

6
src/views/customerReport/detailedIitems.vue

@ -434,7 +434,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
if (this.project.dataAsbitemOCX.length > 0) {
this.project.dataAsbitemOCX.forEach((e) => {
asbitemIds.push(e.id);
this.columnData.push(e.displayName)
// this.columnData.push(e.displayName)
});
}
@ -454,8 +454,10 @@ page-break-before: avoid;}}`, // 去除页眉页脚
for(let i=0;i<res.data.length;i++){
for(let k=0;k<res.data[i].registerCheckItems.length;k++){
this.$set(res.data[i],res.data[i].registerCheckItems[k].itemName,res.data[i].registerCheckItems[k].result)
this.columnData.push(res.data[i].registerCheckItems[k].itemName)
}
}
this.columnData = Array.from(new Set(this.columnData));
this.dataList=[...res.data]
this.$nextTick(() => {
this.$refs.dataList.doLayout();
@ -471,8 +473,10 @@ page-break-before: avoid;}}`, // 去除页眉页脚
for(let i=0;i<res.data.length;i++){
for(let k=0;k<res.data[i].registerCheckItems.length;k++){
this.$set(res.data[i],res.data[i].registerCheckItems[k].itemName,res.data[i].registerCheckItems[k].result)
this.columnData.push(res.data[i].registerCheckItems[k].itemName)
}
}
this.columnData = Array.from(new Set(this.columnData));
this.dataLists=[...res.data]
this.$nextTick(() => {
this.$refs.dataLists.doLayout();

Loading…
Cancel
Save