湘雅附二病例复印接口

master
hcy 2 years ago
parent 00b55c7eee
commit 0acc1ebcf0

@ -10,6 +10,7 @@ import com.emr.dao.commomSearch.ScanPathMapper;
import com.emr.dao.emrPdfWaterSet.EmrPdfWaterSetMapper;
import com.emr.dao.recordLock.Emr_LockMapper;
import com.emr.dao.tScanAssort.T_Scan_AssortMapper;
import com.emr.dto.PatInfoEmrTypeDto;
import com.emr.entity.Power_User;
import com.emr.entity.Zd_Assort;
import com.emr.entity.emrPdfWaterSet.EmrPdfWaterSet;
@ -26,9 +27,11 @@ import com.emr.util.HttpClientUtils;
import com.emr.util.Jpg2PdfUtil;
import com.emr.vo.*;
import com.emr.vo.FontVo.*;
import com.emr.vo.FontVo.ScanAssortVo;
import com.emr.vo.commomSearch.CommomTree;
import com.emr.vo.commomSearch.CommomVo;
import com.emr.vo.commomSearch.ScanPathVo;
import com.emr.vo.emrType.EmrTypeFeVo;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Utilities;
@ -598,6 +601,7 @@ public class FontController {
}
return Msg.fail();
}
/**
* @description:
* @params: taskid
@ -613,6 +617,7 @@ public class FontController {
/**
* pdf
*
* @param taskId
* @param response
*/
@ -624,6 +629,7 @@ public class FontController {
/**
*
*
* @param patientId
* @return Msg
*/
@ -639,6 +645,7 @@ public class FontController {
/**
* 广
*
* @param // hemodialysisId 血透ID
* @return String
*/
@ -722,4 +729,34 @@ public class FontController {
Subject subject = SecurityUtils.getSubject();
subject.login(userToken);
}
/**
*
*
* @param
* @return Msg
*/
@RequestMapping(value = "getEmrTypeList", method = RequestMethod.GET)
@ResponseBody
public Msg getEmrTypeList() {
List<EmrTypeFeVo> list = emrTypeService.getEmrTypeList();
return Msg.successData(list);
}
/**
*
*
* @param patInfoEmrTypeDto
* @return Msg
*/
@RequestMapping(value = "getScanAssortPageByPatEmrType", method = RequestMethod.POST)
@ResponseBody
public Msg getScanAssortByPatInfoEmrType(@RequestBody PatInfoEmrTypeDto patInfoEmrTypeDto) {
if (ObjectUtils.isEmpty(patInfoEmrTypeDto) && StringUtils.isNotBlank(patInfoEmrTypeDto.getInpatientNo())
&& StringUtils.isNotBlank(patInfoEmrTypeDto.getDisDate()) && StringUtils.isNotBlank(patInfoEmrTypeDto.getName()) && ObjectUtils.isEmpty(patInfoEmrTypeDto.getEmrTypeIds())) {
return Msg.fail("传参不能为空");
}
List<PatInfoEmrTypeVo> patInfoEmrTypeVos = tScanAssortService.getScanAssortPageByPatEmrType(patInfoEmrTypeDto);
return Msg.successData(patInfoEmrTypeVos);
}
}

@ -49,7 +49,7 @@ public class UrlFilter implements Filter {
//从session中取token
String token = (String) request.getSession().getAttribute("token");
//静态资源不拦截验证
if(url.endsWith(".css")||url.endsWith(".js")||url.endsWith(".jpg")
if(url.endsWith(".css")||url.endsWith(".js")||url.endsWith(".jpg")||url.endsWith(".tif")
||url.endsWith(".gif")||url.endsWith(".png") || url.endsWith(".ico")||url.endsWith(".pdf")){
chain.doFilter(request, response);
response.setHeader("Access-Control-Allow-Origin", "*");

@ -1,6 +1,7 @@
package com.emr.dao.recordType;
import com.emr.entity.recordType.Emr_Type;
import com.emr.vo.emrType.EmrTypeFeVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -36,4 +37,9 @@ public interface Emr_TypeMapper {
*
* */
Emr_Type checkTypeFlagByCreater(@Param("creater") String creater,@Param("typeFlag") String typeFlag);
/**
*
* */
List<EmrTypeFeVo> getEmrTypeList();
}

@ -1,8 +1,11 @@
package com.emr.dao.tScanAssort;
import com.emr.dto.PatInfoEmrTypeDto;
import com.emr.entity.tScanAssort.T_Scan_Assort;
import com.emr.vo.FontVo.FontCommom;
import com.emr.vo.FontVo.ScanAssortVo;
import com.emr.vo.PatInfoEmrTypeVo;
import com.emr.vo.PatScanAssortVo;
import com.emr.vo.PatientAssortVo;
import com.emr.vo.ZhFyImageVo;
import com.emr.vo.commomSearch.CommomVo;
@ -58,4 +61,11 @@ public interface T_Scan_AssortMapper {
* @return
*/
List<T_Scan_Assort> getAssortListByPatientAssortPage(@Param("patientId") String patientId, @Param("assortId") String assortId, @Param("scanPage") String scanPage);
/**
*
* @param patInfoEmrTypeDto
* @return
*/
List<PatScanAssortVo> getScanAssortPageByPatEmrTyp(PatInfoEmrTypeDto patInfoEmrTypeDto);
}

@ -0,0 +1,17 @@
package com.emr.dto;
import lombok.Data;
import java.util.List;
@Data
public class PatInfoEmrTypeDto {
private String inpatientNo; //病案号
private String name; //患者姓名
private String disDate; //出院日期
List<Integer> emrTypeIds; //打印用途分类ids
}

@ -1,6 +1,7 @@
package com.emr.service.recordType;
import com.emr.entity.recordType.Emr_Type;
import com.emr.vo.emrType.EmrTypeFeVo;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletRequest;
@ -33,4 +34,9 @@ public interface EmrTypeService {
*
* */
Emr_Type checkTypeFlagByCreater(String typeFlag,HttpServletRequest request);
/**
*
* */
List<EmrTypeFeVo> getEmrTypeList();
}

@ -6,6 +6,7 @@ import com.emr.entity.Power_User;
import com.emr.entity.recordType.Emr_Type;
import com.emr.entity.recordType.Emr_Type_Related;
import com.emr.service.CommomService;
import com.emr.vo.emrType.EmrTypeFeVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -85,6 +86,11 @@ public class EmrTypeServiceImpl implements EmrTypeService {
return emrTypeMapper.checkTypeFlagByCreater(creater,typeFlag);
}
@Override
public List<EmrTypeFeVo> getEmrTypeList() {
return emrTypeMapper.getEmrTypeList();
}
@Override
public void addEmrType(Emr_Type emrType,HttpServletRequest request) {
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");

@ -1,11 +1,14 @@
package com.emr.service.tScanAssort;
import com.emr.dto.PatInfoEmrTypeDto;
import com.emr.entity.tScanAssort.T_Scan_Assort;
import com.emr.vo.FontVo.ScanAssortVo;
import com.emr.vo.PatInfoEmrTypeVo;
import com.emr.vo.PatientAssortVo;
import com.emr.vo.ZhFyImageVo;
import java.util.List;
import java.util.Map;
public interface T_Scan_AssortService {
void updateByPrimaryKeySelective(T_Scan_Assort newAssort,T_Scan_Assort oldAssort);
@ -32,4 +35,11 @@ public interface T_Scan_AssortService {
* @return
*/
List<T_Scan_Assort> getAssortListByPatientAssortPage(String patientId, String assortId, String scanPage);
/**
*
* @param patInfoEmrTypeDto
* @return
*/
List<PatInfoEmrTypeVo> getScanAssortPageByPatEmrType(PatInfoEmrTypeDto patInfoEmrTypeDto);
}

@ -2,22 +2,23 @@ package com.emr.service.tScanAssort;
import com.emr.dao.CommomMapper;
import com.emr.dao.tScanAssort.T_Scan_AssortMapper;
import com.emr.dto.PatInfoEmrTypeDto;
import com.emr.entity.tScanAssort.T_Scan_Assort;
import com.emr.vo.*;
import com.emr.vo.FontVo.ScanAssortVo;
import com.emr.vo.IndexFds;
import com.emr.vo.PatientAssortVo;
import com.emr.vo.PicListVo;
import com.emr.vo.ZhFyImageVo;
import com.emr.vo.commomSearch.CommomTree;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
import org.springframework.util.ObjectUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* @ProjectName:
@ -198,6 +199,54 @@ public class T_Scan_AssortServiceImpl implements T_Scan_AssortService {
return scanAssortMapper.getAssortListByPatientAssortPage(patientId, assortId, scanPage);
}
@Override
public List<PatInfoEmrTypeVo> getScanAssortPageByPatEmrType(PatInfoEmrTypeDto patInfoEmrTypeDto) {
List<PatScanAssortVo> patScanAssortVos = scanAssortMapper.getScanAssortPageByPatEmrTyp(patInfoEmrTypeDto);
//按打印用途分组去重
Map<Integer, Set<PatScanAssortVo>> groupMap = patScanAssortVos.stream()
.collect(Collectors.groupingBy(PatScanAssortVo::getTypeId,
Collectors.toCollection(() -> new LinkedHashSet<>())));
//病案分类去重
List<PatInfoEmrTypeVo> patInfoEmrTypeVoList = new ArrayList<>();
//返回病案分类对象
PatInfoEmrTypeVo patInfoEmrTypeVo = null;
for (Map.Entry<Integer, Set<PatScanAssortVo>> map : groupMap.entrySet()) {
Integer typeId = map.getKey();
Set<PatScanAssortVo> dataList = map.getValue();
//打印用途分类下病案总页数
int pageTotal = 0;
//病案分类列表
List<PatScanAssort> patScanAssortList = new ArrayList<>();
PatScanAssort patScanAssort = null;
//转换成病案分类List
for (PatScanAssortVo scanAssortVo : dataList) {
String assortId = scanAssortVo.getAssortId();
String assortName = scanAssortVo.getAssortName();
//病案分类页数
int pageNumber = 0;
for (PatScanAssortVo assortVo : patScanAssortVos) {
if (!ObjectUtils.isEmpty(scanAssortVo.getTypeId()) && StringUtils.isNotBlank(assortVo.getAssortId()) && assortVo.getAssortId().equals(assortId) && assortVo.getTypeId().equals(typeId)) {
pageNumber++;
}
}
patScanAssort = new PatScanAssort();
patScanAssort.setAssortId(assortId);
patScanAssort.setAssortName(assortName);
patScanAssort.setPageNumber(pageNumber);
patScanAssortList.add(patScanAssort);
pageTotal += pageNumber;
}
patInfoEmrTypeVo = new PatInfoEmrTypeVo();
patInfoEmrTypeVo.setScanAssortList(patScanAssortList);
patInfoEmrTypeVo.setPageTotal(pageTotal);
patInfoEmrTypeVo.setTypeId(typeId);
patInfoEmrTypeVoList.add(patInfoEmrTypeVo);
}
return patInfoEmrTypeVoList;
}
private String selectRootByNotWater(String srcPath) {
//获取盘符
String str = srcPath.substring(0, 1).toUpperCase();

@ -0,0 +1,15 @@
package com.emr.vo;
import lombok.Data;
import java.util.List;
@Data
public class PatInfoEmrTypeVo {
private List<PatScanAssort> scanAssortList; //分类列表
private Integer pageTotal; //总页数
private Integer typeId;
}

@ -0,0 +1,11 @@
package com.emr.vo;
import lombok.Data;
@Data
public class PatScanAssort {
private String assortId; //分类id
private String assortName; //分类名称
private Integer pageNumber; //分类页数
}

@ -0,0 +1,13 @@
package com.emr.vo;
import lombok.Data;
@Data
public class PatScanAssortVo {
private String assortId; //分类id
private String assortName; //分类名称
private Integer pageNumber; //分类页数
private Integer typeId; //分类类型
}

@ -0,0 +1,10 @@
package com.emr.vo.emrType;
import lombok.Data;
@Data
public class EmrTypeFeVo {
private Integer id;
private String typeName;
}

@ -204,4 +204,7 @@
type_flag = #{typeFlag}
</where>
</select>
<select id="getEmrTypeList" resultType="com.emr.vo.emrType.EmrTypeFeVo">
SELECT id,type_name FROM emr_type where effective = 1
</select>
</mapper>

@ -298,6 +298,32 @@
and t.scan_page = #{scanPage}
and t.is_del = 0
</select>
<select id="getScanAssortPageByPatEmrTyp" resultType="com.emr.vo.PatScanAssortVo">
SELECT
b.assort_id,
c.assort_name,
d.type_id,
e.type_name
FROM
commomtable a
LEFT JOIN t_scan_assort b ON a.patient_id = b.patient_id
INNER JOIN zd_assort c ON b.assort_id = c.assort_id
LEFT JOIN emr_type_related d ON b.assort_id = d.assort_id
LEFT JOIN emr_type e ON d.type_id = e.id
WHERE b.is_del = 0
<if test="emrTypeIds != null and emrTypeIds.size() > 0">
AND d.type_id in
<foreach collection="emrTypeIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
and a.inpatient_no = #{inpatientNo}
AND CONVERT ( VARCHAR ( 100 ), a.dis_date, 23 ) = #{disDate}
and a.name = #{name}
ORDER BY
c.assort_sort,
b.scan_page
</select>
<!--修改图片集合为未删除-->
<update id="recoverPic">
update t_scan_assort set is_del = 0 where patient_id = #{patientId}

Loading…
Cancel
Save