diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml index 6bb062fed..feb953bb3 100644 --- a/.idea/dataSources.local.xml +++ b/.idea/dataSources.local.xml @@ -1,6 +1,6 @@ - + " diff --git a/healthlink-his-server/core-system/src/main/java/com/core/system/service/impl/SysMenuServiceImpl.java b/healthlink-his-server/core-system/src/main/java/com/core/system/service/impl/SysMenuServiceImpl.java index 9bd3fb7f2..0ab622bf8 100755 --- a/healthlink-his-server/core-system/src/main/java/com/core/system/service/impl/SysMenuServiceImpl.java +++ b/healthlink-his-server/core-system/src/main/java/com/core/system/service/impl/SysMenuServiceImpl.java @@ -176,7 +176,7 @@ public class SysMenuServiceImpl implements ISysMenuService { children.setQuery(menu.getQuery()); childrenList.add(children); router.setChildren(childrenList); - } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { + } else if ((menu.getParentId() == null || menu.getParentId() == 0) && isInnerLink(menu)) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), false, null, menu.getVisible())); router.setPath("/"); List childrenList = new ArrayList(); @@ -524,11 +524,11 @@ public class SysMenuServiceImpl implements ISysMenuService { public String getRouterPath(SysMenu menu) { String routerPath = menu.getPath(); // 内链打开外网方式 - if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) { + if (menu.getParentId() != null && menu.getParentId() != 0 && isInnerLink(menu)) { routerPath = innerLinkReplaceEach(routerPath); } // 非外链并且是一级目录(类型为目录) - if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) + if ((menu.getParentId() == null || menu.getParentId() == 0) && UserConstants.TYPE_DIR.equals(menu.getMenuType()) && UserConstants.NO_FRAME.equals(menu.getIsFrame())) { routerPath = "/" + menu.getPath(); } @@ -549,7 +549,8 @@ public class SysMenuServiceImpl implements ISysMenuService { String component = UserConstants.LAYOUT; if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) { component = menu.getComponent(); - } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 + } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId() != null + && menu.getParentId() != 0 && isInnerLink(menu)) { component = UserConstants.INNER_LINK; } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) { @@ -565,7 +566,7 @@ public class SysMenuServiceImpl implements ISysMenuService { * @return 结果 */ public boolean isMenuFrame(SysMenu menu) { - return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) + return (menu.getParentId() == null || menu.getParentId() == 0) && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME); } @@ -586,7 +587,7 @@ public class SysMenuServiceImpl implements ISysMenuService { * @return 结果 */ public boolean isParentView(SysMenu menu) { - return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); + return menu.getParentId() != null && menu.getParentId() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); } /** @@ -634,7 +635,7 @@ public class SysMenuServiceImpl implements ISysMenuService { Iterator it = list.iterator(); while (it.hasNext()) { SysMenu n = (SysMenu)it.next(); - if (n.getParentId().longValue() == t.getMenuId().longValue()) { + if (n.getParentId() != null && n.getParentId().longValue() == t.getMenuId().longValue()) { tlist.add(n); } } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/AdviceBaseDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/AdviceBaseDto.java index 8e553904a..c31568565 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/AdviceBaseDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/AdviceBaseDto.java @@ -236,7 +236,7 @@ public class AdviceBaseDto { /** * 用药说明 */ - @Dict(dictCode = "dosage_instruction") + @Dict(dictCode = "separate_decocting") private String dosageInstruction; private String dosageInstruction_dictText; /* diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/RequestBaseDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/RequestBaseDto.java index b5dcc2e43..a935e1991 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/RequestBaseDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/RequestBaseDto.java @@ -233,7 +233,7 @@ public class RequestBaseDto { /** * 用药说明 */ - @Dict(dictCode = "dosage_instruction") + @Dict(dictCode = "separate_decocting") private String dosageInstruction; private String dosageInstruction_dictText; @@ -266,4 +266,22 @@ public class RequestBaseDto { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") private Date stopTime; + /** + * 诊断ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long conditionId; + + /** + * 诊断定义ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long conditionDefinitionId; + + /** + * 就诊诊断ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long encounterDiagnosisId; + } diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java index 1a9677f64..9cea1f143 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java @@ -196,6 +196,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { List activityList = regAdviceSaveList.stream() .filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType()) || ItemType.SURGERY.getValue().equals(e.getAdviceType()) + || ItemType.TEXT.getValue().equals(e.getAdviceType()) || (e.getAdviceType() != null && e.getAdviceType() == 26)) .collect(Collectors.toList()); // 耗材 🔧 Bug #147 修复 @@ -687,7 +688,12 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService { longServiceRequest.setRateCode(regAdviceSaveDto.getRateCode()); // 用药频次 longServiceRequest.setCategoryEnum(regAdviceSaveDto.getCategoryEnum()); // 请求类型 longServiceRequest.setTherapyEnum(regAdviceSaveDto.getTherapyEnum()); // 治疗类型,长期(需要前端传) - longServiceRequest.setActivityId(regAdviceSaveDto.getAdviceDefinitionId());// 诊疗定义id + // 文字医嘱(type=8)不走定价体系,activityId设置为0L占位 + if (ItemType.TEXT.getValue().equals(regAdviceSaveDto.getAdviceType())) { + longServiceRequest.setActivityId(0L); + } else { + longServiceRequest.setActivityId(regAdviceSaveDto.getAdviceDefinitionId());// 诊疗定义id + } longServiceRequest.setPatientId(regAdviceSaveDto.getPatientId()); // 患者 longServiceRequest.setRequesterId(regAdviceSaveDto.getPractitionerId()); // 开方医生 longServiceRequest.setEncounterId(regAdviceSaveDto.getEncounterId()); // 就诊id diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/doctorstation/DoctorStationChineseMedicalAppMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/doctorstation/DoctorStationChineseMedicalAppMapper.xml index 56a20a217..ab13d3f68 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/doctorstation/DoctorStationChineseMedicalAppMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/doctorstation/DoctorStationChineseMedicalAppMapper.xml @@ -63,6 +63,9 @@ T1.dosage_instruction AS dosage_instruction, T2.part_percent AS part_percent, ccd.name AS condition_definition_name, + T1.condition_id AS condition_id, + cc.definition_id AS condition_definition_id, + T1.encounter_diagnosis_id AS encounter_diagnosis_id, T4.account_id AS account_id FROM med_medication_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id diff --git a/healthlink-his-ui/src/views/catalog/medicine/components/medicineDialog.vue b/healthlink-his-ui/src/views/catalog/medicine/components/medicineDialog.vue index 600c808f8..be153885a 100755 --- a/healthlink-his-ui/src/views/catalog/medicine/components/medicineDialog.vue +++ b/healthlink-his-ui/src/views/catalog/medicine/components/medicineDialog.vue @@ -348,7 +348,7 @@ filterable > + @@ -2223,7 +2201,6 @@ function getListInfo(addNewRow) { // 关键:先等待处方列表数据获取完成 isAdding.value = false; const res = await getPrescriptionList(props.patientInfo.encounterId); - // 🔧 BugFix: 过滤掉已作废(statusEnum=5)的会诊医嘱 const filteredData = res.data.filter(item => { // 防止 contentJson 为空或 undefined 导致 JSON.parse 报错 @@ -2332,13 +2309,6 @@ function getDiagnosisInfo() { encounterDiagnosisId.value = diagnosisInfo[0].encounterDiagnosisId; diagnosisName.value = diagnosisInfo[0].name; console.log('getDiagnosisInfo - 已设置主诊断:', diagnosisInfo[0]); - } else if (diagnosisList.value.length > 0) { - // 如果没有主诊断,使用第一个诊断 - conditionDefinitionId.value = diagnosisList.value[0].definitionId; - conditionId.value = diagnosisList.value[0].conditionId; - encounterDiagnosisId.value = diagnosisList.value[0].encounterDiagnosisId; - diagnosisName.value = diagnosisList.value[0].name; - console.log('getDiagnosisInfo - 已设置第一个诊断:', diagnosisList.value[0]); } return res; }).catch((error) => { @@ -2466,7 +2436,9 @@ function clickRowDb(row, column, event) { } } -function handleDiagnosisChange(item) { +function handleDiagnosisChange(val) { + const item = diagnosisList.value.find(d => d.definitionId === val); + if (!item) return; diagnosisName.value = item.name; conditionId.value = item.conditionId; encounterDiagnosisId.value = item.encounterDiagnosisId; @@ -2671,15 +2643,15 @@ function selectAdviceBase(key, row) { const lastExpandedRow = expandedRows[expandedRows.length - 1]; // 查找doseQuantity输入框(优先) - let targetInput = lastExpandedRow.querySelector('[data-prop="doseQuantity"] .el-input-number__inner'); - + let targetInput = lastExpandedRow.querySelector('[data-prop="doseQuantity"] .el-input__inner'); + // 如果没找到,尝试其他方式 if (!targetInput && row.adviceType == 1) { - // 西药的情况:找第一个el-input-number - targetInput = lastExpandedRow.querySelector('.el-input-number__inner'); + // 西药的情况:找第一个el-input + targetInput = lastExpandedRow.querySelector('.el-input__inner'); } else if (!targetInput) { // 诊疗/耗材的情况:找quantity输入框 - targetInput = lastExpandedRow.querySelector('[data-prop="quantity"] .el-input-number__inner'); + targetInput = lastExpandedRow.querySelector('[data-prop="quantity"] .el-input__inner'); } // 最后的备用方案 diff --git a/healthlink-his-ui/src/views/doctorstation/components/tcm/tcmAdvice.vue b/healthlink-his-ui/src/views/doctorstation/components/tcm/tcmAdvice.vue index a381ab6d8..ed4c8c2fa 100755 --- a/healthlink-his-ui/src/views/doctorstation/components/tcm/tcmAdvice.vue +++ b/healthlink-his-ui/src/views/doctorstation/components/tcm/tcmAdvice.vue @@ -93,13 +93,13 @@ v-model="prescription.conditionDefinitionId" placeholder="诊断" style="width: 180px" + @change="(val) => handleDiagnosisChange(val, pIndex)" > 费用性质: @@ -288,7 +288,7 @@ placeholder=" " >