Browse Source

no message

xiaochan 2 years ago
parent
commit
9b6722e594

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

@@ -615,7 +615,7 @@ const emrEvent = {
             view.setAttribute('fragment', {
                 name: values['查房标题'].value,
                 createId: userData.code,
-                createDate: newDate,
+                creationTime: newDate,
                 referPhysician: extractFields('管床医生编码'),
                 consultPhysician: extractFields('主治医生编码'),
                 deptDirector: extractFields('主任医生编码'),
@@ -746,7 +746,7 @@ const clickSaveData = async () => {
         templateName = '病程记录'
     }
     saveDialog.dialog = true
-    data.fragment = await 解析病程记录()
+    data.fragment = 解析病程记录()
     saveDialog.prompt(templateName, async (value) => {
         data.name = value
         let newDate = await getServerDateApi()
@@ -1087,7 +1087,7 @@ const courseSegmentLocking = async () => {
     if (documentId) {
         let courseTitles = [];
         let loginUserCode = userData.code;
-        await 循环病程返回数据元((value, node) => {
+        循环病程返回数据元((value, node) => {
             courseTitles.push({
                 code: '查房时间',
                 name: value['查房标题']?.value,
@@ -1647,32 +1647,34 @@ const changeClear = () => {
     isEditorChange = false
 }
 
-const 解析病程记录 = async () => {
+const 解析病程记录 = () => {
     if (categoryCode !== emrCodeEnum.courseRecord) {
         saveDialog.analyzeTheCourseOfTheDisease = false
         return
     }
     saveDialog.analyzeTheCourseOfTheDisease = true
     let fragment = []
-    await 循环病程返回数据元((values, node) => {
+    循环病程返回数据元((values, node) => {
         let data
         let fragmentData = node.view.getAttribute('fragment')
+
         function listNull(name) {
             let temp = null
             try {
                 values[name]?.value[0]?.code
-            }catch (e) {
+            } catch (e) {
             }
             return temp
         }
+
         // 以前老数据是没有的所以做不到质控
         if (typeof fragmentData === 'undefined') {
             data = {
                 name: values['查房标题']?.value,
-                createId: listNull('编辑者') ,
+                createId: listNull('编辑者'),
                 creationTime: values['查房时间']?.value,
                 referPhysician: values['编辑者']?.value[0]?.code,
-                consultPhysician: listNull('上级医师签名') ,
+                consultPhysician: listNull('上级医师签名'),
                 deptDirector: extractFields('主任医生编码'),
             }
             if (!data.name) {
@@ -1680,21 +1682,25 @@ const 解析病程记录 = async () => {
                 saveDialog.close()
                 BizException(ExceptionEnum.MESSAGE_ERROR, '片段中存在异常标题,请检查。')
             }
-            if (!data.creationTime) {
-                saveDialog.close()
-                BizException(ExceptionEnum.MESSAGE_ERROR, '片段中存在异常查房时间,请检查。')
-            }
-            node.view.setAttribute('fragment', data)
         } else {
+            let tempDate = fragmentData.creationTime
+            if (!fragmentData.creationTime) {
+                tempDate = values['查房时间']?.value
+            }
             data = {
                 name: values['查房标题']?.value,
                 createId: fragmentData.createId,
-                creationTime: fragmentData.createDate,
+                creationTime: tempDate,
                 referPhysician: extractFields('管床医生编码'),
                 consultPhysician: extractFields('主治医生编码'),
                 deptDirector: extractFields('主任医生编码'),
             }
         }
+        if (!data.creationTime) {
+            node.view.setAttribute('fragment', undefined)
+            saveDialog.close()
+            BizException(ExceptionEnum.MESSAGE_ERROR, '片段中存在异常查房时间,请检查。')
+        }
         fragment.push(data)
     })
     saveDialog.analyzeTheCourseOfTheDisease = false
@@ -1710,23 +1716,20 @@ const 解析病程提示 = computed(() => {
 })
 
 const 循环病程返回数据元 = (callback) => {
-    return new Promise((resolve, reject) => {
-        let root = currentEmr.value.getRoot()
-        let walker, values;
-        let modelService = editor.ModelService;
-        for (let node of root.getChildren()) {
-            if (node.view && node.type === 'area') {
-                if (!walker) {
-                    walker = modelService.createTreeWalker(node);
-                } else {
-                    modelService.setWalkerRoot(walker, node);
-                }
-                values = modelService.getElementsDataFromWalker(walker, '编辑者');
-                callback(values, node)
+    let root = currentEmr.value.getRoot()
+    let walker, values;
+    let modelService = editor.ModelService;
+    for (let node of root.getChildren()) {
+        if (node.view && node.type === 'area') {
+            if (!walker) {
+                walker = modelService.createTreeWalker(node);
+            } else {
+                modelService.setWalkerRoot(walker, node);
             }
+            values = modelService.getElementsDataFromWalker(walker, '编辑者');
+            callback(values, node)
         }
-        resolve()
-    })
+    }
 }