Procházet zdrojové kódy

优化检验检查模板可以点击复选框了,请勿重复打开病历直接弹窗关闭,患者信息查询可以查询到手术

xiaochan před 2 roky
rodič
revize
199cc7f07c

+ 5 - 0
src/components/pat-info-list/PatInfomationDialog.vue

@@ -39,6 +39,10 @@
         <group-consultation :pat-no="props.patNo"
                             :times="props.times"/>
       </el-tab-pane>
+      <el-tab-pane label="手术">
+        <emr-operation :pat-no="props.patNo"
+                       :times="props.times"/>
+      </el-tab-pane>
       <el-tab-pane label="病历">
         <electronic-medical-record :pat-no="props.patNo"
                                    :times="props.times"/>
@@ -61,6 +65,7 @@ import {getDisPatient, getPatientInfo} from "@/api/inpatient/patient";
 import HuanZheXinXi from "@/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue";
 import EmrYzTemperature from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue";
 import EmrTest from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrTest.vue";
+import EmrOperation from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue";
 
 
 const props = defineProps({

+ 16 - 16
src/components/zhu-yuan-yi-sheng/emr/EmrFirstPageOfMedicalRecord.vue

@@ -1,7 +1,7 @@
 <template>
-    <first-page-of-medical-record v-if="isShow"
-                                  :dics="dics"
-                                  :sheet-data="sheetData"/>
+  <first-page-of-medical-record v-if="isShow"
+                                :dics="dics"
+                                :sheet-data="sheetData"/>
 </template>
 
 <script setup name="EmrFirstPageOfMedicalRecord">
@@ -16,26 +16,26 @@ const sheetData = ref({})
 const isShow = ref(false)
 
 const props = defineProps({
-    patInfo: Object
+  patInfo: Object
 })
 
 
 onMounted(async () => {
 
-    let res = await getAllDictionary()
-    res.getOperations = operations;
-    res.getYesOrNo = yesOrNo;
-    res.getHaveOrNot = haveOrNot;
-    res.getAutopsies = autopsies;
-    dics.value = res
+  let res = await getAllDictionary()
+  res.getOperations = operations;
+  res.getYesOrNo = yesOrNo;
+  res.getHaveOrNot = haveOrNot;
+  res.getAutopsies = autopsies;
+  dics.value = res
 
-    sheetData.value = await getSheetInfo({
-        bah: props.patInfo.inpatientNo,
-        times: props.patInfo.admissTimes,
-        inOutFlag: props.patInfo.$inOutFlag
-    })
+  sheetData.value = await getSheetInfo({
+    bah: props.patInfo.inpatientNo,
+    times: props.patInfo.admissTimes,
+    inOutFlag: props.patInfo.$inOutFlag
+  })
 
-    isShow.value = true
+  isShow.value = true
 
 })
 

+ 3 - 3
src/components/zhu-yuan-yi-sheng/emr/EmrUnorderedList.vue

@@ -17,7 +17,7 @@
 </template>
 
 <script setup name='EmrUnorderedList'>
-const props = defineProps({
+const {listType} = defineProps({
   listType: {
     type: String,
     default: 'orderly' | 'disorder'
@@ -39,7 +39,7 @@ const orderedListFunc = (val, index) => {
   let tempVal = val.substring(start, end + 1)
   let str = tempVal.substring(2, 3)
 
-  if (props.listType === 'orderly') {
+  if (listType === 'orderly') {
     if (str === '一') {
       return val.replace(tempVal, capitalChinese[index])
     } else if (str === 'A') {
@@ -51,7 +51,7 @@ const orderedListFunc = (val, index) => {
 }
 
 let tempList = () => {
-  return list[props.listType]
+  return list[listType]
 }
 
 const clickList = (val) => {

+ 1 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrMain.vue

@@ -140,6 +140,7 @@
     </div>
     <div class="emr-editor"
          :style="{marginTop: completeModeSwitch ? '10px' : 0 }">
+      <!--  电子病历中的样式条    -->
       <EmrStyleBar ref="styleBarRef"/>
       <div class="emr-iframe">
         <div>

+ 10 - 2
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/Home.vue

@@ -10,7 +10,6 @@
       次数 ({{ query.times }})
       <emr-leave-hospital-patient @rowClick="disPatients"/>
       <el-button @click="allPatientsInTheHospital" :disabled="query.state === 4">全院患者</el-button>
-      <el-button @click="emrSocketUnlock">解锁重复打开病历</el-button>
       <!--    解锁病历质控        -->
       <emr-quality-control-relieve/>
       <el-button @click="patientListDrawer = !patientListDrawer">患者列表</el-button>
@@ -73,6 +72,7 @@ import EmrQualityControlRelieve
   from "@/components/zhu-yuan-yi-sheng/emr/EmrQualityControlRelieve/EmrQualityControlRelieve.vue";
 import {getMyUnlockByPatNo} from "@/api/zhu-yuan-yi-sheng/emr-control-rule";
 import store from "@/store";
+import {ElMessageBox} from "element-plus";
 
 const patInfoRef = ref(null)
 const patInfoRefOld = ref(null)
@@ -126,7 +126,15 @@ const routerFunc = async () => {
     console.log('重复打开病历 %o 连接 %s', res, sid);
     if (res) {
       show = false
-      BizException(ExceptionEnum.LOGICAL_ERROR, "请勿重复打开病历。")
+      ElMessageBox.confirm('病历重复打开,请检查确认没有重复打开的病历,点击解锁后原患者病历会被关闭。', '提示', {
+        type: 'warning',
+        confirmButtonText: '解锁',
+      }).then(() => {
+        emrSocketUnlock()
+      }).catch(() => {
+
+      })
+      return
     }
     console.log(query.value)
     let reqUnlock = await getMyUnlockByPatNo(query.value.patNo, query.value.times)

+ 11 - 11
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/EmrStyleBar.vue

@@ -6,27 +6,27 @@ import {
   fontSizes,
 } from "../../../../../../views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
 
-export interface LineHeight {
+interface LineHeight {
   type: string;
   value: number;
 }
 
-export interface ParagraphSpacing {
+interface ParagraphSpacing {
   before: number;
   after: number;
 }
 
-export interface ParagraphIndent {
+interface ParagraphIndent {
   left: number;
   right: number;
 }
 
-export interface SpecialIndent {
+interface SpecialIndent {
   type: string;
   value: number;
 }
 
-export interface ParagraphStyle {
+interface ParagraphStyle {
   lineHeight: LineHeight;
   paragraphSpacing: ParagraphSpacing;
   paragraphIndent: ParagraphIndent;
@@ -34,27 +34,27 @@ export interface ParagraphStyle {
   textAlign?: any;
 }
 
-export interface LineHeight {
+interface LineHeight {
   type: string;
   value: number;
 }
 
-export interface ParagraphSpacing {
+interface ParagraphSpacing {
   before: number;
   after: number;
 }
 
-export interface ParagraphIndent {
+interface ParagraphIndent {
   left: number;
   right: number;
 }
 
-export interface SpecialIndent {
+interface SpecialIndent {
   type: string;
   value: number;
 }
 
-export interface ParagraphSetting {
+interface ParagraphSetting {
   lineHeight: LineHeight;
   paragraphSpacing: ParagraphSpacing;
   paragraphIndent: ParagraphIndent;
@@ -62,7 +62,7 @@ export interface ParagraphSetting {
   textAlign?: any;
 }
 
-export interface RootObject {
+interface RootObject {
   titleStyle: string;
   color: string;
   backgroundColor: string;

+ 8 - 9
src/views/hospitalization/zhu-yuan-yi-sheng/jian-cha-jian-yan-shen-qing/components/public/JcJyTemplate.vue

@@ -1,4 +1,4 @@
-<script setup name='JcJyTemplate'>
+<script setup>
 import {getTemplateByCodeAndType} from "@/api/zhu-yuan-yi-sheng/jian-yan-jian-cha-shen-qing";
 import {getWindowSize} from "@/utils/window-size";
 import {BizException, ExceptionEnum} from "@/utils/BizException";
@@ -27,8 +27,11 @@ const cellClick = ({row}) => {
   })
 }
 
-const tempClick = ({row}) => {
-  vxeTableRef.value.toggleCheckboxRow(row)
+const tempClick = (val) => {
+  let {row, column} = val
+  if (column.type !== 'checkbox') {
+    vxeTableRef.value.toggleCheckboxRow(row);
+  }
 }
 
 const confirm = () => {
@@ -39,7 +42,6 @@ const confirm = () => {
   selectAll(temp)
 }
 
-
 const selectAll = (data) => {
   if (data) {
     data.forEach(item => {
@@ -48,8 +50,6 @@ const selectAll = (data) => {
   }
   dialog.value = false
 }
-
-
 </script>
 
 <template>
@@ -87,16 +87,15 @@ const selectAll = (data) => {
                class="vxe-header-max_content vxe-scroll_15"
                show-header-overflow
                show-overflow>
-      <vxe-column type="checkbox" width="40"/>
+      <vxe-column type="checkbox" width="60">
+      </vxe-column>
       <vxe-column field="name" title="名称"/>
     </vxe-table>
 
     <template #footer>
       <el-button type="danger" @click="dialog = false">取消</el-button>
       <el-button type="primary" @click="confirm">确认</el-button>
-
     </template>
-
   </el-dialog>
 
 </template>