Browse Source

summary

master
pengjun 2 years ago
parent
commit
92825f4d8b
  1. 113
      src/components/sumDoctorCheck/CheckDetails copy.vue
  2. 116
      src/components/sumDoctorCheck/CheckDetails.vue
  3. 412
      src/views/doctorCheck/sumDoctorCheck.vue

113
src/components/sumDoctorCheck/CheckDetails copy.vue

@ -0,0 +1,113 @@
<template>
<div style="display: flex;">
<div style="width:100%;">
<el-table :data="tableData" width="800px" height="680" border :row-style="{ height: '40px' }" :show-header="false">
<el-table-column prop="itemTypeName" label="科室" >
<template slot-scope="scope">
<div>
<div>{{ scope.row.itemTypeName }}</div>
<el-table :data="scope.row.asbitems" border :show-header="false" :row-style="{ height: '40px' }">
<el-table-column prop="asbitemName" label="组合项目">
</el-table-column>
<el-table-column label="检查日期与医生">
<template slot-scope="scope2">
<div>{{ ' 检查日期:' + scope2.row.checkDate + ' 检查医生:' + scope2.row.checkDoctorName }}</div>
</template>
</el-table-column>
</el-table>
<el-table :data="scope.row.asbitems" border :show-header="false" :row-style="{ height: '40px' }">
<el-table-column prop="items" label="明细">
<template slot-scope="scope2">
<el-table :data="scope2.row.items" border :row-style="{ height: '40px' }">
<el-table-column prop="itemName" label="项目"/>
<el-table-column prop="itemResult" label="结果"/>
<el-table-column prop="referenceRangeValue" label="参考值"/>
<el-table-column prop="criticalRangeValue" label="警告参考值"/>
<el-table-column prop="unit" label="单位"/>
<el-table-column prop="resultStatusName" label="提示"/>
</el-table>
</template>
</el-table-column>
</el-table>
<el-table :data="scope.row.asbitems" border :show-header="false" :row-style="{ height: '40px' }">
<el-table-column prop="summarys" label="小结">
<template slot-scope="scope2">
<div>小结{{ mergeSummarys(scope2.row.summarys,'summary') }}</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script lang="ts">
import { mapState } from 'vuex';
import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj } from '@/utlis/proFunc';
export default {
components: {},
data() {
return {
tableData:[],
};
},
created() { },
//
mounted() {
},
computed: {
...mapState(['dict', 'doctorCheck', 'sumDoctorCheck']),
},
methods: {
//
CheckDetails(RegisterId) {
console.log(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
getapi(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
.then((res) => {
console.log("获取结果明细 CheckDetails", res.data);
if (res.code != -1) {
this.tableData = res.data;
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
mergeSummarys(array,itemKey){
let ret = ''
array.forEach(e => {
return ret += ';' + e[itemKey]
})
return ret.substring(1,ret.length)
}
},
//
watch: {
//
"sumDoctorCheck.sumPREdit.id"(newVal, oldVal) {
console.log("watch sumDoctorCheck.sumPREdit.id newVal:", newVal, " oldVal:", oldVal);
if (newVal != oldVal && newVal != '') {
this.CheckDetails(newVal)
}
},
},
};
</script>
<style scoped>
::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
padding: 0;
}
</style>

116
src/components/sumDoctorCheck/CheckDetails.vue

@ -0,0 +1,116 @@
<template>
<div style="display: flex;">
<div style="width:100%;">
<table width="1000" height="680">
<tbody v-for="(item,index) of tableData" :key="index">
<tr height="30"><td style="text-align: center;font-weight: bolder;">{{item.itemTypeName}}</td></tr>
<tr>
<table v-for="(item2,index2) in item.asbitems" :key="index + '-' + index2" width="100%" border="1" cellspacing="0" bordercolor="#000000" style="border-collapse:collapse;">
<tr height="30">
<td width="299">{{item2.asbitemName}}</td>
<td width="701">{{ '检查日期:' + item2.checkDate + ' 检查医生:' + item2.checkDoctorName }}</td>
</tr>
<tr>
<td colspan="2">
<table width="1000" border="1" cellspacing="0" bordercolor="#000000" style="border-collapse:collapse;">
<thead>
<tr style="text-align: center;" height="30">
<td width="300">项目</td>
<td width="300">结果</td>
<td width="130">参考值</td>
<td width="130">警告参考值</td>
<td width="90">单位</td>
<td width="50">提示</td>
</tr>
</thead>
<tbody v-for="(item3,index3) in item2.items" :key="index + '-' + index2 + '-' + index3">
<tr height="30">
<td>{{item3.itemName}}</td>
<td>{{item3.itemResult}}</td>
<td>{{item3.referenceRangeValue}}</td>
<td>{{item3.criticalRangeValue}}</td>
<td>{{item3.unit}}</td>
<td>{{item3.resultStatusName}}</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr height="30">
<td colspan="2">小结{{ mergeSummarys(item2.summarys,'summary') }}</td>
</tr>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script lang="ts">
import { mapState } from 'vuex';
import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj } from '@/utlis/proFunc';
export default {
components: {},
data() {
return {
tableData:[],
};
},
created() { },
//
mounted() {
},
computed: {
...mapState(['dict', 'doctorCheck', 'sumDoctorCheck']),
},
methods: {
//
CheckDetails(RegisterId) {
console.log(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
getapi(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
.then((res) => {
console.log("获取结果明细 CheckDetails", res.data);
if (res.code != -1) {
this.tableData = res.data;
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
mergeSummarys(array,itemKey){
let ret = ''
array.forEach(e => {
return ret += ';' + e[itemKey]
})
return ret.substring(1,ret.length)
}
},
//
watch: {
//
"sumDoctorCheck.sumPREdit.id"(newVal, oldVal) {
console.log("watch sumDoctorCheck.sumPREdit.id newVal:", newVal, " oldVal:", oldVal);
if (newVal != oldVal && newVal != '') {
this.CheckDetails(newVal)
}
},
},
};
</script>
<style scoped>
::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
padding: 0;
}
</style>

412
src/views/doctorCheck/sumDoctorCheck.vue

@ -1,212 +1,210 @@
<template>
<div style="display: flex;">
<table width="100%">
<tr>
<td width="90%">
<PatientRegisterBase/>
</td>
<td rowspan="2" width="10%">
<ButtonList/>
</td>
</tr>
<tr height="700px">
<td width="90%" style="valign:top;">
<el-tabs style="margin-left: 10px" v-model="tabChoosed">
<el-tab-pane label="综述建议" name="1">
<div>
<SumSug/>
<SumPREdit/>
</div>
</el-tab-pane>
<el-tab-pane label="明细结果" name="2">
</el-tab-pane>
<el-tab-pane label="危急值" name="3">
</el-tab-pane>
<el-tab-pane label="项目对比" name="4">
</el-tab-pane>
<el-tab-pane label="横向对比" name="5">
</el-tab-pane>
<el-tab-pane label="历次综述" name="6">
</el-tab-pane>
</el-tabs>
</td>
</tr>
</table>
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate } from "../../utlis/proFunc";
import PatientRegisterBase from "../../components/doctorCheck/PatientRegisterBase.vue";
import ButtonList from "../../components/sumDoctorCheck/ButtonList.vue";
import RegisterCheckList from "../../components/doctorCheck/RegisterCheckList.vue";
import CheckItemList from "../../components/doctorCheck/CheckItemList.vue";
import SumSug from "../../components/sumDoctorCheck/SumSug.vue";
import SumPREdit from "../../components/sumDoctorCheck/SumPREdit.vue";
export default {
components: {
RegisterCheckList,
PatientRegisterBase,
ButtonList,
CheckItemList,
SumSug,
SumPREdit
},
data() {
return {
tabChoosed: "1",
};
},
created() {},
//
mounted() {
this.dictInit();
},
computed: {
...mapState(["dict", "patientRegister", "customerOrg"]),
},
methods: {
...mapActions(["getCustomerOrgGroup"]),
//
dictInit() {
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {
this.dict.sex = res.data;
}
});
//
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
if (res.code == 1) {
this.dict.organization = res.data;
}
}
);
//
getapi("/api/app/customer-org/in-filter").then((res) => {
if (res.code == 1) {
this.dict.customerOrg = res.data.items;
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalType = res.data.items;
}
});
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.personnelType = res.data.items;
}
});
//
getapi("/api/app/marital-statuses").then((res) => {
if (res.code == 1) {
this.dict.maritalStatus = res.data.items;
}
});
//
getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
if (res.code == 1) {
this.dict.sexHormoneTerm = res.data.items;
}
});
//
getapi("/api/app/nation/in-filter").then((res) => {
if (res.code == 1) {
this.dict.nation = res.data.items;
}
});
//
getapi("/api/app/birth-place/in-filter").then((res) => {
if (res.code == 1) {
this.dict.birthPlace = res.data.items;
}
});
//
getapi("/api/app/medical-package/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalPackage = res.data.items;
}
});
//
getapi("/api/app/customer-org-group").then((res) => {
if (res.code == 1) {
this.dict.customerOrgGroupAll = res.data.items;
}
});
//
getapi("/api/app/pay-mode").then((res) => {
if (res.code == 1) {
this.dict.payMode = res.data;
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
getapi("/api/app/asbitem/in-filter?Filter").then((res) => {
<div style="display: flex;">
<table width="100%">
<tr>
<td width="90%">
<PatientRegisterBase/>
</td>
<td rowspan="2" width="10%">
<ButtonList/>
</td>
</tr>
<tr height="700px">
<td width="90%" style="valign:top;">
<el-tabs style="margin-left: 10px" v-model="tabChoosed">
<el-tab-pane label="综述建议" name="1">
<div>
<SumSug/>
<SumPREdit/>
</div>
</el-tab-pane>
<el-tab-pane label="明细结果" name="2">
<CheckDetails/>
</el-tab-pane>
<el-tab-pane label="危急值" name="3">
</el-tab-pane>
<el-tab-pane label="项目对比" name="4">
</el-tab-pane>
<el-tab-pane label="横向对比" name="5">
</el-tab-pane>
<el-tab-pane label="历次综述" name="6">
</el-tab-pane>
</el-tabs>
</td>
</tr>
</table>
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate } from "../../utlis/proFunc";
import PatientRegisterBase from "../../components/doctorCheck/PatientRegisterBase.vue";
import ButtonList from "../../components/sumDoctorCheck/ButtonList.vue";
import SumSug from "../../components/sumDoctorCheck/SumSug.vue";
import SumPREdit from "../../components/sumDoctorCheck/SumPREdit.vue";
import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue";
export default {
components: {
PatientRegisterBase,
ButtonList,
SumSug,
SumPREdit,
CheckDetails,
},
data() {
return {
tabChoosed: "1",
};
},
created() {},
//
mounted() {
this.dictInit();
},
computed: {
...mapState(["dict", "patientRegister", "customerOrg"]),
},
methods: {
...mapActions(["getCustomerOrgGroup"]),
//
dictInit() {
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {
this.dict.sex = res.data;
}
});
//
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
if (res.code == 1) {
this.dict.asbItemAll = res.data.items;
this.dict.organization = res.data;
}
});
console.log("dict", this.dict);
},
},
//()
watch: {
//1
"patientRegister.query.CustomerOrgParentId"(newVal, oldVal) {
console.log(
"watch patientRegister.query.CustomerOrgParentId newVal:",
newVal,
" oldVal:",
oldVal
);
if (newVal != oldVal && newVal !== this.dict.personOrgId) {
this.getCustomerOrgGroup(newVal);
}
},
);
//
getapi("/api/app/customer-org/in-filter").then((res) => {
if (res.code == 1) {
this.dict.customerOrg = res.data.items;
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalType = res.data.items;
}
});
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.personnelType = res.data.items;
}
});
//
getapi("/api/app/marital-statuses").then((res) => {
if (res.code == 1) {
this.dict.maritalStatus = res.data.items;
}
});
//
getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
if (res.code == 1) {
this.dict.sexHormoneTerm = res.data.items;
}
});
//
getapi("/api/app/nation/in-filter").then((res) => {
if (res.code == 1) {
this.dict.nation = res.data.items;
}
});
//
getapi("/api/app/birth-place/in-filter").then((res) => {
if (res.code == 1) {
this.dict.birthPlace = res.data.items;
}
});
//
getapi("/api/app/medical-package/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalPackage = res.data.items;
}
});
//
getapi("/api/app/customer-org-group").then((res) => {
if (res.code == 1) {
this.dict.customerOrgGroupAll = res.data.items;
}
});
//
getapi("/api/app/pay-mode").then((res) => {
if (res.code == 1) {
this.dict.payMode = res.data;
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
getapi("/api/app/asbitem/in-filter?Filter").then((res) => {
if (res.code == 1) {
this.dict.asbItemAll = res.data.items;
}
});
console.log("dict", this.dict);
},
},
//()
watch: {
//1
"patientRegister.query.CustomerOrgParentId"(newVal, oldVal) {
console.log(
"watch patientRegister.query.CustomerOrgParentId newVal:",
newVal,
" oldVal:",
oldVal
);
if (newVal != oldVal && newVal !== this.dict.personOrgId) {
this.getCustomerOrgGroup(newVal);
}
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>
},
};
</script>
<style scoped>
.box {
display: flex;
}
</style>
Loading…
Cancel
Save