|
@@ -74,172 +74,188 @@
|
|
|
<i class="iconfont icon-chaifenyemian"></i>
|
|
|
</el-button>
|
|
|
</el-button-group>
|
|
|
-
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button title="收起左边模板"
|
|
|
+ @click="foldBothSides.isLeft= !foldBothSides.isLeft">
|
|
|
+ <el-icon>
|
|
|
+ <Fold/>
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ <el-button title="收起右边片段"
|
|
|
+ @click="foldBothSides.isRight= !foldBothSides.isRight">
|
|
|
+ <el-icon>
|
|
|
+ <Expand/>
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
</el-header>
|
|
|
<el-container>
|
|
|
- <el-aside style="background-color: white">
|
|
|
- <emr-sidebar @nodeClick="nodeClick" ref="emrSidebarRef"
|
|
|
+ <div :class="foldBothSides.isLeft ? 'emr-template-open' : 'emr-template-put-away' ">
|
|
|
+ <emr-sidebar @nodeClick="nodeClick"
|
|
|
+ @patient-medical-record="foldBothSides.isLeft = true"
|
|
|
+ v-show="foldBothSides.isLeft"
|
|
|
+ ref="emrSidebarRef"
|
|
|
:max-height="maxHeight"
|
|
|
:huan-zhe-xin-xi="props.huanZheXinXi"/>
|
|
|
- </el-aside>
|
|
|
- <el-main v-loading="loaded">
|
|
|
- <el-row>
|
|
|
- <el-col :span="20">
|
|
|
- <div style="height: 30px" @mousewheel="mousewheel($event)">
|
|
|
- <el-scrollbar ref="tootScrollRef" @scroll="scroll">
|
|
|
- <div class="tool_emr">
|
|
|
- <el-select style="width: 150px;"
|
|
|
- @change="textStyleFunc.fontFamily()"
|
|
|
- v-model="emrStyle.fontFamily">
|
|
|
- <el-option v-for="item in availableFonts"
|
|
|
- :value="item.font"
|
|
|
- :label="item.text">
|
|
|
+ </div>
|
|
|
+ <div class="emr-editor">
|
|
|
+ <div style="height: 30px" @mousewheel="mousewheel($event)">
|
|
|
+ <el-scrollbar ref="tootScrollRef" @scroll="scroll">
|
|
|
+ <div class="tool_emr">
|
|
|
+ <el-select style="width: 150px;"
|
|
|
+ @change="textStyleFunc.fontFamily()"
|
|
|
+ v-model="emrStyle.fontFamily">
|
|
|
+ <el-option v-for="item in availableFonts"
|
|
|
+ :value="item.font"
|
|
|
+ :label="item.text">
|
|
|
<span :style="{'fontFamily':item.font }">
|
|
|
{{ item.text }}
|
|
|
</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- <el-select style="width: 70px;"
|
|
|
- @change="textStyleFunc.fontSize()"
|
|
|
- v-model="emrStyle.fontSize">
|
|
|
- <el-option v-for="item in fontSizes"
|
|
|
- :value="item.code"
|
|
|
- :label="item.name"/>
|
|
|
- </el-select>
|
|
|
- <el-divider direction="vertical"/>
|
|
|
- <el-button-group>
|
|
|
- <el-button @click="styleFunc('fontSizeAdjust','increase')"
|
|
|
- title="放大字体">
|
|
|
- +
|
|
|
- </el-button>
|
|
|
- <el-button @click="styleFunc('fontSizeAdjust','decrease')"
|
|
|
- title="缩小字体">
|
|
|
- -
|
|
|
- </el-button>
|
|
|
- </el-button-group>
|
|
|
- <el-divider direction="vertical"/>
|
|
|
- <el-button-group>
|
|
|
- <el-button
|
|
|
- title="字体加粗"
|
|
|
- :class="buttonClass('fontWeight','bold')"
|
|
|
- @click="textStyleFunc.fontWeight()">
|
|
|
- <i class="iconfont icon-jiacu"></i>
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- title="斜体"
|
|
|
- :class="buttonClass('fontStyle','oblique')"
|
|
|
- @click="textStyleFunc.fontStyle()">
|
|
|
- <i class="iconfont icon-xieti"></i>
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- title="下划线"
|
|
|
- :class="buttonClass('underline')"
|
|
|
- @click="textStyleFunc.underline()">
|
|
|
- <i class="iconfont icon-xiahuaxian"></i>
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- title="删除线"
|
|
|
- :class="buttonClass('lineThrough')"
|
|
|
- @click="textStyleFunc.lineThrough()">
|
|
|
- <i class="iconfont icon-shanchuxian"></i>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select style="width: 70px;"
|
|
|
+ @change="textStyleFunc.fontSize()"
|
|
|
+ v-model="emrStyle.fontSize">
|
|
|
+ <el-option v-for="item in fontSizes"
|
|
|
+ :value="item.code"
|
|
|
+ :label="item.name"/>
|
|
|
+ </el-select>
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button @click="styleFunc('fontSizeAdjust','increase')"
|
|
|
+ title="放大字体">
|
|
|
+ +
|
|
|
+ </el-button>
|
|
|
+ <el-button @click="styleFunc('fontSizeAdjust','decrease')"
|
|
|
+ title="缩小字体">
|
|
|
+ -
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button
|
|
|
+ title="字体加粗"
|
|
|
+ :class="buttonClass('fontWeight','bold')"
|
|
|
+ @click="textStyleFunc.fontWeight()">
|
|
|
+ <i class="iconfont icon-jiacu"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ title="斜体"
|
|
|
+ :class="buttonClass('fontStyle','oblique')"
|
|
|
+ @click="textStyleFunc.fontStyle()">
|
|
|
+ <i class="iconfont icon-xieti"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ title="下划线"
|
|
|
+ :class="buttonClass('underline')"
|
|
|
+ @click="textStyleFunc.underline()">
|
|
|
+ <i class="iconfont icon-xiahuaxian"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ title="删除线"
|
|
|
+ :class="buttonClass('lineThrough')"
|
|
|
+ @click="textStyleFunc.lineThrough()">
|
|
|
+ <i class="iconfont icon-shanchuxian"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ title="上标"
|
|
|
+ :class="buttonClass('super')"
|
|
|
+ @click="textStyleFunc.super()">
|
|
|
+ <i class="iconfont icon-zitishangbiao"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ title="下标"
|
|
|
+ :class="buttonClass('sub')"
|
|
|
+ @click="textStyleFunc.sub()">
|
|
|
+ <i class="iconfont icon-zitixiabiao"></i>
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
+ <div class="color_picker"
|
|
|
+ title="字体颜色">
|
|
|
+ <i class="iconfont icon-zitiyanse"></i>
|
|
|
+ <el-color-picker v-model="emrStyle.color"
|
|
|
+ @change="textStyleFunc.color()"
|
|
|
+ :predefine="predefineColors"/>
|
|
|
+ </div>
|
|
|
+ <div class="color_picker"
|
|
|
+ title="背景颜色">
|
|
|
+ <i class="iconfont icon-beijingyanse"></i>
|
|
|
+ <el-color-picker v-model="emrStyle.backgroundColor"
|
|
|
+ @change="textStyleFunc.backgroundColor()"
|
|
|
+ :predefine="predefineColors"/>
|
|
|
+ </div>
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-popover
|
|
|
+ :width="0"
|
|
|
+ trigger="click">
|
|
|
+ <template #reference>
|
|
|
+ <el-button title="无序列表">
|
|
|
+ <i class="iconfont icon-wuxuliebiao"></i>
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- title="上标"
|
|
|
- :class="buttonClass('super')"
|
|
|
- @click="textStyleFunc.super()">
|
|
|
- <i class="iconfont icon-zitishangbiao"></i>
|
|
|
+ </template>
|
|
|
+ <emr-unordered-list list-type="disorder" @click-list="textStyleFunc.unorderedList"/>
|
|
|
+ </el-popover>
|
|
|
+ <el-popover
|
|
|
+ :width="0"
|
|
|
+ trigger="click">
|
|
|
+ <template #reference>
|
|
|
+ <el-button title="有序列表">
|
|
|
+ <i class="iconfont icon-youxuliebiao"></i>
|
|
|
</el-button>
|
|
|
- <el-button
|
|
|
- title="下标"
|
|
|
- :class="buttonClass('sub')"
|
|
|
- @click="textStyleFunc.sub()">
|
|
|
- <i class="iconfont icon-zitixiabiao"></i>
|
|
|
- </el-button>
|
|
|
- </el-button-group>
|
|
|
- <div class="color_picker"
|
|
|
- title="字体颜色">
|
|
|
- <i class="iconfont icon-zitiyanse"></i>
|
|
|
- <el-color-picker v-model="emrStyle.color"
|
|
|
- @change="textStyleFunc.color()"
|
|
|
- :predefine="predefineColors"/>
|
|
|
- </div>
|
|
|
- <div class="color_picker"
|
|
|
- title="背景颜色">
|
|
|
- <i class="iconfont icon-beijingyanse"></i>
|
|
|
- <el-color-picker v-model="emrStyle.backgroundColor"
|
|
|
- @change="textStyleFunc.backgroundColor()"
|
|
|
- :predefine="predefineColors"/>
|
|
|
- </div>
|
|
|
- <el-divider direction="vertical"/>
|
|
|
- <el-button-group>
|
|
|
- <el-popover
|
|
|
- :width="0"
|
|
|
- trigger="click">
|
|
|
- <template #reference>
|
|
|
- <el-button title="无序列表">
|
|
|
- <i class="iconfont icon-wuxuliebiao"></i>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <emr-unordered-list list-type="disorder" @click-list="textStyleFunc.unorderedList"/>
|
|
|
- </el-popover>
|
|
|
- <el-popover
|
|
|
- :width="0"
|
|
|
- trigger="click">
|
|
|
- <template #reference>
|
|
|
- <el-button title="有序列表">
|
|
|
- <i class="iconfont icon-youxuliebiao"></i>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <emr-unordered-list list-type="orderly" @click-list="textStyleFunc.orderedList"/>
|
|
|
- </el-popover>
|
|
|
- </el-button-group>
|
|
|
- <el-divider direction="vertical"/>
|
|
|
- <el-button-group>
|
|
|
- <el-button title="左对齐"
|
|
|
- @click="textStyleFunc.alignment('left')">
|
|
|
- <i class="iconfont icon-zuoduiqi"></i>
|
|
|
- </el-button>
|
|
|
- <el-button title="居中对其"
|
|
|
- @click="textStyleFunc.alignment('center')">
|
|
|
- <i class="iconfont icon-juzhongduiqi"></i>
|
|
|
- </el-button>
|
|
|
- <el-button title="右对齐"
|
|
|
- @click="textStyleFunc.alignment('right')">
|
|
|
- <i class="iconfont icon-youduiqi"></i>
|
|
|
- </el-button>
|
|
|
- <el-button title="两端对齐"
|
|
|
- @click="textStyleFunc.alignment('justify')">
|
|
|
- <i class="iconfont icon-zuoyouduiqi"></i>
|
|
|
- </el-button>
|
|
|
- </el-button-group>
|
|
|
- <el-divider direction="vertical"/>
|
|
|
- <el-button-group>
|
|
|
- <el-button title="增加缩进"
|
|
|
- @click="textStyleFunc.indent(1)">
|
|
|
- <i class="iconfont icon-yousuojin"></i>
|
|
|
- </el-button>
|
|
|
- <el-button title="减小缩进"
|
|
|
- @click="textStyleFunc.indent(-1)">
|
|
|
- <i class="iconfont icon-zuosuojin"></i>
|
|
|
- </el-button>
|
|
|
- </el-button-group>
|
|
|
- </div>
|
|
|
- </el-scrollbar>
|
|
|
- </div>
|
|
|
- <div class="emr-iframe">
|
|
|
- <iframe ref="emrRef"
|
|
|
- :height="maxHeight - 100 + 'px' "
|
|
|
- :src="caseHistoryUrl"/>
|
|
|
+ </template>
|
|
|
+ <emr-unordered-list list-type="orderly" @click-list="textStyleFunc.orderedList"/>
|
|
|
+ </el-popover>
|
|
|
+ </el-button-group>
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button title="左对齐"
|
|
|
+ @click="textStyleFunc.alignment('left')">
|
|
|
+ <i class="iconfont icon-zuoduiqi"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button title="居中对其"
|
|
|
+ @click="textStyleFunc.alignment('center')">
|
|
|
+ <i class="iconfont icon-juzhongduiqi"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button title="右对齐"
|
|
|
+ @click="textStyleFunc.alignment('right')">
|
|
|
+ <i class="iconfont icon-youduiqi"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button title="两端对齐"
|
|
|
+ @click="textStyleFunc.alignment('justify')">
|
|
|
+ <i class="iconfont icon-zuoyouduiqi"></i>
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
+ <el-divider direction="vertical"/>
|
|
|
+ <el-button-group>
|
|
|
+ <el-button title="增加缩进"
|
|
|
+ @click="textStyleFunc.indent(1)">
|
|
|
+ <i class="iconfont icon-yousuojin"></i>
|
|
|
+ </el-button>
|
|
|
+ <el-button title="减小缩进"
|
|
|
+ @click="textStyleFunc.indent(-1)">
|
|
|
+ <i class="iconfont icon-zuosuojin"></i>
|
|
|
+ </el-button>
|
|
|
+ </el-button-group>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4" style="background-color: white">
|
|
|
- <emr-snippet @node-click="clickSnippet"
|
|
|
- ref="emrSnippetRef"
|
|
|
- :max-height="maxHeight"
|
|
|
- :patientData="patientData"/>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-main>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ <div class="emr-iframe">
|
|
|
+ <iframe ref="emrRef"
|
|
|
+ :height="maxHeight - 100 + 'px' "
|
|
|
+ :src="caseHistoryUrl"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div :class="foldBothSides.isRight ? 'emr-fragment-open' : 'emr-fragment-put-away' ">
|
|
|
+ <emr-snippet
|
|
|
+ v-show="foldBothSides.isRight"
|
|
|
+ @node-click="clickSnippet"
|
|
|
+ ref="emrSnippetRef"
|
|
|
+ :max-height="maxHeight"
|
|
|
+ :patientData="patientData"/>
|
|
|
+ </div>
|
|
|
+
|
|
|
</el-container>
|
|
|
|
|
|
<xc-dialog-v2 v-model="drgData.dialog" title="DRG预分组" :maximize="true">
|
|
@@ -264,8 +280,8 @@ import store from "@/store";
|
|
|
import {onBeforeRouteLeave} from "vue-router";
|
|
|
import {getUuid} from "@/api/public-api";
|
|
|
import {
|
|
|
- deletePatientEmrByDocumentId,
|
|
|
- getDrgIntelligentGrouping, getExtractDataElement, insertEmrData,
|
|
|
+ getDrgIntelligentGrouping,
|
|
|
+ getExtractDataElement,
|
|
|
submitMedicalRecord
|
|
|
} from "@/api/zhu-yuan-yi-sheng/emr-patient";
|
|
|
import {useDocumentVisibility} from "@vueuse/core";
|
|
@@ -284,6 +300,9 @@ const props = defineProps({
|
|
|
},
|
|
|
visitor: {
|
|
|
type: Boolean
|
|
|
+ },
|
|
|
+ isDualScreen: {
|
|
|
+ type: Boolean
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -329,6 +348,11 @@ let createId = null;
|
|
|
// 获取提取到的数据。
|
|
|
let extractData = {}
|
|
|
|
|
|
+let foldBothSides = $ref({
|
|
|
+ isLeft: true,
|
|
|
+ isRight: true,
|
|
|
+})
|
|
|
+
|
|
|
let emrStyle = $ref({
|
|
|
// 字体样式
|
|
|
fontFamily: '"Microsoft YaHei"',
|
|
@@ -1087,7 +1111,6 @@ onMounted(() => {
|
|
|
emrSnippetRef.value.setPatientData(patientData)
|
|
|
}
|
|
|
doctorLevelFunc()
|
|
|
-
|
|
|
emrRef.value.parentElement.emr = currentEmr.value
|
|
|
window.addEventListener('beforeunload', monitorPageRefresh, {capture: true})
|
|
|
})
|
|
@@ -1111,6 +1134,14 @@ onBeforeRouteLeave((to, from, next) => {
|
|
|
})
|
|
|
})
|
|
|
|
|
|
+const closeBothSides = () => {
|
|
|
+ foldBothSides.isLeft = false
|
|
|
+ foldBothSides.isRight = false
|
|
|
+}
|
|
|
+
|
|
|
+defineExpose({
|
|
|
+ closeBothSides
|
|
|
+})
|
|
|
|
|
|
</script>
|
|
|
|
|
@@ -1145,4 +1176,34 @@ onBeforeRouteLeave((to, from, next) => {
|
|
|
|
|
|
background-color: white;
|
|
|
}
|
|
|
+
|
|
|
+.emr-template-open {
|
|
|
+ width: 215px;
|
|
|
+ background-color: white;
|
|
|
+}
|
|
|
+
|
|
|
+.emr-template-put-away {
|
|
|
+ width: 10px;
|
|
|
+ background-color: white;
|
|
|
+}
|
|
|
+
|
|
|
+.emr-editor {
|
|
|
+ padding: 0 5px;
|
|
|
+ overflow: hidden;
|
|
|
+ display: block;
|
|
|
+ flex: 1;
|
|
|
+ flex-basis: auto;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.emr-fragment-open {
|
|
|
+ width: 180px;
|
|
|
+ background-color: white;
|
|
|
+}
|
|
|
+
|
|
|
+.emr-fragment-put-away {
|
|
|
+ width: 10px;
|
|
|
+ background-color: white;
|
|
|
+}
|
|
|
+
|
|
|
</style>
|