Sfoglia il codice sorgente

电子病历定位

DESKTOP-MINPJAU\Administrator 3 anni fa
parent
commit
8db512745f

+ 44 - 7
src/components/zhu-yuan-yi-sheng/emr/EmrSidebar.vue

@@ -19,6 +19,7 @@
 import {getEmrTree} from "@/api/zhu-yuan-yi-sheng/emr-api";
 import {huanZheXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {getPatientData} from "@/api/zhu-yuan-yi-sheng/emr-patient";
+import {courseOfDisease} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-init";
 
 const emit = defineEmits(['nodeClick', 'typeChange'])
 
@@ -36,12 +37,19 @@ const defaultProps = {
 
 let templateType = $ref(0)
 
-const handleNodeClick = (val) => {
+const handleNodeClick = (val, property, event) => {
   let str = JSON.stringify(val)
-  if (key !== str) {
-    key = str
-    emit('nodeClick', val, templateType);
+  if (val.roundTime) {
+    console.log(val, property, event)
+    console.log(property.parent.data)
+    emit('nodeClick', val, property.parent.data, templateType);
+  } else {
+    if (key !== str) {
+      key = str
+      emit('nodeClick', val, null, templateType);
+    }
   }
+
 }
 
 const typeChange = (val) => {
@@ -86,14 +94,43 @@ const deleteTheSpecifiedNode = (id) => {
   }
 }
 
-defineExpose({queryHistory, changeTemplateType, deleteTheSpecifiedNode})
+const diseaseDurationRecordTime = ({ward_round_time}) => {
+  console.log(ward_round_time)
+  if (ward_round_time) {
+    let roundTimes = []
+    for (let i = 0; i < ward_round_time.length; i++) {
+      roundTimes.push({
+        name: '查房时间' + ward_round_time[i].value,
+        value: ward_round_time[i].value,
+        roundTime: true
+      })
+    }
+    for (let i = 0; i < returnData.patientTree.length; i++) {
+      let item = returnData.patientTree[i];
+      if (item.emrCategoryCode === courseOfDisease) {
+        item.children = roundTimes
+      }
+    }
+  }
+}
+
+defineExpose({
+  queryHistory,
+  changeTemplateType,
+  deleteTheSpecifiedNode,
+  diseaseDurationRecordTime
+})
 
 onMounted(() => {
   nextTick(() => {
     getEmrTree(huanZheXinXi.value.inpatientNo, huanZheXinXi.value.admissTimes).then((res) => {
-      treeData = res.emrTree
+      if (res.patientTree) {
+        treeData = res.patientTree
+        templateType = 2
+      } else {
+        treeData = res.emrTree
+      }
       returnData = res
-      console.log(res)
     })
   })
 })

+ 2 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-init.js

@@ -2,6 +2,8 @@ import {ElMessage, ElMessageBox} from "element-plus";
 import {BizException, ExceptionEnum} from "@/utils/BizException";
 import {deletePatientEmrByDocumentId, insertEmrData} from "@/api/zhu-yuan-yi-sheng/emr-patient";
 
+export let courseOfDisease = 'bingchengjiluzhuanyong'
+
 export function EMRInteractive(data, endiorEvent) {
     this.setEditor = (editor, runtime) => {
         this.editor = editor;

+ 34 - 8
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/index.vue

@@ -56,7 +56,10 @@
 import {huanZheXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {getEmrInpatientData} from "@/api/dictionary/emr-data-maintenance-api";
 import EmrSidebar from "@/components/zhu-yuan-yi-sheng/emr/EmrSidebar.vue";
-import {EMRInteractive} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-init";
+import {
+  courseOfDisease,
+  EMRInteractive
+} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-init";
 import {ElMessageBox} from "element-plus";
 import {uuid} from "@/utils/getUuid";
 import {BizException, ExceptionEnum} from "@/utils/BizException";
@@ -87,6 +90,8 @@ let isEditorChange = $ref(false)
 let patientData = $ref({})
 // 是否开启审阅模式
 let reviewMode = $ref(false)
+// 病程记录定位时间
+let localizationDurationTime = $ref('')
 
 const updateCaseHistoryUrl = (val) => {
   let valCode = val.code ? val.code : val.emrCategoryCode;
@@ -211,10 +216,28 @@ const checkEmrChange = (cb) => {
   }
 }
 
-const nodeClick = (val, templateType) => {
-  checkEmrChange(() => {
-    updateCaseHistoryUrl(val)
-  })
+const nodeClick = (val, parent, templateType) => {
+  if (val.roundTime) {
+    if (documentId === parent.emrDocumentId) {
+      positioningTime(val.value)
+    } else {
+      updateCaseHistoryUrl(parent);
+      localizationDurationTime = val.value
+    }
+  } else {
+    checkEmrChange(() => {
+      updateCaseHistoryUrl(val);
+    })
+  }
+}
+
+const positioningTime = (val) => {
+  let componentView = currentEmr.value.callMethod('getElementByValue', 'ward_round_time', val);
+  if (componentView) {
+    componentView.focusEnter();
+    currentEmr.value.callMethod('scrollToCursor')
+    currentEmr.value.callMethod('highlight', componentView, 1500)
+  }
 }
 
 
@@ -228,9 +251,12 @@ const editorEvents = ({name}, fragment) => {
       // 设置成编辑模式
       currentEmr.value.callMethod('setEditorMode', 'free')
     }
-    if (categoryCode === "bingchengjiluzhuanyong" && documentId) {
-      console.log(currentEmr.value.callMethod('getElementsData'));
-      console.log("这个是病程记录")
+    if (localizationDurationTime) {
+      positioningTime(localizationDurationTime)
+      localizationDurationTime = ''
+    }
+    if (categoryCode === courseOfDisease && documentId) {
+      emrSidebarRef.diseaseDurationRecordTime(currentEmr.value.callMethod('getElementsData'));
     }
 
   } else if (name === 'contentchange') {