湘雅附二病例复印接口

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;
@ -320,12 +323,12 @@ public class FontController {
for (ArchiveMasterVo archiveMaster : list) {
String masterId = archiveMaster.getId();
List<String> pdfPaths = archiveDetailMapper.selectPDFRATH2(masterId, "7A9C621E3F4F4C9CA95292141C5E15E8");
if (pdfPaths!=null||pdfPaths.isEmpty()){
String newPath = "D:\\jiashi\\copy" + File.separator + archiveMaster.getName() + "-" + archiveMaster.getInpNo()+"-知情同意书";
if (pdfPaths != null || pdfPaths.isEmpty()) {
String newPath = "D:\\jiashi\\copy" + File.separator + archiveMaster.getName() + "-" + archiveMaster.getInpNo() + "-知情同意书";
if (!new File(newPath).isDirectory()) {
new File(newPath).mkdirs();
}
for (String pdfPath:pdfPaths){
for (String pdfPath : pdfPaths) {
String newSrc = newPath + File.separator + new File(pdfPath).getName();
try (InputStream inputStream = new FileInputStream(pdfPath);
OutputStream outputStream = new FileOutputStream(newSrc)) {
@ -598,6 +601,7 @@ public class FontController {
}
return Msg.fail();
}
/**
* @description:
* @params: taskid
@ -607,23 +611,25 @@ public class FontController {
*/
@ResponseBody
@RequestMapping(value = "BatchExportPdf")
public String batchExportPdf(int taskId) throws Exception {
public String batchExportPdf(int taskId) throws Exception {
return batchExportService.batchExportPdf(taskId);
}
/**
* pdf
*
* @param taskId
* @param response
*/
@ResponseBody
@RequestMapping(value = "downloadPdfZip", produces = {"text/json;charset=UTF-8"}, method = RequestMethod.POST)
public String downloadPdfZip(int taskId,HttpServletResponse response) throws IOException {
return batchExportService.downloadPdfZip(taskId,response);
public String downloadPdfZip(int taskId, HttpServletResponse response) throws IOException {
return batchExportService.downloadPdfZip(taskId, response);
}
/**
*
*
* @param patientId
* @return Msg
*/
@ -639,58 +645,59 @@ public class FontController {
/**
* 广
*
* @param // hemodialysisId 血透ID
* @return String
*/
@RequestMapping(value = "commomListqf", method = RequestMethod.GET)
public String commomListqf(Model model, HttpServletRequest request,
@RequestParam("dataSource") String dataSource,
@RequestParam(value="hemodialysisId",required = false) String hemodialysisId,
@RequestParam(value="admissId",required = false) String admissId,
@RequestParam(value="outpatientNo",required = false) String outpatientNo) {
@RequestParam(value = "hemodialysisId", required = false) String hemodialysisId,
@RequestParam(value = "admissId", required = false) String admissId,
@RequestParam(value = "outpatientNo", required = false) String outpatientNo) {
String userName = ObjectUtils.isEmpty(request.getParameter("userName")) ? "admin" : request.getParameter("userName");
Map<String,String> params = new HashMap<>();
Map<String, String> params = new HashMap<>();
params.put("userName", userName);
params.put("userPwd", "123456");
String result = HttpClientUtils.doPost(POWER_URLHEAD + "/login", params);
JSONObject jsonObject = JSONObject.parseObject(result);
String token = jsonObject.getString("token");
if(!ObjectUtils.isEmpty(token)){
if (!ObjectUtils.isEmpty(token)) {
this.getUserInfo(request, token, userName);
//查询表格配置表的数据,根据配置动态显示表格字段
Map<String,Object> tableConfigMap = commomMapper.queryTableConfig(dataSource);
if(!ObjectUtils.isEmpty(tableConfigMap)){
Map<String, Object> tableConfigMap = commomMapper.queryTableConfig(dataSource);
if (!ObjectUtils.isEmpty(tableConfigMap)) {
//血透ID 广总血透接口的参数
model.addAttribute("hemodialysisId",hemodialysisId);
model.addAttribute("hemodialysisId", hemodialysisId);
//住院号
model.addAttribute("admissId",admissId);
model.addAttribute("admissId", admissId);
//门诊号
model.addAttribute("outpatientNo",outpatientNo);
model.addAttribute("outpatientNo", outpatientNo);
//获取数据来源
model.addAttribute("dataSource",dataSource);
model.addAttribute("dataSource", dataSource);
//获取需要查询字段
model.addAttribute("tableQueryField",tableConfigMap.get("tableField"));
model.addAttribute("tableQueryField", tableConfigMap.get("tableField"));
//显示查询字段,并转为驼峰格式
model.addAttribute("tableField", ObjectUtils.isEmpty(tableConfigMap.get("tableField")) ? "" : DateUtils.toCamelCase(tableConfigMap.get("tableField").toString()));
//获取查询字段中文名称
model.addAttribute("tableFieldName",tableConfigMap.get("tableFieldName"));
model.addAttribute("tableFieldName", tableConfigMap.get("tableFieldName"));
//获取排序字段,可点击表头列实现排序
model.addAttribute("sortField",ObjectUtils.isEmpty(tableConfigMap.get("sortField")) ? "" : DateUtils.toCamelCase(tableConfigMap.get("sortField").toString()));
model.addAttribute("sortField", ObjectUtils.isEmpty(tableConfigMap.get("sortField")) ? "" : DateUtils.toCamelCase(tableConfigMap.get("sortField").toString()));
//获取默认排序字段
request.getSession().setAttribute("defaultSortField",tableConfigMap.get("defaultSortField"));
request.getSession().setAttribute("defaultSortField", tableConfigMap.get("defaultSortField"));
//获取默认排序字段方式
request.getSession().setAttribute("defaultSortFieldType",tableConfigMap.get("defaultSortFieldType"));
request.getSession().setAttribute("defaultSortFieldType", tableConfigMap.get("defaultSortFieldType"));
}
return "recordManage/commomSearch/commomListqf";
}else{
} else {
model.addAttribute("msg", "模拟登录失败");
return "font/msg";
}
}
public void getUserInfo(HttpServletRequest request, String token, String userName){
public void getUserInfo(HttpServletRequest request, String token, String userName) {
//创建连接工厂
JAXDynamicClientFactory dcf = JAXDynamicClientFactory.newInstance();
//创建客户端
@ -703,7 +710,7 @@ public class FontController {
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != client) {
if (null != client) {
client.destroy();
}
}
@ -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