Parcourir la source

电子病历质控医生可以修改病历

xiaochan il y a 2 ans
Parent
commit
82821d063d

+ 117 - 114
src/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue

@@ -1,149 +1,152 @@
 <template>
-    <div>
-        <div @click="collapseChange"
-             style="padding-left: 30px;cursor: pointer;border-bottom: 1px solid #000">
-            {{ titleName() }}
-        </div>
-        <div v-show="collapse">
-            <div class="box">
-                <div>
-                    <template v-if="isDev || needRule(1)">
-                        <el-input style="width: 90px" v-model="props.huanZheXinXi.inpatientNo"
-                                  @keydown.enter="queryPatientInfoClick"/>
-                        {{ props.huanZheXinXi.admissTimes }}
-                    </template>
-                    <template v-else>
-                        住院号:{{ props.huanZheXinXi.inpatientNo }}_{{ props.huanZheXinXi.admissTimes }}
-                    </template>
-                </div>
-                <div>
-                    床号:{{ props.huanZheXinXi.bedNo }}
-                </div>
-                <div>
-                    姓名:{{ props.huanZheXinXi.name }}
-                </div>
-                <div>
-                    身份证号:{{ props.huanZheXinXi.socialNo }}
-                </div>
-                <div>
-                    出生日期:{{ props.huanZheXinXi.birthDate }} {{ companyFunc(props.huanZheXinXi.age, '岁') }}
-                </div>
-                <div>
-                    性别:{{ props.huanZheXinXi.sexName }}
-                </div>
-                <div>
-                    联系电话:{{ props.huanZheXinXi.homeTel }}
-                </div>
-                <div>
-                    入院日期:{{ props.huanZheXinXi.admissDate }}
-                    {{ companyFunc(props.huanZheXinXi.actIptDays, '天') }}
-                </div>
-            </div>
-
-            <div class="box">
-                <div>
-                    管床医生:{{ props.huanZheXinXi.referPhysicianName }}
-                </div>
-                <div>
-                    病区:{{ props.huanZheXinXi.admissWardName }}
-                </div>
-                <div>
-                    入院医生:{{ props.huanZheXinXi.admissPhysicianName }}
-                </div>
-                <div>
-                    入院诊断:{{ props.huanZheXinXi.admissDiagStr }}
-                </div>
-                <div>
-                    小科室:{{ props.huanZheXinXi.zkWardName }}
-                </div>
-                <div>
-                    身份:{{ props.huanZheXinXi.medTypeName }}
-                </div>
-
-            </div>
-
-            <div class="box">
-                <div>
-                    总费用:{{ props.huanZheXinXi.totalCharge }}
-                    <span style="color: red">
+  <div>
+    <div @click="collapseChange"
+         style="padding-left: 30px;cursor: pointer;border-bottom: 1px solid #000">
+      {{ titleName() }}
+      当前登录账号:{{userInfo.codeRs}} 姓名:{{ userInfo.name}}
+    </div>
+    <div v-show="collapse">
+      <div class="box">
+        <div>
+          <template v-if="isDev || needRule(1)">
+            <el-input style="width: 90px" v-model="props.huanZheXinXi.inpatientNo"
+                      @keydown.enter="queryPatientInfoClick"/>
+            {{ props.huanZheXinXi.admissTimes }}
+          </template>
+          <template v-else>
+            住院号:{{ props.huanZheXinXi.inpatientNo }}_{{ props.huanZheXinXi.admissTimes }}
+          </template>
+        </div>
+        <div>
+          床号:{{ props.huanZheXinXi.bedNo }}
+        </div>
+        <div>
+          姓名:{{ props.huanZheXinXi.name }}
+        </div>
+        <div>
+          身份证号:{{ props.huanZheXinXi.socialNo }}
+        </div>
+        <div>
+          出生日期:{{ props.huanZheXinXi.birthDate }} {{ companyFunc(props.huanZheXinXi.age, '岁') }}
+        </div>
+        <div>
+          性别:{{ props.huanZheXinXi.sexName }}
+        </div>
+        <div>
+          联系电话:{{ props.huanZheXinXi.homeTel }}
+        </div>
+        <div>
+          入院日期:{{ props.huanZheXinXi.admissDate }}
+          {{ companyFunc(props.huanZheXinXi.actIptDays, '天') }}
+        </div>
+      </div>
+
+      <div class="box">
+        <div>
+          管床医生:{{ props.huanZheXinXi.referPhysicianName }}
+        </div>
+        <div>
+          病区:{{ props.huanZheXinXi.admissWardName }}
+        </div>
+        <div>
+          入院医生:{{ props.huanZheXinXi.admissPhysicianName }}
+        </div>
+        <div>
+          入院诊断:{{ props.huanZheXinXi.admissDiagStr }}
+        </div>
+        <div>
+          小科室:{{ props.huanZheXinXi.zkWardName }}
+        </div>
+        <div>
+          身份:{{ props.huanZheXinXi.medTypeName }}
+        </div>
+
+      </div>
+
+      <div class="box">
+        <div>
+          总费用:{{ props.huanZheXinXi.totalCharge }}
+          <span style="color: red">
             {{ props.huanZheXinXi.balance }}
             </span>
-                </div>
-                <div>
-                    药品占比:{{ props.huanZheXinXi.yp }}
-                </div>
-                <div>
-                    检验检查:{{ props.huanZheXinXi.jyjc }}
-                </div>
-                <div>
-                    医保:{{ props.huanZheXinXi.chargeYb }} {{ props.huanZheXinXi.yb }}
-                </div>
-
-            </div>
-
-            <div class="box">
-                <div>
-                    付费权重:{{ props.huanZheXinXi.groupInfoWeight }}
-                </div>
-                <div>
-                    分组结果:{{ props.huanZheXinXi.groupInfoName }}
-                </div>
-                <div>
-                    倍率(DRG):{{ props.huanZheXinXi.groupInfoBl }}
-                </div>
-                <div>
-                    盈亏额:{{ props.huanZheXinXi.groupInfoProfit }}
-                </div>
-                <div>
-                    标杆费用:{{ props.huanZheXinXi.groupInfoFeeStand }}
-                </div>
-            </div>
         </div>
+        <div>
+          药品占比:{{ props.huanZheXinXi.yp }}
+        </div>
+        <div>
+          检验检查:{{ props.huanZheXinXi.jyjc }}
+        </div>
+        <div>
+          医保:{{ props.huanZheXinXi.chargeYb }} {{ props.huanZheXinXi.yb }}
+        </div>
+
+      </div>
+
+      <div class="box">
+        <div>
+          付费权重:{{ props.huanZheXinXi.groupInfoWeight }}
+        </div>
+        <div>
+          分组结果:{{ props.huanZheXinXi.groupInfoName }}
+        </div>
+        <div>
+          倍率(DRG):{{ props.huanZheXinXi.groupInfoBl }}
+        </div>
+        <div>
+          盈亏额:{{ props.huanZheXinXi.groupInfoProfit }}
+        </div>
+        <div>
+          标杆费用:{{ props.huanZheXinXi.groupInfoFeeStand }}
+        </div>
+      </div>
     </div>
+  </div>
 </template>
 
 <script setup name="HuanZheXinXi">
-
 import {isDev, needRule} from "@/utils/public";
 import {clickOnThePatient} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {stringNotBlank} from "@/utils/blank-utils";
+import store from "@/store";
 
 const props = defineProps({
-    huanZheXinXi: {
-        type: Object
-    },
+  huanZheXinXi: {
+    type: Object
+  },
 })
 
+const userInfo = store.state.user.info
+
 const emit = defineEmits(['isShow'])
 
 const collapse = ref(!isDev)
 
 const queryPatientInfoClick = () => {
-    clickOnThePatient(props.huanZheXinXi.inpatientNo)
+  clickOnThePatient(props.huanZheXinXi.inpatientNo)
 }
 
 const companyFunc = (val, company) => {
-    if (stringNotBlank(val)) {
-        return val + company
-    } else {
-        return ''
-    }
+  if (stringNotBlank(val)) {
+    return val + company
+  } else {
+    return ''
+  }
 }
 
 const collapseChange = async () => {
-    collapse.value = !collapse.value
-    emit('isShow', collapse.value, collapse.value ? 130 : 16)
+  collapse.value = !collapse.value
+  emit('isShow', collapse.value, collapse.value ? 130 : 16)
 }
 
 const titleName = () => {
-    if (props.huanZheXinXi.inpatientNo) {
-        return `患者 【${props.huanZheXinXi.name}】`;
-    }
-    return `请选择患者`;
+  if (props.huanZheXinXi.inpatientNo) {
+    return `患者 【${props.huanZheXinXi.name}】`;
+  }
+  return `请选择患者`;
 }
 
 onMounted(() => {
-    emit('isShow', collapse.value, collapse.value ? 130 : 16)
+  emit('isShow', collapse.value, collapse.value ? 130 : 16)
 })
 
 </script>

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

@@ -592,7 +592,7 @@ const emrEvent = {
     doctorLevelFunc()
     // 设置 编辑器的模式
     setEditorModeFun()
-    // 设置病程记录中的跳转锚点
+    // 设置病程记录中的跳转锚点,以及是否锁住病历
     await courseSegmentLocking()
     // 设置病程记录跳转
     setTheProgressAnchor()
@@ -1095,7 +1095,6 @@ const setEditorModeFun = () => {
         let EMR = editor.getScriptRuntime().EMR
         let emrDoc = EMR.getDocument()
         let areas = emrDoc.getNodesByCode(null, 'area')
-        console.log(areas)
       } else {
         // 如果创建人是空的就说明是第一次创建
         if (createId === null) {
@@ -1104,6 +1103,13 @@ const setEditorModeFun = () => {
         if (createId == userData.code) {
           return currentEmr.value.callMethod('setEditorMode', 'free');
         }
+        // 科室质控员
+        if (departmentQualityController()) {
+          currentEmr.value.callMethod('setEditorMode', 'free');
+          openTheTraceByUser(createId)
+          return
+        }
+
         // 创建人不是自己就只能看
         if (doctorLevel === 1 && createId !== userData.code) {
           currentEmr.value.callMethod('setEditorMode', 'readonly');
@@ -1185,6 +1191,11 @@ const courseSegmentLocking = async () => {
       if (emrConfig.value.editor) {
         let editorCode = value['编辑者']?.value[0]?.code;
         if (editorCode) {
+          if (departmentQualityController()) {
+            node.view.setReadonly(false);
+            node.view.setDeletable(false);
+            return
+          }
           // 只有自己可以删除自己创建的片段
           if (editorCode === loginUserCode) {
             node.view.setReadonly(false);
@@ -1300,6 +1311,10 @@ const doctorLevelFunc = () => {
   createLevel = grade(createId)
 }
 
+const departmentQualityController = () => {
+  return userData.code === props.huanZheXinXi.zkys
+}
+
 function grade(userCode) {
   if (needRule(1)) {
     doctorLevel = 3
@@ -1333,7 +1348,6 @@ const isRevisionMode = () => {
   } catch (e) {
     console.error(e)
   }
-
 }
 
 // 电子病历排序