feat(doctorstation): 新增传染病报告卡功能并优化患者登记组件

- 新增传染病报告卡完整实现,包含甲乙丙类传染病选择和报告信息录入
- 在患者登记组件中修复性别字典数据去重问题
- 添加编辑模式支持和原始数据存储功能
- 实现姓名和身份证唯一性校验的编辑模式跳过逻辑
- 添加年龄自动计算功能基于出生日期
- 确保性别值为字符串类型以便与下拉框选项匹配
- 更新患者登记组件的标题和状态管理逻辑
This commit is contained in:
2026-03-09 13:47:56 +08:00
parent 81744b9b9e
commit 46a99ecd55
11 changed files with 3169 additions and 12 deletions

View File

@@ -160,6 +160,9 @@
<el-tab-pane label="会诊" name="consultation">
<Consultation :patientInfo="patientInfo" :activeTab="activeTab" ref="consultationRef" />
</el-tab-pane>
<el-tab-pane label="传染病报卡" name="infectiousReport">
<InfectiousReport :patientInfo="patientInfo" :activeTab="activeTab" ref="infectiousReportRef" @saved="handleInfectiousReportSaved" />
</el-tab-pane>
</el-tabs>
<div class="overlay" :class="{ 'overlay-disabled': disabled }" v-if="disabled"></div>
</div>
@@ -205,6 +208,7 @@ import inspectionApplication from './components/inspection/inspectionApplication
import examinationApplication from './components/examination/examinationApplication.vue';
import surgeryApplication from './components/surgery/surgeryApplication.vue';
import DoctorCallDialog from './components/callQueue/DoctorCallDialog.vue';
import InfectiousReport from './components/infectiousReport/index.vue';
import { formatDate, formatDateStr } from '@/utils/index';
import useUserStore from '@/store/modules/user';
import { nextTick } from 'vue';
@@ -299,6 +303,7 @@ const surgeryRef = ref();
const emrRef = ref();
const diagnosisRef = ref();
const consultationRef = ref();
const infectiousReportRef = ref();
const waitCount = ref(0);
const loading = ref(false);
const { proxy } = getCurrentInstance();
@@ -708,6 +713,12 @@ function handleEmrSaved(isSaved) {
outpatientEmrSaved.value = isSaved;
}
// 处理传染病报卡保存成功事件
function handleInfectiousReportSaved() {
// 可以在这里添加刷新列表或其他逻辑
proxy.$modal.msgSuccess('传染病报告卡保存成功');
}
// 处理写病历事件
function handleWriteEmr(row) {
console.log('处理写病历:', row);