diff --git a/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java b/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java index aaae2e4..abf4158 100644 --- a/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java +++ b/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java @@ -53,8 +53,8 @@ public class PacsCollectJob { // 查询视图 ,根据视图信息查询患者,再根据患者同步 所有的任务、文件 log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集job,开始任务!"); try { - String configPath="data-config"; - String configName="ydzyy-pacs-collect-job"; + String configPath = "data-config"; + String configName = "ydzyy-pacs-collect-job"; TableJsonRead tableJsonRead = new TableJsonRead(); JSONObject jobConfig = tableJsonRead.Read(configPath, configName, JSONObject.class); String startTime = jobConfig.getString("startTime"); @@ -107,7 +107,7 @@ public class PacsCollectJob { } LocalDateTime nextStartTime = jobRunTime.plusSeconds(-deviationSeconds); jobConfig.put("startTime", Func.formatDateTime(nextStartTime)); - tableJsonRead.Save(configPath,configName,jobConfig.toJSONString()); + tableJsonRead.Save(configPath, configName, jobConfig.toJSONString()); } catch (Exception ex) { log.error(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集jobc出现异常,结束任务!" + ex.getMessage(), ex); } @@ -123,28 +123,9 @@ public class PacsCollectJob { String collectorId = "3"; String assortId = "AC2C8F4A88884DC894630302C61C6A07"; String patientId = basic.getPatientId(); - String inpatientNo = basic.getInpatientNo(); - String idCard = basic.getIdCard(); - Date admissDate = basic.getAdmissDate(); - Date disDate = basic.getDisDate(); - String admissDateStr = Func.formatDateTime(admissDate).substring(0, 10); - String disDateStr = disDate == null ? null : Func.formatDateTime(disDate); - - - YdZyyPacsViewCondition pacsViewCondition = new YdZyyPacsViewCondition(); - pacsViewCondition.setInpNo(inpatientNo); - pacsViewCondition.setSendDateStart(admissDateStr); - pacsViewCondition.setSendDateEnd(disDateStr); - // 住院pacs - List zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); - - pacsViewCondition.setInpNo(null); - pacsViewCondition.setIdCard(idCard); - // 所有的pacs - List allPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); - allPacsViews.addAll(zyPacsViews); - - if (Func.isEmpty(allPacsViews)) { + // 获取视图数据 + List finalPacsViews = getPacsViews(basic); + if (Func.isEmpty(finalPacsViews)) { tBasicMapper.invalidFileBySource(patientId, collectorId); tBasicMapper.deleteTaskByPatAndSource(patientId, collectorId); // 刷新结束时间只是因为要校验完整性 @@ -152,30 +133,17 @@ public class PacsCollectJob { return; } - - List finalPacsViews = new ArrayList<>(); - Set reamarks = new HashSet<>(); - for (YdZyyPacsView pacsView : allPacsViews) { - if (reamarks.contains(pacsView.getREMARK())) { - continue; - } - reamarks.add(pacsView.getREMARK()); - finalPacsViews.add(pacsView); - } - // 排序 - finalPacsViews = finalPacsViews.stream() - .sorted(Comparator.comparing(YdZyyPacsView::getCREATETIMESTR)) - .collect(Collectors.toList()); + // 处理采集任务 Map pacsViewMap = finalPacsViews.stream().collect(Collectors.toMap(YdZyyPacsView::getREMARK, Function.identity())); - + Set reamarks = pacsViewMap.keySet(); List collectTaskList = tBasicMapper.getCollectTaskByPatAndSource(patientId, collectorId); + List taskC1s = collectTaskList.stream().map(AfCollectTask::getC1).collect(Collectors.toList()); List delTaskList = collectTaskList.stream() .filter(task -> !reamarks.contains(task.getC1())) .collect(Collectors.toList()); List updateTaskList = collectTaskList.stream() .filter(task -> reamarks.contains(task.getC1())) .collect(Collectors.toList()); - List taskC1s = collectTaskList.stream().map(AfCollectTask::getC1).collect(Collectors.toList()); List addTaskList = new ArrayList<>(); for (YdZyyPacsView pacsView : finalPacsViews) { @@ -197,20 +165,18 @@ public class PacsCollectJob { task.setC5(basic.getJzh()); task.setC6(pacsView.getREPORTNAME()); task.setC7(pacsView.getNAME()); - task.setT1(Func.parseDate(pacsView.getCREATETIMESTR(),"yyyy-MM-dd")); + task.setT1(Func.parseDate(pacsView.getCREATETIMESTR(), "yyyy-MM-dd")); task.setT2(pacsView.getADUITTIME()); task.setT3(pacsView.getSTATUSCHGTIME()); addTaskList.add(task); pacsView.setTaskId(task.getId()); } - if (Func.isNotEmpty(delTaskList)) { for (AfCollectTask task : delTaskList) { tBasicMapper.delTaskById(task.getId()); } } - if (Func.isNotEmpty(updateTaskList)) { for (AfCollectTask task : updateTaskList) { YdZyyPacsView pacsView = pacsViewMap.get(task.getC1()); @@ -222,24 +188,21 @@ public class PacsCollectJob { task.setC5(basic.getJzh()); task.setC6(pacsView.getREPORTNAME()); task.setC7(pacsView.getNAME()); - task.setT1(Func.parseDate(pacsView.getCREATETIMESTR(),"yyyy-MM-dd")); + task.setT1(Func.parseDate(pacsView.getCREATETIMESTR(), "yyyy-MM-dd")); task.setT2(pacsView.getADUITTIME()); task.setT3(pacsView.getSTATUSCHGTIME()); tBasicMapper.updateTaskById(task); } } - if (Func.isNotEmpty(addTaskList)) { for (AfCollectTask task : addTaskList) { tBasicMapper.insertCollectTask(task); } } - tBasicMapper.invalidFileBySource(patientId, collectorId); - + // 上报文件 ReportDownPatientDto patient = new ReportDownPatientDto(); patient.setPatientid(patientId); - ReportDownDto reportDownDto = new ReportDownDto(); reportDownDto.setAssortid(assortId); reportDownDto.setCollectorid(collectorId); @@ -260,5 +223,48 @@ public class PacsCollectJob { } } + /** + * 根据患者获取pacs视图信息 + * + * @param basic 患者信息 + */ + private List getPacsViews(TBasic basic) { + String inpatientNo = basic.getInpatientNo(); + String idCard = basic.getIdCard(); + Date admissDate = basic.getAdmissDate(); + Date disDate = basic.getDisDate(); + String admissDateStr = Func.formatDateTime(admissDate).substring(0, 10); + String disDateStr = disDate == null ? null : Func.formatDateTime(disDate); + + YdZyyPacsViewCondition pacsViewCondition = new YdZyyPacsViewCondition(); + pacsViewCondition.setInpNo(inpatientNo); + pacsViewCondition.setSendDateStart(admissDateStr); + pacsViewCondition.setSendDateEnd(disDateStr); + // 住院pacs + List zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); + + pacsViewCondition.setInpNo(null); + pacsViewCondition.setIdCard(idCard); + // 所有的pacs + List allPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); + allPacsViews.addAll(zyPacsViews); + + + List finalPacsViews = new ArrayList<>(); + Set reamarks = new HashSet<>(); + for (YdZyyPacsView pacsView : allPacsViews) { + if (reamarks.contains(pacsView.getREMARK())) { + continue; + } + reamarks.add(pacsView.getREMARK()); + finalPacsViews.add(pacsView); + } + // 排序 + finalPacsViews = finalPacsViews.stream() + .sorted(Comparator.comparing(YdZyyPacsView::getCREATETIMESTR)) + .collect(Collectors.toList()); + return finalPacsViews; + } + }