Bladeren bron

Merge branch 'dev1.0' of http://123.207.73.252:3000/lsw/hospital into dev1.0

Ciallo 10 maanden geleden
bovenliggende
commit
c8c0035850

+ 587 - 0
admin-ui/src/views/work/check/index.vue

@@ -0,0 +1,587 @@
+<script>
+import search from '@/views/work/patient/search.vue'
+import service from '@/utils/request'
+import CheckReportItem from '@/views/work/patient/check/checkReportItem.vue'
+import Template from '@/views/work/follow/template/index.vue'
+
+export default {
+  components: { Template, CheckReportItem },
+  dicts: ['discharge_method'],
+  name: 'Check',
+  data() {
+    return {
+      total: 0,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      //科室名称
+      deptName: undefined,
+      // 部门树选项
+      deptOptions: null,
+      //患者表
+      patientList: null,
+      //查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        physician: undefined,
+        patientName: undefined,
+        departmentName: undefined,
+      },
+      dialogVisible: false,
+      /**
+       * @type {{
+    "id": 9,
+    "orcId": 23,
+    "medTechProCode": null,
+    "medTechProName": "电解质四项,葡萄糖测定,肾功四项,肝功七项,心肌酶五项,淀粉酶测定",
+    "reportClass": "1",
+    "reportCompleteTime": "2024-07-23 13:01:09",
+    "signs": "0",
+    "sampleReceivedDate": "2024-07-23 11:29:39",
+    "checkpoint": "血清",
+    "executeDepartmentCode": "313",
+    "executeDepartmentName": "检验科",
+    "isFlag": "0",
+    "reviewDoctorCode": null,
+    "reviewDoctorName": "陆业文",
+    "reportDate": "2024-07-23 13:01:09",
+    "reportNo": string
+}[]}
+       */
+      orcAndObrList: [],
+      reportItemLabelList: [
+        { key: 'reportNo', label: '报告单号' },
+        // { key: "medTechProCode", label: "医技号" },
+        { key: 'medTechProName', label: '医技项目名称' },
+        // { key: 'reportClass', label: '报告单类别名称' },
+        { key: 'reportCompleteTime', label: '报告完成时间' },
+        { key: 'signs', label: '危机标志' },
+        { key: 'sampleReceivedDate', label: '样本收到日期' },
+        { key: 'checkpoint', label: '检查部位或样本' },
+        { key: 'executeDepartmentName', label: '执行科室名称' },
+        // { key: "applyDoctorName", label: "申请医生" },
+        // { key: "testingDoctorName", label: "检验医生信息名称" },
+        { key: 'reviewDoctorName', label: '审核医生' },
+        { key: 'reportDate', label: '报告单日期' },
+      ],
+      timeGroup: {},
+      currentDate: '',
+      currentOrcAndObr: {
+        id: '',
+        orcId: '',
+        medTechProCode: null,
+        medTechProName: '',
+        reportClass: '',
+        reportCompleteTime: '',
+        signs: '0',
+        sampleReceivedDate: '',
+        checkpoint: '',
+        executeDepartmentCode: '',
+        executeDepartmentName: '',
+        isFlag: '',
+        reviewDoctorCode: null,
+        reviewDoctorName: '',
+        reportDate: '',
+        reportNo: '',
+      },
+      currentPatId: '',
+      currentObxList: [],
+      currentObxPaginationParams: {
+        total: 0,
+        pageNum: 0,
+        pageSize: 5,
+      },
+    }
+  },
+
+  watch: {},
+  created() {
+    this.getDepartment()
+  },
+  methods: {
+    service,
+    // 表单重置
+    reset() {
+      this.form = {
+        physician: undefined,
+        name: undefined,
+      }
+      this.resetForm('form')
+    },
+    /** 查询患者列表*/
+    getList() {
+      this.get({
+        url: '/work/visit/patientCard',
+        data: {
+          ...this.queryParams,
+        },
+      }).then((response) => {
+        this.patientList = response.rows
+        this.total = response.total
+      })
+    },
+    /** 查询部门 */
+    getDepartment() {
+      this.get({
+        url: '/work/visit/department',
+      }).then((response) => {
+        this.deptOptions = response.rows
+        console.log(this.patientList)
+      })
+    },
+    handleNodeClick(department) {
+      this.queryParams.departmentName = department
+      this.getList()
+    },
+    selects(rows) {
+      this.ids = rows.map((item) => item.id)
+    },
+    op(tag, row) {
+      if (tag === 'search') {
+        this.iframe({
+          obj: search,
+          param: {
+            id: row.patId,
+            cardId: row.cardId,
+            name: row.name,
+            department: row.department,
+          },
+          title: '查看患者信息',
+          width: '90%',
+          height: '90%',
+        })
+      }
+    },
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    /**
+     * 显示检测信息弹窗
+     */
+    showCheckInfoWindow(patient) {
+      this.dialogVisible = true
+      this.currentPatId = patient.patId
+
+      service
+        .get(`work/request/patid/${this.currentPatId}`)
+        .then((response) => {
+          // console.log(response.rows)
+          this.orcAndObrList = response.rows
+          console.log(this.orcAndObrList)
+          const dates = this.orcAndObrList.map((item) =>
+            this.handleDate(item.reportDate),
+          )
+          this.timeGroup = this.organizeDates(dates)
+        })
+    },
+    fillReportItem(reportItemLabelList) {
+      const filledList = [...reportItemLabelList]
+
+      const remainder = filledList.length % 3
+      if(remainder !== 0) {
+
+        const num = 3 - remainder
+
+        for (let i = num; i > 0; i--) {
+          filledList.push({ key: ``, label: '' })
+        }
+      }
+      return filledList
+    },
+    /**
+     * 处理字符串日期
+     * @param {string} dateString 字符串日期
+     * @example
+     * ```
+     * dateString取值2024-07-23 12:28:42时,
+     * 函数将返回{year: '2024', month: '07', day: '23', time: '12:28:42'}
+     * ```
+     * @return {{year: string, month: string, day: string, time: string}}
+     */
+    handleDate(dateString) {
+      //先把年月日和当天时间分离 2024-07-23 12:28:42->['2024-07-23','12:28:42']
+      const [yearMonthDay, time] = dateString.split(' ')
+
+      //接着把年月日分离 '2024-07-23'->['2024','07','23']
+      const [year, month, day] = yearMonthDay.split('-')
+
+      return {
+        year,
+        month,
+        day,
+        time,
+      }
+    },
+    /**
+     * 处理日期数组
+     * @param {{year: string, month: string, day: string, time: string}[]} dates
+     * @return {Record<string,Record<string,Record<string,string[]>>>}
+     * @example
+     * ```
+     * dates取值[
+      { year: '2024', month: '07', day: '23', time: '18:23:23' },
+      { year: '2024', month: '07', day: '23', time: '20:23:23' },
+      { year: '2024', month: '08', day: '24', time: '12:23:23' },
+      { year: '2023', month: '04', day: '08', time: '14:23:23' }
+    ],
+      函数返回
+    {
+      '2023': { '04': { '08': '14:23:23' } },
+      '2024': { '07': { '23': ['18:23:23','20:23:23'] }, '08': { '24': ['12:23:23'] } }
+    }
+     * ```
+     */
+    organizeDates(dates) {
+      const result = {}
+      dates.forEach((date) => {
+        const { year, month, day, time } = date
+        if (!result[year]) {
+          result[year] = {}
+        }
+        if (!result[year][month]) {
+          result[year][month] = {}
+        }
+        if (!result[year][month][day]) {
+          result[year][month][day] = []
+        }
+        result[year][month][day].push(time)
+        // console.log(result)
+      })
+      return result
+    },
+    /**
+     * 弹窗左侧菜单项点击事件剩余处理逻辑
+     */
+    menuItemClick() {
+      this.getObxList()
+    },
+    getObxList() {
+      service
+        .get(`work/result/patid/${this.currentPatId}`, {
+          data: { ...this.currentObxPaginationParams },
+        })
+        .then((res) => {
+          /*
+          {
+              "total": 16,
+              "rows": [...]
+              "code": 200,
+              "msg": "查询成功",
+              "pages": 2
+          }
+          * */
+          this.currentObxPaginationParams.total = res.total
+          this.currentObxList = res.rows
+          // 单独处理sign字段
+          this.currentObxList.forEach(item => {
+            console.log(item.sign)
+            item.sign = this.mapHighSign(item.sign)
+          })
+        })
+    },
+    /**
+     * 映射危机标志的对应含义
+     * @param {string} signs 危机标志数值
+     * @return {string} 危机标志对应含义
+     */
+    mapSigns(signs) {
+      switch (signs) {
+        case '0': return '正常'
+        case '1': return '危机'
+        default: return ''
+      }
+    },
+    // mapReportClass(reportClass) {
+    //     switch (reportClass) {
+    //     case 1: return '正常'
+    //     case 3: return '危机'
+    //     default: return '无意义的值'
+    //   }
+    // },
+    /**
+     * 映射高低标志的对应含义
+     * @param {string} sign 高低标志
+     * @return {string} 高低标志对应含义
+     */
+    mapHighSign(sign) {
+            switch (sign) {
+        case '0': return '正常'
+        case '1': return '偏低'
+        case '2': return '偏高'
+        default: return ''
+      }
+    }
+  },
+}
+</script>
+
+<template>
+  <div class="app-container">
+    <!-- 行容器 -->
+    <el-row :gutter="20" style="height: 100%">
+      <!-- 列容器 -->
+      <!-- 左边的列表,显示各个科室 -->
+      <el-col
+        :span="4"
+        style="
+          box-shadow: 0 3px 10px 0 rgb(0 0 0 / 6%);
+          border-right: 1px solid #f1f2f4;
+          overflow-y: auto;
+          height: 100%;
+        "
+      >
+        <el-menu v-for="(item, index) in deptOptions">
+          <el-menu-item @click="handleNodeClick(item.department)" :key="index">
+            <span slot="title">{{ item.department }}</span>
+          </el-menu-item>
+        </el-menu>
+      </el-col>
+      <!-- 患者诊断记录列表 -->
+      <el-col :span="20" style="height: 100%">
+        <el-form :model="queryParams" ref="queryForm" :inline="true">
+          <el-form-item prop="physician">
+            <el-input
+              v-model="queryParams.physician"
+              placeholder="请输入主治医生"
+              clearable
+              @keyup.enter.native="handleQuery"
+              class="se"
+            />
+          </el-form-item>
+          <el-form-item prop="patientName">
+            <el-input
+              v-model="queryParams.patientName"
+              placeholder="请输入患者姓名"
+              clearable
+              @keyup.enter.native="handleQuery"
+              class="se"
+            />
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" @click="handleQuery"
+              >搜索</el-button
+            >
+            <el-button icon="el-icon-refresh" @click="resetQuery"
+              >重置</el-button
+            >
+          </el-form-item>
+        </el-form>
+        <el-table
+          :data="patientList"
+          border
+          @selection-change="selects"
+          height="calc(100vh - 230px)"
+        >
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="科室" align="center" prop="department" />
+          <el-table-column label="患者姓名" align="center" prop="name" />
+          <el-table-column label="主治医生" align="center" prop="physician" />
+          <el-table-column
+            label="出院方式"
+            align="center"
+            prop="dischargeMethod"
+          >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.discharge_method"
+                :value="scope.row.dischargeMethod"
+              ></dict-tag>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="出院时间"
+            align="center"
+            prop="dischargeTime"
+          />
+          <el-table-column
+            label="操作"
+            align="center"
+            class-name="small-padding fixed-width"
+            fixed="right"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-search"
+                @click="showCheckInfoWindow(scope.row)"
+              >
+                <!--  通过patId获取orc和obr的结果  -->
+                查看该患者相关检测报告
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          v-if="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
+    <!-- 检查信息弹窗 -->
+    <el-dialog
+      width="90%"
+      top="5vh"
+      style="height: 90vh"
+      title="患者检查报告相关信息"
+      :before-close="() => {dialogVisible = false; currentObxList=[];currentOrcAndObr=[]}"
+      :visible.sync="dialogVisible"
+    >
+      <!-- 弹窗关闭时清空currentObxList和currentOrcAndObr -->
+      <el-row class="tac" :gutter="10">
+        <!-- 左侧时间菜单 -->
+        <el-col :span="4">
+          <el-menu default-active="1" class="el-menu-vertical-demo" style="height: 200px;">
+            <el-submenu
+              v-for="(year, yearIndex) in Object.keys(timeGroup)"
+              :index="yearIndex"
+            >
+              <template slot="title">
+                <span>{{ year }}年</span>
+              </template>
+              <el-submenu
+                v-for="(month, monthIndex) in Object.keys(timeGroup[year])"
+                :index="`${yearIndex}-${monthIndex}`"
+              >
+                <template slot="title">
+                  <span>{{ month }}月</span>
+                </template>
+                  <el-submenu
+                    v-for="(day, dayIndex) in Object.keys(
+                      timeGroup[year][month],
+                    )"
+                    :index="`${yearIndex}-${monthIndex}-${dayIndex}`"
+                  >
+                    <template slot="title">
+                      <span>{{ day }}日</span>
+                    </template>
+                    <el-menu-item
+                      v-for="(time, timeIndex) in timeGroup[year][month][day]"
+                      :index="`${yearIndex}-${monthIndex}-${dayIndex} ${timeIndex}`"
+                      @click="
+                        currentDate = `${year}-${month}-${day} ${time}`
+                        currentOrcAndObr = orcAndObrList.find(
+                          (item) => item.reportDate === currentDate,
+                        )
+                        menuItemClick()
+                      "
+                    >
+                      <span>{{ time }}</span>
+                    </el-menu-item>
+                  </el-submenu>
+              </el-submenu>
+
+            </el-submenu>
+          </el-menu>
+        </el-col>
+
+        <el-col :span="20" style="overflow-y: scroll">
+          <!-- 右侧上方详细检测报告 -->
+          <el-descriptions
+            class="margin-top"
+            title="详细检测报告"
+            :column="3"
+            border
+          >
+            <el-descriptions-item
+              v-for="item in fillReportItem(reportItemLabelList)"
+              :key="item.key"
+              :label="item.label"
+            >
+              <span v-if="currentOrcAndObr[item.key] && item.key !=='signs'">{{ currentOrcAndObr[item.key] }}</span>
+              <span v-else-if="item.key ==='signs'">{{ mapSigns(currentOrcAndObr[item.key]) }}</span>
+              <span v-else>{{ '' }}</span>
+
+            </el-descriptions-item>
+          </el-descriptions>
+
+          <!-- 右侧下方各项检测结果展示表格 -->
+          <div id="patient-check-projects-table">
+            <el-table width="100%" stripe  :data="currentObxList">
+              <el-table-column
+                label="医技项目名称"
+                align="center"
+                prop="mecTechObsName"
+              ></el-table-column>
+              <el-table-column
+                label="项目信息结果"
+                align="center"
+                prop="result"
+              ></el-table-column>
+              <el-table-column
+                label="项目单位"
+                align="center"
+                prop="unitCode"
+              ></el-table-column>
+              <el-table-column
+                label="结果参考值"
+                align="center"
+                prop="result"
+              ></el-table-column>
+              <el-table-column
+                label="高低标志"
+                align="center"
+                prop="sign"
+              ></el-table-column>
+              <el-table-column
+                label="微生物观察分类"
+                align="center"
+                prop="obsClassification"
+              ></el-table-column>
+              <el-table-column
+                label="检验方法"
+                align="center"
+                prop="testMethod"
+              ></el-table-column>
+            </el-table>
+            <el-pagination
+              layout="prev, pager, next"
+              :total="currentObxPaginationParams.total"
+              :page.sync="currentObxPaginationParams.pageNum"
+              :limit.sync="currentObxPaginationParams.pageSize"
+              @pagination="getObxList"
+            >
+            </el-pagination>
+          </div>
+        </el-col>
+      </el-row>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogVisible = false">
+          确 定
+        </el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<style scoped>
+#check-report {
+  padding: 1% 5%;
+  width: 100%;
+  display: flex;
+  justify-content: space-evenly;
+  flex-wrap: wrap;
+
+  margin-bottom: 50px;
+}
+
+
+#patient-check-projects-table {
+  min-height: 300px;
+  margin-top: 5vh;
+}
+</style>

+ 0 - 76
admin-ui/src/views/work/patient/check/checkInitValues.js

@@ -1,76 +0,0 @@
-/**
- * 科室-病人类型的初始值
- * @type {import('index').Patient}
- */
-export const PATIENT_INIT_VALUE = {
-        patId: "",
-        cardId: "",
-        pvId: "",
-        department: "",
-        physician: "",
-        name: "",
-        dischargeMethod: "",
-        dischargeTime: "",
-      }
-
-/**
- * 病人某个检查项目
- * @type {import('index').Obx}
- */
-export const OBX_INIT_VALUE = {
-        id: 0,
-        mecTechObsName: "",
-        mecTechObsProject: "",
-        obrId: 0,
-        obsClassification: null,
-        obsProjectDetail: "",
-        patientId: 0,
-        projectInfo: null,
-        result: "",
-        serialNo: null,
-        sign: "1",
-        testMethod: null,
-        unitCode: "",
-        unitName: null,
-      }
-
-/**
- * 病人某个检查项目的详细报告的初始值
- * @type {import('index').Obr}
- */
-export const OBR_INIT_VALUE = {
-        id: 0,
-        cardId: "",
-        orderCode: null,
-        applicationNo: null,
-        medOrderCode: null,
-        reportNo: "",
-        medOrderNo: null,
-        medTechProInfo: "",
-        medTechProName: null,
-        reportClass: "1",
-        medOrderAppTime: null,
-        chkStartTime: "",
-        reportStatus: "0",
-        examinePart: "",
-        appEmployeeId: "",
-        appEmployeeName: "",
-        appDeptCode: "",
-        appDeptName: null,
-        executeDeptCode: "",
-        executeDeptName: "",
-        releaseTime: "",
-        repTypeCode: "",
-        resultFlag: "",
-        repType: "",
-        checkEmployeeId: "",
-        checkEmployeeName: "",
-        checkTime: "",
-        publisherEmployeeId: "",
-        publisherEmployeeName: "",
-        publisherTime: "",
-        reportEntryId: "",
-        reportEntryName: "",
-        enterTime: "",
-        bookingNo: "",
-      }

+ 0 - 111
admin-ui/src/views/work/patient/check/checkProjectDetailReport.vue

@@ -1,111 +0,0 @@
-<script>
-import CheckReportItem from "./checkReportItem.vue";
-
-export default {
-  name: "checkDetailReport",
-  components: { CheckReportItem },
-  props: {
-    obr: {
-      type: Object,
-      required: true,
-      default: function () {
-        return {
-          medTechProCode: "医疗技术单号",
-        };
-      },
-    },
-  },
-  methods: {
-    // generateReportItem() {
-    //   // 获取prop报告表单的数据obr的所有键值,同时把形如id, cardId, reportEntryId等键值过滤掉
-    //   return Object.keys(this.$props.obr).filter(
-    //     (key) => !key.match(/[a-z]Id|id/),
-    //   );
-    // },
-    /**
-     * 填充报告单项
-     */
-    fillReportItem(reportItemLabelList) {
-      const filledList = [...reportItemLabelList];
-
-      const remainder =  filledList.length % 3
-      const num = 3 - remainder;
-
-      for (let i = num; i >0; i--) {
-        filledList.push({key: `filled${i}`, label: "null"})
-      }
-      return filledList;
-    }
-  },
-  data() {
-    return {
-      // itemLabels: {
-      //   label: "content",
-      // },
-      reportItemLabelList: [
-        { key: "reportNo", label: "报告单号" },
-        // { key: "medTechProCode", label: "医技号" },
-        { key: "medTechProName", label: "医技项目名称" },
-        { key: "reportClass", label: "报告单类别名称" },
-        { key: "reportCompleteTime", label: "报告完成时间" },
-        { key: "signs", label: "危机标志" },
-        { key: "sampleReceivedDate", label: "样本收到日期" },
-        { key: "checkpoint", label: "检查部位或样本" },
-        { key: "executeDepartmentName", label: "执行科室名称" },
-        // { key: "applyDoctorName", label: "申请医生" },
-        // { key: "testingDoctorName", label: "检验医生信息名称" },
-        { key: "reviewDoctorName", label: "审核医生" },
-        { key: "reportDate", label: "报告单日期" },
-      ],
-      /*
-      {
-    "id": 27,
-    "orcId": 27,
-    "medTechProCode": null,
-    "medTechProName": "丙型肝炎抗体测定(Anti-HCV),人免疫缺陷病毒抗体测定(Anti-HIV),梅毒螺旋体特异抗体测定",
-    "reportClass": "3",
-    "reportCompleteTime": "2024-07-23 11:43:50",
-    "signs": "0",
-    "sampleReceivedDate": "2024-07-22 09:50:34",
-    "checkpoint": "血清",
-    "executeDepartmentCode": "313",
-    "executeDepartmentName": "检验科",
-    "isFlag": "0",
-    "reviewDoctorCode": "1356",
-    "reviewDoctorName": "梁静",
-    "reportDate": "2024-07-23 11:43:50",
-    "reportNo": "3455018"
-}
-       */
-    };
-  },
-  created() {
-    // this.$data.itemLabels = this.generateReportItem();
-  },
-};
-</script>
-
-<template>
-  <div id="check-report">
-    <check-report-item
-      item-width="30%"
-      v-for="item in fillReportItem(reportItemLabelList)"
-      :key="item.key"
-      :report-label="item.label"
-      :report-content="obr[item.key] || ''"
-      :item-hide = "item.label === 'null'"
-    />
-  </div>
-</template>
-
-<style scoped>
-#check-report {
-  padding: 1% 5%;
-  width: 100%;
-  display: flex;
-  justify-content: space-evenly;
-
-  flex-wrap: wrap;
-  overflow: scroll;
-}
-</style>

+ 0 - 87
admin-ui/src/views/work/patient/check/checkReportItem.vue

@@ -1,87 +0,0 @@
-<script>
-export default {
-  name: "checkReportItem",
-  props: {
-    /**
-     * 报告项的说明标签
-     */
-    reportLabel: {
-      type: String,
-      default: "label",
-    },
-    /**
-     * 报告项的内容
-     */
-    reportContent: {
-      type: String,
-      default: "content",
-    },
-    /**
-     * 占位空项的标志,值为true时报告项的说明标签和内容都被隐藏
-     */
-    itemHide: {
-      type: Boolean,
-      required: false,
-    },
-    /**
-     * 报告项总体宽度
-     */
-    itemWidth: {
-      type: String,
-    },
-  },
-};
-</script>
-
-<template>
-  <div
-    class="check-report-item"
-    :class="{ 'check-report-item-hidden': itemHide }"
-    :style="`width: ${itemWidth};`"
-  >
-    <div class="check-report-item-label">
-      <p>{{ reportLabel }}</p>
-
-    </div>
-    <div class="check-report-item-content">
-      <p>{{ reportContent }}</p>
-    </div>
-  </div>
-</template>
-
-<style scoped>
-.check-report-item {
-  display: flex;
-  min-height: 45px;
-  line-height: 45px;
-}
-.check-report-item-label,
-.check-report-item-content {
-  border: 1px solid #afafaf;
-  /*  防止边框重叠 */
-  margin-right: -1px;
-  margin-bottom: -1px;
-  box-sizing: border-box;
-
-  align-content: center;
-}
-
-.check-report-item-label {
-  width: 45%;
-  text-align: left;
-  background-color: #e1e1e1;
-  font-size: 14px;
-  padding-left: 2%;
-
-}
-
-.check-report-item-content {
-  flex: 1;
-  text-align: center;
-  background-color: #fff;
-}
-
-.check-report-item-hidden {
-  color: transparent;
-}
-</style>

+ 0 - 128
admin-ui/src/views/work/patient/check/index.d.ts

@@ -1,128 +0,0 @@
-/**
- * 检测项目
-* @property {number} id - 主键ID
- * @property {number|null} obrId - 就诊id
- * @property {string|null} serialNo - 序号
- * @property {string|null} dataType - 数据类型
- * @property {string|null} mecTechObsProject - 医技观察项目
- * @property {string|null} mecTechObsName - 医技项目名称
- * @property {string|null} obsProjectDetail - 观察子项
- * @property {string|null} projectInfo - 项目结果信息
- * @property {string|null} unitCode - 项目单位 单位代码
- * @property {string|null} unitName - 项目单位 单位名称
- * @property {string|null} result - 结果参考值
- * @property {string|null} sign - 高低标志
- * @property {string|null} obsClassification - 微生物观察分类
- * @property {string|null} testMethod - 检验方法
- * @property {number|null} patientId - 患者ID
- */
-export interface Obx {
-  id: number;
-  obrId?: number;
-  serialNo?: string;
-  dataType?: string;
-  mecTechObsProject?: string;
-  mecTechObsName?: string;
-  obsProjectDetail?: string;
-  projectInfo?: string;
-  unitCode?: string;
-  unitName?: string;
-  result?: string;
-  sign?: string;
-  obsClassification?: string;
-  testMethod?: string;
-  patientId?: number;
-}
-
-export type ObxList = Obx[];
-
-export interface Patient {
-  patId?: string;
-  cardId?: string;
-  pvId?: string,
-  department: string,
-  physician: string,
-  name: string,
-  dischargeMethod?: string,
-  dischargeTime?: string,
-}
-
-export type PatientList = Patient[]
-
-/**
- * 每个检查项目(obx)的详细检测报告
- * @property {number} id - 主键ID
- * @property {string|null} cardId - 就诊卡号
- * @property {number|null} ordersId - 医嘱ID
- * @property {string|null} medOrderCode - 医嘱明细序号
- * @property {string} reportNo - 报告单号
- * @property {string|null} medOrderNo - 医技号
- * @property {string|null} medTechProInfo - 医技项目代码
- * @property {string|null} medTechProName - 医技项目名称
- * @property {string|null} reportClass - 报告单类别名称
- * @property {string|null} reportStatus - 危机报告标志
- * @property {string|null} examinePart - 检查部位或样本名称
- * @property {string|null} appEmployeeId - 申请医生代码
- * @property {string|null} appEmployeeName - 申请医生姓名
- * @property {string|null} appDeptCode - 申请科室代码
- * @property {string|null} appDeptName - 申请科室名称
- * @property {string|null} executeDeptCode - 执行科室代码
- * @property {string|null} executeDeptName - 执行科室名称
- * @property {string|null} medOrderAppTime - 医嘱申请时间
- * @property {string|null} chkStartTime - 检验或检查开始时间
- * @property {string|null} releaseTime - 发布时间
- * @property {string|null} repTypeCode - 报告单类别编码
- * @property {string|null} resultFlag - 结果标志
- * @property {string|null} repType - 报告类型
- * @property {string|null} checkEmployeeId - 报告审核Id
- * @property {string|null} checkEmployeeName - 报告审核者
- * @property {string|null} checkTime - 审核日期
- * @property {string|null} publisherEmployeeId - 报告发布者id
- * @property {string|null} publisherEmployeeName - 报告发布者
- * @property {string|null} publisherTime - 发布时间
- * @property {string|null} reportEntryId - 报告录入人ID
- * @property {string|null} reportEntryName - 报告录入人名称
- * @property {string|null} enterTime - 报告单日期
- * @property {string|null} bookingNo - 预约单号
- * @property {number|null} patientId - 患者ID
- */
-export interface Obr {
-  applicationNo: null;
-  orderCode: null;
-  id: number;
-  cardId?: string;
-  ordersId?: number;
-  medOrderCode?: string;
-  reportNo: string;
-  medOrderNo?: string;
-  medTechProInfo?: string;
-  medTechProName?: string;
-  reportClass?: string;
-  medOrderAppTime?: string;
-  chkStartTime?: string;
-  reportStatus?: string;
-  examinePart?: string;
-  appEmployeeId?: string;
-  appEmployeeName?: string;
-  appDeptCode?: string;
-  appDeptName?: string;
-  executeDeptCode?: string;
-  executeDeptName?: string;
-  releaseTime?: string;
-  repTypeCode?: string;
-  resultFlag?: string;
-  repType?: string;
-  checkEmployeeId?: string;
-  checkEmployeeName?: string;
-  checkTime?: string;
-  publisherEmployeeId?: string;
-  publisherEmployeeName?: string;
-  publisherTime?: string;
-  reportEntryId?: string;
-  reportEntryName?: string;
-  enterTime?: string;
-  bookingNo?: string;
-  patientId?: number;
-}
-
-export type ObrList = Obr[];

+ 0 - 175
admin-ui/src/views/work/patient/check/index.vue

@@ -1,175 +0,0 @@
-<script>
-import CheckDetailReport from "@/views/work/patient/check/checkProjectDetailReport.vue";
-
-import {
-  OBR_INIT_VALUE,
-
-} from "@/views/work/patient/check/checkInitValues";
-
-import service from "@/utils/request";
-
-export default {
-  components: { CheckDetailReport },
-  name: "PatientCheck",
-  props: {
-    checkWindowShow: {
-      type: Boolean,
-      default: false,
-    },
-    patientInfo: {
-      type: Object,
-      default: function () {
-        return {
-          id: "",
-          name: "",
-        };
-      },
-    },
-  },
-  data() {
-    return {
-
-      testData: null,
-
-      /**
-       * 当前检查项目相关信息
-       * @property {number} obxTotal - 患者检查项目总数
-       * @property {import('./index').ObxList} pageObxList - 当前要查看的患者的所有检查项目,注意是分页后的某一的结果
-       * @property {import('./index').Obr} obr - 当前需要查看的详细检测报告
-       */
-      currentCheckInfo: {
-        obxTotal: 0,
-        pageObxList: [],
-        obxQueryParams: {
-          pageNum: 0,
-          pageSize: 0,
-        },
-        obr: OBR_INIT_VALUE,
-      },
-    };
-  },
-  watch: {
-    checkWindowShow: {
-      handler: function (newVal) {
-        // console.log(`checkWindowShow的值被设为${newVal}`)
-        if(newVal) {
-
-          service.get(`work/result/list`)
-          .then(res => {
-            this.currentCheckInfo.pageObxList = res.rows
-          })
-        }
-
-      }
-    }
-  },
-  methods: {
-    showDetailReport (obrId) {
-
-      service.get(`work/request/patid/${this.patientInfo.id}`)
-      .then(res => {
-
-
-        this.currentCheckInfo.obr = res.rows.find(item => item.id === obrId)
-        console.log(this.currentCheckInfo.obr)
-      })
-    }
-  }
-};
-</script>
-
-<template>
-  <div class="patient-check-projects">
-    <el-dialog
-      :title="`${patientInfo.name}的检测项目相关信息`"
-      :visible="checkWindowShow"
-      :before-close="() => $emit('update:checkWindowShow', false)"
-      width="80%"
-      top="5%"
-      center
-    >
-      <el-tabs value="1">
-        <el-tab-pane label="检测项目表" name="1" style="height: 400px">
-          <div id="patient-check-projects-list">
-            <el-table
-              width="75vw"
-              stripe
-              :data="currentCheckInfo.pageObxList"
-            >
-              <el-table-column
-                label="诊断名称"
-                align="center"
-                prop="mecTechObsProject"
-              ></el-table-column>
-              <el-table-column
-                label="项目信息结果"
-                align="center"
-                prop="result"
-              ></el-table-column>
-              <el-table-column
-                label="项目单位"
-                align="center"
-                prop="unitCode"
-              ></el-table-column>
-              <el-table-column
-                label="结果参考值"
-                align="center"
-                prop="result"
-              ></el-table-column>
-              <el-table-column
-                label="高低标志"
-                align="center"
-                prop="sign"
-              ></el-table-column>
-              <el-table-column
-                label="微生物观察分类"
-                align="center"
-                prop="obsClassification"
-              ></el-table-column>
-              <el-table-column
-                label="检验方法"
-                align="center"
-                prop="testMethod"
-              ></el-table-column>
-              <el-table-column label="操作" align="center">
-                <template slot-scope="scope">
-
-                  <el-button
-                    type="text"
-                    icon="el-icon-search"
-                    @click="showDetailReport(scope.row.obrId)"
-                  >
-                    查看详细检验报告
-                  </el-button>
-                </template>
-              </el-table-column>
-            </el-table>
-
-            <pagination
-              :total="currentCheckInfo.obxTotal"
-              :page.sync="currentCheckInfo.obxQueryParams.pageNum"
-              :limit.sync="currentCheckInfo.obxQueryParams.pageSize"
-              @pagination="
-              "
-            />
-          </div>
-        </el-tab-pane>
-        <el-tab-pane
-          label="详细检测报告"
-          name="2"
-           style="height: 400px"
-        >
-          <check-detail-report :obr="currentCheckInfo.obr" />
-        </el-tab-pane>
-      </el-tabs>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button
-          type="primary"
-          @click="$emit('update:checkWindowShow', false)"
-          >确 定</el-button
-        >
-      </span>
-    </el-dialog>
-  </div>
-</template>

+ 1 - 19
admin-ui/src/views/work/patient/index.vue

@@ -39,15 +39,11 @@
           <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button size="mini" type="text" icon="el-icon-search" @click="op('search',scope.row)" v-hasPermi="['work:dg:edit']">查看</el-button>
-                        <el-button size="mini" type="text" icon="el-icon-search" @click="()=>{checkWindowShow = true; currentPatientInfo = {id: scope.row.patId, name: scope.row.name}}">
-                查看检查项目
-              </el-button>
-<!--              检测项目信息弹窗-->
             </template>
           </el-table-column>
         </el-table>
         <pagination v-if="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-         <patient-check :check-window-show.sync="checkWindowShow" :patient-info="currentPatientInfo" />
+
       </el-col>
     </el-row>
   </div>
@@ -83,20 +79,6 @@ export default {
         patientName:undefined,
         departmentName:undefined,
       },
-            /**
-       * 控制检测项目信息弹窗是否显示
-       * @type {boolean} - 取值true显示弹窗
-       */
-      checkWindowShow: false,
-      /**
-       * 当前需要查看的病人信息
-       * @property {string} id - 病人Id
-       * @property {string} name - 病人姓名
-       */
-      currentPatientInfo: {
-        id: '',
-        name: ''
-      }
     };
   },
   watch: {