pengjun 2 years ago
parent
commit
e4196e9c01
  1. 5
      src/components/sumDoctorCheck/ButtonList.vue
  2. 6
      src/components/sumDoctorCheck/CheckDetails.vue
  3. 13
      src/components/sumDoctorCheck/SumHistory.vue
  4. 129
      src/components/sumDoctorCheck/SumItems.vue
  5. 110
      src/components/sumDoctorCheck/SumItemsType.vue
  6. 35
      src/utlis/proFunc.js
  7. 6
      src/views/doctorCheck/sumDoctorCheck.vue

5
src/components/sumDoctorCheck/ButtonList.vue

@ -44,7 +44,7 @@
import { mapState } from "vuex"; import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { arrayExistObj } from "../../utlis/proFunc";
import { arrayExistObj,parseID } from "../../utlis/proFunc";
import PatientRegisterList from "../doctorCheck/PatientRegisterList.vue"; import PatientRegisterList from "../doctorCheck/PatientRegisterList.vue";
export default { export default {
@ -264,8 +264,9 @@ export default {
this.sumDoctorCheck.suggestionList.push(pojo); this.sumDoctorCheck.suggestionList.push(pojo);
}, },
//
//
reCheck() { reCheck() {
console.log("parseID('123456198007240000')",parseID('123456198007240000'))
let ret = this.optGrant('reCheck') let ret = this.optGrant('reCheck')
if (ret) { if (ret) {
alert(ret) alert(ret)

6
src/components/sumDoctorCheck/CheckDetails.vue

@ -72,9 +72,9 @@ export default {
methods: { methods: {
// //
CheckDetails(RegisterId) {
console.log(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
getapi(`/api/app/sum-summary-report/detailed-results-list/${RegisterId}`)
CheckDetails(RegisterId) {
console.log(`/api/app/sumsummaryreport/getdetailedresultslist?PatientRegisterId=${RegisterId}`)
getapi(`/api/app/sumsummaryreport/getdetailedresultslist?PatientRegisterId=${RegisterId}`)
.then((res) => { .then((res) => {
console.log("获取结果明细 CheckDetails", res.data); console.log("获取结果明细 CheckDetails", res.data);
if (res.code != -1) { if (res.code != -1) {

13
src/components/sumDoctorCheck/SumHistory.vue

@ -9,14 +9,14 @@
</tr> </tr>
<tr height="40"> <tr height="40">
<td width="200">检查综述</td> <td width="200">检查综述</td>
<td colspan="2">{{ item.sumSummarys }}</td>
<td colspan="2" v-html="item.sumSummarys"></td>
</tr> </tr>
<tr height="40"> <tr height="40">
<td width="200">医生建议</td> <td width="200">医生建议</td>
<td colspan="2">{{ item.sumSuggestions }}</td>
<td colspan="2" v-html="item.sumSuggestions"></td>
</tr> </tr>
</tbody> </tbody>
</table>
</table>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -53,8 +53,8 @@ export default {
// "sumSuggestions": "* \n(01)\n* \n(01)\n* \n(01)\n* \n(01)\n" // "sumSuggestions": "* \n(01)\n* \n(01)\n* \n(01)\n* \n(01)\n"
// }, // },
SumHistory(patientId) { SumHistory(patientId) {
console.log(`/api/app/sum-summary-report/historical-review-list/${patientId}`)
getapi(`/api/app/sum-summary-report/historical-review-list/${patientId}`)
console.log(`/api/app/sumsummaryreport/gethistoricalreviewlist?PatientId=${patientId}`)
getapi(`/api/app/sumsummaryreport/gethistoricalreviewlist?PatientId=${patientId}`)
.then((res) => { .then((res) => {
console.log("获取历次综述 SumHistory", res.data); console.log("获取历次综述 SumHistory", res.data);
if (res.code != -1) { if (res.code != -1) {
@ -66,6 +66,9 @@ export default {
}); });
}, },
lreplaceAll(str){
return str.replaceAll('*',"<br/>")
},
}, },

129
src/components/sumDoctorCheck/SumItems.vue

@ -1,10 +1,20 @@
<template> <template>
<div style="display: flex;width:100%;"> <div style="display: flex;width:100%;">
<el-table :data="tableData" width="1000px" height="680" border :row-style="{ height: '40px' }" >
<el-table-column prop="itemTypeName" label="项目" width="150"/>
<el-table-column v-for="(item,index) of tableCols" :label="item" :prop="item" :key="index" width="200">
</el-table-column>
</el-table>
<div style="display: flex;width:180;">
<el-table :data="RegisterCheckList" width="180" height="680" border highlight-current-row
:row-style="{ height: '40px' }" :row-class-name="tableRowClassName" @row-click="rowClick">
<el-table-column prop="asbitemName" label="组合项目" width="180" />
</el-table>
</div>
<div style="display: flex;width:90%;">
<el-table :data="tableData" width="1000px" height="680" border :row-style="{ height: '40px' }">
<el-table-column prop="itemName" label="项目" width="150" />
<el-table-column prop="unitName" label="单位" width="90" />
<el-table-column prop="referenceRangeValue" label="参考范围" width="120" />
<el-table-column v-for="(item, index) of tableCols" :label="item" :prop="item" :key="index" width="150">
</el-table-column>
</el-table>
</div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -16,17 +26,17 @@ export default {
components: {}, components: {},
data() { data() {
return { return {
orgData:[], //
tableData:[], //
tableRows:[], //
tableCols:[], //
RegisterCheckList: [],
tableData: [], //
tableRows: [], //
tableCols: [], //
}; };
}, },
created() { }, created() { },
// //
mounted() {
mounted() {
}, },
@ -35,15 +45,54 @@ export default {
}, },
methods: { methods: {
//
tableRowClassName({ row, rowIndex }) {
//console.log('tableRowClassName',rowIndex,row)
if (row.completeFlag === '0') {
return 'warning-row'; //
} else if (row.completeFlag === '2') {
return 'refuse-row'; //
}
return '';
},
//
registerCheckList(patientId) {
console.log(`/api/app/sumsummaryreport/gethorizontalcomparisonasbitemlist?PatientId=${patientId}`)
getapi(`/api/app/sumsummaryreport/gethorizontalcomparisonasbitemlist?PatientId=${patientId}`)
.then((res) => {
console.log("获取项目对比 SumItems", res.data);
if (res.code != -1) {
this.RegisterCheckList = res.data;
if (res.data.length > 0) this.rowClick(res.data[0])
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
rowClick(row) {
//console.log('row',row) //asbitemId
this.SumItems(this.sumDoctorCheck.sumPREdit.patientId, row.asbitemId)
},
// 3a0c6589-9989-4d7f-ba54-61e5b0138220 // 3a0c6589-9989-4d7f-ba54-61e5b0138220
SumItems(patientId) {
console.log(`/api/app/sum-summary-report/item-type-contrast-list/${patientId}`)
getapi(`/api/app/sum-summary-report/item-type-contrast-list/${patientId}`)
// "itemName": "(HBsAg)",
// "unitName": "/",
// "referenceRangeValue": "",
// "checkDate": "2023-07-14",
// "resultValue": ""
SumItems(patientId, asbitemId) {
console.log(`/api/app/sumsummaryreport/gethorizontalcomparisonlist?PatientId=${patientId}&AsbitemId=${asbitemId}`)
getapi(`/api/app/sumsummaryreport/gethorizontalcomparisonlist?PatientId=${patientId}&AsbitemId=${asbitemId}`)
.then((res) => { .then((res) => {
console.log("获取项目对比 SumItems", res.data); console.log("获取项目对比 SumItems", res.data);
if (res.code != -1) { if (res.code != -1) {
this.orgData = res.data;
this.crossTable(this.orgData);
this.crossTable(res.data);
} }
}) })
.catch((err) => { .catch((err) => {
@ -52,41 +101,45 @@ export default {
}, },
// //
// "itemTypeName": "",
// "registerDate": "2023-07-14",
// "summarys": ":"
crossTable(tableData){
this.tableData=[] //
this.tableRows=[] //
this.tableCols=[] //
console.log('tableData',tableData)
crossTable(tableData) {
this.tableData = [] //
this.tableRows = [] //
this.tableCols = [] //
console.log('tableData', tableData)
tableData.forEach(e => { tableData.forEach(e => {
if(this.tableRows.indexOf(e.itemTypeName) == - 1) this.tableRows.push(e.itemTypeName)
if(this.tableCols.indexOf(e.registerDate) == - 1) this.tableCols.push(e.registerDate)
if (this.tableRows.indexOf(e.itemName) == - 1) this.tableRows.push(e.itemName)
if (this.tableCols.indexOf(e.checkDate) == - 1) this.tableCols.push(e.checkDate)
}); });
this.tableCols.sort(); this.tableCols.sort();
this.tableRows.forEach(r => { this.tableRows.forEach(r => {
let item = {} let item = {}
let summarys = ''
item['itemTypeName'] = r
let resultValue = ''
item['itemName'] = r
this.tableCols.forEach(c => { this.tableCols.forEach(c => {
for(let i=0;i<tableData.length;i++){
if(tableData[i].itemTypeName == r && tableData[i].registerDate == c){
summarys = tableData[i].summarys
for (let i = 0; i < tableData.length; i++) {
if (tableData[i].itemName == r) {
item['unitName'] = tableData[i].unitName
item['referenceRangeValue'] = tableData[i].referenceRangeValue
}
if (tableData[i].itemName == r && tableData[i].checkDate == c) {
resultValue = tableData[i].resultValue
break; break;
} }
} }
item[c] = summarys
item[c] = resultValue
}); });
this.tableData.push(item) this.tableData.push(item)
}); });
console.log('this.tableRows',this.tableRows)
console.log('this.tableCols',this.tableCols)
console.log('this.tableData',this.tableData)
}
console.log('this.tableRows', this.tableRows)
console.log('this.tableCols', this.tableCols)
console.log('this.tableData', this.tableData)
},
}, },
// //
@ -95,7 +148,7 @@ export default {
"sumDoctorCheck.sumPREdit.patientId"(newVal, oldVal) { "sumDoctorCheck.sumPREdit.patientId"(newVal, oldVal) {
console.log("watch sumDoctorCheck.sumPREdit.patientId newVal:", newVal, " oldVal:", oldVal); console.log("watch sumDoctorCheck.sumPREdit.patientId newVal:", newVal, " oldVal:", oldVal);
if (newVal != oldVal && newVal != '') { if (newVal != oldVal && newVal != '') {
this.SumItems(newVal)
this.registerCheckList(newVal)
} }
}, },
}, },

110
src/components/sumDoctorCheck/SumItemsType.vue

@ -0,0 +1,110 @@
<template>
<div style="display: flex;width:100%;">
<el-table :data="tableData" width="1000px" height="680" border :row-style="{ height: '40px' }" >
<el-table-column prop="itemTypeName" label="项目" width="150"/>
<el-table-column v-for="(item,index) of tableCols" :label="item" :prop="item" :key="index" width="200">
</el-table-column>
</el-table>
</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 {
orgData:[], //
tableData:[], //
tableRows:[], //
tableCols:[], //
};
},
created() { },
//
mounted() {
},
computed: {
...mapState(['dict', 'doctorCheck', 'sumDoctorCheck']),
},
methods: {
// 3a0c6589-9989-4d7f-ba54-61e5b0138220
SumItems(patientId) {
console.log(`/api/app/sumsummaryreport/getitemtypecontrastlist?PatientId=${patientId}`)
getapi(`/api/app/sumsummaryreport/getitemtypecontrastlist?PatientId=${patientId}`)
.then((res) => {
console.log("获取项目对比 SumItems", res.data);
if (res.code != -1) {
this.orgData = res.data;
this.crossTable(this.orgData);
}
})
.catch((err) => {
this.$message({ type: "error", message: `操作失败,原因:${err}` });
});
},
//
// "itemTypeName": "",
// "registerDate": "2023-07-14",
// "summarys": ":"
crossTable(tableData){
this.tableData=[] //
this.tableRows=[] //
this.tableCols=[] //
console.log('tableData',tableData)
tableData.forEach(e => {
if(this.tableRows.indexOf(e.itemTypeName) == - 1) this.tableRows.push(e.itemTypeName)
if(this.tableCols.indexOf(e.registerDate) == - 1) this.tableCols.push(e.registerDate)
});
this.tableCols.sort();
this.tableRows.forEach(r => {
let item = {}
let summarys = ''
item['itemTypeName'] = r
this.tableCols.forEach(c => {
for(let i=0;i<tableData.length;i++){
if(tableData[i].itemTypeName == r && tableData[i].registerDate == c){
summarys = tableData[i].summarys
break;
}
}
item[c] = summarys
});
this.tableData.push(item)
});
console.log('this.tableRows',this.tableRows)
console.log('this.tableCols',this.tableCols)
console.log('this.tableData',this.tableData)
}
},
//
watch: {
//
"sumDoctorCheck.sumPREdit.patientId"(newVal, oldVal) {
console.log("watch sumDoctorCheck.sumPREdit.patientId newVal:", newVal, " oldVal:", oldVal);
if (newVal != oldVal && newVal != '') {
this.SumItems(newVal)
}
},
},
};
</script>
<style scoped>
::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
padding: 0;
}
</style>

35
src/utlis/proFunc.js

@ -120,3 +120,38 @@ exports.arrayExistObj = function (arr, key, value) {
return ret return ret
} }
//根据身份证号判断出生日期(yyyy-MM-DD),当前年龄与性别 粗犷式,不精确判断闰年平年
exports.parseID = function (id) {
let yearInMs = 1000 * 60 * 60 * 24 * 365.2425;
let ret = {
birthday:'',
age:-1,
sex:'U',
}
if(!id || id.length != 18) return ret
if(id.substring(10,12).parseInt > 12 || id.substring(10,12).parseInt == 0) return ret
if(id.substring(12,14).parseInt > 31 || id.substring(12,14).parseInt == 0) return ret
//出生日期
ret.birthday = id.substring(6,10) + '-' + id.substring(10,12) + '-' + id.substring(12,14)
//年龄
ret.age = Math.floor((new Date().getTime() - new Date(ret.birthday).getTime())/yearInMs)
//奇数 男, 偶数 女
if(id.substring(16,17)%2 == 0){
ret.sex = 'F'
}else{
ret.sex = 'M'
}
return ret
}
//根据出生日期,计算当前年龄 粗犷式,不精确判断闰年平年
exports.birthdayToAge = function (birthday) {
let yearInMs = 1000 * 60 * 60 * 24 * 365.2425;
//年龄
return Math.floor((new Date().getTime() - new Date(birthday).getTime())/yearInMs)
}

6
src/views/doctorCheck/sumDoctorCheck.vue

@ -25,10 +25,10 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="项目对比" name="4"> <el-tab-pane label="项目对比" name="4">
<SumItems/>
<SumItemsType/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="横向对比" name="5"> <el-tab-pane label="横向对比" name="5">
<SumItems/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="历次综述" name="6"> <el-tab-pane label="历次综述" name="6">
<SumHistory/> <SumHistory/>
@ -50,6 +50,7 @@ import ButtonList from "../../components/sumDoctorCheck/ButtonList.vue";
import SumSug from "../../components/sumDoctorCheck/SumSug.vue"; import SumSug from "../../components/sumDoctorCheck/SumSug.vue";
import SumPREdit from "../../components/sumDoctorCheck/SumPREdit.vue"; import SumPREdit from "../../components/sumDoctorCheck/SumPREdit.vue";
import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue"; import CheckDetails from "../../components/sumDoctorCheck/CheckDetails.vue";
import SumItemsType from "../../components/sumDoctorCheck/SumItemsType.vue";
import SumItems from "../../components/sumDoctorCheck/SumItems.vue"; import SumItems from "../../components/sumDoctorCheck/SumItems.vue";
import SumHistory from "../../components/sumDoctorCheck/SumHistory.vue"; import SumHistory from "../../components/sumDoctorCheck/SumHistory.vue";
export default { export default {
@ -59,6 +60,7 @@ export default {
SumSug, SumSug,
SumPREdit, SumPREdit,
CheckDetails, CheckDetails,
SumItemsType,
SumItems, SumItems,
SumHistory, SumHistory,
}, },

Loading…
Cancel
Save