瀏覽代碼

住院医生优化

DESKTOP-0GD05B0\Administrator 2 年之前
父節點
當前提交
dd58047465

+ 23 - 0
src/api/zhu-yuan-yi-sheng/emr-control-rule.js

@@ -16,3 +16,26 @@ export function getAvailableObjects() {
         method: 'get',
     })
 }
+
+export function accessToYourOwnPatientMedicalRecords() {
+    return request({
+        url: url + '/accessToYourOwnPatientMedicalRecords',
+        method: 'get',
+    })
+}
+
+export function getRuleList() {
+    return request({
+        url: url + '/getRuleList',
+        method: 'get',
+    })
+}
+
+export function switchQualityControl(id, offOn) {
+    return request({
+        url: url + '/switchQualityControl',
+        method: 'get',
+        params: {id, offOn}
+    })
+}
+

+ 48 - 0
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/emrControlRule.vue

@@ -0,0 +1,48 @@
+<template>
+  <xc-dialog-v2 v-model="dialog" title="病历质控" width="80%">
+    <xc-table :local-data="patientList" :height="400">
+      <el-table-column label="住院号" prop="inpatientNo">
+        <template #default="{row}">
+          <span>
+            {{ row.inpatientNo + '_' + row.admissTimes }}
+          </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="姓名" prop="name"/>
+      <el-table-column label="科室" prop="deptName"/>
+      <el-table-column label="提示" prop="promptStatements"/>
+      <el-table-column label="质控" prop="message"/>
+    </xc-table>
+
+  </xc-dialog-v2>
+</template>
+
+<script setup name='emrControlRule'>
+import {accessToYourOwnPatientMedicalRecords} from "@/api/zhu-yuan-yi-sheng/emr-control-rule";
+import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
+import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
+
+
+const patientList = ref([])
+const dialog = ref(false)
+
+onMounted(() => {
+
+  accessToYourOwnPatientMedicalRecords().then((res) => {
+    console.log(res)
+    patientList.value = res
+    if (patientList.value.length > 0) {
+      dialog.value = true
+    }
+  })
+
+})
+
+// 0394603
+
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 1 - 2
src/router/modules/dashboard.js

@@ -9,8 +9,7 @@ const route = [
         meta: {title: '登录', hideTabs: true},
     },
     {
-        path: '/emrEditor',
-        name: 'emrEditor',
+        path: '/myEmrEditor/:pat?',
         component: createNameComponent(() => import('@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/Home.vue')),
         hideMenu: true,
         meta: {title: '电子病历', hideTabs: true},

+ 0 - 2
src/utils/websocket.js

@@ -8,8 +8,6 @@ const socketUrl = import.meta.env.VITE_SOCKET_URL
 let webSocket = null
 let globalCallback = new Map()
 
-let unwantedSocket = ['emrEditor']
-
 export function closeWebSocket() {
     store.commit('user/closeSid')
     if (webSocket !== null) {

+ 5 - 12
src/views/hospitalization/zhu-yuan-yi-sheng/Home.vue

@@ -1,5 +1,6 @@
 <template>
   <emr-dual-screen v-if="isOpenDualScreen"/>
+  <emr-control-rule/>
   <div style="color:#000;">
     <div class="yz__header">
       <huan-zhe-xin-xi
@@ -36,7 +37,7 @@
 
 <script name="Home" setup>
 import store from '@/store'
-import {computed, ref, watch} from "vue";
+import {computed, ref} from "vue";
 import HuanZheXinXi from "@/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue";
 import router from "@/router";
 import {
@@ -57,6 +58,7 @@ import {xcMessage} from "@/utils/xiaochan-element-plus";
 import {isDev} from "@/utils/public";
 import EmrDualScreen from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/EmrDualScreen.vue";
 import {getEmrUrl} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
+import EmrControlRule from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/emrControlRule.vue";
 
 const windowSize = computed(() => {
   return store.state.app.windowSize
@@ -99,18 +101,9 @@ let pathList = $ref([
           state: 1
         };
         let te = JSON.stringify(query)
-        let routeData = router.resolve({
-          name: 'emrEditor',
-          query: {
-            pat: window.btoa(te)
-          },
-        })
-        window.open(routeData.href, '_blank');
+        window.open(window.location.origin + '/myEmrEditor/' + window.btoa(te), '_blank');
       } else {
-        let routeData = router.resolve({
-          name: 'emrEditor',
-        })
-        window.open(routeData.href, '_blank');
+        window.open(window.location.origin + '/myEmrEditor/', '_blank');
       }
     }
   },

+ 49 - 6
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/EmrControlRule.vue

@@ -1,12 +1,29 @@
 <template>
-  <xc-table :local-data="data" :height="400">
-
+  <xc-table :local-data="data" :height="40">
+    <el-table-column label="质控名称" prop="name"/>
+    <el-table-column label="时效(小时)" prop="prescription"/>
+    <el-table-column label="描述" prop="promptStatement"/>
+    <el-table-column label="是否开启" prop="offOrOnRule">
+      <template #default="{row}">
+        <el-switch
+            v-model="row.offOrOnRule"
+            :active-value="1"
+            :inactive-value="0"
+            @change="onOff(row.id,row.offOrOnRule)"
+            active-text="开启"
+            inactive-text="关闭"/>
+      </template>
+    </el-table-column>
+    <el-table-column label="操作">
+      <template #default="{row}">
+        <el-button type="danger" @click="deleteQualityControl(row.id)">删除</el-button>
+        <el-button type="warning">修改</el-button>
+      </template>
+    </el-table-column>
   </xc-table>
 
   <xc-dialog-v2 v-model="dialog"
                 title="病历时效限制">
-
-
     <el-form :label-width="120">
       <el-form-item label="入参数据元:">
         <el-select v-model="ruleForm.sql" @change="selectChange" ref="selectRef">
@@ -84,10 +101,16 @@ import XcDialogV2 from "@/components/xiao-chan/dialog/XcDialogV2.vue";
 import {
   getEmrTree,
 } from "@/api/zhu-yuan-yi-sheng/emr-patient";
-import {addRule, getAvailableObjects} from '@/api/zhu-yuan-yi-sheng/emr-control-rule'
+import {
+  addRule,
+  getAvailableObjects,
+  getRuleList,
+  switchQualityControl
+} from '@/api/zhu-yuan-yi-sheng/emr-control-rule'
+import {ElMessageBox} from "element-plus";
 
 const data: Ref<Array<any>> = ref([])
-const dialog: Ref<boolean> = ref(true)
+const dialog: Ref<boolean> = ref(false)
 const emrTree = ref([])
 const ruleDataElement: Ref<Array<any>> = ref([])
 
@@ -191,11 +214,31 @@ const confirm = () => {
 
 const value: Ref<Array<string>> = ref([])
 
+
+const onOff = async (id, val) => {
+  await switchQualityControl(id, val)
+}
+
+const deleteQualityControl = (val) => {
+  ElMessageBox.confirm('是否要删除该质控!', '提示', {
+    type: 'warning'
+  }).then((res) => {
+    console.log(val)
+  }).catch((e) => {
+
+  })
+}
+
 onMounted(() => {
   getEmrTree('hosp').then((res) => {
     emrTree.value = res.all[0].children
   })
 
+  getRuleList().then((res) => {
+    console.log(res)
+    data.value = res
+  })
+
   getAvailableObjects().then((res) => {
     ruleDataElement.value = res
     console.log(res)

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

@@ -76,20 +76,15 @@ const disPatients = async () => {
   }
   query.value.state = 2
   let te = JSON.stringify(query.value)
-  await router.push({
-    name: 'emrEditor',
-    query: {
-      pat: window.btoa(te)
-    }
-  })
+  await router.push('/myEmrEditor/' + window.btoa(te))
   await routerFunc()
 }
 
 // 解析路由数据
 const routerFunc = async () => {
   show = false
-  if (router.currentRoute.value.query.pat) {
-    resolveRoute(router.currentRoute.value.query.pat)
+  if (router.currentRoute.value.params.pat) {
+    resolveRoute(router.currentRoute.value.params.pat)
     if (query.value.state !== 2) {
       patientInfo = await getPatientInfo(query.value.patNo);
     }
@@ -133,12 +128,7 @@ const allPatientsInTheHospital = async () => {
   }
   query.value.state = 3
   let te = JSON.stringify(query.value)
-  await router.push({
-    name: 'emrEditor',
-    query: {
-      pat: window.btoa(te)
-    }
-  })
+  await router.push('/myEmrEditor/' + window.btoa(te))
   await routerFunc()
 }
 
@@ -158,12 +148,7 @@ const listRowClick = async (val) => {
     state: 4
   }
   let te = JSON.stringify(temp)
-  await router.push({
-    name: 'emrEditor',
-    query: {
-      pat: window.btoa(te)
-    }
-  })
+  await router.push('/myEmrEditor/' + window.btoa(te))
   await routerFunc()
 }
 

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

@@ -123,12 +123,7 @@ export function getEmrUrl(patNo, times, state = 3) {
         maxTimes: 1
     }
     let temp = JSON.stringify(query)
-    return router.resolve({
-        name: 'emrEditor',
-        query: {
-            pat: window.btoa(temp)
-        }
-    }).href
+    return 'http://webhis.thyy.cn:8080/myEmrEditor/' + window.btoa(temp)
 }
 
 /**
@@ -145,12 +140,7 @@ export function getInEmrUrl(patNo, times) {
         maxTimes: 1
     }
     let temp = JSON.stringify(query)
-    return router.resolve({
-        name: 'emrEditor',
-        query: {
-            pat: window.btoa(temp)
-        }
-    }).href
+    return 'http://webhis.thyy.cn:8080/myEmrEditor/' + window.btoa(temp)
 }
 
 let EMR_COPY = 'emrCopy'

+ 1 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/YiZhuLuRu.vue

@@ -69,6 +69,7 @@
 
     <!--  合理用药窗口  -->
     <rational-drug-use-window ref="reasonableRef" @submit="confirmOrder"/>
+
   </div>
 
 </template>