检查报告分段问题

3.2.4.44
wyb 2 years ago
parent 703b8f8063
commit 4ff6177aa5

@ -0,0 +1,4 @@
{
"blocking": ["cs","yx","jc"],
"notHandled":["lis","bl","nh"]
}

@ -65,4 +65,10 @@ public class ReportDto {
* 1:url2:base643:url base644:5base64 * 1:url2:base643:url base644:5base64
*/ */
private Integer downtype=1; private Integer downtype=1;
/**
*
*/
private String reportSn;
} }

@ -0,0 +1,56 @@
package com.docus.server.report.config;
import com.docus.server.report.util.TableJsonRead;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author wyb
*/
public class SdRyReportHandledConfig {
private final SdRyReportSystem sdRyReportSystem;
@Data
private static class SdRyReportSystem{
/**
*
*/
private List<String> blocking = new ArrayList<>();
/**
*
*/
private List<String> notHandled = new ArrayList<>();
}
public SdRyReportHandledConfig(){
TableJsonRead jsonRead = new TableJsonRead();
this.sdRyReportSystem= jsonRead.Read("data-config", "sdry-report-system.json", SdRyReportSystem.class);
}
public boolean isBlocking(String systemName){
if(this.sdRyReportSystem!=null){
List<String> blocking = this.sdRyReportSystem.getBlocking();
return blocking.contains(systemName);
}
return false;
}
public boolean isNotHandled(String systemName){
if(this.sdRyReportSystem!=null){
List<String> notHandled = this.sdRyReportSystem.getNotHandled();
return notHandled.contains(systemName);
}
return false;
}
public static void main(String[] args) {
SdRyReportHandledConfig sdRyReportHandledConfig = new SdRyReportHandledConfig();
System.out.println(sdRyReportHandledConfig.sdRyReportSystem);
System.out.println(sdRyReportHandledConfig.isNotHandled("lis"));
System.out.println(sdRyReportHandledConfig.isNotHandled("yx"));
System.out.println(sdRyReportHandledConfig.isBlocking("yx"));
System.out.println(sdRyReportHandledConfig.isBlocking("lis"));
}
}

@ -24,8 +24,6 @@ public class SdRyReportQueryConfig {
@Value("${sdry.report-query-url.lis.url:}") @Value("${sdry.report-query-url.lis.url:}")
private String reportQueryLisUrl; private String reportQueryLisUrl;
@Value("${sdry.report-query-url.lis.assortId:}")
private String reportQueryLisAssortId;
@Value("${sdry.report-query-url.lis.action:}") @Value("${sdry.report-query-url.lis.action:}")
private String reportQueryLisAction; private String reportQueryLisAction;
@Value("${sdry.report-query-url.lis.accessKey:}") @Value("${sdry.report-query-url.lis.accessKey:}")
@ -38,8 +36,6 @@ public class SdRyReportQueryConfig {
@Value("${sdry.report-query-url.inspect.url:}") @Value("${sdry.report-query-url.inspect.url:}")
private String reportQueryInspectUrl; private String reportQueryInspectUrl;
@Value("${sdry.report-query-url.inspect.assortId:}")
private String reportQueryInspectAssortId;
@Value("${sdry.report-query-url.inspect.action:}") @Value("${sdry.report-query-url.inspect.action:}")
private String reportQueryInspectAction; private String reportQueryInspectAction;
@Value("${sdry.report-query-url.inspect.accessKey:}") @Value("${sdry.report-query-url.inspect.accessKey:}")

@ -0,0 +1,106 @@
package com.docus.server.report.entity;
import com.docus.server.report.api.dto.ReportDto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
*/
@Data
public class AfReportRecordBuffer implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
*
*/
private String inpatientNo;
/**
*
*/
private String jzh;
/**
*
*/
private Integer admissTimes;
/**
* 使 |
*/
private String downUrl;
/**
* 1:url2:base643:url base644:5base64
*/
private Integer downType;
/**
* 0 1
*/
private Integer state;
/**
* id
*/
private String serialnum;
/**
*
*/
private String sysflag;
/**
* id
*/
private String zdAssortId;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
*
*/
private String fileName;
/**
*
*/
private String reportSn;
/**
* 0 1
*/
private Integer blocking;
public AfReportRecordBuffer() {
}
public AfReportRecordBuffer(ReportDto reportDto) {
this.jzh = reportDto.getJzh();
this.admissTimes = reportDto.getAdmisstimes();
this.inpatientNo = reportDto.getInpatientNo();
this.downUrl = reportDto.getDownUrl();
this.sysflag = reportDto.getSysFlag();
this.zdAssortId = reportDto.getAssortId();
this.serialnum = reportDto.getSerialnum();
this.fileName = reportDto.getFileTitle();
this.downType = reportDto.getDowntype();
this.reportSn=reportDto.getReportSn();
}
}

@ -409,10 +409,10 @@ public class ReportJob {
private List<ReportDto> getLisReportBySdRyJxId(String sdRyReportPatientId, TBasic tBasic) { private List<ReportDto> getLisReportBySdRyJxId(String sdRyReportPatientId, TBasic tBasic) {
List<ReportDto> list = new ArrayList<>(); List<ReportDto> list = new ArrayList<>();
List<ReportDto> zyLisReportBySdRyJxId = getZyLisReportBySdRyJxId(sdRyReportPatientId, tBasic); // List<ReportDto> zyLisReportBySdRyJxId = getZyLisReportBySdRyJxId(sdRyReportPatientId, tBasic);
List<ReportDto> mzLisReportBySdRyJxId = getMzLisReportBySdRyJxId(sdRyReportPatientId, tBasic); List<ReportDto> mzLisReportBySdRyJxId = getMzLisReportBySdRyJxId(sdRyReportPatientId, tBasic);
list.addAll(mzLisReportBySdRyJxId); list.addAll(mzLisReportBySdRyJxId);
list.addAll(zyLisReportBySdRyJxId); // list.addAll(zyLisReportBySdRyJxId);
return list; return list;
} }

@ -60,6 +60,8 @@ public class ReportServiceImpl implements ReportService {
} }
private void threePartyPushReports(ReportDto reportDto) { private void threePartyPushReports(ReportDto reportDto) {
String patientId = null; String patientId = null;
try { try {
// 如果出现多条出错的情况,还是得保存收到的信息,人工干预处理 // 如果出现多条出错的情况,还是得保存收到的信息,人工干预处理
@ -131,8 +133,9 @@ public class ReportServiceImpl implements ReportService {
loop = false; loop = false;
} }
// 截取每一批 // 截取每一批
List<Long> makeupTaskIds = taskIds.subList(startIndex, toIndex); List<Long> makeupTaskIdsSub = taskIds.subList(startIndex, toIndex);
makeupTaskIds = afReportRecordMapper.getHasPatientIdTaskIdsByTaskIds(makeupTaskIds); List<Long> makeupTaskIds = afReportRecordMapper.getHasPatientIdTaskIdsByTaskIds(makeupTaskIdsSub);
makeupTaskIdsSub.clear();
if (Func.isNotEmpty(makeupTaskIds)) { if (Func.isNotEmpty(makeupTaskIds)) {
for (Long taskId : makeupTaskIds) { for (Long taskId : makeupTaskIds) {
// 发布下载事件 // 发布下载事件

@ -289,6 +289,12 @@ public class SdryReportServerImpl implements IReportServer {
} }
public ReportDto getReportDtoByInspectionInsert(XmlUtil inspectionInsertXmlUtil) { public ReportDto getReportDtoByInspectionInsert(XmlUtil inspectionInsertXmlUtil) {
Node senderNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/sender/device/id/item/@extension");
String sender = senderNode.getNodeValue();
String zdAssortId = ZdAssortConfig.getZdAssortId(sender);
if(Func.isBlank(zdAssortId)){
zdAssortId=ZdAssortConfig.getOtherAssortId();
}
Node inpatientNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); Node inpatientNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension");
String inpatientNo = inpatientNoNode.getNodeValue(); String inpatientNo = inpatientNoNode.getNodeValue();
@ -304,11 +310,11 @@ public class SdryReportServerImpl implements IReportServer {
String eafNo = eafNoNode.getNodeValue(); String eafNo = eafNoNode.getNodeValue();
String serialnum = reportFlag + "@" + eafNo; String serialnum = reportFlag + "@" + eafNo;
Node assortIdNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); // Node assortIdNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName");
String assortId = assortIdNode.getNodeValue(); // String assortId = assortIdNode.getNodeValue();
Node sysFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); // Node sysFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName");
String sysFlag = sysFlagNode.getNodeValue(); // String sysFlag = sysFlagNode.getNodeValue();
Node fileTitleNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); Node fileTitleNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName");
String fileTitle = fileTitleNode.getNodeValue(); String fileTitle = fileTitleNode.getNodeValue();
@ -317,19 +323,27 @@ public class SdryReportServerImpl implements IReportServer {
String downUrl = downUrlNode.getTextContent(); String downUrl = downUrlNode.getTextContent();
ReportDto reportDto = new ReportDto(); ReportDto reportDto = new ReportDto();
reportDto.setReportSn(reportFlag);
reportDto.setAdmisstimes(admissTimes); reportDto.setAdmisstimes(admissTimes);
reportDto.setInpatientNo(inpatientNo); reportDto.setInpatientNo(inpatientNo);
reportDto.setSerialnum(serialnum); reportDto.setSerialnum(serialnum);
reportDto.setFileTitle(fileTitle); reportDto.setFileTitle(fileTitle);
reportDto.setDownUrl(downUrl); reportDto.setDownUrl(downUrl);
reportDto.setAssortId(assortId); reportDto.setAssortId(zdAssortId);
reportDto.setSysFlag(sysFlag); reportDto.setSysFlag(sender);
reportDto.setFileSource("1"); reportDto.setFileSource("1");
reportDto.setFilestoragetype("1"); reportDto.setFilestoragetype("1");
return reportDto; return reportDto;
} }
public ReportDto getReportDtoByInspectionUpdate(XmlUtil inspectionUpdateXmlUtil) { public ReportDto getReportDtoByInspectionUpdate(XmlUtil inspectionUpdateXmlUtil) {
Node senderNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/sender/device/id/item/@extension");
String sender = senderNode.getNodeValue();
String zdAssortId = ZdAssortConfig.getZdAssortId(sender);
if(Func.isBlank(zdAssortId)){
zdAssortId=ZdAssortConfig.getOtherAssortId();
}
Node inpatientNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); Node inpatientNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension");
String inpatientNo = inpatientNoNode.getNodeValue(); String inpatientNo = inpatientNoNode.getNodeValue();
@ -344,11 +358,11 @@ public class SdryReportServerImpl implements IReportServer {
String eafNo = eafNoNode.getNodeValue(); String eafNo = eafNoNode.getNodeValue();
String serialnum = reportFlag + "@" + eafNo; String serialnum = reportFlag + "@" + eafNo;
Node assortIdNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); // Node assortIdNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName");
String assortId = assortIdNode.getNodeValue(); // String assortId = assortIdNode.getNodeValue();
//
Node sysFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); // Node sysFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName");
String sysFlag = sysFlagNode.getNodeValue(); // String sysFlag = sysFlagNode.getNodeValue();
Node fileTitleNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); Node fileTitleNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName");
String fileTitle = fileTitleNode.getNodeValue(); String fileTitle = fileTitleNode.getNodeValue();
@ -358,13 +372,14 @@ public class SdryReportServerImpl implements IReportServer {
ReportDto reportDto = new ReportDto(); ReportDto reportDto = new ReportDto();
reportDto.setReportSn(reportFlag);
reportDto.setAdmisstimes(admissTimes); reportDto.setAdmisstimes(admissTimes);
reportDto.setInpatientNo(inpatientNo); reportDto.setInpatientNo(inpatientNo);
reportDto.setSerialnum(serialnum); reportDto.setSerialnum(serialnum);
reportDto.setFileTitle(fileTitle); reportDto.setFileTitle(fileTitle);
reportDto.setDownUrl(downUrl); reportDto.setDownUrl(downUrl);
reportDto.setAssortId(assortId); reportDto.setAssortId(zdAssortId);
reportDto.setSysFlag(sysFlag); reportDto.setSysFlag(sender);
reportDto.setFileSource("1"); reportDto.setFileSource("1");
reportDto.setFilestoragetype("1"); reportDto.setFilestoragetype("1");
return reportDto; return reportDto;

@ -55,7 +55,6 @@ sdry:
report-query-url: report-query-url:
# lis检验报告地址 和文件分段 # lis检验报告地址 和文件分段
lis: lis:
assortId: lis
collectorId: 4 collectorId: 4
url: http://127.0.0.1:9311/report/makeup/lisTest url: http://127.0.0.1:9311/report/makeup/lisTest
action: lisac action: lisac
@ -63,7 +62,6 @@ sdry:
interval: 1000 interval: 1000
# 检查报告地址 # 检查报告地址
inspect: inspect:
assortId: inspect
collectorId: 3 collectorId: 3
url: http://127.0.0.1:9311/report/makeup/inspectTest url: http://127.0.0.1:9311/report/makeup/inspectTest
action: inspectac action: inspectac

Loading…
Cancel
Save