Pārlūkot izejas kodu

新增护理查询

xiaochan 2 gadi atpakaļ
vecāks
revīzija
66d9e244bd

+ 81 - 75
src/components/pat-info-list/PatInfomationDialog.vue

@@ -1,48 +1,53 @@
 <template>
-    <el-dialog v-model="dialog"
-               title="患者详情"
-               class="dialog-temp"
-               fullscreen
-               @closed="emits('closed')"
-               destroy-on-close>
-        <huan-zhe-xin-xi :huan-zhe-xin-xi="patInfo"/>
-        <el-tabs>
-
-            <el-tab-pane label="首页">
-                <first-page-of-medical-record :dics="props.dics"
-                                              :sheet-data="sheetData"/>
-            </el-tab-pane>
-            <el-tab-pane label="医嘱">
-                <emr-order-list :pat-no="props.patNo"
-                                :times="props.times"
-                                :in-the-hospital="props.leaveHospital === 1"/>
-            </el-tab-pane>
-            <el-tab-pane label="清单">
-                <charge-list :pat-no="props.patNo"
-                             :show-button="false"
-                             :times="props.times"/>
-            </el-tab-pane>
-            <el-tab-pane label="检验">
-                <inspection-report-index
-                        style="font-size: 12px;height: 100%"
-                        :pat-no="props.patNo"
-                        :start="startDate"
-                        :end="endDate"/>
-            </el-tab-pane>
-            <el-tab-pane label="检查">
-                <emr-inspect :pat-no="props.patNo"
-                             :times="props.times"/>
-            </el-tab-pane>
-            <el-tab-pane label="会诊">
-                <group-consultation :pat-no="props.patNo"
-                                    :times="props.times"/>
-            </el-tab-pane>
-            <el-tab-pane label="病历">
-                <electronic-medical-record :pat-no="props.patNo"
-                                           :times="props.times"/>
-            </el-tab-pane>
-        </el-tabs>
-    </el-dialog>
+  <el-dialog v-model="dialog"
+             title="患者详情"
+             class="dialog-temp"
+             fullscreen
+             @closed="emits('closed')"
+             destroy-on-close>
+    <huan-zhe-xin-xi :huan-zhe-xin-xi="patInfo"/>
+    <el-tabs>
+
+      <el-tab-pane label="首页">
+        <first-page-of-medical-record :dics="props.dics"
+                                      :sheet-data="sheetData"/>
+      </el-tab-pane>
+      <el-tab-pane label="医嘱">
+        <emr-order-list :pat-no="props.patNo"
+                        :times="props.times"
+                        :in-the-hospital="props.leaveHospital === 1"/>
+      </el-tab-pane>
+      <el-tab-pane label="清单">
+        <charge-list :pat-no="props.patNo"
+                     :show-button="false"
+                     :times="props.times"/>
+      </el-tab-pane>
+      <el-tab-pane label="护理">
+        <emr-yz-temperature :pat-no="props.patNo"
+                            :times="props.times"/>
+      </el-tab-pane>
+      <el-tab-pane label="检验">
+        <inspection-report-index
+            style="font-size: 12px;height: 100%"
+            :pat-no="props.patNo"
+            :start="startDate"
+            :end="endDate"/>
+      </el-tab-pane>
+      <el-tab-pane label="检查">
+        <emr-inspect :pat-no="props.patNo"
+                     :times="props.times"/>
+      </el-tab-pane>
+      <el-tab-pane label="会诊">
+        <group-consultation :pat-no="props.patNo"
+                            :times="props.times"/>
+      </el-tab-pane>
+      <el-tab-pane label="病历">
+        <electronic-medical-record :pat-no="props.patNo"
+                                   :times="props.times"/>
+      </el-tab-pane>
+
+    </el-tabs>
+  </el-dialog>
 </template>
 
 <script setup name='PatInfomationDialog'>
@@ -59,25 +64,26 @@ import {getServerDateApi} from "@/api/public-api";
 import ChargeList from '@/components/medical-insurance/charge-list/Index.vue'
 import {getDisPatient, getPatientInfo} from "@/api/inpatient/patient";
 import HuanZheXinXi from "@/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue";
+import EmrYzTemperature from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue";
 
 
 const props = defineProps({
-    patNo: String,
-    times: Number,
-    /*
-    * 出院 2
-    * 在院 1
-    * */
-    leaveHospital: {
-        type: Number,
-        default: 1
-    },
-    admissDate: {
-        type: String
-    },
-    dics: {
-        type: Object
-    }
+  patNo: String,
+  times: Number,
+  /*
+  * 出院 2
+  * 在院 1
+  * */
+  leaveHospital: {
+    type: Number,
+    default: 1
+  },
+  admissDate: {
+    type: String
+  },
+  dics: {
+    type: Object
+  }
 })
 
 const emits = defineEmits(['closed'])
@@ -91,24 +97,24 @@ const patInfo = ref({})
 
 
 const details = async () => {
-    sheetData.value = await getSheetInfo({
-        bah: props.patNo,
-        times: props.times,
-        inOutFlag: props.leaveHospital ? 2 : 1
-    })
-    startDate.value = formatDate(props.admissDate)
-    dialog.value = true
+  sheetData.value = await getSheetInfo({
+    bah: props.patNo,
+    times: props.times,
+    inOutFlag: props.leaveHospital ? 2 : 1
+  })
+  startDate.value = formatDate(props.admissDate)
+  dialog.value = true
 }
 
 onMounted(async () => {
-    endDate.value = formatDate(await getServerDateApi())
-    await details()
-    if (props.leaveHospital === 1) {
-        patInfo.value = await getPatientInfo(props.patNo)
-    } else {
-        patInfo.value = await getDisPatient(props.patNo, props.times)
-    }
-    console.log(patInfo.value)
+  endDate.value = formatDate(await getServerDateApi())
+  await details()
+  if (props.leaveHospital === 1) {
+    patInfo.value = await getPatientInfo(props.patNo)
+  } else {
+    patInfo.value = await getDisPatient(props.patNo, props.times)
+  }
+  console.log(patInfo.value)
 
 })
 

+ 235 - 233
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrTest.vue

@@ -1,161 +1,163 @@
 <template>
-    <div style="height: 10%;display: flex">
-        <div>
-            <el-date-picker v-model="dateRange"
-                            style="width: 220px"
-                            :clearable="false"
-                            type="daterange"/>
-            <br>
-            <hr>
-            <el-button @click="query" type="primary">查询</el-button>
-            <el-button @click="appendCopy" type="success">复制 / 追加</el-button>
-            <el-button @click="copyClick" type="success">确认复制</el-button>
-            <br>
+  <div style="height: 10%;display: flex">
+    <div>
+      <el-date-picker v-model="dateRange"
+                      style="width: 220px"
+                      :clearable="false"
+                      type="daterange"/>
+      <br>
+      <hr>
+      <el-button @click="query" type="primary">查询</el-button>
+      <el-button @click="appendCopy" type="success">复制 / 追加</el-button>
+      <el-button @click="copyClick" type="success">确认复制</el-button>
+      <br>
+
+
+    </div>
+    <div class="describe">
+      <el-button type="primary" @click="copyOutcome('病理结果')">
+        病理结果
+      </el-button>
 
+      <el-button type="primary" @click="copyOutcome('细菌培养结果')">
+        细菌培养结果
+      </el-button>
 
+      <div class="pat-info">
+        <div>
+          <test-describe front="姓名"
+                         :text="inspectionHeader?.ptnt_NAME"/>
         </div>
-        <div class="describe">
-            <el-button type="primary" @click="copyOutcome('病理结果')">
-                病理结果
-            </el-button>
-
-            <el-button type="primary" @click="copyOutcome('细菌培养结果')">
-                细菌培养结果
-            </el-button>
-
-            <div class="pat-info">
-                <div>
-                    <test-describe front="姓名"
-                                   :text="inspectionHeader?.ptnt_NAME"/>
-                </div>
-                <div>
-                    <test-describe front="性别"
-                                   :text="filterSex(inspectionHeader?.ptnt_SEX)"/>
-                </div>
-                <div>
-                    <test-describe front="年龄"
-                                   :text="inspectionHeader.ptnt_AGE + filterAgeUnit(inspectionHeader.ptnt_AGE_UNIT) "/>
-                </div>
-                <div>
-                    <test-describe front="住院号"
-                                   :text="inspectionHeader.ptnt_NO"/>
-                </div>
-                <div>
-                    <test-describe front="科室"
-                                   :text="inspectionHeader.dept_NAME"/>
-                </div>
-                <div>
-                    <test-describe front="床号"
-                                   :text="inspectionHeader.ptnt_BED_NO"/>
-                </div>
-                <div>
-                    <test-describe front="标本类型"
-                                   :text="inspectionHeader.smpl_NAME "/>
-                </div>
-                <div>
-                    <test-describe front="申请项目"
-                                   :text="inspectionHeader?.aply_CNTN"/>
-                </div>
-            </div>
-            <div class="test-date">
-                <div>
-                    <test-describe front="接收时间"
-                                   :text="inspectionHeader.aply_DATE "/>
-                </div>
-                <div>
-                    <test-describe front="检验时间"
-                                   :text="inspectionHeader.ordr_CREATE_DATE "/>
-                </div>
-                <div>
-                    <test-describe front="报告时间"
-                                   :text="inspectionHeader.audt_TIME "/>
-                </div>
-                <div>
-                    <test-describe front="送检医生"
-                                   :text="inspectionHeader.test_USR_NAME "/>
-                </div>
-                <div>
-                    <test-describe front="检验人"
-                                   :text="inspectionHeader.ordr_USR_NAME "/>
-                </div>
-                <div>
-                    <test-describe front="审核人"
-                                   :text="inspectionHeader.audt_USR_NAME "/>
-                </div>
-            </div>
+        <div>
+          <test-describe front="性别"
+                         :text="filterSex(inspectionHeader?.ptnt_SEX)"/>
         </div>
+        <div>
+          <test-describe front="年龄"
+                         :text="inspectionHeader.ptnt_AGE + filterAgeUnit(inspectionHeader.ptnt_AGE_UNIT) "/>
+        </div>
+        <div>
+          <test-describe front="住院号"
+                         :text="inspectionHeader.ptnt_NO"/>
+        </div>
+        <div>
+          <test-describe front="科室"
+                         :text="inspectionHeader.dept_NAME"/>
+        </div>
+        <div>
+          <test-describe front="床号"
+                         :text="inspectionHeader.ptnt_BED_NO"/>
+        </div>
+        <div>
+          <test-describe front="标本类型"
+                         :text="inspectionHeader.smpl_NAME "/>
+        </div>
+        <div>
+          <test-describe front="申请项目"
+                         :text="inspectionHeader?.aply_CNTN"/>
+        </div>
+      </div>
+      <div class="test-date">
+        <div>
+          <test-describe front="接收时间"
+                         :text="inspectionHeader.aply_DATE "/>
+        </div>
+        <div>
+          <test-describe front="检验时间"
+                         :text="inspectionHeader.ordr_CREATE_DATE "/>
+        </div>
+        <div>
+          <test-describe front="报告时间"
+                         :text="inspectionHeader.audt_TIME "/>
+        </div>
+        <div>
+          <test-describe front="送检医生"
+                         :text="inspectionHeader.test_USR_NAME "/>
+        </div>
+        <div>
+          <test-describe front="检验人"
+                         :text="inspectionHeader.ordr_USR_NAME "/>
+        </div>
+        <div>
+          <test-describe front="审核人"
+                         :text="inspectionHeader.audt_USR_NAME "/>
+        </div>
+      </div>
     </div>
-    <div class="container">
-        <el-auto-resizer>
-            <template #default="{ height, width }">
-                <div style="display: flex">
-                    <div class="sidebar">
-                        <vxe-table :height="height"
-                                   :row-config="{isHover : true, isCurrent: true,height: 24}"
-                                   show-overflow
-                                   class="vxe-padding_zero"
-                                   @cell-click="sidebarRow"
-                                   :data="sidebarList">
-                            <vxe-column title="名称" field="aply_CTNT"/>
-                            <vxe-column title="时间" field="ordr_CREATE_DATE" width="180"/>
-                        </vxe-table>
-
-                    </div>
-                    <div class="main">
-                        <el-table :data="mainList"
-                                  :height="height"
-                                  row-key="itm_ORDR"
-                                  ref="tableRef"
-                                  @row-click="testRowClick"
-                                  :expand-row-keys="expands">
-                            <el-table-column label="选择" type="selection"/>
-                            <el-table-column type="expand" width="20">
-                                <template #default="{row,$index}">
-                                    <el-table :data="row.bacteriaResults[0].antibioticResults"
-                                              :ref="(el) => setRefMap(el, $index)"
-                                              @row-click="drugTable"
-                                              v-if="row.bacteriaResults.length > 0">
-                                        <el-table-column label="选择" type="selection"/>
-                                        <el-table-column label="抗菌药物" prop="anti_NAME_CN"/>
-                                        <el-table-column label="抗菌药物编码" prop="anti_ABB"/>
-                                        <el-table-column label="MIC值" prop="anti_MIC"/>
-                                        <el-table-column label="敏感性" prop="anti_VALUE"/>
-                                    </el-table>
-                                </template>
-                            </el-table-column>
-                            <el-table-column label="检验项目" prop="itm_NAME" width="450"/>
-                            <el-table-column label="结果">
-                                <template #default="{row}">
-                                    {{ result(row) }}
-                                </template>
-                            </el-table-column>
-                            <el-table-column label="单位" prop="itm_UNIT"/>
-                            <el-table-column label="说明" prop="itm_ALERT">
-                                <template #default="{row}">
-                                    <span v-html="getItemAlert(row.itm_ALERT, row.itm_STR_VALUE, row.itm_VALUE)"></span>
-                                </template>
-                            </el-table-column>
-                            <el-table-column label="参考值" prop="range"/>
-                        </el-table>
-                    </div>
-                </div>
-            </template>
-        </el-auto-resizer>
-    </div>
+  </div>
+  <div class="container">
+    <el-auto-resizer>
+      <template #default="{ height, width }">
+        <div style="display: flex">
+          <div class="sidebar">
+            <vxe-table :height="height"
+                       :row-config="{isHover : true, isCurrent: true,height: 24}"
+                       show-overflow
+                       class="vxe-padding_zero"
+                       @cell-click="sidebarRow"
+                       :data="sidebarList">
+              <vxe-column title="名称" field="aply_CTNT"/>
+              <vxe-column title="时间" field="ordr_CREATE_DATE" width="180"/>
+            </vxe-table>
+
+          </div>
+          <div class="main">
+            <el-table :data="mainList"
+                      :height="height"
+                      row-key="itm_ORDR"
+                      ref="tableRef"
+                      @row-click="testRowClick"
+                      :expand-row-keys="expands">
+              <el-table-column label="选择" type="selection"/>
+              <el-table-column type="expand" width="20">
+                <template #default="{row,$index}">
+                  <el-table :data="row.bacteriaResults[0].antibioticResults"
+                            :ref="(el) => setRefMap(el, $index)"
+                            @row-click="drugTable"
+                            v-if="row.bacteriaResults.length > 0">
+                    <el-table-column label="选择" type="selection"/>
+                    <el-table-column label="抗菌药物" prop="anti_NAME_CN"/>
+                    <el-table-column label="抗菌药物编码" prop="anti_ABB"/>
+                    <el-table-column label="MIC值" prop="anti_MIC"/>
+                    <el-table-column label="敏感性" prop="anti_VALUE"/>
+                  </el-table>
+                </template>
+              </el-table-column>
+              <el-table-column label="检验项目" prop="itm_NAME" width="450"/>
+              <el-table-column label="结果">
+                <template #default="{row}">
+                  {{ result(row) }}
+                </template>
+              </el-table-column>
+              <el-table-column label="单位" prop="itm_UNIT"/>
+              <el-table-column label="说明" prop="itm_ALERT">
+                <template #default="{row}">
+                  <span v-html="getItemAlert(row.itm_ALERT, row.itm_STR_VALUE, row.itm_VALUE)"></span>
+                </template>
+              </el-table-column>
+              <el-table-column label="参考值" prop="range"/>
+            </el-table>
+          </div>
+        </div>
+      </template>
+    </el-auto-resizer>
+  </div>
 </template>
 
 <script setup name='EmrTest'>
-// 查询检验
 import {getServerDateApi} from "@/api/public-api";
-import {queryInspectionDetail, queryInspectionsIndex} from '@/api/inspections'
+import {
+  queryInspectionDetail,
+  queryInspectionsIndex
+} from '@/api/inspections'
 import {patInfo} from './emr-tools-store'
 import {onMounted, ref} from "vue";
 import {xcMessage} from '@/utils/xiaochan-element-plus'
 import TestDescribe from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/TestDescribe.vue";
 import {getDateRangeFormatDate} from '@/utils/date'
 import {
-    elementReplication,
-    emrCopyFunc
+  elementReplication,
+  emrCopyFunc
 } from '@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init'
 
 const emits = defineEmits(['close'])
@@ -164,147 +166,147 @@ const mainList = ref()
 const tableRef = ref()
 const drugSensitivityRef = ref()
 const inspectionHeader = ref({
-    aply_CNTN: ''
+  aply_CNTN: ''
 })
 const dateRange = ref([])
 
 const refMap = {}
 const setRefMap = (el, item) => {
-    refMap[`drug${item}`] = el
+  refMap[`drug${item}`] = el
 }
 
 const query = async () => {
-    let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
-    const param = {
-        type: 1,
-        content: patInfo.value.inpatientNo,
-        start: startTime,
-        end: endTime,
-    }
-    queryInspectionsIndex(param).then((res) => {
-        sidebarList.value = res
-        console.log(res)
-    })
+  let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
+  const param = {
+    type: 1,
+    content: patInfo.value.inpatientNo,
+    start: startTime,
+    end: endTime,
+  }
+  queryInspectionsIndex(param).then((res) => {
+    sidebarList.value = res
+    console.log(res)
+  })
 }
 const expands = ref([])
 let currentReportForm = {}
 
 const sidebarRow = ({row}) => {
-    currentReportForm = row
-    queryInspectionDetail(row.ordr_ID).then((res) => {
-        mainList.value = res['inspectionItems']
-        inspectionHeader.value = res['inspectionHeader']
-        mainList.value.forEach(item => {
-            if (item.bacteriaResults.length > 0) {
-                expands.value.push(item.itm_ORDR)
-            }
-        })
+  currentReportForm = row
+  queryInspectionDetail(row.ordr_ID).then((res) => {
+    mainList.value = res['inspectionItems']
+    inspectionHeader.value = res['inspectionHeader']
+    mainList.value.forEach(item => {
+      if (item.bacteriaResults.length > 0) {
+        expands.value.push(item.itm_ORDR)
+      }
     })
+  })
 }
 
 const testRowClick = (row) => {
-    let temp = tableRef.value.getSelectionRows()
-    tableRef.value.toggleRowSelection(row, !temp.includes(row))
+  let temp = tableRef.value.getSelectionRows()
+  tableRef.value.toggleRowSelection(row, !temp.includes(row))
 }
 
 const drugTable = (row) => {
-    let temp = drugSensitivityRef.value.getSelectionRows()
-    drugSensitivityRef.value.toggleRowSelection(row, !temp.includes(row))
+  let temp = drugSensitivityRef.value.getSelectionRows()
+  drugSensitivityRef.value.toggleRowSelection(row, !temp.includes(row))
 }
 
 let copyStr = ''
 const appendCopy = () => {
-    let temp = tableRef.value.getSelectionRows()
-    let data = currentReportForm.aply_CTNT + ":"
-
-    temp.forEach(item => {
-        data += `${item.itm_NAME}${result(item)}${item.itm_UNIT}${getItemStr(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)},`
+  let temp = tableRef.value.getSelectionRows()
+  let data = currentReportForm.aply_CTNT + ":"
+
+  temp.forEach(item => {
+    data += `${item.itm_NAME}${result(item)}${item.itm_UNIT}${getItemStr(item.itm_ALERT, item.itm_STR_VALUE, item.itm_VALUE)},`
+  })
+
+  for (let key in refMap) {
+    let item = refMap[key]
+    let tempList = item.getSelectionRows()
+    tempList.forEach(item => {
+      data += `${item.anti_NAME_CN}${item.anti_ABB}${item.anti_MIC}${item.anti_VALUE},`
     })
+  }
 
-    for (let key in refMap) {
-        let item = refMap[key]
-        let tempList = item.getSelectionRows()
-        tempList.forEach(item => {
-            data += `${item.anti_NAME_CN}${item.anti_ABB}${item.anti_MIC}${item.anti_VALUE},`
-        })
-    }
-
-    copyStr += '   ' + data
-    xcMessage.success('追加成功。')
+  copyStr += '   ' + data
+  xcMessage.success('追加成功。')
 }
 
 const copyClick = () => {
-    emrCopyFunc(copyStr)
-    emits('close')
+  emrCopyFunc(copyStr)
+  emits('close')
 }
 
 const copyOutcome = (name) => {
-    elementReplication(copyStr, name)
+  elementReplication(copyStr, name)
 }
 
 const result = (row) => {
-    if (row.bacteriaResults.length > 0) {
-        return row.bacteriaResults[0].bac_NAME_CN
-    }
-    return `${row.itm_VALUE} ${row.itm_STR_VALUE}`
+  if (row.bacteriaResults.length > 0) {
+    return row.bacteriaResults[0].bac_NAME_CN
+  }
+  return `${row.itm_VALUE} ${row.itm_STR_VALUE}`
 }
 
 function filterSex(val) {
-    switch (val) {
-        case '0':
-            return '未填'
-        case '1':
-            return '男'
-        case '2':
-            return '女'
-        case '3':
-            return '未知'
-    }
-    return ''
+  switch (val) {
+    case '0':
+      return '未填'
+    case '1':
+      return '男'
+    case '2':
+      return '女'
+    case '3':
+      return '未知'
+  }
+  return ''
 }
 
 function filterAgeUnit(val) {
-    switch (val) {
-        case '0':
-            return '岁'
-        case '1':
-            return '月'
-        case '2':
-            return '天'
-        case '3':
-            return '时'
-    }
-    return ''
+  switch (val) {
+    case '0':
+      return '岁'
+    case '1':
+      return '月'
+    case '2':
+      return '天'
+    case '3':
+      return '时'
+  }
+  return ''
 }
 
 function getItemAlert(val, strValue, value) {
-    if (strValue !== '' || value === '') return ''
-    switch (val) {
-        case 'L':
-            return '<span style="color:#F56C6C;font-weight:bold">↓</span>'
-        case 'H':
-            return '<span style="color:#F56C6C;font-weight:bold">↑</span>'
-    }
-    return '<span style="color:#67C23A;font-weight:bold">正常</span>'
+  if (strValue !== '' || value === '') return ''
+  switch (val) {
+    case 'L':
+      return '<span style="color:#F56C6C;font-weight:bold">↓</span>'
+    case 'H':
+      return '<span style="color:#F56C6C;font-weight:bold">↑</span>'
+  }
+  return '<span style="color:#67C23A;font-weight:bold">正常</span>'
 }
 
 function getItemStr(val, strValue, value) {
-    if (strValue !== '' || value === '') return ''
-    switch (val) {
-        case 'L':
-            return '↓'
-        case 'H':
-            return '↑'
-    }
-    return '正常'
+  if (strValue !== '' || value === '') return ''
+  switch (val) {
+    case 'L':
+      return '↓'
+    case 'H':
+      return '↑'
+  }
+  return '正常'
 }
 
 onMounted(async () => {
-    dateRange.value.push(patInfo.value.admissDate)
-    dateRange.value.push(await getServerDateApi())
-    await query()
-    // todo 检验接口没有返回危急值。
-    // let res = await getCriticalValueByPatInfo(patInfo.value.inpatientNo, patInfo.value.admissTimes)
+  dateRange.value.push(patInfo.value.admissDate)
+  dateRange.value.push(await getServerDateApi())
+  await query()
+  // todo 检验接口没有返回危急值。
+  // let res = await getCriticalValueByPatInfo(patInfo.value.inpatientNo, patInfo.value.admissTimes)
 })
 
 </script>

+ 192 - 181
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue

@@ -1,94 +1,94 @@
 <template>
-    <div style="height: 10%;font-size: 12px;display: flex">
-        <div style="width: 70%;color: blue;border: 1px solid #000;border-radius: 5px;padding: 0 5px">
-            {{ otherInfo }}
-        </div>
-        <div style="flex: 1;color: red">
-            注意:体温单位为℃脉搏单位为”次m1n”,血压单位为"mmg”,Sp02
-            单位为“%”,体重单位为”kg”,呼吸单位为“次/min”,血糖单位
-            ”mo1/1”
-        </div>
+  <div style="height: 10%;font-size: 12px;display: flex">
+    <div style="width: 70%;color: blue;border: 1px solid #000;border-radius: 5px;padding: 0 5px">
+      {{ otherInfo }}
     </div>
-    <div style="height: 90%">
-        <el-auto-resizer>
-            <template #default="{ height, width }">
-                <vxe-table :height="height"
-                           border
-                           class="vxe-padding_zero hl-style"
-                           header-row-class-name="padding_zero"
-                           show-overflow
-                           :column-config="{resizable: true}"
-                           :row-config="{ height: 24}"
-                           :row-class-name="rowClassName"
-                           @cell-click="rowClick"
-                           :data="listRef">
-                    <vxe-column field="recDateStr" title="日期" width="80">
-                        <template #default="{row,rowIndex}">
-                            <component :is="dateDisplay(row,row.recDateStr,rowIndex)"/>
-                        </template>
-                    </vxe-column>
-                    <vxe-column title="时间" width="40">
-                        <template #default="{row,rowIndex}">
-                            <component :is="timePlsy(row,row.recTimeStr,rowIndex)"/>
-                        </template>
-                    </vxe-column>
-                    <vxe-column field="patientState" title="病情" width="50"/>
-                    <vxe-column title="体温" width="50">
-                        <template #default="{row}">
-                            <template v-if="stringIsBlank(row.temperature1)">
-                                <span></span>
-                            </template>
-                            <template v-else>
-                                {{ row.temperature1 }}{{ row.temperature1Type }}
-                            </template>
-                        </template>
-                    </vxe-column>
-
-                    <vxe-colgroup title="次/min">
-                        <vxe-column field="heart" title="心率" width="40"/>
-                        <vxe-column field="pulse1" title="脉搏" width="40"/>
-                    </vxe-colgroup>
-
-                    <vxe-column field="breathe1" title="呼吸" width="40"/>
-                    <vxe-column field="pressure1AmAndPm" title="血压" width="60"/>
-                    <vxe-column field="spo2" title="Sp02%" width="50"/>
-                    <vxe-column field="mind" title="意识" width="40"/>
-
-                    <vxe-colgroup title="入量">
-                        <vxe-column field="col1Name" title="名称" width="100"/>
-                        <vxe-column field="col1Am" title="ml" width="40"/>
-                    </vxe-colgroup>
-
-                    <vxe-colgroup title="出量">
-                        <vxe-column field="col2Name" title="名称" width="80"/>
-                        <vxe-column field="col2Am" title="ml" width="40"/>
-                        <vxe-column title="颜色" field="urineColor" width="40"/>
-                        <vxe-column title="状态" field="shitShape" width="40"/>
-                    </vxe-colgroup>
-
-                    <vxe-column field="skin" title="皮肤" width="40"/>
-
-
-                    <vxe-colgroup title="管道">
-                        <vxe-column field="tubesName" title="管道名称" width="90"/>
-                        <vxe-column field="tubesStatus" title="管道情况" width="90"/>
-                    </vxe-colgroup>
-
-                    <vxe-column field="glu" title="血糖" width="40"/>
-                    <vxe-column field="otherInfo" title="护理措施及效果" min-width="250"/>
-
-                    <vxe-column field="userid" title="护士" width="70">
-                        <template #default="{row,rowIndex}">
-                            <component :is="timePlsy(row,row.userid , rowIndex)"/>
-                        </template>
-                    </vxe-column>
-
-                </vxe-table>
+    <div style="flex: 1;color: red">
+      注意:体温单位为℃脉搏单位为”次m1n”,血压单位为"mmg”,Sp02
+      单位为“%”,体重单位为”kg”,呼吸单位为“次/min”,血糖单位
+      ”mo1/1”
+    </div>
+  </div>
+  <div style="height: 90%">
+    <el-auto-resizer>
+      <template #default="{ height, width }">
+        <vxe-table :height="height"
+                   border
+                   class="vxe-padding_zero hl-style"
+                   header-row-class-name="padding_zero"
+                   show-overflow
+                   :column-config="{resizable: true}"
+                   :row-config="{ height: 24}"
+                   :row-class-name="rowClassName"
+                   @cell-click="rowClick"
+                   :data="listRef">
+          <vxe-column field="recDateStr" title="日期" width="80">
+            <template #default="{row,rowIndex}">
+              <component :is="dateDisplay(row,row.recDateStr,rowIndex)"/>
+            </template>
+          </vxe-column>
+          <vxe-column title="时间" width="40">
+            <template #default="{row,rowIndex}">
+              <component :is="timePlsy(row,row.recTimeStr,rowIndex)"/>
+            </template>
+          </vxe-column>
+          <vxe-column field="patientState" title="病情" width="50"/>
+          <vxe-column title="体温" width="50">
+            <template #default="{row}">
+              <template v-if="stringIsBlank(row.temperature1)">
+                <span></span>
+              </template>
+              <template v-else>
+                {{ row.temperature1 }}{{ row.temperature1Type }}
+              </template>
+            </template>
+          </vxe-column>
+
+          <vxe-colgroup title="次/min">
+            <vxe-column field="heart" title="心率" width="40"/>
+            <vxe-column field="pulse1" title="脉搏" width="40"/>
+          </vxe-colgroup>
+
+          <vxe-column field="breathe1" title="呼吸" width="40"/>
+          <vxe-column field="pressure1AmAndPm" title="血压" width="60"/>
+          <vxe-column field="spo2" title="Sp02%" width="50"/>
+          <vxe-column field="mind" title="意识" width="40"/>
+
+          <vxe-colgroup title="入量">
+            <vxe-column field="col1Name" title="名称" width="100"/>
+            <vxe-column field="col1Am" title="ml" width="40"/>
+          </vxe-colgroup>
+
+          <vxe-colgroup title="出量">
+            <vxe-column field="col2Name" title="名称" width="80"/>
+            <vxe-column field="col2Am" title="ml" width="40"/>
+            <vxe-column title="颜色" field="urineColor" width="40"/>
+            <vxe-column title="状态" field="shitShape" width="40"/>
+          </vxe-colgroup>
+
+          <vxe-column field="skin" title="皮肤" width="40"/>
+
 
+          <vxe-colgroup title="管道">
+            <vxe-column field="tubesName" title="管道名称" width="90"/>
+            <vxe-column field="tubesStatus" title="管道情况" width="90"/>
+          </vxe-colgroup>
 
+          <vxe-column field="glu" title="血糖" width="40"/>
+          <vxe-column field="otherInfo" title="护理措施及效果" min-width="250"/>
+
+          <vxe-column field="userid" title="护士" width="70">
+            <template #default="{row,rowIndex}">
+              <component :is="timePlsy(row,row.userid , rowIndex)"/>
             </template>
-        </el-auto-resizer>
-    </div>
+          </vxe-column>
+
+        </vxe-table>
+
+
+      </template>
+    </el-auto-resizer>
+  </div>
 </template>
 
 <script setup name='EmrYzTemperature' lang="tsx">
@@ -98,30 +98,35 @@ import {patInfo} from './emr-tools-store';
 import {stringIsBlank} from '@/utils/blank-utils';
 import {stringNotBlank} from "@/utils/blank-utils";
 
+const props = defineProps({
+  patNo: String,
+  times: Number
+})
+
 const dateDisplay = (row, cellData, index) => {
-    let temp = listRef.value[index - 1]
-    if (temp === null || typeof temp === 'undefined') {
-        return <span>{cellData}</span>
-    }
-    if (row.tempDate === temp.tempDate) {
-        return <span></span>
-    } else if (cellData === temp.recDateStr) {
-        return <span></span>
-    } else {
-        return <span>{cellData}</span>
-    }
+  let temp = listRef.value[index - 1]
+  if (temp === null || typeof temp === 'undefined') {
+    return <span>{cellData}</span>
+  }
+  if (row.tempDate === temp.tempDate) {
+    return <span></span>
+  } else if (cellData === temp.recDateStr) {
+    return <span></span>
+  } else {
+    return <span>{cellData}</span>
+  }
 }
 
 const timePlsy = (row, cellData, index) => {
-    let temp = listRef.value[index - 1]
-    if (temp === null || typeof temp === 'undefined') {
-        return <span>{cellData}</span>
-    }
-    if (row.tempDate === temp.tempDate) {
-        return <span></span>
-    } else {
-        return <span>{cellData}</span>
-    }
+  let temp = listRef.value[index - 1]
+  if (temp === null || typeof temp === 'undefined') {
+    return <span>{cellData}</span>
+  }
+  if (row.tempDate === temp.tempDate) {
+    return <span></span>
+  } else {
+    return <span>{cellData}</span>
+  }
 }
 
 const drawer: Ref<boolean> = ref(false)
@@ -131,88 +136,94 @@ const key: Ref<string> = ref('')
 const otherInfo: Ref<string> = ref('')
 
 const rowClick = ({row}) => {
-    key.value = row.tempDate
-    let item = mapRef.value[key.value]
-    let str = '护理记录时间:' + item.tempDate
-
-    if (stringNotBlank(item.patientState)) {
-        str += '病情:' + item.patientState
-    }
-    if (stringNotBlank(item.temperature1)) {
-        str += ',' + '体温:' + item.temperature1 + item.temperature1Type
-    }
-    if (stringNotBlank(item.heart)) {
-        str += ',' + '心率:' + item.heart
-    }
-    if (stringNotBlank(item.pulse1)) {
-        str += ',' + '脉搏:' + item.pulse1
-    }
-    if (stringNotBlank(item.breathe1)) {
-        str += ',' + '呼吸:' + item.breathe1
-    }
-    if (stringNotBlank(item.pressure1AmAndPm)) {
-        str += ',' + '血压:' + item.pressure1AmAndPm
-    }
-    if (stringNotBlank(item.spo2)) {
-        str += ',' + 'Sp02%:' + item.spo2
-    }
-    if (stringNotBlank(item.mind)) {
-        str += ',' + '意识:' + item.mind
-    }
-    if (stringNotBlank(item.col1Name)) {
-        str += ',' + '入量名称:' + item.col1Name
-    }
-    if (stringNotBlank(item.col1Am)) {
-        str += ',' + '入量ml:' + item.col1Am
-    }
-    if (stringNotBlank(item.col2Name)) {
-        str += ',' + '出量名称:' + item.col2Name
-    }
-    if (stringNotBlank(item.col2Am)) {
-        str += ',' + '出量ml:' + item.col2Am
-    }
-    if (stringNotBlank(item.urineColor)) {
-        str += ',' + '颜色:' + item.urineColor
-    }
-    if (stringNotBlank(item.shitShape)) {
-        str += ',' + '状态:' + item.shitShape
-    }
-    if (stringNotBlank(item.skin)) {
-        str += ',' + '皮肤:' + item.skin
-    }
-    if (stringNotBlank(item.tubesName)) {
-        str += ',' + '状态:' + item.tubesName
-    }
-    if (stringNotBlank(item.tubesStatus)) {
-        str += ',' + '管道名称:' + item.tubesStatus
-    }
-    if (stringNotBlank(item.glu)) {
-        str += ',' + '管道情况:' + item.glu
-    }
-    if (stringNotBlank(mapRef.value[key.value]?.otherInfo)) {
-        str += '护理措施及效果:' + mapRef.value[key.value]?.otherInfo
-    }
-    otherInfo.value = str
+  key.value = row.tempDate
+  let item = mapRef.value[key.value]
+  let str = '护理记录时间:' + item.tempDate
+
+  if (stringNotBlank(item.patientState)) {
+    str += '病情:' + item.patientState
+  }
+  if (stringNotBlank(item.temperature1)) {
+    str += ',' + '体温:' + item.temperature1 + item.temperature1Type
+  }
+  if (stringNotBlank(item.heart)) {
+    str += ',' + '心率:' + item.heart
+  }
+  if (stringNotBlank(item.pulse1)) {
+    str += ',' + '脉搏:' + item.pulse1
+  }
+  if (stringNotBlank(item.breathe1)) {
+    str += ',' + '呼吸:' + item.breathe1
+  }
+  if (stringNotBlank(item.pressure1AmAndPm)) {
+    str += ',' + '血压:' + item.pressure1AmAndPm
+  }
+  if (stringNotBlank(item.spo2)) {
+    str += ',' + 'Sp02%:' + item.spo2
+  }
+  if (stringNotBlank(item.mind)) {
+    str += ',' + '意识:' + item.mind
+  }
+  if (stringNotBlank(item.col1Name)) {
+    str += ',' + '入量名称:' + item.col1Name
+  }
+  if (stringNotBlank(item.col1Am)) {
+    str += ',' + '入量ml:' + item.col1Am
+  }
+  if (stringNotBlank(item.col2Name)) {
+    str += ',' + '出量名称:' + item.col2Name
+  }
+  if (stringNotBlank(item.col2Am)) {
+    str += ',' + '出量ml:' + item.col2Am
+  }
+  if (stringNotBlank(item.urineColor)) {
+    str += ',' + '颜色:' + item.urineColor
+  }
+  if (stringNotBlank(item.shitShape)) {
+    str += ',' + '状态:' + item.shitShape
+  }
+  if (stringNotBlank(item.skin)) {
+    str += ',' + '皮肤:' + item.skin
+  }
+  if (stringNotBlank(item.tubesName)) {
+    str += ',' + '状态:' + item.tubesName
+  }
+  if (stringNotBlank(item.tubesStatus)) {
+    str += ',' + '管道名称:' + item.tubesStatus
+  }
+  if (stringNotBlank(item.glu)) {
+    str += ',' + '管道情况:' + item.glu
+  }
+  if (stringNotBlank(mapRef.value[key.value]?.otherInfo)) {
+    str += '护理措施及效果:' + mapRef.value[key.value]?.otherInfo
+  }
+  otherInfo.value = str
 }
-const query = () => {
-    getYzTemperature(patInfo.value.inpatientNo, patInfo.value.admissTimes)
-        .then((res) => {
-            let {list, map} = res
-            drawer.value = true
-            listRef.value = list
-            mapRef.value = map
-        })
+const query = (patNo, times) => {
+
+
+  getYzTemperature(patNo, times)
+      .then((res) => {
+        let {list, map} = res
+        drawer.value = true
+        listRef.value = list
+        mapRef.value = map
+      })
 }
 
 const rowClassName = ({row}) => {
-    if (key.value === row.tempDate) {
-        return 'current row_padding_zero'
-    }
-    return 'row_padding_zero'
+  if (key.value === row.tempDate) {
+    return 'current row_padding_zero'
+  }
+  return 'row_padding_zero'
 }
 
 onMounted(() => {
-    query()
+  if (stringNotBlank(props.patNo)) {
+    query(props.patNo, props.times)
+  } else {
+    query(patInfo.value.inpatientNo, patInfo.value.admissTimes)
+  }
 })
 </script>
 

+ 5 - 2
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/emr-tools-store.ts

@@ -1,10 +1,13 @@
 import {reactive, ref} from 'vue'
 import {VxeGridProps} from "vxe-table";
 
-export const patInfo = ref()
+export const patInfo = ref({
+    inpatientNo: '',
+    admissTimes: 0
+})
 
 
-export const gridOptions  = reactive<VxeGridProps>({
+export const gridOptions = reactive<VxeGridProps>({
     border: true,
     showOverflow: true,
 

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 483 - 480
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/yz-edit/YzEditor.vue


+ 13 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OutpatientAppointments.vue

@@ -0,0 +1,13 @@
+<script setup name="OutpatientAppointments">
+
+
+
+</script>
+
+<template>
+  <button>门诊预约</button>
+</template>
+
+<style scoped lang="scss">
+
+</style>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels