3 changed files with 434 additions and 207 deletions
-
113src/components/sumDoctorCheck/CheckDetails copy.vue
-
116src/components/sumDoctorCheck/CheckDetails.vue
-
412src/views/doctorCheck/sumDoctorCheck.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> |
|||
|
|||
@ -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> |
|||
|
|||
@ -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> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue