From dc5526f8bb4140bcfacd851a0a694a298b0e1ccd Mon Sep 17 00:00:00 2001 From: Flow <958079825@qq.com> Date: Fri, 27 Jun 2025 16:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InspectPacsDataController.java | 9 ++++ .../vo/ReportStatusRespVO.java | 19 +++++++ .../InspectPatientController.java | 22 +++++--- .../admin/inspectpatient/vo/ReportData.java | 2 +- .../InspectPacsDataMapper.java | 25 +++++++++ .../InspectPacsDataService.java | 34 ++++++++++++ .../InspectPacsDataServiceImpl.java | 27 ++++++++++ .../inspectpatient/InspectPatientService.java | 4 +- .../InspectPatientServiceImpl.java | 53 +++++++++++++++++-- .../inspectpacsdata/InspectPacsDataMapper.xml | 25 +++++++++ 10 files changed, 207 insertions(+), 13 deletions(-) create mode 100644 yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/vo/ReportStatusRespVO.java diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/InspectPacsDataController.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/InspectPacsDataController.java index f88c2c9..3d45029 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/InspectPacsDataController.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/InspectPacsDataController.java @@ -103,4 +103,13 @@ public class InspectPacsDataController { BeanUtils.toBean(list, InspectPacsDataRespVO.class)); } + @GetMapping("/getByMedicalSnAndType") + @Operation(summary = "根据体检编号和类型查询报告状态") + public CommonResult> getPacsDataByMedicalSnAndType( + @RequestParam("medicalSn") String medicalSn, + @RequestParam("type") String type) { + Map result = pacsDataService.getPacsDataByMedicalSnAndType(medicalSn, type); + return success(result); + } + } \ No newline at end of file diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/vo/ReportStatusRespVO.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/vo/ReportStatusRespVO.java new file mode 100644 index 0000000..fd81ad7 --- /dev/null +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpacsdata/vo/ReportStatusRespVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.inspect.controller.admin.inspectpacsdata.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@Schema(description = "管理后台 - 报告状态 Response VO") +@Data +public class ReportStatusRespVO { + + @Schema(description = "体检编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20241201123456") + private String medicalSn; + + @Schema(description = "检查类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "US") + private String type; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String status; + +} \ No newline at end of file diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java index 0f14002..ae341e3 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/InspectPatientController.java @@ -588,12 +588,15 @@ public class InspectPatientController { ReportData reportData = reportResponse.getData(); // 获取 reportPath String reportPath = reportData.getReportPath(); - String barCodestatus=reportData.getBarCodestatus(); + String barCodestatus=reportData.getBarCodeStatus(); //更新检验检查状态 if (barCodestatus!=null) { - pacsDataService.updatebarcodestatus(medicalSn, model, barCodestatus); + if (pacsDataService.existsReportStatus(medicalSn, model)) { + pacsDataService.updateReportStatus(medicalSn, model, barCodestatus); + } else { + pacsDataService.insertReportStatus(medicalSn, model, barCodestatus); + } } - if (!reportPath.contains("报告暂未出")) { StringBuilder sb = new StringBuilder(); InspectPacsDataSaveReqVO inspectPacs = new InspectPacsDataSaveReqVO(); @@ -639,10 +642,14 @@ public class InspectPatientController { ReportData reportData = reportResponse.getData(); // 获取 reportPath String reportPath = reportData.getReportPath(); - String barCodestatus=reportData.getBarCodestatus(); + String barCodestatus=reportData.getBarCodeStatus(); //更新检验检查状态 if (barCodestatus!=null) { - pacsDataService.updatebarcodestatus(medicalSn, model, barCodestatus); + if (pacsDataService.existsReportStatus(medicalSn, model)) { + pacsDataService.updateReportStatus(medicalSn, model, barCodestatus); + } else { + pacsDataService.insertReportStatus(medicalSn, model, barCodestatus); + } } if (!reportPath.contains("报告暂未出")) { StringBuilder sb = new StringBuilder(); @@ -1000,7 +1007,8 @@ public class InspectPatientController { @Operation(summary = "获取超声报告") public CommonResult GetApiPacsInfo(@RequestParam("medicalSn") String medicalSn) { // 只获取shortid字段,提高查询性能 - String shortid = patientService.getPatientShortid(medicalSn); + InspectPatientDO patientDO = patientService.getPatientShortid(medicalSn); + String shortid = patientDO != null ? patientDO.getShortid() : null; if (shortid == null) { return success(false); } @@ -1918,7 +1926,7 @@ public class InspectPatientController { public CommonResult GetbarcodeInfo(@RequestParam("medicalSn") String medicalSn) { // 获取患者信息 - InspectPatientDO patientDO = patientService.getPatientInfo(medicalSn); + InspectPatientDO patientDO = patientService.getPatientShortid(medicalSn); if (patientDO == null) { return success("未找到该患者信息"); } diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/vo/ReportData.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/vo/ReportData.java index 3c35013..dd91bc1 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/vo/ReportData.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/controller/admin/inspectpatient/vo/ReportData.java @@ -7,7 +7,7 @@ import java.util.List; @Data @JsonIgnoreProperties(ignoreUnknown = true) public class ReportData { - private String barCodestatus; + private String barCodeStatus; private String reportPath; private List results; private List resultsAll; diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/dal/mysql/inspectpacsdata/InspectPacsDataMapper.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/dal/mysql/inspectpacsdata/InspectPacsDataMapper.java index e5525fd..117d5b8 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/dal/mysql/inspectpacsdata/InspectPacsDataMapper.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/dal/mysql/inspectpacsdata/InspectPacsDataMapper.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.inspect.dal.dataobject.inspectpacsdata.InspectPacsDataDO; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import cn.iocoder.yudao.module.inspect.controller.admin.inspectpacsdata.vo.*; /** @@ -34,4 +35,28 @@ public interface InspectPacsDataMapper extends BaseMapperX { .orderByDesc(InspectPacsDataDO::getId)); } + /** + * 插入检验报告状态 + */ + int insertReportStatus(@Param("medicalSn") String medicalSn, + @Param("type") String type, + @Param("status") String status); + + /** + * 更新检验报告状态 + */ + int updateReportStatus(@Param("medicalSn") String medicalSn, + @Param("type") String type, + @Param("status") String status); + + /** + * 统计检验报告状态表中指定体检编号和类型的记录数 + */ + int countReportStatus(@Param("medicalSn") String medicalSn, @Param("type") String type); + + /** + * 根据体检编号和类型查询PACS数据 + */ + Map getPacsDataByMedicalSnAndType(@Param("medicalSn") String medicalSn, @Param("type") String type); + } \ No newline at end of file diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataService.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataService.java index 3e8806c..a900f25 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataService.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataService.java @@ -49,6 +49,26 @@ public interface InspectPacsDataService { * */ void updatebarcodestatus(String medicalSn, String type, String barcodestatus); + /** + * 插入检验报告状态到tb_report_status表 + * + * @param medicalSn 体检编号 + * @param type 类型 + * @param status 状态 + * @return 影响行数 + */ + int insertReportStatus(String medicalSn, String type, String status); + + /** + * 更新检验报告状态到tb_report_status表 + * + * @param medicalSn 体检编号 + * @param type 类型 + * @param status 状态 + * @return 影响行数 + */ + int updateReportStatus(String medicalSn, String type, String status); + /** * 获得pacs抓取数据 * @@ -86,4 +106,18 @@ public interface InspectPacsDataService { PageResult getPacsDataPage(InspectPacsDataPageReqVO pageReqVO); List getPacsDataByCode(String medicalSn); + + /** + * 判断检验报告状态表中指定体检编号和类型的记录是否存在 + */ + boolean existsReportStatus(String medicalSn, String type); + + /** + * 根据体检编号和类型查询PACS数据 + * + * @param medicalSn 体检编号 + * @param type 数据类型 + * @return 报告状态数据 + */ + Map getPacsDataByMedicalSnAndType(String medicalSn, String type); } \ No newline at end of file diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataServiceImpl.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataServiceImpl.java index 56d5fa9..0dc1def 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataServiceImpl.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpacsdata/InspectPacsDataServiceImpl.java @@ -79,6 +79,23 @@ public class InspectPacsDataServiceImpl implements InspectPacsDataService { .set(InspectPacsDataDO::getRemark, barcodestatus); pacsDataMapper.update(null, updateWrapper); } + + /** + * 插入检验报告状态到tb_report_status表 + */ + @Override + public int insertReportStatus(String medicalSn, String type, String status) { + return pacsDataMapper.insertReportStatus(medicalSn, type, status); + } + + /** + * 更新检验报告状态到tb_report_status表 + */ + @Override + public int updateReportStatus(String medicalSn, String type, String status) { + return pacsDataMapper.updateReportStatus(medicalSn, type, status); + } + private void validatePacsDataExists(Integer id) { if (pacsDataMapper.selectById(id) == null) { @@ -131,4 +148,14 @@ public class InspectPacsDataServiceImpl implements InspectPacsDataService { return Collections.emptyList(); } + @Override + public boolean existsReportStatus(String medicalSn, String type) { + return pacsDataMapper.countReportStatus(medicalSn, type) > 0; + } + + @Override + public Map getPacsDataByMedicalSnAndType(String medicalSn, String type) { + return pacsDataMapper.getPacsDataByMedicalSnAndType(medicalSn, type); + } + } \ No newline at end of file diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java index a59bfc0..3ec3705 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientService.java @@ -84,9 +84,9 @@ public interface InspectPatientService { InspectPatientDO getPatientInfo(String medicalSn); /* - * 根据体检编号只获取shortid字段 + * 根据体检编号获取患者信息(除头像外) * */ - String getPatientShortid(String medicalSn); + InspectPatientDO getPatientShortid(String medicalSn); /* * 更新患者的基本信息里的补充信息 高血压、老年人、行政村、卫生院、糖尿病、精神病 * */ diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java index 578c8fd..91f68fc 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/java/cn/iocoder/yudao/module/inspect/service/inspectpatient/InspectPatientServiceImpl.java @@ -176,12 +176,59 @@ public class InspectPatientServiceImpl implements InspectPatientService { } @Override - public String getPatientShortid(String medicalSn) { + public InspectPatientDO getPatientShortid(String medicalSn) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(InspectPatientDO::getMedicalSn, medicalSn) - .select(InspectPatientDO::getShortid); + .select( + InspectPatientDO::getId, + InspectPatientDO::getMedicalSn, + InspectPatientDO::getPName, + InspectPatientDO::getGender, + InspectPatientDO::getBirthday, + InspectPatientDO::getCardType, + InspectPatientDO::getCardId, + InspectPatientDO::getNationality, + InspectPatientDO::getNation, + InspectPatientDO::getRace, + InspectPatientDO::getPhoneNum, + InspectPatientDO::getStatus, + InspectPatientDO::getReportType, + InspectPatientDO::getMedicalDateTime, + InspectPatientDO::getChargeType, + InspectPatientDO::getTotalPrice, + InspectPatientDO::getIsprint, + InspectPatientDO::getSummaryResult, + InspectPatientDO::getAuditor, + InspectPatientDO::getAuditorTime, + InspectPatientDO::getAuditStatus, + InspectPatientDO::getInspectionOpinion, + InspectPatientDO::getChargetime, + InspectPatientDO::getDomicileaddress, + InspectPatientDO::getHospitalNo, + InspectPatientDO::getXcgcode, + InspectPatientDO::getNcgcode, + InspectPatientDO::getShqx, + InspectPatientDO::getZybs, + InspectPatientDO::getFeatures, + InspectPatientDO::getChiefinspectorid, + InspectPatientDO::getChiefinspector, + InspectPatientDO::getPrinttime, + InspectPatientDO::getBarcodetime, + InspectPatientDO::getPdfurl, + InspectPatientDO::getOldmanflag, + InspectPatientDO::getOrgname, + InspectPatientDO::getDistrictname, + InspectPatientDO::getHtnflag, + InspectPatientDO::getDiaflag, + InspectPatientDO::getSmiflag, + InspectPatientDO::getPulflag, + InspectPatientDO::getExamhoscode, + InspectPatientDO::getExamhosname, + InspectPatientDO::getShortid + ); + InspectPatientDO patientDO = patientMapper.selectOne(queryWrapper); - return patientDO != null ? patientDO.getShortid() : null; + return patientDO; } @Override public List getPatientdetails(PatientDetailsVO detailsVO) { diff --git a/yudao-module-inspect/yudao-module-inspect-biz/src/main/resources/mapper/inspectpacsdata/InspectPacsDataMapper.xml b/yudao-module-inspect/yudao-module-inspect-biz/src/main/resources/mapper/inspectpacsdata/InspectPacsDataMapper.xml index 61f3f79..ee4e32b 100644 --- a/yudao-module-inspect/yudao-module-inspect-biz/src/main/resources/mapper/inspectpacsdata/InspectPacsDataMapper.xml +++ b/yudao-module-inspect/yudao-module-inspect-biz/src/main/resources/mapper/inspectpacsdata/InspectPacsDataMapper.xml @@ -9,4 +9,29 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + + INSERT INTO tb_report_status (medicalSn, type, status) + VALUES (#{medicalSn}, #{type}, #{status}) + + + + + UPDATE tb_report_status + SET status = #{status} + WHERE medicalSn = #{medicalSn} AND type = #{type} + + + + + + + + \ No newline at end of file