diff --git a/data-config/sdry-report-config.xml b/data-config/sdry-report-config.xml deleted file mode 100644 index d74c2a3..0000000 --- a/data-config/sdry-report-config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - /Request/Msg/INHOSP_INDEX_NO - - /Request/Msg/INHOSP_NO - - /Request/Msg/INHOSP_NUM - - /Request/Msg/UNIQUE_FILE - - /Request/Msg/FILE_NAME - - /Request/Msg/PDF_PATH - - /Request/Msg/TABLE_TYPE - - - - /Request/Msg/TABLE_TYPE - - - - - \ No newline at end of file diff --git a/script/服务迭代sql.sql b/script/服务迭代sql.sql new file mode 100644 index 0000000..ee533ee --- /dev/null +++ b/script/服务迭代sql.sql @@ -0,0 +1,24 @@ +#-- 服务接收报告消息保存数据--# +USE `docus_archivefile`; +CREATE TABLE `af_report_record` ( + `task_id` bigint(19) NOT NULL COMMENT 'af_collect_task 主键id', + `inpatient_no` varchar(50) DEFAULT NULL COMMENT '住院号', + `jzh` varchar(50) DEFAULT NULL COMMENT '住院流水号,记账号', + `admiss_times` int(11) DEFAULT NULL COMMENT '住院次数', + `down_url` varchar(2048) DEFAULT NULL COMMENT '下载地址,多个使用| 分隔', + `down_type` int(11) DEFAULT NULL COMMENT '下载路径类型 1:url,2:base64,3:url base64,4:共享文件,5:本地文件base64', + `state` int(11) DEFAULT NULL COMMENT '状态 0 未开始,可用于补偿,1 已发送下载', + `serialnum` varchar(200) DEFAULT NULL COMMENT '文件唯一标识', + `sysflag` varchar(50) DEFAULT NULL COMMENT '文件来源 采集系统', + `zd_assort_id` varchar(200) DEFAULT NULL COMMENT '文件分段id', + `create_time` datetime DEFAULT NULL COMMENT '记录创建时间', + `update_time` datetime DEFAULT NULL COMMENT '记录更新时间', + `file_name` varchar(255) DEFAULT NULL COMMENT '文件名称', + `patient_id` varchar(50) DEFAULT NULL COMMENT '病案主键', + PRIMARY KEY (`task_id`), + KEY `idx_af_report_record_patientid` (`patient_id`) USING BTREE, + KEY `idx_af_report_record_inpatient_no` (`inpatient_no`) USING BTREE, + KEY `idx_af_report_record_jzh` (`jzh`) USING BTREE, + KEY `idx_af_report_record_state` (`state`) USING BTREE, + KEY `idx_af_report_record_sysflag` (`sysflag`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件上报接收记录'; \ No newline at end of file diff --git a/src/main/java/com/docus/server/report/config/ApplicationBusinessConfig.java b/src/main/java/com/docus/server/report/config/ApplicationBusinessConfig.java index b359004..c4d05fd 100644 --- a/src/main/java/com/docus/server/report/config/ApplicationBusinessConfig.java +++ b/src/main/java/com/docus/server/report/config/ApplicationBusinessConfig.java @@ -1,11 +1,17 @@ package com.docus.server.report.config; +import lombok.Getter; +import lombok.Setter; import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; /** * 应用业务配置 * @author wyb */ +@Component +@Getter +@Setter public class ApplicationBusinessConfig { @Value("${docus.report.downurl:}") private String downUrl; diff --git a/src/main/java/com/docus/server/report/dto/ReportDownDto.java b/src/main/java/com/docus/server/report/dto/ReportDownDto.java index 938d506..d61edaa 100644 --- a/src/main/java/com/docus/server/report/dto/ReportDownDto.java +++ b/src/main/java/com/docus/server/report/dto/ReportDownDto.java @@ -1,5 +1,6 @@ package com.docus.server.report.dto; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,12 +14,17 @@ public class ReportDownDto { @ApiModelProperty(value = "采集器ip") private String ip; - @ApiModelProperty(value = "文件信息") - private List scanfiles; + @ApiModelProperty(value = "分类id") + private String assortid; + @ApiModelProperty(value = "患者信息") private ReportDownPatientDto patient; - @ApiModelProperty(value = "分类id") - private String assortid; + @ApiModelProperty(value = "文件信息") + private List scanfiles; -} + @ApiModelProperty(value = "扫描用户代码") + private String scanusercode; + @ApiModelProperty(value = "扫描用户名称") + private String scanusername; +} \ No newline at end of file diff --git a/src/main/java/com/docus/server/report/dto/ReportDownPatientDto.java b/src/main/java/com/docus/server/report/dto/ReportDownPatientDto.java index 0bac9e4..b187a0d 100644 --- a/src/main/java/com/docus/server/report/dto/ReportDownPatientDto.java +++ b/src/main/java/com/docus/server/report/dto/ReportDownPatientDto.java @@ -7,4 +7,20 @@ import lombok.Data; public class ReportDownPatientDto { @ApiModelProperty(value = "记帐号") private String jzh; + @ApiModelProperty(value = "住院次数,记帐号重复则加这个参数,无则Null") + private Integer admisstimes; + @ApiModelProperty(value = "病案主键,如有传则使用,无则使用jzh") + private String patientid; + @ApiModelProperty(value = "病案号") + private String inpatientno; + + @ApiModelProperty(value = "物理存储位置,有则传") + private String storagelocation; + + public ReportDownPatientDto(ReportDto reportDto) { + this.patientid = reportDto.getPatientId(); + this.jzh = reportDto.getJzh(); + this.admisstimes = reportDto.getAdmisstimes(); + this.inpatientno = reportDto.getInpatientNo(); + } } diff --git a/src/main/java/com/docus/server/report/dto/ReportDownScanFileDto.java b/src/main/java/com/docus/server/report/dto/ReportDownScanFileDto.java index ec5682a..ec3a34f 100644 --- a/src/main/java/com/docus/server/report/dto/ReportDownScanFileDto.java +++ b/src/main/java/com/docus/server/report/dto/ReportDownScanFileDto.java @@ -5,20 +5,36 @@ import lombok.Data; @Data public class ReportDownScanFileDto { + @ApiModelProperty(value = "任务id(如无效任务id,则不更新任务表数据)") + private Long taskid; @ApiModelProperty(value = "文件标题") private String filetitle; @ApiModelProperty(value = "采集类型(文件来源 1:采集器;2:扫描生产软件)") private int filesource; @ApiModelProperty(value = "下载类型(1:服务器本地;2:ftp服务器;3:共享文件夹)") private int filestoragetype; + @ApiModelProperty(value = "文件类型(1:url,2:base64,3:url base64,4:共享文件,5:本地文件base64)") + private int filetype=1; @ApiModelProperty(value = "下载地址") private String downurl; - @ApiModelProperty(value = "档案信息") - private String recordid; - @ApiModelProperty("采集流水号") + // @ApiModelProperty(value = "档案信息") +// private String recordid; + @ApiModelProperty(value = "采集流水号") private String serialnum; - @ApiModelProperty(value = "任务id") - private Long taskid; - @ApiModelProperty("文件类型(1:url,2:base64)") - private Integer filetype = 1; + + @ApiModelProperty(value = "排序日期") + private String sortdate; + + @ApiModelProperty(value = "是否作废 : 0:否 不作废,1:是 作废") + private int cancel=0; + + public ReportDownScanFileDto(ReportDto reportDto) { + this.taskid=reportDto.getTaskId(); + this.filetitle=reportDto.getFileTitle(); + this.filesource=Integer.parseInt(reportDto.getFileSource()); + this.filestoragetype=Integer.parseInt(reportDto.getFilestoragetype()); + this.filetype=reportDto.getDowntype(); + this.downurl=reportDto.getDownUrl(); + this.serialnum=reportDto.getSerialnum(); + } } diff --git a/src/main/java/com/docus/server/report/dto/ReportDto.java b/src/main/java/com/docus/server/report/dto/ReportDto.java index 0cf01d3..2b74c3e 100644 --- a/src/main/java/com/docus/server/report/dto/ReportDto.java +++ b/src/main/java/com/docus/server/report/dto/ReportDto.java @@ -52,7 +52,17 @@ public class ReportDto { private String filestoragetype; /** - * 下载对应任务id + * 下载对应任务id ,接收处理 */ private Long taskId; + + /** + * 业务病案主键 + */ + private String patientId; + + /** + * 下载路径类型 1:url,2:base64,3:url base64,4:共享文件,5:本地文件base64 + */ + private Integer downtype=1; } diff --git a/src/main/java/com/docus/server/report/entity/AfCollectTask.java b/src/main/java/com/docus/server/report/entity/AfCollectTask.java index a64d76e..f9cc8a8 100644 --- a/src/main/java/com/docus/server/report/entity/AfCollectTask.java +++ b/src/main/java/com/docus/server/report/entity/AfCollectTask.java @@ -32,8 +32,6 @@ public class AfCollectTask implements Serializable { @ApiModelProperty(value = "病案主键") private String patientId; - - @ApiModelProperty(value = "来源 1护理文书,2 电子病历,3 Pacs检查,4心电图,5手麻系统,6 Lis检验,7病案首页,8长临医嘱") private String sysflag; diff --git a/src/main/java/com/docus/server/report/entity/AfReportRecord.java b/src/main/java/com/docus/server/report/entity/AfReportRecord.java new file mode 100644 index 0000000..676fac1 --- /dev/null +++ b/src/main/java/com/docus/server/report/entity/AfReportRecord.java @@ -0,0 +1,103 @@ +package com.docus.server.report.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.docus.server.report.dto.ReportDto; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 上报记录保存表 + */ +@Data +public class AfReportRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * af_collect_task 主键id + */ + private Long taskId; + + /** + * 住院号 + */ + private String inpatientNo; + + /** + * 住院流水号,记账号 + */ + private String jzh; + + /** + * 住院次数 + */ + private Integer admissTimes; + + /** + * 下载地址,多个使用 | 分隔 + */ + private String downUrl; + + /** + * 下载路径类型 1:url,2:base64,3:url base64,4:共享文件,5:本地文件base64 + */ + 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 patientId; + + + public AfReportRecord() { + } + public AfReportRecord(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(); + } +} \ No newline at end of file diff --git a/src/main/java/com/docus/server/report/listener/ReportDownListener.java b/src/main/java/com/docus/server/report/listener/ReportDownListener.java index 8ad13b5..d9142cc 100644 --- a/src/main/java/com/docus/server/report/listener/ReportDownListener.java +++ b/src/main/java/com/docus/server/report/listener/ReportDownListener.java @@ -1,19 +1,77 @@ package com.docus.server.report.listener; +import cn.hutool.core.net.Ipv4Util; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; +import com.docus.core.util.Func; +import com.docus.server.report.config.ApplicationBusinessConfig; +import com.docus.server.report.dto.ReportDownDto; +import com.docus.server.report.dto.ReportDownPatientDto; +import com.docus.server.report.dto.ReportDownScanFileDto; +import com.docus.server.report.dto.ReportDto; import com.docus.server.report.event.ReportDownEvent; +import com.docus.server.report.mapper.AfReportRecordMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * 上报下载监听 * @author wyb */ @Component +@Slf4j public class ReportDownListener { + @Resource + private ApplicationBusinessConfig applicationBusinessConfig; + + @Resource + private AfReportRecordMapper afReportRecordMapper; + @EventListener - @Async + @Async("threadPoolExecutor") public void reportDown(ReportDownEvent reportDownEvent){ + ReportDto reportDto = reportDownEvent.getReportDto(); + // 组织基础信息数据 + ReportDownPatientDto reportDownPatientDto = new ReportDownPatientDto(reportDto); + + // 组织文件数据 + List reportDownScanFileDtos = new ArrayList<>(5); + ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto(reportDto); + reportDownScanFileDtos.add(reportDownScanFileDto); + + // 组织下载数据,基础信息和文件数据 + ReportDownDto reportDownDto = new ReportDownDto(); + reportDownDto.setAssortid(reportDto.getAssortId()); + reportDownDto.setCollectorid(reportDto.getSysFlag()); + reportDownDto.setScanusercode("admin"); + reportDownDto.setScanusername("admin"); + reportDownDto.setPatient(reportDownPatientDto); + reportDownDto.setScanfiles(reportDownScanFileDtos); + // 下面是调用下载服务 + String requestParam = JSON.toJSONString(reportDownDto); + try { + HttpRequest post = HttpUtil.createPost(applicationBusinessConfig.getDownUrl()); + post.timeout(5*1000); + post.header("Content-Type","application/json; charset=utf-8"); + post.body(requestParam); + HttpResponse response = post.execute(); + String respBody = response.body(); + log.info("调用下载服务成功,响应参数:{}",respBody); + afReportRecordMapper.updateStateByTaskId(reportDto.getTaskId()); + }catch (Exception e){ + log.error("调用下载服务失败:地址为:"+applicationBusinessConfig.getDownUrl()+" 参数为 : "+requestParam,e); + } } } diff --git a/src/main/java/com/docus/server/report/mapper/AfCollectTaskMapper.java b/src/main/java/com/docus/server/report/mapper/AfCollectTaskMapper.java index 8922c04..f1545e6 100644 --- a/src/main/java/com/docus/server/report/mapper/AfCollectTaskMapper.java +++ b/src/main/java/com/docus/server/report/mapper/AfCollectTaskMapper.java @@ -1,5 +1,8 @@ package com.docus.server.report.mapper; +import com.docus.server.report.entity.AfCollectTask; +import org.apache.ibatis.annotations.Param; + /** * 任务采集表mapper * @author wyb @@ -8,4 +11,17 @@ package com.docus.server.report.mapper; public interface AfCollectTaskMapper { + /** + * 保存任务 + * @param afCollectTask 采集任务 + * @return 数据库操作结果 + */ + int saveTask(@Param("task") AfCollectTask afCollectTask); + + /** + * 根据任务主键查询任务 + * @param taskId 任务主键 + * @return 任务信息 + */ + AfCollectTask getTaskById(@Param("id") Long taskId); } diff --git a/src/main/java/com/docus/server/report/mapper/AfReportRecordMapper.java b/src/main/java/com/docus/server/report/mapper/AfReportRecordMapper.java new file mode 100644 index 0000000..c6a3abc --- /dev/null +++ b/src/main/java/com/docus/server/report/mapper/AfReportRecordMapper.java @@ -0,0 +1,46 @@ +package com.docus.server.report.mapper; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.docus.server.report.entity.AfReportRecord; +import lombok.Data; +import org.apache.ibatis.annotations.Param; + +import java.io.Serializable; + +/** + * 上报记录保存表 + * @author wyb + */ +public interface AfReportRecordMapper { + /** + * 保存报告推送记录 + * @param afReportRecord 报告推送记录 + * @return 数据库操作结果 + */ + int saveRecord(@Param("reportRecord") AfReportRecord afReportRecord); + + /** + * 根据文件唯一号 住院号 住院次数 系统标识 得到唯一推送记录 + * @param serialnum 报告唯一号 + * @param inpatientNo 住院号 + * @param admisstimes 住院次数 + * @param sysFlag 系统标识 + * @return 报告推送记录 + */ + AfReportRecord getRecordBySerialnumAndInpatientNoAndSysFlag(@Param("serialnum") String serialnum, @Param("inpatientNo")String inpatientNo,@Param("admisstimes") Integer admisstimes, @Param("sysFlag")String sysFlag); + + /** + * 更新报告推送 主要更新 下载地址,下载类型,文件名称 + * @param afReportRecord 报告推送记录 + * @return 数据库操作结果 + */ + int updateRecordByTaskId(@Param("reportRecord")AfReportRecord afReportRecord); + + /** + * 更新记录的状态 + * @param taskId 任务id + * @return 数据库操作结果 + */ + int updateStateByTaskId(@Param("taskId") Long taskId); +} \ No newline at end of file diff --git a/src/main/java/com/docus/server/report/mapper/TBasicMapper.java b/src/main/java/com/docus/server/report/mapper/TBasicMapper.java index e0512ff..6768589 100644 --- a/src/main/java/com/docus/server/report/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/report/mapper/TBasicMapper.java @@ -3,6 +3,7 @@ package com.docus.server.report.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.docus.server.report.entity.TBasic; +import org.apache.ibatis.annotations.Param; /** *

@@ -14,4 +15,11 @@ import com.docus.server.report.entity.TBasic; */ public interface TBasicMapper{ + /** + * 根据住院号和住院次数查询业务系统中病案主键 + * @param inpatientNo 住院号 + * @param admissTimes 住院次数 + * @return 病案主键 + */ + String getPatientIdByInpatientNoAndAdminssTimes(@Param("inpatientNo") String inpatientNo,@Param("adminssTimes") Integer admissTimes); } diff --git a/src/main/java/com/docus/server/report/service/impl/ReportServiceImpl.java b/src/main/java/com/docus/server/report/service/impl/ReportServiceImpl.java index bfe91ab..2c00cbb 100644 --- a/src/main/java/com/docus/server/report/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/docus/server/report/service/impl/ReportServiceImpl.java @@ -1,14 +1,21 @@ package com.docus.server.report.service.impl; +import com.docus.core.util.Func; +import com.docus.infrastructure.redis.service.IdService; import com.docus.server.report.dto.ReportDto; +import com.docus.server.report.entity.AfCollectTask; +import com.docus.server.report.entity.AfReportRecord; import com.docus.server.report.event.ReportDownEvent; +import com.docus.server.report.mapper.AfCollectTaskMapper; +import com.docus.server.report.mapper.AfReportRecordMapper; +import com.docus.server.report.mapper.TBasicMapper; import com.docus.server.report.service.ReportService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; +import javax.annotation.Resource; + /** * 报告服务实现类 * @author wyb @@ -17,12 +24,66 @@ import org.springframework.stereotype.Service; @Service public class ReportServiceImpl implements ReportService { - @Autowired + @Resource private ApplicationContext applicationContext; + @Resource + private AfCollectTaskMapper collectTaskMapper; + @Resource + private AfReportRecordMapper afReportRecordMapper; + @Resource + private TBasicMapper tBasicMapper; + @Resource + private IdService idService; @Override public void report(ReportDto reportDto) { + String patientId=null; + try { + // 如果出现多条出错的情况,还是得保存收到的信息,人工干预处理 + patientId=tBasicMapper.getPatientIdByInpatientNoAndAdminssTimes(reportDto.getInpatientNo(),reportDto.getAdmisstimes()); + }catch (Exception ex){ + log.error("查询病案主键出错了",ex); + } + // 不验证数据,始终保存收到的信息 + AfReportRecord afReportRecord = afReportRecordMapper.getRecordBySerialnumAndInpatientNoAndSysFlag(reportDto.getSerialnum(),reportDto.getInpatientNo(),reportDto.getAdmisstimes(),reportDto.getSysFlag()); + if(afReportRecord==null){ + long id = idService.getDateSeq(); + afReportRecord = new AfReportRecord(reportDto); + afReportRecord.setTaskId(id); + afReportRecord.setPatientId(patientId); + afReportRecordMapper.saveRecord(afReportRecord); + }else { + // 更新 主要更新 url + afReportRecord.setDownUrl(reportDto.getDownUrl()); + afReportRecord.setDownType(reportDto.getDowntype()); + afReportRecord.setFileName(reportDto.getFileTitle()); + afReportRecord.setPatientId(patientId); + afReportRecordMapper.updateRecordByTaskId(afReportRecord); + } + // 不使用事务,不需要回滚上面的保存 + // 根据记录中的任务id,查询是否需要新增任务 + if(Func.isBlank(patientId)){ + log.warn("病案号:{},住院次数:{} 未找到病案基础数据,暂不进行下载任务!",reportDto.getInpatientNo(),reportDto.getAdmisstimes()); + return; + } + // 判断是否需要保存任务 + AfCollectTask afCollectTask=collectTaskMapper.getTaskById(afReportRecord.getTaskId()); + if(afCollectTask==null){ + afCollectTask=new AfCollectTask(); + afCollectTask.setId(afReportRecord.getTaskId()); + afCollectTask.setC1(reportDto.getSerialnum()); + afCollectTask.setC2(reportDto.getFileTitle()); + afCollectTask.setC3(reportDto.getJzh()); + afCollectTask.setPatientId(patientId); + afCollectTask.setSysflag(reportDto.getSysFlag()); + afCollectTask.setState("0"); + afCollectTask.setPatientId(patientId); + collectTaskMapper.saveTask(afCollectTask); + } + // 都成功后发布下载事件 + reportDto.setTaskId(afReportRecord.getTaskId()); + reportDto.setPatientId(patientId); applicationContext.publishEvent(new ReportDownEvent(reportDto)); } } diff --git a/src/main/java/com/docus/server/report/webservice/IReportServer.java b/src/main/java/com/docus/server/report/webservice/IReportServer.java index 853f9ee..99cc0ca 100644 --- a/src/main/java/com/docus/server/report/webservice/IReportServer.java +++ b/src/main/java/com/docus/server/report/webservice/IReportServer.java @@ -24,15 +24,15 @@ public interface IReportServer { String pushICUReport(String icuReportMessage); /** - * 接收检查检验报告的信息 - 新增 - * @param inspectionReportMessage 检查检验报告信息 - 新增 + * 接收检查报告的信息 - 新增 + * @param inspectionReportMessage 检查报告信息 - 新增 * @return 成功或者异常信息 */ String pushAddInspectionReport(String inspectionReportMessage); /** - * 接收检查检验报告的信息 - 更新 - * @param inspectionReportMessage 检查检验报告信息 -更新 + * 接收检查报告的信息 - 更新 + * @param inspectionReportMessage 检查报告信息 -更新 * @return 成功或者异常信息 */ String pushUpdateInspectionReport(String inspectionReportMessage); diff --git a/src/main/java/com/docus/server/report/webservice/impl/SdryReportServerImpl.java b/src/main/java/com/docus/server/report/webservice/impl/SdryReportServerImpl.java index 8477272..c8a4b55 100644 --- a/src/main/java/com/docus/server/report/webservice/impl/SdryReportServerImpl.java +++ b/src/main/java/com/docus/server/report/webservice/impl/SdryReportServerImpl.java @@ -1,20 +1,23 @@ package com.docus.server.report.webservice.impl; import com.alibaba.fastjson.JSONObject; +import com.docus.core.util.DateUtil; import com.docus.core.util.Func; import com.docus.infrastructure.core.exception.BaseException; import com.docus.server.report.dto.ReportDto; import com.docus.server.report.service.ReportService; +import com.docus.server.report.util.IdUtil; import com.docus.server.report.util.JSXMLResult; import com.docus.server.report.util.TableJsonRead; import com.docus.server.report.util.XmlUtil; import com.docus.server.report.webservice.IReportServer; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; +import javax.annotation.Resource; +import java.util.Date; + /** * @author wyb * @date 2023年3月3日13:42:36 @@ -23,7 +26,7 @@ import org.w3c.dom.Node; @Slf4j public class SdryReportServerImpl implements IReportServer { - @Autowired + @Resource private ReportService reportService; @Override @@ -36,6 +39,7 @@ public class SdryReportServerImpl implements IReportServer { Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); msgId = msgNode.getTextContent(); ReportDto reportDto = getReportDtoByJSXML(xmlUtil); + verifyReportDto(reportDto); reportService.report(reportDto); return JSXMLResult.success(msgId); } catch (BaseException baseException) { @@ -47,18 +51,6 @@ public class SdryReportServerImpl implements IReportServer { } } - public static void main(String[] args) { - TableJsonRead jsonRead = new TableJsonRead(); - JSONObject jsonObject = jsonRead.Read("data-config", "js-table-type.json", JSONObject.class); - String jsReportConfigXml = jsonRead.ReadContent("data-config", "js-report-config.xml"); - XmlUtil of = XmlUtil.of(jsReportConfigXml); - Node node = of.getNode("/REPORT/ASSORT_ID"); - System.out.println(node.getTextContent()); - System.out.println(node.getNodeValue()); - NamedNodeMap attributes = node.getAttributes(); - System.out.println(attributes.getNamedItem("value").getNodeValue()); - - } /** * 嘉时自定义接收接口使用,从xml工具读取返回文件上报需要的数据 @@ -72,48 +64,48 @@ public class SdryReportServerImpl implements IReportServer { String jsReportConfigXml = jsonRead.ReadContent("data-config", "js-report-config.xml"); XmlUtil configXmlUtil = XmlUtil.of(jsReportConfigXml); - Node inpatientNoXPathNode = configXmlUtil.getNode("/REPORT/INPATIENT_NO"); - String inpatientNoXPath = inpatientNoXPathNode.getTextContent(); - Node inpatientNoNode = xmlUtil.getNode(inpatientNoXPath); + Node inpatientNoXpathNode = configXmlUtil.getNode("/REPORT/INPATIENT_NO"); + String inpatientNoXpath = inpatientNoXpathNode.getTextContent(); + Node inpatientNoNode = xmlUtil.getNode(inpatientNoXpath); String inpatientNo = inpatientNoNode.getTextContent(); - Node jzhXPathNode = configXmlUtil.getNode("/REPORT/JZH"); - String jzhXPath = jzhXPathNode.getTextContent(); - Node jzhNode = xmlUtil.getNode(jzhXPath); + Node jzhXpathNode = configXmlUtil.getNode("/REPORT/JZH"); + String jzhXpath = jzhXpathNode.getTextContent(); + Node jzhNode = xmlUtil.getNode(jzhXpath); String jzh = jzhNode.getTextContent(); - Node admissTimesXPathNode = configXmlUtil.getNode("/REPORT/ADMISS_TIMES"); - String admissTimesXPath = admissTimesXPathNode.getTextContent(); - Node admissTimesNode = xmlUtil.getNode(admissTimesXPath); + Node admissTimesXpathNode = configXmlUtil.getNode("/REPORT/ADMISS_TIMES"); + String admissTimesXpath = admissTimesXpathNode.getTextContent(); + Node admissTimesNode = xmlUtil.getNode(admissTimesXpath); Integer admissTimes = Integer.valueOf(admissTimesNode.getTextContent()); - Node serialnumXPathNode = configXmlUtil.getNode("/REPORT/SERIALNUM"); - String serialnumXPath = serialnumXPathNode.getTextContent(); - Node serialnumNode = xmlUtil.getNode(serialnumXPath); + Node serialnumXpathNode = configXmlUtil.getNode("/REPORT/SERIALNUM"); + String serialnumXpath = serialnumXpathNode.getTextContent(); + Node serialnumNode = xmlUtil.getNode(serialnumXpath); String serialnum = serialnumNode.getTextContent(); - Node fileTitleXPathNode = configXmlUtil.getNode("/REPORT/FILE_TITLE"); - String fileTitleXPath = fileTitleXPathNode.getTextContent(); - Node fileTitleNode = xmlUtil.getNode(fileTitleXPath); + Node fileTitleXpathNode = configXmlUtil.getNode("/REPORT/FILE_TITLE"); + String fileTitleXpath = fileTitleXpathNode.getTextContent(); + Node fileTitleNode = xmlUtil.getNode(fileTitleXpath); String fileTitle = fileTitleNode.getTextContent(); - Node downUrlXPathNode = configXmlUtil.getNode("/REPORT/DOWNURL"); - String downUrlXPath = downUrlXPathNode.getTextContent(); - Node downUrlNode = xmlUtil.getNode(downUrlXPath); + Node downUrlXpathNode = configXmlUtil.getNode("/REPORT/DOWNURL"); + String downUrlXpath = downUrlXpathNode.getTextContent(); + Node downUrlNode = xmlUtil.getNode(downUrlXpath); String downUrl = downUrlNode.getTextContent(); - Node tableTypeXPathNode = configXmlUtil.getNode("/REPORT/TABLE_TYPE"); - String tableTypeXPath = tableTypeXPathNode.getTextContent(); - Node tableTypeNode = xmlUtil.getNode(tableTypeXPath); + Node tableTypeXpathNode = configXmlUtil.getNode("/REPORT/TABLE_TYPE"); + String tableTypeXpath = tableTypeXpathNode.getTextContent(); + Node tableTypeNode = xmlUtil.getNode(tableTypeXpath); String tableType = tableTypeNode.getTextContent(); - Node assortIdXPathNode = configXmlUtil.getNode("/REPORT/ASSORT_ID"); - String assortIdXPath = assortIdXPathNode.getTextContent(); + Node assortIdXpathNode = configXmlUtil.getNode("/REPORT/ASSORT_ID"); + String assortIdXpath = assortIdXpathNode.getTextContent(); String assortId; - if (Func.isBlank(assortIdXPath)) { + if (Func.isBlank(assortIdXpath)) { // 如果没有配置 取value 属性,如果value也未配置 取 tableType 对应的json配置,最终方案默认 other 分段 - Node assortIdValueNode = assortIdXPathNode.getAttributes().getNamedItem("value"); + Node assortIdValueNode = assortIdXpathNode.getAttributes().getNamedItem("value"); if (Func.isEmpty(assortIdValueNode)) { assortId = assortIdValueNode.getNodeValue(); } else { @@ -123,20 +115,20 @@ public class SdryReportServerImpl implements IReportServer { assortId = tableTypeJson.getString("other"); } } else { - Node assortIdNode = xmlUtil.getNode(assortIdXPath); + Node assortIdNode = xmlUtil.getNode(assortIdXpath); assortId = assortIdNode.getTextContent(); } - Node sysFlagXPathNode = configXmlUtil.getNode("/REPORT/SYSTEM_FLAG"); - String sysFlagXPath = sysFlagXPathNode.getTextContent(); - Node sysFlagNode = xmlUtil.getNode(sysFlagXPath); + Node sysFlagXpathNode = configXmlUtil.getNode("/REPORT/SYSTEM_FLAG"); + String sysFlagXpath = sysFlagXpathNode.getTextContent(); + Node sysFlagNode = xmlUtil.getNode(sysFlagXpath); String sysFlag = sysFlagNode.getTextContent(); - Node fileSourceXPathNode = configXmlUtil.getNode("/REPORT/FILESOURCE"); - String fileSourceXPath = fileSourceXPathNode.getTextContent(); + Node fileSourceXpathNode = configXmlUtil.getNode("/REPORT/FILESOURCE"); + String fileSourceXpath = fileSourceXpathNode.getTextContent(); String fileSource; - if (Func.isBlank(fileSourceXPath)) { - Node fileSourceValueNode = fileSourceXPathNode.getAttributes().getNamedItem("value"); + if (Func.isBlank(fileSourceXpath)) { + Node fileSourceValueNode = fileSourceXpathNode.getAttributes().getNamedItem("value"); if (Func.isEmpty(fileSourceValueNode)) { fileSource = null; } else { @@ -144,16 +136,16 @@ public class SdryReportServerImpl implements IReportServer { } } else { - Node fileSourceNode = xmlUtil.getNode(fileSourceXPath); + Node fileSourceNode = xmlUtil.getNode(fileSourceXpath); fileSource = fileSourceNode.getTextContent(); } - Node fileStorageTypeXPathNode = configXmlUtil.getNode("/REPORT/FILE_STORAGE_TYPE"); - String fileStorageTypeXPath = fileStorageTypeXPathNode.getTextContent(); + Node fileStorageTypeXpathNode = configXmlUtil.getNode("/REPORT/FILE_STORAGE_TYPE"); + String fileStorageTypeXpath = fileStorageTypeXpathNode.getTextContent(); String fileStorageType; - if (Func.isBlank(fileStorageTypeXPath)) { - Node filestoragetypeValueNode = fileStorageTypeXPathNode.getAttributes().getNamedItem("value"); + if (Func.isBlank(fileStorageTypeXpath)) { + Node filestoragetypeValueNode = fileStorageTypeXpathNode.getAttributes().getNamedItem("value"); if (Func.isEmpty(filestoragetypeValueNode)) { fileStorageType = "1"; } else { @@ -161,7 +153,7 @@ public class SdryReportServerImpl implements IReportServer { } } else { - Node filestoragetypeNode = xmlUtil.getNode(fileStorageTypeXPath); + Node filestoragetypeNode = xmlUtil.getNode(fileStorageTypeXpath); fileStorageType = filestoragetypeNode.getTextContent(); } @@ -188,6 +180,7 @@ public class SdryReportServerImpl implements IReportServer { Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); msgId = msgNode.getTextContent(); ReportDto reportDto = getReportDtoByJSXML(xmlUtil); + verifyReportDto(reportDto); reportService.report(reportDto); return JSXMLResult.success(msgId); } catch (BaseException baseException) { @@ -201,37 +194,336 @@ public class SdryReportServerImpl implements IReportServer { @Override public String pushAddInspectionReport(String inspectionReportMessage) { - log.info("收到检查检验报告新增消息:{}", inspectionReportMessage); + log.info("收到检查报告新增消息:{}", inspectionReportMessage); + String msgId = ""; + String sender = ""; + String receiver = ""; try { XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); - Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); + 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(); + ReportDto reportDto = getReportDtoByInspectionInsert(xmlUtil); + verifyReportDto(reportDto); + reportService.report(reportDto); + return insertSuccess(msgId, sender, receiver); } catch (BaseException baseException) { log.error(baseException.getMessage(), baseException); - + return insertFailed(msgId, sender, receiver, baseException.getMessage()); } catch (Exception ex) { log.error(ex.getMessage(), ex); - + return insertFailed(msgId, sender, receiver, "系统错误!"); } - return null; } + @Override public String pushUpdateInspectionReport(String inspectionReportMessage) { - log.info("收到检查检验报告更新消息{}", inspectionReportMessage); + log.info("收到检查报告更新消息{}", inspectionReportMessage); + String msgId = ""; + String sender = ""; + String receiver = ""; try { XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); - Node msgNode = xmlUtil.getNode(""); - msgNode.getTextContent(); - + msgId = xmlUtil.getNode("/POOR_HIP1009/id/@extension").getNodeValue(); + sender = xmlUtil.getNode("/POOR_HIP1009/sender/device/id/item/@extension").getNodeValue(); + receiver = xmlUtil.getNode("/POOR_HIP1009/receiver/device/id/item/@extension").getNodeValue(); + ReportDto reportDto = getReportDtoByInspectionUpdate(xmlUtil); + verifyReportDto(reportDto); + reportService.report(reportDto); + return updateSuccess(msgId, sender, receiver); } catch (BaseException baseException) { log.error(baseException.getMessage(), baseException); - + return insertFailed(msgId, sender, receiver, baseException.getMessage()); } catch (Exception ex) { log.error(ex.getMessage(), ex); + return insertFailed(msgId, sender, receiver, "系统错误"); + } + + } + + /** + * 验证上报文件的信息 + * + * @param reportDto 上报文件的信息 + * @throws BaseException 验证不通过抛出业务异常 + */ + private void verifyReportDto(ReportDto reportDto) throws BaseException { + if (Func.isBlank(reportDto.getInpatientNo())) { + throw new BaseException("住院号不能为空!"); } - return null; + + if (Func.isEmpty(reportDto.getAdmisstimes()) && Func.isBlank(reportDto.getJzh())) { + throw new BaseException("当住院号与住院次数都为空时,住院流水号/记账号不能为空!"); + } + + if (Func.isBlank(reportDto.getFileTitle())) { + throw new BaseException("文件名不能为空!"); + } + if (Func.isBlank(reportDto.getDownUrl())) { + throw new BaseException("文件下载路径不能为空!"); + } + } + + public ReportDto getReportDtoByInspectionInsert(XmlUtil inspectionInsertXmlUtil) { + + Node inpatientNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); + String inpatientNo = inpatientNoNode.getNodeValue(); + + Node admissTimesNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); + Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); + + // 检查报告单号标识 + Node reportFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); + String reportFlag = reportFlagNode.getNodeValue(); + //电子申请单编号 + Node eafNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); + String eafNo = eafNoNode.getNodeValue(); + String serialnum = reportFlag + "@" + eafNo; + + Node assortIdNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); + String assortId = assortIdNode.getNodeValue(); + + Node sysFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); + String sysFlag = sysFlagNode.getNodeValue(); + + Node fileTitleNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); + String fileTitle = fileTitleNode.getNodeValue(); + + Node downUrlNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); + String downUrl = downUrlNode.getTextContent(); + + ReportDto reportDto = new ReportDto(); + reportDto.setAdmisstimes(admissTimes); + reportDto.setInpatientNo(inpatientNo); + reportDto.setSerialnum(serialnum); + reportDto.setFileTitle(fileTitle); + reportDto.setDownUrl(downUrl); + reportDto.setAssortId(assortId); + reportDto.setSysFlag(sysFlag); + reportDto.setFileSource("1"); + reportDto.setFilestoragetype("1"); + return reportDto; + } + + public ReportDto getReportDtoByInspectionUpdate(XmlUtil inspectionUpdateXmlUtil) { + Node inpatientNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); + String inpatientNo = inpatientNoNode.getNodeValue(); + + Node admissTimesNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); + Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); + + // 检查报告单号标识 + Node reportFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); + String reportFlag = reportFlagNode.getNodeValue(); + //电子申请单编号 + Node eafNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); + String eafNo = eafNoNode.getNodeValue(); + String serialnum = reportFlag + "@" + eafNo; + + Node assortIdNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); + String assortId = assortIdNode.getNodeValue(); + + Node sysFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); + String sysFlag = sysFlagNode.getNodeValue(); + + Node fileTitleNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); + String fileTitle = fileTitleNode.getNodeValue(); + + Node downUrlNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); + String downUrl = downUrlNode.getTextContent(); + + + ReportDto reportDto = new ReportDto(); + reportDto.setAdmisstimes(admissTimes); + reportDto.setInpatientNo(inpatientNo); + reportDto.setSerialnum(serialnum); + reportDto.setFileTitle(fileTitle); + reportDto.setDownUrl(downUrl); + reportDto.setAssortId(assortId); + reportDto.setSysFlag(sysFlag); + reportDto.setFileSource("1"); + reportDto.setFilestoragetype("1"); + return reportDto; + } + + /** + * 返回检查报告新增成功消息 + * + * @param msgId 消息id + * @param sender 发送路由 + * @param receiver 接收路由 + * @return 新增成功消息响应 + */ + public String insertSuccess(String msgId, String sender, String receiver) { + String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); + return "\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"; + } + + /** + * 返回检查报告插入失败响应消息 + * + * @param msgId 消息id + * @param sender 发送路由 + * @param receiver 接收路由 + * @return 检查报告新增失败响应消息 + */ + public String insertFailed(String msgId, String sender, String receiver, String failedMessage) { + String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); + return "\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"; + } + + /** + * 返回检查报告更新成功响应消息 + * + * @param msgId 消息id + * @param sender 发送路由 + * @param receiver 接收路由 + * @return 更新成功响应消息 + */ + public String updateSuccess(String msgId, String sender, String receiver) { + String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); + return "\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"; + } + + /** + * 检查报告更新失败响应 + * + * @param msgId 消息id + * @param sender 发送路由 + * @param receiver 接收路由 + * @param failedMessage 失败信息 + * @return 更新失败响应信息 + */ + public String updateFailed(String msgId, String sender, String receiver, String failedMessage) { + String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); + return "\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"; } } diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 9a46237..37a4528 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -4,7 +4,7 @@ spring: application: name: @artifactId@ profiles: - active: dev + active: test datasource: url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: docus diff --git a/src/main/resources/mapper/AfCollectTaskMapper.xml b/src/main/resources/mapper/AfCollectTaskMapper.xml index 668771c..bb4b4c1 100644 --- a/src/main/resources/mapper/AfCollectTaskMapper.xml +++ b/src/main/resources/mapper/AfCollectTaskMapper.xml @@ -3,5 +3,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + INSERT INTO `docus_archivefile`.`af_collect_task`(`id`, `patient_id`, `sysflag`, + `state`, `C1`,`C2`, `C3`) + VALUES (#{task.id}, #{task.patientId}, #{task.sysflag}, '0', #{task.C1}, #{task.C2}, #{task.C3}); + + diff --git a/src/main/resources/mapper/AfReportRecordMapper.xml b/src/main/resources/mapper/AfReportRecordMapper.xml new file mode 100644 index 0000000..39bd7da --- /dev/null +++ b/src/main/resources/mapper/AfReportRecordMapper.xml @@ -0,0 +1,40 @@ + + + + + + INSERT INTO `docus_archivefile`.`af_report_record`(`task_id`, `inpatient_no`, `jzh`, `admiss_times`, `down_url`, + `down_type`, `state`, `serialnum`, `sysflag`, `zd_assort_id`, + `create_time`, `update_time`, `file_name`,`patient_id`) + VALUES (#{reportRecord.taskId}, #{reportRecord.inpatientNo}, #{reportRecord.jzh}, #{reportRecord.admissTimes}, + #{reportRecord.downUrl}, #{reportRecord.downType}, 0, #{reportRecord.serialnum}, + #{reportRecord.zdAssortId}, #{reportRecord.zdAssortId}, now(), now(), #{reportRecord.fileName},#{reportRecord.patientId}); + + + update `docus_archivefile`.`af_report_record` + set `down_url`=#{reportRecord.downUrl}, + `down_type`=#{reportRecord.downType}, + `state`=0, + `file_name`=#{reportRecord.fileName}, + `patient_id`=#{reportRecord.patientId}, + `update_time`=now() + where `task_id` = #{reportRecord.taskId} + + + update `docus_archivefile`.`af_report_record` + set `state`= 1, + `update_time`=now() + where `task_id` = #{taskId} + + + diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 620124f..ea06ea3 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -4,4 +4,10 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/src/test/java/com/docus/server/report/webservice/impl/SdryReportServerImplTest.java b/src/test/java/com/docus/server/report/webservice/impl/SdryReportServerImplTest.java index 1c8ac33..a868445 100644 --- a/src/test/java/com/docus/server/report/webservice/impl/SdryReportServerImplTest.java +++ b/src/test/java/com/docus/server/report/webservice/impl/SdryReportServerImplTest.java @@ -2,6 +2,7 @@ package com.docus.server.report.webservice.impl; import com.docus.server.report.dto.ReportDto; import com.docus.server.report.util.XmlUtil; +import org.junit.Before; import org.junit.Test; /** @@ -9,10 +10,15 @@ import org.junit.Test; * @date 2023年3月3日13:42:36 */ public class SdryReportServerImplTest { + SdryReportServerImpl reportServer; + @Before + public void init(){ + this.reportServer = new SdryReportServerImpl(); + } @Test public void getReportDtoByJSXMLTest(){ - SdryReportServerImpl reportServer = new SdryReportServerImpl(); + XmlUtil xmlUtil = XmlUtil.of( "\n" + "\n" + @@ -43,4 +49,1028 @@ public class SdryReportServerImplTest { } + + @Test + public void getReportDtoByInspectionUpdateXMLTest(){ + XmlUtil updateUtil = XmlUtil.of("\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t黄杏婵\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t肾内科\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t3号楼5楼病区\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t

\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t主诉及病史:低血压后神志不清一小时 体查:双侧巴氏征阳性 既往史:糖尿病肾病、血液透析 其他检查:见检验单 临床诊断:急性脑血管意外\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t主诉及病史:低血压后神志不清一小时 体查:双侧巴氏征阳性 既往史:糖尿病肾病、血液透析 其他检查:见检验单 临床诊断:急性脑血管意外\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\tF\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\tDR\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t1. 心影较前增大,右肺门较前膨隆,原双肺渗出灶及双侧少量胸积液较前吸收,宜结合临床。 2. 主动脉硬化。 3. 右乳钙化灶。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t床边胸片\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\tnmol/L\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t对比2023-02-21前片:   双肺纹理增多稍粗,原双下肺斑片状模糊影较前吸收;右肺门较前膨隆,纵隔增宽。心影较前增大,左侧缘显示不清,主动脉弓部见钙化影。右侧膈面光滑,肋膈角锐利。右侧深静脉插管置于T4水平。右乳钙化灶。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t1. 心影较前增大,右肺门较前膨隆,原双肺渗出灶及双侧少量胸积液较前吸收,宜结合临床。 2. 主动脉硬化。 3. 右乳钙化灶。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t放射科\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t0436123\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\thttp://192.168.5.51/ClinicView/html/report.htm?exam_no=0002203361&report_no=1\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t0002203361-1.pdf\n" + + "\t\t\t\t\t\t\t\t\tpdf\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"); + System.out.println(reportServer.getReportDtoByInspectionUpdate(updateUtil)); + } + + + @Test + public void getReportDtoByInspectionInsertXMLTest(){ + XmlUtil insertUtil = XmlUtil.of("\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t曾惠贞\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t乳腺外科\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2号楼16楼东区\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t主诉及病史:乳腺癌术后复查 体查:乳腺癌术后复查 既往史:乳腺癌术后复查 其他检查:乳腺癌术后复查 临床诊断:乳腺癌术后复查\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t主诉及病史:乳腺癌术后复查 体查:乳腺癌术后复查 既往史:乳腺癌术后复查 其他检查:乳腺癌术后复查 临床诊断:乳腺癌术后复查\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\tF\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t磁共振\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t  1、双侧基底节区多发腔隙性脑梗塞。   2、脑萎缩。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\tMR1.5颅脑平扫\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\tnmol/L\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t  双侧基底节区见多发斑点状等T1稍长T2信号,FLAIR为高信号。双侧脑室系统扩张。脑沟脑裂部分增宽。中线结构居中。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t  1、双侧基底节区多发腔隙性脑梗塞。   2、脑萎缩。\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t核磁共振\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t南方医科大学顺德医院\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t
\n" + + "\t\t\t\t\t
\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\tMR053370\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\thttp://192.168.5.51/ClinicView/html/report.htm?exam_no=0002203448&report_no=1\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\t0002203448-1.pdf\n" + + "\t\t\t\t\t\t\t\t\tpdf\n" + + "\t\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\t\n" + + "\t\t\t\t\t\t\n" + + "\t\t\t\t\t\n" + + "\t\t\t\t
\n" + + "\t\t\t
\n" + + "\t\t
\n" + + "\t
\n" + + "
\n"); + System.out.println(reportServer.getReportDtoByInspectionInsert(insertUtil)); + } + }