|
@@ -1,235 +0,0 @@
|
|
|
-<template>
|
|
|
- <div style="height: 10%;display: flex">
|
|
|
- <el-button @click="copyClick">复制选中的值</el-button>
|
|
|
- <div class="describe">
|
|
|
- <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.substring(0, 13) + inspectionHeader.aply_CNTN.substring(13)"/>
|
|
|
- </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>
|
|
|
- <div class="container">
|
|
|
- <el-auto-resizer>
|
|
|
- <template #default="{ height, width }">
|
|
|
- <div style="display: flex">
|
|
|
- <div class="sidebar">
|
|
|
- <xc-table-v3 :height="height"
|
|
|
- @row-click="sidebarRow"
|
|
|
- :data="sidebarList"
|
|
|
- :columns="sidebarColums"/>
|
|
|
- </div>
|
|
|
- <div class="main">
|
|
|
- <xc-table-v3 :height="height"
|
|
|
- ref="tableRef"
|
|
|
- :data="mainList"
|
|
|
- :columns="mainColums"/>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-auto-resizer>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script setup name='EmrTest' lang="tsx">
|
|
|
-// 查询检验
|
|
|
-import {getServerDateApi} from "@/api/public-api";
|
|
|
-import {queryInspectionDetail, queryInspectionsIndex} from '@/api/inspections'
|
|
|
-import {patInfo} from './emr-tools-store'
|
|
|
-import {onMounted, ref} from "vue";
|
|
|
-import XcTableV3 from "@/components/xiao-chan/xc-table-v3/XcTableV3.vue";
|
|
|
-import {XcColumn} from "@/components/xiao-chan/xc-table-v3/XcColumn";
|
|
|
-import {xcMessage} from '@/utils/xiaochan-element-plus'
|
|
|
-import TestDescribe from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/test-describe.vue";
|
|
|
-
|
|
|
-const emits = defineEmits(['close'])
|
|
|
-const sidebarList = ref()
|
|
|
-const mainList = ref()
|
|
|
-const tableRef = ref()
|
|
|
-const inspectionHeader = ref({
|
|
|
- aply_CNTN: ''
|
|
|
-})
|
|
|
-const query = async () => {
|
|
|
- const param = {
|
|
|
- type: 1,
|
|
|
- content: patInfo.value.inpatientNo,
|
|
|
- start: patInfo.value.admissDate,
|
|
|
- end: await getServerDateApi(),
|
|
|
- }
|
|
|
- queryInspectionsIndex(param).then((res) => {
|
|
|
- sidebarList.value = res
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-const sidebarColums: XcColumn<any>[] = [
|
|
|
- {title: '名称', key: 'aply_CTNT'}
|
|
|
-]
|
|
|
-
|
|
|
-const mainColums: XcColumn<any>[] = [
|
|
|
- {title: '选择', type: 'selection'},
|
|
|
- {title: '名称', key: 'itm_NAME'},
|
|
|
- {title: '结果', key: 'itm_SRC_VALUE'},
|
|
|
- {title: '单位', key: 'itm_UNIT'},
|
|
|
- {title: '说明', key: 'itm_ALERT'},
|
|
|
- {title: '参考值', key: 'range'},
|
|
|
-]
|
|
|
-
|
|
|
-const sidebarRow = (row) => {
|
|
|
- tableRef.value.table().clearSelection()
|
|
|
- queryInspectionDetail(row.ordr_ID).then((res) => {
|
|
|
- mainList.value = res.inspectionItems
|
|
|
- inspectionHeader.value = res.inspectionHeader
|
|
|
- console.log(res)
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-const copyClick = () => {
|
|
|
- let temp = tableRef.value.table().getSelectionRows()
|
|
|
- if (temp.length === 0) {
|
|
|
- xcMessage.error('请先选选择数据')
|
|
|
- }
|
|
|
- let data = ''
|
|
|
- temp.forEach(item => {
|
|
|
- data += `${item.itm_NAME} ${item.itm_VALUE} ${item.itm_UNIT} ${item.range}\n`
|
|
|
- })
|
|
|
-
|
|
|
- let copyData = {
|
|
|
- content: [{type: 'text', data}],
|
|
|
- plainText: data,
|
|
|
- }
|
|
|
- window.localStorage.setItem(
|
|
|
- "clipBoardData",
|
|
|
- JSON.stringify(copyData)
|
|
|
- )
|
|
|
- xcMessage.success('复制成功')
|
|
|
- emits('close')
|
|
|
-}
|
|
|
-
|
|
|
-function filterSex(val) {
|
|
|
- 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 ''
|
|
|
-}
|
|
|
-
|
|
|
-onMounted(() => {
|
|
|
- query()
|
|
|
-})
|
|
|
-
|
|
|
-</script>
|
|
|
-
|
|
|
-<style scoped lang="scss">
|
|
|
-.container {
|
|
|
- width: 100%;
|
|
|
- height: 90%;
|
|
|
-}
|
|
|
-
|
|
|
-.sidebar {
|
|
|
- width: 220px;
|
|
|
-}
|
|
|
-
|
|
|
-.main {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
-}
|
|
|
-
|
|
|
-.describe {
|
|
|
- width: 100%;
|
|
|
- margin-left: 20px;
|
|
|
- font-size: 12px;
|
|
|
-
|
|
|
- .pat-info {
|
|
|
- display: flex;
|
|
|
-
|
|
|
- div {
|
|
|
- padding: 5px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .test-date {
|
|
|
- display: flex;
|
|
|
-
|
|
|
- div {
|
|
|
- padding: 5px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
-</style>
|