输血申请改造
This commit is contained in:
parent
e35a900f36
commit
8959eb8c1f
@ -128,3 +128,19 @@ export function cancelApply(query?: Object) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 电子病历
|
||||||
|
export function invokeEMR(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/bus/doctor/apply/invokeEMR',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 查询输血申请历史列表
|
||||||
|
export function queryhistoryList(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/bus/doctor/history/queryList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -142,6 +142,10 @@ aside {
|
|||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 12px;
|
padding-left: 12px;
|
||||||
@ -434,18 +438,15 @@ aside {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.el-form .el-form-item__label {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-form--inline .el-form-item {
|
.el-form--inline .el-form-item {
|
||||||
margin-right: .9375rem;
|
margin-right: .9375rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-item__label {
|
.el-form-item__label {
|
||||||
font-weight: 400;
|
font-weight: 600 !important;
|
||||||
font-size: .875rem;
|
font-size: 14px;
|
||||||
color: #81878d;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dialog:not(.is-fullscreen) {
|
.el-dialog:not(.is-fullscreen) {
|
||||||
@ -517,7 +518,7 @@ aside {
|
|||||||
th {
|
th {
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
background-color: #eff6fa !important;
|
background-color: #eff6fa !important;
|
||||||
color: #3c526f;
|
color: #000;
|
||||||
height: 1.875rem !important;
|
height: 1.875rem !important;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@ -579,7 +580,7 @@ aside {
|
|||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
height: 1.8125rem;
|
height: 1.8125rem;
|
||||||
line-height: 1.8125rem;
|
line-height: 1.8125rem;
|
||||||
color: #3c526f;
|
color: #333;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,4 +844,18 @@ aside {
|
|||||||
|
|
||||||
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
|
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
|
||||||
background: #00a5ff;
|
background: #00a5ff;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
border-color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 一行省略
|
||||||
|
.ellipsis-one-line {
|
||||||
|
white-space: nowrap;
|
||||||
|
/* 强制不换行 */
|
||||||
|
overflow: hidden;
|
||||||
|
/* 隐藏超出 */
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
/* 省略号 */
|
||||||
}
|
}
|
||||||
@ -3,7 +3,8 @@
|
|||||||
<el-dropdown ref="dropdownRef" trigger="manual" placement="bottom-start" style="width:100%" :teleported="false"
|
<el-dropdown ref="dropdownRef" trigger="manual" placement="bottom-start" style="width:100%" :teleported="false"
|
||||||
:popper-style="{ width: realtableWidth }">
|
:popper-style="{ width: realtableWidth }">
|
||||||
<div class="input-wrap" style="width:100%">
|
<div class="input-wrap" style="width:100%">
|
||||||
<el-input v-model="inputText" :placeholder="placeholder" @keydown.enter.prevent="handleInputEnter" />
|
<el-input v-model="inputText" :placeholder="placeholder" :readonly="readonly"
|
||||||
|
@keydown.enter.prevent="handleInputEnter" />
|
||||||
<span class="arrow-icon" @click.stop="toggleDropdown">
|
<span class="arrow-icon" @click.stop="toggleDropdown">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<ArrowDown />
|
<ArrowDown />
|
||||||
@ -99,6 +100,11 @@ const props = defineProps({
|
|||||||
showSearch: {
|
showSearch: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
},
|
||||||
|
// 是否只读
|
||||||
|
readonly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -242,6 +248,7 @@ watch(inputText, (val) => {
|
|||||||
// 输入框回车(原有逻辑)
|
// 输入框回车(原有逻辑)
|
||||||
const handleInputEnter = (e: KeyboardEvent) => {
|
const handleInputEnter = (e: KeyboardEvent) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
|
emit('update:modelValue', inputText.value)
|
||||||
emit('search', inputText.value)
|
emit('search', inputText.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,7 +61,7 @@ export function useCommonDict() {
|
|||||||
item_name: item.pro_name,
|
item_name: item.pro_name,
|
||||||
item_result: '',
|
item_result: '',
|
||||||
item_unit: item.unit,
|
item_unit: item.unit,
|
||||||
test_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
test_date: item.validTime,
|
||||||
sid: item.sid
|
sid: item.sid
|
||||||
}))
|
}))
|
||||||
return lisProject.value
|
return lisProject.value
|
||||||
|
|||||||
1414
src/views/doctor/application/index copy.vue
Normal file
1414
src/views/doctor/application/index copy.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,242 +12,125 @@
|
|||||||
<el-button type="primary" plain @click="openJsDialog">检索</el-button>
|
<el-button type="primary" plain @click="openJsDialog">检索</el-button>
|
||||||
<el-button type="primary" plain @click="addHandle">新增</el-button>
|
<el-button type="primary" plain @click="addHandle">新增</el-button>
|
||||||
<el-button type="success" plain @click="handleSubmit" :loading="saveLoading">保存</el-button>
|
<el-button type="success" plain @click="handleSubmit" :loading="saveLoading">保存</el-button>
|
||||||
<el-button>电子病历</el-button>
|
<el-button @click="blHandle">电子病历</el-button>
|
||||||
<el-button :loading="shLoading" @click="reviewHandle">审核</el-button>
|
<el-button :loading="shLoading" @click="reviewHandle">审核</el-button>
|
||||||
<el-button type="danger" plain @click="cancelreviewHandle">取消审核</el-button>
|
<el-button type="danger" plain @click="cancelreviewHandle">取消审核</el-button>
|
||||||
<el-button type="info" plain @click="invalidateHandle">作废</el-button>
|
<el-button type="info" plain @click="invalidateHandle">作废</el-button>
|
||||||
<el-button type="warning" plain>打印输血申请单</el-button>
|
<el-button type="warning" plain>打印输血申请单</el-button>
|
||||||
<el-button>患者输血历史</el-button>
|
<el-button @click="goHistoryBlood">患者输血历史</el-button>
|
||||||
<el-button type="warning" plain>打印大量输血审批单</el-button>
|
<el-button type="warning" plain>打印大量输血审批单</el-button>
|
||||||
<el-button type="warning" plain>打印输血知情同意书</el-button>
|
<el-button type="warning" plain>打印输血知情同意书</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 主体区域 左2 : 右1 -->
|
<!-- 主体区域 左2 : 右1 -->
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<!-- 左侧区域 占2份 -->
|
<!-- 左侧区域 占2份left-wrap -->
|
||||||
<div class="left-wrap">
|
<div class="left-wrap">
|
||||||
<!-- 包裹整个表单内容 -->
|
|
||||||
<el-form ref="formRef" label-width="auto" size="small" class="blood-transfusion-form"
|
<el-form ref="formRef" label-width="auto" size="small" class="blood-transfusion-form"
|
||||||
:disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'">
|
:disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'">
|
||||||
<!-- 申请信息 -->
|
<div class="card-box base-info-card">
|
||||||
<div class="box-item">
|
<div class="section-title">
|
||||||
<el-row>
|
<div>患者信息</div>
|
||||||
|
</div>
|
||||||
|
<div class="base-info-content">
|
||||||
|
<div class="base-info">
|
||||||
|
<div class="info-row">
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">住院号:</span>
|
||||||
|
<span class="value">{{ xkTransfuseApply.beinhos_id }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">姓名:</span>
|
||||||
|
<span class="value">{{ xkPatientInfo.patient_name }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">性别:</span>
|
||||||
|
<span class="value">{{ xkPatientInfo.patient_sex }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">年龄:</span>
|
||||||
|
<span class="value">{{ xkPatientInfo.age }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">属地:</span>
|
||||||
|
<span class="value">{{ formatDict(xkPatientInfo.apanage, 'sd') }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">病区:</span>
|
||||||
|
<span class="value ellipsis-one-line" :title="formatDict(xkTransfuseApply.zone_id, 'bq')">
|
||||||
|
{{ formatDict(xkTransfuseApply.zone_id, 'bq') }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">科室:</span>
|
||||||
|
<span class="value ellipsis-one-line" :title="formatDict(xkTransfuseApply.dept_id, 'ks')">
|
||||||
|
{{ formatDict(xkTransfuseApply.dept_id, 'ks') }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">床位号:</span>
|
||||||
|
<span class="value">{{ xkTransfuseApply.patient_bed }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">临床诊断:</span>
|
||||||
|
<span class="value ellipsis-one-line" :title="xkTransfuseApply.diagnoses">
|
||||||
|
{{ xkTransfuseApply.diagnoses }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="blood-type-group">
|
||||||
|
<div class="blood-type-tag ab"><span class="x_type">{{ xkPatientInfo.abo || '-' }}</span> 型</div>
|
||||||
|
<div :class="['blood-type-tag', 'rh',]">
|
||||||
|
<span :class="[xkPatientInfo.rh ? (xkPatientInfo.rh == '+' ? '' : 'red') : '']">
|
||||||
|
{{ xkPatientInfo.rh ? (xkPatientInfo.rh == '+' ? '阳性' : '阴性') : '-' }}</span> RH
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-box">
|
||||||
|
<div class="section-title">
|
||||||
|
<div>开单信息</div>
|
||||||
|
<div style="width: 200px">
|
||||||
|
申请单号: {{ xkTransfuseApply.bill_no }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-row :gutter="10">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="申请单号" prop="assess_bill_no">
|
<el-form-item label="评估单" prop="assess_bill_no">
|
||||||
<el-input v-model="xkTransfuseApply.bill_no" disabled />
|
<DropdownTableSelect v-model="xkTransfuseApply.assess_bill_no" :columnList="pgcolumnList"
|
||||||
|
:tableData="pgList" tableWidth="700px" labelField="bill_no" :showSearch="false" @open="getPgList"
|
||||||
|
:readonly="true" @change="getPgInfo" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="申请日期" prop="apply_date">
|
<el-form-item label="申请日期" prop="apply_date">
|
||||||
<el-date-picker v-model="formData.apply_date" type="datetime" style="width:100%"
|
<el-date-picker v-model="formData.apply_date" type="datetime" style="width:100%"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" />
|
value-format="YYYY-MM-DD HH:mm:ss" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="5">
|
||||||
<el-form-item label="申请医师" prop="apply_medic">
|
<el-form-item label="申请医师" prop="apply_medic">
|
||||||
<SelectTable v-model:data="xkTransfuseApply.apply_medic" :tableData="userList" size="small"
|
<SelectTable v-model:data="xkTransfuseApply.apply_medic" :tableData="userList" size="small"
|
||||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="5">
|
||||||
<el-form-item label="主治医师" prop="attending_medic">
|
<el-form-item label="主治医师" prop="attending_medic">
|
||||||
<SelectTable v-model:data="xkTransfuseApply.attending_medic" :tableData="userList" size="small"
|
<SelectTable v-model:data="xkTransfuseApply.attending_medic" :tableData="userList" size="small"
|
||||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="17">
|
||||||
<el-form-item label="上级医师" prop="check_medic">
|
|
||||||
<SelectTable v-model:data="xkTransfuseApply.check_medic" :tableData="userList" size="small"
|
|
||||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 患者信息 -->
|
|
||||||
<div class="box-item">
|
|
||||||
<div class="box-title">患者信息</div>
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="住院号/ID号" prop="beinhos_id">
|
|
||||||
<DropdownTableSelect v-model="xkTransfuseApply.beinhos_id" :columnList="pgcolumnList"
|
|
||||||
:tableData="pgList" tableWidth="700px" labelField="beinhos_id" :showSearch="false" @open="getPgList"
|
|
||||||
@change="getPgInfo" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="姓名" prop="patient_name">
|
|
||||||
<el-input v-model="xkPatientInfo.patient_name" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="性别" prop="patient_sex">
|
|
||||||
<el-select v-model="xkPatientInfo.patient_sex" style="width:100%" @change="sexChange">
|
|
||||||
<el-option label="男" value="男" />
|
|
||||||
<el-option label="女" value="女" />
|
|
||||||
<el-option label="未知" value="未知" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="血型" prop="abo">
|
|
||||||
<el-select v-model="xkPatientInfo.abo" placeholder="">
|
|
||||||
<el-option v-for="v in dictData.abotype" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="年龄" prop="age">
|
|
||||||
<el-input v-model="xkPatientInfo.age" style="width:60%" />
|
|
||||||
<div style="width: 40%">
|
|
||||||
<el-select v-model="xkPatientInfo.nldw" placeholder="">
|
|
||||||
<el-option v-for="v in dictData.nldw" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="科室" prop="dept_id">
|
|
||||||
<SelectTable v-model:data="xkTransfuseApply.dept_id" :tableData="dictData.ks" size="small"
|
|
||||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="病区" prop="zone_id">
|
|
||||||
<SelectTable v-model:data="xkTransfuseApply.zone_id" :tableData="dictData.bq" size="small"
|
|
||||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="Rh(D)" prop="rh">
|
|
||||||
<el-select v-model="xkPatientInfo.rh" placeholder="">
|
|
||||||
<el-option v-for="v in dictData.rhtype" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="属地" prop="apanage">
|
|
||||||
<el-select v-model="xkPatientInfo.apanage" placeholder="">
|
|
||||||
<el-option v-for="v in dictData.sd" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="床位号" prop="patient_bed">
|
|
||||||
<el-input v-model="xkTransfuseApply.patient_bed" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="科室类型" prop="dept_Type">
|
|
||||||
<el-select v-model="xkTransfuseApply.dept_Type" placeholder="" style="width:50%" clearable
|
|
||||||
@change="xkTransfuseApply.use_type = ''">
|
|
||||||
<el-option v-for="v in dictData.depttype" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
|
|
||||||
<el-select v-model="xkTransfuseApply.use_type" placeholder="" style="width:50%" clearable
|
|
||||||
v-if="xkTransfuseApply.dept_Type == 'A'">
|
|
||||||
<el-option v-for="v in dictData.operatype" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
<el-select v-model="xkTransfuseApply.use_type" placeholder="" style="width:50%" clearable
|
|
||||||
v-if="xkTransfuseApply.dept_Type == 'B'">
|
|
||||||
<el-option v-for="v in dictData.nooperatype" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="单病种" prop="ill_Code">
|
|
||||||
<SelectTable v-model:data="xkTransfuseApply.ill_Code" :tableData="diaList" size="small" placeholder=""
|
|
||||||
:disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="临床诊断" prop="diagnoses">
|
|
||||||
<DropdownTableSelect v-model="xkTransfuseApply.diagnoses" :columnList="dictList"
|
|
||||||
:tableData="dictData.lczd" labelField="label" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="输血目的" prop="intent">
|
|
||||||
<el-select v-model="xkTransfuseApply.intent" style="width:100%" filterable placeholder="">
|
|
||||||
<el-option v-for="v in dictData.sxmd" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="输血指征" prop="causalis">
|
|
||||||
<DropdownTableSelect v-model="xkTransfuseApply.causalis" :columnList="dictList"
|
|
||||||
:tableData="dictData.sxzz" labelField="label" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="手术名称" prop="operation_name">
|
|
||||||
<DropdownTableSelect v-model="xkTransfuseApply.operation_name" :columnList="operationColumn"
|
|
||||||
:tableData="operationList" tableWidth="350px" labelField="oper_name" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="手术级别" prop="operation_level">
|
|
||||||
<el-select v-model="xkTransfuseApply.operation_level" placeholder="">
|
|
||||||
<el-option label="一级手术" value="1" />
|
|
||||||
<el-option label="二级手术" value="2" />
|
|
||||||
<el-option label="三级手术" value="3" />
|
|
||||||
<el-option label="四级手术" value="4" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8"></el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="输血史" prop="transfuse_history" label-width="95px">
|
|
||||||
<el-radio-group v-model="xkPatientInfo.transfuse_history">
|
|
||||||
<el-radio value="Y">有</el-radio>
|
|
||||||
<el-radio value="N">无</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="反应史" prop="reaction_history" label-width="80px">
|
|
||||||
<el-radio-group v-model="xkPatientInfo.reaction_history">
|
|
||||||
<el-radio value="Y">有</el-radio>
|
|
||||||
<el-radio value="N">无</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="5">
|
|
||||||
<el-form-item label="移植配型史" prop="match_history" label-width="100px">
|
|
||||||
<el-radio-group v-model="xkPatientInfo.match_history">
|
|
||||||
<el-radio value="Y">有</el-radio>
|
|
||||||
<el-radio value="N">无</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="妊娠史" prop="gestation_history" label-width="80px">
|
|
||||||
<el-radio-group v-model="xkPatientInfo.gestation_history"
|
|
||||||
:disabled="xkPatientInfo.patient_sex == '男' || (xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A')">
|
|
||||||
<el-radio value="Y">有</el-radio>
|
|
||||||
<el-radio value="N">无</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="分娩史" prop="parturition_history" label-width="80px">
|
|
||||||
<el-radio-group v-model="xkPatientInfo.parturition_history"
|
|
||||||
:disabled="xkPatientInfo.patient_sex == '男' || (xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A')">
|
|
||||||
<el-radio value="Y">有</el-radio>
|
|
||||||
<el-radio value="N">无</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="申请类型" prop="apply_type">
|
<el-form-item label="申请类型" prop="apply_type">
|
||||||
<el-radio-group v-model="xkTransfuseApply.apply_type">
|
<el-radio-group v-model="xkTransfuseApply.apply_type">
|
||||||
<el-radio v-for="v in dictData.sqlx" :value="v.value">{{ v.label }}</el-radio>
|
<el-radio v-for="v in dictData.sqlx" :value="v.value">{{ v.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-checkbox v-model="xkTransfuseApply.agreement_ink" true-value="Y"
|
||||||
|
false-value="N">病人/病人家属是否签署输血同意书</el-checkbox>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="单据类型" prop="bill_type">
|
<el-form-item label="单据类型" prop="bill_type">
|
||||||
@ -257,33 +140,111 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="18">
|
<el-col :span="6">
|
||||||
<el-form-item label="预定输血日期" prop="use1_date">
|
<el-form-item label="预定输血日期" prop="use1_date">
|
||||||
<el-date-picker v-model="xkTransfuseApply.use1_date" type="datetime" placeholder="选择日期"
|
<el-date-picker v-model="xkTransfuseApply.use1_date" type="datetime" placeholder="选择日期"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" style="width:200px" />
|
value-format="YYYY-MM-DD HH:mm:ss" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="科室类型" prop="dept_Type">
|
||||||
|
<el-select v-model="xkTransfuseApply.dept_Type" placeholder="" style="width:50%" clearable
|
||||||
|
@change="xkTransfuseApply.use_type = ''">
|
||||||
|
<el-option v-for="v in dictData.depttype" :label="v.label" :value="v.value" />
|
||||||
|
</el-select>
|
||||||
|
<el-select v-model="xkTransfuseApply.use_type" placeholder="" style="width:50%" clearable
|
||||||
|
v-if="!xkTransfuseApply.dept_Type">
|
||||||
|
</el-select>
|
||||||
|
<el-select v-model="xkTransfuseApply.use_type" placeholder="" style="width:50%" clearable
|
||||||
|
v-if="xkTransfuseApply.dept_Type == 'A'">
|
||||||
|
<el-option v-for="v in dictData.operatype" :label="v.label" :value="v.value" />
|
||||||
|
</el-select>
|
||||||
|
<el-select v-model="xkTransfuseApply.use_type" placeholder="" style="width:50%" clearable
|
||||||
|
v-if="xkTransfuseApply.dept_Type == 'B'">
|
||||||
|
<el-option v-for="v in dictData.nooperatype" :label="v.label" :value="v.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6"></el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="手术名称" prop="operation_name">
|
||||||
|
<DropdownTableSelect v-model="xkTransfuseApply.operation_name" :columnList="operationColumn"
|
||||||
|
:tableData="operationList" tableWidth="350px" labelField="oper_name" @change="getOperationInfo" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<el-form-item label="上级医师" prop="check_medic">
|
<el-form-item label="手术级别" prop="operation_level">
|
||||||
<SelectTable v-model:data="xkTransfuseApply.check_medic" :tableData="userList" placeholder=""
|
<el-select v-model="xkTransfuseApply.operation_level" placeholder="" clearable>
|
||||||
disabled size="small" />
|
<el-option label="一级手术" value="1" />
|
||||||
|
<el-option label="二级手术" value="2" />
|
||||||
|
<el-option label="三级手术" value="3" />
|
||||||
|
<el-option label="四级手术" value="4" />
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="7">
|
<el-col :span="6">
|
||||||
<el-form-item label="审核时间" prop="medic_check_date">
|
<el-form-item label="单病种" prop="ill_Code">
|
||||||
<el-date-picker v-model="xkTransfuseApply.medic_check_date" type="datetime" placeholder="选择日期"
|
<SelectTable v-model:data="xkTransfuseApply.ill_Code" :tableData="diaList" size="small" placeholder=""
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" style="width:200px" disabled />
|
:disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-form-item label="输血史:" prop="transfuse_history">
|
||||||
|
<el-radio-group v-model="xkPatientInfo.transfuse_history">
|
||||||
|
<el-radio value="Y">有</el-radio>
|
||||||
|
<el-radio value="N">无</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="反应史:" prop="reaction_history" label-width="80px">
|
||||||
|
<el-radio-group v-model="xkPatientInfo.reaction_history">
|
||||||
|
<el-radio value="Y">有</el-radio>
|
||||||
|
<el-radio value="N">无</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="移植配型史:" prop="match_history" label-width="100px">
|
||||||
|
<el-radio-group v-model="xkPatientInfo.match_history">
|
||||||
|
<el-radio value="Y">有</el-radio>
|
||||||
|
<el-radio value="N">无</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
<el-form-item label="妊娠史:" prop="gestation_history" label-width="80px">
|
||||||
|
<el-radio-group v-model="xkPatientInfo.gestation_history"
|
||||||
|
:disabled="xkPatientInfo.patient_sex == '男' || (xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A')">
|
||||||
|
<el-radio value="Y">有</el-radio>
|
||||||
|
<el-radio value="N">无</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="分娩史:" prop="parturition_history" label-width="80px">
|
||||||
|
<el-radio-group v-model="xkPatientInfo.parturition_history"
|
||||||
|
:disabled="xkPatientInfo.patient_sex == '男' || (xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A')">
|
||||||
|
<el-radio value="Y">有</el-radio>
|
||||||
|
<el-radio value="N">无</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-checkbox v-model="xkTransfuseApply.agreement_ink" true-value="Y" class="text-danger"
|
|
||||||
false-value="N">病人/病人家属是否签署输血同意书</el-checkbox>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<div class="line"></div>
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="上级医师:" prop="check_medic">
|
||||||
|
{{userList.find(item => item.value == xkTransfuseApply.check_medic)?.label}}
|
||||||
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="审核时间:" prop="medic_check_date">
|
||||||
|
{{ xkTransfuseApply.medic_check_date }}
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<div class="status"
|
<div class="status"
|
||||||
@ -292,31 +253,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 检查结果(添加单位后缀) -->
|
|
||||||
<div class="box-item">
|
|
||||||
<div class="box-title">病人最近检查结果</div>
|
|
||||||
<el-row :gutter="20" style="padding-right: 30px;">
|
|
||||||
<el-col :span="6" v-for="item in lisProject" class="col-project">
|
|
||||||
<el-form-item :label="item.item_name">
|
|
||||||
<el-select v-model="item.item_result" placeholder="">
|
|
||||||
<el-option v-for="v in dictData.sxqjcxmmrz" :label="v.label" :value="v.value" />
|
|
||||||
</el-select>
|
|
||||||
<span class="unit">{{ item.item_unit }}</span>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 血液品种 -->
|
<!-- 血液品种 -->
|
||||||
<div class="box-item" style="margin-bottom: 0;">
|
<div class="card-box">
|
||||||
<div class="box-title">
|
<div class="section-title">
|
||||||
<span>血液品种</span>
|
<div>血液品种</div>
|
||||||
<div class="title-btn">
|
<div>
|
||||||
<el-button type="primary" @click="openBloodDialog">增加</el-button>
|
<el-button type="primary" @click="openBloodDialog">增加</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="bloodList" border height="145" show-overflow-tooltip>
|
<el-table :data="bloodList" border height="120" show-overflow-tooltip>
|
||||||
<el-table-column prop="blood_breed" label="血液品种" align="center">
|
<el-table-column prop="blood_breed" label="血液品种" align="center" width="150">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{bloodBreed.find(v => v.value == row.blood_breed).label}}
|
{{bloodBreed.find(v => v.value == row.blood_breed).label}}
|
||||||
</template>
|
</template>
|
||||||
@ -329,12 +275,12 @@
|
|||||||
{{ formatDict(row.apply_bloodtype, 'abotype') }}
|
{{ formatDict(row.apply_bloodtype, 'abotype') }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="intent" label="输血目的" align="center" width="150">
|
<el-table-column prop="intent" label="输血目的" align="center" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ formatDict(row.intent, 'sxmd') }}
|
{{ formatDict(row.intent, 'sxmd') }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="causalis" label="输血指征" align="center">
|
<el-table-column prop="causalis" label="输血指征" align="center" width="200">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{ formatDict(row.causalis, 'sxzz') }}
|
{{ formatDict(row.causalis, 'sxzz') }}
|
||||||
</template>
|
</template>
|
||||||
@ -346,7 +292,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="replace_bloodbreed" label="替代血液品种" align="center" width="120">
|
<el-table-column prop="replace_bloodbreed" label="替代血液品种" align="center" width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
{{bloodBreed.find(v => v.value == row.replace_bloodbreed).label}}
|
{{bloodBreed.find(v => v.value == row.replace_bloodbreed)?.label}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="remark" label="备注" align="center" />
|
<el-table-column prop="remark" label="备注" align="center" />
|
||||||
@ -358,9 +304,48 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
|
||||||
|
<div class="card-box jcBox">
|
||||||
|
<div class="section-title">
|
||||||
|
<div>病人最近检查结果</div>
|
||||||
|
</div>
|
||||||
|
<div class="tableBox">
|
||||||
|
<el-table :data="firstGroup" border height="100%">
|
||||||
|
<el-table-column label="项目名" prop="item_name" align="center" />
|
||||||
|
<el-table-column label="结果" prop="item_result" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-select v-model="row.item_result" placeholder="" class="full-width-input" allow-create filterable
|
||||||
|
default-first-option>
|
||||||
|
<el-option v-for="item in dictData.test_result" :key="item.value" :label="item.label"
|
||||||
|
:value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="单位" prop="item_unit" align="center" width="80" />
|
||||||
|
<el-table-column label="检验时间" prop="validTime" align="center" width="150" />
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<el-table :data="secondGroup" border height="100%">
|
||||||
|
<el-table-column label="项目名" prop="item_name" align="center" />
|
||||||
|
<el-table-column label="结果" prop="item_result" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-select v-model="row.item_result" placeholder="" class="full-width-input" allow-create filterable
|
||||||
|
default-first-option>
|
||||||
|
<el-option v-for="item in dictData.test_result" :key="item.value" :label="item.label"
|
||||||
|
:value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="单位" prop="item_unit" align="center" width="80" />
|
||||||
|
<el-table-column label="检验时间" prop="validTime" align="center" width="150" />
|
||||||
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
<!-- 右侧列表 占1份 -->
|
<!-- 右侧列表 占1份 -->
|
||||||
<div class="right-wrap">
|
<div class="right-wrap">
|
||||||
<div class="box-title">申请单列表</div>
|
<div class="box-title">申请单列表</div>
|
||||||
@ -601,13 +586,14 @@ import { getDictData, formatDict, dictData, useCommonDict, useSysParam } from '@
|
|||||||
import DropdownTableSelect from '@/components/DropdownTableSelect/index.vue'
|
import DropdownTableSelect from '@/components/DropdownTableSelect/index.vue'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import {
|
import {
|
||||||
querysqList, getPatInfo, checkSelfBlood, checkCausalis, savePreApplyInfo, saveApplyInfo, queryApplyOne,
|
querysqList, getPatInfo, checkSelfBlood, checkCausalis, savePreApplyInfo, saveApplyInfo, queryApplyOne, queryApplyBeforeList, applyCheck, applyMedicCheck,
|
||||||
queryApplyBeforeList, applyCheck, applyMedicCheck, cancelApplyMedicCheck, cancelApplyCheck, cancelApply
|
cancelApplyMedicCheck, cancelApplyCheck, cancelApply, invokeEMR
|
||||||
} from '@/api/doctor/application'
|
} from '@/api/doctor/application'
|
||||||
import { queryOperation, getDeptType, checkLoginAffirm } from '@/api/common'
|
import { queryOperation, getDeptType, checkLoginAffirm } from '@/api/common'
|
||||||
import ReviewComments from './component/reviewComments.vue'
|
import ReviewComments from './component/reviewComments.vue'
|
||||||
import CheckUser from '@/components/CheckUser/index.vue'
|
import CheckUser from '@/components/CheckUser/index.vue'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
import router from '@/router/index.js'
|
||||||
const userInfo = useUserStore()
|
const userInfo = useUserStore()
|
||||||
|
|
||||||
// 解构全部公共变量与方法
|
// 解构全部公共变量与方法
|
||||||
@ -627,6 +613,8 @@ const {
|
|||||||
} = useCommonDict()
|
} = useCommonDict()
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
|
const aboFlag = ref('')
|
||||||
const saveLoading = ref(false)
|
const saveLoading = ref(false)
|
||||||
const bloodFormRef = ref<InstanceType<typeof ElForm>>()
|
const bloodFormRef = ref<InstanceType<typeof ElForm>>()
|
||||||
const queryForm = reactive({
|
const queryForm = reactive({
|
||||||
@ -663,11 +651,11 @@ const radioChange = (val: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const pgcolumnList = ref([
|
const pgcolumnList = ref([
|
||||||
|
{ label: '评估单号', prop: 'bill_no' },
|
||||||
{ label: '住院号', prop: 'beinhos_id' },
|
{ label: '住院号', prop: 'beinhos_id' },
|
||||||
{ label: '姓名', prop: 'patient_name', width: 100 },
|
{ label: '姓名', prop: 'patient_name', width: 100 },
|
||||||
{ label: '评估日期(24h内有效)', prop: 'assess_data', width: 200 },
|
{ label: '评估日期(24h内有效)', prop: 'assess_data', width: 200 },
|
||||||
{ label: '评估人', prop: 'assess_person', width: 100 },
|
{ label: '评估人', prop: 'assess_person', width: 100 },
|
||||||
{ label: '评估单号', prop: 'bill_no' },
|
|
||||||
])
|
])
|
||||||
|
|
||||||
const tableData = ref([])
|
const tableData = ref([])
|
||||||
@ -705,8 +693,6 @@ const sexChange = (val: string) => {
|
|||||||
|
|
||||||
// 根据单据状态获取单元格样式(背景色+白色文字)
|
// 根据单据状态获取单元格样式(背景色+白色文字)
|
||||||
const cellStyle = ({ row, column, rowIndex, columnIndex }) => {
|
const cellStyle = ({ row, column, rowIndex, columnIndex }) => {
|
||||||
console.log(row, column);
|
|
||||||
|
|
||||||
if (column.label == '单据状态') {
|
if (column.label == '单据状态') {
|
||||||
return {
|
return {
|
||||||
background: `${getBillStatusInfo(row.bill_stasus).color} !important`,
|
background: `${getBillStatusInfo(row.bill_stasus).color} !important`,
|
||||||
@ -976,6 +962,17 @@ const shClose = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//患者历史
|
||||||
|
const goHistoryBlood = () => {
|
||||||
|
router.push({
|
||||||
|
path: '/doctor/historyBlood',
|
||||||
|
query: {
|
||||||
|
patientName: xkPatientInfo.value.patient_name,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 打开新增弹窗
|
// 打开新增弹窗
|
||||||
const openBloodDialog = () => {
|
const openBloodDialog = () => {
|
||||||
editIndex.value = -1
|
editIndex.value = -1
|
||||||
@ -1036,10 +1033,20 @@ const saveBloodForm = async () => {
|
|||||||
ElMessage.error('请完善必填信息')
|
ElMessage.error('请完善必填信息')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//电子病历
|
||||||
|
const blHandle = () => {
|
||||||
|
if (!xkTransfuseApply.value.beinhos_id) return ElMessage.warning('请选择患者')
|
||||||
|
invokeEMR({ beinhos_id: xkTransfuseApply.value.beinhos_id }).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success(res.msg)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//保存申请单
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (!bloodList.value.length) return ElMessage.error('请添加血液品种')
|
if (!bloodList.value.length) return ElMessage.error('请添加血液品种')
|
||||||
|
// 申请类型 003 || 002 手术信息必填校验
|
||||||
if (xkTransfuseApply.value.apply_type === '003' || xkTransfuseApply.value.apply_type === '002') {
|
if (xkTransfuseApply.value.apply_type === '003' || xkTransfuseApply.value.apply_type === '002') {
|
||||||
if (!xkTransfuseApply.value.operation_name || !xkTransfuseApply.value.operation_level) {
|
if (!xkTransfuseApply.value.operation_name || !xkTransfuseApply.value.operation_level) {
|
||||||
return ElMessage.error('请完善手术名称、级别信息')
|
return ElMessage.error('请完善手术名称、级别信息')
|
||||||
@ -1048,9 +1055,6 @@ const handleSubmit = async () => {
|
|||||||
saveLoading.value = true
|
saveLoading.value = true
|
||||||
const tempPatient = { ...xkPatientInfo.value, beinhos_id: xkTransfuseApply.value.beinhos_id }
|
const tempPatient = { ...xkPatientInfo.value, beinhos_id: xkTransfuseApply.value.beinhos_id }
|
||||||
|
|
||||||
if (xkPatientInfo.value.age) {
|
|
||||||
tempPatient.age = xkPatientInfo.value.age + xkPatientInfo.value.nldw
|
|
||||||
}
|
|
||||||
const data = {
|
const data = {
|
||||||
transfuseApplyInfoOne: {
|
transfuseApplyInfoOne: {
|
||||||
xkPatientInfo: tempPatient,
|
xkPatientInfo: tempPatient,
|
||||||
@ -1106,7 +1110,7 @@ const handleSubmit = async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
//获取申请单信息
|
||||||
const getQueryOneInfo = (bill_no: string) => {
|
const getQueryOneInfo = (bill_no: string) => {
|
||||||
queryApplyOne({ billNo: bill_no }).then((res) => {
|
queryApplyOne({ billNo: bill_no }).then((res) => {
|
||||||
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
||||||
@ -1123,17 +1127,16 @@ const getQueryOneInfo = (bill_no: string) => {
|
|||||||
sid: item.sid
|
sid: item.sid
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
splitAge(xkPatientInfo.value.age)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取患者信息
|
||||||
const getInfo = (billNo) => {
|
const getInfo = (billNo) => {
|
||||||
//PJD2026061623
|
//PJD2026061623
|
||||||
getPatInfo({ bill_no: billNo }).then((res) => {
|
getPatInfo({ bill_no: billNo }).then((res) => {
|
||||||
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
||||||
xkTransfuseApply.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
xkTransfuseApply.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
||||||
|
bloodList.value = res.data.xkTransfuseApplyBloodbreedList || []
|
||||||
formData.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
formData.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
||||||
lisProject.value = res.data.xkTransfuseApplyTestitemList.map(item => {
|
lisProject.value = res.data.xkTransfuseApplyTestitemList.map(item => {
|
||||||
return {
|
return {
|
||||||
@ -1145,8 +1148,6 @@ const getInfo = (billNo) => {
|
|||||||
sid: item.sid
|
sid: item.sid
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
splitAge(xkPatientInfo.value.age)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1199,19 +1200,56 @@ const operationColumn = [
|
|||||||
// { label: '手术级别', prop: 'oper_level' },
|
// { label: '手术级别', prop: 'oper_level' },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
const getOperationInfo = (row) => {
|
||||||
|
if (row.oper_level) {
|
||||||
|
switch (row.oper_level) {
|
||||||
|
case '一级':
|
||||||
|
xkTransfuseApply.value.operation_level = '1'
|
||||||
|
break;
|
||||||
|
case '二级':
|
||||||
|
xkTransfuseApply.value.operation_level = '2'
|
||||||
|
break;
|
||||||
|
case '三级':
|
||||||
|
xkTransfuseApply.value.operation_level = '3'
|
||||||
|
break;
|
||||||
|
case '四级':
|
||||||
|
xkTransfuseApply.value.operation_level = '4'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//手术名称
|
||||||
const getSxList = () => {
|
const getSxList = () => {
|
||||||
queryOperation({ pageNum: 1, pageSize: 99999 }).then(res => {
|
queryOperation({ pageNum: 1, pageSize: 99999 }).then(res => {
|
||||||
operationList.value = res.rows
|
operationList.value = res.rows
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 计算属性:自动平分数组,分成两组
|
||||||
|
const splitList = computed(() => {
|
||||||
|
const list = lisProject.value
|
||||||
|
console.log("🚀 ~ lisProject.value:", lisProject.value)
|
||||||
|
const midIndex = Math.ceil(list.length / 2)
|
||||||
|
const firstGroup = list.slice(0, midIndex)
|
||||||
|
const secondGroup = list.slice(midIndex)
|
||||||
|
console.log("🚀 ~ firstGroup, secondGroup:", firstGroup, secondGroup)
|
||||||
|
return { firstGroup, secondGroup }
|
||||||
|
})
|
||||||
|
|
||||||
|
// 拆分后两组数据
|
||||||
|
const firstGroup = computed(() => splitList.value.firstGroup)
|
||||||
|
const secondGroup = computed(() => splitList.value.secondGroup)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadAllDict()
|
loadAllDict()
|
||||||
getServerTime().then(time => {
|
getServerTime().then(time => {
|
||||||
formData.value.apply_date = time
|
formData.value.apply_date = time
|
||||||
})
|
})
|
||||||
getSxList()
|
getSxList()
|
||||||
getDictData('sqdzfyy', 'rhtype', 'abotype', 'nldw', 'billApplyStatus', 'sd', 'ks', 'depttype', 'bq', 'sxmd', 'sxzz', 'sxqjcxmmrz', 'sqlx', 'lczd', 'xylx', 'operatype', 'nooperatype')
|
getDictData('sqdzfyy', 'rhtype', 'abotype', 'nldw', 'billApplyStatus', 'sd', 'ks', 'depttype', 'bq', 'sxmd', 'sxzz', 'test_result', 'sqlx', 'lczd', 'xylx', 'operatype', 'nooperatype')
|
||||||
getSqdList()
|
getSqdList()
|
||||||
loadBillInfo()
|
loadBillInfo()
|
||||||
|
|
||||||
@ -1219,7 +1257,14 @@ onMounted(() => {
|
|||||||
// 输血申请时是否可从HIS系统中调出患者信息,是否可以录入修改患者血型?
|
// 输血申请时是否可从HIS系统中调出患者信息,是否可以录入修改患者血型?
|
||||||
// 以"/"分隔,"/"前指可以调出患者信息时是否可以修改患者血型(Y可以修改N不可以修改),
|
// 以"/"分隔,"/"前指可以调出患者信息时是否可以修改患者血型(Y可以修改N不可以修改),
|
||||||
// "/"后指不可以调出患者信息时是否可以录入全部和只能录入"未知"患者血型(Y可以录入全部N只能录入"未知")
|
// "/"后指不可以调出患者信息时是否可以录入全部和只能录入"未知"患者血型(Y可以录入全部N只能录入"未知")
|
||||||
getParam('SQDSFKRLXGXX') //
|
|
||||||
|
if (getParam('SQDSFKRLXGXX')) {
|
||||||
|
const [a, b] = getParam('SQDSFKRLXGXX').split('/')
|
||||||
|
aboFlag.value = b
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 监听路由变化
|
// 监听路由变化
|
||||||
@ -1245,7 +1290,7 @@ onBeforeUnmount(() => {
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
@ -1289,24 +1334,32 @@ onBeforeUnmount(() => {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 6px;
|
overflow: hidden;
|
||||||
overflow-y: auto;
|
|
||||||
|
|
||||||
.blood-transfusion-form {
|
.blood-transfusion-form {
|
||||||
width: 100%;
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
.el-radio {
|
.el-radio {
|
||||||
margin-right: 10px !important;
|
margin-right: 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.jcBox {
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
|
||||||
|
.tableBox {
|
||||||
|
height: calc(100% - 30px);
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-item {
|
.card-box {
|
||||||
background: #fff;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
||||||
padding: 10px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
:deep(.el-form-item) {
|
:deep(.el-form-item) {
|
||||||
@ -1330,7 +1383,7 @@ onBeforeUnmount(() => {
|
|||||||
.status {
|
.status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
top: 36px;
|
top: 100px;
|
||||||
color: #409eff;
|
color: #409eff;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@ -1381,4 +1434,87 @@ onBeforeUnmount(() => {
|
|||||||
color: #f00 !important;
|
color: #f00 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.base-info-card {
|
||||||
|
.base-info-content {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.base-info {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-row {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
.info-item {
|
||||||
|
width: 20%;
|
||||||
|
display: flex;
|
||||||
|
font-size: 14px;
|
||||||
|
// font-weight: 600;
|
||||||
|
|
||||||
|
.label {
|
||||||
|
color: #000;
|
||||||
|
min-width: 70px;
|
||||||
|
text-align: right;
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value {
|
||||||
|
color: #1d2d42;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.blood-type-group {
|
||||||
|
display: flex;
|
||||||
|
gap: 16px;
|
||||||
|
margin-left: 20px;
|
||||||
|
|
||||||
|
.blood-type-tag {
|
||||||
|
width: 150px;
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 600;
|
||||||
|
padding-left: 20px;
|
||||||
|
|
||||||
|
&.ab {
|
||||||
|
background: url('@/assets/images/blood_zero.png');
|
||||||
|
background-size: 100% 100%;
|
||||||
|
color: #3594c7;
|
||||||
|
|
||||||
|
.x_type {
|
||||||
|
color: #ff3b62;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.rh {
|
||||||
|
background-color: #e8f7ff;
|
||||||
|
color: #3594c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
color: #f00 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.line {
|
||||||
|
height: 1px;
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<el-form label-width="auto">
|
<el-form label-width="auto">
|
||||||
<div class="section">
|
<div class="section pginfo">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="评估单号">
|
<el-form-item label="评估单号">
|
||||||
@ -109,18 +109,24 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="临床诊断">
|
<el-form-item label="属 地">
|
||||||
<el-input v-model="bloodInfo.diagnoses" />
|
<SelectTable v-model:data="baseInfo.apanage" dict-type="sd" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="8">
|
<el-col :span="4">
|
||||||
<el-form-item label="输血目的">
|
<el-form-item label="输血目的">
|
||||||
<SelectTable v-model:data="bloodInfo.intent" dict-type="sxmd" placeholder="" />
|
<SelectTable v-model:data="bloodInfo.intent" dict-type="sxmd" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="血量">
|
||||||
|
<el-input v-model="bloodInfo.blood_num" type="number" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="出血量">
|
<el-form-item label="出血量">
|
||||||
<el-input v-model="bloodInfo.blood_loss" type="number" />
|
<el-input v-model="bloodInfo.blood_loss" type="number" />
|
||||||
@ -134,21 +140,19 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="血液品种">
|
<el-form-item label="血液品种">
|
||||||
<SelectTable v-model:data="bloodInfo.blood_breed" dict-type="xylx" placeholder="" />
|
<SelectTable v-model:data="bloodInfo.blood_breed" dict-type="xylx" placeholder="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="8">
|
||||||
<el-form-item label="血量">
|
<el-form-item label="临床诊断">
|
||||||
<el-input v-model="bloodInfo.blood_num" type="number" />
|
<el-input v-model="bloodInfo.diagnoses" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="4">
|
||||||
<el-form-item label="">
|
<el-form-item label="">
|
||||||
<el-checkbox v-model="bloodInfo.agreement_ink" class="text-danger" true-value="Y" false-value="N">
|
<el-checkbox v-model="bloodInfo.agreement_ink" class="text-danger" true-value="Y" false-value="N">
|
||||||
病人/病人家属是否签署输血同意书
|
病人/病人家属是否签署输血同意书
|
||||||
@ -177,7 +181,7 @@
|
|||||||
<el-col :span="6" v-for="item in lisProject" class="col-project">
|
<el-col :span="6" v-for="item in lisProject" class="col-project">
|
||||||
<el-form-item :label="item.item_name">
|
<el-form-item :label="item.item_name">
|
||||||
<el-select v-model="item.item_result" placeholder="">
|
<el-select v-model="item.item_result" placeholder="">
|
||||||
<el-option v-for="v in dictData.sxqjcxmmrz" :label="v.label" :value="v.value" />
|
<el-option v-for="v in dictData.test_result" :label="v.label" :value="v.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<span class="unit">{{ item.item_unit }}</span>
|
<span class="unit">{{ item.item_unit }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -424,6 +428,8 @@ const handleSubmit = () => {
|
|||||||
if (bloodInfo.value.bill_status && bloodInfo.value.bill_status == '2') return ElMessage.warning('该评估单已审核,不允许修改!')
|
if (bloodInfo.value.bill_status && bloodInfo.value.bill_status == '2') return ElMessage.warning('该评估单已审核,不允许修改!')
|
||||||
//判断病情概要是否填写
|
//判断病情概要是否填写
|
||||||
if (getParam('HZBQGY') == 'Y' && !bloodInfo.value.bqgy) return ElMessage.warning('请务必填写病情概要,以便输血科评估用血合理性!')
|
if (getParam('HZBQGY') == 'Y' && !bloodInfo.value.bqgy) return ElMessage.warning('请务必填写病情概要,以便输血科评估用血合理性!')
|
||||||
|
if (!baseInfo.value.beinhos_id) return ElMessage.warning('请填写患者住院号/ID号')
|
||||||
|
|
||||||
const tempPatient = { ...baseInfo.value }
|
const tempPatient = { ...baseInfo.value }
|
||||||
|
|
||||||
if (baseInfo.value.age) {
|
if (baseInfo.value.age) {
|
||||||
@ -489,7 +495,7 @@ const getProject = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getDictData('ks', 'sxqjcxmmrz', 'nldw', 'anemia')
|
getDictData('ks', 'test_result', 'nldw', 'anemia')
|
||||||
getProject()
|
getProject()
|
||||||
|
|
||||||
|
|
||||||
@ -571,6 +577,12 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.pginfo {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.tips-label {
|
.tips-label {
|
||||||
|
|||||||
@ -84,7 +84,7 @@
|
|||||||
|
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<span class="label">病 区</span>
|
<span class="label">病 区</span>
|
||||||
<span class="value">段立方</span>
|
<span class="value">输血</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<span class="label">性 别</span>
|
<span class="label">性 别</span>
|
||||||
|
|||||||
147
src/views/doctor/historyBlood/index.vue
Normal file
147
src/views/doctor/historyBlood/index.vue
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<template>
|
||||||
|
<div class="box-container">
|
||||||
|
<div class="top-search-card">
|
||||||
|
<el-form inline :model="queryParams">
|
||||||
|
<el-form-item label="住院号/ID号:">
|
||||||
|
<el-input v-model="queryParams.beinhos_id" placeholder="" clearable @keyup.enter="onSearch" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="患者姓名:">
|
||||||
|
<el-input v-model="queryParams.patient_name" placeholder="" clearable @keyup.enter="onSearch" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="科室:">
|
||||||
|
<SelectTable v-model:data="queryParams.dept" :tableData="dictData.ks" placeholder="请选择" width="200"
|
||||||
|
clearable />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table-card">
|
||||||
|
<div class="toolbar mb10">
|
||||||
|
<el-button type="primary" plain @click="onSearch">检索</el-button>
|
||||||
|
<el-button type="warning" plain @click="onPrint">打印</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="tableBox">
|
||||||
|
<el-table :data="tableData" border show-overflow-tooltip highlight-current-row height="100%">
|
||||||
|
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||||
|
<el-table-column prop="beinhos_id" label="住院号/ID号" align="center" />
|
||||||
|
<el-table-column prop="patient_name" label="姓名" align="center" />
|
||||||
|
<el-table-column prop="patient_sex" label="性别" align="center" width="50" />
|
||||||
|
<el-table-column prop="age" label="年龄" align="center" />
|
||||||
|
<el-table-column prop="abo_type" label="血型" align="center" />
|
||||||
|
<el-table-column prop="dept_id" label="科室" align="center" width="200">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{ formatDict(row.dept_id, 'ks') }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="reaction_history" label="输血反应史" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{ row.reaction_history ? (row.reaction_history == "Y" ? '有' : '无') : '' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="intent" label="输血目的" align="center" width="200">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{ formatDict(row.intent, 'sxmd') }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="blood_breed" label="血液品种" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
{{bloodBreed.find(v => v.value == row.blood_breed).label}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="ds" label="袋数" align="center" />
|
||||||
|
<el-table-column prop="capacity" label="容量" align="center" />
|
||||||
|
<el-table-column prop="unit" label="单位" align="center" width="80" />
|
||||||
|
<el-table-column prop="occur_date" label="出库日期" align="center" width="180" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="page-box">
|
||||||
|
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { getDictData, formatDict, dictData, useCommonDict } from '@/hooks'
|
||||||
|
import { queryhistoryList } from '@/api/doctor/application'
|
||||||
|
import router from '@/router/index.js'
|
||||||
|
const route = useRoute()
|
||||||
|
const { bloodBreed, getBloodList, loadAllDict } = useCommonDict()
|
||||||
|
|
||||||
|
const queryParams = ref({
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 30,
|
||||||
|
beinhos_id: '',
|
||||||
|
patient_name: '',
|
||||||
|
dept: '',
|
||||||
|
})
|
||||||
|
const total = ref(0)
|
||||||
|
|
||||||
|
const tableData = ref([])
|
||||||
|
|
||||||
|
const onSearch = () => {
|
||||||
|
queryParams.value.pageNum = 1
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
queryhistoryList(queryParams.value).then((res) => {
|
||||||
|
tableData.value = res.rows
|
||||||
|
total.value = res.total
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const onPrint = () => {
|
||||||
|
console.log('打印')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getDictData('ks', 'sxmd')
|
||||||
|
getBloodList()
|
||||||
|
if (route.query.patientName) {
|
||||||
|
queryParams.value.patient_name = route.query.patientName
|
||||||
|
}
|
||||||
|
onSearch()
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.box-container {
|
||||||
|
padding: 12px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 10px;
|
||||||
|
|
||||||
|
.top-search-card {
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
|
||||||
|
:deep(.el-form-item) {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-card {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.07);
|
||||||
|
padding: 12px;
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.tableBox {
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,313 +0,0 @@
|
|||||||
/**
|
|
||||||
* @file index.vue
|
|
||||||
* @description: 输血治疗登记
|
|
||||||
* @author: w
|
|
||||||
* @since: 2026-07-08
|
|
||||||
*/
|
|
||||||
<template>
|
|
||||||
<div class="box-container">
|
|
||||||
<div class="toolbar">
|
|
||||||
<el-button type="primary" plain>检索</el-button>
|
|
||||||
<el-button type="primary" plain>新增单据</el-button>
|
|
||||||
<el-button type="danger" plain>删除单据</el-button>
|
|
||||||
<el-button type="success" plain>保存</el-button>
|
|
||||||
<el-button type="warning" plain>审核</el-button>
|
|
||||||
<el-button type="warning" plain>打印</el-button>
|
|
||||||
<el-button type="info" plain>标签重打</el-button>
|
|
||||||
</div>
|
|
||||||
<el-form label-width="auto">
|
|
||||||
<div class="section">
|
|
||||||
<div class="section-title">申请信息</div>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="申请单号">
|
|
||||||
<DropdownTableSelect v-model="form.beinhos_id" :columnList="sqcolumnList" :tableData="sqList"
|
|
||||||
tableWidth="300px" labelField="beinhos_id" :showSearch="false" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="住院号/ID号">
|
|
||||||
<el-input v-model="form.patientId" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="姓 名">
|
|
||||||
<el-input v-model="form.patientName" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="性 别">
|
|
||||||
<el-select v-model="form.sex" placeholder="" readonly>
|
|
||||||
<el-option label="男" value="男" />
|
|
||||||
<el-option label="女" value="女" />
|
|
||||||
<el-option label="未知" value="未知" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="血 型">
|
|
||||||
<el-input v-model="form.bloodType" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="科 室">
|
|
||||||
<SelectTable v-model:data="form.deptId" :tableData="dictData.ks" placeholder="" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="申请日期">
|
|
||||||
<el-date-picker v-model="form.applyDate" type="datetime" style="width: 100%"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="治疗日期">
|
|
||||||
<el-date-picker v-model="form.treatDate" type="datetime" style="width: 100%"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="年 龄">
|
|
||||||
<div>
|
|
||||||
<el-input v-model="form.age" readonly />
|
|
||||||
<!-- <el-select v-model="form.nldw" placeholder="" style="width: 45%">
|
|
||||||
<el-option v-for="v in dictData.nldw" :label="v.label" :value="v.value" />
|
|
||||||
</el-select> -->
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="Rh(D)">
|
|
||||||
<el-input v-model="form.rh" readonly />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="是否采血">
|
|
||||||
<el-checkbox v-model="form.collectBlood" true-value="Y" false-value="N" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="输血史">
|
|
||||||
<el-checkbox v-model="form.transfusionHistory" true-value="Y" false-value="N" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="输血反应史">
|
|
||||||
<el-checkbox v-model="form.transfusionReactionHistory" true-value="Y" false-value="N" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="妊娠史">
|
|
||||||
<el-checkbox v-model="form.pregnancyHistory" true-value="Y" false-value="N" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="分娩史">
|
|
||||||
<el-checkbox v-model="form.deliveryHistory" true-value="Y" false-value="N" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span="12">
|
|
||||||
<div class="box-item">
|
|
||||||
<div class="box-title">治疗项目</div>
|
|
||||||
<div class="table-box">
|
|
||||||
<el-table :data="treatmentItems" border height="150" style="width: 100%" show-overflow-tooltip
|
|
||||||
highlight-current-row>
|
|
||||||
<el-table-column prop="project" label="治疗项目" align="center" />
|
|
||||||
<el-table-column prop="quantity" label="数量" align="center" />
|
|
||||||
<el-table-column prop="unit" label="单位" align="center" />
|
|
||||||
<el-table-column prop="remark" label="备注" align="center" />
|
|
||||||
</el-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<div class="box-item">
|
|
||||||
<div class="box-title">采血血液</div>
|
|
||||||
<div class="table-box">
|
|
||||||
<el-table :data="bloodItems" border height="150" style="width: 100%" show-overflow-tooltip
|
|
||||||
highlight-current-row>
|
|
||||||
<el-table-column prop="bloodBreed" label="血液品种" align="center" />
|
|
||||||
<el-table-column prop="volume" label="容量" align="center" />
|
|
||||||
<el-table-column prop="unit" label="单位" align="center" />
|
|
||||||
<el-table-column prop="remark" label="备注" align="center" />
|
|
||||||
</el-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="section-title">登记信息</div>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="治 疗 人">
|
|
||||||
<SelectTable v-model:data="registerInfo.apply_medic" :tableData="userList" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<el-form-item label="治疗日期">
|
|
||||||
<el-date-picker v-model="registerInfo.treatDate" type="datetime" style="width: 100%"
|
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="治疗不良反应">
|
|
||||||
<el-input v-model="registerInfo.adverseReaction" placeholder="双击选择" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="不良反应处理">
|
|
||||||
<el-input v-model="registerInfo.adverseHandle" placeholder="双击选择" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section">
|
|
||||||
<div class="section-title">采血信息</div>
|
|
||||||
<div class="table-box">
|
|
||||||
<el-button type="primary" plain class="mb10">新增血液</el-button>
|
|
||||||
<el-table :data="bloodRecords" border height="220" style="width: 100%">
|
|
||||||
<el-table-column prop="bloodBreed" label="血液品种" align="center" />
|
|
||||||
<el-table-column prop="bloodType" label="血型" align="center" />
|
|
||||||
<el-table-column prop="rh" label="Rh(D)" align="center" />
|
|
||||||
<el-table-column prop="volume" label="容量" align="center" />
|
|
||||||
<el-table-column prop="unit" label="单位" align="center" />
|
|
||||||
<el-table-column label="操作" align="center">
|
|
||||||
<template #default="{ row }">
|
|
||||||
<el-button type="primary" text plain>删除</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import DropdownTableSelect from '@/components/DropdownTableSelect/index.vue'
|
|
||||||
import { getDictData, formatDict, dictData, useCommonDict, useSysParam } from '@/hooks'
|
|
||||||
|
|
||||||
const { userList, getUserData } = useCommonDict()
|
|
||||||
const form = reactive({})
|
|
||||||
const sqcolumnList = ref([
|
|
||||||
{ label: '申请单编号', prop: 'sqbh' },
|
|
||||||
{ label: '姓名', prop: 'name' },
|
|
||||||
])
|
|
||||||
const sqList = ref([])
|
|
||||||
const treatmentItems = ref([])
|
|
||||||
|
|
||||||
const bloodItems = ref([])
|
|
||||||
|
|
||||||
const registerInfo = reactive({
|
|
||||||
treatPerson: '',
|
|
||||||
treatDate: '',
|
|
||||||
adverseReaction: '',
|
|
||||||
adverseHandle: ''
|
|
||||||
})
|
|
||||||
|
|
||||||
const bloodRecords = ref([])
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
getUserData()
|
|
||||||
getDictData('ks', 'nldw')
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.box-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
box-sizing: border-box;
|
|
||||||
gap: 10px;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar {
|
|
||||||
padding: 8px;
|
|
||||||
background: #fff;
|
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section {
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-form-item {
|
|
||||||
margin-bottom: 6px;
|
|
||||||
|
|
||||||
:deep(.el-form-item__label) {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-title {
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: 700;
|
|
||||||
position: relative;
|
|
||||||
padding-left: 14px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-title::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 4px;
|
|
||||||
width: 4px;
|
|
||||||
height: 16px;
|
|
||||||
border-radius: 0 4px 4px 0;
|
|
||||||
background-color: #409eff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-item {
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-title {
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: 700;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
position: relative;
|
|
||||||
padding-left: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-title::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 4px;
|
|
||||||
width: 4px;
|
|
||||||
height: 16px;
|
|
||||||
border-radius: 0 4px 4px 0;
|
|
||||||
background-color: #409eff;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.age-input {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-danger {
|
|
||||||
color: #f00 !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@ -1,11 +1,315 @@
|
|||||||
<template>
|
/**
|
||||||
|
* @file index.vue
|
||||||
|
* @description: 输血治疗登记
|
||||||
|
* @author: w
|
||||||
|
* @since: 2026-07-08
|
||||||
|
*/
|
||||||
|
<template>
|
||||||
|
<div class="box-container">
|
||||||
|
<div class="toolbar">
|
||||||
|
<el-button type="primary" plain>检索</el-button>
|
||||||
|
<el-button type="primary" plain>新增单据</el-button>
|
||||||
|
<el-button type="danger" plain>删除单据</el-button>
|
||||||
|
<el-button type="success" plain>保存</el-button>
|
||||||
|
<el-button type="warning" plain>审核</el-button>
|
||||||
|
<el-button type="warning" plain>打印</el-button>
|
||||||
|
<el-button type="info" plain>标签重打</el-button>
|
||||||
|
</div>
|
||||||
|
<el-form label-width="auto">
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">申请信息</div>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="申请单号">
|
||||||
|
<DropdownTableSelect v-model="form.beinhos_id" :columnList="sqcolumnList" :tableData="sqList"
|
||||||
|
tableWidth="300px" labelField="beinhos_id" :showSearch="false" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="住院号/ID号">
|
||||||
|
<el-input v-model="form.patientId" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="姓 名">
|
||||||
|
<el-input v-model="form.patientName" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="性 别">
|
||||||
|
<el-select v-model="form.sex" placeholder="" disabled>
|
||||||
|
<el-option label="男" value="男" />
|
||||||
|
<el-option label="女" value="女" />
|
||||||
|
<el-option label="未知" value="未知" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="血 型">
|
||||||
|
<el-input v-model="form.bloodType" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="科 室">
|
||||||
|
<SelectTable v-model:data="form.deptId" :tableData="dictData.ks" placeholder="" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="申请日期">
|
||||||
|
<el-date-picker v-model="form.applyDate" type="datetime" style="width: 100%"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="治疗日期">
|
||||||
|
<el-date-picker v-model="form.treatDate" type="datetime" style="width: 100%"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="年 龄">
|
||||||
<div>
|
<div>
|
||||||
输血治疗登记
|
<el-input v-model="form.age" disabled />
|
||||||
|
<!-- <el-select v-model="form.nldw" placeholder="" style="width: 45%">
|
||||||
|
<el-option v-for="v in dictData.nldw" :label="v.label" :value="v.value" />
|
||||||
|
</el-select> -->
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="Rh(D)">
|
||||||
|
<el-input v-model="form.rh" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="是否采血">
|
||||||
|
<el-checkbox v-model="form.collectBlood" true-value="Y" false-value="N" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="输血史">
|
||||||
|
<el-checkbox v-model="form.transfusionHistory" true-value="Y" false-value="N" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="输血反应史">
|
||||||
|
<el-checkbox v-model="form.transfusionReactionHistory" true-value="Y" false-value="N" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="妊娠史">
|
||||||
|
<el-checkbox v-model="form.pregnancyHistory" true-value="Y" false-value="N" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="分娩史">
|
||||||
|
<el-checkbox v-model="form.deliveryHistory" true-value="Y" false-value="N" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="box-item">
|
||||||
|
<div class="box-title">治疗项目</div>
|
||||||
|
<div class="table-box">
|
||||||
|
<el-table :data="treatmentItems" border height="150" style="width: 100%" show-overflow-tooltip
|
||||||
|
highlight-current-row>
|
||||||
|
<el-table-column prop="project" label="治疗项目" align="center" />
|
||||||
|
<el-table-column prop="quantity" label="数量" align="center" />
|
||||||
|
<el-table-column prop="unit" label="单位" align="center" />
|
||||||
|
<el-table-column prop="remark" label="备注" align="center" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="box-item">
|
||||||
|
<div class="box-title">采血血液</div>
|
||||||
|
<div class="table-box">
|
||||||
|
<el-table :data="bloodItems" border height="150" style="width: 100%" show-overflow-tooltip
|
||||||
|
highlight-current-row>
|
||||||
|
<el-table-column prop="bloodBreed" label="血液品种" align="center" />
|
||||||
|
<el-table-column prop="volume" label="容量" align="center" />
|
||||||
|
<el-table-column prop="unit" label="单位" align="center" />
|
||||||
|
<el-table-column prop="remark" label="备注" align="center" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">登记信息</div>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="治 疗 人">
|
||||||
|
<SelectTable v-model:data="registerInfo.apply_medic" :tableData="userList" placeholder="" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label="治疗日期">
|
||||||
|
<el-date-picker v-model="registerInfo.treatDate" type="datetime" style="width: 100%"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="治疗不良反应">
|
||||||
|
<el-input v-model="registerInfo.adverseReaction" placeholder="双击选择" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="不良反应处理">
|
||||||
|
<el-input v-model="registerInfo.adverseHandle" placeholder="双击选择" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-box" style="margin-bottom: 0;">
|
||||||
|
<div class="section-title">
|
||||||
|
<div> 采血信息 </div>
|
||||||
|
<el-button type="primary" plain class="mb10">新增血液</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="table-box">
|
||||||
|
<el-table :data="bloodRecords" border height="200" style="width: 100%">
|
||||||
|
<el-table-column prop="bloodBreed" label="血液品种" align="center" />
|
||||||
|
<el-table-column prop="bloodType" label="血型" align="center" />
|
||||||
|
<el-table-column prop="rh" label="Rh(D)" align="center" />
|
||||||
|
<el-table-column prop="volume" label="容量" align="center" />
|
||||||
|
<el-table-column prop="unit" label="单位" align="center" />
|
||||||
|
<el-table-column label="操作" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button type="primary" text plain>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import DropdownTableSelect from '@/components/DropdownTableSelect/index.vue'
|
||||||
|
import { getDictData, formatDict, dictData, useCommonDict, useSysParam } from '@/hooks'
|
||||||
|
|
||||||
|
const { userList, getUserData } = useCommonDict()
|
||||||
|
const form = reactive({ deliveryHistory: 'Y' })
|
||||||
|
const sqcolumnList = ref([
|
||||||
|
{ label: '申请单编号', prop: 'sqbh' },
|
||||||
|
{ label: '姓名', prop: 'name' },
|
||||||
|
])
|
||||||
|
const sqList = ref([])
|
||||||
|
const treatmentItems = ref([])
|
||||||
|
|
||||||
|
const bloodItems = ref([])
|
||||||
|
|
||||||
|
const registerInfo = reactive({
|
||||||
|
treatPerson: '',
|
||||||
|
treatDate: '',
|
||||||
|
adverseReaction: '',
|
||||||
|
adverseHandle: ''
|
||||||
|
})
|
||||||
|
|
||||||
|
const bloodRecords = ref([])
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getUserData()
|
||||||
|
getDictData('ks', 'nldw')
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped lang="scss">
|
||||||
|
.box-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
box-sizing: border-box;
|
||||||
|
gap: 10px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toolbar {
|
||||||
|
padding: 8px;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
|
||||||
|
:deep(.el-form-item__label) {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 14px;
|
||||||
|
padding-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 4px;
|
||||||
|
width: 4px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 0 4px 4px 0;
|
||||||
|
background-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-item {
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||||
|
padding: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title {
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
position: relative;
|
||||||
|
padding-left: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 4px;
|
||||||
|
width: 4px;
|
||||||
|
height: 16px;
|
||||||
|
border-radius: 0 4px 4px 0;
|
||||||
|
background-color: #409eff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.age-input {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-danger {
|
||||||
|
color: #f00 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user