|
|
|
@ -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<YdZyyPacsView> zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
|
|
|
|
|
|
|
|
|
|
pacsViewCondition.setInpNo(null);
|
|
|
|
|
pacsViewCondition.setIdCard(idCard);
|
|
|
|
|
// 所有的pacs
|
|
|
|
|
List<YdZyyPacsView> allPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
|
|
|
|
|
allPacsViews.addAll(zyPacsViews);
|
|
|
|
|
|
|
|
|
|
if (Func.isEmpty(allPacsViews)) {
|
|
|
|
|
// 获取视图数据
|
|
|
|
|
List<YdZyyPacsView> finalPacsViews = getPacsViews(basic);
|
|
|
|
|
if (Func.isEmpty(finalPacsViews)) {
|
|
|
|
|
tBasicMapper.invalidFileBySource(patientId, collectorId);
|
|
|
|
|
tBasicMapper.deleteTaskByPatAndSource(patientId, collectorId);
|
|
|
|
|
// 刷新结束时间只是因为要校验完整性
|
|
|
|
@ -152,30 +133,17 @@ public class PacsCollectJob {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<YdZyyPacsView> finalPacsViews = new ArrayList<>();
|
|
|
|
|
Set<String> 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<String, YdZyyPacsView> pacsViewMap = finalPacsViews.stream().collect(Collectors.toMap(YdZyyPacsView::getREMARK, Function.identity()));
|
|
|
|
|
|
|
|
|
|
Set<String> reamarks = pacsViewMap.keySet();
|
|
|
|
|
List<AfCollectTask> collectTaskList = tBasicMapper.getCollectTaskByPatAndSource(patientId, collectorId);
|
|
|
|
|
List<String> taskC1s = collectTaskList.stream().map(AfCollectTask::getC1).collect(Collectors.toList());
|
|
|
|
|
List<AfCollectTask> delTaskList = collectTaskList.stream()
|
|
|
|
|
.filter(task -> !reamarks.contains(task.getC1()))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<AfCollectTask> updateTaskList = collectTaskList.stream()
|
|
|
|
|
.filter(task -> reamarks.contains(task.getC1()))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
List<String> taskC1s = collectTaskList.stream().map(AfCollectTask::getC1).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
List<AfCollectTask> 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<YdZyyPacsView> 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<YdZyyPacsView> zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
|
|
|
|
|
|
|
|
|
|
pacsViewCondition.setInpNo(null);
|
|
|
|
|
pacsViewCondition.setIdCard(idCard);
|
|
|
|
|
// 所有的pacs
|
|
|
|
|
List<YdZyyPacsView> allPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
|
|
|
|
|
allPacsViews.addAll(zyPacsViews);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<YdZyyPacsView> finalPacsViews = new ArrayList<>();
|
|
|
|
|
Set<String> 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|