Browse Source

使用新的检验检查接口

lighter 1 year ago
parent
commit
b7ebb23fcd

+ 9 - 6
src/api/inspections/index.js

@@ -1,21 +1,24 @@
 import request from '../../utils/request'
 
-export function queryInspectionsIndex(data) {
+export function checkExamIndex(data) {
   return request({
-    url: '/inspections/queryInspectionsIndex',
+    url: '/inspections/checkExamIndex',
     method: 'post',
     data,
   })
 }
 
-export function queryInspectionDetail(orderId) {
+export function checkExamDetail(data) {
   return request({
-    url: '/inspections/queryInspectionDetail',
-    method: 'get',
-    params: { orderId },
+    url: '/inspections/checkExamDetail',
+    method: 'post',
+    data,
   })
 }
 
+
+
+
 export function fetchCovidExamData(data) {
   return request({
     url: '/covidExamReport/queryResult',

+ 205 - 194
src/components/medical-insurance/inspect/InspectionReport.vue

@@ -1,182 +1,196 @@
 <template>
-  <page-layer>
-    <template #aside>
-      <el-table :data="inspectionIndex" :height="tableHeight" stripe highlight-current-row
-                @row-click="queryDetail">
-        <el-table-column prop="ordr_CREATE_DATE" label="报告时间" width="130"></el-table-column>
-        <el-table-column prop="aply_CTNT" label="检验名称" width="170"></el-table-column>
+  <div class="layout_container layout-horizontal">
+    <aside class="layout_el-table">
+      <el-table
+          :data="inspectionIndex"
+          stripe highlight-current-row
+          @row-click="queryDetail"
+      >
+        <el-table-column prop="trscDate" label="报告时间" width="130"></el-table-column>
+        <el-table-column prop="examPurpose" label="检验名称" width="170"></el-table-column>
+        <el-table-column prop="reportType" label="报告类别" width="70"></el-table-column>
       </el-table>
-    </template>
-    <template #main>
-      <div id="reportDetail"
-           style="position: relative; width: 90%; height: 96%; padding: 0 30px; background-color: white">
-        <h3 style="width: 100%; text-align: center; font-weight: bold; height: 30px; line-height: 30px">
-          长沙泰和医院检查报告单</h3>
-        <div style="display: flex">
-          <div style="width: 25%">姓名:{{ inspectionDetail.inspectionHeader.ptnt_NAME }}</div>
-          <div style="width: 25%">性别:{{ filterSex(inspectionDetail.inspectionHeader.ptnt_SEX) }}</div>
-          <div style="width: 25%">
-            年龄:{{ inspectionDetail.inspectionHeader.ptnt_AGE }}
-            {{ filterAgeUnit(inspectionDetail.inspectionHeader.ptnt_AGE_UNIT) }}
+    </aside>
+    <div id="reportDetail" class="layout_main"
+         style="position: relative; width: 90%; height: max-content;
+          min-height: 96%; padding: 0 30px; background-color: white"
+    >
+      <h3 style="width: 100%; text-align: center; font-weight: bold; height: 30px; line-height: 30px">
+        长沙泰和医院检查报告单</h3>
+      <div style="display: flex">
+        <div style="width: 25%">姓名:{{ inspectionDetail.order.ptntName }}</div>
+        <div style="width: 25%">性别:{{ filterSex(inspectionDetail.order.ptntSex) }}</div>
+        <div style="width: 25%">
+          年龄:{{ inspectionDetail.order.ptntAge }}
+          {{ filterAgeUnit(inspectionDetail.order.ptntAgeUnit) }}
+        </div>
+        <div style="width: 25%">
+          {{ ptntType }}:
+          {{ inspectionDetail.order.ptntNo }}
+        </div>
+      </div>
+      <div style="display: flex">
+        <div style="width: 25%">科室:{{ inspectionDetail.order.deptName }}</div>
+        <div style="width: 25%">床号:{{ inspectionDetail.order.ptntBedNo }}</div>
+        <div style="width: 25%">标本类型:{{ inspectionDetail.order.smplName }}</div>
+        <div style="width: 25%">
+          <div>申请项目:{{ inspectionDetail.order.aplyCntn.substring(0, 13) }}</div>
+          <div>{{ inspectionDetail.order.aplyCntn.substring(13) }}</div>
+        </div>
+      </div>
+      <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+      <div v-if="reportType === '普通' || reportType === '外送'" >
+        <div style="display: inline-block; width: 49.7%; vertical-align: top">
+          <div style="display: flex">
+            <div style="width: 25%">检验项目</div>
+            <div style="width: 16.66%">结果</div>
+            <div style="width: 16.66%">单位</div>
+            <div style="width: 16.66%">说明</div>
+            <div style="width: 25%">参考值</div>
           </div>
-          <div style="width: 25%">
-            {{ ptntType }}:
-            {{ inspectionDetail.inspectionHeader.ptnt_NO }}
+          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+          <div v-for="(item, index) in inspectionDetail.items.slice(0, halfSize)"
+               :key="index"
+               style="display: flex">
+            <div style="width: 25%">
+              <div>{{ item.itmName.substring(0, 6) }}</div>
+              <div>{{ item.itmName.substring(6) }}</div>
+            </div>
+            <div style="width: 16.66%">
+              <div>{{ item.itmValue.substring(0, 6) }}</div>
+              <div>{{ item.itmValue.substring(6) }}</div>
+              <div>{{ item.itmStrValue.substring(0, 6) }}</div>
+              <div>{{ item.itmStrValue.substring(6) }}</div>
+            </div>
+            <div style="width: 16.66%">{{ item.itmUnit }}</div>
+            <div style="width: 16.66%">
+              <span v-html="getItemAlert(item.itmAlert, item.itmStrValue, item.itmValue)"></span>
+            </div>
+            <div style="width: 25%">{{ item.range }}</div>
           </div>
         </div>
-        <div style="display: flex">
-          <div style="width: 25%">科室:{{ inspectionDetail.inspectionHeader.dept_NAME }}</div>
-          <div style="width: 25%">床号:{{ inspectionDetail.inspectionHeader.ptnt_BED_NO }}</div>
-          <div style="width: 25%">标本类型:{{ inspectionDetail.inspectionHeader.smpl_NAME }}</div>
-          <div style="width: 25%">
-            <div>申请项目:{{ inspectionDetail.inspectionHeader.aply_CNTN.substring(0, 13) }}</div>
-            <div>{{ inspectionDetail.inspectionHeader.aply_CNTN.substring(13) }}</div>
+        <div style="display: inline-block; width: 49.7%; vertical-align: top">
+          <div style="display: flex">
+            <div style="width: 25%">检验项目</div>
+            <div style="width: 16.66%">结果</div>
+            <div style="width: 16.66%">单位</div>
+            <div style="width: 16.66%">说明</div>
+            <div style="width: 25%">参考值</div>
           </div>
+          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+          <div v-for="(item, index) in inspectionDetail.items.slice(halfSize)" :key="index"
+               style="display: flex">
+            <div style="width: 25%">
+              <div>{{ item.itmName.substring(0, 6) }}</div>
+              <div>{{ item.itmName.substring(6) }}</div>
+            </div>
+            <div style="width: 16.66%">
+              <div>{{ item.itmValue.substring(0, 6) }}</div>
+              <div>{{ item.itmValue.substring(6) }}</div>
+              <div>{{ item.itmStrValue.substring(0, 6) }}</div>
+              <div>{{ item.itmStrValue.substring(6) }}</div>
+            </div>
+            <div style="width: 16.66%">{{ item.itmUnit }}</div>
+            <div style="width: 16.66%">
+              <span v-html="getItemAlert(item.itmAlert, item.itmStrValue, item.itmValue)"></span>
+            </div>
+            <div style="width: 25%">{{ item.range }}</div>
+          </div>
+        </div>
+      </div>
+      <div v-if="reportType === '细菌'">
+        <div style="display: flex">
+          <div style="width: 25%">检验项目</div>
+          <div style="width: 75%">结果</div>
         </div>
         <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-        <div>
-          <div v-if="inspectionDetail.inspectionHeader.info_TYPE === '1'">
-            <div style="display: inline-block; width: 49.7%; vertical-align: top">
-              <div style="display: flex">
-                <div style="width: 25%">检验项目</div>
-                <div style="width: 16.66%">结果</div>
-                <div style="width: 16.66%">单位</div>
-                <div style="width: 16.66%">说明</div>
-                <div style="width: 25%">参考值</div>
-              </div>
-              <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-              <div v-for="(item, index) in inspectionDetail.inspectionItems.slice(0, halfSize)"
-                   :key="index" style="display: flex">
-                <div style="width: 25%">
-                  <div>{{ item.itm_NAME.substring(0, 6) }}</div>
-                  <div>{{ item.itm_NAME.substring(6) }}</div>
-                </div>
-                <div style="width: 16.66%">
-                  <div>{{ item.itm_VALUE.substring(0, 6) }}</div>
-                  <div>{{ item.itm_VALUE.substring(6) }}</div>
-                  <div>{{ item.itm_STR_VALUE.substring(0, 6) }}</div>
-                  <div>{{ item.itm_STR_VALUE.substring(6) }}</div>
-                </div>
-                <div style="width: 16.66%">{{ item.itm_UNIT }}</div>
-                <div style="width: 16.66%">
-                                    <span
-                                        v-html="getItemAlert(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)"></span>
-                </div>
-                <div style="width: 25%">{{ item.range }}</div>
-              </div>
+        <div style="margin: 0 30px; padding-bottom: 5px;" v-if="bacterias.length > 0"
+             v-for="(antibioticItem,index) in bacterias"
+             :style="index > 0 ? {borderTop: '1px dashed gray'} : {}">
+          <div style="display: flex;width: 49.7%;margin: 8px 0 4px 0">
+            <div style="width: 33.33%">{{ antibioticItem.type }}</div>
+            <div style="width: 60%">{{ antibioticItem.germName }}</div>
+          </div>
+          <div style="display: inline-block; width: 49.7%; vertical-align: top">
+            <div style="display: flex">
+              <div style="width: 33.33%">抗菌药物</div>
+              <div style="width: 33.33%">抗菌药物编码</div>
+              <div style="width: 16.66%">MIC值</div>
+              <div style="width: 16.66%">敏感性</div>
             </div>
-            <div style="display: inline-block; width: 49.7%; vertical-align: top">
-              <div style="display: flex">
-                <div style="width: 25%">检验项目</div>
-                <div style="width: 16.66%">结果</div>
-                <div style="width: 16.66%">单位</div>
-                <div style="width: 16.66%">说明</div>
-                <div style="width: 25%">参考值</div>
-              </div>
-              <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-              <div v-for="(item, index) in inspectionDetail.inspectionItems.slice(halfSize)" :key="index"
-                   style="display: flex">
-                <div style="width: 25%">
-                  <div>{{ item.itm_NAME.substring(0, 6) }}</div>
-                  <div>{{ item.itm_NAME.substring(6) }}</div>
-                </div>
-                <div style="width: 16.66%">
-                  <div>{{ item.itm_VALUE.substring(0, 6) }}</div>
-                  <div>{{ item.itm_VALUE.substring(6) }}</div>
-                  <div>{{ item.itm_STR_VALUE.substring(0, 6) }}</div>
-                  <div>{{ item.itm_STR_VALUE.substring(6) }}</div>
-                </div>
-                <div style="width: 16.66%">{{ item.itm_UNIT }}</div>
-                <div style="width: 16.66%">
-                                    <span
-                                        v-html="getItemAlert(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)"></span>
-                </div>
-                <div style="width: 25%">{{ item.range }}</div>
+            <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+            <div style="display: flex"
+                 v-for="(bac, index) in antibioticItem.antiList.slice(0, antibioticItem.halfBacSize)"
+                 :key="index">
+              <div style="width: 33.33%">
+                <div>{{ bac.antiNameCn.substring(0, 6) }}</div>
+                <div>{{ bac.antiNameCn.substring(6) }}</div>
               </div>
+              <div style="width: 33.33%">{{ bac.antiAbb }}</div>
+              <div style="width: 16.66%">{{ bac.antiMic }}</div>
+              <div style="width: 16.66%">{{ bac.antiValue }}</div>
             </div>
           </div>
-          <div v-if="inspectionDetail.inspectionHeader.info_TYPE === '2'">
+          <div style="display: inline-block; width: 47%; vertical-align: top">
             <div style="display: flex">
-              <div style="width: 25%">检验项目</div>
-              <div style="width: 75%">结果</div>
+              <div style="width: 33.33%">抗菌药物</div>
+              <div style="width: 33.33%">抗菌药物编码</div>
+              <div style="width: 16.66%">MIC值</div>
+              <div style="width: 16.66%">敏感性</div>
             </div>
             <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-            <div v-for="(item, index) in inspectionDetail.inspectionItems" :key="index"
-                 style="display: flex">
-              <div style="width: 25%">{{ item.itm_NAME }}</div>
-              <div style="width: 75%">{{ item.itm_STR_VALUE || item.itm_VALUE || bacName }}</div>
-            </div>
-            <div style="margin: 0 30px" v-if="halfBacSize > 0">
-              <div style="display: inline-block; width: 49.7%; vertical-align: top">
-                <div style="display: flex">
-                  <div style="width: 33.33%">抗菌药物</div>
-                  <div style="width: 33.33%">抗菌药物编码</div>
-                  <div style="width: 16.66%">MIC值</div>
-                  <div style="width: 16.66%">敏感性</div>
-                </div>
-                <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                <div style="display: flex"
-                     v-for="(bac, index) in antibioticResults.slice(0, halfBacSize)" :key="index">
-                  <div style="width: 33.33%">
-                    <div>{{ bac.anti_NAME_CN.substring(0, 6) }}</div>
-                    <div>{{ bac.anti_NAME_CN.substring(6) }}</div>
-                  </div>
-                  <div style="width: 33.33%">{{ bac.anti_ABB }}</div>
-                  <div style="width: 16.66%">{{ bac.anti_MIC }}</div>
-                  <div style="width: 16.66%">{{ bac.anti_VALUE }}</div>
-                </div>
-              </div>
-              <div style="display: inline-block; width: 47%; vertical-align: top">
-                <div style="display: flex">
-                  <div style="width: 33.33%">抗菌药物</div>
-                  <div style="width: 33.33%">抗菌药物编码</div>
-                  <div style="width: 16.66%">MIC值</div>
-                  <div style="width: 16.66%">敏感性</div>
-                </div>
-                <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                <div style="display: flex" v-for="(bac, index) in antibioticResults.slice(halfBacSize)"
-                     :key="index">
-                  <div style="width: 33.33%">
-                    <div>{{ bac.anti_NAME_CN.substring(0, 6) }}</div>
-                    <div>{{ bac.anti_NAME_CN.substring(6) }}</div>
-                  </div>
-                  <div style="width: 33.33%">{{ bac.anti_ABB }}</div>
-                  <div style="width: 16.66%">{{ bac.anti_MIC }}</div>
-                  <div style="width: 16.66%">{{ bac.anti_VALUE }}</div>
-                </div>
+            <div style="display: flex"
+                 v-for="(bac, index) in antibioticItem.antiList.slice(antibioticItem.halfBacSize)"
+                 :key="index">
+              <div style="width: 33.33%">
+                <div>{{ bac.antiNameCn.substring(0, 6) }}</div>
+                <div>{{ bac.antiNameCn.substring(6) }}</div>
               </div>
+              <div style="width: 33.33%">{{ bac.antiAbb }}</div>
+              <div style="width: 16.66%">{{ bac.antiMic }}</div>
+              <div style="width: 16.66%">{{ bac.antiValue }}</div>
             </div>
           </div>
         </div>
-        <div style="position: absolute; left: 30px; right: 30px; bottom: 0">
-          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-          <div style="display: flex">
-            <div style="width: 33.33%">接收时间:{{ inspectionDetail.inspectionHeader.aply_DATE }}</div>
-            <div style="width: 33.33%">检验时间:{{ inspectionDetail.inspectionHeader.ordr_CREATE_DATE }}</div>
-            <div style="width: 33.33%">报告时间:{{ inspectionDetail.inspectionHeader.audt_TIME }}</div>
+        <div v-else>
+          <div v-for="item in inspectionDetail.items" style="display: flex">
+            <div style="width: 25%">{{ item.itmName }}</div>
+            <div style="width: 75%">{{ item.itmStrValue }}</div>
           </div>
-          <div style="display: flex">
-            <div style="width: 33.33%">送检医生:{{ inspectionDetail.inspectionHeader.test_USR_NAME }}</div>
-            <div style="width: 33.33%">检验人:{{ inspectionDetail.inspectionHeader.ordr_USR_NAME }}</div>
-            <div style="width: 33.33%">审核人:{{ inspectionDetail.inspectionHeader.audt_USR_NAME }}</div>
-          </div>
-          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-          <div style="width: 100%; text-align: center; font-weight: bold; height: 30px; font-size: 12px">
-            ***此结果仅对所检测的标本负责***
-            <span style="margin-left: 10px; font-size: 12px">备注:升高(↑),降低(↓),阳性(+),阴性(-)</span>
+        </div>
+      </div>
+      <div style="position: absolute; bottom: 0; left: 30px; right: 30px">
+        <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+        <div style="display: flex">
+          <div style="width: 33.33%">接收时间:{{ inspectionDetail.order.aplyDate }}</div>
+          <div style="width: 33.33%">
+            检验时间:{{inspectionDetail.order.ordrCreateDate }}
           </div>
+          <div style="width: 33.33%">报告时间:{{ inspectionDetail.order.audtTime }}</div>
+        </div>
+        <div style="display: flex">
+          <div style="width: 33.33%">送检医生:{{ inspectionDetail.order.testUsrName }}</div>
+          <div style="width: 33.33%">检验人:{{ inspectionDetail.order.ordrUsrName }}</div>
+          <div style="width: 33.33%">审核人:{{ inspectionDetail.order.audtUsrName }}</div>
+        </div>
+        <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+        <div style="width: 100%; text-align: center; font-weight: bold; height: 30px; font-size: 12px">
+          ***此结果仅对所检测的标本负责***
+          <span style="margin-left: 10px; font-size: 12px">备注:升高(↑),降低(↓),阳性(+),阴性(-)</span>
         </div>
       </div>
-    </template>
-  </page-layer>
+    </div>
+  </div>
 </template>
 
 <script setup name="inspectionReport">
-import {computed, onMounted, reactive, ref, watch} from 'vue'
-import {queryInspectionDetail, queryInspectionsIndex} from '@/api/inspections'
+import {computed, onActivated, onMounted, reactive, ref} from 'vue'
+import {checkExamDetail, checkExamIndex} from '@/api/inspections'
 import {clone} from '@/utils/clone'
 import {ElMessage} from 'element-plus'
-import PageLayer from "@/layout/PageLayer";
+import router from "@/router";
+import {getDateRangeFormatDate} from "@/utils/date";
+import {getLodop, initLodop} from "@/utils/c-lodop";
 
 const props = defineProps({
   jyjcInfo: {
@@ -186,32 +200,27 @@ const props = defineProps({
 })
 const params = props.jyjcInfo
 const ptntType = computed(() => {
-  if (params.type === 1) {
+  if (params.patType === 'InPatient') {
     return '住院号'
   } else if (params.type === 0) {
     return '门诊号'
   }
   return ''
 })
-const tableHeight = window.innerHeight - 45
+
+
 const inspectionIndex = ref([])
-const bacName = ref(null)
-const antibioticResults = ref([])
+const bacterias = ref([])
 const inspectionDetail = reactive({
-  inspectionHeader: {
-    aply_CNTN: '',
+  order: {
+    aplyCntn: '',
   },
-  inspectionItems: [],
+  items: [],
 })
 const halfSize = ref(0)
-const halfBacSize = ref(0)
-
-onMounted(() => {
-  queryIndex()
-})
 
 const queryIndex = () => {
-  if (!params.content) {
+  if (!params.patNo) {
     ElMessage({
       message: '请输入患者' + ptntType.value + '。',
       type: 'warning',
@@ -220,7 +229,7 @@ const queryIndex = () => {
     })
     return
   }
-  if (!params.start) {
+  if (!params.reqStartTime) {
     ElMessage({
       message: '请选择日期范围。',
       type: 'warning',
@@ -229,8 +238,7 @@ const queryIndex = () => {
     })
     return
   }
-  const param = clone(params)
-  queryInspectionsIndex(param).then((res) => {
+  checkExamIndex(params).then((res) => {
     inspectionIndex.value = res
     if (inspectionIndex.value.length > 0) {
       nextTick(() => {
@@ -240,41 +248,44 @@ const queryIndex = () => {
   })
 }
 
+const reportType = ref('普通')
 const queryDetail = (row) => {
-  queryInspectionDetail(row.ordr_ID).then((res) => {
-    halfSize.value = Math.ceil(res.inspectionItems.length / 2)
-    inspectionDetail.inspectionHeader = res.inspectionHeader
-    inspectionDetail.inspectionItems = res.inspectionItems
-    if (res.inspectionItems.length > 0) {
-      res.inspectionItems.forEach((item) => {
-        if (item.itm_NAME.indexOf('培养') > -1) {
-          bacName.value = item.itm_STR_VALUE
+  bacterias.value = []
+  checkExamDetail({
+    reportId: row.reportId
+  }).then((res) => {
+    halfSize.value = Math.ceil(res.items.length / 2)
+    inspectionDetail.order = res.order
+    inspectionDetail.items = res.items
+    reportType.value = row.reportType
+    if (res.bacterias && res.bacterias.length > 0) {
+      res.bacterias.forEach(bac => {
+        const bacSize = Math.ceil(bac.antiList.length / 2)
+        const tempBacResult = {
+          halfBacSize: bacSize,
+          germName: bac.bacNameCn,
+          antiList: bac.antiList,
+          type: bac.itmName
         }
+        bacterias.value.push(tempBacResult)
       })
     }
-    res.inspectionItems.forEach((item) => {
-      if (item.bacteriaResults && item.bacteriaResults.length > 0) {
-        if (item.bacteriaResults[0].antibioticResults != null) {
-          const bacSize = Math.ceil(item.bacteriaResults[0].antibioticResults.length / 2)
-          if (bacSize > halfBacSize.value) {
-            halfBacSize.value = bacSize
-            antibioticResults.value = item.bacteriaResults[0].antibioticResults
-          }
-        }
-      }
-    })
   })
 }
 
+onMounted(() => {
+  queryIndex()
+})
+
 function filterSex(val) {
   switch (val) {
-    case '0':
+    case 0:
       return '未填'
-    case '1':
+    case 1:
       return '男'
-    case '2':
+    case 2:
       return '女'
-    case '3':
+    case 3:
       return '未知'
   }
   return ''
@@ -282,13 +293,13 @@ function filterSex(val) {
 
 function filterAgeUnit(val) {
   switch (val) {
-    case '0':
+    case 0:
       return '岁'
-    case '1':
+    case 1:
       return '月'
-    case '2':
+    case 2:
       return '天'
-    case '3':
+    case 3:
       return '时'
   }
   return ''

+ 203 - 210
src/views/examination/InspectionReportIndex.vue

@@ -1,11 +1,10 @@
 <template>
-
   <div class="layout_container">
-    <header>
-      <el-select v-model="type" style="width: 100px">
+    <header class="round-header">
+      <el-select v-model="patType" style="width: 100px">
         <el-option v-for="item in types" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
-      <el-input v-model="content" style="width: 170px" clearable :placeholder="placeHolder"></el-input>
+      <el-input v-model="patNo" style="width: 170px" clearable :placeholder="placeHolder"></el-input>
       <el-date-picker
           v-model="datePeriod"
           type="daterange"
@@ -18,186 +17,182 @@
       <el-button type="primary" icon="Search" style="margin-left: 20px" @click="queryIndex">查询</el-button>
       <el-button type="primary" icon="Printer" @click="doPrint">打印</el-button>
     </header>
-    <div class="layout_container layout-horizontal">
+    <div class="layout_main layout_container layout-horizontal">
       <aside class="layout_el-table">
         <el-table
             :data="inspectionIndex"
             stripe highlight-current-row
             @row-click="queryDetail"
         >
-          <el-table-column prop="ordr_CREATE_DATE" label="报告时间" width="130"></el-table-column>
-          <el-table-column prop="aply_CTNT" label="检验名称" width="170"></el-table-column>
+          <el-table-column prop="trscDate" label="报告时间" width="130"></el-table-column>
+          <el-table-column prop="examPurpose" label="检验名称" width="170"></el-table-column>
+          <el-table-column prop="reportType" label="报告类别" width="70"></el-table-column>
         </el-table>
       </aside>
-      <div class="layout_main">
-        <div id="reportDetail"
-             style="position: relative; width: 90%; height: max-content; min-height: 96%; padding: 0 30px; background-color: white">
-          <h3 style="width: 100%; text-align: center; font-weight: bold; height: 30px; line-height: 30px">
-            长沙泰和医院检查报告单</h3>
-          <div style="display: flex">
-            <div style="width: 25%">姓名:{{ inspectionDetail.inspectionHeader.ptnt_NAME }}</div>
-            <div style="width: 25%">性别:{{ filterSex(inspectionDetail.inspectionHeader.ptnt_SEX) }}</div>
-            <div style="width: 25%">
-              年龄:{{ inspectionDetail.inspectionHeader.ptnt_AGE }}
-              {{ filterAgeUnit(inspectionDetail.inspectionHeader.ptnt_AGE_UNIT) }}
+      <div id="reportDetail" class="layout_main"
+           style="position: relative; width: 90%; height: max-content; min-height: 96%; padding: 0 30px; background-color: white">
+        <h3 style="width: 100%; text-align: center; font-weight: bold; height: 30px; line-height: 30px">
+          长沙泰和医院检查报告单</h3>
+        <div style="display: flex">
+          <div style="width: 25%">姓名:{{ inspectionDetail.order.ptntName }}</div>
+          <div style="width: 25%">性别:{{ filterSex(inspectionDetail.order.ptntSex) }}</div>
+          <div style="width: 25%">
+            年龄:{{ inspectionDetail.order.ptntAge }}
+            {{ filterAgeUnit(inspectionDetail.order.ptntAgeUnit) }}
+          </div>
+          <div style="width: 25%">
+            {{ ptntType }}:
+            {{ inspectionDetail.order.ptntNo }}
+          </div>
+        </div>
+        <div style="display: flex">
+          <div style="width: 25%">科室:{{ inspectionDetail.order.deptName }}</div>
+          <div style="width: 25%">床号:{{ inspectionDetail.order.ptntBedNo }}</div>
+          <div style="width: 25%">标本类型:{{ inspectionDetail.order.smplName }}</div>
+          <div style="width: 25%">
+            <div>申请项目:{{ inspectionDetail.order.aplyCntn.substring(0, 13) }}</div>
+            <div>{{ inspectionDetail.order.aplyCntn.substring(13) }}</div>
+          </div>
+        </div>
+        <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+        <div v-if="reportType === '普通' || reportType === '外送'" >
+          <div style="display: inline-block; width: 49.7%; vertical-align: top">
+            <div style="display: flex">
+              <div style="width: 25%">检验项目</div>
+              <div style="width: 16.66%">结果</div>
+              <div style="width: 16.66%">单位</div>
+              <div style="width: 16.66%">说明</div>
+              <div style="width: 25%">参考值</div>
+            </div>
+            <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+            <div v-for="(item, index) in inspectionDetail.items.slice(0, halfSize)"
+                 :key="index"
+                 style="display: flex">
+              <div style="width: 25%">
+                <div>{{ item.itmName.substring(0, 6) }}</div>
+                <div>{{ item.itmName.substring(6) }}</div>
+              </div>
+              <div style="width: 16.66%">
+                <div>{{ item.itmValue.substring(0, 6) }}</div>
+                <div>{{ item.itmValue.substring(6) }}</div>
+                <div>{{ item.itmStrValue.substring(0, 6) }}</div>
+                <div>{{ item.itmStrValue.substring(6) }}</div>
+              </div>
+              <div style="width: 16.66%">{{ item.itmUnit }}</div>
+              <div style="width: 16.66%">
+                <span v-html="getItemAlert(item.itmAlert, item.itmStrValue, item.itmValue)"></span>
+              </div>
+              <div style="width: 25%">{{ item.range }}</div>
+            </div>
+          </div>
+          <div style="display: inline-block; width: 49.7%; vertical-align: top">
+            <div style="display: flex">
+              <div style="width: 25%">检验项目</div>
+              <div style="width: 16.66%">结果</div>
+              <div style="width: 16.66%">单位</div>
+              <div style="width: 16.66%">说明</div>
+              <div style="width: 25%">参考值</div>
             </div>
-            <div style="width: 25%">
-              {{ ptntType }}:
-              {{ inspectionDetail.inspectionHeader.ptnt_NO }}
+            <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+            <div v-for="(item, index) in inspectionDetail.items.slice(halfSize)" :key="index"
+                 style="display: flex">
+              <div style="width: 25%">
+                <div>{{ item.itmName.substring(0, 6) }}</div>
+                <div>{{ item.itmName.substring(6) }}</div>
+              </div>
+              <div style="width: 16.66%">
+                <div>{{ item.itmValue.substring(0, 6) }}</div>
+                <div>{{ item.itmValue.substring(6) }}</div>
+                <div>{{ item.itmStrValue.substring(0, 6) }}</div>
+                <div>{{ item.itmStrValue.substring(6) }}</div>
+              </div>
+              <div style="width: 16.66%">{{ item.itmUnit }}</div>
+              <div style="width: 16.66%">
+                <span v-html="getItemAlert(item.itmAlert, item.itmStrValue, item.itmValue)"></span>
+              </div>
+              <div style="width: 25%">{{ item.range }}</div>
             </div>
           </div>
+        </div>
+        <div v-if="reportType === '细菌'">
           <div style="display: flex">
-            <div style="width: 25%">科室:{{ inspectionDetail.inspectionHeader.dept_NAME }}</div>
-            <div style="width: 25%">床号:{{ inspectionDetail.inspectionHeader.ptnt_BED_NO }}</div>
-            <div style="width: 25%">标本类型:{{ inspectionDetail.inspectionHeader.smpl_NAME }}</div>
-            <div style="width: 25%">
-              <div>申请项目:{{ inspectionDetail.inspectionHeader.aply_CNTN.substring(0, 13) }}</div>
-              <div>{{ inspectionDetail.inspectionHeader.aply_CNTN.substring(13) }}</div>
-            </div>
+            <div style="width: 25%">检验项目</div>
+            <div style="width: 75%">结果</div>
           </div>
           <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-          <div>
-            <div v-if="inspectionDetail.inspectionHeader.info_TYPE === '1'">
-              <div style="display: inline-block; width: 49.7%; vertical-align: top">
-                <div style="display: flex">
-                  <div style="width: 25%">检验项目</div>
-                  <div style="width: 16.66%">结果</div>
-                  <div style="width: 16.66%">单位</div>
-                  <div style="width: 16.66%">说明</div>
-                  <div style="width: 25%">参考值</div>
-                </div>
-                <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                <div v-for="(item, index) in inspectionDetail.inspectionItems.slice(0, halfSize)"
-                     :key="index"
-                     style="display: flex">
-                  <div style="width: 25%">
-                    <div>{{ item.itm_NAME.substring(0, 6) }}</div>
-                    <div>{{ item.itm_NAME.substring(6) }}</div>
-                  </div>
-                  <div style="width: 16.66%">
-                    <div>{{ item.itm_VALUE.substring(0, 6) }}</div>
-                    <div>{{ item.itm_VALUE.substring(6) }}</div>
-                    <div>{{ item.itm_STR_VALUE.substring(0, 6) }}</div>
-                    <div>{{ item.itm_STR_VALUE.substring(6) }}</div>
-                  </div>
-                  <div style="width: 16.66%">{{ item.itm_UNIT }}</div>
-                  <div style="width: 16.66%">
-                    <span v-html="getItemAlert(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)"></span>
-                  </div>
-                  <div style="width: 25%">{{ item.range }}</div>
-                </div>
+          <div style="margin: 0 30px; padding-bottom: 5px;" v-if="bacterias.length > 0"
+               v-for="(antibioticItem,index) in bacterias"
+               :style="index > 0 ? {borderTop: '1px dashed gray'} : {}">
+            <div style="display: flex;width: 49.7%;margin: 8px 0 4px 0">
+              <div style="width: 33.33%">{{ antibioticItem.type }}</div>
+              <div style="width: 60%">{{ antibioticItem.germName }}</div>
+            </div>
+            <div style="display: inline-block; width: 49.7%; vertical-align: top">
+              <div style="display: flex">
+                <div style="width: 33.33%">抗菌药物</div>
+                <div style="width: 33.33%">抗菌药物编码</div>
+                <div style="width: 16.66%">MIC值</div>
+                <div style="width: 16.66%">敏感性</div>
               </div>
-              <div style="display: inline-block; width: 49.7%; vertical-align: top">
-                <div style="display: flex">
-                  <div style="width: 25%">检验项目</div>
-                  <div style="width: 16.66%">结果</div>
-                  <div style="width: 16.66%">单位</div>
-                  <div style="width: 16.66%">说明</div>
-                  <div style="width: 25%">参考值</div>
-                </div>
-                <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                <div v-for="(item, index) in inspectionDetail.inspectionItems.slice(halfSize)" :key="index"
-                     style="display: flex">
-                  <div style="width: 25%">
-                    <div>{{ item.itm_NAME.substring(0, 6) }}</div>
-                    <div>{{ item.itm_NAME.substring(6) }}</div>
-                  </div>
-                  <div style="width: 16.66%">
-                    <div>{{ item.itm_VALUE.substring(0, 6) }}</div>
-                    <div>{{ item.itm_VALUE.substring(6) }}</div>
-                    <div>{{ item.itm_STR_VALUE.substring(0, 6) }}</div>
-                    <div>{{ item.itm_STR_VALUE.substring(6) }}</div>
-                  </div>
-                  <div style="width: 16.66%">{{ item.itm_UNIT }}</div>
-                  <div style="width: 16.66%">
-                    <span v-html="getItemAlert(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)"></span>
-                  </div>
-                  <div style="width: 25%">{{ item.range }}</div>
+              <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+              <div style="display: flex"
+                   v-for="(bac, index) in antibioticItem.antiList.slice(0, antibioticItem.halfBacSize)"
+                   :key="index">
+                <div style="width: 33.33%">
+                  <div>{{ bac.antiNameCn.substring(0, 6) }}</div>
+                  <div>{{ bac.antiNameCn.substring(6) }}</div>
                 </div>
+                <div style="width: 33.33%">{{ bac.antiAbb }}</div>
+                <div style="width: 16.66%">{{ bac.antiMic }}</div>
+                <div style="width: 16.66%">{{ bac.antiValue }}</div>
               </div>
             </div>
-            <div v-if="inspectionDetail.inspectionHeader.info_TYPE === '2'">
+            <div style="display: inline-block; width: 47%; vertical-align: top">
               <div style="display: flex">
-                <div style="width: 25%">检验项目</div>
-                <div style="width: 75%">结果</div>
+                <div style="width: 33.33%">抗菌药物</div>
+                <div style="width: 33.33%">抗菌药物编码</div>
+                <div style="width: 16.66%">MIC值</div>
+                <div style="width: 16.66%">敏感性</div>
               </div>
               <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-              <div style="margin: 0 30px; padding-bottom: 5px;" v-if="antibioticResults.length > 0"
-                   v-for="(antibioticItem,index) in antibioticResults"
-                   :style="index > 0 ? {borderTop: '1px dashed gray'} : {}">
-                <div style="display: flex;width: 49.7%;margin: 8px 0 4px 0">
-                  <div style="width: 33.33%">{{ antibioticItem.type }}</div>
-                  <div style="width: 60%">{{ antibioticItem.germName }}</div>
-                </div>
-                <div style="display: inline-block; width: 49.7%; vertical-align: top">
-                  <div style="display: flex">
-                    <div style="width: 33.33%">抗菌药物</div>
-                    <div style="width: 33.33%">抗菌药物编码</div>
-                    <div style="width: 16.66%">MIC值</div>
-                    <div style="width: 16.66%">敏感性</div>
-                  </div>
-                  <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                  <div style="display: flex"
-                       v-for="(bac, index) in antibioticItem.values.slice(0, antibioticItem.halfBacSize)"
-                       :key="index">
-                    <div style="width: 33.33%">
-                      <div>{{ bac.anti_NAME_CN.substring(0, 6) }}</div>
-                      <div>{{ bac.anti_NAME_CN.substring(6) }}</div>
-                    </div>
-                    <div style="width: 33.33%">{{ bac.anti_ABB }}</div>
-                    <div style="width: 16.66%">{{ bac.anti_MIC }}</div>
-                    <div style="width: 16.66%">{{ bac.anti_VALUE }}</div>
-                  </div>
-                </div>
-                <div style="display: inline-block; width: 47%; vertical-align: top">
-                  <div style="display: flex">
-                    <div style="width: 33.33%">抗菌药物</div>
-                    <div style="width: 33.33%">抗菌药物编码</div>
-                    <div style="width: 16.66%">MIC值</div>
-                    <div style="width: 16.66%">敏感性</div>
-                  </div>
-                  <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-                  <div style="display: flex"
-                       v-for="(bac, index) in antibioticItem.values.slice(antibioticItem.halfBacSize)"
-                       :key="index">
-                    <div style="width: 33.33%">
-                      <div>{{ bac.anti_NAME_CN.substring(0, 6) }}</div>
-                      <div>{{ bac.anti_NAME_CN.substring(6) }}</div>
-                    </div>
-                    <div style="width: 33.33%">{{ bac.anti_ABB }}</div>
-                    <div style="width: 16.66%">{{ bac.anti_MIC }}</div>
-                    <div style="width: 16.66%">{{ bac.anti_VALUE }}</div>
-                  </div>
-                </div>
-              </div>
-              <div v-else>
-                <div v-for="item in inspectionDetail.inspectionItems" style="display: flex">
-                  <div style="width: 25%">{{ item.itm_NAME }}</div>
-                  <div style="width: 75%">{{ item.itm_STR_VALUE }}</div>
+              <div style="display: flex"
+                   v-for="(bac, index) in antibioticItem.antiList.slice(antibioticItem.halfBacSize)"
+                   :key="index">
+                <div style="width: 33.33%">
+                  <div>{{ bac.antiNameCn.substring(0, 6) }}</div>
+                  <div>{{ bac.antiNameCn.substring(6) }}</div>
                 </div>
+                <div style="width: 33.33%">{{ bac.antiAbb }}</div>
+                <div style="width: 16.66%">{{ bac.antiMic }}</div>
+                <div style="width: 16.66%">{{ bac.antiValue }}</div>
               </div>
             </div>
           </div>
-          <div>
-            <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-            <div style="display: flex">
-              <div style="width: 33.33%">接收时间:{{ inspectionDetail.inspectionHeader.aply_DATE }}</div>
-              <div style="width: 33.33%">检验时间:{{
-                  inspectionDetail.inspectionHeader.ordr_CREATE_DATE
-                }}
-              </div>
-              <div style="width: 33.33%">报告时间:{{ inspectionDetail.inspectionHeader.audt_TIME }}</div>
+          <div v-else>
+            <div v-for="item in inspectionDetail.items" style="display: flex">
+              <div style="width: 25%">{{ item.itmName }}</div>
+              <div style="width: 75%">{{ item.itmStrValue }}</div>
             </div>
-            <div style="display: flex">
-              <div style="width: 33.33%">送检医生:{{ inspectionDetail.inspectionHeader.test_USR_NAME }}</div>
-              <div style="width: 33.33%">检验人:{{ inspectionDetail.inspectionHeader.ordr_USR_NAME }}</div>
-              <div style="width: 33.33%">审核人:{{ inspectionDetail.inspectionHeader.audt_USR_NAME }}</div>
-            </div>
-            <div style="margin: 5px 0; border-top: 1px solid gray"></div>
-            <div style="width: 100%; text-align: center; font-weight: bold; height: 30px; font-size: 12px">
-              ***此结果仅对所检测的标本负责***
-              <span style="margin-left: 10px; font-size: 12px">备注:升高(↑),降低(↓),阳性(+),阴性(-)</span>
+          </div>
+        </div>
+        <div style="position: absolute; bottom: 0; left: 0; right: 0">
+          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+          <div style="display: flex">
+            <div style="width: 33.33%">接收时间:{{ inspectionDetail.order.aplyDate }}</div>
+            <div style="width: 33.33%">
+              检验时间:{{inspectionDetail.order.ordrCreateDate }}
             </div>
+            <div style="width: 33.33%">报告时间:{{ inspectionDetail.order.audtTime }}</div>
+          </div>
+          <div style="display: flex">
+            <div style="width: 33.33%">送检医生:{{ inspectionDetail.order.testUsrName }}</div>
+            <div style="width: 33.33%">检验人:{{ inspectionDetail.order.ordrUsrName }}</div>
+            <div style="width: 33.33%">审核人:{{ inspectionDetail.order.audtUsrName }}</div>
+          </div>
+          <div style="margin: 5px 0; border-top: 1px solid gray"></div>
+          <div style="width: 100%; text-align: center; font-weight: bold; height: 30px; font-size: 12px">
+            ***此结果仅对所检测的标本负责***
+            <span style="margin-left: 10px; font-size: 12px">备注:升高(↑),降低(↓),阳性(+),阴性(-)</span>
           </div>
         </div>
       </div>
@@ -209,7 +204,7 @@
 <script setup lang="ts">
 import {computed, onActivated, reactive, ref, onMounted} from 'vue'
 import {shortcuts} from '@/data/shortcuts'
-import {queryInspectionDetail, queryInspectionsIndex} from '@/api/inspections'
+import {checkExamDetail, checkExamIndex} from '@/api/inspections'
 import router from '@/router'
 import {ElMessage} from 'element-plus'
 import {initLodop, getLodop} from '@/utils/c-lodop'
@@ -228,38 +223,35 @@ const props = defineProps({
   }
 })
 
-const type = ref(1)
+const patType = ref('InPatient')
 const types = initTypes()
-const content = ref(null)
+const patNo = ref(null)
 const datePeriod = ref([])
 const placeHolder = computed(() => {
   return '请输入' + ptntType.value
 })
 const ptntType = computed(() => {
-  if (type.value === 1) {
+  if (patType.value === 'InPatient') {
     return '住院号'
-  } else if (type.value === 0) {
+  } else if (patType.value === 'OutPatient') {
     return '门诊号'
-  } else if (type.value === 3) {
-    return '体检号'
   }
   return ''
 })
-const tableHeight = window.innerHeight - 45
 const inspectionIndex = ref([])
-const antibioticResults = ref([])
+const bacterias = ref([])
 const inspectionDetail = reactive({
-  inspectionHeader: {
-    aply_CNTN: '',
+  order: {
+    aplyCntn: '',
   },
-  inspectionItems: [],
+  items: [],
 })
 const halfSize = ref(0)
 
 onMounted(() => {
   if (props.patNo && props.start && props.end) {
-    type.value = 1
-    content.value = props.patNo
+    patType.value = 'InPatient'
+    patNo.value = props.patNo
     datePeriod.value[0] = props.start
     datePeriod.value[1] = props.end
     queryIndex()
@@ -269,8 +261,8 @@ onMounted(() => {
 onActivated(() => {
   const params = router.currentRoute.value.params
   if (params.patNo && params.start && params.end) {
-    type.value = 1
-    content.value = params.patNo
+    patType.value = 'InPatient'
+    patNo.value = params.patNo
     datePeriod.value[0] = params.start
     datePeriod.value[1] = params.end
     queryIndex()
@@ -278,7 +270,7 @@ onActivated(() => {
 })
 
 const queryIndex = () => {
-  if (!content.value) {
+  if (!patNo.value) {
     ElMessage({
       message: '请输入患者' + ptntType.value + '。',
       type: 'warning',
@@ -287,7 +279,7 @@ const queryIndex = () => {
     })
     return
   }
-  if (!datePeriod.value) {
+  if (!datePeriod.value || datePeriod.value.length < 2) {
     ElMessage({
       message: '请选择日期范围。',
       type: 'warning',
@@ -297,37 +289,39 @@ const queryIndex = () => {
     return
   }
   let {startTime, endTime} = getDateRangeFormatDate(datePeriod.value)
-  const param = {
-    type: type.value,
-    content: content.value,
-    start: startTime,
-    end: endTime,
+  const params = {
+    patType: patType.value,
+    patNo: patNo.value,
+    reqStartTime: startTime,
+    reqEndTime: endTime,
   }
-  queryInspectionsIndex(param).then((res) => {
+  checkExamIndex(params).then((res) => {
     inspectionIndex.value = res
   })
 }
 
+const reportType = ref('普通')
 const queryDetail = (row) => {
-  antibioticResults.value = []
-  queryInspectionDetail(row.ordr_ID).then((res) => {
-    halfSize.value = Math.ceil(res.inspectionItems.length / 2)
-    inspectionDetail.inspectionHeader = res.inspectionHeader
-    inspectionDetail.inspectionItems = res.inspectionItems
-    res.inspectionItems.forEach((item) => {
-      if (item.bacteriaResults && item.bacteriaResults.length > 0) {
-        if (item.bacteriaResults[0].antibioticResults != null) {
-          const bacSize = Math.ceil(item.bacteriaResults[0].antibioticResults.length / 2)
-          const resultItem = {
-            halfBacSize: bacSize,
-            germName: item.bacteriaResults[0].bac_NAME_CN,
-            values: item.bacteriaResults[0].antibioticResults,
-            type: item.itm_NAME
-          }
-          antibioticResults.value.push(resultItem)
+  bacterias.value = []
+  checkExamDetail({
+    reportId: row.reportId
+  }).then((res) => {
+    halfSize.value = Math.ceil(res.items.length / 2)
+    inspectionDetail.order = res.order
+    inspectionDetail.items = res.items
+    reportType.value = row.reportType
+    if (res.bacterias && res.bacterias.length > 0) {
+      res.bacterias.forEach(bac => {
+        const bacSize = Math.ceil(bac.antiList.length / 2)
+        const tempBacResult = {
+          halfBacSize: bacSize,
+          germName: bac.bacNameCn,
+          antiList: bac.antiList,
+          type: bac.itmName
         }
-      }
-    })
+        bacterias.value.push(tempBacResult)
+      })
+    }
   })
 }
 
@@ -344,21 +338,20 @@ const doPrint = () => {
 
 function initTypes() {
   return [
-    {code: 1, name: '住院号'},
-    {code: 0, name: '门诊号'},
-    {code: 3, name: '体检号'},
+    {code: 'InPatient', name: '住院号'},
+    {code: 'OutPatient', name: '门诊号'},
   ]
 }
 
 function filterSex(val) {
   switch (val) {
-    case '0':
+    case 0:
       return '未填'
-    case '1':
+    case 1:
       return '男'
-    case '2':
+    case 2:
       return '女'
-    case '3':
+    case 3:
       return '未知'
   }
   return ''
@@ -366,13 +359,13 @@ function filterSex(val) {
 
 function filterAgeUnit(val) {
   switch (val) {
-    case '0':
+    case 0:
       return '岁'
-    case '1':
+    case 1:
       return '月'
-    case '2':
+    case 2:
       return '天'
-    case '3':
+    case 3:
       return '时'
   }
   return ''

+ 13 - 6
src/views/medical-insurance/allpatient/SetllistReconciliation.vue

@@ -183,7 +183,14 @@
       </el-row>
     </div>
   </el-dialog>
-  <el-dialog v-model="showJyjc" title="检验检查" :close-on-click-modal="false" fullscreen destroy-on-close>
+  <el-dialog
+      v-model="showJyjc"
+      title="检验检查"
+      :close-on-click-modal="false"
+      fullscreen
+      destroy-on-close
+      class="el-dialog-fullscreen-fill"
+  >
     <JyjcPage :jyjcInfo="jyjcInfo" />
   </el-dialog>
 </template>
@@ -485,13 +492,13 @@ const showJyjc = ref(false)
 const jyjcInfo = ref({})
 const selectJyjcInfo = (row) => {
   if (mzFlag.value === '11') {
-    jyjcInfo.value.type = 0
+    jyjcInfo.value.patType = 'OutPatient'
   } else {
-    jyjcInfo.value.type = 1
+    jyjcInfo.value.patType = 'InPatient'
   }
-  jyjcInfo.value.content = row.patNo
-  jyjcInfo.value.start = slctSetlPrm.stmtBegndate
-  jyjcInfo.value.end = slctSetlPrm.stmtEnddate
+  jyjcInfo.value.patNo = row.patNo
+  jyjcInfo.value.reqStartTime = slctSetlPrm.stmtBegndate
+  jyjcInfo.value.reqEndTime = slctSetlPrm.stmtEnddate
   showJyjc.value = true
 }