diff --git a/src/main/java/com/emr/controller/FontController.java b/src/main/java/com/emr/controller/FontController.java index 4424534..9171108 100644 --- a/src/main/java/com/emr/controller/FontController.java +++ b/src/main/java/com/emr/controller/FontController.java @@ -20,11 +20,8 @@ import com.emr.service.recordType.EmrTypeService; import com.emr.service.tScanAssort.T_Scan_AssortService; import com.emr.util.ExceptionPrintUtil; import com.emr.util.Jpg2PdfUtil; -import com.emr.vo.ArchiveMasterVo; +import com.emr.vo.*; import com.emr.vo.FontVo.*; -import com.emr.vo.Msg; -import com.emr.vo.PushRcvBasicDTO; -import com.emr.vo.ZhFyImageVo; import com.emr.vo.commomSearch.CommomTree; import com.emr.vo.commomSearch.CommomVo; import com.emr.vo.commomSearch.ScanPathVo; @@ -614,4 +611,19 @@ public class FontController { public String downloadPdfZip(int taskId,HttpServletResponse response) throws IOException { return batchExportService.downloadPdfZip(taskId,response); } + + /** + * 湘雅二医院根据病案号返回患者病案信息 + * @param patientId 病案号 + * @return Msg + */ + @RequestMapping(value = "getPatAssortListByPatientId", method = RequestMethod.POST) + @ResponseBody + public Msg getPatAssortListByPatientId(String patientId) { + if (StringUtils.isBlank(patientId)) { + return Msg.fail("patientId病案号不得为空"); + } + List list = tScanAssortService.getPatAssortListByPatientId(patientId); + return Msg.successData(list); + } } diff --git a/src/main/java/com/emr/dao/tScanAssort/T_Scan_AssortMapper.java b/src/main/java/com/emr/dao/tScanAssort/T_Scan_AssortMapper.java index da6073b..b77161a 100644 --- a/src/main/java/com/emr/dao/tScanAssort/T_Scan_AssortMapper.java +++ b/src/main/java/com/emr/dao/tScanAssort/T_Scan_AssortMapper.java @@ -3,6 +3,7 @@ package com.emr.dao.tScanAssort; import com.emr.entity.tScanAssort.T_Scan_Assort; import com.emr.vo.FontVo.FontCommom; import com.emr.vo.FontVo.ScanAssortVo; +import com.emr.vo.PatientAssortVo; import com.emr.vo.ZhFyImageVo; import com.emr.vo.commomSearch.CommomVo; import org.apache.ibatis.annotations.Param; @@ -46,4 +47,6 @@ public interface T_Scan_AssortMapper { List getPathListByDisDate(@Param("startTime")String startTime,@Param("endTime")String endTime); + + List getPatAssortListByPatientId(@Param("patientId") String patientId); } \ No newline at end of file diff --git a/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortService.java b/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortService.java index df9d833..981ca29 100644 --- a/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortService.java +++ b/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortService.java @@ -2,6 +2,7 @@ package com.emr.service.tScanAssort; import com.emr.entity.tScanAssort.T_Scan_Assort; import com.emr.vo.FontVo.ScanAssortVo; +import com.emr.vo.PatientAssortVo; import com.emr.vo.ZhFyImageVo; import java.util.List; @@ -20,4 +21,6 @@ public interface T_Scan_AssortService { List getPathListByInpatientNo(String inpatientNo, String admissTimes); List getPathListByDisDate(String startTime,String endTime); + + List getPatAssortListByPatientId(String patientId); } diff --git a/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortServiceImpl.java b/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortServiceImpl.java index e0f9893..38b254d 100644 --- a/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortServiceImpl.java +++ b/src/main/java/com/emr/service/tScanAssort/T_Scan_AssortServiceImpl.java @@ -4,8 +4,10 @@ import com.emr.dao.CommomMapper; import com.emr.dao.tScanAssort.T_Scan_AssortMapper; import com.emr.entity.tScanAssort.T_Scan_Assort; import com.emr.vo.FontVo.ScanAssortVo; -import com.emr.vo.ZhFyImageVo; +import com.emr.vo.IndexFds; +import com.emr.vo.PatientAssortVo; import com.emr.vo.PicListVo; +import com.emr.vo.ZhFyImageVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -14,8 +16,6 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.DigestUtils; import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -33,16 +33,17 @@ import java.util.List; */ @Service @Transactional -public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{ +public class T_Scan_AssortServiceImpl implements T_Scan_AssortService { @Autowired private T_Scan_AssortMapper scanAssortMapper; @Autowired private CommomMapper commomMapper; @Value("${NEW_EMR_RECORD_JSP}") private String NEW_EMR_RECORD_JSP; + @Override public void updateByPrimaryKeySelective(T_Scan_Assort newAssort, T_Scan_Assort oldAssort) { - scanAssortMapper.updateByPrimaryKeySelective(newAssort,oldAssort); + scanAssortMapper.updateByPrimaryKeySelective(newAssort, oldAssort); } @Override @@ -57,12 +58,12 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{ @Override public int SimpleDelByPatientIdAndScanPages(String patientId, String scanPages) { - return scanAssortMapper.SimpleDelByPatientIdAndScanPages(patientId,scanPages); + return scanAssortMapper.SimpleDelByPatientIdAndScanPages(patientId, scanPages); } @Override public void SimpleInsert(List list) { - if(!CollectionUtils.isEmpty(list)) { + if (!CollectionUtils.isEmpty(list)) { //根据字段多少批量新增 ///查询表列数 int colCount = commomMapper.selectColByTableName("t_scan_assort"); @@ -95,16 +96,16 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{ @Override public List getPathListByInpatientNo(String inpatientNo, String admissTimes) { List list = scanAssortMapper.getPathListByInpatientNo(inpatientNo, admissTimes); - for (ZhFyImageVo scanAssortList:list){ + for (ZhFyImageVo scanAssortList : list) { List picList = scanAssortList.getPicList(); //编辑图片信息 - for (PicListVo picPathList:picList){ + for (PicListVo picPathList : picList) { //获取盘符并转换映射地址的头部地址 String root = selectRootByNotWater(picPathList.getPicUrl()); //获取盘符后面的地址 String str1 = picPathList.getPicUrl().substring(0, picPathList.getPicUrl().indexOf(File.separator)); String picPath = picPathList.getPicUrl().substring(str1.length() + 1, picPathList.getPicUrl().length()); - String fileUrl = NEW_EMR_RECORD_JSP+ File.separator + root + picPath; + String fileUrl = NEW_EMR_RECORD_JSP + File.separator + root + picPath; picPathList.setPicUrl(fileUrl); //生成文件id String fileId = scanAssortList.getPatientId() + picPathList.getScanPage(); @@ -116,17 +117,17 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{ } @Override - public List getPathListByDisDate(String startTime,String endTime) { + public List getPathListByDisDate(String startTime, String endTime) { List list = scanAssortMapper.getPathListByDisDate(startTime, endTime); - for (ZhFyImageVo scanAssortList:list){ + for (ZhFyImageVo scanAssortList : list) { List picList = scanAssortList.getPicList(); - for (PicListVo picPathList:picList){ + for (PicListVo picPathList : picList) { //获取盘符并转换映射地址的头部地址 String root = selectRootByNotWater(picPathList.getPicUrl()); //获取盘符后面的地址 String str1 = picPathList.getPicUrl().substring(0, picPathList.getPicUrl().indexOf(File.separator)); String picPath = picPathList.getPicUrl().substring(str1.length() + 1, picPathList.getPicUrl().length()); - String fileUrl = NEW_EMR_RECORD_JSP+ File.separator + root + picPath; + String fileUrl = NEW_EMR_RECORD_JSP + File.separator + root + picPath; picPathList.setPicUrl(fileUrl); //生成文件id String fileId = scanAssortList.getPatientId() + picPathList.getScanPage(); @@ -137,6 +138,52 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{ return list; } + @Override + public List getPatAssortListByPatientId(String patientId) { + List list = scanAssortMapper.getPatAssortListByPatientId(patientId); + + for (PatientAssortVo patientAssortVo : list) { + List indexFdsList = patientAssortVo.getIndexFds(); + //编辑图片信息 + for (IndexFds indexFds : indexFdsList) { + String srcPath = indexFds.getScanFile().replaceAll("\\\\", "/"); + //获取盘符并转换映射地址的头部地址 + String root = ""; + //获取盘符后面的地址 + String picPath = ""; + //拼接图片地址 + String fileUrl = ""; + if (srcPath.startsWith("/")) { + //截取字符串为磁盘路径 + int thirdBackslashIndex = srcPath.indexOf('/', srcPath.indexOf('/', srcPath.indexOf('/') + 1) + 1); + if (thirdBackslashIndex != -1) { + srcPath = srcPath.substring(thirdBackslashIndex + 1); + } + //将原图片地址转换成映射地址 + //获取盘符并转换映射地址的头部地址 + root = selectRootByNotWater(srcPath); + //获取盘符后面的地址 + picPath = srcPath.substring(srcPath.indexOf('/')); + fileUrl = NEW_EMR_RECORD_JSP + File.separator + root + picPath; + } else { + //获取盘符并转换映射地址的头部地址 + root = selectRootByNotWater(indexFds.getScanFile()); + //获取盘符后面的地址 + String str1 = indexFds.getScanFile().substring(0, indexFds.getScanFile().indexOf(File.separator)); + picPath = indexFds.getScanFile().substring(str1.length() + 1, indexFds.getScanFile().length()); + fileUrl = NEW_EMR_RECORD_JSP + File.separator + root + picPath; + + } + indexFds.setScanFile(fileUrl); + //生成文件id + String fileId = patientAssortVo.getPatientId() + indexFds.getScanFile(); + String s = DigestUtils.md5DigestAsHex(fileId.getBytes()); + indexFds.setId(s); + } + } + return list; + } + private String selectRootByNotWater(String srcPath) { //获取盘符 String str = srcPath.substring(0, 1).toUpperCase(); diff --git a/src/main/java/com/emr/util/DateUtils.java b/src/main/java/com/emr/util/DateUtils.java index dc4d4b7..e8060ad 100644 --- a/src/main/java/com/emr/util/DateUtils.java +++ b/src/main/java/com/emr/util/DateUtils.java @@ -5,6 +5,7 @@ import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; import lombok.extern.slf4j.Slf4j; @@ -248,4 +249,24 @@ public class DateUtils { if (ms < 0) return 0d; return Math.floor(ms/1000/60/60); } + + + /** + * 将日期格式化为UTC格式 + * @param date + * @return String + */ + public static String dateFormattedToUtc(Date date){ + + // 创建一个SimpleDateFormat对象,用于格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS+0000"); + + // 设置时区为UTC + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + + // 使用SimpleDateFormat格式化Date对象 + String dateFormattedToUtc = sdf.format(date); + + return dateFormattedToUtc; + } } diff --git a/src/main/java/com/emr/util/Pdf2ImgUtil.java b/src/main/java/com/emr/util/Pdf2ImgUtil.java index 64d245e..2adfc79 100644 --- a/src/main/java/com/emr/util/Pdf2ImgUtil.java +++ b/src/main/java/com/emr/util/Pdf2ImgUtil.java @@ -117,6 +117,8 @@ public class Pdf2ImgUtil { /*String disDateStr ="2018-09-18"; String disDateStr1 = disDateStr.substring(0, 4) + disDateStr.substring(5, 7) + disDateStr.substring(8, 10); System.out.println(disDateStr1);*/ + //String fileUrl ="http://192.168.2.22:8080/emr_record\reloadD\00001\0000587004-20200101-9dace9a7161c4758a88ac0b05cdc1be3\000228.jpg"; + //System.out.println(fileUrl); } diff --git a/src/main/java/com/emr/vo/IndexFds.java b/src/main/java/com/emr/vo/IndexFds.java new file mode 100644 index 0000000..f67a50d --- /dev/null +++ b/src/main/java/com/emr/vo/IndexFds.java @@ -0,0 +1,24 @@ +package com.emr.vo; + +import lombok.Data; + +/** + * 湘雅附二分段图片视图类 + */ +@Data +public class IndexFds { + //图片唯一id + private String id; + //病案ID + private String indexId; + //病案号 + private String patientId; + //入院次数 + private Integer visitId; + //分段编码 + private String fdCode; + //图片路径 + private String scanFile; + //就诊号 + private String admId; +} diff --git a/src/main/java/com/emr/vo/PatientAssortVo.java b/src/main/java/com/emr/vo/PatientAssortVo.java new file mode 100644 index 0000000..06786e2 --- /dev/null +++ b/src/main/java/com/emr/vo/PatientAssortVo.java @@ -0,0 +1,28 @@ +package com.emr.vo; + + +import lombok.Data; + +import java.util.List; + +/** + * 湘雅附二患者分段信息 + */ +@Data +public class PatientAssortVo { + //病案号 + private String patientId; + //入院次数 + private Integer visitId; + //就诊号 + private String admId; + + private String scanServer; + //入院时间 + private String inDate; + //出院时间 + private String outDate; + //分段图片信息集合 + private List indexFds; + +} diff --git a/src/main/resources/mapper/tScanAssort/T_Scan_AssortMapper.xml b/src/main/resources/mapper/tScanAssort/T_Scan_AssortMapper.xml index 3b92d3e..bfa3313 100644 --- a/src/main/resources/mapper/tScanAssort/T_Scan_AssortMapper.xml +++ b/src/main/resources/mapper/tScanAssort/T_Scan_AssortMapper.xml @@ -39,6 +39,26 @@ + + + + + + + + + + + + + + + + + + + + insert into t_scan_assort (patient_id, assort_id, scan_page ) @@ -245,6 +265,24 @@ ORDER BY z.assort_sort +