From 9797f25f148d22279702d331b9a6b0f56baf5a79 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Tue, 30 Sep 2025 17:22:01 +0800 Subject: [PATCH] =?UTF-8?q?imp:=E8=8B=B1=E5=BE=B7=E4=B8=AD=E5=8C=BB?= =?UTF-8?q?=E9=99=A2=EF=BC=8C=E8=A1=A5=E5=81=BF=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E6=95=B0=E6=8D=AE=EF=BC=8C=E7=94=A8=E7=BB=84?= =?UTF-8?q?=E6=88=90=E8=A7=86=E5=9B=BE=E7=9A=84=E5=8E=9F=E8=A1=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ydzyy/controller/ApiController.java | 2 +- .../server/ydzyy/job/PacsCollectJob.java | 57 +++++++++------ .../ydzyy/mapper/YdZyyPacsViewMapper.java | 3 +- .../resources/mapper/YdZyyPacsViewMapper.xml | 70 +++++++++++++++++++ 4 files changed, 109 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/docus/server/ydzyy/controller/ApiController.java b/src/main/java/com/docus/server/ydzyy/controller/ApiController.java index 3131c4a..d980c14 100644 --- a/src/main/java/com/docus/server/ydzyy/controller/ApiController.java +++ b/src/main/java/com/docus/server/ydzyy/controller/ApiController.java @@ -45,7 +45,7 @@ public class ApiController { public CommonResult collectPacs(@RequestBody List patientIds) { List basics = tBasicMapper.getTbasicByPatientIds(patientIds); for (TBasic basic : basics) { - pacsCollectJob.collectPacs(basic); + pacsCollectJob.collectPacs(basic, false); } return CommonResult.success("采集完成"); } 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 045ca65..9833a6a 100644 --- a/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java +++ b/src/main/java/com/docus/server/ydzyy/job/PacsCollectJob.java @@ -54,28 +54,28 @@ public class PacsCollectJob { @XxlJob("Ydzyy-CollectPacsByDisDateNotCollected") - public void collectPacsByDisDateNotCollected(){ + public void collectPacsByDisDateNotCollected() { String collectorId = "3"; - log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,开始任务!"); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,开始任务!"); int days; try { String daysStr = XxlJobHelper.getJobParam(); - days=Integer.parseInt(daysStr); - }catch (Exception ex){ - days=31; + days = Integer.parseInt(daysStr); + } catch (Exception ex) { + days = 31; } LocalDate startDate = LocalDate.now().plusDays(-days); - String startDateTime = startDate.toString()+" 00:00:00"; + String startDateTime = startDate.toString() + " 00:00:00"; try { - List basicList = tBasicMapper.getNoTaskPatientByDisDate(startDateTime,collectorId); - log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间:{} 采集未采集的患者,{} 个",startDateTime,basicList.size()); + List basicList = tBasicMapper.getNoTaskPatientByDisDate(startDateTime, collectorId); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间:{} 采集未采集的患者,{} 个", startDateTime, basicList.size()); for (TBasic basic : basicList) { - collectPacs(basic); + collectPacs(basic,false); } log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,任务结束!"); - }catch (Exception ex){ - log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,任务异常!"+ex.getMessage(),ex); + } catch (Exception ex) { + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job,任务异常!" + ex.getMessage(), ex); } } @@ -151,7 +151,7 @@ public class PacsCollectJob { tBasicList.add(basic); } for (TBasic basic : tBasicList) { - collectPacs(basic); + collectViewPacs(basic); } LocalDateTime nextStartTime = jobRunTime.plusSeconds(-deviationSeconds); jobConfig.put("startTime", Func.formatDateTime(nextStartTime)); @@ -196,11 +196,11 @@ public class PacsCollectJob { String remark = task.getC1(); YdZyyPacsViewCondition viewCondition = new YdZyyPacsViewCondition(); viewCondition.setRemark(remark); - List pacsViews = ydZyyPacsViewMapper.pacsViews(viewCondition); - if(Func.isEmpty(pacsViews)){ + List pacsViews = ydZyyPacsViewMapper.longTimePacsViews(viewCondition); + if (Func.isEmpty(pacsViews)) { tBasicMapper.delTaskById(task.getId()); - tBasicMapper.flushPatTaskEndTime (patientId, Func.formatDateTime(new Date())); - log.warn("remark:{} ,patientId:{} 视图已经不存在pacs报告信息,删除任务!", remark,patientId); + tBasicMapper.flushPatTaskEndTime(patientId, Func.formatDateTime(new Date())); + log.warn("remark:{} ,patientId:{} 视图已经不存在pacs报告信息,删除任务!", remark, patientId); continue; } @@ -235,12 +235,17 @@ public class PacsCollectJob { System.out.println(Func.formatDateTime(new Date()).substring(0, 10)); } - public void collectPacs(TBasic basic) { + private void collectViewPacs(TBasic basic) { + collectPacs(basic, true); + } + + + public void collectPacs(TBasic basic, boolean isView) { String collectorId = "3"; String assortId = "AC2C8F4A88884DC894630302C61C6A07"; String patientId = basic.getPatientId(); // 获取视图数据 - List finalPacsViews = getPacsViews(basic); + List finalPacsViews = isView ? getPacsViews(basic) : getPacs(basic, isView); if (Func.isEmpty(finalPacsViews)) { tBasicMapper.invalidFileBySource(patientId, collectorId); tBasicMapper.deleteTaskByPatAndSource(patientId, collectorId); @@ -339,12 +344,22 @@ public class PacsCollectJob { } } + /** * 根据患者获取pacs视图信息 * * @param basic 患者信息 */ private List getPacsViews(TBasic basic) { + return getPacs(basic, true); + } + + /** + * 根据患者获取pacs视图信息 + * + * @param basic 患者信息 + */ + private List getPacs(TBasic basic, boolean isView) { String inpatientNo = basic.getInpatientNo(); String idCard = basic.getIdCard(); Date admissDate = basic.getAdmissDate(); @@ -357,13 +372,13 @@ public class PacsCollectJob { pacsViewCondition.setSendDateStart(admissDateStr); pacsViewCondition.setSendDateEnd(disDateStr); // 住院pacs - List zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); + List zyPacsViews = isView ? ydZyyPacsViewMapper.pacsViews(pacsViewCondition) : ydZyyPacsViewMapper.longTimePacsViews(pacsViewCondition); List allPacsViews = new ArrayList<>(zyPacsViews); - if(Func.isNotBlank(idCard)){ + if (Func.isNotBlank(idCard)) { pacsViewCondition.setInpNo(null); pacsViewCondition.setIdCard(idCard); // 根据患者身份证查 - List pacsViewsByIdCard = ydZyyPacsViewMapper.pacsViews(pacsViewCondition); + List pacsViewsByIdCard = isView ? ydZyyPacsViewMapper.pacsViews(pacsViewCondition) : ydZyyPacsViewMapper.longTimePacsViews(pacsViewCondition); allPacsViews.addAll(pacsViewsByIdCard); } diff --git a/src/main/java/com/docus/server/ydzyy/mapper/YdZyyPacsViewMapper.java b/src/main/java/com/docus/server/ydzyy/mapper/YdZyyPacsViewMapper.java index 9ff32d1..74cd626 100644 --- a/src/main/java/com/docus/server/ydzyy/mapper/YdZyyPacsViewMapper.java +++ b/src/main/java/com/docus/server/ydzyy/mapper/YdZyyPacsViewMapper.java @@ -18,8 +18,9 @@ public interface YdZyyPacsViewMapper { /** * 根据pacs视图查询条件进行视图数据查询,timeStart <= STATUSCHGTIME < timeEnd * - * @return pacs 视图数据 */ List pacsViews(@Param("condition")YdZyyPacsViewCondition condition); + + List longTimePacsViews(@Param("condition")YdZyyPacsViewCondition condition); } diff --git a/src/main/resources/mapper/YdZyyPacsViewMapper.xml b/src/main/resources/mapper/YdZyyPacsViewMapper.xml index dd99d91..33816ba 100644 --- a/src/main/resources/mapper/YdZyyPacsViewMapper.xml +++ b/src/main/resources/mapper/YdZyyPacsViewMapper.xml @@ -5,6 +5,34 @@ + + select + b.serialno as REMARK, + ISNULL(a.register_num,'') as REGISTER_NUM, + ISNULL(a.hst_num,'') as NP_NO, + a.study_id as ACCNO, + CONVERT(VARCHAR(10),a.crt_time,120) as CREATETIMESTR, + b.report_doc as REPORTDOC, + a.modality + '检查报告单' as REPORTNAME, + a.name as NAME, + b.aduit_time as ADUITTIME, + '\\10.10.100.97\新图像存储\报告打印图像预览\' + CONVERT(char(4), YEAR(CASE WHEN studytime IS NULL + THEN preengagetime ELSE studytime END)) + '年' + RTRIM(CONVERT(char(2), MONTH(CASE WHEN studytime IS NULL + THEN preengagetime ELSE studytime END))) + '月' + RTRIM(CONVERT(char(2), DAY(CASE WHEN studytime IS NULL + THEN preengagetime ELSE studytime END))) + '日\' + a.name + '_' + a.modality + '_' + LTRIM(STR(a.serialno)) + + '.jpg' as FILEPATH, + a.statuschgtime as STATUSCHGTIME, + a.send_date as SENDDATE, + a.id_card as IDCARD + FROM pacsdb..rcv_patient a WITH(NOLOCK) + JOIN pacsdb..diagnose_report b WITH(NOLOCK) on a.serialno = b.serialno + LEFT join pacsdb..sick_type c on a.sick_type=c.sick_id + WHERE a.preengagetime >= '2022-10-01 00:00:00' + AND a.proc_status >='50' + AND b.userlevel = pacsproc.dbo.fnGetMaxLevelSerialno(a.serialno) + AND charindex('体检',c.sick_name) 1 + + + + +