diff --git a/openhis-server-new/core-common/src/main/java/com/core/common/exception/ServiceException.java b/openhis-server-new/core-common/src/main/java/com/core/common/exception/ServiceException.java
index fcfa3ecf..cb0a8e8b 100644
--- a/openhis-server-new/core-common/src/main/java/com/core/common/exception/ServiceException.java
+++ b/openhis-server-new/core-common/src/main/java/com/core/common/exception/ServiceException.java
@@ -21,7 +21,7 @@ public final class ServiceException extends RuntimeException {
/**
* 错误明细,内部调试错误
*
- * 和 {@link CommonResult#getDetailMessage()} 一致的设计
+ * 和
*/
private String detailMessage;
diff --git a/openhis-server-new/openhis-application/pom.xml b/openhis-server-new/openhis-application/pom.xml
index e6db15b9..2c60a5c1 100644
--- a/openhis-server-new/openhis-application/pom.xml
+++ b/openhis-server-new/openhis-application/pom.xml
@@ -69,6 +69,7 @@
org.apache.velocity
velocity-engine-core
+
-
+
{{ item.patientName || '-' }}
diff --git a/openhis-ui-vue3/src/components/TableLayout/Filter.vue b/openhis-ui-vue3/src/components/TableLayout/Filter.vue
index a9c1711d..c42fed9f 100644
--- a/openhis-ui-vue3/src/components/TableLayout/Filter.vue
+++ b/openhis-ui-vue3/src/components/TableLayout/Filter.vue
@@ -23,7 +23,7 @@
搜索
重置
-
+
{{ isExpanded ? '收起' : '展开' }}
diff --git a/openhis-ui-vue3/src/template/inHospitalRecord.vue b/openhis-ui-vue3/src/template/inHospitalRecord.vue
index 0da2a4cb..2b33b258 100644
--- a/openhis-ui-vue3/src/template/inHospitalRecord.vue
+++ b/openhis-ui-vue3/src/template/inHospitalRecord.vue
@@ -565,6 +565,26 @@ const rules = reactive({
chiefComplaint: [{ required: true, message: '请填写主诉', trigger: ['blur', 'submit'] }],
});
+// 监听 patientInfo 变化,更新表单数据
+watch(
+ () => props.patientInfo,
+ (newPatientInfo) => {
+ if (newPatientInfo) {
+ // 更新基础信息
+ formData.patientName = newPatientInfo.patientName || newPatientInfo.name || '';
+ formData.hospitalNo = newPatientInfo.busNo || newPatientInfo.hospitalNo || '';
+ formData.gender = newPatientInfo.genderEnum_enumText || newPatientInfo.gender || '';
+ formData.age = newPatientInfo.age || '';
+ formData.nation = newPatientInfo.nation || '';
+ formData.occupation = newPatientInfo.profession || '';
+ formData.marriage = newPatientInfo.maritalStatus || '';
+ formData.birthplace = newPatientInfo.birthPlace || '';
+ // 可以根据需要更新更多字段
+ }
+ },
+ { deep: true, immediate: true }
+);
+
// 生命周期
onMounted(() => {
// 初始化记录时间为当前时间
@@ -578,16 +598,16 @@ onMounted(() => {
formData.signDate = formatDateTime(new Date());
}
if (!formData.patientName) {
- formData.patientName = patient?.patientName || '';
+ formData.patientName = patient?.patientName || patient?.name || '';
}
if (!formData.gender) {
- formData.gender = patient?.genderEnum_enumText || '';
+ formData.gender = patient?.genderEnum_enumText || patient?.gender || '';
}
if (!formData.age) {
formData.age = patient?.age || '';
}
if (!formData.hospitalNo) {
- formData.hospitalNo = patient?.busNo || '';
+ formData.hospitalNo = patient?.busNo || patient?.hospitalNo || '';
}
});
diff --git a/openhis-ui-vue3/src/utils/his.js b/openhis-ui-vue3/src/utils/his.js
index 48b59c36..afef3ce3 100644
--- a/openhis-ui-vue3/src/utils/his.js
+++ b/openhis-ui-vue3/src/utils/his.js
@@ -334,11 +334,13 @@ export function handleColor(a, b, status) {
*/
export function getPrinterList() {
try {
- const printerList =
- window.hiprint && window.hiprint.hiwebSocket
- ? window.hiprint.hiwebSocket.getPrinterList()
- : [];
- return printerList || [];
+ if (window.hiprint && window.hiprint.hiwebSocket && window.hiprint.hiwebSocket.connected) {
+ const printerList = window.hiprint.hiwebSocket.getPrinterList();
+ return printerList || [];
+ } else {
+ console.warn('打印服务未连接,返回空打印机列表');
+ return [];
+ }
} catch (error) {
console.error('获取打印机列表失败:', error);
return [];
diff --git a/openhis-ui-vue3/src/utils/printUtils.js b/openhis-ui-vue3/src/utils/printUtils.js
index 9a760cbf..0deeb324 100644
--- a/openhis-ui-vue3/src/utils/printUtils.js
+++ b/openhis-ui-vue3/src/utils/printUtils.js
@@ -151,11 +151,13 @@ export const PRINT_TEMPLATE = {
*/
export function getPrinterList() {
try {
- const printerList =
- window.hiprint && window.hiprint.hiwebSocket
- ? window.hiprint.hiwebSocket.getPrinterList()
- : [];
- return printerList || [];
+ if (window.hiprint && window.hiprint.hiwebSocket && window.hiprint.hiwebSocket.connected) {
+ const printerList = window.hiprint.hiwebSocket.getPrinterList();
+ return printerList || [];
+ } else {
+ console.warn('打印服务未连接,返回空打印机列表');
+ return [];
+ }
} catch (error) {
console.error('获取打印机列表失败:', error);
return [];
diff --git a/openhis-ui-vue3/src/views/basicmanage/implementDepartment/index.vue b/openhis-ui-vue3/src/views/basicmanage/implementDepartment/index.vue
index aa16cfa1..60881b37 100644
--- a/openhis-ui-vue3/src/views/basicmanage/implementDepartment/index.vue
+++ b/openhis-ui-vue3/src/views/basicmanage/implementDepartment/index.vue
@@ -225,7 +225,15 @@ function getList() {
loading.value = true;
getDiagnosisTreatmentList(queryParams.value).then((res) => {
loading.value = false;
- catagoryList.value = res.data.records;
+ catagoryList.value = res.data.records.map(record => {
+ // 为每一行初始化 filteredOptions,确保显示框能正确显示项目名称
+ const filteredOptions = allImplementDepartmentList.value.slice(0, 100);
+ return {
+ ...record,
+ loading: false,
+ filteredOptions: filteredOptions
+ };
+ });
total.value = res.data.total;
});
}
diff --git a/openhis-ui-vue3/src/views/basicmanage/ordersCombination/index.vue b/openhis-ui-vue3/src/views/basicmanage/ordersCombination/index.vue
index 77bf5fb5..4c70b6a1 100644
--- a/openhis-ui-vue3/src/views/basicmanage/ordersCombination/index.vue
+++ b/openhis-ui-vue3/src/views/basicmanage/ordersCombination/index.vue
@@ -52,8 +52,8 @@
- 编辑
-
+ 编辑
+
删除
diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue
index 74067a23..96f5ed3b 100644
--- a/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue
+++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue
@@ -776,7 +776,8 @@ const transformFormData = (form) => {
extraDetails,
comment,
busNo,
- },
+ practitionerId: form.value.practitionerId,
+ },
chargeItemDefinitionFormData: {
id,
chargeName,
@@ -833,7 +834,8 @@ const transformFormEditData = (form) => {
extraDetails,
comment,
busNo,
- },
+ practitionerId: form.value.practitionerId,
+ },
};
};
getRegistrationfeeTypeList();
diff --git a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/components/history.vue b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/components/history.vue
index 31c7f375..4608d09f 100644
--- a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/components/history.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/components/history.vue
@@ -42,7 +42,6 @@ import {defineEmits, ref, unref} from 'vue';
import {deleteRecord, getRecordByEncounterIdList} from '../api';
import {ElMessage} from 'element-plus';
import {patientInfo} from '../../store/patient.js';
-import apiRequestManager from '@/utils/apiRequestManager.js';
const emits = defineEmits(['historyClick']);
const props = defineProps({
@@ -68,30 +67,15 @@ const queryParams = ref({
isPage: 0,
});
const historyData = ref([]);
-// 防止重复加载的标志
-let isLoadingHistory = false;
-
const queryList = async () => {
- // 防止重复加载
- if (isLoadingHistory) {
- console.log('History data is already loading, skipping duplicate call');
- return;
- }
-
- isLoadingHistory = true;
-
try {
if (patientInfo.value.encounterId && unref(definitionId) && unref(definitionId) !== '') {
- const res = await apiRequestManager.execute(
- getRecordByEncounterIdList,
- '/document/record/getRecordByEncounterIdList',
- {
- isPage: 0, // 确保参数一致,便于去重
- encounterId: patientInfo.value.encounterId,
- patientId: patientInfo.value.patientId,
- definitionId: unref(definitionId),
- }
- );
+ const res = await getRecordByEncounterIdList({
+ ...queryParams.value,
+ encounterId: patientInfo.value.encounterId,
+ patientId: patientInfo.value.patientId,
+ definitionId: unref(definitionId),
+ });
historyData.value = res.data || [];
} else {
historyData.value = [];
@@ -99,8 +83,6 @@ const queryList = async () => {
} catch (error) {
// ElMessage.error(' 获取模板树失败 ');
historyData.value = [];
- } finally {
- isLoadingHistory = false; // 重置加载标志
}
};
const handleNodeClick = (data) => {
diff --git a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/index.vue b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/index.vue
index f05eeac2..300b6cf5 100644
--- a/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/index.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/components/hospitalizationEmr/index.vue
@@ -103,7 +103,6 @@ import dayjs from 'dayjs';
// 打印工具
import {PRINT_TEMPLATE, simplePrint} from '@/utils/printUtils.js';
import {getEncounterDiagnosis} from '../api';
-import apiRequestManager from '@/utils/apiRequestManager.js';
import History from './components/history';
import Template from './components/template';
import TemplateEdit from './components/templateEdit.vue';
@@ -206,7 +205,7 @@ const handleNodeClick = (data, node) => {
// 选择任何病历模板后,都加载该病历类型的最新历史记录
if (node.isLeaf && props.patientInfo && props.patientInfo.patientId) {
- debouncedLoadLatestMedicalRecord();
+ loadLatestMedicalRecord();
}
}, 100);
});
@@ -280,7 +279,7 @@ const handleSubmitOk = async (data) => {
// 等待历史记录列表更新后,重新加载最新病历并更新选中状态
setTimeout(() => {
- debouncedLoadLatestMedicalRecord();
+ loadLatestMedicalRecord();
}, 100);
} catch (error) {
ElMessage.error('提交失败');
@@ -411,7 +410,7 @@ const selectOutpatientMedicalRecordTemplate = async () => {
// 等待模板加载完成,然后获取并回显最新病历数据
setTimeout(() => {
historyRef.value?.queryList();
- debouncedLoadLatestMedicalRecord();
+ loadLatestMedicalRecord();
}, 500);
});
} else {
@@ -422,36 +421,19 @@ const selectOutpatientMedicalRecordTemplate = async () => {
// 当前选中的历史病历ID,用于在History组件中高亮显示
const selectedHistoryRecordId = ref('');
-import { debounce } from 'lodash-es';
-
-// 防止重复加载的标志
-let isLoadingLatestRecord = false;
-
// 加载最新的病历数据并回显
const loadLatestMedicalRecord = async () => {
if (!patientInfo.value.encounterId || !currentSelectTemplate.value.id) return;
- // 防止重复加载
- if (isLoadingLatestRecord) {
- console.log('Latest medical record is already loading, skipping duplicate call');
- return;
- }
-
- isLoadingLatestRecord = true;
loading.value = true;
-
try {
// 获取患者的历史病历记录
- const res = await apiRequestManager.execute(
- getRecordByEncounterIdList,
- '/document/record/getRecordByEncounterIdList',
- {
- isPage: 0,
- encounterId: patientInfo.value.encounterId,
- patientId: patientInfo.value.patientId,
- definitionId: currentSelectTemplate.value.id,
- }
- );
+ const res = await getRecordByEncounterIdList({
+ isPage: 0,
+ encounterId: patientInfo.value.encounterId,
+ patientId: patientInfo.value.patientId,
+ definitionId: currentSelectTemplate.value.id,
+ });
const historyRecords = res.data || [];
if (historyRecords.length > 0) {
@@ -537,12 +519,8 @@ const loadLatestMedicalRecord = async () => {
});
} finally {
loading.value = false;
- isLoadingLatestRecord = false; // 重置加载标志
}
};
-
-// 防抖版本的加载最新病历数据函数
-const debouncedLoadLatestMedicalRecord = debounce(loadLatestMedicalRecord, 300);
const templateRef = ref(null);
const handleTemplateClick = (data) => {
@@ -772,7 +750,7 @@ const selectDefaultTemplate = () => {
// 直接加载最新病历数据,不再使用额外的setTimeout延迟
// 因为handleNodeClick中已经有nextTick和setTimeout处理组件渲染
- debouncedLoadLatestMedicalRecord();
+ loadLatestMedicalRecord();
});
} else {
console.log('未找到门诊病历模板');
diff --git a/openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue b/openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue
index 55cc219c..9d761a01 100644
--- a/openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/components/inspection/inspectionApplication.vue
@@ -59,8 +59,8 @@
- 打印
- 删除
+ 打印
+ 删除
@@ -379,7 +379,7 @@
@@ -393,7 +393,7 @@
{{ item.itemName }}
¥{{ item.itemPrice }}
{
// 所有数据(用于客户端分页处理)
const allData = ref([])
+// 获取医生常用语列表数据
// 获取医生常用语列表数据
const fetchDoctorPhraseList = async () => {
try {
const response = await getDoctorPhraseList()
- // 处理后端返回的数据结构:data.data
- if (response.code === 200 && response.data && response.data.data) {
+ // 【关键修改】去掉 response.data.data,直接取 response.data
+ if (response.code === 200 && response.data) {
// 按照sortNo由小到大排序,保证列表顺序正确
- allData.value = response.data.data.sort((a, b) => a.sortNo - b.sortNo)
+ allData.value = response.data.sort((a, b) => a.sortNo - b.sortNo)
total.value = allData.value.length
// 执行客户端分页逻辑
applyPagination()
@@ -285,7 +286,7 @@ const fetchDoctorPhraseList = async () => {
total.value = 0
}
} catch (error) {
- console.error('获取列表失败:', error) // 增加控制台日志便于调试
+ console.error('获取列表失败:', error)
ElMessage.error('获取数据失败: 网络请求错误')
allData.value = []
total.value = 0
@@ -322,19 +323,18 @@ const handleCurrentChange = (val) => {
applyPagination()
}
+// 搜索功能核心方法
// 搜索功能核心方法
const handleSearch = async () => {
try {
- // searchScope可能是null(未选择)、1=个人,2=科室,3=全院
const phraseType = searchScope.value === null ? undefined : searchScope.value
- // 调用搜索接口:phraseName, phraseType
const response = await searchDoctorPhraseList(searchKeyword.value, phraseType)
- if (response.code === 200 && response.data && response.data.data) {
- // 按照sortNo由小到大排序
- allData.value = response.data.data.sort((a, b) => a.sortNo - b.sortNo)
+ // 【关键修改】去掉 response.data.data,直接取 response.data
+ if (response.code === 200 && response.data) {
+ allData.value = response.data.sort((a, b) => a.sortNo - b.sortNo)
total.value = allData.value.length
- currentPage.value = 1 // 搜索后重置到第一页
- applyPagination() // 应用分页
+ currentPage.value = 1
+ applyPagination()
} else {
ElMessage.error('搜索失败: ' + (response.msg || '未知错误'))
allData.value = []
@@ -349,20 +349,30 @@ const handleSearch = async () => {
}
// 打开新增模态框方法
+// index.vue
+
const showAddDialog = () => {
- // 重置表单数据
+ // 1. 算出当前最大的排序号
+ // 如果列表是空的,就从 1 开始;如果不空,取第一条(因为我们排过序了)或遍历找最大值
+ let maxSortNo = 0
+ if (allData.value && allData.value.length > 0) {
+ // 既然 allData 已经按 sortNo 排序了,那最后一个就是最大的?
+ // 或者保险起见,用 Math.max 算一下
+ maxSortNo = Math.max(...allData.value.map(item => item.sortNo || 0))
+ }
+
+ // 2. 重置表单,并将排序号设为 最大值 + 1
addForm.value = {
phraseName: '',
phraseContent: '',
- sortNo: 1,
+ sortNo: maxSortNo + 1, // <--- 这样每次打开就是 2, 3, 4...
phraseType: 1,
phraseCategory: ''
}
- // 重置表单验证状态
+
if (addFormRef.value) {
addFormRef.value.clearValidate()
}
- // 打开模态框
addDialogVisible.value = true
}
@@ -434,7 +444,6 @@ const handleDelete = async (row) => {
// 用户取消删除时不提示错误
if (error !== 'cancel') {
console.error('删除失败:', error)
- ElMessage.error('删除操作失败: 网络异常或权限不足')
}
}
}
@@ -455,39 +464,41 @@ const showEditDialog = (row) => {
}
// 编辑表单提交保存方法
+// 修改 index.vue 中的 handleEditSave 方法
const handleEditSave = async () => {
try {
- // 先执行表单验证
+ // 1. 表单校验
const validateResult = await editFormRef.value.validate()
if (!validateResult) return
- // 名称唯一性校验(排除当前编辑的这条记录ID)
+ // 2. 名称唯一性校验
const nameValidation = validatePhraseName(editForm.value.phraseName, editForm.value.id)
if (!nameValidation.valid) {
ElMessage.error(nameValidation.message)
return
}
- // 准备更新数据,修复时间格式为ISO字符串,适配后端LocalDateTime
+ // 3. 准备数据
const updateData = {
...editForm.value,
enableFlag: 1,
- updateTime: new Date().toISOString() // 前端临时赋值,后端最终以自己的为准
+ updateTime: new Date().toISOString()
}
- // 调用更新接口
+ // 4. 调用接口
const response = await updateDoctorPhrase(updateData)
+
+ // 【核心修改】直接判断 code === 200 即可
+ // 因为后端现在失败会返回 R.fail (code!=200),所以只要是 200 就是成功
if (response.code === 200) {
- ElMessage.success('更新成功')
+ ElMessage.success(response.msg || '更新成功') // 优先显示后端返回的消息
editDialogVisible.value = false
- // 重新拉取数据,保证列表数据最新
fetchDoctorPhraseList()
} else {
- ElMessage.error('更新失败: ' + (response.msg || '未知错误'))
+ ElMessage.error(response.msg || '更新失败')
}
} catch (error) {
console.error('更新失败:', error)
- ElMessage.error('更新操作失败: 网络请求错误')
}
}
diff --git a/openhis-ui-vue3/src/views/doctorstation/index.vue b/openhis-ui-vue3/src/views/doctorstation/index.vue
index 352d55e2..50192ffb 100644
--- a/openhis-ui-vue3/src/views/doctorstation/index.vue
+++ b/openhis-ui-vue3/src/views/doctorstation/index.vue
@@ -99,6 +99,10 @@
{{ userStore.nickName }}
+
+ 初诊
+ 复诊
+
完诊
@@ -209,7 +213,6 @@ import useUserStore from '@/store/modules/user';
import { nextTick } from 'vue';
import { updatePatientInfo } from './components/store/patient.js';
import { ElMessage, ElMessageBox } from 'element-plus';
-import { debounce } from 'lodash-es';
// // 监听路由离开事件
// onBeforeRouteLeave((to, from, next) => {
@@ -276,6 +279,7 @@ const loading = ref(false);
const { proxy } = getCurrentInstance();
const visitType = ref('');
const firstVisitDate = ref('');
+const firstEnum = ref(1); // 初复诊标识:1=初诊,2=复诊
const disabled = computed(() => {
// 只有在有患者信息但某些条件不满足时才启用覆盖层
// 当前逻辑保持不变,但我们将在按钮级别处理禁用状态
@@ -488,8 +492,7 @@ function handleOpen() {
patientDrawerRef.value.refreshList();
}
-// 原始的handleCardClick函数
-function handleCardClickOriginal(item, index) {
+function handleCardClick(item, index) {
console.log('handleCardClick 被调用');
console.log('点击的患者项目:', item);
console.log('患者项目中的encounterId:', item.encounterId);
@@ -506,6 +509,15 @@ function handleCardClickOriginal(item, index) {
console.log('patientInfo.value 设置为:', patientInfo.value);
console.log('patientInfo.value.encounterId:', patientInfo.value?.encounterId);
+ // 根据患者信息设置初复诊标识
+ const backendValue = item.firstEnum ?? item.first_enum;
+
+ if (backendValue !== undefined && backendValue !== null) {
+ firstEnum.value = Number(backendValue); // 确保是数字类型
+ } else {
+ firstEnum.value = 1;
+ }
+
// 确保患者信息包含必要的字段
if (!patientInfo.value.encounterId) {
console.error('患者信息缺少encounterId字段:', patientInfo.value);
@@ -546,9 +558,6 @@ function handleCardClickOriginal(item, index) {
});
}
-// 使用防抖的handleCardClick函数,防止短时间内多次点击
-const handleCardClick = debounce(handleCardClickOriginal, 500);
-
function handleLeave(encounterId) {
leaveEncounter(encounterId).then((res) => {
if (res.code == 200) {
@@ -566,11 +575,18 @@ function handleFinish(encounterId) {
patientInfo.value = {};
visitType.value = ''; // 重置初复诊标识
visitTypeDisabled.value = false; // 重置禁用状态
+ firstEnum.value = 1; // 重置为初诊
getPatientList();
}
});
}
+// 监听初复诊标识变化
+watch(firstEnum, (newValue) => {
+ // 这里可以添加更新后端的逻辑,如果需要实时同步到后端
+ // 例如:updateEncounterFirstEnum(patientInfo.value.encounterId, newValue)
+});
+
function handleTimeChange(value) {
queryParams.value.registerTimeSTime = value + ' 00:00:00';
queryParams.value.registerTimeETime = value + ' 23:59:59';
@@ -594,7 +610,7 @@ function handleHospitalizationClick() {
// 接诊回调
function handleReceive(row) {
- handleCardClickOriginal(row);
+ handleCardClick(row);
currentEncounterId.value = row.encounterId;
drawer.value = false;
getPatientList();
@@ -781,7 +797,7 @@ const markSeen = async () => {
currentCallPatient.value = {};
};
const callThis = (row) => {
- handleCardClickOriginal(row);
+ handleCardClick(row);
currentCallPatient.value = row;
dialogVisible.value = false;
// 刷新患者列表和候诊列表
diff --git a/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue b/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue
index 9c7818fc..75529d46 100644
--- a/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue
+++ b/openhis-ui-vue3/src/views/hospitalRecord/components/admissionRecord.vue
@@ -699,7 +699,12 @@ const getDom = () => {
};
const setData = (data) => {
console.log('设置数据=========>', JSON.stringify(data));
- Object.assign(formData, data);
+ // 仅更新传入的数据,保留未传入字段的原有值
+ Object.keys(data).forEach(key => {
+ if (formData.hasOwnProperty(key)) {
+ formData[key] = data[key];
+ }
+ });
};
defineExpose({
setData,
diff --git a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/registerForm.vue b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/registerForm.vue
index 635b418a..6a8c8514 100644
--- a/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/registerForm.vue
+++ b/openhis-ui-vue3/src/views/inHospitalManagement/charge/register/components/registerForm.vue
@@ -424,8 +424,8 @@ function handleWardClick(item) {
function getInitOptions() {
getOrgList().then((res) => {
- // organization.value = res.data.records
- organization.value = res.data.records[0].children.filter(
+ // 直接从records中过滤,而不是从records[0].children
+ organization.value = res.data.records.filter(
(record) => record.typeEnum === 2 && checkClassEnumValue(record.classEnum, 2)
);
});
diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue
index 576f9216..2b568c0b 100644
--- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue
+++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/adviceBaseList.vue
@@ -106,7 +106,7 @@ watch(
getList();
function getList() {
loading.value = true;
- queryParams.value.organizationId = props.patientInfo.inHospitalOrgId;
+ queryParams.value.organizationId = props.patientInfo?.inHospitalOrgId || '';
getAdviceBaseInfo(queryParams.value)
.then((res) => {
console.log(res.data.records);
diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue
index e888fff1..48fd7566 100644
--- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue
+++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue
@@ -203,7 +203,8 @@ const form = ref({
const props = defineProps({
patientInfo: {
type: Object,
- required: true,
+ required: false,
+ default: () => ({}),
},
});
const emits = defineEmits(['diagnosisSave']);
diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/applicationFormBottomBtn.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/applicationFormBottomBtn.vue
index 38efb596..7b779ec9 100644
--- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/applicationFormBottomBtn.vue
+++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/applicationFormBottomBtn.vue
@@ -10,25 +10,25 @@
检验
检查
输血
手术
@@ -58,14 +58,19 @@