pengjun 3 weeks ago
parent
commit
2f6025876e
  1. 142
      src/components/doctorCheck/CheckItemList.vue
  2. 2
      src/components/doctorCheck/CheckSumSug.vue
  3. 2
      src/components/doctorCheck/PatientRegisterBase.vue
  4. 2
      src/components/patientRegister/PatientRegisterList.vue
  5. 245
      src/components/sumDoctorCheck/AsbitemCriticalValue.vue
  6. 11
      src/components/sumDoctorCheck/ButtonList.vue
  7. 417
      src/components/sumDoctorCheck/SumSug.vue
  8. 1
      src/store/index.js
  9. 6
      src/views/doctorCheck/sumDoctorCheck.vue

142
src/components/doctorCheck/CheckItemList.vue

@ -306,9 +306,19 @@ export default {
}, },
hisResultDetailDialogVisible: false, // hisResultDetailDialogVisible: false, //
// //
clickTime1: 0, // clickTime1: 0, //
clickTime2: 0 //
clickTime2: 0, //
//
comData: {
height_item_id: '', //
weight_item_id: '', //
hb_item_id: '', //
lb_item_id: '', //
},
}; };
}, },
@ -330,6 +340,19 @@ export default {
// //
mounted() { mounted() {
// Electron
if (this.$peisAPI) {
//
this.$peisAPI.onContextMenuAction((data) => {
this.onContextMenuDIY(data)
});
//
this.$peisAPI.onSerialData((data) => {
this.onSerialData(data)
});
}
this.checkItemList(this.dataTransOpts.tableS.register_check.id); this.checkItemList(this.dataTransOpts.tableS.register_check.id);
this.userInfo.operatorType = window.sessionStorage.getItem("operatorType") || '0'; this.userInfo.operatorType = window.sessionStorage.getItem("operatorType") || '0';
this.userInfo.userId = window.sessionStorage.getItem("userId") || null; this.userInfo.userId = window.sessionStorage.getItem("userId") || null;
@ -366,6 +389,38 @@ export default {
} }
}) })
// (ID)
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'height_item_id' })
.then(res => {
if (res.code > -1) {
this.comData.height_item_id = res.data || ""
}
})
// (ID)
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'weight_item_id' })
.then(res => {
if (res.code > -1) {
this.comData.weight_item_id = res.data || ""
}
})
// (ID)
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'hb_item_id' })
.then(res => {
if (res.code > -1) {
this.comData.hb_item_id = res.data || ""
}
})
// (ID)
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'lb_item_id' })
.then(res => {
if (res.code > -1) {
this.comData.lb_item_id = res.data || ""
}
})
// //
getapi("/api/app/result-status").then((res) => { getapi("/api/app/result-status").then((res) => {
if (res.code != -1) { if (res.code != -1) {
@ -1091,8 +1146,8 @@ export default {
}); });
}, },
//
onContextmenu(event) {
// ()
onContextmenuNoShell(event) {
// //
let items = []; let items = [];
@ -1135,6 +1190,53 @@ export default {
return false; return false;
}, },
//
onContextmenu(event) {
if (!this.$peisAPI) {
this.onContextmenuNoShell(event)
} else {
let menus = [
{ type: 'separator' },
{ label: '显示明细历次结果', itemId: '显示明细历次结果', enabled: true },
{ label: '预览影像报告', itemId: '预览影像报告', enabled: true }
// { label: '', itemId: '', enabled: true },
// {
// label: '',
// submenu: [
// { label: '', itemId: '', enabled: true }
// ]
// }
]
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
}
},
//
onContextMenuDIY(data) {
//this.$message({showClose:true,message:data})
switch (data) {
case '显示明细历次结果':
this.hisResultDetailDialogVisible = true
break;
case '预览影像报告':
this.pacsReportView();
break;
default:
break;
}
},
// //
pacsReportView() { pacsReportView() {
@ -1181,6 +1283,40 @@ export default {
}, },
//
onSerialData(data) {
console.log('onSerialData.data',data)
let array = data.data
for (let index = 0; index < array.length; index++) {
this.setSerialData(array[index]['deviceType'],array[index]['value'])
}
},
//
setSerialData(deviceType, value) {
try {
let itemIds = this.comData[deviceType].split(',')
let lfind = -1
for (let index = 0; index < itemIds.length; index++) {
lfind = arrayExistObj(this.doctorCheck.checkItemList, 'itemId', itemIds[index])
if (lfind > -1) break
}
if (lfind > -1) {
this.doctorCheck.checkItemList[lfind]['result'] = String(value)
this.madeTooltips(lfind);
this.computeFun(lfind);
}
} catch (err) {
console.error('身高体重仪数据设置体检出错:', err)
this.$message.error({ showClose: true, message: err.message })
}
},
}, },
// //

2
src/components/doctorCheck/CheckSumSug.vue

@ -451,7 +451,7 @@ export default {
// //
onContextMenuDIY(data){ onContextMenuDIY(data){
this.$message({showClose:true,message:data})
//this.$message({showClose:true,message:data})
} }
}, },

2
src/components/doctorCheck/PatientRegisterBase.vue

@ -516,7 +516,7 @@ export default {
// //
onContextMenuDIY(data){ onContextMenuDIY(data){
this.$message({showClose:true,message:data})
//this.$message({showClose:true,message:data})
} }
}, },

2
src/components/patientRegister/PatientRegisterList.vue

@ -1785,7 +1785,7 @@ export default {
this.dataTransOpts.plus.queue++; this.dataTransOpts.plus.queue++;
}, },
//
//
onCellRightClick(row, column) { onCellRightClick(row, column) {
// console.log(row) // console.log(row)
this.rClickRow = { ...row }; // this.rClickRow = { ...row }; //

245
src/components/sumDoctorCheck/AsbitemCriticalValue.vue

@ -0,0 +1,245 @@
<template>
<div style="display: flex">
<div :style="`width: ${window.pageWidth}px;`">
<el-table
:data="asbitemCriticalValue"
border
:height="divHeight"
size="small"
highlight-current-row
ref="asbitemCriticalValue"
:span-method="objectSpanMethod"
>
<el-table-column prop="asbitemName" label="组合项目" />
<el-table-column prop="summaryDetail" label="小结" min-width="400">
<template slot-scope="scope">
<span v-html="scope.row.summaryDetail"></span>
</template>
</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>
</el-table-column>
<el-table-column
prop="criticalValueContent"
label="危急值处理内容"
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>
</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>
</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>
</el-table-column>
<el-table-column prop="itemName" label="项目"> </el-table-column>
<el-table-column prop="itemResult" label="项目结果"> </el-table-column>
<el-table-column prop="unit" label="单位"> </el-table-column>
<el-table-column prop="referenceRangeValue" label="参考范围">
</el-table-column>
<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>
</el-table-column>
<el-table-column
prop="itemCriticalValueContent"
label="危急值处理内容"
width="150"
>
</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>
</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>
</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>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { dddw } from "../../utlis/proFunc";
import { getapi, postapi, putapi, deletapi } from "../../api/api";
export default {
props: ["patientRegisterId", "tabChoosed", "refParams",],
data() {
return {
asbitemCriticalValue: [],
};
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "patientRegister"]),
divHeight() {
let tableHeight = 465
switch (this.refParams.place) {
case 'summary': //
tableHeight = (this.window.pageHeight < 600 ? 600 : this.window.pageHeight) - 195
break;
default:
break;
}
return tableHeight
},
},
methods: {
dddw,
moment,
getLists() {
if (this.dataTransOpts.tableS.patient_register.id) {
postapi(
"/api/app/PhoneFollowUp/GetAsbitemOrItemCriticalByPatientRegisterId",
{
patientRegisterId:
this.dataTransOpts.tableS.patient_register.id,
}
).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;
}
}
});
return {
one: spanOneArr,
};
},
},
updated() {
this.$nextTick(() => {
this.$refs["asbitemCriticalValue"].doLayout();
});
},
watch: {
//ID
"dataTransOpts.refresh.sumDoctor.M": {
// immediate:true,
handler(newVal, oldVal) {
console.log(
`watch 危急值 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.patient_register.id}`
);
if (newVal != oldVal) {
if (this.refParams.place == 'doctor') {
this.getLists();
} else {
if (this.tabChoosed == '3') this.getLists();
}
}
},
},
},
};
</script>
<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;
}
</style>

11
src/components/sumDoctorCheck/ButtonList.vue

@ -70,6 +70,9 @@
<el-button type="primary" class="commonbutton" @click="btnOcc" <el-button type="primary" class="commonbutton" @click="btnOcc"
:disabled="sumBtnDisabled('btnOcc')">职业病</el-button> :disabled="sumBtnDisabled('btnOcc')">职业病</el-button>
</div> </div>
<div class="listBtn">
<el-button type="primary" class="commonbutton" @click="btnReset">重置</el-button>
</div>
<!-- AI诊断所有小结信息--> <!-- AI诊断所有小结信息-->
<div v-show="AI.visible" <div v-show="AI.visible"
@ -307,6 +310,7 @@ export default {
summaryDoctorId: this.dataTransOpts.tableS.patient_register.summaryDoctorId || null, summaryDoctorId: this.dataTransOpts.tableS.patient_register.summaryDoctorId || null,
summaryDate: this.dataTransOpts.tableS.patient_register.summaryDate || moment(new Date()).format("yyyy-MM-DD HH:mm:ss"), summaryDate: this.dataTransOpts.tableS.patient_register.summaryDate || moment(new Date()).format("yyyy-MM-DD HH:mm:ss"),
medicalConclusionId: this.dataTransOpts.tableS.patient_register.medicalConclusionId || null, medicalConclusionId: this.dataTransOpts.tableS.patient_register.medicalConclusionId || null,
summaryHistoricalReview:this.sumDoctorCheck.historySummary,
sumSummarys: this.sumDoctorCheck.summaryList, sumSummarys: this.sumDoctorCheck.summaryList,
sumSuggestions: this.sumDoctorCheck.suggestionList sumSuggestions: this.sumDoctorCheck.suggestionList
} }
@ -371,9 +375,6 @@ export default {
return return
} }
postapi(`/api/app/patientregister/UpdatePatientRegisterSummarySuggestion`, body) postapi(`/api/app/patientregister/UpdatePatientRegisterSummarySuggestion`, body)
.then((res) => { .then((res) => {
if (res.code > -1) { if (res.code > -1) {
@ -624,6 +625,10 @@ export default {
this.dialogWin.OccDisease = true this.dialogWin.OccDisease = true
}, },
//
btnReset(){
location.reload()
},
addSummary() { addSummary() {

417
src/components/sumDoctorCheck/SumSug.vue

@ -1,7 +1,7 @@
<template> <template>
<div style="background-color: #B9CEE9;"> <div style="background-color: #B9CEE9;">
<!--组件--> <!--组件-->
<div style="display: flex;" @contextmenu.prevent="onContextmenu">
<div style="display: flex;">
<div <div
:style="`position: absolute; top: 0px; left: ${Math.floor((window.pageWidth - 120) / 2) - 110}px; display: flex;z-index: 3;`"> :style="`position: absolute; top: 0px; left: ${Math.floor((window.pageWidth - 120) / 2) - 110}px; display: flex;z-index: 3;`">
<div v-show="checkPagePriv(pagePriv.privs, '新增综述')"> <div v-show="checkPagePriv(pagePriv.privs, '新增综述')">
@ -9,9 +9,9 @@
:disabled="sumBtnDisabledAddSummary">新增综述</el-button> :disabled="sumBtnDisabledAddSummary">新增综述</el-button>
</div> </div>
</div> </div>
<div style="width:50%;background-color: #B9CEE9;">
<el-table id="tableSummary" row-key="id" :data="sumDoctorCheck.summaryList" width="100%" :height="sumHeight"
border size="small">
<div style="width:50%;background-color: #B9CEE9;" @contextmenu="onContextmenu">
<el-table id="tableSummary" row-key="id" :data="sumDoctorCheck.summaryList" width="100%"
:height="sumHeight - (history_summary_years_limit == '0' ? 0 : 94)" border size="small">
<el-table-column type="index" width="30" align="center" /> <el-table-column type="index" width="30" align="center" />
<el-table-column prop="summaryTitle" label="综述"> <el-table-column prop="summaryTitle" label="综述">
<template slot="header"> <template slot="header">
@ -29,8 +29,8 @@
style="min-width:21px;height:21px;padding:2px;" @click="addSum(scope.$index)" style="min-width:21px;height:21px;padding:2px;" @click="addSum(scope.$index)"
:disabled="sumBtnDisabledAddSummary"></el-button> :disabled="sumBtnDisabledAddSummary"></el-button>
<el-button v-show="checkPagePriv(pagePriv.privs, '删除综述')" type="danger" icon="el-icon-delete" <el-button v-show="checkPagePriv(pagePriv.privs, '删除综述')" type="danger" icon="el-icon-delete"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color: red;" @click="delSumHead(scope.$index)"
:disabled="sumBtnDisabledAddSummary"></el-button>
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color: red;"
@click="delSumHead(scope.$index)" :disabled="sumBtnDisabledAddSummary"></el-button>
</div> </div>
<el-table :id="scope.row.id" :row-key="scope.$index + scope.row.id" style="margin-left: 10px;" <el-table :id="scope.row.id" :row-key="scope.$index + scope.row.id" style="margin-left: 10px;"
:data="scope.row.details" border @row-click="rowClick" :show-header="false"> :data="scope.row.details" border @row-click="rowClick" :show-header="false">
@ -59,22 +59,36 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div style="height: 90px;" v-show="history_summary_years_limit == '0' ? false : true">
<el-input type="textarea" v-model="sumDoctorCheck.historySummary" placeholder="历史综述"
:disabled="sumBtnDisabled" :autosize="{ minRows: 5, maxRows: 5 }" style="z-index: 2;">
</el-input>
</div>
</div> </div>
<div style="position: absolute; top: 0px; right: 2px; display: flex;z-index: 3;">
<div style="margin-right: 5px;">
<el-button style="height: 28px;" class="commonbutton" @click="btnCollapseAll"
:disabled="sumBtnDisabledCollapse">{{
collapse ?
'展开' : '折叠' }}全部建议</el-button>
<div style="position: absolute; top: 0px; right: 2px; display: flex;z-index: 3;justify-content: space-between;">
<div style="width: 350px;">
<el-select v-model="choosedDiagnosisId" placeholder="请选择" style="width: 100%;" filterable clearable
:filter-method="filterMethod" :disabled="sumBtnDisabled" popper-class="diagnosisSelect"
:popper-append-to-body="false" @change="changeDiagnosisId">
<el-option v-for="item in diagnosisesFilter" :key="item.id" :value="item" :label="item.displayName" />
</el-select>
</div> </div>
<div v-show="checkPagePriv(pagePriv.privs, '新增建议')">
<el-button style="height: 28px;" class="commonbutton" @click="addSuggtion"
:disabled="sumBtnDisabled">新增建议</el-button>
<div style="display: flex;">
<div style="margin-right: 5px;">
<el-button style="height: 28px;" class="commonbutton" @click="btnCollapseAll"
:disabled="sumBtnDisabledCollapse">{{
collapse ?
'展开' : '折叠' }}全部建议</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '新增建议')">
<el-button style="height: 28px;" class="commonbutton" @click="addSuggtion"
:disabled="sumBtnDisabled">新增建议</el-button>
</div>
</div> </div>
</div> </div>
<div style="width:50%;background-color: #B9CEE9;">
<div style="width:50%;background-color: #B9CEE9;" @contextmenu="onContextmenuSug">
<el-table id="tableSuggestion" row-key="id" :data="sumDoctorCheck.suggestionList" width="100%" <el-table id="tableSuggestion" row-key="id" :data="sumDoctorCheck.suggestionList" width="100%"
:height="sumHeight" border size="small" ref="tableSuggestion">
:height="sumHeight" border size="small" ref="tableSuggestion" @row-contextmenu="onCellRightClick">
<el-table-column width="30" align="center"> <el-table-column width="30" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag class="moveTag" style="cursor: move;background-color: #EEEEEE;"> <el-tag class="moveTag" style="cursor: move;background-color: #EEEEEE;">
@ -98,21 +112,21 @@
<!-- <el-tooltip content="选择诊断" placement="top"></el-tooltip> --> <!-- <el-tooltip content="选择诊断" placement="top"></el-tooltip> -->
<el-button icon="el-icon-search" style="min-width:21px;height:21px;padding:2px;" <el-button icon="el-icon-search" style="min-width:21px;height:21px;padding:2px;"
@click="btnChooseDiagnosis(scope.$index)" :disabled="sumBtnDisabled"></el-button>
<!-- <el-tooltip content="根据诊断搜索医学解释、常见原因及健康指导" placement="top"></el-tooltip>-->
<el-button icon="el-icon-cpu" style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnAIdiagnosis(scope.row.diagnosisNames)" :disabled="sumBtnDisabled"></el-button>
@click="btnChooseDiagnosis(scope.$index)" :disabled="sumBtnDisabled"></el-button>
<!-- <el-tooltip content="根据诊断搜索医学解释、常见原因及健康指导" placement="top"></el-tooltip>-->
<el-button icon="el-icon-cpu" style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnAIdiagnosis(scope.row.diagnosisNames)" :disabled="sumBtnDisabled"></el-button>
<el-button :icon="scope.row.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" <el-button :icon="scope.row.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;" style="margin-left: 2px;min-width:21px;height:21px;padding:2px;"
@click="btnCollapse(sumDoctorCheck.suggestionList, scope.$index, scope.row)" @click="btnCollapse(sumDoctorCheck.suggestionList, scope.$index, scope.row)"
:disabled="sumBtnDisabledCollapse"></el-button> :disabled="sumBtnDisabledCollapse"></el-button>
<el-button v-show="checkPagePriv(pagePriv.privs, '删除建议')" type="danger" icon="el-icon-delete" <el-button v-show="checkPagePriv(pagePriv.privs, '删除建议')" type="danger" icon="el-icon-delete"
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color:red;" @click="delSugHead(scope.$index)"
:disabled="sumBtnDisabled"></el-button>
style="margin-left: 2px;min-width:21px;height:21px;padding:2px;background-color:red;"
@click="delSugHead(scope.$index)" :disabled="sumBtnDisabled"></el-button>
</div> </div>
<div v-show="!scope.row.collapse"> <div v-show="!scope.row.collapse">
<div style="display: flex;margin-top: 2px;" v-show="dispDiagnsis == 'Y' ? true:false">
<div style="display: flex;margin-top: 2px;" v-show="dispDiagnsis == 'Y' ? true : false">
<div style="width:60px;">诊断</div> <div style="width:60px;">诊断</div>
<el-input placeholder="请选择诊断" :value="`${scope.row.diagnosisNames}`" size="small" disabled> <el-input placeholder="请选择诊断" :value="`${scope.row.diagnosisNames}`" size="small" disabled>
</el-input> </el-input>
@ -154,8 +168,8 @@
<template slot-scope="scope2"> <template slot-scope="scope2">
<el-button v-show="checkPagePriv(pagePriv.privs, '删除医学解释')" type="danger" <el-button v-show="checkPagePriv(pagePriv.privs, '删除医学解释')" type="danger"
style="min-width:21px;height:21px;padding:2px; background-color:red;" icon="el-icon-delete" style="min-width:21px;height:21px;padding:2px; background-color:red;" icon="el-icon-delete"
@click="delSug(scope.row.medicalInterpretations, scope2.$index)"
:disabled="sumBtnDisabled" size="small"></el-button>
@click="delSug(scope.row.medicalInterpretations, scope2.$index)" :disabled="sumBtnDisabled"
size="small"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -307,7 +321,7 @@
import { mapState } from 'vuex'; import { mapState } from 'vuex';
import Sortable from "sortablejs"; import Sortable from "sortablejs";
import { getapi, postapi, putapi, deletapi } from "@/api/api"; import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj } from '../../utlis/proFunc';
import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj, arrayReduce } from '../../utlis/proFunc';
export default { export default {
components: {}, components: {},
@ -323,6 +337,7 @@ export default {
dialogDiagnosises: false, // dialogDiagnosises: false, //
diagnosises: [], // diagnosises: [], //
diagnosisesFilter: [], // diagnosisesFilter: [], //
choosedDiagnosisId: '',
choosedDiagnosisIds: [], // id choosedDiagnosisIds: [], // id
disabledDiagnosisIds: [], // id disabledDiagnosisIds: [], // id
diagnosisesChoosed: [], // diagnosisesChoosed: [], //
@ -330,7 +345,7 @@ export default {
collapse: false, // / collapse: false, // /
dispTermReason: 'Y', // dispTermReason: 'Y', //
dispDiagnsis:'Y', //
dispDiagnsis: 'Y', //
dialogWinSymbols: false, dialogWinSymbols: false,
selection: { // selection: { //
@ -345,14 +360,22 @@ export default {
subIndex: -1, subIndex: -1,
}, },
summary_check_default_summay_modifiable: 'N', summary_check_default_summay_modifiable: 'N',
history_summary_years_limit: '0', //(0~20NN0 )
AI: { AI: {
width: 500, width: 500,
height: 24, height: 24,
max: true, max: true,
visible: false, visible: false,
diagnosis: 'AI诊断信息', diagnosis: 'AI诊断信息',
}
},
//
rckParam: {
curRow: 0, //
rowNum: 1, //
cutRows: [] //
}, //
//autosize:{ minRows: 1, maxRows: 1 }
}; };
}, },
@ -378,6 +401,14 @@ export default {
} }
}) })
// (history_summary_years_limit )
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'history_summary_years_limit' })
.then(res => {
if (res.code > -1) {
this.history_summary_years_limit = res.data || "0"
}
})
this.AI.height = this.frameHeight this.AI.height = this.frameHeight
}, },
@ -424,7 +455,7 @@ export default {
return Math.floor((this.AI.height - 24 - 42 - 4) / 21.5) return Math.floor((this.AI.height - 24 - 42 - 4) / 21.5)
}, },
sumBtnDisabled(){
sumBtnDisabled() {
let patientRegister = this.dataTransOpts.tableS.patient_register let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true let ret = true
@ -439,7 +470,7 @@ export default {
return ret return ret
}, },
sumBtnDisabledAddSummary(){
sumBtnDisabledAddSummary() {
let patientRegister = this.dataTransOpts.tableS.patient_register let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true let ret = true
@ -456,7 +487,7 @@ export default {
}, },
sumBtnDisabledCollapse(){
sumBtnDisabledCollapse() {
let patientRegister = this.dataTransOpts.tableS.patient_register let patientRegister = this.dataTransOpts.tableS.patient_register
let ret = true let ret = true
@ -481,8 +512,8 @@ export default {
// }, // },
// //
onContextMenuDIY(data){
this.$message({showClose:true,message:data})
onContextMenuDIY(data) {
this.$message({ showClose: true, message: data })
}, },
// //
@ -534,7 +565,7 @@ export default {
// //
addSuggtion() { addSuggtion() {
let id = String(new Date().getTime())
let id = String(new Date().getTime()) + String(this.sumDoctorCheck.suggestionList.length)
let pojo = { let pojo = {
id, id,
patientRegisterId: this.dataTransOpts.tableS.patient_register.id, patientRegisterId: this.dataTransOpts.tableS.patient_register.id,
@ -564,6 +595,7 @@ export default {
} }
this.sumDoctorCheck.suggestionList.push(pojo); this.sumDoctorCheck.suggestionList.push(pojo);
//
this.$nextTick(() => { this.$nextTick(() => {
this.$refs[id].focus(); this.$refs[id].focus();
}) })
@ -588,6 +620,9 @@ export default {
}) })
}, },
focusDiagnosisId() {
this.btnChooseDiagnosis(this.suggestionCurRow)
},
// //
btnChooseDiagnosis(index) { btnChooseDiagnosis(index) {
this.suggestionCurRow = index this.suggestionCurRow = index
@ -685,6 +720,7 @@ export default {
// console.log('getHaveSumData', this.dataTransOpts.tableS.patient_register.completeFlag) // console.log('getHaveSumData', this.dataTransOpts.tableS.patient_register.completeFlag)
if (this.dataTransOpts.tableS.patient_register.completeFlag == '3') { if (this.dataTransOpts.tableS.patient_register.completeFlag == '3') {
this.summaryList(patientRegisterId, 'Y') this.summaryList(patientRegisterId, 'Y')
this.getHistorySummary(patientRegisterId, 'Y')
this.suggestionList(patientRegisterId, 'Y') this.suggestionList(patientRegisterId, 'Y')
return return
} }
@ -706,6 +742,7 @@ export default {
} }
} }
this.summaryList(patientRegisterId, isGetExistData) this.summaryList(patientRegisterId, isGetExistData)
this.getHistorySummary(patientRegisterId, isGetExistData)
this.suggestionList(patientRegisterId, isGetExistData) this.suggestionList(patientRegisterId, isGetExistData)
} }
}) })
@ -757,6 +794,27 @@ export default {
}); });
}, },
//
getHistorySummary(patientRegisterId, isGetExistData) {
if (!patientRegisterId) {
this.sumDoctorCheck.historySummary = '';
return
}
let body = {
patientRegisterId,
isGetExistData,
}
postapi('/api/app/SumsummaryReport/GetHistoricalReviewByDate', body)
.then((res) => {
// console.log("summaryList", res.data);
if (res.code > -1) {
this.sumDoctorCheck.historySummary = res.data.summaryHistoricalReview
}
})
},
// //
suggestionList(RegisterId, isGetExistData) { suggestionList(RegisterId, isGetExistData) {
this.sumDoctorCheck.suggestionList = []; this.sumDoctorCheck.suggestionList = [];
@ -806,7 +864,7 @@ export default {
} }
suggestionList.push(Object.assign({}, e, { medicalInterpretations, commonReasons, healthGuidances })) suggestionList.push(Object.assign({}, e, { medicalInterpretations, commonReasons, healthGuidances }))
}); });
this.sumDoctorCheck.suggestionList = suggestionList
this.sumDoctorCheck.suggestionList = deepCopy(suggestionList)
setTimeout(() => { setTimeout(() => {
this.sumDoctorCheck.suggestionList = res.data; this.sumDoctorCheck.suggestionList = res.data;
}, 10); }, 10);
@ -814,6 +872,20 @@ export default {
}); });
}, },
//
changeDiagnosisId(v) {
if (!v) return
let lfind = arrayExistObj(this.sumDoctorCheck.suggestionList, 'suggestionTitle', v.displayName)
if (lfind > -1) {
this.$message.warning({ showClose: true, message: '该诊断结论已在建议列表,不要重复选择!' })
return
}
this.addSuggtion()
this.suggestionCurRow = this.sumDoctorCheck.suggestionList.length - 1
this.changeDiagnosis([v.id])
},
// //
changeDiagnosis(v) { changeDiagnosis(v) {
// console.log('changeDiagnosis', v) // console.log('changeDiagnosis', v)
@ -1221,40 +1293,43 @@ export default {
}); });
}, },
//
//
// undo: () => Promise<any>;
// redo: () => Promise<any>;
// cut: () =>Promise<any>;
// copy: () => Promise<any>;
// paste: () => Promise<any>;
// delete: () => Promise<any>;
// selectAll: () => Promise<any>;
// unselect: () => Promise<any>;
//
cutSugRows(cutNum) {
this.rckParam.cutRows = this.sumDoctorCheck.suggestionList.slice(this.rckParam.curRow, Number(this.rckParam.curRow) + Number(cutNum))
this.sumDoctorCheck.suggestionList = arrayReduce(this.sumDoctorCheck.suggestionList, this.rckParam.cutRows, "id=id")
//this.sumDoctorCheck.suggestionList.splice(this.rckParam.curRow, cutNum)
},
//
insRows(step) {
this.rckParam.cutRows.forEach((e, i) => {
let num = Number(this.rckParam.curRow) + Number(i) + Number(step)
this.sumDoctorCheck.suggestionList.splice(num, 0, e)
});
//
this.rckParam.curRow = -1
this.rckParam.cutRows = []
},
//
onContextmenu(event) { onContextmenu(event) {
if (!this.$peisAPI) { if (!this.$peisAPI) {
return return
} }
/*
let menus = [ let menus = [
{ label: '测试菜单', itemId: '测试菜单', enabled: true }
// { type: 'separator' },
// { label: '', itemId: '', enabled: true },
// {
// label: '',
// submenu: [
// { label: '', itemId: '', enabled: true }
// ]
// }
] ]
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
*/
// console.log('this.$peisAPI.contextMenuForPeis()') // console.log('this.$peisAPI.contextMenuForPeis()')
this.$peisAPI.contextMenuForPeis()
this.$peisAPI.showContextMenu(menus)
.then(res => { .then(res => {
console.log('res', res) console.log('res', res)
}) })
@ -1325,7 +1400,216 @@ export default {
minWidth: 80, minWidth: 80,
}); });
*/ */
}
},
//
onCellRightClick(row, column) {
//
this.rckParam.curRow = arrayExistObj(this.sumDoctorCheck.suggestionList, 'id', row.id)
console.log('onCellRightClick', row.id, this.rckParam.curRow, this.sumDoctorCheck.suggestionList.length)
// this.rClickRow = { ...row }; //
// this.rClickColumn = { ...column }; //
},
//
onContextmenuSugNoShell(event) {
//
if (this.rckParam.curRow == -1) return
let length = this.sumDoctorCheck.suggestionList.length
if (length == 0) return
//
let items = [];
// items.push({
// label: "",
// children: [
// { label: "", onClick: () => { this.fnUpBaseInfo(row, 'patientName'); } }
// ],
// onClick: () => { // }
// })
//
if (this.rckParam.cutRows.length > 0) {
items.push({
label: "粘贴到当前行前面",
onClick: () => {
this.insRows(0)
},
})
items.push({
label: "粘贴到当前行后面",
onClick: () => {
this.insRows(1)
},
})
}
//
items.push({
label: "剪切诊断(当前行)",
onClick: () => {
this.cutSugRows(1)
},
})
if (this.rckParam.curRow <= length - 2) {
items.push({
label: "剪切诊断(当前行及后 1 行)",
onClick: () => {
this.cutSugRows(2)
},
})
}
if (this.rckParam.curRow <= length - 3) {
items.push({
label: "剪切诊断(当前行及后 2 行)",
onClick: () => {
this.cutSugRows(3)
},
})
}
if (this.rckParam.curRow <= length - 4) {
items.push({
label: "剪切诊断(当前行及后 3 行)",
onClick: () => {
this.cutSugRows(4)
},
})
}
if (this.rckParam.curRow <= length - 5) {
items.push({
label: "剪切诊断(当前行及后 4 行)",
onClick: () => {
this.cutSugRows(5)
},
})
}
//
items.push({
label: "向下合并诊断",
onClick: () => {
this.hisResultDetailDialogVisible = true
},
})
items.push({
label: "向上合并诊断",
onClick: () => {
this.hisResultDetailDialogVisible = true
},
})
this.$contextmenu({
items,
event,
x: event.clientX,
y: event.clientY,
customClass: "custom-class",
zIndex: 3,
minWidth: 80,
});
return false;
},
onContextmenuSug(event) {
if (!this.$peisAPI) {
this.onContextmenuSugNoShell(event)
} else {
let length = this.sumDoctorCheck.suggestionList.length
if (length == 0) return
let menus = [
// { type: 'separator' },
// { label: '', itemId: '', enabled: true },
// { label: '', itemId: '', enabled: true }
// { label: '', itemId: '', enabled: true },
// {
// label: '',
// submenu: [
// { label: '', itemId: '', enabled: true }
// ]
// }
]
//
if (this.rckParam.cutRows.length > 0) {
menus.push({ type: 'separator' })
menus.push({ label: '粘贴诊断到当前行前面', itemId: '粘贴诊断到当前行前面', enabled: true })
menus.push({ label: '粘贴诊断到当前行后面', itemId: '粘贴诊断到当前行后面', enabled: true })
}
//
menus.push({ type: 'separator' })
menus.push({ label: '剪切诊断(当前行)', itemId: '剪切诊断(当前行)', enabled: true })
if (this.rckParam.curRow <= length - 2) {
menus.push({ label: '剪切诊断(当前行及后 1 行)', itemId: '剪切诊断(当前行及后 1 行)', enabled: true })
}
if (this.rckParam.curRow <= length - 3) {
menus.push({ label: '剪切诊断(当前行及后 2 行)', itemId: '剪切诊断(当前行及后 2 行)', enabled: true })
}
if (this.rckParam.curRow <= length - 4) {
menus.push({ label: '剪切诊断(当前行及后 3 行)', itemId: '剪切诊断(当前行及后 3 行)', enabled: true })
}
if (this.rckParam.curRow <= length - 5) {
menus.push({ label: '剪切诊断(当前行及后 4 行)', itemId: '剪切诊断(当前行及后 4 行)', enabled: true })
}
// console.log('this.$peisAPI.contextMenuForPeis()')
this.$peisAPI.showContextMenu(menus)
.then(res => {
console.log('res', res)
})
.catch(err => {
console.log('err', err)
})
.finally(() => {
console.log('finally')
})
}
},
//
onContextMenuDIY(data) {
//this.$message({showClose:true,message:data})
switch (data) {
case '粘贴诊断到当前行前面':
this.insRows(0)
break;
case '粘贴诊断到当前行后面':
this.insRows(1)
break;
case '剪切诊断(当前行)':
this.cutSugRows(1)
break;
case '剪切诊断(当前行及后 1 行)':
this.cutSugRows(2)
break;
case '剪切诊断(当前行及后 2 行)':
this.cutSugRows(3)
break;
case '剪切诊断(当前行及后 3 行)':
this.cutSugRows(4)
break;
case '剪切诊断(当前行及后 4 行)':
this.cutSugRows(5)
break;
default:
break;
}
},
}, },
// //
@ -1359,16 +1643,17 @@ export default {
} }
/* 表格底色 .el-table__body .el-table__body-wrapper*/ /* 表格底色 .el-table__body .el-table__body-wrapper*/
::v-deep .el-table{
::v-deep .el-table {
background-color: #B9CEE9; background-color: #B9CEE9;
color: #52555F; color: #52555F;
} }
::v-deep .el-table__row{
::v-deep .el-table__row {
background-color: #B9CEE9; background-color: #B9CEE9;
color: #52555F; color: #52555F;
} }
::v-deep .el-textarea__inner{
::v-deep .el-textarea__inner {
background-color: #B9CEE9; background-color: #B9CEE9;
color: #52555F; color: #52555F;
} }

1
src/store/index.js

@ -269,6 +269,7 @@ export default new Vuex.Store({
summaryList: [], //综述 summaryList: [], //综述
suggestionList: [], //建议 suggestionList: [], //建议
diagnosisList: [], //诊断 diagnosisList: [], //诊断
historySummary:'', //历次综述(出现在报告中的)
}, },
report: { report: {

6
src/views/doctorCheck/sumDoctorCheck.vue

@ -37,7 +37,9 @@
<el-tab-pane label="明细结果" name="2"> <el-tab-pane label="明细结果" name="2">
<CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id" :tabChoosed="tabChoosed" :refParams="{ place: 'summary' }"/> <CheckDetails :patientRegisterId="dataTransOpts.tableS.patient_register.id" :tabChoosed="tabChoosed" :refParams="{ place: 'summary' }"/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="危急值和随访值" name="3"> </el-tab-pane>
<el-tab-pane label="危急值和随访值" name="3">
<AsbitemCriticalValue :tabChoosed="tabChoosed" :refParams="{ place: 'summary' }"/>
</el-tab-pane>
<!-- <!--
<el-tab-pane label="项目对比" name="4"> <el-tab-pane label="项目对比" name="4">
<SumItemsType :patientId="dataTransOpts.tableS.patient_register.patientId" /> <SumItemsType :patientId="dataTransOpts.tableS.patient_register.patientId" />
@ -83,6 +85,7 @@ 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";
import ImageTextReport from "../../components/occDisease/ImageTextReport.vue"; import ImageTextReport from "../../components/occDisease/ImageTextReport.vue";
import AsbitemCriticalValue from "../../components/sumDoctorCheck/AsbitemCriticalValue.vue";
export default { export default {
components: { components: {
@ -97,6 +100,7 @@ export default {
SumItems, SumItems,
SumHistory, SumHistory,
ImageTextReport, ImageTextReport,
AsbitemCriticalValue
}, },
data() { data() {
return { return {

Loading…
Cancel
Save