浏览代码

手术申请中新增一个情况

xiaochan 1 年之前
父节点
当前提交
4d988a7b1f

+ 4 - 16
src/components/zhu-yuan-yi-sheng/shou-shu-shen-qing/BianJiShouShu.vue

@@ -29,15 +29,9 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="情况">
-          <el-switch
-              v-model="props.data.urgentClinicFlag"
-              :active-value="1"
-              :inactive-value="0"
-              active-color="#13ce66"
-              active-text="急诊"
-              inactive-color="#ff4949"
-              inactive-text="择期">
-          </el-switch>
+          <el-select v-model="props.data.urgentClinicFlag">
+            <XcElOption :data="surgicalSituation"/>
+          </el-select>
         </el-form-item>
       </el-col>
       <el-col :span="12">
@@ -206,6 +200,7 @@ import XEUtils from 'xe-utils'
 import {xcMessage} from "@/utils/xiaochan-element-plus";
 import {isDev} from "@/utils/public";
 import XcComboGridV2 from "@/components/xiao-chan/combo-grid/XcComboGridV2.vue";
+import {shouShuDengJi, surgicalSituation} from "@/data/operation";
 
 const props = defineProps({
   anestheticMode: {
@@ -294,13 +289,6 @@ const buildOrderName = () => {
       `拟于${getFormatDatetime(props.data.opDatetime, 'YYYY-MM-DD HH:mm')}在${props.data.hocusCodeName === null ? '' : props.data.hocusCodeName}下行${props.data.opName}`
 }
 
-const shouShuDengJi = [
-  {code: 1, name: '四级', value: 4},
-  {code: 2, name: '三级', value: 3},
-  {code: 3, name: '二级', value: 2},
-  {code: 4, name: '一级', value: 1},
-]
-
 const gradeToCode = (val) => {
   return XEUtils.filter(shouShuDengJi, (item) => {
     return item.value === val

+ 87 - 120
src/components/zhu-yuan-yi-sheng/shou-shu-shen-qing/DaYingShouShuShengQingDan.vue

@@ -7,133 +7,89 @@
     <div id="daYing">
       <div style="width:393pt;height:760px;background-color: white;font-size: 13px">
         <div style="height: 20px"></div>
-        <h1 style="text-align: center;font-size: 18px ">长沙泰和医院</h1>
-        <div style=" margin-left: 40px"><span>申请单号:{{ data.recordId }}</span></div>
-        <div style="text-align: center;width: 100%;margin-top: -15px;font-size: 14px">手术申请单</div>
-        <div style=" margin-left: 40px"><span>病房:{{ data.deptCodeName }}</span></div>
-        <div style="text-align: center;width: 100%;margin-top: -15px;font-size: 14px">
-          急诊:<span v-show="data.urgentClinicFlag === '1'">√</span>
-        </div>
+        <table style="width: 100%;table-layout: fixed;">
+          <thead style="text-align: center;">
+          <tr>
+            <th colspan="3">长沙泰和医院</th>
+          </tr>
+          <tr>
+            <th style="font-size: 14px" colspan="3">
+              手术申请单
+            </th>
+          </tr>
+          </thead>
+          <tbody>
+          <tr>
+            <td>申请单号:{{ data.recordId }}</td>
+            <td>病房:{{ data.deptCodeName }}</td>
+            <td>情况:{{ situationFunc() }}</td>
+          </tr>
+          </tbody>
+        </table>
         <!--    患者信息    -->
         <div style="border: 1px solid #000;margin: 5px;height: 550px">
 
-          <div class="tanXingHeZiHeng">
-            <div class="wen-zi">
-              <div>住院号:</div>
-              <div>{{ data.inpatientNo }}</div>
-            </div>
-
-            <div class="wen-zi">
-              <div>床号:</div>
-              <div>{{ data.bedNo }}</div>
-            </div>
-
-            <div class="wen-zi">
-              <div>姓名:</div>
-              <div>{{ data.patientName }}</div>
-            </div>
-
-            <div class="wen-zi">
-              <div>性别:</div>
-              <div>{{ cptSex(data.sex) }}</div>
-            </div>
-
-            <div class="wen-zi">
-              <div>年龄:</div>
-              <div>{{ data.age }}</div>
-            </div>
-          </div>
-
-          <div class="wen-zi">
-            <div>术前诊断:</div>
-            <div>{{ data.diagBeforeOp }}</div>
-          </div>
-
-          <div class="wen-zi">
-            <div>手术名称:</div>
-            <div>{{ data.opName }}</div>
-          </div>
-
-          <div class="wen-zi">
-            <div>麻醉方法:</div>
-            <div>{{ data.hocusName }}</div>
-          </div>
-
-          <div class="tanXingHeZiHeng" style="border-bottom: 1px solid #000">
-            <div class="wen-zi">
-              <div>手术等级(术前):</div>
-              <div>{{ data.opScaleName }}</div>
-            </div>
-
-            <div class="wen-zi">
-              <div>手术等级(术后):</div>
-              <div style="width: 160px;">
-
-              </div>
-            </div>
-          </div>
-          <div class="wen-zi">
-            <div>主刀医生:</div>
-            <div>{{ data.doctorZdName }}</div>
-          </div>
-
-          <div class="tanXingHeZiHeng2">
-            <div class="wen-zi">
-              <div>第一助手:</div>
-              <div style="width: 120px">{{ data.doctor1Name }}</div>
-            </div>
-            <div class="wen-zi">
-              <div>第二助手:</div>
-              <div style="width: 120px">{{ data.doctor2Name }}</div>
-            </div>
-          </div>
-
-          <div class="tanXingHeZiHeng2">
-            <div class="wen-zi">
-              <div>第三助手:</div>
-              <div style="width: 120px">{{ data.doctor3Name }}</div>
-            </div>
-            <div class="wen-zi">
-              <div>麻醉医生:</div>
-              <div style="width: 120px">{{ data.doctorMzName }}</div>
-            </div>
+          <table style=" width: 100%; font-size: 12px">
+            <tr>
+              <td>住院号:{{ data.inpatientNo }}</td>
+              <td>床号:{{ data.bedNo }}</td>
+              <td>姓名:{{ data.patientName }}</td>
+              <td>性别:{{ cptSex(data.sex) }}</td>
+              <td>年龄:{{ data.age }}</td>
+            </tr>
+          </table>
+
+          <table style="width: 100%; border-collapse:separate; border-spacing:5px 6px;">
+            <tr>
+              <td>术前诊断:{{ data.diagBeforeOp }}</td>
+            </tr>
+            <tr>
+              <td>手术名称:{{ data.opName }}</td>
+            </tr>
+            <tr>
+              <td>麻醉方式:{{ data.hocusName }}</td>
+            </tr>
+          </table>
+
+          <table style="width: 100%; border-bottom: 1px solid #000; margin-top: 5px">
+            <tr>
+              <td>术前等级:{{ data.opScaleName }}</td>
+              <td>术后等级:</td>
+            </tr>
+          </table>
+
+          <div style="width: 100%; margin: 4px 0 0 5px;">
+            主刀医生:{{ data.doctorZdName }}
           </div>
 
-          <div class="tanXingHeZiHeng2" style="border-bottom: 1px solid #000">
-            <div class="wen-zi">
-              <div>器械护士:</div>
-              <div style="width: 120px">{{ data.nurseQxName }}</div>
-            </div>
-            <div class="wen-zi">
-              <div>巡回护士:</div>
-              <div style="width: 120px">{{ data.nurseXhName }}</div>
-            </div>
-          </div>
-
-          <div class="tanXingHeZiHeng2">
-            <div class="wen-zi">
-              <div>申请日期:</div>
-              <div style="width: 120px">{{ data.applyDate }}</div>
-            </div>
-            <div class="wen-zi">
-              <div>手术时间:</div>
-              <div style="width: 120px">{{ data.opDatetime }}</div>
-            </div>
-          </div>
-
-          <div class="tanXingHeZiHeng2" style="border-bottom: 1px solid #000">
-            <div class="wen-zi">
-              <div>住院医师:</div>
-              <div style="width: 120px">{{ data.referPhysicianName }}</div>
-            </div>
-            <div class="wen-zi">
-              <div>科主任:</div>
-              <div style="width: 120px">{{ data.deptDirectorName }}</div>
-            </div>
-          </div>
+          <table style="width: 100%;border-collapse:separate; border-spacing:5px 6px;border-bottom: 1px solid #000">
+            <tr>
+              <td>第一助手:{{ data.doctor1Name }}</td>
+              <td>第二助手:{{ data.doctor2Name }}</td>
+            </tr>
+            <tr>
+              <td>第三助手:{{ data.doctor3Name }}</td>
+              <td>麻醉医生:{{ data.doctorMzName }}</td>
+            </tr>
+            <tr>
+              <td>器械护士:{{ data.nurseQxName }}</td>
+              <td>巡回护士:{{ data.nurseXhName }}</td>
+            </tr>
+          </table>
+
+          <table style="width: 100%;border-collapse:separate; border-spacing:5px 6px;border-bottom: 1px solid #000">
+            <tr>
+              <td>申请日期:{{ data.applyDate }}</td>
+              <td>手术时间:{{ data.opDatetime }}</td>
+            </tr>
+            <tr>
+              <td>住院医师:{{ data.referPhysicianName }}</td>
+              <td>科主任:{{ data.deptDirectorName }}</td>
+            </tr>
+          </table>
 
           <div>
-            <div style="margin: 10px;">附注说明(包括传染疾病类型注明等):</div>
+            <div style="margin: 10px;">附注说明(包括传染疾病类型注明等):</div>
             <div style="width: 480px;height: 120px; margin:10px;overflow: hidden">
               {{ data.remark }}
             </div>
@@ -150,6 +106,9 @@ import {computed, onMounted, ref} from "vue";
 import {cptSex} from "@/utils/computed";
 import {getLodop, initLodop} from "@/utils/c-lodop";
 import {ElMessage} from "element-plus";
+import XEUtils from "xe-utils";
+import findValueByListCode from "@/utils/findValueByListCode";
+import {surgicalSituation} from "@/data/operation";
 
 const props = defineProps({
   width: {
@@ -173,6 +132,14 @@ const zhiZhang = ref(2)
 const data = ref({})
 const css = '*{font-size:16px}.tanXingHeZiHeng{display:flex;justify-content:space-between;margin-top:3pt;padding:0 3.75pt}.tanXingHeZiHeng2{display:flex;margin-top:3pt;padding:0 3.75pt}.tanXingHeZiShu{display:flex;flex-direction:column}.wen-zi{display:flex;margin-top:3pt;margin-left:5px;height:25px}.wen-zi div:first-child{display:flex;flex-direction:row;justify-content:center;text-align:right}.wen-zi div:nth-child(2){margin-left:3pt;display:table}.ge-zi{display:table-column}'
 
+const situationFunc = () => {
+  if (XEUtils.isEmpty(data.value.urgentClinicFlag)) {
+    return '';
+  }
+
+  return findValueByListCode(surgicalSituation, data.value.urgentClinicFlag)
+}
+
 const daYing = () => {
   if (!data) {
     return ElMessage.error('请先选择患者')

+ 13 - 0
src/data/operation.js

@@ -0,0 +1,13 @@
+export const surgicalSituation = [
+    {code: '0', name: '择期'},
+    {code: '1', name: '急诊'},
+    {code: '2', name: '非计划'},
+]
+
+
+export const shouShuDengJi = [
+    {code: 1, name: '四级', value: 4},
+    {code: 2, name: '三级', value: 3},
+    {code: 3, name: '二级', value: 2},
+    {code: 4, name: '一级', value: 1},
+]

+ 28 - 0
src/utils/findValueByListCode.ts

@@ -0,0 +1,28 @@
+import XEUtils from "xe-utils";
+
+interface listArr {
+    code: string,
+    name: string
+}
+
+const findValueByListCode = (arr: any[] | listArr[],
+                             code: string | number,
+                             listCode: string = 'code',
+                             listValue: string = 'name'): string => {
+    if (XEUtils.isEmpty(arr)) {
+        return '';
+    }
+    if (!XEUtils.isArray(arr)) {
+        return '';
+    }
+
+    for (let i = 0, len = arr.length; i < len; i++) {
+        if (arr[i][listCode] === code) {
+            return arr[i][listValue];
+        }
+    }
+
+    return ''
+}
+
+export default findValueByListCode;

+ 4 - 6
src/views/hospitalization/zhu-yuan-yi-sheng/shou-shu-shen-qing/ShouShuShenQing.vue

@@ -92,9 +92,7 @@ import BianJiShouShu from "@/components/zhu-yuan-yi-sheng/shou-shu-shen-qing/Bia
 import {getRenYuan, getServerDateApi, maZuiFangShi} from "@/api/public-api";
 import SurgicalErrorInfo from "@/components/zhu-yuan-yi-sheng/shou-shu-shen-qing/SurgicalErrorInfo";
 import {BizException, ExceptionEnum} from "@/utils/BizException";
-import {getWindowSize} from "@/utils/window-size";
 import {isDev} from "@/utils/public";
-import sleep from "@/utils/sleep";
 
 const windowSize = computed(() => {
   return store.state.app.windowSize
@@ -248,7 +246,7 @@ const dianJiXinZhenShouShu = async () => {
     opName: '添加手术' + operationApplication.value.length,
     applyDate: await getServerDateApi(),
     opDatetime: '',
-    urgentClinicFlag: '',
+    urgentClinicFlag: '0',
     ssbc: '',
     diagBeforeCode: '',
     ybSelfFlag: '',
@@ -278,9 +276,9 @@ onMounted(() => {
   maZuiFangShi().then(res => {
     anestheticMode.value = res
   })
-  if (isDev) {
-    dianJiXinZhenShouShu()
-  }
+  // if (isDev) {
+  //   dianJiXinZhenShouShu()
+  // }
   getRenYuan('').then(res => {
     personnelList.value = res
   })