版本更新
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 获取患者列表
|
||||
*
|
||||
* @param query 查询参数对象,可以包含多个查询条件
|
||||
* @returns Promise<any> 返回一个Promise对象,解析后得到患者列表数据
|
||||
*/
|
||||
export function listPatient(query) {
|
||||
return request({
|
||||
url: '/patient-home-manage/init',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取空床列表
|
||||
*
|
||||
* @param organizationId 科室ID
|
||||
* @returns Promise<any> 返回一个Promise对象,解析后得到患者列表数据
|
||||
*/
|
||||
export function getEmptyBed(organizationId) {
|
||||
return request({
|
||||
url: '/patient-home-manage/empty-bed',
|
||||
method: 'get',
|
||||
params: { organizationId }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存换床信息
|
||||
*
|
||||
*/
|
||||
export function saveBedTransfer(params) {
|
||||
return request({
|
||||
url: '/patient-home-manage/bed-transfer',
|
||||
method: 'put',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取科室列表
|
||||
*
|
||||
* @returns Promise<any> 返回一个Promise对象,解析后得到科室列表数据
|
||||
*/
|
||||
export function getCaty() {
|
||||
return request({
|
||||
url: '/patient-home-manage/caty',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存转科信息
|
||||
*
|
||||
*/
|
||||
export function saveDepartmentTransfer(params) {
|
||||
return request({
|
||||
url: '/patient-home-manage/department-transfer',
|
||||
method: 'put',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存出院信息
|
||||
*
|
||||
*/
|
||||
export function saveDischargeHospital(params) {
|
||||
return request({
|
||||
url: '/patient-home-manage/discharge-from-hospital',
|
||||
method: 'put',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,560 @@
|
||||
<template>
|
||||
<div style="width: 100%; padding: 0px 20px">
|
||||
<el-row :gutter="20" v-if="cardList.length > 0" class="custom-row">
|
||||
<el-col
|
||||
v-for="o in cardList"
|
||||
:key="o.patientID"
|
||||
:span="4"
|
||||
style="margin-bottom: 10px; margin-right: 0px"
|
||||
class="custom-col"
|
||||
>
|
||||
<div class="pf_card" @click="clickAct">
|
||||
<el-card class="box-card" :body-style="{ padding: '0px' }">
|
||||
<div class="card-content" @dblclick="openPatientDetailDialog(o)">
|
||||
<div
|
||||
class="header"
|
||||
style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis"
|
||||
>
|
||||
<span v-if="o.priorityEnum == 1" class="label1">{{
|
||||
o.locationId_dictText ? o.locationId_dictText : '暂无床位'
|
||||
}}</span>
|
||||
<span v-else-if="o.priorityEnum == 2" class="label2">
|
||||
{{ o.locationId_dictText ? o.locationId_dictText : '暂无床位' }}
|
||||
</span>
|
||||
<span v-else-if="o.priorityEnum == 3" class="label3">
|
||||
{{ o.locationId_dictText ? o.locationId_dictText : '暂无床位' }}
|
||||
</span>
|
||||
<span v-else-if="o.priorityEnum == 4" class="label4">
|
||||
{{ o.locationId_dictText ? o.locationId_dictText : '暂无床位' }}
|
||||
</span>
|
||||
<span v-else-if="o.priorityEnum == '' || o.priorityEnum === null" class="label5">
|
||||
{{ o.locationId_dictText ? o.locationId_dictText : '暂无床位' }}
|
||||
</span>
|
||||
<span v-else class="label5" />
|
||||
<!-- 左侧内容(优先级标签 + 姓名) -->
|
||||
<div style="flex: 1; overflow: hidden; text-overflow: ellipsis">
|
||||
<span
|
||||
class="header-label"
|
||||
:title="o.patientName"
|
||||
style="display: inline-block; max-width: 140px"
|
||||
>{{ o.patientName }}</span
|
||||
>
|
||||
</div>
|
||||
<span class="header-label" style="margin-right: 10px"
|
||||
>{{ o.genderEnum_enumText }}/{{ o.ageString }}</span
|
||||
>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>住院号</div>
|
||||
<div>{{ o.hospitalNo }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>入院科室</div>
|
||||
<div>{{ o.organizationId_dictText }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row2">
|
||||
<div class="layui-inline">
|
||||
<div>诊断</div>
|
||||
<div class="patientDiagnosis" :title="o.mainDiagnosis">
|
||||
{{ o.mainDiagnosis }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>入院</div>
|
||||
<div>{{ o.admissionDate }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>入院天数</div>
|
||||
<div>{{ o.hospitalizationDays }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>手术时间</div>
|
||||
<div>{{ o.surgeryStartTime }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>手术天数</div>
|
||||
<div>{{ o.postoperativeDays }}</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="row">
|
||||
<div class="layui-inline">
|
||||
<div>医生</div>
|
||||
<div>{{ o.responsibleDoctor }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div style="margin-left: 10px">
|
||||
<!-- <div>操作</div> -->
|
||||
<el-button type="primary" link>腕带</el-button>
|
||||
<el-button type="primary" link>床头卡</el-button>
|
||||
<el-button type="primary" link @click="openTransferCyDialog(o)">出院</el-button>
|
||||
<el-button type="primary" link @click="openTransferZkDialog(o)">转科</el-button>
|
||||
<el-button type="primary" link @click="openTransferToBedDialog(o)"
|
||||
>转床</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</el-card>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-else class="no-data">暂无患者数据</div>
|
||||
<patient-detial-dialog
|
||||
ref="patientDetialDialogRef"
|
||||
:open="openPatientDetail"
|
||||
@close="closePatientDetialDialog"
|
||||
/>
|
||||
<transfer-to-bed-dialog
|
||||
ref="transferToBedRef"
|
||||
:open="openTransferToBed"
|
||||
@close="closeTransferToBedDialog"
|
||||
/>
|
||||
<transfer-dialog
|
||||
ref="transferRef"
|
||||
:open="openTransfer"
|
||||
:title="title"
|
||||
@close="closeTransferDialog"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import patientDetialDialog from './patientDetialDialog.vue';
|
||||
import transferToBedDialog from './transferToBedDialog.vue';
|
||||
import transferDialog from './transferDialog.vue';
|
||||
import { ref, nextTick } from 'vue';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const radio = ref(1);
|
||||
const props = defineProps({
|
||||
openPrescription: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
cardList: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
const { method_code, unit_code, rate_code, distribution_category_code } = proxy.useDict(
|
||||
'method_code',
|
||||
'unit_code',
|
||||
'rate_code',
|
||||
'distribution_category_code'
|
||||
);
|
||||
|
||||
const emit = defineEmits(
|
||||
'close',
|
||||
'openPatientDetail',
|
||||
'closePatientDetail',
|
||||
'submit',
|
||||
'openTransferToBed',
|
||||
'closeTransferToBed',
|
||||
'openTransferZk',
|
||||
'openTransferCy',
|
||||
'closeTransfer'
|
||||
);
|
||||
const total = ref(0);
|
||||
const queryParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const form = reactive({
|
||||
patientId: '', // 患者
|
||||
encounterId: '', // 就诊id
|
||||
prescriptionNo: '', // 处方号
|
||||
rxTypeCode: 1, // 处方类型编码
|
||||
validityDays: '', // 有效天数
|
||||
extensionReason: '', // 延长原因
|
||||
medicationInfoList: [],
|
||||
});
|
||||
// 患者详细对话框相关变量
|
||||
const patientDetialDialogRef = ref();
|
||||
const openPatientDetail = ref(false);
|
||||
const dosageInputRefs = ref([]);
|
||||
// 转床对话框相关变量
|
||||
const transferToBedRef = ref();
|
||||
const openTransferToBed = ref(false);
|
||||
// 转科/出院对话框相关变量
|
||||
const transferRef = ref();
|
||||
const openTransfer = ref(false);
|
||||
const title = ref('');
|
||||
|
||||
const rowRules = ref({
|
||||
conditionDefinitionId: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
dose: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
doseQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '请输入数量', trigger: 'change' }],
|
||||
dispensePerDuration: [{ required: true, message: '请输入用药天数', trigger: 'change' }],
|
||||
});
|
||||
const unitMap = ref({
|
||||
dose: 'dose',
|
||||
minUnit: 'minUnit',
|
||||
unit: 'unit',
|
||||
});
|
||||
|
||||
/**
|
||||
* 打开患者信息详细对话框
|
||||
*/
|
||||
function openPatientDetailDialog(row) {
|
||||
emit('openPatientDetail', row);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭新增处方弹窗
|
||||
*/
|
||||
function closePatientDetialDialog(str) {
|
||||
emit('closePatientDetail');
|
||||
}
|
||||
/**
|
||||
* 打开转床对话框
|
||||
*/
|
||||
function openTransferToBedDialog(row) {
|
||||
console.log(row, '卡片转床弹窗打开');
|
||||
emit('openTransferToBed', row);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭转床对话框
|
||||
*/
|
||||
function closeTransferToBedDialog(str) {
|
||||
emit('closeTransferToBed');
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开转科对话框
|
||||
*/
|
||||
function openTransferZkDialog(row) {
|
||||
emit('openTransferZk', row);
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开出院对话框
|
||||
*/
|
||||
function openTransferCyDialog(row) {
|
||||
emit('openTransferCy', row);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭转科/出院对话框
|
||||
*/
|
||||
function closeTransferDialog(str) {
|
||||
emit('closeTransfer');
|
||||
}
|
||||
|
||||
function close() {
|
||||
reset();
|
||||
emit('close');
|
||||
}
|
||||
|
||||
function reset() {
|
||||
form.medicationInfoList = [];
|
||||
form.patientId = '';
|
||||
form.encounterId = '';
|
||||
form.prescriptionNo = '';
|
||||
form.rxTypeCode = 1;
|
||||
form.validityDays = '';
|
||||
form.extensionReason = '';
|
||||
}
|
||||
|
||||
function getBedBackColor(triageLevel) {
|
||||
const Level = triageLevel?.display ?? '0级';
|
||||
let backColor = '#808080';
|
||||
switch (Level) {
|
||||
case '1':
|
||||
backColor = this.colors[0];
|
||||
break;
|
||||
case '2':
|
||||
backColor = this.colors[1];
|
||||
break;
|
||||
case '3':
|
||||
backColor = this.colors[2];
|
||||
break;
|
||||
case '4':
|
||||
backColor = this.colors[3];
|
||||
break;
|
||||
default:
|
||||
backColor = '#C4C4C4';
|
||||
}
|
||||
return backColor;
|
||||
}
|
||||
|
||||
function getDisplay(triageLevel) {
|
||||
return triageLevel?.display ?? '';
|
||||
}
|
||||
// defineExpose({
|
||||
// getPrescriptionNoInit,
|
||||
// });
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.pf_card {
|
||||
outline-style: inherit;
|
||||
position: relative;
|
||||
border-radius: 5px;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 1px 1px 4px #888888;
|
||||
border: 1px solid #e2dfdf;
|
||||
width: 100%;
|
||||
user-select: none;
|
||||
font-family: Microsoft YaHei;
|
||||
/* margin-left: 5px; */
|
||||
}
|
||||
.pf_card:hover {
|
||||
box-shadow: 4px 4px 16px #888888;
|
||||
}
|
||||
|
||||
.layui-input-inline {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.layui-inline {
|
||||
display: grid;
|
||||
grid-template-columns: 30% 60%;
|
||||
padding: 3% 0 3% 5%;
|
||||
}
|
||||
|
||||
/* .box-card { */
|
||||
.header {
|
||||
/* display: grid;
|
||||
grid-template-columns: 25% 75%;
|
||||
position: relative;
|
||||
height: 40px;
|
||||
grid-template-columns: 25% 75%;
|
||||
*/
|
||||
border-bottom: 1px solid #d3d4d6;
|
||||
/* 可选: 设置行分隔线 */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
white-space: nowrap; /* 禁止换行 */
|
||||
overflow: hidden; /* 隐藏溢出内容 */
|
||||
width: 100%; /* 根据需要设置宽度 */
|
||||
height: 36px; /* 固定高度 */
|
||||
}
|
||||
|
||||
.label1 {
|
||||
background-color: #a61302;
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.label2 {
|
||||
background-color: #ec1500;
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.label3 {
|
||||
background-color: #10d45b;
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.label4 {
|
||||
background-color: #848d88;
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
color: white;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.label5 {
|
||||
text-align: center;
|
||||
padding: 10px 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.header-label {
|
||||
/* padding-left: 10px;
|
||||
padding-top: 8px;
|
||||
font-size: large;
|
||||
font-weight: bold; */
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 150px; /* 根据需要调整 */
|
||||
font-size: large;
|
||||
font-weight: bold;
|
||||
}
|
||||
/* } */
|
||||
|
||||
.card-content .row {
|
||||
font-size: 15px;
|
||||
display: grid;
|
||||
padding: 3px 0;
|
||||
/* 设置行间距 */
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
/* 可选: 设置行分隔线 */
|
||||
}
|
||||
|
||||
.card-content .row2 {
|
||||
font-size: 15px;
|
||||
display: grid;
|
||||
padding: 3px 0;
|
||||
/* 设置行间距 */
|
||||
/* border-bottom: 2px solid #c6c7c7; */
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
/* 可选: 设置行分隔线 */
|
||||
}
|
||||
|
||||
.card-content .row:last-child {
|
||||
font-size: 15px;
|
||||
border-bottom: none;
|
||||
/* 最后一行不显示分隔线 */
|
||||
}
|
||||
|
||||
.exceptionalCare ::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: 50%;
|
||||
/* 使其成为圆形 */
|
||||
background-color: #a61302;
|
||||
/* 背景颜色 */
|
||||
}
|
||||
|
||||
.primaryCare ::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: 50%;
|
||||
/* 使其成为圆形 */
|
||||
background-color: #ec1500;
|
||||
/* 背景颜色 */
|
||||
}
|
||||
|
||||
.secondaryCare ::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: 50%;
|
||||
/* 使其成为圆形 */
|
||||
background-color: #10d45b;
|
||||
/* 背景颜色 */
|
||||
}
|
||||
|
||||
.tertiaryCare ::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: 50%;
|
||||
/* 使其成为圆形 */
|
||||
background-color: #848d88;
|
||||
/* 背景颜色 */
|
||||
}
|
||||
|
||||
.patientDiagnosis {
|
||||
white-space: nowrap;
|
||||
/* 不折行 */
|
||||
overflow: hidden;
|
||||
/* 隐藏溢出的内容 */
|
||||
text-overflow: ellipsis;
|
||||
/* 使用省略号表示溢出 */
|
||||
width: 150px;
|
||||
/* 设置宽度,控制显示效果 */
|
||||
display: block;
|
||||
/* 必须设置为块级元素或行内块元素 */
|
||||
margin-left: -3px;
|
||||
}
|
||||
|
||||
.dialog-row {
|
||||
display: grid;
|
||||
grid-template-columns: 85% 15%;
|
||||
margin-left: 15px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.dialog-inline {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.dialog-detaile-inline {
|
||||
font-size: 20px;
|
||||
display: grid;
|
||||
grid-template-columns: 40% 75%;
|
||||
}
|
||||
|
||||
.dialog-line1 {
|
||||
text-align: right;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.dialog-line2 {
|
||||
border-bottom: 1px solid black;
|
||||
width: 60%;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.header-container {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.no-data {
|
||||
display: grid;
|
||||
place-items: center; /* 水平和垂直居中 */
|
||||
height: 100%; /* 确保父容器有高度 */
|
||||
width: 100%; /* 确保父容器有宽度 */
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog_header {
|
||||
font-size: 20px;
|
||||
/* 设置字体大小 */
|
||||
color: #ff4500;
|
||||
/* 设置字体颜色 */
|
||||
}
|
||||
|
||||
::v-deep .el-card__body {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
.custom-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-left: -10px !important; /* 抵消 gutter 的 margin */
|
||||
margin-right: -10px !important;
|
||||
}
|
||||
.custom-col {
|
||||
width: calc(20% - 20px) !important; /* 5列布局 */
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,568 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="患者详情"
|
||||
v-model="props.open"
|
||||
width="1200px"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
@close="close"
|
||||
>
|
||||
<div>
|
||||
<el-form :model="form" ref="formRef" label-width="110">
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="患者姓名:" prop="patientName">
|
||||
<el-input
|
||||
v-model="form.patientName"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="性别:" prop="genderEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.genderEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="住院号:" prop="hospitalNo">
|
||||
<el-input v-model="form.hospitalNo" placeholder="" clearable disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="床号:" prop="locationId_dictText">
|
||||
<el-input v-model="form.locationId_dictText" placeholder="" clearable disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="年龄:" prop="ageString">
|
||||
<el-input
|
||||
v-model="form.ageString"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="生日:" prop="birthDate">
|
||||
<el-input
|
||||
v-model="form.birthDate"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="婚姻状态:" prop="maritalStatusEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.maritalStatusEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="职业:" prop="prfsEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.prfsEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="电话:" prop="phone">
|
||||
<el-input v-model="form.phone" placeholder="" clearable disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="地址:" prop="addressInfo">
|
||||
<el-input
|
||||
v-model="form.addressInfo"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="民族:" prop="nationalityCode">
|
||||
<el-input
|
||||
v-model="form.nationalityCode"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="身份证号:" prop="idCard">
|
||||
<el-input
|
||||
v-model="form.idCard"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="籍贯:" prop="nativePlace">
|
||||
<el-input
|
||||
v-model="form.nativePlace"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="国家:" prop="countryCode">
|
||||
<el-input
|
||||
v-model="form.countryCode"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="联系人:" prop="linkName">
|
||||
<el-input
|
||||
v-model="form.linkName"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="联系人关系:" prop="linkRelationCode_codeText">
|
||||
<el-input
|
||||
v-model="form.linkRelationCode_codeText"
|
||||
placeholder=""
|
||||
clearable
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="联系人电话:" prop="linkTelcom">
|
||||
<el-input
|
||||
v-model="form.linkTelcom"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="其他联系人:" prop="linkJsons">
|
||||
<el-input
|
||||
v-model="form.linkJsons"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="工作单位:" prop="workCompany">
|
||||
<el-input v-model="form.workCompany" placeholder="" clearable disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="护理级别:" prop="priorityEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.priorityEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="患者状态:" prop="statusEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.statusEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="入院科室:" prop="organizationId_dictText">
|
||||
<el-input
|
||||
v-model="form.organizationId_dictText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="入院日期:" prop="admissionDate">
|
||||
<el-input
|
||||
v-model="form.admissionDate"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="责任医生:" prop="responsibleDoctor">
|
||||
<el-input
|
||||
v-model="form.responsibleDoctor"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="责任护士:" prop="responsibleNurse">
|
||||
<el-input v-model="form.responsibleNurse" placeholder="" clearable disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="主要诊断:" prop="mainDiagnosis">
|
||||
<el-input
|
||||
v-model="form.mainDiagnosis"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="费别:" prop="typeCode_dictText">
|
||||
<el-input
|
||||
v-model="form.typeCode_dictText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="住院天数:" prop="hospitalizationDays">
|
||||
<el-input
|
||||
v-model="form.hospitalizationDays"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="就诊类别:" prop="classEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.classEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="术后天数:" prop="postoperativeDays">
|
||||
<el-input
|
||||
v-model="form.postoperativeDays"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="手术开始日期:" prop="surgeryStartTime">
|
||||
<el-input
|
||||
v-model="form.surgeryStartTime"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="手术结束日期:" prop="surgeryEndTime">
|
||||
<el-input
|
||||
v-model="form.surgeryEndTime"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="手术状态:" prop="surgeryStatusEnum_enumText">
|
||||
<el-input
|
||||
v-model="form.surgeryStatusEnum_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="过敏原类别:" prop="categoryCode_dictText">
|
||||
<el-input
|
||||
v-model="form.categoryCode_dictText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="入院科室名:" prop="caty">
|
||||
<el-input
|
||||
v-model="form.caty"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="血型ABO:" prop="bloodAbo_enumText">
|
||||
<el-input
|
||||
v-model="form.bloodAbo_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="血型RH:" prop="bloodRh_enumText">
|
||||
<el-input
|
||||
v-model="form.bloodRh_enumText"
|
||||
placeholder=""
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="close">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, nextTick } from 'vue';
|
||||
import { listPatient } from './api';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const props = defineProps({
|
||||
open: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
patientId: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
const { method_code, unit_code, rate_code, distribution_category_code } = proxy.useDict(
|
||||
'method_code',
|
||||
'unit_code',
|
||||
'rate_code',
|
||||
'distribution_category_code'
|
||||
);
|
||||
|
||||
const emit = defineEmits(['close']);
|
||||
const queryParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
patientId: undefined, // 患者id
|
||||
});
|
||||
const form = ref({});
|
||||
const title = ref('');
|
||||
const rowRules = ref({
|
||||
conditionDefinitionId: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
dose: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
doseQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '请输入数量', trigger: 'change' }],
|
||||
dispensePerDuration: [{ required: true, message: '请输入用药天数', trigger: 'change' }],
|
||||
});
|
||||
|
||||
/**
|
||||
* 取得患者信息详细
|
||||
*/
|
||||
function getPatientDetial() {
|
||||
reset();
|
||||
title.value = '';
|
||||
title.value = props.title;
|
||||
console.log(props, 'props', title.value);
|
||||
console.log(queryParams.value, 'queryParams.value', props.patientId);
|
||||
queryParams.value.patientId = props.patientId;
|
||||
listPatient(queryParams.value).then((res) => {
|
||||
if (res.data && res.data.records && res.data.records.length > 0) {
|
||||
form.value = res.data.records[0];
|
||||
}
|
||||
form.value.addressInfo =
|
||||
form.value.addressProvince +
|
||||
'' +
|
||||
form.value.addressCity +
|
||||
'' +
|
||||
form.value.addressDistrict +
|
||||
'' +
|
||||
form.value.addressStreet +
|
||||
'' +
|
||||
form.value.address;
|
||||
|
||||
// loading.value = false;
|
||||
console.log(res, 'resqqqqqqqqqqqqqqqqqqqqqqq', form.value);
|
||||
});
|
||||
}
|
||||
|
||||
function close() {
|
||||
reset();
|
||||
emit('close');
|
||||
}
|
||||
/** 重置操作表单 */
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: undefined,
|
||||
activeFlag: undefined, // 活动标记
|
||||
tempFlag: undefined, // 临时标识
|
||||
patientName: undefined, // 患者姓名
|
||||
nameJson: undefined, // 患者其他名称
|
||||
hospitalNo: undefined, // 病历号
|
||||
genderEnum: undefined, // 性别
|
||||
genderEnum_enumText: undefined, // 性别
|
||||
birthDate: undefined, // 生日
|
||||
deceasedDate: undefined, // 死亡时间
|
||||
maritalStatusEnum: undefined, // 婚姻状态
|
||||
maritalStatusEnum_enumText: undefined, // 婚姻状态
|
||||
prfsEnum: undefined, // 职业编码
|
||||
prfsEnum_enumText: undefined, // 职业编码
|
||||
phone: undefined, // 电话
|
||||
address: undefined, // 地址
|
||||
addressProvince: undefined, // 地址省
|
||||
addressCity: undefined, // 地址市
|
||||
addressDistrict: undefined, // 地址区
|
||||
addressStreet: undefined, // 地址街道
|
||||
addressJson: undefined, // 患者其他地址
|
||||
nationalityCode: undefined, // 民族
|
||||
idCard: undefined, // 身份证号
|
||||
pyStr: undefined, //拼音码
|
||||
wbStr: undefined, // 五笔码
|
||||
bloodAbo: undefined, // 血型ABO
|
||||
bloodAbo_enumText: undefined, // 血型ABO
|
||||
bloodRh: undefined, // 血型RH
|
||||
bloodRh_enumText: undefined, // 血型RH
|
||||
workCompany: undefined, // 工作单位
|
||||
nativePlace: undefined, // 籍贯
|
||||
countryCode: undefined, // 国家编码
|
||||
linkName: undefined, // 联系人
|
||||
linkRelationCode: undefined, // 联系人关系
|
||||
linkRelationCode_codeText: undefined, // 联系人关系
|
||||
linkTelcom: undefined, // 联系人电话
|
||||
linkJsons: undefined, // 其他联系人
|
||||
tenanid: undefined, // 租户ID
|
||||
ageString: undefined, // 病人年龄
|
||||
priorityEnum: undefined, // 护理级别
|
||||
priorityEnum_enumText: undefined, // 护理级别
|
||||
statusEnum: undefined, // 患者状态
|
||||
statusEnum_enumText: undefined, // 患者状态
|
||||
organizationId: undefined, // 入院科室
|
||||
organizationId_dictText: undefined, // 入院科室
|
||||
admissionDate: undefined, // 入院日期
|
||||
dischargeDate: undefined, // 出院日期
|
||||
responsibleDoctor: undefined, // 责任医生
|
||||
responsibleNurse: undefined, // 责任护士
|
||||
mainDiagnosis: undefined, // 主要诊断
|
||||
typeCode: undefined, // 费别
|
||||
typeCode_dictText: undefined, // 费别
|
||||
hospitalizationDays: undefined, //住院天数
|
||||
classEnum: undefined, // 就诊类别
|
||||
classEnum_enumText: undefined, // 就诊类别
|
||||
postoperativeDays: undefined, // 术后天数
|
||||
surgeryStartTime: undefined, // 手术开始日期
|
||||
surgeryEndTime: undefined, // 手术结束日期
|
||||
surgeryStatusEnum: undefined, // 手术状态
|
||||
surgeryStatusEnum_enumText: undefined, // 手术状态
|
||||
categoryCode: undefined, // 过敏源类别
|
||||
categoryCode_dictText: undefined, // 过敏源类别
|
||||
caty: undefined, // 入院科室名称
|
||||
locationId: undefined, // 床位号
|
||||
locationId_dictText: undefined, // 床位号
|
||||
encounterId: undefined, // 就诊流水号
|
||||
encounterLocationId: undefined, // 就诊地点流水号
|
||||
};
|
||||
proxy.resetForm('formRef');
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
getPatientDetial,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.pagination-container .el-pagination) {
|
||||
right: 20px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,235 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="props.title"
|
||||
v-model="props.open"
|
||||
width="480px"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
@close="close"
|
||||
>
|
||||
<div>
|
||||
<el-form :model="form" ref="formRef">
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col>
|
||||
<el-form-item label="病历号:" prop="patientNo" label-width="100">
|
||||
<el-input
|
||||
v-model="form.patientNo"
|
||||
placeholder="病历号"
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col>
|
||||
<el-form-item label="患者姓名:" prop="patientName" label-width="100">
|
||||
<el-input
|
||||
v-model="form.patientName"
|
||||
placeholder="患者姓名"
|
||||
clearable
|
||||
style="width: 260px"
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="24" class="mb8" v-if="props.title == '出院'">
|
||||
<el-col>
|
||||
<el-form-item label="出院原因:" prop="dscgTrtRslt" label-width="100">
|
||||
<el-select v-model="form.dscgTrtRslt" clearable>
|
||||
<el-option
|
||||
v-for="dict in dscg_trt_rslt_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
<el-row :gutter="24" class="mb8" v-if="props.title == '出院'">
|
||||
<el-col>
|
||||
<el-form-item label="出院时间:" prop="DischargeHospitalYmd" label-width="100">
|
||||
<el-date-picker
|
||||
v-model="form.DischargeHospitalYmd"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
type="datetime"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8" v-if="props.title == '转科'">
|
||||
<el-col>
|
||||
<el-form-item label="转科去向:" prop="organizationId" label-width="100">
|
||||
<el-select v-model="form.organizationId" clearable>
|
||||
<el-option
|
||||
v-for="caty in catyList"
|
||||
:key="caty.id"
|
||||
:label="caty.name"
|
||||
:value="caty.id"
|
||||
:disabled="caty.id === form.organizationIdOld"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8" v-if="props.title == '转科'">
|
||||
<el-col>
|
||||
<el-form-item label="转科时间:" prop="DepartmentTransferYmd" label-width="100">
|
||||
<el-date-picker
|
||||
v-model="form.DepartmentTransferYmd"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
type="datetime"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submit">保存</el-button>
|
||||
<el-button @click="close">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, nextTick } from 'vue';
|
||||
import { getCaty, saveDepartmentTransfer, saveDischargeHospital } from './api';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const props = defineProps({
|
||||
open: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
transferInfo: {
|
||||
type: Object,
|
||||
},
|
||||
});
|
||||
const { dscg_trt_rslt_code, unit_code, rate_code, distribution_category_code } = proxy.useDict(
|
||||
'dscg_trt_rslt_code',
|
||||
'unit_code',
|
||||
'rate_code',
|
||||
'distribution_category_code'
|
||||
);
|
||||
const emit = defineEmits(['close']);
|
||||
const selectRow = ref({});
|
||||
const prescriptionTypeList = ref([]);
|
||||
const catyList = ref([]);
|
||||
const form = ref({});
|
||||
const title = ref('');
|
||||
|
||||
const rowRules = ref({
|
||||
conditionDefinitionId: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
dose: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
doseQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '请输入数量', trigger: 'change' }],
|
||||
dispensePerDuration: [{ required: true, message: '请输入用药天数', trigger: 'change' }],
|
||||
});
|
||||
|
||||
getCatyList();
|
||||
/**
|
||||
* 取得床位号
|
||||
*/
|
||||
function show() {
|
||||
reset();
|
||||
title.value = '';
|
||||
title.value = props.title;
|
||||
form.value = props.transferInfo;
|
||||
console.log(props, 'props', title.value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询科室信息
|
||||
*
|
||||
* @param row 要选择的床位信息对象
|
||||
*/
|
||||
function getCatyList() {
|
||||
getCaty().then((res) => {
|
||||
if (res.code == 200) {
|
||||
catyList.value = res.data;
|
||||
} else {
|
||||
catyList.value = [];
|
||||
}
|
||||
|
||||
console.log(res, ' catyList.value');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择科室信息
|
||||
*
|
||||
* @param row 要选择科室信息对象
|
||||
*/
|
||||
function selectOrganizationId(value) {
|
||||
console.log(value, ' value');
|
||||
form.value.organizationId = value;
|
||||
}
|
||||
/**
|
||||
* 保存处方
|
||||
*/
|
||||
function submit() {
|
||||
console.log(form.value, 'form, prescriptionList.value新增处方');
|
||||
// console.log(row, ' 保存处方row 1234567890');
|
||||
// 新增的药品信息调用新增接口
|
||||
if (title.value == '转科') {
|
||||
saveDepartmentTransfer(form.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
emit('close', 'success');
|
||||
reset();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (title.value == '出院') {
|
||||
saveDischargeHospital(form.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
emit('close', 'success');
|
||||
reset();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function close() {
|
||||
reset();
|
||||
emit('close');
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
function reset() {
|
||||
form.value = {
|
||||
organizationId: '',
|
||||
organizationIdOld: '',
|
||||
patientName: '',
|
||||
patientId: '', // 处方号
|
||||
hospitalNo: '',
|
||||
dscgTrtRslt: '',
|
||||
encounterId: '',
|
||||
encounterLocationId: '',
|
||||
locationId: '',
|
||||
DepartmentTransferYmd: undefined,
|
||||
DischargeHospitalYmd: undefined,
|
||||
};
|
||||
proxy.resetForm('formRef');
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
show,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.pagination-container .el-pagination) {
|
||||
right: 20px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,162 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="转床"
|
||||
v-model="props.open"
|
||||
width="600px"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
@close="close"
|
||||
>
|
||||
<div>
|
||||
<el-form :model="form" ref="formRef">
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="区域:" prop="organizationId_dictText" label-width="100">
|
||||
<el-input
|
||||
v-model="transferToBedInfo.organizationId_dictText"
|
||||
placeholder="请输入区域名称"
|
||||
clearable
|
||||
disabled
|
||||
/>
|
||||
<!-- <el-select v-model="medRoute" clearable>
|
||||
<el-option
|
||||
v-for="dict in method_code"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="bedList"
|
||||
row-key="locationId"
|
||||
style="width: 100%; height: 100%"
|
||||
highlight-current-row
|
||||
show-overflow-tooltip
|
||||
max-height="400px"
|
||||
@row-click="selectBed"
|
||||
>
|
||||
<el-table-column label="床号" prop="locationId_dictText" min-width="80" align="center" />
|
||||
</el-table>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submit">保存</el-button>
|
||||
<el-button @click="close">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, nextTick } from 'vue';
|
||||
import { getEmptyBed, saveBedTransfer } from './api';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const props = defineProps({
|
||||
open: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
transferToBedInfo: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
const { method_code, unit_code, rate_code, distribution_category_code } = proxy.useDict(
|
||||
'method_code',
|
||||
'unit_code',
|
||||
'rate_code',
|
||||
'distribution_category_code'
|
||||
);
|
||||
const emit = defineEmits(['close','openTransferToBed']);
|
||||
const form = ref({});
|
||||
const bedList = ref([]);
|
||||
const title = ref('');
|
||||
const rowRules = ref({
|
||||
conditionDefinitionId: [{ required: true, message: '请选择诊断', trigger: 'change' }],
|
||||
dose: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
doseQuantity: [{ required: true, message: '请输入单次剂量', trigger: 'change' }],
|
||||
quantity: [{ required: true, message: '请输入数量', trigger: 'change' }],
|
||||
dispensePerDuration: [{ required: true, message: '请输入用药天数', trigger: 'change' }],
|
||||
});
|
||||
|
||||
/**
|
||||
* 取得床位号
|
||||
*/
|
||||
function show() {
|
||||
reset();
|
||||
title.value = '';
|
||||
title.value = props.title;
|
||||
form.value = props.transferToBedInfo;
|
||||
console.log(props, 'props', title.value, ' props.transferToBedInfo', props.transferToBedInfo);
|
||||
if (form.value) {
|
||||
getEmptyBed(form.value.organizationId).then((res) => {
|
||||
bedList.value = res.data;
|
||||
// loading.value = false;
|
||||
console.log(res, 'resqqqqqqqqqqqqqqqqqqqqqqq', form.value);
|
||||
});
|
||||
} else {
|
||||
bedList.value = [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择床位
|
||||
*
|
||||
* @param row 要选择的床位信息对象
|
||||
*/
|
||||
function selectBed(row) {
|
||||
console.log(row, 'row 选择床位信息对象');
|
||||
form.value.newLocationId = row.locationId;
|
||||
}
|
||||
/**
|
||||
* 保存换床信息
|
||||
*/
|
||||
function submit() {
|
||||
console.log(form.value, 'form, prescriptionList.value新增处方');
|
||||
// console.log(row, ' 保存处方row 1234567890');
|
||||
// 新增的药品信息调用新增接口
|
||||
saveBedTransfer(form.value).then((res) => {
|
||||
if (res.code == 200) {
|
||||
emit('close', 'success');
|
||||
reset();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function close() {
|
||||
reset();
|
||||
emit('close');
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
function reset() {
|
||||
form.value = {
|
||||
organizationId: '',
|
||||
newLocationId: '',
|
||||
organizationId_dictText: '',
|
||||
patientId: '', // 处方号
|
||||
oldLocationId: '',
|
||||
busNo: '',
|
||||
encounterLocationId: '',
|
||||
};
|
||||
proxy.resetForm('formRef');
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
show,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.pagination-container .el-pagination) {
|
||||
right: 20px !important;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user