Browse Source

电子病历会诊和手术快速创建

DESKTOP-0GD05B0\Administrator 2 years ago
parent
commit
e2d3f329a4

+ 17 - 2
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrAuxiliaryTools.vue

@@ -10,7 +10,9 @@
       <el-button @click="open(1)" type="primary">护理</el-button>
       <el-button @click="open(2)" type="warning">检验</el-button>
       <el-button @click="open(3)" type="info">检查</el-button>
-      <el-button @click="open(4)" type="info">会诊</el-button>
+      <hr/>
+      <el-button @click="open(4)" type="success" plain>会诊</el-button>
+      <el-button @click="open(5)" type="primary" plain>手术</el-button>
     </template>
   </el-popover>
   <el-drawer v-model="drawer"
@@ -35,6 +37,8 @@
         :end="end"/>
     <emr-inspect v-if="index === 3"/>
     <emr-group-consultation v-if="index === 4"/>
+    <emr-operation v-if="index === 5" :emr-data="props.emrData"
+                   @to-fill-in-data="toFillInData"/>
   </el-drawer>
 
 </template>
@@ -43,19 +47,25 @@
 import EmrOrderList from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOrderList.vue";
 import {defineProps, onMounted, ref} from 'vue'
 import EmrYzTemperature from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue";
-import {patInfo} from './emr-tools-store'
+import {emrData, patInfo} from './emr-tools-store'
 import EmrInspect from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrInspect.vue";
 import {getServerDateApi} from "@/api/public-api";
 import {formatDate} from "@/utils/date";
 import InspectionReportIndex from "@/views/examination/InspectionReportIndex.vue";
 import EmrGroupConsultation from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrGroupConsultation.vue";
+import EmrOperation from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue";
 
 const props = defineProps({
   patInfo: {
     type: Object
+  },
+  emrData: {
+    type: Object
   }
 })
 
+const emits = defineEmits(['toFillInData'])
+
 const end = ref('')
 const start = ref('')
 
@@ -67,6 +77,11 @@ onMounted(async () => {
   start.value = formatDate(props.patInfo.admissDate)
 })
 
+const toFillInData = (data) => {
+  emits('toFillInData', data)
+  close()
+}
+
 const index = ref(-1)
 const open = (val) => {
   drawer.value = true

+ 14 - 20
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrGroupConsultation.vue

@@ -10,21 +10,22 @@
                          @row-click="rowClick"
                          :columns="rightColumns"/>
           </div>
-
           <div class="right_main">
             <el-button @click="copyClick">复制</el-button>
-            <div>
-              病情简介: {{ hzData.reqComment }}
-            </div>
-            <div>
-              目前主要诊断: {{ hzData.hzZd }}
-            </div>
-            <div>
-              会诊目的: {{ hzData.hzMd }}
-            </div>
-            <div>
-              会诊意见: {{ hzData.hzComment }}
-            </div>
+            <el-form>
+              <el-form-item label="病情简介:">
+                <el-input v-model="hzData.reqComment" :rows="3" type="textarea"/>
+              </el-form-item>
+              <el-form-item label="目前主要诊断:">
+                <el-input v-model="hzData.hzZd" :rows="3" type="textarea"/>
+              </el-form-item>
+              <el-form-item label="会诊目的:">
+                <el-input v-model="hzData.hzMd" :rows="3" type="textarea"/>
+              </el-form-item>
+              <el-form-item label="会诊意见:">
+                <el-input v-model="hzData.hzComment" :rows="3" type="textarea"/>
+              </el-form-item>
+            </el-form>
           </div>
         </div>
       </template>
@@ -129,12 +130,5 @@ onMounted(() => {
 <style scoped lang="scss">
 .right_main {
   flex: 1;
-
-  div {
-    margin: 5px 5px;
-    padding: 5px;
-    border: 1px solid #000;
-    border-radius: 5px;
-  }
 }
 </style>

+ 44 - 0
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue

@@ -0,0 +1,44 @@
+<template>
+  <div style="height: 5%"></div>
+  <div style="height: 95%">
+    <el-auto-resizer>
+      <template #default="{ height, width }">
+        <xc-table-v3 :data="props.emrData['手术']" :height="height">
+          <el-table-column label="操作" fixed="left" width="50">
+            <template #default="{row}">
+              <el-button text @click="emits('to-fill-in-data',row)" type="primary">填充</el-button>
+            </template>
+          </el-table-column>
+          <el-table-column label="手术日期" prop="手术日期"/>
+          <el-table-column label="拟行手术名称" prop="拟行手术名称"/>
+          <el-table-column label="术前诊断名称" prop="术前诊断名称"/>
+          <el-table-column label="一助" prop="第一助手名称" width="90"/>
+          <el-table-column label="二助" prop="第二助手名称" width="90"/>
+          <el-table-column label="三助" prop="第三助手名称" width="90"/>
+          <el-table-column label="麻醉方式名称" prop="麻醉方式名称"/>
+        </xc-table-v3>
+      </template>
+    </el-auto-resizer>
+  </div>
+</template>
+
+<script setup name='EmrOperation'>
+import XcTableV3 from "@/components/xiao-chan/xc-table-v3/XcTableV3.vue";
+
+const props = defineProps({
+  emrData: {
+    type: Object
+  }
+})
+
+const emits = defineEmits(['to-fill-in-data'])
+
+onMounted(() => {
+  console.log(props.emrData['手术'])
+})
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 1 - 0
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/emr-tools-store.ts

@@ -1,3 +1,4 @@
 import {ref} from 'vue'
 
 export const patInfo = ref()
+export const emrData = ref()