|
|
|
@ -4,6 +4,7 @@ import com.docus.core.util.DateUtil;
|
|
|
|
|
import com.docus.core.util.Func;
|
|
|
|
|
import com.docus.infrastructure.core.exception.BaseException;
|
|
|
|
|
import com.docus.server.report.api.dto.ReportDto;
|
|
|
|
|
import com.docus.server.report.config.SdRyReportHandledConfig;
|
|
|
|
|
import com.docus.server.report.config.ZdAssortConfig;
|
|
|
|
|
import com.docus.server.report.service.ReportService;
|
|
|
|
|
import com.docus.server.report.util.IdUtil;
|
|
|
|
@ -223,8 +224,17 @@ public class SdryReportServerImpl implements IReportServer {
|
|
|
|
|
msgId = xmlUtil.getNode("/POOR_HIP1008/id/@extension").getNodeValue();
|
|
|
|
|
sender = xmlUtil.getNode("/POOR_HIP1008/sender/device/id/item/@extension").getNodeValue();
|
|
|
|
|
receiver = xmlUtil.getNode("/POOR_HIP1008/receiver/device/id/item/@extension").getNodeValue();
|
|
|
|
|
|
|
|
|
|
SdRyReportHandledConfig sdRyReportHandledConfig = new SdRyReportHandledConfig();
|
|
|
|
|
ReportDto reportDto = getReportDtoByInspectionInsert(xmlUtil);
|
|
|
|
|
String sysFlag = reportDto.getSysFlag();
|
|
|
|
|
if (sdRyReportHandledConfig.isNotHandled(sysFlag)) {
|
|
|
|
|
return insertSuccess(msgId, sender, receiver);
|
|
|
|
|
}
|
|
|
|
|
if(sdRyReportHandledConfig.isBlocking(sysFlag)){
|
|
|
|
|
reportDto.setDownUrl(null);
|
|
|
|
|
reportService.reportBuffer(reportDto);
|
|
|
|
|
return insertSuccess(msgId, sender, receiver);
|
|
|
|
|
}
|
|
|
|
|
verifyReportDto(reportDto);
|
|
|
|
|
reportService.report(reportDto);
|
|
|
|
|
return insertSuccess(msgId, sender, receiver);
|
|
|
|
@ -264,6 +274,123 @@ public class SdryReportServerImpl implements IReportServer {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String pdfUpload(String uploadMessage) {
|
|
|
|
|
log.info("收到pdf上传信息{}", uploadMessage);
|
|
|
|
|
String msgId = "";
|
|
|
|
|
String sender = "";
|
|
|
|
|
String receiver = "";
|
|
|
|
|
try {
|
|
|
|
|
XmlUtil xmlUtil = XmlUtil.of(uploadMessage);
|
|
|
|
|
msgId = xmlUtil.getNode("/POOR_HIP1166/id/@extension").getNodeValue();
|
|
|
|
|
sender = xmlUtil.getNode("/POOR_HIP1166/sender/device/id/item/@extension").getNodeValue();
|
|
|
|
|
receiver = xmlUtil.getNode("/POOR_HIP1166/receiver/device/id/item/@extension").getNodeValue();
|
|
|
|
|
ReportDto reportDto = getReportDtoByPdfUpload(xmlUtil);
|
|
|
|
|
reportService.reportBuffer(reportDto);
|
|
|
|
|
return uploadSuccess(msgId, sender, receiver);
|
|
|
|
|
} catch (BaseException baseException) {
|
|
|
|
|
log.error(baseException.getMessage(), baseException);
|
|
|
|
|
return uploadFailed(msgId, sender, receiver, baseException.getMessage());
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
log.error(ex.getMessage(), ex);
|
|
|
|
|
return uploadFailed(msgId, sender, receiver, "系统错误!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String uploadFailed(String msgId, String sender, String receiver, String message) {
|
|
|
|
|
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
|
|
|
|
|
return "<MCCI_IN000002UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:hl7-org:v3 ../multicacheschemas/MCCI_IN000002UV01.xsd\" xmlns=\"urn:hl7-org:v3\">\n" +
|
|
|
|
|
"\t<id root=\"2.16.156.10011.0\" extension=\""+IdUtil.standardUUID()+"\"/>\n" +
|
|
|
|
|
"\t<creationTime value=\""+createTime+"\"/>\n" +
|
|
|
|
|
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\" displayable=\"true\"/>\n" +
|
|
|
|
|
"\t<processingCode code=\"P\"/>\n" +
|
|
|
|
|
"\t<processingModeCode/>\n" +
|
|
|
|
|
"\t<acceptAckCode code=\"AL\"/>\n" +
|
|
|
|
|
"\t<receiver typeCode=\"RCV\">\n" +
|
|
|
|
|
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
|
|
|
|
|
"\t\t\t<id>\n" +
|
|
|
|
|
"\t\t\t\t<item root=\"2.16.156.10011.0.1.1\" extension=\""+receiver+"\"/>\n" +
|
|
|
|
|
"\t\t\t</id>\n" +
|
|
|
|
|
"\t\t</device>\n" +
|
|
|
|
|
"\t</receiver>\n" +
|
|
|
|
|
"\t<sender typeCode=\"SND\">\n" +
|
|
|
|
|
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
|
|
|
|
|
"\t\t\t<id>\n" +
|
|
|
|
|
"\t\t\t\t<item root=\"2.16.156.10011.0.1.2\" extension=\""+sender+"\"/>\n" +
|
|
|
|
|
"\t\t\t</id>\n" +
|
|
|
|
|
"\t\t</device>\n" +
|
|
|
|
|
"\t</sender>\n" +
|
|
|
|
|
"\t<acknowledgement typeCode=\"AE\">\n" +
|
|
|
|
|
"\t\t<!--请求消息 ID-->\n" +
|
|
|
|
|
"\t\t<targetMessage>\n" +
|
|
|
|
|
"\t\t\t<id root=\"2.16.156.10011.0\" extension=\""+msgId+"\"/>\n" +
|
|
|
|
|
"\t\t</targetMessage>\n" +
|
|
|
|
|
"\t\t<!--查询响应消息-->\n" +
|
|
|
|
|
"\t\t<acknowledgementDetail typeCode=\"I\">\n" +
|
|
|
|
|
"\t\t\t<text>\n" +
|
|
|
|
|
"\t\t\t\t<description value=\""+message+"\"/>\n" +
|
|
|
|
|
"\t\t\t</text>\n" +
|
|
|
|
|
"\t\t</acknowledgementDetail>\n" +
|
|
|
|
|
"\t</acknowledgement>\n" +
|
|
|
|
|
"</MCCI_IN000002UV01>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private String uploadSuccess(String msgId, String sender, String receiver) {
|
|
|
|
|
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
|
|
|
|
|
return "<MCCI_IN000002UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:hl7-org:v3 ../multicacheschemas/MCCI_IN000002UV01.xsd\" xmlns=\"urn:hl7-org:v3\">\n" +
|
|
|
|
|
"\t<id root=\"2.16.156.10011.0\" extension=\""+IdUtil.standardUUID()+"\"/>\n" +
|
|
|
|
|
"\t<creationTime value=\""+createTime+"\"/>\n" +
|
|
|
|
|
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\" displayable=\"true\"/>\n" +
|
|
|
|
|
"\t<processingCode code=\"P\"/>\n" +
|
|
|
|
|
"\t<processingModeCode/>\n" +
|
|
|
|
|
"\t<acceptAckCode code=\"AL\"/>\n" +
|
|
|
|
|
"\t<receiver typeCode=\"RCV\">\n" +
|
|
|
|
|
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
|
|
|
|
|
"\t\t\t<id>\n" +
|
|
|
|
|
"\t\t\t\t<item root=\"2.16.156.10011.0.1.1\" extension=\""+receiver+"\"/>\n" +
|
|
|
|
|
"\t\t\t</id>\n" +
|
|
|
|
|
"\t\t</device>\n" +
|
|
|
|
|
"\t</receiver>\n" +
|
|
|
|
|
"\t<sender typeCode=\"SND\">\n" +
|
|
|
|
|
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
|
|
|
|
|
"\t\t\t<id>\n" +
|
|
|
|
|
"\t\t\t\t<item root=\"2.16.156.10011.0.1.2\" extension=\""+sender+"\"/>\n" +
|
|
|
|
|
"\t\t\t</id>\n" +
|
|
|
|
|
"\t\t</device>\n" +
|
|
|
|
|
"\t</sender>\n" +
|
|
|
|
|
"\t<acknowledgement typeCode=\"AA\">\n" +
|
|
|
|
|
"\t\t<!--请求消息 ID-->\n" +
|
|
|
|
|
"\t\t<targetMessage>\n" +
|
|
|
|
|
"\t\t\t<id root=\"2.16.156.10011.0\" extension=\""+msgId+"\"/>\n" +
|
|
|
|
|
"\t\t</targetMessage>\n" +
|
|
|
|
|
"\t\t<!--查询响应消息-->\n" +
|
|
|
|
|
"\t\t<acknowledgementDetail typeCode=\"I\">\n" +
|
|
|
|
|
"\t\t\t<text>\n" +
|
|
|
|
|
"\t\t\t\t<description value=\"PDF新增报告上传服务处理成功\"/>\n" +
|
|
|
|
|
"\t\t\t</text>\n" +
|
|
|
|
|
"\t\t</acknowledgementDetail>\n" +
|
|
|
|
|
"\t</acknowledgement>\n" +
|
|
|
|
|
"</MCCI_IN000002UV01>\n";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ReportDto getReportDtoByPdfUpload(XmlUtil xmlUtil) {
|
|
|
|
|
// 检查报告单号标识
|
|
|
|
|
Node reportSnNode = xmlUtil.getNode("/POOR_HIP1166/controlActProcess/component/structuredBody/component[@displayName='文档描述信息']/section/entry/reportInfomation/reportSn/@extension");
|
|
|
|
|
String reportSn = reportSnNode.getNodeValue();
|
|
|
|
|
|
|
|
|
|
Node downUrlNode = xmlUtil.getNode("/POOR_HIP1166/controlActProcess/component/structuredBody/component[@displayName='文档描述信息']/section/entry/reportInfomation/reportPath/@extension");
|
|
|
|
|
String downUrl = downUrlNode.getTextContent();
|
|
|
|
|
|
|
|
|
|
ReportDto reportDto = new ReportDto();
|
|
|
|
|
reportDto.setReportSn(reportSn);
|
|
|
|
|
reportDto.setDowntype(1);
|
|
|
|
|
reportDto.setDownUrl(downUrl);
|
|
|
|
|
return reportDto;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 验证上报文件的信息
|
|
|
|
|
*
|
|
|
|
|