diff --git a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java index 5d2ed76..e006fff 100644 --- a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java +++ b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java @@ -3,16 +3,19 @@ package com.docus.demo.controller; import com.docus.demo.dto.SyncBasicDataDto; import com.docus.demo.dto.SyncFileDto; +import com.docus.demo.dto.UploadJpgFileParam; import com.docus.demo.entity.CommonResult; import com.docus.demo.facade.ISyncBasicDataService; import com.docus.demo.facade.ISyncBasicFileService; import com.docus.demo.facade.IWebService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Objects; @Api(value = "数据同步接口", tags = "数据同步接口") @RestController("/sync") @@ -58,6 +61,18 @@ public class SyncBasicDataController { } - + /** + * @description: 文件上传 + * @params: files + * @params: uploadBatchFileParam + * @author linjj + * @date: 2024/6/28 10:38 + */ + @ApiOperation("文件上传") + @PostMapping(value = "fileUploadJpg") + @ResponseBody + public CommonResult fileUploadJpg(@RequestPart("files") MultipartFile[] files, UploadJpgFileParam uploadJpgFileParam) { + return syncBasicFileService.fileUploadJpg(files,uploadJpgFileParam); + } } diff --git a/src/main/java/com/docus/demo/dto/FileUploadJpgDto.java b/src/main/java/com/docus/demo/dto/FileUploadJpgDto.java new file mode 100644 index 0000000..0e31675 --- /dev/null +++ b/src/main/java/com/docus/demo/dto/FileUploadJpgDto.java @@ -0,0 +1,60 @@ +package com.docus.demo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + + +@Data +public class FileUploadJpgDto { + + @ApiModelProperty(value = "住院号") + private String inpatientNo; + @ApiModelProperty(value = "出院时间") + private Date disDate; + @ApiModelProperty("文件展示标题") + private String fileTitle; + @ApiModelProperty("上传的文件文件名,用于multipartFile") + private String uploadFileName; + @ApiModelProperty("分段id") + private String assortId; + @ApiModelProperty("patientId") + private String patientId; + @ApiModelProperty("住院时间") + private Date admissDate; + @ApiModelProperty("性别") + private String sex; + @ApiModelProperty("姓名") + private String name; + @ApiModelProperty("住院次数") + private Integer admissTimes; + @ApiModelProperty("诊断编码") + private String mainDiagCode; + @ApiModelProperty("诊断名") + private String mainDiagName; + @ApiModelProperty(value = "住院科室") + private String admissDept; + @ApiModelProperty(value = "住院科室名称") + private String admissDeptName; + @ApiModelProperty(value = "出院科室") + private String disDept; + @ApiModelProperty(value = "出院科室名称") + private String disDeptName; + + @ApiModelProperty(value = "住院ID号") + private String admissId; + + @ApiModelProperty(value = "年龄") + private Integer age; + + @ApiModelProperty(value = "身份证") + private String idCard; + + @ApiModelProperty(value = "主要手术编码") + private String mainOperateCode; + + @ApiModelProperty(value = "主要手术名称") + private String mainOperateName; + +} diff --git a/src/main/java/com/docus/demo/dto/UploadJpgFileParam.java b/src/main/java/com/docus/demo/dto/UploadJpgFileParam.java new file mode 100644 index 0000000..6b16113 --- /dev/null +++ b/src/main/java/com/docus/demo/dto/UploadJpgFileParam.java @@ -0,0 +1,11 @@ +package com.docus.demo.dto; + +import lombok.Data; + + +@Data +public class UploadJpgFileParam { + + private String uploadFileParams; + +} diff --git a/src/main/java/com/docus/demo/facade/ISyncBasicFileService.java b/src/main/java/com/docus/demo/facade/ISyncBasicFileService.java index c306351..853bfca 100644 --- a/src/main/java/com/docus/demo/facade/ISyncBasicFileService.java +++ b/src/main/java/com/docus/demo/facade/ISyncBasicFileService.java @@ -2,7 +2,10 @@ package com.docus.demo.facade; import com.docus.demo.dto.SyncBasicDataDto; import com.docus.demo.dto.SyncFileDto; +import com.docus.demo.dto.UploadJpgFileParam; import com.docus.demo.entity.CommonResult; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.multipart.MultipartFile; public interface ISyncBasicFileService { @@ -15,4 +18,7 @@ public interface ISyncBasicFileService { CommonResult syncBasicFile(SyncFileDto syncFileDto); CommonResult deleteSync(SyncBasicDataDto syncBasicDataDto); + + + CommonResultfileUploadJpg(MultipartFile[] files, UploadJpgFileParam uploadJpgFileParam); } diff --git a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java index aff168d..f074f98 100644 --- a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java +++ b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java @@ -22,6 +22,8 @@ public interface BasicMapper { void insertOrUpdateByid(List tbasicList); + Boolean addBasic(@Param("list")List tbasicList); + List getOldBasicList(@Param("list") List fprnList, @Param("dto") SyncBasicDataDto syncBasicDataDto); List getOldBasicListLimit(@Param("pageStart") int pageStart, @@ -32,4 +34,8 @@ public interface BasicMapper { void insertOrUpdateTbasicSub(@Param("list") List tbasicSubList); + + String getTbasicPatientId(@Param("patientId")String patientId); + + Boolean delTbasicByPatientId(@Param("patientId")String patientId); } diff --git a/src/main/java/com/docus/demo/mapper/mysql/ScanAssortMapper.java b/src/main/java/com/docus/demo/mapper/mysql/ScanAssortMapper.java index c99526e..56de854 100644 --- a/src/main/java/com/docus/demo/mapper/mysql/ScanAssortMapper.java +++ b/src/main/java/com/docus/demo/mapper/mysql/ScanAssortMapper.java @@ -25,5 +25,12 @@ public interface ScanAssortMapper { void insertOrUpdateBatch(List scanAssortList); + + boolean addScanAssort(@Param("list")List scanAssortList); + int deleteByPid(@Param("pidList") List pidList); + + int delScanAssort(@Param("patientId")String patientId); + + ListgetScanAssort(@Param("patientId")String patientId); } diff --git a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java index e119581..b73809e 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java @@ -1,9 +1,8 @@ package com.docus.demo.service; import cn.hutool.core.util.ObjectUtil; -import com.docus.demo.dto.BasicSelectDto; -import com.docus.demo.dto.SyncBasicDataDto; -import com.docus.demo.dto.SyncFileDto; +import com.alibaba.fastjson.JSONArray; +import com.docus.demo.dto.*; import com.docus.demo.entity.*; import com.docus.demo.facade.ISyncBasicFileService; import com.docus.demo.mapper.mysql.BasicMapper; @@ -12,15 +11,22 @@ import com.docus.demo.mapper.sqlserver.PictureMapper; import com.docus.demo.utils.SnowflakeIdWorker; import com.docus.demo.vo.BasicVo; +import com.github.xiaoymin.knife4j.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.concurrent.*; import java.util.stream.Collectors; @@ -36,6 +42,8 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { private ScanAssortMapper scanAssortMapper; private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + @Value("${savePath}") + private String savePath; private final ExecutorService executor = new ThreadPoolExecutor(5, 10, 30L, TimeUnit.DAYS, @@ -119,7 +127,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { futures.add(future); log.info("本次同步基础数据大小" + basicVoList.size()); } - for(CompletableFuture future:futures){ + for (CompletableFuture future : futures) { future.join(); } } @@ -179,6 +187,173 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { return CommonResult.success("清理成功"); } + @Override + public CommonResult fileUploadJpg(MultipartFile[] files, UploadJpgFileParam uploadJpgFileParam) { + try { + if (Objects.isNull(uploadJpgFileParam) || Objects.isNull(uploadJpgFileParam.getUploadFileParams())) { + log.info("文件上传参数为空!"); + return CommonResult.failed("文件上传参数为空!"); + } + //解析文件上传参数 + List fileUploadJpg = JSONArray.parseArray(uploadJpgFileParam.getUploadFileParams(), FileUploadJpgDto.class); + for (FileUploadJpgDto dto : fileUploadJpg) { + if (StrUtil.isBlank(dto.getPatientId())) { + log.info("PatientId为空"); + return CommonResult.failed("PatientId不能为空!"); + } + } + ArrayList tbasics = new ArrayList<>(); + ArrayList scanAssorts = new ArrayList<>(); + String patientId = fileUploadJpg.get(0).getPatientId(); + Integer admissTimes = fileUploadJpg.get(0).getAdmissTimes(); + //组织基础数据 + Tbasic tbasic = this.getTbasic(fileUploadJpg); + tbasics.add(tbasic); + //查询是否存在更新,不存在新增 + String basicPatientId = basicMapper.getTbasicPatientId(patientId); + if (StringUtils.isBlank(basicPatientId)) { + log.info("查询不到PatientId为:" + patientId + "的数,新增基础数据"); + if (!basicMapper.addBasic(tbasics)) { + log.info("新增PatientId为:" + patientId + "的基础数据失败"); + return CommonResult.failed("新增PatientId为:" + patientId + "的基础数据失败"); + } else { + log.info("新增PatientId为:" + patientId + "的基础数据成功"); + } + } else { + //存在时先删除基础数据,后新增 + if (basicMapper.delTbasicByPatientId(patientId)) { + if (!basicMapper.addBasic(tbasics)) { + log.info("新增PatientId为:" + patientId + "的基础数据失败"); + return CommonResult.failed("新增PatientId为:" + patientId + "的基础数据失败"); + } else { + log.info("更新PatientId为:" + patientId + "的基础数据成功"); + } + } + } + if (fileUploadJpg.size() != files.length) { + log.info(patientId + "文件上传数量与参数不一致!"); + return CommonResult.failed("文件上传数量与参数不一致"); + } + // 参数不含上传的,不匹配 + List originalFileNames = fileUploadJpg.stream().map(item -> String.valueOf(item.getUploadFileName())).collect(Collectors.toList()); + for (MultipartFile file : files) { + if (!originalFileNames.contains(file.getOriginalFilename())) { + log.info("文件名:" + file.getOriginalFilename() + "与病案号:" + patientId + "集合中文件名不匹配"); + return CommonResult.failed("文件名:" + file.getOriginalFilename() + "与病案号:" + patientId + "集合中中文名不匹配"); + } + } + //文件保存目录 + String filePathdir = savePath + File.separatorChar + patientId + File.separatorChar + admissTimes; + File filePath = new File(filePathdir); + //判断文件夹是否存在不存在创建文件夹 + if (!filePath.exists()) { + filePath.mkdirs(); + } + List scanAssort = scanAssortMapper.getScanAssort(patientId); + if (!CollectionUtils.isEmpty(scanAssort)) { + //ScanAssort是否存在文件存在,存在删除 + scanAssortMapper.delScanAssort(patientId); + } + //保存文件 + for (MultipartFile file : files) { + for (FileUploadJpgDto dto : fileUploadJpg) { + //上传原文件名与实际文件名一致 + if (dto.getUploadFileName().equals(file.getOriginalFilename())) { + //记录排序 + final int[] sort = {0}; + ScanAssort tScanAssortDto = addScanAssort(patientId, filePathdir, file, dto, sort); + if (Objects.isNull(tScanAssortDto)) { + log.info("病案主键:" + patientId + "中" + dto.getFileTitle() + "中保存失败"); + } else { + scanAssorts.add(tScanAssortDto); + } + } + } + } + if (!scanAssortMapper.addScanAssort(scanAssorts)) { + log.info(patientId + "保存数据库失败"); + return CommonResult.failed(patientId + "保存数据库失败"); + } + log.info("本次传输成功病案主键为:" + patientId); + } catch (Exception e) { + return CommonResult.failed("保存失败!异常处理" + e.getMessage()); + } + return CommonResult.success("完成"); + } + + private ScanAssort addScanAssort(String patientId, String filePathdir, MultipartFile file, FileUploadJpgDto dto, int[] sort) { + //文件保存地址 + String toJpgFilePath = filePathdir + File.separatorChar + dto.getFileTitle(); + try { + file.transferTo(new File(toJpgFilePath)); + } catch (IOException e) { + log.info("将pdf文件保存本地失败:" + dto.getUploadFileName() + "," + e.getMessage()); + return null; + } + //组织新数据 + ScanAssort scanAssort = new ScanAssort(); + scanAssort.setId(SnowflakeIdWorker.idWorker.nextId()); + scanAssort.setPatientId(patientId); + scanAssort.setAssortId(dto.getAssortId()); + scanAssort.setFileTitle(dto.getFileTitle()); + scanAssort.setImagePath(toJpgFilePath); + scanAssort.setCreateTime(new Date()); + scanAssort.setScanPage(dto.getFileTitle() + ".jpg"); + scanAssort.setSort(sort[0]); + scanAssort.setFileSource(2); + scanAssort.setFileStorageType(1); + scanAssort.setFilePages(1); + sort[0] += 1; + return scanAssort; + } + + private Tbasic getTbasic(List fileUploadJpg) { + FileUploadJpgDto fileUploadJpgDto = fileUploadJpg.get(0); + Tbasic tbasic = new Tbasic(); + tbasic.setPatientId(fileUploadJpgDto.getPatientId()); + tbasic.setAdmissTimes(fileUploadJpgDto.getAdmissTimes()); + tbasic.setInpatientNo(fileUploadJpgDto.getInpatientNo()); + tbasic.setAdmissId(fileUploadJpgDto.getAdmissId()); + tbasic.setName(fileUploadJpgDto.getName()); + tbasic.setSex(fileUploadJpgDto.getSex()); + tbasic.setAge(fileUploadJpgDto.getAge()); + if (StringUtils.isNotBlank(fileUploadJpgDto.getIdCard())) { + tbasic.setIdCard(fileUploadJpgDto.getIdCard()); + } + tbasic.setAdmissDate(fileUploadJpgDto.getAdmissDate()); + if (StringUtils.isNotBlank(fileUploadJpgDto.getAdmissDept())) { + tbasic.setAdmissDept(fileUploadJpgDto.getAdmissDept()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getAdmissDeptName())) { + tbasic.setAdmissDeptName(fileUploadJpgDto.getAdmissDeptName()); + } + tbasic.setDisDate(fileUploadJpgDto.getDisDate()); + if (StringUtils.isNotBlank(fileUploadJpgDto.getDisDept())) { + tbasic.setDisDept(fileUploadJpgDto.getDisDept()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getDisDeptName())) { + tbasic.setDisDeptName(fileUploadJpgDto.getDisDeptName()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getMainDiagName())) { + tbasic.setMainDiagName(fileUploadJpgDto.getMainDiagName()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getMainDiagCode())) { + tbasic.setMainDiagCode(fileUploadJpgDto.getMainDiagCode()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getMainOperateName())) { + tbasic.setMainOperateName(fileUploadJpgDto.getMainOperateName()); + } + if (StringUtils.isNotBlank(fileUploadJpgDto.getMainOperateCode())) { + tbasic.setMainOperateCode(fileUploadJpgDto.getMainOperateCode()); + } + tbasic.setBColumn8(1); + tbasic.setIsArchive(1); + tbasic.setArchiveFileStorageType(2); + tbasic.setCreateTime(new Date()); + tbasic.setFileSource(2); + return tbasic; + } + private List handleUpdateOrInsert(List oldScanAssort, List scanAssortList) { //如果没有旧数据 做全量插入 @@ -262,9 +437,6 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { boolean savePicFlag = false; - - - // 2.2jp2转化jpg 图片通过文件流写到挂在的盘符 // savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree()); // log.info("是否转换成功"+savePicFlag); @@ -277,7 +449,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { // 2.4组合文件信息 ScanAssort scanAssort = new ScanAssort(); - synchronized (this){ + synchronized (this) { scanAssort.setId(SnowflakeIdWorker.idWorker.nextId()); scanAssort.setPatientId(basicVo.getPatientId()); scanAssort.setAssortId(tpicture.getPicKind()); @@ -292,7 +464,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { sort[0] += 1; } - String cmd = "C:\\Debug\\lianzhong.exe 003 192.168.8.74 " + tCardInfo.getId() + " " + tpicture.getPicId() + " " + tCardInfo.getPatno() + " " + format + " " + picName + ".jpg " + outFile + " http://192.168.8.74"+tpicture.getRotateDegree(); + String cmd = "C:\\Debug\\lianzhong.exe 003 192.168.8.74 " + tCardInfo.getId() + " " + tpicture.getPicId() + " " + tCardInfo.getPatno() + " " + format + " " + picName + ".jpg " + outFile + " http://192.168.8.74" + tpicture.getRotateDegree(); try { Process exec = Runtime.getRuntime().exec(cmd); int i = exec.waitFor(); @@ -312,13 +484,13 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { scanAssortList.add(scanAssort); - },executor); + }, executor); // 获取异步任务的结果 futures.add(future); } - for(CompletableFuture future:futures){ + for (CompletableFuture future : futures) { future.join(); } diff --git a/src/main/java/com/docus/demo/test/test.java b/src/main/java/com/docus/demo/test/test.java index 7651af7..2823321 100644 --- a/src/main/java/com/docus/demo/test/test.java +++ b/src/main/java/com/docus/demo/test/test.java @@ -1,855 +1,8 @@ package com.docus.demo.test; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.XmlUtil; -import com.docus.demo.entity.PatientReportResult; - - -import java.util.Map; - - public class test { - public static void main(String[] args) { - String result = "\n" + - " \n" + - " \n" + - " \n" + - "\n" + - " 0\n" + - " 成功\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 1015120230221969\n" + - " 969\n" + - " 10533\n" + - " 血气分析\n" + - " 2023-02-21 11:42:56\n" + - " 钟阳\n" + - " 钟阳\n" + - " 罗丽香\n" + - " 4\n" + - " 2023-02-21 11:43:30\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10151\n" + - " ABL90\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 09:47:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 4839378675\n" + - " 1540500\n" + - " 合格\n" + - " 10039\n" + - " 动脉血\n" + - " 3615\n" + - " 2013n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 4\n" + - " 2型糖尿病伴有并发症\n" + - " 58\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10100202302226\n" + - " 6\n" + - " 12010\n" + - " 血常规+Ret\n" + - " 2023-02-22 08:11:56\n" + - " 骆炽斌\n" + - " 骆炽斌\n" + - " 骆炽斌\n" + - " 4\n" + - " 2023-02-22 08:49:59\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10100\n" + - " XN550\n" + - " gen\n" + - " 108\n" + - " 2023-02-22 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 4639384289\n" + - " 1540500\n" + - " 合格\n" + - " 10051\n" + - " 全血\n" + - " 3615\n" + - " 1001bn\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 67\n" + - " 2型糖尿病伴有并发症\n" + - " 67\n" + - " 13719244555\n" + - " 2023/2/22 6:42:00\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 1005220230228139\n" + - " 139\n" + - " 11283\n" + - " 14C-尿素呼气试验\n" + - " 2023-02-28 00:00:00\n" + - " 戴寿军*\n" + - " 戴寿军*\n" + - " 戴寿军*\n" + - " 4\n" + - " 2023-02-28 16:04:40\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10052\n" + - " 消化录\n" + - " gen\n" + - " 108\n" + - " 2023-02-24 08:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2939424061\n" + - " 1540500\n" + - " 合格\n" + - " 10123\n" + - " 呼出气\n" + - " 3615\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 201\n" + - " 2型糖尿病伴有并发症\n" + - " 201\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10376202302243039408060\n" + - " 3039408060\n" + - " 10450\n" + - " 尿液分析+尿沉渣定量\n" + - " 2023-02-24 07:29:13\n" + - " 梁广铁\n" + - " 梁广铁\n" + - " 骆炽斌\n" + - " 4\n" + - " 2023-02-24 07:38:11\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10376\n" + - " 罗氏cobas6500A\n" + - " gen\n" + - " 108\n" + - " 2023-02-24 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3039408060\n" + - " 1540500\n" + - " 合格\n" + - " 10037\n" + - " 尿液\n" + - " 3615\n" + - " 1004n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 67\n" + - " 2型糖尿病伴有并发症\n" + - " 54\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10245202302214139363098\n" + - " 4139363098\n" + - " 11310\n" + - " 糖化血红蛋白\n" + - " 2023-02-21 08:13:37\n" + - " 庄秋容\n" + - " 庄秋容\n" + - " 叶俊辉\n" + - " 4\n" + - " 2023-02-21 10:46:59\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10245\n" + - " HA8180\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 4139363098\n" + - " 1540500\n" + - " 合格\n" + - " 10051\n" + - " 全血\n" + - " 3615\n" + - " 7016n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 50\n" + - " 2型糖尿病\n" + - " 7\n" + - " 13719244555\n" + - " 2023/2/21 6:45:39\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10104202302213239363107\n" + - " 3239363107\n" + - " 10666\n" + - " 尿微量白蛋白\n" + - " 2023-02-21 09:43:00\n" + - " 钟志敏\n" + - " 钟志敏\n" + - " 李焕庭\n" + - " 4\n" + - " 2023-02-21 14:20:10\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10104\n" + - " 特种蛋白分析仪\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3239363107\n" + - " 1540500\n" + - " 合格\n" + - " 10037\n" + - " 尿液\n" + - " 3615\n" + - " 4077n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 46\n" + - " 2型糖尿病\n" + - " 14\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10316202302212539363100\n" + - " 2539363100\n" + - " 10552,10557\n" + - " C-P(空腹)+FT3FT4TSH\n" + - " 2023-02-21 08:28:40\n" + - " 李焕庭\n" + - " 李焕庭\n" + - " 唐彦如\n" + - " 4\n" + - " 2023-02-21 09:50:09\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10316\n" + - " 罗氏Infinity流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2539363100\n" + - " 1540500\n" + - " \n" + - " \n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 4132n,4103n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 72\n" + - " 2型糖尿病\n" + - " 46\n" + - " \n" + - " \n" + - " 2023/2/21 6:45:38\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10376202302212939363104\n" + - " 2939363104\n" + - " 10450\n" + - " 尿液分析+尿沉渣定量\n" + - " 2023-02-21 00:48:44\n" + - " 熊海娜\n" + - " 熊海娜\n" + - " 汤勇才\n" + - " 4\n" + - " 2023-02-21 09:42:57\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10376\n" + - " 罗氏cobas6500A\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2939363104\n" + - " 1540500\n" + - " 合格\n" + - " 10037\n" + - " 尿液\n" + - " 3615\n" + - " 1004n\n" + - " 标本已复查\n" + - " \n" + - " \n" + - " 24\n" + - " 2型糖尿病\n" + - " 3\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10328202302222739363102\n" + - " 2739363102\n" + - " 11087\n" + - " 24小时尿蛋白定量\n" + - " 2023-02-22 09:57:34\n" + - " 李结秋\n" + - " 李结秋\n" + - " 戴卉\n" + - " 4\n" + - " 2023-02-22 11:16:31\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10328\n" + - " 贝克曼流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2739363102\n" + - " 1540500\n" + - " 合格\n" + - " 10037\n" + - " 尿液\n" + - " 3615\n" + - " 3042n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 36\n" + - " 2型糖尿病\n" + - " 26\n" + - " 13719244555\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10141202302204239363099\n" + - " 4239363099\n" + - " 12227\n" + - " 生化八项(急查)\n" + - " 2023-02-20 12:21:08\n" + - " 李结秋\n" + - " 李结秋\n" + - " 戴卉\n" + - " 4\n" + - " 2023-02-20 13:00:19\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10141\n" + - " VI5600\n" + - " gen\n" + - " 108\n" + - " 2023-02-20 10:48:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 4239363099\n" + - " 1540500\n" + - " 合格\n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 3078n\n" + - " 标本已复查\n" + - " \n" + - " \n" + - " 36\n" + - " 2型糖尿病\n" + - " 26\n" + - " 13719244555\n" + - " 2023/2/20 11:12:53\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10263202302203039363105\n" + - " 3039363105\n" + - " 10427\n" + - " D-二聚体(D-DI)\n" + - " 2023-02-20 12:18:05\n" + - " 杨英为\n" + - " 杨英为\n" + - " 孙娟\n" + - " 4\n" + - " 2023-02-20 12:36:12\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10263\n" + - " STAGO血凝仪-1\n" + - " gen\n" + - " 108\n" + - " 2023-02-20 10:48:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3039363105\n" + - " 1540500\n" + - " 合格\n" + - " 10029\n" + - " 血浆\n" + - " 3615\n" + - " 7028n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 602\n" + - " 2型糖尿病\n" + - " 17\n" + - " 13719244555\n" + - " 2023/2/20 11:12:52\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10316202302212839363103\n" + - " 2839363103\n" + - " 10549\n" + - " C-P(餐后2小时)\n" + - " 2023-02-21 11:52:00\n" + - " 李焕庭\n" + - " 李焕庭\n" + - " 唐彦如\n" + - " 4\n" + - " 2023-02-21 12:19:42\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10316\n" + - " 罗氏Infinity流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2839363103\n" + - " 1540500\n" + - " \n" + - " \n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 4135n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 72\n" + - " 2型糖尿病\n" + - " 46\n" + - " \n" + - " \n" + - " 2023/2/21 10:27:15\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10370202302203139363106\n" + - " 3139363106\n" + - " 12010\n" + - " 血常规+Ret\n" + - " 2023-02-20 11:52:04\n" + - " 杨爽\n" + - " 杨爽\n" + - " 孙娟\n" + - " 4\n" + - " 2023-02-20 11:59:10\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10370\n" + - " XN9100\n" + - " gen\n" + - " 108\n" + - " 2023-02-20 10:48:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3139363106\n" + - " 1540500\n" + - " 合格\n" + - " 10051\n" + - " 全血\n" + - " 3615\n" + - " 1001bn\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 602\n" + - " 2型糖尿病\n" + - " 603\n" + - " 13719244555\n" + - " 2023/2/20 11:12:50\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10328202302224539384288\n" + - " 4539384288\n" + - " 12226,12228\n" + - " 生化八项(普通)+血淀粉酶(普通)\n" + - " 2023-02-22 08:07:29\n" + - " 李结秋\n" + - " 李结秋\n" + - " 胡洁洁\n" + - " 4\n" + - " 2023-02-22 10:30:12\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10328\n" + - " 贝克曼流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-22 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 4539384288\n" + - " 1540500\n" + - " 合格\n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 3077n,3079n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 55\n" + - " 2型糖尿病伴有并发症\n" + - " 26\n" + - " 13719244555\n" + - " 2023/2/22 6:42:07\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10328202302213339363108\n" + - " 3339363108\n" + - " 11152,11111,11185\n" + - " 肾功3项+肝功7项+血脂四项\n" + - " 2023-02-21 08:12:37\n" + - " 李结秋\n" + - " 李结秋\n" + - " 顾晓凡\n" + - " 4\n" + - " 2023-02-21 09:48:06\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10328\n" + - " 贝克曼流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3339363108\n" + - " 1540500\n" + - " 合格\n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 3002bn,3009n,3035n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 601\n" + - " 2型糖尿病\n" + - " 26\n" + - " 13719244555\n" + - " 2023/2/21 6:45:35\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10316202302213439363109\n" + - " 3439363109\n" + - " 10539,10543,10556\n" + - " AFPCEA+CA19-9+F-PSA/T-PSA\n" + - " 2023-02-21 08:29:00\n" + - " 李焕庭\n" + - " 李焕庭\n" + - " 阙志权\n" + - " 4\n" + - " 2023-02-21 09:31:26\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10316\n" + - " 罗氏Infinity流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 3439363109\n" + - " 1540500\n" + - " \n" + - " \n" + - " 10028\n" + - " 血清\n" + - " 3615\n" + - " 4043n,4044n,4049n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 44\n" + - " 2型糖尿病\n" + - " 46\n" + - " \n" + - " \n" + - " 2023/2/21 6:45:40\n" + - " \n" + - " \n" + - " D1094174\n" + - " 10748387\n" + - " 1\n" + - " 10328202302212639363101\n" + - " 2639363101\n" + - " 11147\n" + - " 葡萄糖(餐后2H)\n" + - " 2023-02-21 11:29:17\n" + - " 李结秋\n" + - " 李结秋\n" + - " 顾晓凡\n" + - " 4\n" + - " 2023-02-21 12:18:32\n" + - " 李惠平\n" + - " \n" + - " \n" + - " 10328\n" + - " 贝克曼流水线\n" + - " gen\n" + - " 108\n" + - " 2023-02-21 06:00:00\n" + - " 综合病科五病区\n" + - " 9340722\n" + - " 440122195404141212\n" + - " \n" + - " \n" + - " 邝伟如\n" + - " 1\n" + - " 68岁\n" + - " 2639363101\n" + - " 1540500\n" + - " 合格\n" + - " 10029\n" + - " 血浆\n" + - " 3615\n" + - " 3013n\n" + - " \n" + - " \n" + - " \n" + - " \n" + - " 601\n" + - " 2型糖尿病\n" + - " 26\n" + - " 13719244555\n" + - " 2023/2/21 10:27:16\n" + - " \n" + - " \n" + - "]]>\n" + - " \n" + - " \n" + - ""; - - - if(result.contains("")); - }else{ - result = result.substring(result.indexOf("Result>")+7,result.indexOf("} stringObjectMap = XmlUtil.xmlToMap(result); - System.out.println(stringObjectMap); - - - PatientReportResult patientReportResult = BeanUtil.fillBeanWithMap(stringObjectMap, new PatientReportResult(), false); - System.out.println(patientReportResult); - } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 490ccfe..c237989 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -92,3 +92,7 @@ spring: test-on-borrow: false test-on-return: false validation-query: select 1 + + +#文件保存路径 +savePath: Z:\jiashi\lianzhong \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/BasicMapper.xml b/src/main/resources/mapper/mysql/BasicMapper.xml index 2ff1ce8..3d55feb 100644 --- a/src/main/resources/mapper/mysql/BasicMapper.xml +++ b/src/main/resources/mapper/mysql/BasicMapper.xml @@ -42,6 +42,28 @@ ON DUPLICATE KEY UPDATE birthday = VALUES(birthday); + + insert into docus_medicalrecord.t_basic + (patient_id,admiss_times,inpatient_no,admiss_id, + name,sex,age,id_card, + admiss_date,admiss_dept,admiss_dept_name,dis_date, + dis_dept,dis_dept_name,main_diag_code,main_diag_name, + main_operate_code,main_operate_name,create_time,is_archive, + file_source,b_column5,b_column8,archive_file_storage_type, + scan_upload_state + ) + values + + (#{item.patientId},#{item.admissTimes},#{item.inpatientNo},#{item.admissId}, + #{item.name},#{item.sex},#{item.age},#{item.idCard}, + #{item.admissDate},#{item.admissDept},#{item.admissDeptName},#{item.disDate}, + #{item.disDept},#{item.disDeptName},#{item.mainDiagCode},#{item.mainDiagName}, + #{item.mainOperateCode},#{item.mainOperateName},#{item.createTime},#{item.isArchive}, + #{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType}, + #{item.scanUploadState} + ) + + update docus_medicalrecord.t_basic set scan_source = 1 , @@ -49,6 +71,9 @@ WHERE patient_id = #{pid} + + delete from docus_medicalrecord.t_basic where patient_id=#{patientId} + + \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/ScanAssortMapper.xml b/src/main/resources/mapper/mysql/ScanAssortMapper.xml index 308b8cb..a734f56 100644 --- a/src/main/resources/mapper/mysql/ScanAssortMapper.xml +++ b/src/main/resources/mapper/mysql/ScanAssortMapper.xml @@ -31,6 +31,19 @@ ,sort = VALUES(sort) ,creater = VALUES(creater),taskId = VALUES(taskId),`source` = VALUES(`source`) + + insert into docus_archivefile.t_scan_assort + (id,patient_id,assort_id,file_title,image_path + ,scan_page,file_source,file_storage_type,file_pages + ,creater,creater_name,create_time,sort,taskid,`source`) + values + + (#{item.id},#{item.patientId},#{item.assortId},#{item.fileTitle},#{item.imagePath} + ,#{item.scanPage},#{item.fileSource},#{item.fileStorageType},#{item.filePages} + ,#{item.creater},#{item.createrName},#{item.createTime},#{item.sort},#{item.taskId},#{item.source}) + + delete FROM docus_archivefile.t_scan_assort where patient_id in @@ -40,6 +53,9 @@ ) + + delete from ocus_archivefile.t_scan_assort where patient_id=#{patientId} + + \ No newline at end of file