湘雅附二emr接口返回病案信息

master
hcy 2 years ago
parent 706fde3725
commit b73f9998aa

@ -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<PatientAssortVo> list = tScanAssortService.getPatAssortListByPatientId(patientId);
return Msg.successData(list);
}
}

@ -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<ZhFyImageVo> getPathListByDisDate(@Param("startTime")String startTime,@Param("endTime")String endTime);
List<PatientAssortVo> getPatAssortListByPatientId(@Param("patientId") String patientId);
}

@ -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<ZhFyImageVo> getPathListByInpatientNo(String inpatientNo, String admissTimes);
List<ZhFyImageVo> getPathListByDisDate(String startTime,String endTime);
List<PatientAssortVo> getPatAssortListByPatientId(String patientId);
}

@ -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;
@ -40,6 +40,7 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{
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);
@ -137,6 +138,52 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService{
return list;
}
@Override
public List<PatientAssortVo> getPatAssortListByPatientId(String patientId) {
List<PatientAssortVo> list = scanAssortMapper.getPatAssortListByPatientId(patientId);
for (PatientAssortVo patientAssortVo : list) {
List<IndexFds> 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();

@ -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;
}
}

@ -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);
}

@ -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;
}

@ -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> indexFds;
}

@ -39,6 +39,26 @@
<result column="assort_name" property="assortName"/>
<result column="scan_page" property="scanPage"/>
</resultMap>
<resultMap id="PatientAssortMap" type="com.emr.vo.PatientAssortVo" >
<result column="patientId" property="patientId" />
<result column="visitId" property="visitId" />
<result column="admId" property="admId" />
<result column="scanServer" property="scanServer" />
<result column="inDate" property="inDate" />
<result column="outDate" property="outDate" />
<collection property="indexFds" resultMap="IndexFdsMap"/>
</resultMap>
<resultMap id="IndexFdsMap" type="com.emr.vo.IndexFds">
<result column="id" property="id"/>
<result column="indexId" property="indexId"/>
<result column="patientId" property="patientId"/>
<result column="visitId" property="visitId"/>
<result column="fdCode" property="fdCode"/>
<result column="scanFile" property="scanFile"/>
<result column="admId" property="admId"/>
</resultMap>
<insert id="insert" parameterType="com.emr.entity.tScanAssort.T_Scan_Assort" >
insert into t_scan_assort (patient_id, assort_id, scan_page
)
@ -245,6 +265,24 @@
</where>
ORDER BY z.assort_sort
</select>
<select id="getPatAssortListByPatientId" resultMap="PatientAssortMap">
SELECT
rtrim(c.inpatient_no) AS patientId,
c.admiss_times as visitId,
'' as admId,
'' as scanServer,
CONVERT(varchar, c.admiss_date, 127)+'.000+0000' as inDate,
CONVERT(varchar, c.dis_date, 127)+'.000+0000' as outDate,
c.file_path+'\'+t.scan_page as scanFile,
t.assort_id as fdCode,
c.patient_id as indexId
FROM
commomtable c
LEFT JOIN t_scan_assort t on c.patient_id=t.patient_id
WHERE
c.inpatient_no = #{patientId}
ORDER BY t.assort_id
</select>
<!--修改图片集合为未删除-->

Loading…
Cancel
Save