浏览代码

Merge branch 'master' of https://172.16.32.165/lighter/vue-intergration-platform

XU 9 月之前
父节点
当前提交
1d77473fac

+ 2 - 2
src/api/dictionary/yi-bao-ke-shi-pi-pei.js

@@ -15,10 +15,10 @@ export function getYiBaoKeShi() {
   })
 }
 
-export function piPeiKeShi(benYuanCode, yiBaoCode, flag) {
+export function piPeiKeShi(benYuanCode, yiBaoCode, yiBaoName, flag) {
   return request({
     url: '/yiBaoKeShi/piPeiKeShi',
     method: 'get',
-    params: { benYuanCode, yiBaoCode, flag },
+    params: { benYuanCode, yiBaoCode, yiBaoName, flag },
   })
 }

+ 8 - 0
src/api/medical-insurance/si-inpatient.js

@@ -80,6 +80,14 @@ export function dischargeProcessing(data) {
   })
 }
 
+export function timeoutSettlement(data) {
+  return request({
+    url: '/siZy/timeoutSettlement',
+    method: 'post',
+    data,
+  })
+}
+
 export function revokeSettlement(data) {
   return request({
     url: '/siZy/revokeSettlement',

+ 6 - 9
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrElectrocardiogram.vue

@@ -1,20 +1,17 @@
 <script setup>
 const props = defineProps({
   patNo: String,
-})
+});
 
 const src = computed(() => {
-  return `http://172.16.32.192/website/Service/Search.aspx?id=${props.patNo}`
-})
-
+  return `http://ecg.thyy.cn/website/Service/Search.aspx?id=${props.patNo}`;
+});
 </script>
 
 <template>
-  <div style="height: 100%;width: 100%">
-    <iframe :src="src" width="100%" height="100%"/>
+  <div style="height: 100%; width: 100%">
+    <iframe :src="src" width="100%" height="100%" />
   </div>
 </template>
 
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 11 - 14
src/views/dictionary/YiBaoKeShiPiPei.vue

@@ -163,24 +163,21 @@ const keShiPiPeiClick = () => {
           dangerouslyUseHTMLString: true,
           type: 'warning',
         }
-    )
-        .then(() => {
-          piPeiKeShi(benYuanRadio.value.code, yiBaoRadio.value.code, 1).then((res) => {
-            for (let i = 0; i < benYuanKeShiTable.value.length; i++) {
-              if (benYuanKeShiTable.value[i].code === benYuanRadio.value.code) {
-                benYuanKeShiTable.value.splice(i, 1)
-              }
-            }
-            chongZhi()
-          })
-        })
-        .catch((e) => {
-        })
+    ).then(() => {
+      piPeiKeShi(benYuanRadio.value.code, yiBaoRadio.value.code, yiBaoRadio.value.name, 1).then((res) => {
+        for (let i = 0; i < benYuanKeShiTable.value.length; i++) {
+          if (benYuanKeShiTable.value[i].code === benYuanRadio.value.code) {
+            benYuanKeShiTable.value.splice(i, 1)
+          }
+        }
+        chongZhi()
+      })
+    }).catch((e) => {})
   }
 }
 
 const shanChuPiPei = (index, row) => {
-  piPeiKeShi(row.code, row.siCaty, 2).then((res) => {
+  piPeiKeShi(row.code, row.siCaty, row.siCaty,2).then((res) => {
     benYuanKeShiTable.value.splice(index, 1)
   })
 }

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

@@ -505,7 +505,7 @@ const emrEventProxy = new Proxy(emrEvent, {
       }
       const fn = target[p];
       try {
-        fn(...val);
+        return fn(...val);
       } finally {
         const currentPlugins = emrStore.store.currentPlugins;
         currentPlugins?.event?.[p] && currentPlugins?.event?.[p](...val);

+ 38 - 36
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/index.vue

@@ -4,63 +4,65 @@ import CyTabPane from "@/components/cy/tabs/src/CyTabPane.vue";
 import {
   AuditType,
   emrAuditRootContextKey,
-  useEmrAuditV2
+  useEmrAuditV2,
 } from "./useEmrAudit";
-import AuditRecord
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/AuditRecord.vue";
+import AuditRecord from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/AuditRecord.vue";
 import {
   emrMitt,
-  IframeTabs
+  IframeTabs,
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
-import SendAudit
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/SendAudit.vue";
-import {getLinkQuality} from "@/api/emr/emr-suggestion";
-import AuditHistory
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/AuditHistory.vue";
-import {listIsBlank} from "@/utils/blank-utils";
+import SendAudit from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/SendAudit.vue";
+import { getLinkQuality } from "@/api/emr/emr-suggestion";
+import AuditHistory from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-audit/AuditHistory.vue";
+import { listIsBlank } from "@/utils/blank-utils";
+import { BizException, ExceptionEnum } from "@/utils/BizException";
 
-const store = useEmrAuditV2()
+const store = useEmrAuditV2();
 
-emrMitt.on('auditV2', (data) => {
-  if (typeof data === 'undefined') {
+emrMitt.on("auditV2", data => {
+  if (typeof data === "undefined") {
     store.state.currentEmrInfo = {
-      emrId: null
-    }
-    store.state.auditTemplate = []
-    emrMitt.emit('setShowIframe', IframeTabs.正在编辑)
+      emrId: null,
+    };
+    store.state.auditTemplate = [];
+    emrMitt.emit("setShowIframe", IframeTabs.正在编辑);
   } else {
     store.state.currentEmrInfo = data;
-    store.queryCurrentAudit()
 
-    getLinkQuality(data.emrCategoryCode).then(res => {
-      store.state.auditTemplate = res
-      if (listIsBlank(res)) {
-        emrMitt.emit('setShowIframe', IframeTabs.正在编辑)
-      }
-    }).catch(() => {
-      emrMitt.emit('setShowIframe', IframeTabs.正在编辑)
-    })
-  }
-})
+    if (store.state.currentEmrInfo.emrId == null) {
+      BizException(ExceptionEnum.MESSAGE_ERROR, "请刷新页面或重新打开病历。");
+    }
 
+    store.queryCurrentAudit();
+
+    getLinkQuality(data.emrCategoryCode)
+      .then(res => {
+        store.state.auditTemplate = res;
+        if (listIsBlank(res)) {
+          emrMitt.emit("setShowIframe", IframeTabs.正在编辑);
+        }
+      })
+      .catch(() => {
+        emrMitt.emit("setShowIframe", IframeTabs.正在编辑);
+      });
+  }
+});
 
 provide(emrAuditRootContextKey, {
-  store: store
-})
+  store: store,
+});
 </script>
 
 <template>
-  <CyTabs height="100%"
-          type="idea"
-          v-model="store.tabsName.value">
+  <CyTabs height="100%" type="idea" v-model="store.tabsName.value">
     <CyTabPane label="记录" :name="AuditType.记录">
-      <AuditRecord/>
+      <AuditRecord />
     </CyTabPane>
     <CyTabPane label="审核" :name="AuditType.审核">
-      <SendAudit/>
+      <SendAudit />
     </CyTabPane>
     <CyTabPane label="历史" :name="AuditType.历史">
-      <AuditHistory/>
+      <AuditHistory />
     </CyTabPane>
   </CyTabs>
 </template>

+ 17 - 1
src/views/medical-insurance/inpatient/DiscSettlement.vue

@@ -9,6 +9,12 @@
       <el-button type="warning" icon="Odometer" :disabled="!isAdmin" @click="cancelDismiss">取消出院结算</el-button>
       <el-button v-if="isKqk" type="danger" icon="Tickets" @click="makeDismissOrder">生成出院医嘱</el-button>
       <el-button type="danger" @click="rejectNotGeneratedMedicationListClick">撤销未生成的药单</el-button>
+      <el-button
+          plain
+          type="danger"
+          title="医保出院结算时,若提示【服务提供者后端服务响应超时】,可使用此功能进行出院结算。"
+          @click="executeTimeoutSettlement"
+      >超时结算</el-button>
     </div>
 
     <el-divider content-position="left" class="el-divider_shorter">
@@ -315,7 +321,7 @@ import {powersiPreDischarge, dismissCalculate, getActOrders, selfPayDismiss} fro
 import {formatDatetime, getDatetime} from '@/utils/date'
 import {nullPatient} from '@/utils/validate'
 import {ElMessage, ElMessageBox} from 'element-plus'
-import {dischargeProcessing, revokeSettlement} from '@/api/medical-insurance/si-inpatient'
+import {dischargeProcessing, revokeSettlement, timeoutSettlement} from '@/api/medical-insurance/si-inpatient'
 import {getSiPatInfo} from '@/api/medical-insurance/si-query'
 import {getDetailConventions, getRoughConventions, retractConventions} from '@/api/inpatient/conventions'
 import {getGreatestRole} from '@/utils/permission'
@@ -706,6 +712,16 @@ const yibaoDismiss = () => {
   });
 }
 
+const executeTimeoutSettlement = () => {
+  timeoutSettlement(patient.value).then(() => {
+    ElMessageBox.alert(dismissBtnText.value + '成功。', '提示', {
+      type: 'success',
+    }).then(() => {
+      afterDismiss()
+    })
+  })
+}
+
 const afterDismiss = () => {
   if (patient.value.midSetl) {
     patient.value.ledgerSn += 1