From 1e459b888350f6b9e555ff8e30bedaff6a08aa00 Mon Sep 17 00:00:00 2001 From: huhuihua Date: Thu, 22 Jan 2026 15:51:37 +0800 Subject: [PATCH 1/4] =?UTF-8?q?46=20=E9=97=A8=E8=AF=8A=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E7=AB=99-=E3=80=8B=E5=BC=80=E7=AB=8B=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=EF=BC=9A=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DoctorStationDiagnosisAppServiceImpl.java | 10 +- .../dto/SaveDiagnosisChildParam.java | 19 +++ .../domain/EncounterDiagnosis.java | 16 ++ .../components/diagnosis/diagnosis.vue | 161 ++++++++++++++---- .../components/diagnosis/diagnosislist.vue | 2 +- 5 files changed, 170 insertions(+), 38 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index 97b5b099..cffe3776 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -283,7 +283,7 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn // 保存就诊诊断 - EncounterDiagnosis encounterDiagnosis; + EncounterDiagnosis encounterDiagnosis = null; for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) { if (saveDiagnosisChildParam.getUpdateId() != null) { String updateId = saveDiagnosisChildParam.getUpdateId(); @@ -306,6 +306,9 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setDiagnosisDesc(saveDiagnosisChildParam.getDiagnosisDesc()); // 诊断描述 encounterDiagnosis.setIptDiseTypeCode(saveDiagnosisChildParam.getIptDiseTypeCode()); // 患者疾病诊断类型代码 encounterDiagnosis.setTcmFlag(Whether.YES.getValue());// 中医标识 + encounterDiagnosis.setDoctor(saveDiagnosisChildParam.getDiagnosisDoctor()); + encounterDiagnosis.setClassification(saveDiagnosisChildParam.getClassification()); + encounterDiagnosis.setName(saveDiagnosisChildParam.getName()); iEncounterDiagnosisService.saveOrUpdate(encounterDiagnosis); i++; } @@ -319,11 +322,14 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setMedTypeCode(saveDiagnosisChildParam.getMedTypeCode());// 医疗类型 encounterDiagnosis.setDiagnosisDesc(saveDiagnosisChildParam.getDiagnosisDesc()); // 诊断描述 encounterDiagnosis.setIptDiseTypeCode(saveDiagnosisChildParam.getIptDiseTypeCode()); // 患者疾病诊断类型代码 + encounterDiagnosis.setDoctor(saveDiagnosisChildParam.getDiagnosisDoctor()); + encounterDiagnosis.setClassification(saveDiagnosisChildParam.getClassification()); + encounterDiagnosis.setName(saveDiagnosisChildParam.getName()); iEncounterDiagnosisService.saveOrUpdate(encounterDiagnosis); } } - return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"})); + return R.ok(encounterDiagnosis, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊断"})); } /** diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java index b724210c..b85da82f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Date; + /** * 保存诊断 子参数类 * @@ -33,6 +35,9 @@ public class SaveDiagnosisChildParam { @JsonSerialize(using = ToStringSerializer.class) private Long definitionId; + private String classification; + + private String name; /** * 医保编码 */ @@ -64,6 +69,18 @@ public class SaveDiagnosisChildParam { */ private String diagnosisDesc; + private String diagnosisDoctor; + + /** + * 诊断时间 + */ + private Date diagnosisTime; + + /** + * 发病时间 + */ + private Date onsetDate; + /** 患者疾病诊断类型代码 */ private Integer iptDiseTypeCode; @@ -77,4 +94,6 @@ public class SaveDiagnosisChildParam { */ private String updateConditionId; + private String longTermFlag; + } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java index 9d30b90c..c2b3e661 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java @@ -66,4 +66,20 @@ public class EncounterDiagnosis extends HisBaseEntity { */ private String diagnosisDesc; + /** + * 医生 + */ + private String doctor; + + /** + *病名 + */ + private String name; + + /** + *分类 + */ + private String classification; + + } \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue index d6fdf735..0c4707a0 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosis.vue @@ -75,15 +75,27 @@ - + - + - + - - - + + + + + + + + + + + + + + + + + + @@ -220,6 +284,9 @@ const emits = defineEmits(['diagnosisSave']); const { proxy } = getCurrentInstance(); const userStore = useUserStore(); const { diag_type } = proxy.useDict('diag_type'); +const { diagnosis_classification } = proxy.useDict('diagnosis_classification'); +const { long_term_flag } = proxy.useDict('long_term_flag'); + const rules = ref({ name: [{ required: true, message: '请选择诊断', trigger: 'change' }], medTypeCode: [{ required: true, message: '请选择诊断类型', trigger: 'change' }], @@ -255,6 +322,12 @@ function getList() { if (res.code == 200) { // 过滤掉中医诊断,只保留西医诊断 form.value.diagnosisList = res.data.filter(item => item.typeName !== '中医诊断'); + // 为旧数据添加默认分类 + form.value.diagnosisList.forEach(item => { + if (!item.classification) { + item.classification = '西医'; + } + }); emits('diagnosisSave', false); } maxNo = form.value.diagnosisList.length; @@ -274,6 +347,8 @@ function getList() { medTypeCode: item.medTypeCode, syndromeGroupNo: item.syndromeGroupNo, typeName: '中医诊断', + classification: '中医', // 中医诊断默认分类 + onsetDate: item.onsetDate, updateId:item.encounterDiagnosisId+'-'+res.data.symptom[index].encounterDiagnosisId, illnessDefinitionId : item.definitionId, symptomDefinitionId : res.data.symptom[index].definitionId, @@ -323,8 +398,10 @@ function handleImport() { diagSrtNo: maxSortNo + index + 1, iptDiseTypeCode: 2, diagnosisDesc: '', + classification: '西医', // 导入的慢性病默认为西医 + onsetDate: getCurrentDate(), diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, - diagnosisTime: new Date().toLocaleString('zh-CN') + diagnosisTime: getCurrentDate() }, }); }); @@ -425,8 +502,10 @@ function handleAddDiagnosis() { diagSrtNo: maxSortNo + 1, iptDiseTypeCode: 2, diagnosisDesc: '', + classification: '西医', // 默认为西医 + onsetDate: getCurrentDate(), diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, - diagnosisTime: new Date().toLocaleString('zh-CN') + diagnosisTime: getCurrentDate() }); // 添加后按排序号排序 @@ -613,8 +692,10 @@ function handleNodeClick(data) { medTypeCode: '11', diagSrtNo: maxSortNo + 1, definitionId: data.definitionId, + classification: '西医', // 默认为西医 + onsetDate: getCurrentDate(), diagnosisDoctor: props.patientInfo.practitionerName || props.patientInfo.doctorName || props.patientInfo.physicianName || userStore.name, - diagnosisTime: new Date().toLocaleString('zh-CN') + diagnosisTime: getCurrentDate() }); // 添加后按排序号排序 @@ -625,6 +706,16 @@ function handleNodeClick(data) { } } +function getCurrentDate() { + const date = new Date(); + const year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + month = month < 10 ? "0" + month : month; + day = day < 10 ? "0" + day : day; + return `${year}-${month}-${day}`; +} + defineExpose({ getList, getDetail, handleSaveDiagnosis }); diff --git a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue index 0e9ff966..2644e2ad 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/diagnosis/diagnosislist.vue @@ -8,7 +8,7 @@ max-height="400" > - + From 66c70a2b4a0a681804d61a64cb39e4355f2cce27 Mon Sep 17 00:00:00 2001 From: HuangShun <148689675+huabuweixin@users.noreply.github.com> Date: Fri, 23 Jan 2026 13:28:17 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D103=20=E9=97=A8=E8=AF=8A?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E7=AB=99-=E3=80=8B=E8=8D=AF=E5=93=81?= =?UTF-8?q?=E5=8C=BB=E5=98=B1=E5=BC=80=E7=AB=8B=E5=86=85=E5=AE=B9=E9=87=8D?= =?UTF-8?q?=E5=A4=8D/=E3=80=90=E7=A1=AE=E8=AE=A4=E3=80=91=E6=97=A0?= =?UTF-8?q?=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prescription/prescriptionlist.vue | 300 +++--------------- 1 file changed, 41 insertions(+), 259 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue index 129764da..58772e5a 100644 --- a/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/prescription/prescriptionlist.vue @@ -356,265 +356,39 @@ - - - - - = - - - - - - - - - -
- - - - - - - - - - - - - -
- -
+
+
+
+ -
- - - - - - - - - - - - -
- - 确定 - -
+ + +
+ + 确定 + + @@ -1152,6 +926,12 @@ const adviceTypeList = ref([ }, ]); +// 根据类型值获取显示标签,避免非编辑态出现空标签 +const mapAdviceTypeLabel = (type) => { + const found = adviceTypeList.value.find((item) => item.value === type); + return found ? found.label : ''; +}; + // 西药处方管理相关变量 const westernPrescriptions = ref([]); // 西药处方列表 const currentPrescriptionId = ref(null); // 当前活跃的处方ID @@ -2321,6 +2101,8 @@ function handleSaveSign(row, index, prescriptionId) { row.patientId = props.patientInfo.patientId; row.encounterId = props.patientInfo.encounterId; row.accountId = accountId.value; + // 确保非编辑态显示正确的医嘱类型标签 + row.adviceType_dictText = mapAdviceTypeLabel(row.adviceType); if (row.adviceType == 1 || row.adviceType == 2) { row.minUnitQuantity = row.minUnitCode == row.unitCode ? row.quantity : row.quantity * row.partPercent; From 61be9ff55221447d0424e3ead5e59c3c6dd9bce9 Mon Sep 17 00:00:00 2001 From: huhuihua Date: Fri, 23 Jan 2026 13:58:33 +0800 Subject: [PATCH 3/4] =?UTF-8?q?46=20=E9=97=A8=E8=AF=8A=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E7=AB=99-=E3=80=8B=E5=BC=80=E7=AB=8B=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=EF=BC=9A=E4=BC=98=E5=8C=96=20=E4=BF=AE=E6=94=B9=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E4=B8=AD=E4=B8=80=E4=BA=9B=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DoctorStationDiagnosisAppServiceImpl.java | 34 ++++++++++++++++++- .../dto/SaveDiagnosisChildParam.java | 2 +- .../domain/EncounterDiagnosis.java | 5 +++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index cffe3776..85bc48d9 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -260,7 +260,8 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn .eq(EncounterDiagnosis::getEncounterId, encounterId) .set(EncounterDiagnosis::getMaindiseFlag, 0)); } - + Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + String username = SecurityUtils.getUsername(); // 保存诊断管理 Condition condition; for (SaveDiagnosisChildParam saveDiagnosisChildParam : diagnosisChildList) { @@ -277,6 +278,17 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn condition.setYbNo(saveDiagnosisChildParam.getYbNo()); condition.setRecordedDatetime(new Date()); condition.setRecorderId(SecurityUtils.getLoginUser().getPractitionerId());// 记录人 + + if(condition.getCreateBy() == null){ + condition.setCreateBy(username); + } + condition.setUpdateBy(username); + + condition.setTenantId(tenantId); + if(condition.getCreateTime() == null){ + condition.setCreateTime(new Date()); + } + condition.setUpdateTime(new Date()); iConditionService.saveOrUpdate(condition); saveDiagnosisChildParam.setConditionId(condition.getId()); } @@ -309,6 +321,16 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setDoctor(saveDiagnosisChildParam.getDiagnosisDoctor()); encounterDiagnosis.setClassification(saveDiagnosisChildParam.getClassification()); encounterDiagnosis.setName(saveDiagnosisChildParam.getName()); + encounterDiagnosis.setTenantId(tenantId); + encounterDiagnosis.setLongTermFlag(saveDiagnosisChildParam.getLongTermFlag()); + if(encounterDiagnosis.getCreateBy() == null){ + encounterDiagnosis.setCreateBy(username); + } + encounterDiagnosis.setUpdateBy(username); + if(encounterDiagnosis.getCreateTime() == null){ + encounterDiagnosis.setCreateTime(new Date()); + } + encounterDiagnosis.setUpdateTime(new Date()); iEncounterDiagnosisService.saveOrUpdate(encounterDiagnosis); i++; } @@ -325,6 +347,16 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setDoctor(saveDiagnosisChildParam.getDiagnosisDoctor()); encounterDiagnosis.setClassification(saveDiagnosisChildParam.getClassification()); encounterDiagnosis.setName(saveDiagnosisChildParam.getName()); + encounterDiagnosis.setTenantId(tenantId); + encounterDiagnosis.setLongTermFlag(saveDiagnosisChildParam.getLongTermFlag()); + if(encounterDiagnosis.getCreateBy() == null){ + encounterDiagnosis.setCreateBy(username); + } + encounterDiagnosis.setUpdateBy(username); + if(encounterDiagnosis.getCreateTime() == null){ + encounterDiagnosis.setCreateTime(new Date()); + } + encounterDiagnosis.setUpdateTime(new Date()); iEncounterDiagnosisService.saveOrUpdate(encounterDiagnosis); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java index b85da82f..ce932917 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/SaveDiagnosisChildParam.java @@ -94,6 +94,6 @@ public class SaveDiagnosisChildParam { */ private String updateConditionId; - private String longTermFlag; + private Integer longTermFlag; } diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java index c2b3e661..188bd2fa 100644 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/administration/domain/EncounterDiagnosis.java @@ -81,5 +81,10 @@ public class EncounterDiagnosis extends HisBaseEntity { */ private String classification; + /** + * 长诊断标识 + */ + private Integer longTermFlag; + } \ No newline at end of file From 9000d66c0c69f2b65e773a0dac995afa3dc22bea Mon Sep 17 00:00:00 2001 From: HuangShun <148689675+huabuweixin@users.noreply.github.com> Date: Fri, 23 Jan 2026 14:06:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D107=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E3=80=8B=E5=9F=BA=E7=A1=80=E6=95=B0?= =?UTF-8?q?=E6=8D=AE-=E3=80=8B=E7=A7=91=E5=AE=A4=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9A=E7=A7=91=E5=AE=A4=E5=88=86=E7=B1=BB=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E6=97=A0=E6=95=88=E4=B8=AD=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E6=B8=85=E7=A9=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/basicmanage/organization/index.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/openhis-ui-vue3/src/views/basicmanage/organization/index.vue b/openhis-ui-vue3/src/views/basicmanage/organization/index.vue index 420ef23c..c100882d 100644 --- a/openhis-ui-vue3/src/views/basicmanage/organization/index.vue +++ b/openhis-ui-vue3/src/views/basicmanage/organization/index.vue @@ -386,12 +386,6 @@ function parseClassEnumValues(value) { /** 搜索按钮操作 */ function handleQuery() { queryParams.value.pageNo = 1; - if (Array.isArray(queryParams.value.classEnum)) { - queryParams.value.classEnum = - queryParams.value.classEnum.length > 0 - ? queryParams.value.classEnum.join(',') - : undefined; - } getPageList(); } @@ -406,7 +400,15 @@ function resetQuery() { function getPageList() { loading.value = true; - getList(queryParams.value).then((res) => { + // 创建API调用的查询参数副本,处理classEnum的转换 + const apiParams = { ...queryParams.value }; + if (Array.isArray(apiParams.classEnum)) { + apiParams.classEnum = + apiParams.classEnum.length > 0 + ? apiParams.classEnum.join(',') + : undefined; + } + getList(apiParams).then((res) => { // 处理返回的科室数据,确保科室分类显示与系统标准字典一致 const processedData = res.data.records.map(item => { // 保留原有显示文本作为基础