From e59ecf1df0d0da98144515a668bbe7b2216e99bb Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Fri, 12 Jan 2024 15:50:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E5=92=8C=E6=9F=A5=E8=AF=A2=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PatientScanController.java | 10 ++++++++- .../collect/job/PatScanFileSyncJob.java | 21 +++++++++---------- .../collect/service/PatientScanService.java | 12 +++++------ .../service/impl/PatientScanServiceImpl.java | 5 ++--- .../resources/mapper/PatientScanMapper.xml | 4 ++-- 5 files changed, 29 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/docus/server/collect/controller/PatientScanController.java b/src/main/java/com/docus/server/collect/controller/PatientScanController.java index 59eb2cd..de86616 100644 --- a/src/main/java/com/docus/server/collect/controller/PatientScanController.java +++ b/src/main/java/com/docus/server/collect/controller/PatientScanController.java @@ -43,6 +43,9 @@ public class PatientScanController { return CommonResult.failed("请输入正确的请求参数!"); } checkCondition(patientScanConditionDTOList); + for (PatientScanConditionDTO patientScanConditionDTO : patientScanConditionDTOList) { + patientScanConditionDTO.setDisDateTime(patientScanConditionDTO.getDisDate()+" 00:00:00"); + } return CommonResult.success(patientScanService.getScanDataByConditions(patientScanConditionDTOList)); } @@ -82,12 +85,17 @@ public class PatientScanController { // 从开始时间一天一天的查询,直到超过了结束时间停止 while (!disDateStartDate.isAfter(disDateEndDate)) { - List patientScanConditionDTOList = patientScanService.getInpatientNoAndTimesByDisDate(disDateStartDate + " 00:00:00", disDateStartDate + " 23:59:59"); + List patientScanConditionDTOList = patientScanService.getScanPatientConditionByDisDate(disDateStartDate + " 00:00:00", disDateStartDate + " 23:59:59"); if (Func.isEmpty(patientScanConditionDTOList)) { log.warn("出院时间:{} —— {} 没有可同步的扫描数据!", disDateStartDate + " 00:00:00", disDateStartDate + " 23:59:59"); disDateStartDate = disDateStartDate.plusDays(1); continue; } + for (PatientScanConditionDTO dto : patientScanConditionDTOList) { + String pattern="yyyy-MM-dd"; + String disDateTime = dto.getDisDateTime(); + dto.setDisDate(disDateTime.substring(0,pattern.length())); + } PatScanSyncResult scanSyncResult = synchronizer.sync("根据出院日期区间同步扫描患者数据接口", patientScanConditionDTOList); patientTotalCount += scanSyncResult.getPatientTotalCount(); successPatientCount += scanSyncResult.getSuccessPatientCount(); diff --git a/src/main/java/com/docus/server/collect/job/PatScanFileSyncJob.java b/src/main/java/com/docus/server/collect/job/PatScanFileSyncJob.java index 99d72a4..2e67d4b 100644 --- a/src/main/java/com/docus/server/collect/job/PatScanFileSyncJob.java +++ b/src/main/java/com/docus/server/collect/job/PatScanFileSyncJob.java @@ -77,9 +77,14 @@ public class PatScanFileSyncJob { } String startTime = lastExecuteDate + " 00:00:00"; String endTime = lastExecuteDate + " 23:59:59"; - List inpatientNoAndTimesByScanDate = patientScanService.getInpatientNoAndTimesByScanDate(startTime, endTime); - inpatientNoAndTimesByScanDate = Optional.ofNullable(inpatientNoAndTimesByScanDate).orElse(new ArrayList<>()); - PatScanSyncResult patScanSyncResult = patientScanSynchronizer.sync("电子病历扫描视图同步,根据扫描时间同步Job", inpatientNoAndTimesByScanDate); + List patientScanConditionDTOList = patientScanService.getScanPatientConditionByScanDate(startTime, endTime); + patientScanConditionDTOList = Optional.ofNullable(patientScanConditionDTOList).orElse(new ArrayList<>()); + for (PatientScanConditionDTO dto : patientScanConditionDTOList) { + String pattern="yyyy-MM-dd"; + String disDateTime = dto.getDisDateTime(); + dto.setDisDate(disDateTime.substring(0,pattern.length())); + } + PatScanSyncResult patScanSyncResult = patientScanSynchronizer.sync("电子病历扫描视图同步,根据扫描时间同步Job", patientScanConditionDTOList); log.info("电子病历扫描视图同步,根据扫描时间同步Job,{} —— {},同步结果为:{}",startTime,endTime,Func.toJson(patScanSyncResult)); lastExecuteDate = lastExecuteDate.plusDays(1); config.setLastExecuteDate(lastExecuteDate.toString()); @@ -90,14 +95,8 @@ public class PatScanFileSyncJob { } - public static void main(String[] args) { - QueryConfig config = QueryConfig.getQueryConfig(); - if (config == null) { - config = new QueryConfig(); - } - config.setLastExecuteDate(LocalDate.now().toString()); - config.refresh(); - } + + public static class QueryConfig { diff --git a/src/main/java/com/docus/server/collect/service/PatientScanService.java b/src/main/java/com/docus/server/collect/service/PatientScanService.java index 5006e06..ef9015a 100644 --- a/src/main/java/com/docus/server/collect/service/PatientScanService.java +++ b/src/main/java/com/docus/server/collect/service/PatientScanService.java @@ -25,19 +25,19 @@ public interface PatientScanService { /** - * 根据扫描时间查询条件,获取住院号和住院次数 + * 根据扫描时间查询条件,获取 扫描视图查询条件 * @param startTime 区间开始 不为空 * @param endTime 区间结束 不为空 - * @return 病案号和住院次数 + * @return 扫描视图查询条件 */ - List getInpatientNoAndTimesByScanDate(String startTime,String endTime); + List getScanPatientConditionByScanDate(String startTime, String endTime); /** - * 根据出院时间查询条件,获取住院号和住院次数 + * 根据出院时间查询条件,扫描视图查询条件 * @param startTime 出院时间区间开始 不为空 * @param endTime 出院时间区间结束 不为空 - * @return 病案号和住院次数 + * @return 扫描视图查询条件 */ - List getInpatientNoAndTimesByDisDate(String startTime,String endTime); + List getScanPatientConditionByDisDate(String startTime, String endTime); } diff --git a/src/main/java/com/docus/server/collect/service/impl/PatientScanServiceImpl.java b/src/main/java/com/docus/server/collect/service/impl/PatientScanServiceImpl.java index edde92d..4d42ae8 100644 --- a/src/main/java/com/docus/server/collect/service/impl/PatientScanServiceImpl.java +++ b/src/main/java/com/docus/server/collect/service/impl/PatientScanServiceImpl.java @@ -36,17 +36,16 @@ public class PatientScanServiceImpl implements PatientScanService { @Override public List getScanDataByConditions(PatientScanConditionDTO patientScanConditionDto) { - patientScanConditionDto.setDisDateTime(patientScanConditionDto.getDisDate()+" 00:00:00"); return patientScanMapper.getScanData(patientScanConditionDto); } @Override - public List getInpatientNoAndTimesByScanDate(String startTime, String endTime) { + public List getScanPatientConditionByScanDate(String startTime, String endTime) { return patientScanMapper.getScanPatientConditionByScanDate(startTime,endTime); } @Override - public List getInpatientNoAndTimesByDisDate(String startTime, String endTime) { + public List getScanPatientConditionByDisDate(String startTime, String endTime) { return patientScanMapper.getScanPatientConditionByDisDate(startTime,endTime); } diff --git a/src/main/resources/mapper/PatientScanMapper.xml b/src/main/resources/mapper/PatientScanMapper.xml index 541882c..86948dc 100644 --- a/src/main/resources/mapper/PatientScanMapper.xml +++ b/src/main/resources/mapper/PatientScanMapper.xml @@ -29,7 +29,7 @@ select 住院号 as inpatientNo, - 出院日期 as disDate, + 出院日期 as disDateTime, 病人姓名 as name from pat_sm where 出院日期 between #{start} and #{end}