From b97c7ce7df82804d63dfee27686c1c500c5ae67d Mon Sep 17 00:00:00 2001 From: lxd <1004405501@qq.com> Date: Mon, 31 Mar 2025 18:10:52 +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 --- .../InspectPatientController.java | 55 ++++++++++++++++++- .../InspectPacsDataService.java | 5 ++ .../InspectPacsDataServiceImpl.java | 8 +++ 3 files changed, 66 insertions(+), 2 deletions(-) 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 be8e9c8..1a090ca 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 @@ -472,6 +472,7 @@ public class InspectPatientController { //获取患者信息 InspectPatientDO patientDO = patientService.getPatientInfo(medicalSn); if (patientDO != null) { + String model = ""; String barCode = ""; switch (type) { @@ -497,13 +498,63 @@ public class InspectPatientController { } break; } + ConfigDO config = configService.getConfigByKey("url.reporttj"); + String url = config.getValue(); //查询是否已经存在记录 存在则不进行同步操作 if(pacsDataService.IspacsDataExist(medicalSn, model)) { + if(!pacsDataService.IspacsDataitemExist(medicalSn, model)) + { + //没有对应的item值 更新 + String response = HttpUtils.get(url + "?" + "barCode=" + barCode + "&" + "hospitalCode=" + patientDO.getHospitalNo()); + if (response != null) + { + // 解析 JSON 响应 + ObjectMapper objectMapper = new ObjectMapper(); + try { + ReportResponse reportResponse = objectMapper.readValue(response, ReportResponse.class); + if ("操作成功".equals(reportResponse.getMsg()) && reportResponse.getCode() == 200) + { + ReportData reportData = reportResponse.getData(); + // 获取 reportPath + String reportPath = reportData.getReportPath(); + if(!reportPath.contains("报告暂未出")) + { + StringBuilder sb = new StringBuilder(); + InspectPacsDataSaveReqVO inspectPacs = new InspectPacsDataSaveReqVO(); + inspectPacs.setCode(patientDO.getMedicalSn()); + inspectPacs.setType(model); + if(reportData.getResults()!=null&&reportData.getResults().size()>0) + { + // 获取 results 数组并遍历 + List results = reportData.getResults(); + for (ResultItem result : results) { + // 判断 Item Tips 并输出相应的结果 + String itemTips = result.getItemTips(); + String tipsDescription = ""; + if ("1".equals(itemTips)) { + tipsDescription = "偏低"; + } else if ("4".equals(itemTips)) { + tipsDescription = "偏高"; + } + + sb.append("【"+result.getItemName() +":"+tipsDescription+" ,结果:" + result.getItemValue() + result.getItemUnit() +","+"参考值("+result.getReferenceRange()+ ")】"+"\n"); + } + inspectPacs.setItem(sb.toString()); + } + + pacsDataService.updatePacsDataitem(inspectPacs); + } + + } + } catch (IOException e) { + e.printStackTrace(); + return success(true); + } + } + } return success(true); } - ConfigDO config = configService.getConfigByKey("url.reporttj"); - String url = config.getValue(); String response = HttpUtils.get(url + "?" + "barCode=" + barCode + "&" + "hospitalCode=" + patientDO.getHospitalNo()); if (response != null) { // 解析 JSON 响应 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 6419fc7..546ef2e 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 @@ -62,6 +62,11 @@ public interface InspectPacsDataService { * 根据体检编号和类型判断是否存在pacs数据 * */ Boolean IspacsDataExist(String code, String type); + /* + * + * 根据体检编号和类型判断是否存在pacs的item数据 + * */ + Boolean IspacsDataitemExist(String code, String type); /** * 获得pacs抓取数据分页 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 6d31ff7..bfb4b26 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 @@ -97,6 +97,14 @@ public class InspectPacsDataServiceImpl implements InspectPacsDataService { return pacsDataMapper.selectList(queryWrapper).size()>0? true:false; } + @Override + public Boolean IspacsDataitemExist(String code, String type) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("code", code) + .eq("type", type) + .isNotNull("item"); + return pacsDataMapper.selectCount(queryWrapper) > 0; + } @Override public PageResult getPacsDataPage(InspectPacsDataPageReqVO pageReqVO) { return pacsDataMapper.selectPage(pageReqVO);