输血申请改造
This commit is contained in:
parent
e35a900f36
commit
8959eb8c1f
@ -127,4 +127,20 @@ export function cancelApply(query?: Object) {
|
||||
method: 'get',
|
||||
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;
|
||||
margin-bottom: 10px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
position: relative;
|
||||
padding-left: 12px;
|
||||
@ -434,18 +438,15 @@ aside {
|
||||
}
|
||||
|
||||
|
||||
.el-form .el-form-item__label {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.el-form--inline .el-form-item {
|
||||
margin-right: .9375rem;
|
||||
}
|
||||
|
||||
.el-form-item__label {
|
||||
font-weight: 400;
|
||||
font-size: .875rem;
|
||||
color: #81878d;
|
||||
font-weight: 600 !important;
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.el-dialog:not(.is-fullscreen) {
|
||||
@ -517,7 +518,7 @@ aside {
|
||||
th {
|
||||
word-break: break-word;
|
||||
background-color: #eff6fa !important;
|
||||
color: #3c526f;
|
||||
color: #000;
|
||||
height: 1.875rem !important;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
@ -579,7 +580,7 @@ aside {
|
||||
padding: 0 !important;
|
||||
height: 1.8125rem;
|
||||
line-height: 1.8125rem;
|
||||
color: #3c526f;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@ -843,4 +844,18 @@ aside {
|
||||
|
||||
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
|
||||
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"
|
||||
:popper-style="{ width: realtableWidth }">
|
||||
<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">
|
||||
<el-icon>
|
||||
<ArrowDown />
|
||||
@ -99,6 +100,11 @@ const props = defineProps({
|
||||
showSearch: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否只读
|
||||
readonly: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
|
||||
@ -242,6 +248,7 @@ watch(inputText, (val) => {
|
||||
// 输入框回车(原有逻辑)
|
||||
const handleInputEnter = (e: KeyboardEvent) => {
|
||||
e.stopPropagation()
|
||||
emit('update:modelValue', inputText.value)
|
||||
emit('search', inputText.value)
|
||||
}
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ export function useCommonDict() {
|
||||
item_name: item.pro_name,
|
||||
item_result: '',
|
||||
item_unit: item.unit,
|
||||
test_date: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
test_date: item.validTime,
|
||||
sid: item.sid
|
||||
}))
|
||||
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="addHandle">新增</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 type="danger" plain @click="cancelreviewHandle">取消审核</el-button>
|
||||
<el-button type="info" plain @click="invalidateHandle">作废</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>
|
||||
</div>
|
||||
|
||||
<!-- 主体区域 左2 : 右1 -->
|
||||
<div class="main-content">
|
||||
<!-- 左侧区域 占2份 -->
|
||||
<!-- 左侧区域 占2份left-wrap -->
|
||||
<div class="left-wrap">
|
||||
<!-- 包裹整个表单内容 -->
|
||||
<el-form ref="formRef" label-width="auto" size="small" class="blood-transfusion-form"
|
||||
:disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'">
|
||||
<!-- 申请信息 -->
|
||||
<div class="box-item">
|
||||
<el-row>
|
||||
<div class="card-box base-info-card">
|
||||
<div class="section-title">
|
||||
<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-form-item label="申请单号" prop="assess_bill_no">
|
||||
<el-input v-model="xkTransfuseApply.bill_no" disabled />
|
||||
<el-form-item label="评估单" prop="assess_bill_no">
|
||||
<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-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item label="申请日期" prop="apply_date">
|
||||
<el-date-picker v-model="formData.apply_date" type="datetime" style="width:100%"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="申请医师" prop="apply_medic">
|
||||
<SelectTable v-model:data="xkTransfuseApply.apply_medic" :tableData="userList" size="small"
|
||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="主治医师" prop="attending_medic">
|
||||
<SelectTable v-model:data="xkTransfuseApply.attending_medic" :tableData="userList" size="small"
|
||||
placeholder="" :disabled="xkTransfuseApply.bill_stasus && xkTransfuseApply.bill_stasus != 'A'" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<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-col :span="17">
|
||||
<el-form-item label="申请类型" prop="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-group>
|
||||
</el-form-item>
|
||||
</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-form-item label="单据类型" prop="bill_type">
|
||||
@ -257,33 +140,111 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="预定输血日期" prop="use1_date">
|
||||
<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="24">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="上级医师" prop="check_medic">
|
||||
<SelectTable v-model:data="xkTransfuseApply.check_medic" :tableData="userList" placeholder=""
|
||||
disabled size="small" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="审核时间" prop="medic_check_date">
|
||||
<el-date-picker v-model="xkTransfuseApply.medic_check_date" type="datetime" placeholder="选择日期"
|
||||
value-format="YYYY-MM-DD HH:mm:ss" style="width:200px" disabled />
|
||||
</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-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-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="手术级别" prop="operation_level">
|
||||
<el-select v-model="xkTransfuseApply.operation_level" placeholder="" clearable>
|
||||
<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="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-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-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 :span="6">
|
||||
<el-form-item label="审核时间:" prop="medic_check_date">
|
||||
{{ xkTransfuseApply.medic_check_date }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<div class="status"
|
||||
@ -292,31 +253,16 @@
|
||||
</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="box-title">
|
||||
<span>血液品种</span>
|
||||
<div class="title-btn">
|
||||
<div class="card-box">
|
||||
<div class="section-title">
|
||||
<div>血液品种</div>
|
||||
<div>
|
||||
<el-button type="primary" @click="openBloodDialog">增加</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="bloodList" border height="145" show-overflow-tooltip>
|
||||
<el-table-column prop="blood_breed" label="血液品种" align="center">
|
||||
<el-table :data="bloodList" border height="120" show-overflow-tooltip>
|
||||
<el-table-column prop="blood_breed" label="血液品种" align="center" width="150">
|
||||
<template #default="{ row }">
|
||||
{{bloodBreed.find(v => v.value == row.blood_breed).label}}
|
||||
</template>
|
||||
@ -329,12 +275,12 @@
|
||||
{{ formatDict(row.apply_bloodtype, 'abotype') }}
|
||||
</template>
|
||||
</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 }">
|
||||
{{ formatDict(row.intent, 'sxmd') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="causalis" label="输血指征" align="center">
|
||||
<el-table-column prop="causalis" label="输血指征" align="center" width="200">
|
||||
<template #default="{ row }">
|
||||
{{ formatDict(row.causalis, 'sxzz') }}
|
||||
</template>
|
||||
@ -346,7 +292,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="replace_bloodbreed" label="替代血液品种" align="center" width="120">
|
||||
<template #default="{ row }">
|
||||
{{bloodBreed.find(v => v.value == row.replace_bloodbreed).label}}
|
||||
{{bloodBreed.find(v => v.value == row.replace_bloodbreed)?.label}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注" align="center" />
|
||||
@ -358,9 +304,48 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<!-- 右侧列表 占1份 -->
|
||||
<div class="right-wrap">
|
||||
<div class="box-title">申请单列表</div>
|
||||
@ -601,13 +586,14 @@ import { getDictData, formatDict, dictData, useCommonDict, useSysParam } from '@
|
||||
import DropdownTableSelect from '@/components/DropdownTableSelect/index.vue'
|
||||
import dayjs from 'dayjs'
|
||||
import {
|
||||
querysqList, getPatInfo, checkSelfBlood, checkCausalis, savePreApplyInfo, saveApplyInfo, queryApplyOne,
|
||||
queryApplyBeforeList, applyCheck, applyMedicCheck, cancelApplyMedicCheck, cancelApplyCheck, cancelApply
|
||||
querysqList, getPatInfo, checkSelfBlood, checkCausalis, savePreApplyInfo, saveApplyInfo, queryApplyOne, queryApplyBeforeList, applyCheck, applyMedicCheck,
|
||||
cancelApplyMedicCheck, cancelApplyCheck, cancelApply, invokeEMR
|
||||
} from '@/api/doctor/application'
|
||||
import { queryOperation, getDeptType, checkLoginAffirm } from '@/api/common'
|
||||
import ReviewComments from './component/reviewComments.vue'
|
||||
import CheckUser from '@/components/CheckUser/index.vue'
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import router from '@/router/index.js'
|
||||
const userInfo = useUserStore()
|
||||
|
||||
// 解构全部公共变量与方法
|
||||
@ -627,6 +613,8 @@ const {
|
||||
} = useCommonDict()
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const aboFlag = ref('')
|
||||
const saveLoading = ref(false)
|
||||
const bloodFormRef = ref<InstanceType<typeof ElForm>>()
|
||||
const queryForm = reactive({
|
||||
@ -663,11 +651,11 @@ const radioChange = (val: string) => {
|
||||
}
|
||||
|
||||
const pgcolumnList = ref([
|
||||
{ label: '评估单号', prop: 'bill_no' },
|
||||
{ label: '住院号', prop: 'beinhos_id' },
|
||||
{ label: '姓名', prop: 'patient_name', width: 100 },
|
||||
{ label: '评估日期(24h内有效)', prop: 'assess_data', width: 200 },
|
||||
{ label: '评估人', prop: 'assess_person', width: 100 },
|
||||
{ label: '评估单号', prop: 'bill_no' },
|
||||
])
|
||||
|
||||
const tableData = ref([])
|
||||
@ -705,8 +693,6 @@ const sexChange = (val: string) => {
|
||||
|
||||
// 根据单据状态获取单元格样式(背景色+白色文字)
|
||||
const cellStyle = ({ row, column, rowIndex, columnIndex }) => {
|
||||
console.log(row, column);
|
||||
|
||||
if (column.label == '单据状态') {
|
||||
return {
|
||||
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 = () => {
|
||||
editIndex.value = -1
|
||||
@ -1036,10 +1033,20 @@ const saveBloodForm = async () => {
|
||||
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 () => {
|
||||
if (!bloodList.value.length) return ElMessage.error('请添加血液品种')
|
||||
// 申请类型 003 || 002 手术信息必填校验
|
||||
if (xkTransfuseApply.value.apply_type === '003' || xkTransfuseApply.value.apply_type === '002') {
|
||||
if (!xkTransfuseApply.value.operation_name || !xkTransfuseApply.value.operation_level) {
|
||||
return ElMessage.error('请完善手术名称、级别信息')
|
||||
@ -1048,9 +1055,6 @@ const handleSubmit = async () => {
|
||||
saveLoading.value = true
|
||||
const tempPatient = { ...xkPatientInfo.value, beinhos_id: xkTransfuseApply.value.beinhos_id }
|
||||
|
||||
if (xkPatientInfo.value.age) {
|
||||
tempPatient.age = xkPatientInfo.value.age + xkPatientInfo.value.nldw
|
||||
}
|
||||
const data = {
|
||||
transfuseApplyInfoOne: {
|
||||
xkPatientInfo: tempPatient,
|
||||
@ -1106,7 +1110,7 @@ const handleSubmit = async () => {
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
//获取申请单信息
|
||||
const getQueryOneInfo = (bill_no: string) => {
|
||||
queryApplyOne({ billNo: bill_no }).then((res) => {
|
||||
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
||||
@ -1123,17 +1127,16 @@ const getQueryOneInfo = (bill_no: string) => {
|
||||
sid: item.sid
|
||||
}
|
||||
})
|
||||
|
||||
splitAge(xkPatientInfo.value.age)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取患者信息
|
||||
const getInfo = (billNo) => {
|
||||
//PJD2026061623
|
||||
getPatInfo({ bill_no: billNo }).then((res) => {
|
||||
xkPatientInfo.value = res.data.transfuseApplyInfoOne.xkPatientInfo
|
||||
xkTransfuseApply.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
||||
bloodList.value = res.data.xkTransfuseApplyBloodbreedList || []
|
||||
formData.value = res.data.transfuseApplyInfoOne.xkTransfuseApply
|
||||
lisProject.value = res.data.xkTransfuseApplyTestitemList.map(item => {
|
||||
return {
|
||||
@ -1145,8 +1148,6 @@ const getInfo = (billNo) => {
|
||||
sid: item.sid
|
||||
}
|
||||
})
|
||||
|
||||
splitAge(xkPatientInfo.value.age)
|
||||
})
|
||||
}
|
||||
|
||||
@ -1199,19 +1200,56 @@ const operationColumn = [
|
||||
// { 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 = () => {
|
||||
queryOperation({ pageNum: 1, pageSize: 99999 }).then(res => {
|
||||
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(() => {
|
||||
loadAllDict()
|
||||
getServerTime().then(time => {
|
||||
formData.value.apply_date = time
|
||||
})
|
||||
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()
|
||||
loadBillInfo()
|
||||
|
||||
@ -1219,7 +1257,14 @@ onMounted(() => {
|
||||
// 输血申请时是否可从HIS系统中调出患者信息,是否可以录入修改患者血型?
|
||||
// 以"/"分隔,"/"前指可以调出患者信息时是否可以修改患者血型(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;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
@ -1289,24 +1334,32 @@ onBeforeUnmount(() => {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
overflow-y: auto;
|
||||
overflow: hidden;
|
||||
|
||||
.blood-transfusion-form {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
.el-radio {
|
||||
margin-right: 10px !important;
|
||||
}
|
||||
|
||||
.jcBox {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
|
||||
.tableBox {
|
||||
height: calc(100% - 30px);
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.box-item {
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
.card-box {
|
||||
position: relative;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
@ -1330,7 +1383,7 @@ onBeforeUnmount(() => {
|
||||
.status {
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 36px;
|
||||
top: 100px;
|
||||
color: #409eff;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
@ -1381,4 +1434,87 @@ onBeforeUnmount(() => {
|
||||
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>
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
|
||||
<el-form label-width="auto">
|
||||
<div class="section">
|
||||
<div class="section pginfo">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="评估单号">
|
||||
@ -109,18 +109,24 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="临床诊断">
|
||||
<el-input v-model="bloodInfo.diagnoses" />
|
||||
<el-form-item label="属 地">
|
||||
<SelectTable v-model:data="baseInfo.apanage" dict-type="sd" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="输血目的">
|
||||
<SelectTable v-model:data="bloodInfo.intent" dict-type="sxmd" placeholder="" />
|
||||
</el-form-item>
|
||||
</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-form-item label="出血量">
|
||||
<el-input v-model="bloodInfo.blood_loss" type="number" />
|
||||
@ -134,22 +140,20 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="血液品种">
|
||||
<SelectTable v-model:data="bloodInfo.blood_breed" dict-type="xylx" placeholder="" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="血量">
|
||||
<el-input v-model="bloodInfo.blood_num" type="number" />
|
||||
<el-col :span="8">
|
||||
<el-form-item label="临床诊断">
|
||||
<el-input v-model="bloodInfo.diagnoses" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label=" ">
|
||||
<el-col :span="4">
|
||||
<el-form-item label="">
|
||||
<el-checkbox v-model="bloodInfo.agreement_ink" class="text-danger" true-value="Y" false-value="N">
|
||||
病人/病人家属是否签署输血同意书
|
||||
</el-checkbox>
|
||||
@ -177,7 +181,7 @@
|
||||
<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-option v-for="v in dictData.test_result" :label="v.label" :value="v.value" />
|
||||
</el-select>
|
||||
<span class="unit">{{ item.item_unit }}</span>
|
||||
</el-form-item>
|
||||
@ -424,6 +428,8 @@ const handleSubmit = () => {
|
||||
if (bloodInfo.value.bill_status && bloodInfo.value.bill_status == '2') 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 }
|
||||
|
||||
if (baseInfo.value.age) {
|
||||
@ -489,7 +495,7 @@ const getProject = () => {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getDictData('ks', 'sxqjcxmmrz', 'nldw', 'anemia')
|
||||
getDictData('ks', 'test_result', 'nldw', 'anemia')
|
||||
getProject()
|
||||
|
||||
|
||||
@ -571,6 +577,12 @@ onMounted(() => {
|
||||
}
|
||||
|
||||
|
||||
.pginfo {
|
||||
.el-form-item {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tips-label {
|
||||
|
||||
@ -84,7 +84,7 @@
|
||||
|
||||
<div class="info-item">
|
||||
<span class="label">病 区</span>
|
||||
<span class="value">段立方</span>
|
||||
<span class="value">输血</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<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>
|
||||
<div>
|
||||
输血治疗登记
|
||||
/**
|
||||
* @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>
|
||||
<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>
|
||||
</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({ 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>
|
||||
|
||||
<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