华佗 ad1ad1ae3a fix(#672): 请修复 Bug #672:[门诊医生站-诊断] 新增中医诊断保存后,列表中“发病日期”、“诊断日期”和“医生”字段显示为空
根因:
- Bug #请修复 Bug #672 存在的问题

修复:
- · 现在
- · 672:
- · [门诊医生站
- · -诊断] 新
- · 增中医诊断保存
- · 后,列表中
- · "发病日期"
- · 、"诊断日期
- · "和"医生
- · "字段显示为空
- · 。
- 首先,我
- · 需要读
- ·  AG
- · ENTS.md 了解
- · 项目规范,
- · 但根据提供的
- · 上下
- · 文,已经
- · 包含了项目规范摘要
- · 。不过
- · 为了
- · 更
- · 全面,我还是
- · 先查看
- · 一下
- · 实际
- · 的 AGENTS.md
- ·  文件。
- 然后进行
- · 全链路分析
- · 。
- · 根据关键词
- · ,这个
- ·  Bug
- · 属于门诊
- · 医生站/
- · 诊断模块,对应的
- · 后端模块应该是
- ·  `doctorstation`
- · 。我需要搜索
- · 相关代码。
- · 列出
- · 当前
- · 工作目录,确认
- · 位置
- · 。
- ⏵ run_shell {"command":"pwd"}
- Exit code: 0
- /tmp/agentforge-worktrees/guanyu
- · 我
- · 需要切换
- · 到项目
- · 根目录。先
- · 看看当前
- · 目录结构。
- ⏵ list_files {"path":"."}
- .aider.conf.yml	19398 bytes
- .clinerules	19268 bytes
- .cursorrules	19274 bytes
- .git	65 bytes
- .gitattributes	829 bytes
- .github/	4096 bytes
- .gitignore	17206 bytes
- .harness/	4096 bytes
- .qwen/	4096 bytes
- .qwenrules	18559 bytes
- .windsurfrules	19274 bytes
- AGENTS.md	19356 bytes
- MD/	4096 bytes
- RULES.md	19046 bytes
- deploy/	4096 bytes
- healthlink-his-server/	4096 bytes
- healthlink-his-ui/	4096 bytes
- md/	4096 bytes
- package.json	172 bytes
- pom.xml	649 bytes
- scripts/	4096 bytes
- src/	4096 bytes
- · 好的,项目根
- · 目录在这里
- · 。根据
- ·  Bug
- · 描述,是
- · 中医
- · 诊断保存
- · 后列表
- · 中"发病日期
- · "、"诊断
- · 日期"和"
- · 医生"字段显示
- · 为空。我
- · 需要先找到
- · 中医
- · 诊断相关的代码。
- · 根据模块索
- · 引,中医
- · 中医处方对应
- · 后
- · 端模块
- ·  `tcm`
- · 。但 Bug
- · 标题提到
- · "门诊医生站
- · -诊断",
- · 可能涉及
- · 诊断
- · 模块。让我先
- · 搜索一下
- · 。
- · 我
- · 需要同时
- · 搜索前端
- · 和后端代码
- · 。先搜索关键词
- · "中医诊断"
- · 、
- · "发病日期"
- · 、"诊断日期
- · "、"医生
- · "。
- · 先
- · 搜索
- · 后端代码。
- ⏵ run_shell {"command":"cd /tmp/agentforge-worktrees/guanyu && rg -l \"中医\" healthlink-his-server/ --type java | head -20"}
- ⚠️ MODERATE risk command
- Exit code: 0
- healthlink-his-server/healthlink-his-application/src/test/java/com/healthlink/his/doctor/DoctorWorkstationTest.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/constant/CommonConstants.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/catalogmanage/appservice/impl/CatalogServiceImpl.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/EncounterYbClass.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/ConditionDefinitionSource.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/OutpatientClass.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/OrderGroupType.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/CatalogType.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/dto/ChargeItemBaseInfoDto.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/medication/domain/MedicationRequest.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/dto/EncounterDiagnosisDto.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/EncounterDiagnosis.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/ChargeItem.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/ybenums/YbIptDiseTypeCode.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/ybenums/YbDiagType.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepVeriDiagnosisInfo.java
- healthlink-his-server/healthlink-his-common/src/main/java/com/healthlink/his/common/enums/ybenums/YbMedType.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/ybmanage/service/impl/YbServiceImpl.java
- healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/ybelep/domain/ElepQuerDiagnosisInfo.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/personalization/dto/OrdersGroupPackageSaveDto.java
- · 搜索
- · 结果显示
- · 有很多
- · 相关文件。让我
- · 更
- · 精确
- · 地搜索诊断
- · 相关的实体
- · 和服务
- · 。Bug
- ·  是
- · 关于"中医诊断
- · "的,可能
- · 涉及 `
- · EncounterDiagnosis
- · ` 实体。
- · 让我先
- · 查看这个实体。
- ⏵ read_file {"path":"healthlink-his-server/healthlink-his-domain/src/main/java/com/healthlink/his/administration/domain/EncounterDiagnosis.java"}
- package com.healthlink.his.administration.domain;
- import com.baomidou.mybatisplus.annotation.IdType;
- import com.baomidou.mybatisplus.annotation.TableId;
- import com.baomidou.mybatisplus.annotation.TableName;
- import com.core.common.core.domain.HisBaseEntity;
- import lombok.Data;
- import lombok.EqualsAndHashCode;
- import lombok.experimental.Accessors;
- import java.util.Date;
- 就诊诊断管理Entity实体
- @author system
- @date 2025-02-20
- @TableName("adm_encounter_diagnosis")
- @Accessors(chain = true)
- @EqualsAndHashCode(callSuper = false)
- public class EncounterDiagnosis extends HisBaseEntity {
- /** ID */
- @TableId(type = IdType.ASSIGN_ID)
- private Long id;
- /** 就诊id */
- private Long encounterId;
- /** 诊断_id */
- private Long conditionId;
- /** 住院患者疾病诊 */
- private Integer iptDiseCrsp;
- /** 住院患者疾病诊断类型代码 */
- private Integer iptDiseTypeCode;
- /** 入院疾病病情代码 */
- private Integer admDiseCondCode;
- /** 医疗类型 */
- private String medTypeCode;// 2025/05/23 该字段改为med_type 与医保同步
- /** 主诊断标记 */
- private Integer maindiseFlag;
- /** 最高诊断依据标记 */
- private Integer highDiseEvidFlag;
- /** 诊断排序(医保文档要求数值型字符长度为2) */
- private Integer diagSrtNo;
- 中医证候组号
- private String syndromeGroupNo;
- 中医标识
- private Integer tcmFlag;
- 诊断描述
- private String diagnosisDesc;
- 医生
- private String doctor;
- 病名
- private String name;
- 分类
- private String classification;
- 长诊断标识
- private Integer longTermFlag;
- 发病日期
- private Date onsetDate;
- 诊断日期
- private Date diagnosisTime;
- · 好的,我看到了
- · EncounterDiagnosis
- · ` 实体类
- · 。
- · 它包含
- ·  `onsetDate
- · `(发病日期
- · )、`diagnosis
- · Time`(诊断
- · 日期)和 `
- · doctor`(医生
- · )字段。这些
- · 字段应该在
- · 数据库中有
- · 对应的
- · 列。
- 现在我
- · 需要找到
- · 门诊
- · 医生站
- · 中处理
- · 中医
- · 诊断保存
- · 的 Service
- ·  和 Controller。根据
- · 模块索引,
- · 门诊医生站对应
- ·  `doctorstation`
- ·  模块。
- · 让我搜索一下
- · 相关的
- ·  Controller 和 Service。
- ⏵ run_shell {"command":"cd /tmp/agentforge-worktrees/guanyu && find healthlink-his-server/ -name \"*Doctor*Controller.java\" -type f | head -10"}
- ⚠️ MODERATE risk command
- Exit code: 0
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationDiagnosisController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationInspectionLabApplyController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationChineseMedicalController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationAdviceController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorPhraseController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationEmrController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationElepPrescriptionController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationPtDetailsController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationMainController.java
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/appointmentmanage/controller/DoctorScheduleController.java
- · 我看到了
- ·  `DoctorStationDi
- · agnosisController.java`
- ·  和 `DoctorStation
- · ChineseMedicalController.java
- · `。中医诊断
- · 可能涉及
- · 这两个
- ·  Controller
- · 。让我先看看
- · 诊断
- · 相关的 Controller。
- ⏵ read_file {"path":"healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/controller/DoctorStationDiagnosisController.java"}
- Copyright ©2023 CJB-CNIT Team. All rights reserved
- package com.healthlink.his.web.doctorstation.controller;
- import com.core.common.core.domain.R;
- import com.healthlink.his.common.enums.BindingType;
- import com.healthlink.his.common.enums.ConditionVerificationStatus;
- import com.healthlink.his.web.doctorstation.appservice.IDoctorStationDiagnosisAppService;
- import com.healthlink.his.web.doctorstation.dto.DiagnosisBelongBindingDto;
- import com.healthlink.his.web.doctorstation.dto.DiagnosisBelongBindingInitDto;
- import com.healthlink.his.web.doctorstation.dto.InfectiousDiseaseReportDto;
- import com.healthlink.his.web.doctorstation.dto.SaveDiagnosisParam;
- import lombok.AllArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import jakarta.servlet.http.HttpServletRequest;
- import java.util.List;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- 医生站-诊断 controller
- @RestController
- @RequestMapping("/doctor-station/diagnosis")
- @Slf4j
- @AllArgsConstructor
- public class DoctorStationDiagnosisController {
- private final IDoctorStationDiagnosisAppService iDoctorStationDiagnosisAppService;
- 诊断相关数据初始化
- @return
- @GetMapping(value = "/init")
- public R<?> init() {
- DiagnosisBelongBindingInitDto diagnosisBelongBindingInitDto = new DiagnosisBelongBindingInitDto();
- // 诊断绑定类型 - 用于维护诊断归属绑定关系
- List<DiagnosisBelongBindingInitDto.DiagnosisBelongBindingOption> diagnosisBelongBindingOptions =
- Stream.of(BindingType.values())
- .map(status -> new DiagnosisBelongBindingInitDto.DiagnosisBelongBindingOption(status.getValue(),
- status.getInfo()))
- .collect(Collectors.toList());
- diagnosisBelongBindingInitDto.setDiagnosisBelongBindingOptions(diagnosisBelongBindingOptions);
- // 诊断验证状态 - 用于医生开诊断"疑似"的取值
- List<DiagnosisBelongBindingInitDto.VerificationStatusOption> verificationStatusOptions =
- Stream.of(ConditionVerificationStatus.values())
- .map(status -> new DiagnosisBelongBindingInitDto.VerificationStatusOption(status.getValue(),
- status.getInfo()))
- .collect(Collectors.toList());
- diagnosisBelongBindingInitDto.setVerificationStatusOptions(verificationStatusOptions);
- return R.ok(diagnosisBelongBindingInitDto);
- 新增诊断归属绑定
- @param diagnosisBelongBindingDto 诊断归属绑定
- @return 结果
- @PostMapping("/diagnosis-belong-binding")
- public R<?> addDiagnosisBelongBinding(@Validated @RequestBody DiagnosisBelongBindingDto diagnosisBelongBindingDto) {
- return iDoctorStationDiagnosisAppService.addDiagnosisBelongBinding(diagnosisBelongBindingDto);
- 编辑诊断归属绑定
- @param diagnosisBelongBindingDto 诊断归属绑定
- @return 结果
- @PutMapping("/diagnosis-be
- …[truncated]
- · 我看到了 `save
- · -do
- · ctor-diagnosis`
- ·  和 `save-do
- · ctor-diagnosisnew
- · ` 两个保存
- · 诊断的接口。
- · 现在
- · 我需要查看 `
- · SaveDiagnosisParam
- · 这个 DTO,
- · 看看它包含
- · 哪些字段。
- ⏵ file_search {"pattern":"SaveDiagnosisParam.java","path":"healthlink-his-server"}
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/SaveDiagnosisParam.java
- · 找到了
- · 。
- · 让我查看
- · 这个 DTO。
- ⏵ read_file {"path":"healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/SaveDiagnosisParam.java"}
- package com.healthlink.his.web.doctorstation.dto;
- import com.fasterxml.jackson.databind.annotation.JsonSerialize;
- import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import java.util.List;
- 保存诊断 主参数类
- @author system
- @date 2025-02-20
- @Accessors(chain = true)
- public class SaveDiagnosisParam {
- 患者id
- @JsonSerialize(using = ToStringSerializer.class)
- private Long patientId;
- 就诊ID
- @JsonSerialize(using = ToStringSerializer.class)
- private Long encounterId;
- 诊断子集合
- private List<SaveDiagnosisChildParam> diagnosisChildList;
- · 我需要查看 `
- · SaveDiagnosisChild
- · Param` 这
- · 个类
- · 。
- ⏵ file_search {"pattern":"SaveDiagnosisChildParam.java","path":"healthlink-his-server"}
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/SaveDiagnosisChildParam.java
- · 查看
- · 这个类
- · 。
- ⏵ read_file {"path":"healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/dto/SaveDiagnosisChildParam.java"}
- package com.healthlink.his.web.doctorstation.dto;
- import com.fasterxml.jackson.databind.annotation.JsonSerialize;
- import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
- import com.fasterxml.jackson.annotation.JsonFormat;
- import lombok.Data;
- import lombok.experimental.Accessors;
- import java.util.Date;
- 保存诊断 子参数类
- @author system
- @date 2025-02-20
- @Accessors(chain = true)
- public class SaveDiagnosisChildParam {
- 诊断ID
- @JsonSerialize(using = ToStringSerializer.class)
- private Long conditionId;
- 就诊诊断ID
- @JsonSerialize(using = ToStringSerializer.class)
- private Long encounterDiagnosisId;
- 诊断定义id
- @JsonSerialize(using = ToStringSerializer.class)
- private Long definitionId;
- private String classification;
- private String name;
- 医保编码
- private String ybNo;
- 验证状态
- private Integer verificationStatusEnum;
- 主诊断标记 (1:是,0:否)
- private Integer maindiseFlag;
- /** 诊断排序(医保文档要求数值型字符长度为2) */
- private Integer diagSrtNo;
- /** 医疗类型 */
- private String medTypeCode;
- 中医证候组号
- private String syndromeGroupNo;
- 诊断描述
- private String diagnosisDesc;
- private String diagnosisDoctor;
- 诊断时间
- 添加 pattern 以支持前端传来的 "yyyy/M/d HH:mm:ss" 格式
- @JsonFormat(pattern = "yyyy/M/d HH:mm:ss", timezone = "GMT+8")
- private Date diagnosisTime;
- 发病时间
- 同样添加 pattern 以防前端传来相同格式的发病时间
- @JsonFormat(pattern = "yyyy/M/d HH:mm:ss", timezone = "GMT+8")
- private Date onsetDate;
- /** 患者疾病诊断类型代码 */
- private Integer iptDiseTypeCode;
- 中医分证候用修改id,中间用 - 分割
- private String updateId;
- 中医修改证候的新值,中间用 - 分割
- private String updateConditionId;
- private Integer longTermFlag;
- · 好的,`
- · SaveDiagnosisChild
- · Param` 包
- · 含 `diagnosis
- · Time`(诊断
- · 时间)、`on
- · setDate`(
- · 发病时间)和
- ·  `diagnosisDoctor
- · `(诊断医生
- · )字段。这些
- · 字段应该被
- · 传递到后
- · 端保存
- · 。
- 现在我需要
- · 查看 `ID
- · octorStationDi
- · agnosisAppService`
- ·  的
- · 实现,看看
- ·  `saveDoctor
- · Diagnosis` 和
- ·  `saveDoctorDi
- · agnosisNew` 方法
- · 是如何处理这些字段
- · 的。让我先
- · 找到这个接口
- · 和
- · 实现类。
- ⏵ file_search {"pattern":"IDoctorStationDiagnosisAppService.java","path":"healthlink-his-server"}
- healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/doctorstation/appservice/IDoctorStationDiagnosisAppService.java
- API request failed (429): {
- "error": {
- "code": "429",
- "message": "Too many requests",
- "type": "limitation"
- Review ---
- MiMo Code CLI
- model=mimo-v2.5 format=anthropic baseUrl=https://token-plan-cn.xiaomimimo.com
- workspace=/tmp/agentforge-worktrees/guanyu
- API request failed (429): {
- "error": {
- "code": "429",
- "message": "Too many requests",
- "type": "limitation"
- Test ---
- MiMo Code CLI
- model=mimo-v2.5 format=anthropic baseUrl=https://token-plan-cn.xiaomimimo.com
- workspace=/tmp/agentforge-worktrees/guanyu
- API request failed (429): {
- "error": {
- "code": "429",
- "message": "Too many requests",
- "type": "limitation"
- Verify ---
- Good, both save methods fixed. Now fix the mapper XML query:
2026-06-13 22:13:28 +08:00
2026-05-27 08:59:07 +08:00
Description
No description provided
321 MiB
Languages
Java 47.5%
Vue 45.4%
JavaScript 4.4%
Python 1.3%
HTML 0.6%
Other 0.7%