|
@@ -1,26 +1,218 @@
|
|
|
<template>
|
|
|
<page-layer>
|
|
|
- <template #header>
|
|
|
- 住院号:
|
|
|
- <el-input style="width: 120px" v-model="patNo"/>
|
|
|
- 姓名:
|
|
|
- <el-input style="width: 120px;"/>
|
|
|
+ <template #headerBlock>
|
|
|
+
|
|
|
+ <el-form :inline="true" ref="formRef" :model="param">
|
|
|
+
|
|
|
+ <el-form-item label="住院号" prop="patNo">
|
|
|
+ <el-input v-model="param.patNo" clearable
|
|
|
+ style="width: 120px"
|
|
|
+ @blur="param.patNo=$event.target.value.trim()"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="姓名" prop="name">
|
|
|
+ <el-input v-model="param.name" clearable
|
|
|
+ style="width: 120px"
|
|
|
+ @blur="param.name=$event.target.value.trim()"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="入院时间" prop="admissionTime">
|
|
|
+ <xc-date-picker style="width: 180px"
|
|
|
+ type="daterange"
|
|
|
+ clearable
|
|
|
+ v-model="param.admissionTime"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="出院时间" prop="dischargeTime">
|
|
|
+ <xc-date-picker style="width: 180px"
|
|
|
+ type="daterange"
|
|
|
+ clearable
|
|
|
+ v-model="param.admissionTime"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="科室" prop="dept">
|
|
|
+ <select-v4 :data="deptWardList" style="width: 220px;" clearable v-model="param.dept"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="病房" prop="ward">
|
|
|
+ <select-v4 :data="deptWardList" style="width: 220px;" clearable v-model="param.ward"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-checkbox v-model="param.leaveHospital" label="出院"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="queryClick" type="primary">查询</el-button>
|
|
|
+ <el-button @click="reset" type="warning">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
</template>
|
|
|
|
|
|
<template #main>
|
|
|
+ <xc-table :local-data="patInfoList"
|
|
|
+ :final-height="getWindowSize.h / 1.2">
|
|
|
+ <el-table-column label="操作" fixed="left" width="60">
|
|
|
+ <template #default="{row}">
|
|
|
+ <el-button @click="details(row)" text type="primary" plain>详情</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="住院号" prop="inpatientNo" width="60"/>
|
|
|
+ <el-table-column label="次数" prop="admissTimes" width="30"/>
|
|
|
+ <el-table-column label="床位" prop="bedNo" width="30"/>
|
|
|
+ <el-table-column label="姓名" prop="name">
|
|
|
+ <template #default="{row}">
|
|
|
+ {{ row.name + '(' + row.sexName + ')' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="入院时间" prop="admissDate" width="80"/>
|
|
|
+ <el-table-column label="出院时间" prop="disDate" width="80"/>
|
|
|
+ <el-table-column label="入院病区" prop="admissWardName"/>
|
|
|
+ <el-table-column label="小科室" prop="zkWardName"/>
|
|
|
+ <el-table-column label="年龄" prop="tempAge"/>
|
|
|
+ <el-table-column label="医保身份" prop="responceName"/>
|
|
|
+ <el-table-column label="总费用" prop="totalCharge"/>
|
|
|
+ <el-table-column label="余额" prop="balance"/>
|
|
|
+ <el-table-column label="入院诊断" prop="admissDiagStr"/>
|
|
|
+ </xc-table>
|
|
|
|
|
|
+ <el-dialog v-model="dialog"
|
|
|
+ title="患者详情"
|
|
|
+ class="dialog-temp"
|
|
|
+ fullscreen
|
|
|
+ destroy-on-close>
|
|
|
+ <el-tabs>
|
|
|
+ <el-tab-pane label="首页">
|
|
|
+ <first-page-of-medical-record :dics="dics"
|
|
|
+ :sheet-data="sheetData"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="医嘱">
|
|
|
+ <emr-order-list :pat-no="rowData.patNo" :times="rowData.admissTimes"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="清单">
|
|
|
+ <charge-list :pat-no="rowData.inpatientNo"
|
|
|
+ :times="rowData.admissTimes"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="检验">
|
|
|
+ <inspection-report-index
|
|
|
+ style="font-size: 12px;height: 100%"
|
|
|
+ :pat-no="rowData.patNo"
|
|
|
+ :start="startDate"
|
|
|
+ :end="endDate"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="检查">
|
|
|
+ <emr-inspect :pat-no="rowData.inpatientNo"
|
|
|
+ :times="rowData.admissTimes"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="病历">
|
|
|
+ <electronic-medical-record :pat-no="rowData.inpatientNo"
|
|
|
+ :times="rowData.admissTimes"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-dialog>
|
|
|
</template>
|
|
|
-
|
|
|
</page-layer>
|
|
|
</template>
|
|
|
|
|
|
<script setup name='PatientInformationInquiry'>
|
|
|
import PageLayer from "@/layout/PageLayer.vue";
|
|
|
+import {getHospWardAndDept, getPatientInfo} from "@/api/zhu-yuan-yi-sheng/pat-info-query";
|
|
|
+import SelectV4 from "@/components/xiao-chan/select-v4/SelectV4.vue";
|
|
|
+import XcDatePicker from "@/components/xiao-chan/date-picker/XcDatePicker.vue";
|
|
|
+import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
|
|
|
+import {getWindowSize} from "@/utils/window-size";
|
|
|
+import EmrOrderList from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOrderList.vue";
|
|
|
+import FirstPageOfMedicalRecord from "@/components/pat-info-list/FirstPageOfMedicalRecord.vue";
|
|
|
+import {getAllDictionary, getSheetInfo} from "@/api/case-front-sheet";
|
|
|
+import ChargeList from '@/components/medical-insurance/charge-list/Index.vue'
|
|
|
+import InspectionReportIndex from "@/views/examination/InspectionReportIndex.vue";
|
|
|
+import {formatDate} from "@/utils/date";
|
|
|
+import {getServerDateApi} from "@/api/public-api";
|
|
|
+import EmrInspect from "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrInspect.vue";
|
|
|
+import ElectronicMedicalRecord from "@/components/pat-info-list/ElectronicMedicalRecord.vue";
|
|
|
+import {operations} from "@/data";
|
|
|
+import {autopsies, haveOrNot, yesOrNo} from "@/views/hospitalization/case-front-sheet/common";
|
|
|
+
|
|
|
+
|
|
|
+const param = ref({
|
|
|
+ patNo: '',
|
|
|
+ name: '',
|
|
|
+ leaveHospital: false,
|
|
|
+ admissionTime: [],
|
|
|
+ dischargeTime: [],
|
|
|
+ dept: '',
|
|
|
+ ward: ''
|
|
|
+})
|
|
|
+
|
|
|
+const deptWardList = ref([])
|
|
|
+const formRef = ref(null)
|
|
|
+const patInfoList = ref([])
|
|
|
+const dialog = ref(false)
|
|
|
+const rowData = ref()
|
|
|
+const dics = ref([])
|
|
|
+const sheetData = ref({})
|
|
|
+
|
|
|
+const endDate = ref('')
|
|
|
+const startDate = ref('')
|
|
|
+
|
|
|
+const queryClick = () => {
|
|
|
+ getPatientInfo(param.value).then(res => {
|
|
|
+ patInfoList.value = res
|
|
|
+ })
|
|
|
+}
|
|
|
+const reset = () => {
|
|
|
+ formRef.value?.resetFields()
|
|
|
+}
|
|
|
+
|
|
|
+const details = async (row) => {
|
|
|
+ rowData.value = row
|
|
|
+
|
|
|
+ sheetData.value = await getSheetInfo({
|
|
|
+ bah: row.inpatientNo,
|
|
|
+ times: row.admissTimes,
|
|
|
+ inOutFlag: param.value.leaveHospital ? 2 : 1
|
|
|
+ })
|
|
|
+ startDate.value = formatDate(rowData.value.admissDate)
|
|
|
+ dialog.value = true
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
+ getHospWardAndDept().then(res => {
|
|
|
+ deptWardList.value = res
|
|
|
+ })
|
|
|
+
|
|
|
+ getAllDictionary().then(res => {
|
|
|
+ res.getOperations = operations;
|
|
|
+ res.getYesOrNo = yesOrNo;
|
|
|
+ res.getHaveOrNot = haveOrNot;
|
|
|
+ res.getAutopsies = autopsies;
|
|
|
+ dics.value = res
|
|
|
+ })
|
|
|
+
|
|
|
+ endDate.value = formatDate(await getServerDateApi())
|
|
|
+
|
|
|
+})
|
|
|
|
|
|
-const patNo = ref('')
|
|
|
-const name = ref('')
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="scss">
|
|
|
+<style lang="scss" scoped>
|
|
|
+:deep(.el-dialog__body) {
|
|
|
+ padding: 0 16px;
|
|
|
+ height: calc(100% - 55px);
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-tabs) {
|
|
|
+ height: calc(100% - 50px);
|
|
|
+
|
|
|
+ .el-tabs__content {
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-tab-pane {
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
</style>
|