查看pdf修改

master
linjj 3 years ago
parent 819bf862de
commit 318bd420fe

@ -1,9 +1,16 @@
package com.emr.controller; package com.emr.controller;
import com.emr.dao.CommomMapper; import com.emr.dao.CommomMapper;
import com.emr.dao.approve.Emr_Apply_ApproveMapper;
import com.emr.dao.recordLock.Emr_LockMapper; import com.emr.dao.recordLock.Emr_LockMapper;
import com.emr.dao.tScanAssort.T_Scan_AssortMapper; import com.emr.dao.tScanAssort.T_Scan_AssortMapper;
import com.emr.entity.Power_User;
import com.emr.entity.Zd_Assort;
import com.emr.entity.recordType.Emr_Type;
import com.emr.service.FontService; import com.emr.service.FontService;
import com.emr.service.Zd_AssortServiceImpl;
import com.emr.service.recordType.EmrTypeService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.Jpg2PdfUtil; import com.emr.util.Jpg2PdfUtil;
import com.emr.vo.FontVo.*; import com.emr.vo.FontVo.*;
import com.emr.vo.Msg; import com.emr.vo.Msg;
@ -25,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
@ -56,6 +64,13 @@ public class FontController {
@Autowired @Autowired
private FontService fontService; private FontService fontService;
@Autowired
private EmrTypeService emrTypeService;
@Autowired
private Zd_AssortServiceImpl assortService;
@Autowired
private Emr_Apply_ApproveMapper apply_approveMapper;
/** /**
* 2.1 * 2.1
@ -417,4 +432,43 @@ public class FontController {
public Msg updateTableCommom(CommomVo commom) throws Exception{ public Msg updateTableCommom(CommomVo commom) throws Exception{
return fontService.updateTableCommom(commom); return fontService.updateTableCommom(commom);
} }
/**
* @description:
* @params: patientId
* @params: flag
* @author linjj
* @date: 2023/5/18 15:45
*/
@RequestMapping("showRecordIframeBlood")
public String showRecordIframeBlood(String patientId, String flag, Model model, HttpServletRequest request) {
model.addAttribute("patientId", patientId);
Power_User user = new Power_User();
user.setUserName("admin");
user.setRoleId(0);
//打印分类集合
List<Emr_Type> emrTypes = null;
List<Zd_Assort> zdAssorts = null;
int isDownload = 0;
try {
emrTypes = emrTypeService.selectAllByCreater2(1, request);
//病案分段集合
zdAssorts = assortService.selectAllByPower(user);
isDownload = apply_approveMapper.selectIsPowerByUser(user.getUserName(), patientId, 3);
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
}
model.addAttribute("emrTypes", emrTypes);
model.addAttribute("zdAssorts", zdAssorts);
model.addAttribute("isDownload", isDownload);
//查询是否有打印权限
int printFlag = 1;
int moveFlag = 1;
model.addAttribute("moveFlag", moveFlag);
model.addAttribute("printFlag", printFlag);
model.addAttribute("flag", flag);
return "recordManage/commomSearch/showRecordIframeBlood";
}
} }

@ -30,6 +30,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.util.CollectionUtils; import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -92,6 +93,8 @@ public class CommomSearchController {
private LogService logService; private LogService logService;
@Autowired @Autowired
private EmrPdfWaterSetMapper pdfWaterSetMapper; private EmrPdfWaterSetMapper pdfWaterSetMapper;
@Value("${initialization}")
private String initialization;
@Autowired @Autowired
private EmrPrintDownloadInfoMapper emrPrintDownloadInfoMapper; private EmrPrintDownloadInfoMapper emrPrintDownloadInfoMapper;
@ -103,6 +106,21 @@ public class CommomSearchController {
return "recordManage/commomSearch/commomListqf"; return "recordManage/commomSearch/commomListqf";
} }
/**
* @description:
* @params: Initialization
* @return: Initialization
* @author linjj
* @date: 2023/6/2 17:04
*/
@RequestMapping("getInitialization")
@ResponseBody
public String getInitialization() {
return initialization;
}
//加载性别 //加载性别
@RequestMapping("getSex") @RequestMapping("getSex")
@ResponseBody @ResponseBody
@ -203,6 +221,23 @@ public class CommomSearchController {
return null; return null;
} }
} }
/***
*
* @param request
* @return
*/
@RequestMapping("selectEmrType")
@ResponseBody
public String selectEmrType(HttpServletRequest request) {
List<Emr_Type> emrTypes = assortService.selectEmrType();
return JSON.toJSONString(emrTypes);
}
/******************************病案预览操作****************************/ /******************************病案预览操作****************************/
/** /**
* 174 * 174
@ -652,7 +687,6 @@ public class CommomSearchController {
} }
} }
} }
List<Archive_Detail> archiveDetails = new ArrayList<>();
if (commomVos.size() == 0) { if (commomVos.size() == 0) {
List<CommomTree> archiveDetail = archiveDetailMapper.selectPdfPathByPatient2(patientId); List<CommomTree> archiveDetail = archiveDetailMapper.selectPdfPathByPatient2(patientId);
//第一级:全部影像资料 //第一级:全部影像资料
@ -862,15 +896,16 @@ public class CommomSearchController {
String pdfName = "档案管理PDF"; String pdfName = "档案管理PDF";
//根据图片路径转换pdf //根据图片路径转换pdf
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1); EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//定义第二文本水印 姓名 + 科室 + ip //定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet); EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet);
//获取角色是否加水印 //UserEffective为1是开启用户信息水印
Integer userSex = user.getUserSex(); Short userEffective = emrPdfWaterSet.getUserEffective();
if (userSex == null || userSex == 0) { if (userEffective==1){
emrPdfWaterSet.setEffective(Short.valueOf("0"));
emrPdfWaterSet1.setEffective(Short.valueOf("0"));
}
img2PdfUtil.imageToPdf(response, scanPages, pdfName, emrPdfWaterSet, emrPdfWaterSet1); img2PdfUtil.imageToPdf(response, scanPages, pdfName, emrPdfWaterSet, emrPdfWaterSet1);
}else {
img2PdfUtil.imageToPdfUserEffective(response, scanPages, pdfName, emrPdfWaterSet);
}
//移除缓存 //移除缓存
request.removeAttribute(mapKey); request.removeAttribute(mapKey);
} }
@ -883,7 +918,16 @@ public class CommomSearchController {
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
String mapKey = user.getUserName() + "_" + patientId; String mapKey = user.getUserName() + "_" + patientId;
List<String> filePaths = (List<String>) request.getSession().getAttribute(mapKey); List<String> filePaths = (List<String>) request.getSession().getAttribute(mapKey);
Jpg2PdfUtil.mulFile2One(response, filePaths, pdfWater); if (!CollectionUtils.isEmpty(filePaths)) {
//根据图片路径转换pdf
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet);
Jpg2PdfUtil.mulFile2One2(response, filePaths, pdfWater,emrPdfWaterSet);
//移除缓存
request.removeAttribute(mapKey);
}
} }
} }

@ -77,6 +77,8 @@ public class ApproveController {
private Emr_Apply_ApproveMapper applyApproveMapper; private Emr_Apply_ApproveMapper applyApproveMapper;
@Value("${POWER_URLHEAD}") @Value("${POWER_URLHEAD}")
private String POWER_URLHEAD; private String POWER_URLHEAD;
@Value("${applyApproveFlag}")
private String applyApproveFlag;
@Autowired @Autowired
private CommomService commomService; private CommomService commomService;
/** /**
@ -152,6 +154,12 @@ public class ApproveController {
} }
} }
if (!commomtables.isEmpty()) { if (!commomtables.isEmpty()) {
if (applyApproveFlag.equals("1")){
SimpleDateFormat fmt1 = new SimpleDateFormat("yyyy-MM-dd");
List<String> expireTimeList = applyApproveService.expireTime(fmt1.format(new Date()),applyApprove.getEffeDays());
String s = expireTimeList.get(expireTimeList.size()-1);
applyApprove.setEffeTime(s);
}
applyApprove.setApplyer(powerUser.getUserName()); applyApprove.setApplyer(powerUser.getUserName());
applyApprove.setApplyTime(fmt.format(new Date())); applyApprove.setApplyTime(fmt.format(new Date()));
List<Emr_Apply_Approve> list = new ArrayList<>(); List<Emr_Apply_Approve> list = new ArrayList<>();
@ -783,12 +791,25 @@ public class ApproveController {
@RequestMapping(value = "updateApprove") @RequestMapping(value = "updateApprove")
@ResponseBody @ResponseBody
public ResultUtil updateApprove(Emr_Apply_Approve applyApprove,HttpServletRequest request) throws Exception{ public ResultUtil updateApprove(Emr_Apply_Approve applyApprove,HttpServletRequest request) throws Exception{
//如果等一就是开启了过滤节假日
if (applyApproveFlag.equals("1")){
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");
String userName = user.getUserName(); String userName = user.getUserName();
applyApprove.setApprover(userName); applyApprove.setApprover(userName);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
List<String> expireTimeList = applyApproveService.expireTime(fmt.format(new Date()),applyApprove.getEffeDays());
String s = expireTimeList.get(expireTimeList.size()-1);
applyApprove.setApproveTime(fmt.format(new Date())); applyApprove.setApproveTime(fmt.format(new Date()));
applyApprove.setEffeTime(s);
applyApproveService.updateEmrApplyApprove(applyApprove); applyApproveService.updateEmrApplyApprove(applyApprove);
}else {
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");
String userName = user.getUserName();
applyApprove.setApprover(userName);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
applyApprove.setApproveTime(fmt.format(new Date()));
applyApproveService.updateEmrApplyApprove(applyApprove);
}
return ResultUtil.ok(); return ResultUtil.ok();
} }

@ -28,7 +28,7 @@ public class QualityController {
@RequiresPermissions("/qualityModel/qualityJsp") @RequiresPermissions("/qualityModel/qualityJsp")
@OptionalLog(module = "查看", methods = "常用查询页面") @OptionalLog(module = "查看", methods = "质检")
@RequestMapping("qualityJsp") @RequestMapping("qualityJsp")
public String qualityModel(Model model) { public String qualityModel(Model model) {
return "quality/quality"; return "quality/quality";

@ -858,9 +858,23 @@ public class TemplateSearchController {
*/ */
@RequestMapping(value = "cutomSearchTable", produces = {"text/json;charset=UTF-8"}, method = RequestMethod.POST) @RequestMapping(value = "cutomSearchTable", produces = {"text/json;charset=UTF-8"}, method = RequestMethod.POST)
@ResponseBody @ResponseBody
public String cutomSearchTable(String selectSql,String fromTableSql,String whereSql,String orderBys,Integer page, Integer limit, HttpServletRequest request) { public String cutomSearchTable(String selectSql,String fromTableSql,String whereSql,String orderBys,Integer page, Integer limit, HttpServletRequest request,String sortNames,String sortOrder) {
//匹配权限 //匹配权限
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
if (!sortNames.equals("id")&&!sortNames.equals("id")){
if (sortNames.equals("disDate")){
orderBys="order by commomtable.dis_date"+" "+sortOrder;
}
if (sortNames.equals("admissDate")){
orderBys="order by commomtable.admiss_date"+" "+sortOrder;
}
if (sortNames.equals("admissId")){
orderBys="order by commomtable.admiss_id"+" "+sortOrder;
}
if (sortNames.equals("inpatientNo")){
orderBys="order by commomtable.inpatient_no"+" "+sortOrder;
}
}
String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user); String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user);
if (StringUtils.isNoneBlank(selectSql)) { if (StringUtils.isNoneBlank(selectSql)) {
if (null != page && null != limit) { if (null != page && null != limit) {
@ -1104,8 +1118,7 @@ public class TemplateSearchController {
// } // }
if (null != scanPathVos && !scanPathVos.isEmpty()) { if (null != scanPathVos && !scanPathVos.isEmpty()) {
// 创建临时路径,存放压缩文件 // 创建临时路径,存放压缩文件
String zipFilePath = "D://tmp"; File file = new File("D:/tmp");
File file = new File(zipFilePath);
//查询保存文件目录是否存在 //查询保存文件目录是否存在
createFile(file); createFile(file);
// 压缩输出流,包装流,将临时文件输出流包装成压缩流,将所有文件输出到这里,打成zip包 // 压缩输出流,包装流,将临时文件输出流包装成压缩流,将所有文件输出到这里,打成zip包
@ -1130,7 +1143,7 @@ public class TemplateSearchController {
//该流不可以手动关闭,手动关闭下载会出问题,下载完成后会自动关闭 //该流不可以手动关闭,手动关闭下载会出问题,下载完成后会自动关闭
ServletOutputStream outputStream = response.getOutputStream(); ServletOutputStream outputStream = response.getOutputStream();
FileInputStream inputStream = new FileInputStream(zipFilePath); FileInputStream inputStream = new FileInputStream("D:/tmp");
// 如果是SpringBoot框架,在这个路径 // 如果是SpringBoot框架,在这个路径
// org.apache.tomcat.util.http.fileupload.IOUtils产品 // org.apache.tomcat.util.http.fileupload.IOUtils产品
// 否则需要自主引入apache的 commons-io依赖 // 否则需要自主引入apache的 commons-io依赖
@ -1141,7 +1154,7 @@ public class TemplateSearchController {
inputStream.close(); inputStream.close();
//下载完成之后删掉这个zip包 //下载完成之后删掉这个zip包
File fileTempZip = new File(zipFilePath); File fileTempZip = new File("D:/tmp");
fileTempZip.delete(); fileTempZip.delete();
} }
} catch (Exception e) { } catch (Exception e) {
@ -1391,12 +1404,15 @@ public class TemplateSearchController {
public String getScanCountByPatientId(String patientId, String flag) { public String getScanCountByPatientId(String patientId, String flag) {
if (StringUtils.isNoneBlank(patientId)) { if (StringUtils.isNoneBlank(patientId)) {
try { try {
List<ScanPathVo> scanPathVos = scanPathMapper.selectScanFileByBloodPatientIds(patientId, null, flag); List<ScanPathVo> scanPathVos = scanPathMapper.selectScanFileByBloodPatientId(patientId, null, flag);
if (null != scanPathVos && !scanPathVos.isEmpty()) { if (null != scanPathVos && !scanPathVos.isEmpty()) {
return "1"; return "1";
} else {
return "0";
} }
List<CommomTree> commomTrees = archiveDetailMapper.selectPdfPathByPatient3(patientId, null);
if (null != commomTrees && !commomTrees.isEmpty()){
return "1";
}
} catch (Exception e) { } catch (Exception e) {
ExceptionPrintUtil.printException(e); ExceptionPrintUtil.printException(e);
e.printStackTrace(); e.printStackTrace();
@ -1424,7 +1440,7 @@ public class TemplateSearchController {
} }
assortIds = assortIdsBuilder.toString(); assortIds = assortIdsBuilder.toString();
} }
List<ScanPathVo> scanPathVos = scanPathMapper.selectScanFileByBloodPatientIds(patientIds, assortIds, flag); List<ScanPathVo> scanPathVos = scanPathMapper.selectScanFileByBloodPatientIds1(patientIds, assortIds, flag);
if (null != scanPathVos && !scanPathVos.isEmpty()) { if (null != scanPathVos && !scanPathVos.isEmpty()) {
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1); EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//文件路径集合 //文件路径集合
@ -1461,8 +1477,16 @@ public class TemplateSearchController {
} }
} }
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
String filename=fmt.format(new Date()); List<ScanPathVo> scanPathVos1 = scanPathMapper.selectFilaname(patientIds);
Jpg2PdfUtil.mulFile2One3(response,filePaths,filename); ScanPathVo vo = scanPathVos1.get(0);
String disDate = "";
if (null != vo.getDisDate()) {
disDate = fmt.format(vo.getDisDate());
}
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//下载文件名
String filename = vo.getInpatientNo().trim() + "-" + vo.getName().trim() + "-" + disDate.trim() + "_" + fmt.format(new Date());
Jpg2PdfUtil.mulFile2One3(response,filePaths,filename,emrPdfWaterSet);
} }
} catch (Exception e) { } catch (Exception e) {
ExceptionPrintUtil.printException(e); ExceptionPrintUtil.printException(e);

@ -14,6 +14,7 @@ public interface Archive_DetailMapper {
List<Archive_Detail> selectPdfPathByPatient(@Param("patientId")String patientId,@Param("assortIds")String assortIds); List<Archive_Detail> selectPdfPathByPatient(@Param("patientId")String patientId,@Param("assortIds")String assortIds);
List<CommomTree> selectPdfPathByPatient2(@Param("patientId")String patientId); List<CommomTree> selectPdfPathByPatient2(@Param("patientId")String patientId);
List<String> selectPDFRATH(@Param("patientId")String patientId);
List<CommomTree> selectPdfPathByPatient3(@Param("patientIds")String patientIds,@Param("assortIds")String assortIds); List<CommomTree> selectPdfPathByPatient3(@Param("patientIds")String patientIds,@Param("assortIds")String assortIds);

@ -1,6 +1,7 @@
package com.emr.dao; package com.emr.dao;
import com.emr.entity.Zd_Assort; import com.emr.entity.Zd_Assort;
import com.emr.entity.recordType.Emr_Type;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -13,6 +14,9 @@ public interface Zd_AssortMapper {
* *
* */ * */
List<Zd_Assort> selectAll(@Param("record")Zd_Assort record); List<Zd_Assort> selectAll(@Param("record")Zd_Assort record);
List<Emr_Type>selectEmrType();
/** /**
* *
* */ * */

@ -80,4 +80,6 @@ public interface Emr_Apply_ApproveMapper {
* @return * @return
*/ */
Emr_Apply_Approve selectByApplyerAndPatientId(@Param("userName")String userName,@Param("patientId")String patientId); Emr_Apply_Approve selectByApplyerAndPatientId(@Param("userName")String userName,@Param("patientId")String patientId);
List<String>expireTime(@Param("currentTime") String currentTime,@Param("effeDays") int effeDays);
} }

@ -14,6 +14,17 @@ public interface ScanPathMapper {
List<ScanPathVo> selectScanFileByBloodPatientIds(@Param("patientIds") String patientIds, List<ScanPathVo> selectScanFileByBloodPatientIds(@Param("patientIds") String patientIds,
@Param("assortIds") String assortIds, @Param("flag") String flag); @Param("assortIds") String assortIds, @Param("flag") String flag);
List<ScanPathVo> selectScanFileByBloodPatientIds1(@Param("patientIds") String patientIds,
@Param("assortIds") String assortIds, @Param("flag") String flag);
List<ScanPathVo> selectFilaname(@Param("patientIds") String patientIds);
List<ScanPathVo> selectScanFileByBloodPatientId(@Param("patientIds") String patientIds,
@Param("assortIds") String assortIds, @Param("flag") String flag);
/** /**
* *
* @param sql * @param sql

@ -27,7 +27,7 @@
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, effective, up_or_under, transparent, text, text_x, text_y, text_color, text_size, id, effective, up_or_under, transparent, text, text_x, text_y, text_color, text_size,
text_rotation, is_img, img_file, img_width, img_height, img_x, img_y, unique_id, text_rotation, is_img, img_file, img_width, img_height, img_x, img_y, unique_id,
download_effective, download_is_img, print_effective, print_is_img download_effective, download_is_img, print_effective, print_is_img,user_effective
</sql> </sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select select
@ -277,6 +277,7 @@
download_effective = #{downloadEffective,jdbcType=SMALLINT}, download_effective = #{downloadEffective,jdbcType=SMALLINT},
download_is_img = #{downloadIsImg,jdbcType=SMALLINT}, download_is_img = #{downloadIsImg,jdbcType=SMALLINT},
print_effective = #{printEffective,jdbcType=SMALLINT}, print_effective = #{printEffective,jdbcType=SMALLINT},
user_effective = #{userEffective,jdbcType=SMALLINT},
print_is_img = #{printIsImg,jdbcType=SMALLINT} print_is_img = #{printIsImg,jdbcType=SMALLINT}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>

@ -20,4 +20,6 @@ public interface QualityMapper {
List<String>getFliePath(@Param("ph")String ph); List<String>getFliePath(@Param("ph")String ph);
List<String>getPh(@Param("startRange")String startRange, @Param("endRange")String endRange); List<String>getPh(@Param("startRange")String startRange, @Param("endRange")String endRange);
int addPh(@Param("ph")String ph);
} }

@ -25,6 +25,18 @@ public class Power_User extends UserVo {
* *
*/ */
private String userName; private String userName;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/** /**
* 10 * 10
*/ */

@ -45,6 +45,16 @@ public class EmrPdfWaterSet implements Serializable {
private Short printIsImg; private Short printIsImg;
private Short userEffective;
public Short getUserEffective() {
return userEffective;
}
public void setUserEffective(Short userEffective) {
this.userEffective = userEffective;
}
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public Integer getId() { public Integer getId() {

@ -2,6 +2,7 @@ package com.emr.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.emr.dao.Archive_DetailMapper;
import com.emr.dao.CommomMapper; import com.emr.dao.CommomMapper;
import com.emr.dao.emrPdfWaterSet.EmrPdfWaterSetMapper; import com.emr.dao.emrPdfWaterSet.EmrPdfWaterSetMapper;
import com.emr.entity.EmrComomSet; import com.emr.entity.EmrComomSet;
@ -10,8 +11,10 @@ import com.emr.entity.ResultUtil;
import com.emr.entity.emrPdfWaterSet.EmrPdfWaterSet; import com.emr.entity.emrPdfWaterSet.EmrPdfWaterSet;
import com.emr.entity.tScanAssort.T_Scan_Assort; import com.emr.entity.tScanAssort.T_Scan_Assort;
import com.emr.service.tScanAssort.T_Scan_AssortService; import com.emr.service.tScanAssort.T_Scan_AssortService;
import com.emr.util.Jpg2PdfUtil;
import com.emr.util.img2PdfUtil; import com.emr.util.img2PdfUtil;
import com.emr.vo.User; import com.emr.vo.User;
import com.emr.vo.commomSearch.CommomTree;
import com.emr.vo.commomSearch.CommomVo; import com.emr.vo.commomSearch.CommomVo;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
@ -30,8 +33,10 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
@ -71,6 +76,8 @@ public class CommomService {
private T_Scan_AssortService scanAssortService; private T_Scan_AssortService scanAssortService;
@Autowired @Autowired
private EmrPdfWaterSetMapper pdfWaterSetMapper; private EmrPdfWaterSetMapper pdfWaterSetMapper;
@Autowired
private Archive_DetailMapper archiveDetailMapper;
//获取所属医院用户名集合 //获取所属医院用户名集合
public static StringBuilder creaters(HttpServletRequest request) { public static StringBuilder creaters(HttpServletRequest request) {
@ -150,15 +157,14 @@ public class CommomService {
ResultUtil resultUtil = selectRootPath(patientId, commomVo.getInpatientNo()); ResultUtil resultUtil = selectRootPath(patientId, commomVo.getInpatientNo());
if (resultUtil.getCode().equals(0)) { if (resultUtil.getCode().equals(0)) {
String path = resultUtil.getMsg().replaceAll(" ", ""); String path = resultUtil.getMsg().replaceAll(" ", "");
//保存至commomtable表 commomVo.setNewPath(commomVo.getFilePath());
commomVo.setNewPath(path);
commomMapper.updateByPrimaryKeySelective(commomVo); commomMapper.updateByPrimaryKeySelective(commomVo);
List<MultipartFile> fileList = CollectionUtils.arrayToList(files); List<MultipartFile> fileList = CollectionUtils.arrayToList(files);
//定义批量添加进图片明细表集合 //定义批量添加进图片明细表集合
SimpleDateFormat fmt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss "); SimpleDateFormat fmt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
Date date = new Date(System.currentTimeMillis()); Date date = new Date(System.currentTimeMillis());
String format = fmt1.format(date); String format = fmt1.format(date);
List<T_Scan_Assort> insertList = getScanAssortListByUpdatePic2(fileList, patientId, assortId, path,format); List<T_Scan_Assort> insertList = getScanAssortListByUpdatePic2(fileList, patientId, assortId, path, format);
//批量新增图片记录 //批量新增图片记录
scanAssortService.SimpleInsert(insertList); scanAssortService.SimpleInsert(insertList);
return ResultUtil.ok(); return ResultUtil.ok();
@ -169,46 +175,47 @@ public class CommomService {
return null; return null;
} }
public String getOperIp(){ public String getOperIp() {
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 获取访问真实IP // 获取访问真实IP
String ipAddress = request.getHeader("x-forwarded-for"); String ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP"); ipAddress = request.getHeader("Proxy-Client-IP");
} }
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP"); ipAddress = request.getHeader("WL-Proxy-Client-IP");
} }
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr(); ipAddress = request.getRemoteAddr();
if("127.0.0.1".equals(ipAddress) || "0:0:0:0:0:0:0:1".equals(ipAddress)){ if ("127.0.0.1".equals(ipAddress) || "0:0:0:0:0:0:0:1".equals(ipAddress)) {
//根据网卡取本机配置的IP //根据网卡取本机配置的IP
InetAddress inet=null; InetAddress inet = null;
try { try {
inet = InetAddress.getLocalHost(); inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) { } catch (UnknownHostException e) {
e.printStackTrace(); e.printStackTrace();
} }
assert inet != null; assert inet != null;
ipAddress= inet.getHostAddress(); ipAddress = inet.getHostAddress();
} }
} }
//对于通过多个代理的情况第一个IP为客户端真实IP,多个IP按照','分割 //对于通过多个代理的情况第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15 if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){ if (ipAddress.indexOf(",") > 0) {
ipAddress = ipAddress.substring(0,ipAddress.indexOf(",")); ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
} }
} }
return ipAddress; return ipAddress;
} }
//脐血库显示pdf //脐血库显示pdf
public void showRecordContentBlood(String patientId, String scanPages, String sources, String flag, HttpServletResponse response,HttpServletRequest request) throws Exception { public void showRecordContentBlood(String patientId, String scanPages, String sources, String flag, HttpServletResponse response, HttpServletRequest request) throws Exception {
if (StringUtils.isNotBlank(patientId)) { if (StringUtils.isNotBlank(patientId)) {
patientId = patientId.replace("\'", ""); patientId = patientId.replace("\'", "");
//查询 //查询
if (StringUtils.isNotBlank(flag)) { if (StringUtils.isNotBlank(flag)) {
CommomVo commomVo = commomMapper.selectByPrimaryKey(patientId); CommomVo commomVo = commomMapper.selectByPrimaryKey(patientId);
if (StringUtils.isNotBlank(commomVo.getFilePath())) {
//flag = home_addr取home_addr字段path_file取home_addr字段 //flag = home_addr取home_addr字段path_file取home_addr字段
String root1 = ""; String root1 = "";
if ("home_addr".equals(flag)) { if ("home_addr".equals(flag)) {
@ -224,12 +231,7 @@ public class CommomService {
for (int i = 0; i < scanPageArr.length; i++) { for (int i = 0; i < scanPageArr.length; i++) {
String srcStr = ""; String srcStr = "";
if (StringUtils.isNotBlank(scanPageArr[i])) { if (StringUtils.isNotBlank(scanPageArr[i])) {
if ("1".equals(sourceArr[i])) {
srcStr = root1 + File.separator + scanPageArr[i]; srcStr = root1 + File.separator + scanPageArr[i];
} else {
// srcStr = root2 + File.separator + scanPageArr[i];
srcStr = scanPageArr[i];
}
} }
src.add(srcStr); src.add(srcStr);
} }
@ -243,9 +245,18 @@ public class CommomService {
if (!filePaths.isEmpty()) { if (!filePaths.isEmpty()) {
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
String mapKey = user.getUserName() + "_" + patientId; String mapKey = user.getUserName() + "_" + patientId;
request.getSession().setAttribute(mapKey,filePaths); request.getSession().setAttribute(mapKey, filePaths);
}
} else {
List<String> commomTrees = archiveDetailMapper.selectPDFRATH(patientId);
if (!commomTrees.isEmpty()) {
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
String mapKey = user.getUserName() + "_" + patientId;
request.getSession().setAttribute(mapKey, commomTrees);
} }
} }
}
} }
} }
@ -259,18 +270,18 @@ public class CommomService {
public EmrPdfWaterSet getEmrPdfWaterSet(EmrPdfWaterSet emrPdfWaterSet) { public EmrPdfWaterSet getEmrPdfWaterSet(EmrPdfWaterSet emrPdfWaterSet) {
EmrPdfWaterSet emrPdfWaterSet1 = new EmrPdfWaterSet(); EmrPdfWaterSet emrPdfWaterSet1 = new EmrPdfWaterSet();
BeanUtils.copyProperties(emrPdfWaterSet,emrPdfWaterSet1); BeanUtils.copyProperties(emrPdfWaterSet, emrPdfWaterSet1);
//定义第二水印文本 //定义第二水印文本
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//获取reuqest //获取reuqest
HttpServletRequest request = attributes.getRequest(); HttpServletRequest request = attributes.getRequest();
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
String text = ""; String text = "";
if(StringUtils.isNotBlank(user.getUserPosition())){ if (StringUtils.isNotBlank(user.getUserName())) {
text = user.getUserPosition(); text += " " + user.getUserName();
} }
if(StringUtils.isNotBlank(user.getRemark())){ if (StringUtils.isNotBlank(user.getUserPosition())) {
text += " " + user.getRemark(); text = text + " " + user.getUserPosition();
} }
text += " " + getOperIp(); text += " " + getOperIp();
emrPdfWaterSet1.setText(text); emrPdfWaterSet1.setText(text);
@ -320,7 +331,7 @@ public class CommomService {
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1); EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//定义第二文本水印 姓名 + 科室 + ip //定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet); EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet);
img2PdfUtil.imageToPdf(response, filePaths, pdfName, emrPdfWaterSet,emrPdfWaterSet1); img2PdfUtil.imageToPdf(response, filePaths, pdfName, emrPdfWaterSet, emrPdfWaterSet1);
} }
} }
} }
@ -450,11 +461,8 @@ public class CommomService {
} }
//封装批量上传图片,返回上传图片记录 //封装批量上传图片,返回上传图片记录
private List<T_Scan_Assort> getScanAssortListByUpdatePic2(List<MultipartFile> multipartFiles, String patientId, String assortId, String root,String format) throws Exception { private List<T_Scan_Assort> getScanAssortListByUpdatePic2(List<MultipartFile> multipartFiles, String patientId, String assortId, String root, String format) throws Exception {
List<T_Scan_Assort> scanAssorts = new ArrayList<>(); List<T_Scan_Assort> scanAssorts = new ArrayList<>();
//遍历分类图片集合 //遍历分类图片集合
for (MultipartFile pic : multipartFiles) { for (MultipartFile pic : multipartFiles) {
@ -480,15 +488,14 @@ public class CommomService {
} }
//封装组织新增图片根目录 //封装组织新增图片根目录
private ResultUtil selectRootPath(String patientId, String inpatientId) { private ResultUtil selectRootPath(String patientId, String inpatientId) {
//查询设置的根目录 //查询设置的根目录
// EmrComomSet emrComomSet = commomSetService.selectByPrimaryKey(1); // EmrComomSet emrComomSet = commomSetService.selectByPrimaryKey(1);
// String newPicRoot = emrComomSet.getNewPicRoot(); // String newPicRoot = emrComomSet.getNewPicRoot();
String filePath=null; String filePath = null;
List<CommomVo> commomVos = commomMapper.selectFilePath(patientId); List<CommomVo> commomVos = commomMapper.selectFilePath(patientId);
for (CommomVo commomVo:commomVos){ for (CommomVo commomVo : commomVos) {
filePath = commomVo.getFilePath(); filePath = commomVo.getFilePath();
} }
@ -545,23 +552,38 @@ public class CommomService {
Short printEffective = emrPdfWaterSet.getPrintEffective(); Short printEffective = emrPdfWaterSet.getPrintEffective();
//获取是否打印图片水印 //获取是否打印图片水印
Short printIsImg = emrPdfWaterSet.getPrintIsImg(); Short printIsImg = emrPdfWaterSet.getPrintIsImg();
//获取是否打印用户信息
Short userEffective = emrPdfWaterSet.getUserEffective();
for (int i = 0; i < nameList.length; i++) { for (int i = 0; i < nameList.length; i++) {
//定义图片根目录地址 //定义图片根目录地址
String rootPath = ""; String rootPath = "";
String srcPath;
//组织原图片地址 //组织原图片地址
if ("1".equals(sourceList[i])) { if ("1".equals(sourceList[i])) {
//扫描图片地址位于rootPathList第一个 //扫描图片地址位于rootPathList第一个
rootPath = rootPathList[0]; rootPath = rootPathList[0];
} else if ("99".equals(sourceList[i])) {
rootPath = nameList[0];
} else { } else {
rootPath = rootPathList[1]; rootPath = rootPathList[1];
} }
//原图片地址 //原图片地址
String srcPath = rootPath + File.separator + nameList[i]; if ("99".equals(sourceList[i])) {
srcPath = nameList[i];
} else {
srcPath = rootPath + File.separator + nameList[i];
}
//定义输出地址 //定义输出地址
String outSrc = ""; String outSrc = "";
//获取项目上下文地址 //获取项目上下文地址
if ((printEffective != null && printEffective == 1) || if ((printEffective != null && printEffective == 1) ||
(printIsImg != null && printIsImg == 1)) { (printIsImg != null && printIsImg == 1)) {
if ("99".equals(sourceList[i])) {
String rootSrcPath = selectRootByNotWater(srcPath);
String str2 = srcPath.substring(0, srcPath.indexOf(File.separator));
String picPath2 = srcPath.substring(str2.length() + 1, srcPath.length());
outSrc = EMRRECORDJSP + File.separator + rootSrcPath + picPath2;
} else {
//需要水印 //需要水印
//组织加水印后图片存放目录 //组织加水印后图片存放目录
String waterPicRoot = WATERPICPATH + patientId + File.separator + sourceList[i] + File.separator; String waterPicRoot = WATERPICPATH + patientId + File.separator + sourceList[i] + File.separator;
@ -574,28 +596,40 @@ public class CommomService {
if (!new File(waterPicPath).exists()) { if (!new File(waterPicPath).exists()) {
//定义第二文本水印 姓名 + 科室 + ip //定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet); EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet);
img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath,emrPdfWaterSet1); if (userEffective==1){
img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath, emrPdfWaterSet1);
}else {
img2PdfUtil.addWatermarkPic2(new File(srcPath), emrPdfWaterSet, waterPicPath);
}
}
//组织输出地址 //组织输出地址
String root = selectRootByNotWater(WATERPICPATH);
outSrc = EMRRECORDJSP + File.separator + root+ "/jiashi/reload/"+ patientId + File.separator + sourceList[i] + File.separator + nameList[i];
} }
outSrc = EMRRECORDJSP + File.separator + "reload" + File.separator + patientId + File.separator + sourceList[i] + File.separator + nameList[i];
} else { } else {
//不需要水印 //不需要水印
String root = ""; String root = "";
String picPath = ""; String picPath = "";
//判断是否是tif图片 //判断是否是tif图片
boolean tifFileFlag = checkTifFile(srcPath); boolean tifFileFlag = checkTifFile(srcPath);
if(tifFileFlag){ if (tifFileFlag) {
String picSrc = WATERPICPATH + patientId + File.separator + sourceList[i] + File.separator; //保存目录不存在新增
//目录不存在则创建 if (!new File(WATERTIFTOJPGPATH).isDirectory()) {
if (!new File(picSrc).isDirectory()) { new File(WATERTIFTOJPGPATH).mkdirs();
new File(picSrc).mkdirs();
} }
//组织加水印后图片存放地址 Date date = new Date();
picPath = picSrc + nameList[i]; SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS");
//转换图片输出
//tifToJpg(srcPath,picPath); String format1 = format.format(date);
outSrc = EMRRECORDJSP + File.separator + "reload" + File.separator + patientId + File.separator + sourceList[i] + File.separator + nameList[i]; try {
}else{ BufferedImage bufferegImage = ImageIO.read(new File(srcPath));
ImageIO.write(bufferegImage, "jpg", new File(WATERTIFTOJPGPATH + format1 + ".jpg"));
} catch (IOException e) {
e.printStackTrace();
}
root = selectRootByNotWater(WATERTIFTOJPGPATH);
outSrc = EMRRECORDJSP + File.separator + root + "/jiashi/tifToJpgLoad/" + format1 + ".jpg";
} else {
//将原图片地址转换成映射地址 //将原图片地址转换成映射地址
//获取盘符并转换映射地址的头部地址 //获取盘符并转换映射地址的头部地址
root = selectRootByNotWater(srcPath); root = selectRootByNotWater(srcPath);
@ -614,7 +648,7 @@ public class CommomService {
} }
public List<String> selectPrintPic2(HttpServletResponse response, String patientId,String names, String sources, String mapKey) { public List<String> selectPrintPic2(HttpServletResponse response, String patientId, String names, String sources, String mapKey) {
List<String> outs = new LinkedList<>(); List<String> outs = new LinkedList<>();
if (StringUtils.isNotBlank(names)) { if (StringUtils.isNotBlank(names)) {
String[] nameList = names.split(","); String[] nameList = names.split(",");
@ -639,8 +673,8 @@ public class CommomService {
String picPath = ""; String picPath = "";
//判断是否是tif图片 //判断是否是tif图片
boolean tifFileFlag = checkTifFile(srcPath); boolean tifFileFlag = checkTifFile(srcPath);
if(tifFileFlag){ if (tifFileFlag) {
String picSrc = WATERPICPATH + patientId + File.separator ; String picSrc = WATERPICPATH + patientId + File.separator;
//目录不存在则创建 //目录不存在则创建
if (!new File(picSrc).isDirectory()) { if (!new File(picSrc).isDirectory()) {
new File(picSrc).mkdirs(); new File(picSrc).mkdirs();
@ -650,7 +684,7 @@ public class CommomService {
//转换图片输出 //转换图片输出
//tifToJpg(srcPath,picPath); //tifToJpg(srcPath,picPath);
outSrc = EMRRECORDJSP + File.separator + "reload" + File.separator + patientId + File.separator + nameList[i]; outSrc = EMRRECORDJSP + File.separator + "reload" + File.separator + patientId + File.separator + nameList[i];
}else{ } else {
//将原图片地址转换成映射地址 //将原图片地址转换成映射地址
//获取盘符并转换映射地址的头部地址 //获取盘符并转换映射地址的头部地址
root = selectRootByNotWater(srcPath); root = selectRootByNotWater(srcPath);
@ -660,8 +694,6 @@ public class CommomService {
outSrc = EMRRECORDJSP + File.separator + root + picPath; outSrc = EMRRECORDJSP + File.separator + root + picPath;
outs.add(outSrc); outs.add(outSrc);
} }
Integer value = Math.round((i + 1) * 100 / nameList.length); Integer value = Math.round((i + 1) * 100 / nameList.length);
printLoadingMap.put(mapKey, value); printLoadingMap.put(mapKey, value);
} }
@ -671,6 +703,7 @@ public class CommomService {
/** /**
* tif * tif
*
* @param srcPath * @param srcPath
* @return * @return
*/ */
@ -779,7 +812,7 @@ public class CommomService {
if (!new File(waterPicPath).exists()) { if (!new File(waterPicPath).exists()) {
//定义第二文本水印 姓名 + 科室 + ip //定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet); EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet);
img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath,emrPdfWaterSet1); img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath, emrPdfWaterSet1);
} }
//组织输出地址 //组织输出地址
outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + 3 + File.separator + nameList[i]; outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + 3 + File.separator + nameList[i];
@ -794,7 +827,7 @@ public class CommomService {
String waterPicPath = waterPicRoot + nameList[i]; String waterPicPath = waterPicRoot + nameList[i];
if (!new File(waterPicPath).exists()) { if (!new File(waterPicPath).exists()) {
EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet); EmrPdfWaterSet emrPdfWaterSet1 = getEmrPdfWaterSet(emrPdfWaterSet);
img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath,emrPdfWaterSet1); img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath, emrPdfWaterSet1);
} }
//组织输出地址 //组织输出地址
outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + sourceList[i] + File.separator + nameList[i]; outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + sourceList[i] + File.separator + nameList[i];
@ -865,12 +898,13 @@ public class CommomService {
/** /**
* *
*
* @param tableName * @param tableName
* @param commomMapper * @param commomMapper
* @param operList * @param operList
*/ */
public void simpleInsert(String tableName,CommomMapper commomMapper,List operList){ public void simpleInsert(String tableName, CommomMapper commomMapper, List operList) {
if(!CollectionUtils.isEmpty(operList)) { if (!CollectionUtils.isEmpty(operList)) {
///查询表列数 ///查询表列数
int colCount = commomMapper.selectColByTableName(tableName); int colCount = commomMapper.selectColByTableName(tableName);
List list = new ArrayList(); List list = new ArrayList();

@ -3,6 +3,7 @@ package com.emr.service;
import com.emr.dao.Zd_AssortMapper; import com.emr.dao.Zd_AssortMapper;
import com.emr.entity.Power_User; import com.emr.entity.Power_User;
import com.emr.entity.Zd_Assort; import com.emr.entity.Zd_Assort;
import com.emr.entity.recordType.Emr_Type;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -54,4 +55,8 @@ public class Zd_AssortServiceImpl{
return assortMapper.selectAllAndUserReaderByUserIdAndRoleId(user.getUserId(),user.getRoleId()); return assortMapper.selectAllAndUserReaderByUserIdAndRoleId(user.getUserId(),user.getRoleId());
} }
} }
public List<Emr_Type>selectEmrType(){
return assortMapper.selectEmrType();
}
} }

@ -163,4 +163,9 @@ public class AppleApproveServiceImpl implements ApplyApproveService{
// 执行请求 // 执行请求
HttpClients.createDefault().execute(new HttpGet(url)); HttpClients.createDefault().execute(new HttpGet(url));
} }
@Override
public List<String> expireTime(String currentTime,int effeDays) {
return applyApproveMapper.expireTime(currentTime,effeDays);
}
} }

@ -1,7 +1,6 @@
package com.emr.service.approve; package com.emr.service.approve;
import com.emr.entity.approve.Emr_Apply_Approve; import com.emr.entity.approve.Emr_Apply_Approve;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
@ -28,4 +27,6 @@ public interface ApplyApproveService {
* *
* */ * */
void sendNotice(String applyType,int count) throws Exception; void sendNotice(String applyType,int count) throws Exception;
List<String>expireTime(String currentTime,int effeDays);
} }

@ -162,6 +162,12 @@ public class PrintOrDownLoadInfoService {
} }
vo.setPrintCount(printCount); vo.setPrintCount(printCount);
vo.setPrintFee(printCount * printPrice); vo.setPrintFee(printCount * printPrice);
if (vo.getTypeName().equals("院内查阅")){
vo.setPrintFee(0 * printPrice);
}
if (vo.getTypeName().equals("公检法单位")){
vo.setPrintFee(0 * printPrice);
}
} }
} }
return list; return list;

@ -90,6 +90,8 @@ public class QualityServiceImpl implements QualityService {
faultPath.append(list + ","); faultPath.append(list + ",");
} }
} }
//记录完成盘号
qualityMapper.addPh(ph);
} }
String s = sb.append("缺失" + i + "个文件," + "缺失文件为:" + lackPath+"故障文件"+faultNum+"个文件,"+"故障文件为:"+faultPath).toString(); String s = sb.append("缺失" + i + "个文件," + "缺失文件为:" + lackPath+"故障文件"+faultNum+"个文件,"+"故障文件为:"+faultPath).toString();
return s; return s;

@ -22,6 +22,8 @@ public interface EmrTypeService {
List<Emr_Type> selectAllByCreater(Integer isEffective, HttpServletRequest request); List<Emr_Type> selectAllByCreater(Integer isEffective, HttpServletRequest request);
List<Emr_Type> selectAllByCreater2(Integer isEffective, HttpServletRequest request);
/** /**
* *
* */ * */

@ -53,6 +53,24 @@ public class EmrTypeServiceImpl implements EmrTypeService {
} }
} }
@Override
public List<Emr_Type> selectAllByCreater2(Integer isEffective, HttpServletRequest request) {
String userName = "admin";
Integer roleId = 0;
//系统管理员全查
if(null != roleId && roleId == 0){
return emrTypeMapper.selectAllByCreater(null,isEffective);
}else if(null != roleId && roleId == -100){
StringBuilder creaters = CommomService.creaters(request);
return emrTypeMapper.selectAllByCreater(creaters.toString(),isEffective);
}else{
//按创建者id查
userName = "'" + userName + "'";
return emrTypeMapper.selectAllByCreater(userName,isEffective);
}
}
@Override @Override
public Emr_Type checkTypeNameByCreater(String typeName,HttpServletRequest request) { public Emr_Type checkTypeNameByCreater(String typeName,HttpServletRequest request) {
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER"); Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");

@ -0,0 +1,102 @@
package com.emr.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* @ClassName FileUtils
* @Description tif
* @Author linjj
* @Date 2023/4/20 11:15
* @Version 1.0
*/
public class FileUtils {
public static final String TYPE_JPG = "jpg";
public static final String TYPE_GIF = "gif";
public static final String TYPE_PNG = "png";
public static final String TYPE_BMP = "bmp";
public static final String TYPE_TIF ="tif";
public static final String TYPE_UNKNOWN = "unknown";
/**
*
* @description:
* @author: Jeff
* @date: 2019127
* @param fis
* @return
*/
public static String getPicType(FileInputStream fis) {
// 读取文件的前几个字节来判断图片格式
byte[] b = new byte[4];
try {
fis.read(b, 0, b.length);
String type = bytesToHexString(b).toUpperCase();
if (type.contains("FFD8FF")) {
return TYPE_JPG;
} else if (type.contains("89504E47")) {
return TYPE_PNG;
} else if (type.contains("47494638")) {
return TYPE_GIF;
} else if (type.contains("424D")) {
return TYPE_BMP;
} else if (type.contains("49492A00")){
return TYPE_TIF;
}
else {
return TYPE_UNKNOWN;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
/**
*
* @description: byte16
* @author: Jeff
* @date: 2019127
* @param src
* @return
*/
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
public static void main(String[] args) {
try {
System.out.println("图片1格式 " + getPicType(new FileInputStream(new File("D:\\tmp\\002454.jpg"))));
// System.out.println("图片2格式 " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\1.png"))));
// System.out.println("图片3格式 " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\2.gif"))));
// System.out.println("图片4格式 " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\3.bmp"))));
// System.out.println("图片5格式 " + getPicType(new FileInputStream(new File("F:\\Jeff\\images\\jie.png"))));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

@ -1,5 +1,6 @@
package com.emr.util; package com.emr.util;
import com.emr.entity.emrPdfWaterSet.EmrPdfWaterSet;
import com.lowagie.text.*; import com.lowagie.text.*;
import com.lowagie.text.Font; import com.lowagie.text.Font;
import com.lowagie.text.Image; import com.lowagie.text.Image;
@ -267,7 +268,7 @@ public class Jpg2PdfUtil {
image.scaleToFit(200, 200); image.scaleToFit(200, 200);
content.addImage(image); content.addImage(image);
} }
content.setColorFill(Color.BLACK); content.setColorFill(Color.red);
content.setFontAndSize(base, 8); content.setFontAndSize(base, 8);
} }
} catch (IOException | DocumentException e) { } catch (IOException | DocumentException e) {
@ -282,7 +283,7 @@ public class Jpg2PdfUtil {
} }
} }
public static void mulFile2One3(HttpServletResponse response,List<String> filePaths,String filename) { public static void mulFile2One3(HttpServletResponse response,List<String> filePaths,String filename,EmrPdfWaterSet emrPdfWaterSet) {
String waterMarkName=""; String waterMarkName="";
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//遍历删除,除去损坏,文件不存在,抛异常就是空白页 //遍历删除,除去损坏,文件不存在,抛异常就是空白页
@ -306,6 +307,7 @@ public class Jpg2PdfUtil {
Document document = null; Document document = null;
PdfCopy copy = null; PdfCopy copy = null;
try { try {
filename = java.net.URLEncoder.encode(filename, "UTF-8");
response.reset(); response.reset();
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf"); response.setContentType("application/pdf");
@ -318,15 +320,15 @@ public class Jpg2PdfUtil {
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfReader pdfReader = null; PdfReader pdfReader = null;
//判断是否加水印 //判断是否加水印
if (StringUtils.isNotBlank(waterMarkName)) { if (emrPdfWaterSet.getDownloadEffective()==1) {
setWatermark(bos, reader, waterMarkName, null); setWatermark(bos, reader, emrPdfWaterSet.getText(), null);
pdfReader = new PdfReader(bos.toByteArray()); pdfReader = new PdfReader(bos.toByteArray());
} }
int n = reader.getNumberOfPages(); int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) { for (int j = 1; j <= n; j++) {
document.newPage(); document.newPage();
PdfImportedPage page = null; PdfImportedPage page = null;
if (StringUtils.isNotBlank(waterMarkName)) { if (emrPdfWaterSet.getDownloadEffective()==1) {
page = copy.getImportedPage(pdfReader, j); page = copy.getImportedPage(pdfReader, j);
} else { } else {
page = copy.getImportedPage(reader, j); page = copy.getImportedPage(reader, j);
@ -355,7 +357,10 @@ public class Jpg2PdfUtil {
} }
} }
public static void mulFile2One2(HttpServletResponse response,List<String> filePaths) { public static void mulFile2One2(HttpServletResponse response, List<String> filePaths, String filename, EmrPdfWaterSet emrPdfWaterSet) {
//是否启用水印
Short effective = emrPdfWaterSet.getEffective();
Short isImg = emrPdfWaterSet.getIsImg();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//遍历删除,除去损坏,文件不存在,抛异常就是空白页 //遍历删除,除去损坏,文件不存在,抛异常就是空白页
Iterator<String> iterator = filePaths.iterator(); Iterator<String> iterator = filePaths.iterator();
@ -381,7 +386,7 @@ public class Jpg2PdfUtil {
response.reset(); response.reset();
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf"); response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; "+"pdf"); response.setHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf");
document = new Document(new PdfReader(filePaths.get(0)).getPageSize(1)); document = new Document(new PdfReader(filePaths.get(0)).getPageSize(1));
copy = new PdfCopy(document,response.getOutputStream()); copy = new PdfCopy(document,response.getOutputStream());
document.open(); document.open();
@ -389,7 +394,22 @@ public class Jpg2PdfUtil {
PdfReader reader = new PdfReader(file); PdfReader reader = new PdfReader(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfReader pdfReader = null; PdfReader pdfReader = null;
//判断是否加水印
if (effective == 1 || isImg == 1) {
setWatermark(bos, reader, emrPdfWaterSet.getText(), null);
pdfReader = new PdfReader(bos.toByteArray());
}
int n = reader.getNumberOfPages(); int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = null;
if (effective == 1 || isImg == 1) {
page = copy.getImportedPage(pdfReader, j);
} else {
page = copy.getImportedPage(reader, j);
}
copy.addPage(page);
}
if(null != pdfReader){ if(null != pdfReader){
pdfReader.close(); pdfReader.close();
} }
@ -430,4 +450,54 @@ public class Jpg2PdfUtil {
p = Math.round(p2); p = Math.round(p2);
return p; return p;
} }
public static void mulFile2OneOne(HttpServletResponse response,String filePaths,String waterMarkName) {
if(!filePaths.isEmpty()){
// pdf合并工具类
Document document = null;
PdfCopy copy = null;
try {
document = new Document(new PdfReader(filePaths).getPageSize(1));
copy = new PdfCopy(document,response.getOutputStream());
document.open();
PdfReader reader = new PdfReader(filePaths);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfReader pdfReader = null;
//判断是否加水印
if (StringUtils.isNotBlank(waterMarkName)) {
setWatermark(bos, reader, waterMarkName, null);
pdfReader = new PdfReader(bos.toByteArray());
}
int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = null;
if (StringUtils.isNotBlank(waterMarkName)) {
page = copy.getImportedPage(pdfReader, j);
} else {
page = copy.getImportedPage(reader, j);
}
copy.addPage(page);
}
if(null != pdfReader){
pdfReader.close();
}
reader.close();
try {
bos.flush();
bos.close();
}catch (Exception e){
//e.printStackTrace();
}
}catch (Exception e){
//e.printStackTrace();
}finally {
if(null != document){
document.close();
}
}
}
}
} }

@ -77,6 +77,50 @@ public class img2PdfUtil {
} }
} }
public static void imageToPdfUserEffective(HttpServletResponse response, List<String> filePaths, String pdfName, EmrPdfWaterSet pdfWaterSet) {
Document document = new Document(PageSize.A4, 0, 0, 0, 0); //创建文档容器
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//是否启用水印
Short effective = pdfWaterSet.getEffective();
Short isImg = pdfWaterSet.getIsImg();
try {
if (effective == 1 || isImg == 1) {
PdfWriter.getInstance(document, bos); //创建编写器PDF类型
} else {
PdfWriter.getInstance(document, response.getOutputStream()); //创建编写器PDF类型
}
pdfName = java.net.URLEncoder.encode(pdfName, "UTF-8");
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("x-www-form-urlencoded"); // word格式
response.setHeader("Content-Disposition", "attachment; filename=" + pdfName + ".pdf");
//图片合成pdf
imgToPdf(document, filePaths);
if (effective == 1 || isImg == 1) {
addWaterMark(bos, response, pdfWaterSet.getUpOrUnder(), pdfWaterSet.getTransparent(),
pdfWaterSet.getText(), pdfWaterSet.getTextX(), pdfWaterSet.getTextY(),
pdfWaterSet.getTextColor(), pdfWaterSet.getTextSize(), pdfWaterSet.getTextRotation(),
pdfWaterSet.getEffective(), pdfWaterSet.getIsImg(), pdfWaterSet.getImgFile(), pdfWaterSet.getImgWidth(),
pdfWaterSet.getImgHeight(), pdfWaterSet.getImgX(), pdfWaterSet.getImgY());
}
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
} finally {
try {
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
document.close();
}
}
public static void imageToPdf2(HttpServletResponse response, String filePath, String targetPath, EmrPdfWaterSet pdfWaterSet) { public static void imageToPdf2(HttpServletResponse response, String filePath, String targetPath, EmrPdfWaterSet pdfWaterSet) {
Document document = new Document(PageSize.A4, 30, 30, 30, 30); //创建文档容器 Document document = new Document(PageSize.A4, 30, 30, 30, 30); //创建文档容器
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream();
@ -251,12 +295,81 @@ public class img2PdfUtil {
} }
} }
public static String addWatermarkPic2(File srcImgFile, EmrPdfWaterSet pdfWaterSet, String outPath) {
java.awt.Image srcImg = null;
BufferedImage bufImg = null;
Graphics2D g = null;
try {
srcImg = ImageIO.read(new FileInputStream(srcImgFile));
/*if(null == srcImg){
IIORegistry registry = IIORegistry.getDefaultInstance();
registry.registerServiceProvider(new com.twelvemonkeys.imageio.plugins.tiff.TIFFImageWriterSpi());
registry.registerServiceProvider(new com.twelvemonkeys.imageio.plugins.tiff.TIFFImageReaderSpi());
srcImg = ImageIO.read(new FileInputStream(srcImgFile));
}*/
//System.out.println("读取图片"+(end-start)/1000.0+"s");
int srcImgWidth = srcImg.getWidth(null);//获取图片的宽
int srcImgHeight = srcImg.getHeight(null);//获取图片的高
// 加水印
bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
Font font = new Font("STSong-Light", Font.ITALIC, pdfWaterSet.getTextSize() * 4);//水印字体,大小
g = bufImg.createGraphics();//得到画笔
g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
//System.out.println("画图片"+(end1-start1)/1000.0+"s");
//判断是否加水印
Short effective = pdfWaterSet.getEffective();
Short isImg = pdfWaterSet.getIsImg();
if (effective == 1 || isImg == 1) {
Color color = toColorFromString(pdfWaterSet.getTextColor());
int degree = 0 - pdfWaterSet.getTextRotation();//设置水印文字的旋转角度
float alpha = pdfWaterSet.getTransparent();//设置水印透明度 默认为1.0 值越小颜色越浅
g.setColor(color); //设置水印颜色
g.setFont(font); //设置字体
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));//设置水印文字透明度
g.rotate(Math.toRadians(degree), (double) bufImg.getWidth(), (double) bufImg.getHeight());//设置水印旋转
g.drawString(pdfWaterSet.getText(), srcImg.getWidth(null) / 2 + pdfWaterSet.getTextX() , srcImg.getHeight(null) / 2 + (pdfWaterSet.getTextY() - 300));//画出水印,并设置水印位置
//System.out.println("画文字图片"+(end2-start2)/1000.0+"s");
}
//ByteArrayInputStream fis = new ByteArrayInputStream(imageToByteArr);//创建输入流对象
if (!new File(outPath).exists()) {
ImageIO.write(bufImg, "jpg", new File(outPath));
}
/* FileOutputStream fos = new FileOutputStream("d:\\jiashi\\reload\\00004312bfd54291b31d77cc4b8e4c3b\\" + srcImgFile.getName()); //创建输出流对象
byte datas[] = new byte[1024 * 8];//创建搬运工具
int len = 0;//创建长度
while ((len = srcImgFile.read(datas)) != -1)//循环读取数据
{
fos.write(datas, 0, len);
}*/
//System.out.println("输出时间"+(end3-start3)/1000.0+"s");
return outPath;
// 输出图片
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
return null;
} finally {
if (null != g) {
g.dispose();// 释放资源*/
}
if (null != bufImg) {
bufImg.flush();
}
if (null != srcImg) {
srcImg.flush();
}
}
}
//图片合成pdf //图片合成pdf
private static void imgToPdf(Document document, List<String> filePaths) throws Exception { private static void imgToPdf(Document document, List<String> filePaths) throws Exception {
document.open(); //打开容器 document.open(); //打开容器
float percent = 100; float percent = 100;
float w, h; float w, h;
for (String filePath : filePaths) { for (String filePath : filePaths) {
try {
File file = new File(filePath); File file = new File(filePath);
if (file.isFile()) { if (file.isFile()) {
Image img = Image.getInstance(filePath); Image img = Image.getInstance(filePath);
@ -283,6 +396,46 @@ public class img2PdfUtil {
} }
document.add(img); document.add(img);
} }
} catch (Exception e) {
throw new RuntimeException(e);
}
}
document.close(); //关闭容器
}
//图片合成pdf
private static void imgToPdf2(Document document, String filePath) throws Exception {
document.open(); //打开容器
float percent = 100;
float w, h;
File file = new File(filePath);
if (file.isFile()) {
Image img = Image.getInstance(filePath);
/*处理图片缩放比例*/
w = img.getWidth();
h = img.getHeight();
if ((w > A4_weight) && (h < A4_height)) {
percent = (A4_weight * 100) / w;
} else if ((w < A4_weight) && (h > A4_height)) {
percent = (A4_height * 100) / h;
} else if ((w > A4_weight) && (h > A4_height)) {
percent = (A4_weight * 100) / w;
h = (h * percent) / 100;
if (h > A4_height) {
percent = (A4_height * 100) / h;
}
}
img.setAlignment(com.lowagie.text.Image.ALIGN_CENTER);
if(percent != 100){
img.scaleAbsolute(A4_weight,A4_height);
}else{
img.scalePercent(percent);
}
document.add(img);
} }
document.close(); //关闭容器 document.close(); //关闭容器
} }

@ -18,6 +18,7 @@ public class CommomTree {
private Integer PageCount; private Integer PageCount;
public Integer getPageCount() { public Integer getPageCount() {
return PageCount; return PageCount;
} }
@ -44,6 +45,8 @@ public class CommomTree {
private String PDFPATH; private String PDFPATH;
public String getPDFPATH() { public String getPDFPATH() {
return PDFPATH; return PDFPATH;
} }

@ -1,5 +1,5 @@
#power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934 #power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934
POWER_IP = localhost POWER_IP =localhost
POWER_URLHEAD = http://localhost:8081/power POWER_URLHEAD = http://localhost:8081/power
POWER_JSPHEAD = localhost POWER_JSPHEAD = localhost
@ -7,14 +7,6 @@ POWER_JSP = http://localhost:8081/power
#\u672C\u8EAB\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934 #\u672C\u8EAB\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934
EMR_RECORD_JSP = http://localhost:8083/emr_record EMR_RECORD_JSP = http://localhost:8083/emr_record
#POWER_IP = 192.168.110.232
#POWER_URLHEAD = http://192.168.110.232:8081/power
#
#POWER_JSPHEAD = 192.168.110.232
#POWER_JSP = http://192.168.110.232:8081/power
#
##\u672C\u8EAB\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934
#EMR_RECORD_JSP = http://192.168.110.232:8083/emr_record
#webSocket\u670D\u52A1\u5668\u5730\u5740 #webSocket\u670D\u52A1\u5668\u5730\u5740
@ -40,5 +32,11 @@ waterPicPath = D:/jiashi/reload/
waterTifToJpgPath = D:/jiashi/tifToJpgLoad/ waterTifToJpgPath = D:/jiashi/tifToJpgLoad/
#\u6253\u5370\u6BCF\u9875\u7EB8\u5F20\u8D39\u7528 #//????
printPrice = 0.5 printPrice = 0.3
#//????????
applyApproveFlag =0
#//?????
initialization =0

@ -3,11 +3,11 @@ jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.username=sa #jdbc.username=sa
#jdbc.password=docus@702 #jdbc.password=docus@702
jdbc.url=jdbc\:sqlserver\://47.111.21.195:1433;databaseName=qf_record1 jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=qf_record
jdbc.username=sa jdbc.username=sa
jdbc.password=docus@702 jdbc.password=admin123
#dataSource2 #dataSource2
jdbc.url2=jdbc\:sqlserver\://47.111.21.195:1433;databaseName=blgd_java jdbc.url2=jdbc\:sqlserver\://localhost:1433;databaseName=blgd_java
jdbc.username2=sa jdbc.username2=jsuser
jdbc.password2=docus@702 jdbc.password2=123456

@ -136,12 +136,7 @@
</select> </select>
<select id="selectPdfPathByPatient3" resultType="com.emr.vo.commomSearch.CommomTree"> <select id="selectPdfPathByPatient3" resultType="com.emr.vo.commomSearch.CommomTree">
SELECT SELECT
archive_detail.PDF_PATH, archive_detail.PDF_PATH
archive_detail.MasterID as patient_id,
archive_detail.AssortID as assort_id,
zd_assort.assort_name,
archive_detail.PDF_PATH as scan_page,
archive_detail.Source as source
FROM FROM
archive_detail archive_detail
LEFT JOIN zd_assort LEFT JOIN zd_assort
@ -150,4 +145,15 @@
MasterID = #{patientIds} MasterID = #{patientIds}
ORDER BY zd_assort.assort_sort,UpLoadDateTime ORDER BY zd_assort.assort_sort,UpLoadDateTime
</select> </select>
<select id="selectPDFRATH" resultType="java.lang.String">
SELECT
archive_detail.PDF_PATH
FROM
archive_detail
LEFT JOIN zd_assort
ON archive_detail.AssortID = zd_assort.assort_id
WHERE
MasterID = #{patientId}
ORDER BY zd_assort.assort_sort,UpLoadDateTime
</select>
</mapper> </mapper>

@ -153,4 +153,7 @@
ORDER BY ORDER BY
zd_assort.assort_sort zd_assort.assort_sort
</select> </select>
<select id="selectEmrType" resultType="com.emr.entity.recordType.Emr_Type">
select * from emr_type
</select>
</mapper> </mapper>

@ -315,11 +315,11 @@
a.dis_date, a.dis_date,
a.approve_notes, a.approve_notes,
a.patient_id, a.patient_id,
CASE WHEN effe_time &lt;= convert(varchar(10),getdate(),23) THEN '已过期' WHEN apply_state='1' THEN '未提交' WHEN apply_state='2' THEN '已提交' CASE WHEN effe_time &lt;= convert(varchar(10),getdate()-1,23) THEN '已过期' WHEN apply_state='1' THEN '未提交' WHEN apply_state='2' THEN '已提交'
END apply_state, END apply_state,
a.approver, a.approver,
a.approve_time, a.approve_time,
CASE WHEN effe_time &lt;= convert(varchar(10),getdate(),23) THEN '已过期' WHEN approve_state = '1' THEN '审核通过' WHEN approve_state='2' THEN CASE WHEN effe_time &lt;= convert(varchar(10),getdate()-1,23) THEN '已过期' WHEN approve_state = '1' THEN '审核通过' WHEN approve_state='2' THEN
'审核不通过' WHEN approve_state is null THEN '待审批' END approve_state, '审核不通过' WHEN approve_state is null THEN '待审批' END approve_state,
c.name, c.name,
CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus
@ -687,4 +687,9 @@
and apply_type = 4 and apply_type = 4
order by id desc order by id desc
</select> </select>
<select id="expireTime" resultType="java.lang.String">
SELECT top (${effeDays}) date FROM emr_holiday_set where date> #{currentTime} AND flag=1
</select>
</mapper> </mapper>

@ -68,6 +68,42 @@
dbo.zd_assort.assort_sort,t_scan_assort.scan_page dbo.zd_assort.assort_sort,t_scan_assort.scan_page
</select> </select>
<!--脐血库、祈福根据patientId集合查询图片路径-->
<select id="selectScanFileByBloodPatientIds1" resultMap="BaseResultMap" parameterType="java.lang.String">
SELECT
commomtable.patient_id,
commomtable.name,
commomtable.inpatient_no,
commomtable.dis_date,
dbo.t_scan_assort.assort_id,
dbo.t_scan_assort.scan_page,
case
when t_scan_assort.source = 1
then convert(nvarchar(255),dbo.commomtable.${flag})+'\'+dbo.t_scan_assort.scan_page
when t_scan_assort.source = 2
then convert(nvarchar(255),dbo.commomtable.new_path)+'\'+dbo.t_scan_assort.scan_page
end fileRealPath
FROM
dbo.commomtable
LEFT OUTER JOIN
dbo.t_scan_assort
ON
dbo.commomtable.patient_id = dbo.t_scan_assort.patient_id
LEFT OUTER JOIN
dbo.zd_assort
ON
dbo.zd_assort.assort_id = dbo.t_scan_assort.assort_id
<where>
dbo.commomtable.patient_id =#{patientIds}
AND t_scan_assort.is_del != 1
<if test="assortIds != null and assortIds != ''">
AND dbo.t_scan_assort.scan_page in (${assortIds})
</if>
</where>
ORDER BY
dbo.zd_assort.assort_sort,t_scan_assort.scan_page
</select>
<update id="updateScanFileByPatientIdAndScanPage" parameterType="java.lang.String"> <update id="updateScanFileByPatientIdAndScanPage" parameterType="java.lang.String">
${sql} ${sql}
</update> </update>
@ -79,4 +115,35 @@
<select id="selectCountPdf" resultType="java.lang.Integer"> <select id="selectCountPdf" resultType="java.lang.Integer">
SELECT COUNT(*) FROM dbo.t_scan_assort SELECT COUNT(*) FROM dbo.t_scan_assort
</select> </select>
<select id="selectScanFileByBloodPatientId" resultType="com.emr.vo.commomSearch.ScanPathVo">
SELECT
commomtable.patient_id,
commomtable.name,
commomtable.inpatient_no,
commomtable.dis_date,
dbo.t_scan_assort.assort_id,
dbo.t_scan_assort.scan_page
FROM
dbo.commomtable
LEFT OUTER JOIN
dbo.t_scan_assort
ON
dbo.commomtable.patient_id = dbo.t_scan_assort.patient_id
LEFT OUTER JOIN
dbo.zd_assort
ON
dbo.zd_assort.assort_id = dbo.t_scan_assort.assort_id
<where>
dbo.commomtable.patient_id =#{patientIds}
AND t_scan_assort.is_del != 1
<if test="assortIds != null and assortIds != ''">
AND dbo.t_scan_assort.scan_page in (${assortIds})
</if>
</where>
ORDER BY
dbo.zd_assort.assort_sort,t_scan_assort.scan_page
</select>
<select id="selectFilaname" resultType="com.emr.vo.commomSearch.ScanPathVo">
select * from commomtable where patient_id =#{patientIds}
</select>
</mapper> </mapper>

@ -27,7 +27,7 @@
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, effective, up_or_under, transparent, text, text_x, text_y, text_color, text_size, id, effective, up_or_under, transparent, text, text_x, text_y, text_color, text_size,
text_rotation, is_img, img_file, img_width, img_height, img_x, img_y, unique_id, text_rotation, is_img, img_file, img_width, img_height, img_x, img_y, unique_id,
download_effective, download_is_img, print_effective, print_is_img download_effective, download_is_img, print_effective, print_is_img,user_effective
</sql> </sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select select
@ -277,6 +277,7 @@
download_effective = #{downloadEffective,jdbcType=SMALLINT}, download_effective = #{downloadEffective,jdbcType=SMALLINT},
download_is_img = #{downloadIsImg,jdbcType=SMALLINT}, download_is_img = #{downloadIsImg,jdbcType=SMALLINT},
print_effective = #{printEffective,jdbcType=SMALLINT}, print_effective = #{printEffective,jdbcType=SMALLINT},
user_effective = #{userEffective,jdbcType=SMALLINT},
print_is_img = #{printIsImg,jdbcType=SMALLINT} print_is_img = #{printIsImg,jdbcType=SMALLINT}
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>

@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.emr.dao.quality.QualityMapper" > <mapper namespace="com.emr.dao.quality.QualityMapper" >
<insert id="addPh">
insert into ph (ph
)
values (#{ph}
)
</insert>
<select id="getPhNum" resultType="java.lang.Integer"> <select id="getPhNum" resultType="java.lang.Integer">
SELECT COUNT(distinct ph) FROM commomtable SELECT COUNT(distinct ph) FROM commomtable

@ -56,6 +56,8 @@
<mvc:resources mapping="/reloadI/**" location="file:I:/" /> <mvc:resources mapping="/reloadI/**" location="file:I:/" />
<mvc:resources mapping="/reloadJ/**" location="file:J:/" /> <mvc:resources mapping="/reloadJ/**" location="file:J:/" />
<mvc:resources mapping="/reloadK/**" location="file:K:/" /> <mvc:resources mapping="/reloadK/**" location="file:K:/" />
<!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 --> <!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 -->
<!--配置视图解析器,方便页面返回 --> <!--配置视图解析器,方便页面返回 -->
<bean id="jspViewResolver" <bean id="jspViewResolver"

@ -218,7 +218,7 @@
<div class="col-sm-1"></div> <div class="col-sm-1"></div>
</div> </div>
</div> </div>
<div class="row"> <div class="row" style="Display:none">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label">有效时间:</label> <label class="col-sm-4 control-label">有效时间:</label>
<div class="col-sm-7"> <div class="col-sm-7">

@ -170,6 +170,17 @@
id="textColor" name="textColor" maxlength="12"> id="textColor" name="textColor" maxlength="12">
</div> </div>
</div> </div>
<div class="col-md-5">
<div class="col-md-5 labelDiv">
<label>是否开启用户信息水印:</label>
</div>
<div class="col-md-7">
<select class="form-control input-sm" name="userEffective">
<option value="1" <c:if test="${pdfWaterSet.userEffective == 1}">selected</c:if>>是</option>
<option value="0" <c:if test="${pdfWaterSet.userEffective == 0}">selected</c:if>>否</option>
</select>
</div>
</div>
</div> </div>
<hr> <hr>
<div class="row"> <div class="row">

@ -132,7 +132,8 @@
<label class="labelDiv">用途:</label> <label class="labelDiv">用途:</label>
</div> </div>
<div class="searchInputElement left"> <div class="searchInputElement left">
<input class="form-control input-sm" id="typeName" maxlength="16"/> <select class="form-control input-sm" id="typeName">
</select>
</div> </div>
</div> </div>
<div class="dateSearchDiv left"> <div class="dateSearchDiv left">

@ -705,7 +705,7 @@
<input type="hidden" id="approveId"> <input type="hidden" id="approveId">
<!--隐藏申请过的集合input Id--> <!--隐藏申请过的集合input Id-->
<input type="hidden" id="typeId"> <input type="hidden" id="typeId">
<div class="row"> <div class="row" style="Display:none">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label">有效时间:</label> <label class="col-sm-4 control-label">有效时间:</label>
<div class="col-sm-7"> <div class="col-sm-7">

@ -763,6 +763,7 @@
$(this).data(visibleColumns[$(this).data('field')]); $(this).data(visibleColumns[$(this).data('field')]);
}); });
this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) { this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {
debugger
if (that.options.sortable && $(this).parent().data().sortable) { if (that.options.sortable && $(this).parent().data().sortable) {
that.onSort(event); that.onSort(event);
} }
@ -890,12 +891,14 @@
}; };
BootstrapTable.prototype.onSort = function (event) { BootstrapTable.prototype.onSort = function (event) {
debugger
var $this = event.type === "keypress" ? $(event.currentTarget) : $(event.currentTarget).parent(), var $this = event.type === "keypress" ? $(event.currentTarget) : $(event.currentTarget).parent(),
$this_ = this.$header.find('th').eq($this.index()); $this_ = this.$header.find('th').eq($this.index());
this.$header.add(this.$header_).find('span.order').remove(); this.$header.add(this.$header_).find('span.order').remove();
var changeStatus = function (status) { var changeStatus = function (status) {
debugger
switch (status) { switch (status) {
case 'both': case 'both':
return 'asc'; return 'asc';
@ -907,6 +910,7 @@
}; };
var that = this; var that = this;
var findOrder = function (name) { var findOrder = function (name) {
debugger
var order = 'both'; var order = 'both';
if (!(that.options.sortPriority == undefined || that.options.sortPriority == null)) { if (!(that.options.sortPriority == undefined || that.options.sortPriority == null)) {
$.each(that.options.sortPriority, function (i, n) { $.each(that.options.sortPriority, function (i, n) {
@ -917,8 +921,12 @@
return order; return order;
} }
if (this.options.sortName === $this.data('field')) { if (this.options.sortName === $this.data('field')) {
this.options.sortOrder = changeStatus(findOrder($this.data('field'))); debugger
let hasClass = $this.find('.th-inner').hasClass('desc');
let string = hasClass ? 'both':'asc';
this.options.sortOrder = changeStatus(string);
} else { } else {
debugger
this.options.sortName = $this.data('field'); this.options.sortName = $this.data('field');
this.options.sortOrder = changeStatus(findOrder($this.data('field'))); this.options.sortOrder = changeStatus(findOrder($this.data('field')));
} }

@ -80,6 +80,7 @@ $('#mytab').bootstrapTable({
{ {
title:'有效天数', title:'有效天数',
field:'effeDays', field:'effeDays',
}, },
{ {
title:'姓名', title:'姓名',

@ -107,5 +107,5 @@ function returnShowDetailUrl(patientId){
//病案預覽 //病案預覽
//查看详情 //查看详情
function showDetail(patientId){ function showDetail(patientId){
window.open(returnShowDetailUrl(patientId),'fullscreen','fullscreen,scrollbars'); window.open(returnShowDetailUrl(patientId),'_self','fullscreen,scrollbars');
} }

@ -3,6 +3,8 @@ $(function () {
initDateInput(1); initDateInput(1);
//加载分段 //加载分段
selectAssortsSelect(); selectAssortsSelect();
//加载用途
selectEmrType();
}) })
function selectAssortsSelect(){ function selectAssortsSelect(){
$.ajax({ $.ajax({
@ -21,6 +23,28 @@ function selectAssortsSelect(){
} }
}) })
} }
function selectEmrType(){
$.ajax({
type:'get',
url:path+'/commom/selectEmrType',
dataType:'json',
success:function (data) {
if(null != data){
$("#typeName").empty();
var html = '<option value="">全部</option>';
for (var i = 0; i < data.length; i++) {
html += '<option value="'+data[i].typeFlag+'">'+data[i].typeName+'</option>';
}
$("#typeName").append(html);
}
}
})
}
var pageNumber; var pageNumber;
var columns = []; var columns = [];
columns.push( columns.push(

@ -4,7 +4,7 @@ $(function () {
toggle: false toggle: false
}) })
//加载表格 //加载表格
freshTable(); initialization();
//加载时间控件1 //加载时间控件1
initDateInput(1); initDateInput(1);
//加载时间控件2 //加载时间控件2
@ -25,6 +25,20 @@ $(function () {
permissionControlButton(); permissionControlButton();
}); });
function initialization(){
$.ajax({
type: 'get',
url: path + '/commom/getInitialization',
dataType: 'json',
success: function (data) {
console.log(data)
if (data==1) {
freshTable()
}
}
})
}
function permissionControlButton() { function permissionControlButton() {
var show = $("#showRecord").val(); var show = $("#showRecord").val();
var load = $("#downloadRecord").val(); var load = $("#downloadRecord").val();

@ -137,11 +137,13 @@ function onloadPdf(scanPages, sources) {
success: function (data) { success: function (data) {
if (data.code == 0) { if (data.code == 0) {
var str = path + "/commom/getRecordContentBlood?patientId=" + patientId; var str = path + "/commom/getRecordContentBlood?patientId=" + patientId;
if (sources.includes("99")){
$("#iframe1").attr("src", path + "/static/pdfjs/web/viewer.html?file=" + encodeURIComponent(str)) $("#iframe1").attr("src", path + "/static/pdfjs/web/viewer.html?file=" + encodeURIComponent(str))
}else {
$("#iframe1").attr("src", path + "/static/pdfjs/web/viewer2.html?file=" + encodeURIComponent(str))
var rootPaths = parent.$("#rootPaths").val(); var rootPaths = parent.$("#rootPaths").val();
var print = $("#print").val(); var print = $("#print").val();
if (rootPaths!=",") { if (print == 1){
if (scanPages != '' && print == 1) {
selectPrintPic(patientId, rootPaths, scanPages, sources); selectPrintPic(patientId, rootPaths, scanPages, sources);
} }
} }
@ -192,10 +194,10 @@ function selectPrintPic(patientId, rootPaths, scanPages, sources) {
} }
var interval = setInterval(function () { var interval = setInterval(function () {
if ($("#iframeLoad").val() == 1) { if ($("#iframeLoad").val() == 1) {
// iframe.contentDocument.getElementById("printContainer1").innerHTML = img; iframe.contentDocument.getElementById("printContainer1").innerHTML = img;
$("#printPicLoaded").val(1); $("#printPicLoaded").val(1);
// iframe.contentDocument.getElementById("printLoading").style.display = 'none'; iframe.contentDocument.getElementById("printLoading").style.display = 'none';
// iframe.contentDocument.getElementById("print").style.display = 'block'; iframe.contentDocument.getElementById("print").style.display = 'block';
clearInterval(interval); clearInterval(interval);
} }
}, 200); }, 200);
@ -225,7 +227,7 @@ function selectPrintPic(patientId, rootPaths, scanPages, sources) {
} }
} }
}) })
}, 100); }, 100000);
} }
function selectPrintPic2(patientId, scanPages, sources) { function selectPrintPic2(patientId, scanPages, sources) {
@ -281,7 +283,7 @@ function selectPrintPic2(patientId, scanPages, sources) {
} }
} }
}) })
}, 100); }, 1000000);
} }
if (iframe.attachEvent) { if (iframe.attachEvent) {

@ -74,7 +74,6 @@ $(document).keydown(function (event) {
} }
}); });
function freshTable(){ function freshTable(){
var powerMenus = $("#powerMenus").val();
var powerMenus = $("#powerMenus").val().substring(1,$("#powerMenus").val().length-1); var powerMenus = $("#powerMenus").val().substring(1,$("#powerMenus").val().length-1);
var powerMenusArr = powerMenus.split(", "); var powerMenusArr = powerMenus.split(", ");
for (var i = 0; i < powerMenusArr.length; i++){ for (var i = 0; i < powerMenusArr.length; i++){
@ -136,6 +135,19 @@ function freshTable(){
map['field'] = fields[i]; map['field'] = fields[i];
} }
fieldCns += fields[i] + ","; fieldCns += fields[i] + ",";
if (fields[i]== 'disDate'){
map["sortable"]=true;
}
if (fields[i]== 'admissDate'){
map["sortable"]=true;
}
if (fields[i]== 'admissId'){
map["sortable"]=true;
}
if (fields[i]== 'inpatientNo'){
map["sortable"]=true;
}
} }
if(dateFields.indexOf(fields[i]) != -1){ if(dateFields.indexOf(fields[i]) != -1){
map['formatter'] = function (value, row, index) {return formatTime(value,'yyyy-MM-dd')}; map['formatter'] = function (value, row, index) {return formatTime(value,'yyyy-MM-dd')};
@ -145,6 +157,8 @@ function freshTable(){
} }
$("#fieldCns").val(fieldCns); $("#fieldCns").val(fieldCns);
} }
//生成用户数据 //生成用户数据
$('#mytab').bootstrapTable({ $('#mytab').bootstrapTable({
method: 'post', method: 'post',
@ -160,7 +174,12 @@ function freshTable(){
paginationLastText: '>', paginationLastText: '>',
detailView: flag, detailView: flag,
pageNumber: 1, //初始化加载第一页,默认第一页 pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 5, //每页的记录行数(* pageSize: 5,
sortName: 'inpatientNo',
sortable: true,
sortOrder: 'desc',
search: true,
//每页的记录行数(*
pageList: [5,10,20,50,100,500,1000],//可供选择的每页的行数(* pageList: [5,10,20,50,100,500,1000],//可供选择的每页的行数(*
height: 400,//高度调整 //行高如果没有设置height属性表格自动根据记录条数觉得表格高度 height: 400,//高度调整 //行高如果没有设置height属性表格自动根据记录条数觉得表格高度
buttonsAlign: "left",//按钮对齐方式 buttonsAlign: "left",//按钮对齐方式
@ -170,15 +189,21 @@ function freshTable(){
locale:'zh-CN',//中文支持, locale:'zh-CN',//中文支持,
url:path+'/template/cutomSearchTable',//排序方式 url:path+'/template/cutomSearchTable',//排序方式
queryParams: function (params) { queryParams: function (params) {
return{ debugger
console.log(params)
const param = {
selectSql:$("#englishFields").val(), selectSql:$("#englishFields").val(),
fromTableSql:$("#fromTableSql").val(), fromTableSql:$("#fromTableSql").val(),
whereSql:$("#whereSql").val(), whereSql:$("#whereSql").val(),
orderBys:$("#orderBys").val(), orderBys:$("#orderBys").val(),
limit : params.limit, // 每页显示数量 limit : params.limit, // 每页显示数量
offset : params.offset, // SQL语句起始索引 offset : params.offset, // SQL语句起始索引
page : (params.offset / params.limit) + 1 //当前页码 page : (params.offset / params.limit) + 1, //当前页码
sortNames: this.sortName,
sortOrder:this.sortOrder
} }
return param
}, },
responseHandler:function(res){ responseHandler:function(res){
//在ajax获取到数据渲染表格之前修改数据源 //在ajax获取到数据渲染表格之前修改数据源
@ -228,7 +253,12 @@ function freshTable(){
var checks = $("#checks").val(); var checks = $("#checks").val();
$("#checks").val(checks+="'"+row.patientId + "',"); $("#checks").val(checks+="'"+row.patientId + "',");
}, },
//取消单个复选框 onUncheck: function (row, $element) {
chosenGroupId = "";
$mytab.bootstrapTable("removeAll");
$mytab.bootstrapTable("refresh");
//EditViewById(id, 'view');
},
onUncheck:function(row){ onUncheck:function(row){
var checks = $("#checks").val(); var checks = $("#checks").val();
checks = checks.replace("'"+row.patientId + "',",""); checks = checks.replace("'"+row.patientId + "',","");
@ -550,7 +580,6 @@ function downloadZip(typeId){
* @param patientId * @param patientId
*/ */
function downloadPdf(patientId){ function downloadPdf(patientId){
patientId = "'"+patientId+"'";
//查询是否有图片 //查询是否有图片
$.ajax({ $.ajax({
type:'get', type:'get',
@ -877,6 +906,9 @@ function saveMethod(applyState,msg,typeId){
var effeDays = $("#effeDays").val(); var effeDays = $("#effeDays").val();
var applyType = $("#applyType").val(); var applyType = $("#applyType").val();
var applyReason = $("#applyReason").val(); var applyReason = $("#applyReason").val();
if (applyReason==""){
return toastr.warning("申请理由不能为空!");
}
$.ajax({ $.ajax({
type:'post', type:'post',
url:path+'/approve/addApplyApprove', url:path+'/approve/addApplyApprove',

@ -0,0 +1,553 @@
<!DOCTYPE html>
<!--
Copyright 2012 Mozilla Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Adobe CMap resources are covered by their own copyright and license:
http://sourceforge.net/adobe/cmap/wiki/License/
-->
<html dir="ltr" mozdisallowselectionprint moznomarginboxes>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="google" content="notranslate">
<title>PDF.js viewer</title>
<link rel="stylesheet" href="viewer.css"/>
<link rel="stylesheet"
href="printLoading.css"/>
<link rel="stylesheet"
href="../../../static/bootstrap-3.3.7/bower_components/font-awesome/css/font-awesome.min.css"/>
<script src="compatibility.js"></script>
<!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="locale/locale.properties"/>
<script type="text/javascript" src="../../js/jquery-3.3.1.js"></script>
<script type="text/javascript"
src="../../bootstrap-3.3.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="l10n.js"></script>
<script src="debugger.js"></script>
<script src="viewer2.js"></script>
<script src="../build/pdf.js"></script>
<script src="../Print.js"></script>
<style>
.loading {
width: 160px;
height: 56px;
position: absolute;
top: 50%;
left: 50%;
line-height: 56px;
color: #fff;
padding-left: 60px;
font-size: 15px;
background: #000;
opacity: 0.7;
z-index: 9999;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
}
.fullScreamBtn {
visibility: hidden;
opacity: 0;
width: 150px;
height: 30px;
border-radius: 5px;
background: #898989;
position: fixed;
bottom: 2px;
left: calc(100vw / 2 - 75px);
z-index: 999;
transition: all 0.5s;
}
.fullScreamBtn i {
line-height: 30px;
color: white;
margin-right: 8px;
cursor: pointer;
}
.fullScreamBtn i:first-child {
margin-left: 11px;
}
.page:hover ~ .fullScreamBtn, .fullScreamBtn:hover {
visibility: visible;
opacity: 1;
}
</style>
</head>
<body tabindex="1" class="loadingInProgress" onkeydown="disabledPrint()">
<div id="myModal" class="modal fade" data-keyboard="false"
data-backdrop="static" data-role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div id="loading" class="loading">加载中。。。</div>
</div>
<div id="outerContainer">
<div id="sidebarContainer">
<div id="toolbarSidebar">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton group toggled" title="Show Thumbnails" tabindex="2"
data-l10n-id="thumbs">
<span data-l10n-id="thumbs_label">Thumbnails</span>
</button>
<button id="viewOutline" class="toolbarButton group" title="Show Document Outline" tabindex="3"
data-l10n-id="outline">
<span data-l10n-id="outline_label">Document Outline</span>
</button>
<button id="viewAttachments" class="toolbarButton group" title="Show Attachments" tabindex="4"
data-l10n-id="attachments">
<span data-l10n-id="attachments_label">Attachments</span>
</button>
</div>
</div>
<div id="sidebarContent">
<div id="thumbnailView">
</div>
<div id="outlineView" class="hidden">
</div>
<div id="attachmentsView" class="hidden">
</div>
</div>
</div> <!-- sidebarContainer -->
<div id="mainContainer">
<div class="findbar hidden doorHanger hiddenSmallView" id="findbar">
<label for="findInput" class="toolbarLabel" data-l10n-id="find_label">Find:</label>
<input id="findInput" class="toolbarField" tabindex="91">
<div class="splitToolbarButton">
<button class="toolbarButton findPrevious" title="" id="findPrevious" tabindex="92"
data-l10n-id="find_previous">
<span data-l10n-id="find_previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton findNext" title="" id="findNext" tabindex="93" data-l10n-id="find_next">
<span data-l10n-id="find_next_label">Next</span>
</button>
</div>
<input type="checkbox" id="findHighlightAll" class="toolbarField">
<label for="findHighlightAll" class="toolbarLabel" tabindex="94" data-l10n-id="find_highlight">Highlight
all</label>
<input type="checkbox" id="findMatchCase" class="toolbarField">
<label for="findMatchCase" class="toolbarLabel" tabindex="95" data-l10n-id="find_match_case_label">Match
case</label>
<span id="findMsg" class="toolbarLabel"></span>
</div> <!-- findbar -->
<div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
<div id="secondaryToolbarButtonContainer">
<button id="secondaryPresentationMode" class="secondaryToolbarButton presentationMode visibleLargeView"
title="Switch to Presentation Mode" tabindex="51" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<!--<button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView" title="Open File" tabindex="52" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>-->
<button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print"
tabindex="53" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span>
</button>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView"
title="Download" tabindex="54" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>
<a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView"
title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="horizontalToolbarSeparator visibleLargeView"></div>
<button id="firstPage" class="secondaryToolbarButton firstPage" title="Go to First Page" tabindex="56"
data-l10n-id="first_page">
<span data-l10n-id="first_page_label">Go to First Page</span>
</button>
<button id="lastPage" class="secondaryToolbarButton lastPage" title="Go to Last Page" tabindex="57"
data-l10n-id="last_page">
<span data-l10n-id="last_page_label">Go to Last Page</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="pageRotateCw" class="secondaryToolbarButton rotateCw" title="Rotate Clockwise" tabindex="58"
data-l10n-id="page_rotate_cw">
<span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
</button>
<button id="pageRotateCcw" class="secondaryToolbarButton rotateCcw" title="Rotate Counterclockwise"
tabindex="59" data-l10n-id="page_rotate_ccw">
<span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="toggleHandTool" class="secondaryToolbarButton handTool" title="Enable hand tool"
tabindex="60" data-l10n-id="hand_tool_enable">
<span data-l10n-id="hand_tool_enable_label">Enable hand tool</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<!--<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="61" data-l10n-id="document_properties">
<span data-l10n-id="document_properties_label">Document Properties…</span>
</button>-->
</div>
</div> <!-- secondaryToolbar -->
<div class="toolbar">
<div id="toolbarContainer">
<div id="toolbarViewer">
<div id="toolbarViewerLeft">
<button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11"
data-l10n-id="toggle_sidebar">
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
</button>
<div class="toolbarButtonSpacer"></div>
<!--<button id="viewFind" class="toolbarButton group hiddenSmallView" title="Find in Document" tabindex="12" data-l10n-id="findbar">
<span data-l10n-id="findbar_label">Find</span>
</button>-->
<div class="splitToolbarButton">
<button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13"
data-l10n-id="previous">
<span data-l10n-id="previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14"
data-l10n-id="next">
<span data-l10n-id="next_label">Next</span>
</button>
</div>
<label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label>
<input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4" min="1"
tabindex="15">
<span id="numPages" class="toolbarLabel"></span>
</div>
<div id="toolbarViewerRight">
<button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView"
title="Switch to Presentation Mode" tabindex="31" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<!--<button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File" tabindex="32" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>-->
<div id="printLoading" class="progress" title="打印预览加载中..." style="display: none">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
<p style="margin-top: 6px;">0%</p>
</div>
<button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33"
data-l10n-id="print" style="display: none">
<span data-l10n-id="print_label">Print</span>
</button>
<!--<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>-->
<!--<a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView"
title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="verticalToolbarSeparator hiddenSmallView"></div>-->
<button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="36"
data-l10n-id="tools">
<span data-l10n-id="tools_label">Tools</span>
</button>
</div>
<div class="outerCenter">
<div class="innerCenter" id="toolbarViewerMiddle">
<div class="splitToolbarButton">
<button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21"
data-l10n-id="zoom_out">
<span data-l10n-id="zoom_out_label">Zoom Out</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22"
data-l10n-id="zoom_in">
<span data-l10n-id="zoom_in_label">Zoom In</span>
</button>
</div>
<span id="scaleSelectContainer" class="dropdownToolbarButton">
<select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
<option id="pageAutoOption" title="" value="auto" selected="selected"
data-l10n-id="page_scale_auto">Automatic Zoom</option>
<option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">Actual Size</option>
<option id="pageFitOption" title="" value="page-fit"
data-l10n-id="page_scale_fit">Fit Page</option>
<option id="pageWidthOption" title="" value="page-width" data-l10n-id="page_scale_width">Full Width</option>
<option id="customScaleOption" title="" value="custom"></option>
<option title="" value="0.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 50 }'>50%</option>
<option title="" value="0.75" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 75 }'>75%</option>
<option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }'>100%</option>
<option title="" value="1.25" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 125 }'>125%</option>
<option title="" value="1.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 150 }'>150%</option>
<option title="" value="2" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 200 }'>200%</option>
<option title="" value="3" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 300 }'>300%</option>
<option title="" value="4" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 400 }'>400%</option>
</select>
</span>
</div>
</div>
</div>
<div id="loadingBar">
<div class="progress">
<div class="glimmer">
</div>
</div>
</div>
</div>
</div>
<menu type="context" id="viewerContextMenu">
<menuitem id="contextFirstPage" label="First Page"
data-l10n-id="first_page"></menuitem>
<menuitem id="contextLastPage" label="Last Page"
data-l10n-id="last_page"></menuitem>
<menuitem id="contextPageRotateCw" label="Rotate Clockwise"
data-l10n-id="page_rotate_cw"></menuitem>
<menuitem id="contextPageRotateCcw" label="Rotate Counter-Clockwise"
data-l10n-id="page_rotate_ccw"></menuitem>
</menu>
<div id="viewerContainer" tabindex="0">
<div id="viewer" class="pdfViewer"></div>
</div>
<div id="errorWrapper" hidden='true'>
<div id="errorMessageLeft">
<span id="errorMessage"></span>
<button id="errorShowMore" data-l10n-id="error_more_info">
More Information
</button>
<button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
Less Information
</button>
</div>
<div id="errorMessageRight">
<button id="errorClose" data-l10n-id="error_close">
Close
</button>
</div>
<div class="clearBoth"></div>
<textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
</div>
</div> <!-- mainContainer -->
<div id="overlayContainer" class="hidden">
<div id="passwordOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p>
</div>
<div class="row">
<input type="password" id="password" class="toolbarField"/>
</div>
<div class="buttonRow">
<button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span>
</button>
<button id="passwordSubmit" class="overlayButton"><span data-l10n-id="password_ok">OK</span>
</button>
</div>
</div>
</div>
<div id="documentPropertiesOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<span data-l10n-id="document_properties_file_name">File name:</span>
<p id="fileNameField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_file_size">File size:</span>
<p id="fileSizeField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_title">Title:</span>
<p id="titleField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_author">Author:</span>
<p id="authorField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_subject">Subject:</span>
<p id="subjectField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_keywords">Keywords:</span>
<p id="keywordsField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creation_date">Creation Date:</span>
<p id="creationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_modification_date">Modification Date:</span>
<p id="modificationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creator">Creator:</span>
<p id="creatorField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_producer">PDF Producer:</span>
<p id="producerField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_version">PDF Version:</span>
<p id="versionField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_page_count">Page Count:</span>
<p id="pageCountField">-</p>
</div>
<div class="buttonRow">
<button id="documentPropertiesClose" class="overlayButton"><span
data-l10n-id="document_properties_close">Close</span></button>
</div>
</div>
</div>
</div> <!-- overlayContainer -->
</div> <!-- outerContainer -->
<div id="printContainer"></div>
<div style="display: none">
<div id="printContainer1">
</div>
</div>
<div id="mozPrintCallback-shim" hidden>
<style>
@media print {
#printContainer div {
page-break-after: always;
page-break-inside: avoid;
}
}
</style>
<style scoped>
#mozPrintCallback-shim {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999;
display: block;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
#mozPrintCallback-shim[hidden] {
display: none;
}
@media print {
#mozPrintCallback-shim {
display: none;
}
}
#mozPrintCallback-shim .mozPrintCallback-dialog-box {
display: inline-block;
margin: -50px auto 0;
position: relative;
top: 45%;
left: 0;
min-width: 220px;
max-width: 400px;
padding: 9px;
border: 1px solid hsla(0, 0%, 0%, .5);
border-radius: 2px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
background-color: #474747;
color: hsl(0, 0%, 85%);
font-size: 16px;
line-height: 20px;
}
#mozPrintCallback-shim .progress-row {
clear: both;
padding: 1em 0;
}
#mozPrintCallback-shim progress {
width: 100%;
}
#mozPrintCallback-shim .relative-progress {
clear: both;
float: right;
}
#mozPrintCallback-shim .progress-actions {
clear: both;
}
</style>
<div class="mozPrintCallback-dialog-box">
打印加载中...
<div class="progress-row">
<progress value="0" max="100"></progress>
<span class="relative-progress">0%</span>
</div>
<div class="progress-actions">
<input type="button" value="Cancel" class="mozPrintCallback-cancel">
</div>
</div>
</div>
</body>
<script>
$(function () {
//获取父页面打印权限显示打印按钮
var print = parent.$("#print").val();
$("#printLoading").show();
if (print == 1) {
$("#printLoading").show();
}
})
var getLoadingInterval = setInterval(function () {
//获取打印预览图片加载进度
var loading = parent.$("#loading").val();
$(".progress-bar").css("width",loading);
$("#printLoading p").text(loading);
//加载完退出定时
if(loading == '100%'){
clearInterval(getLoadingInterval);
}
},100);
</script>
</html>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save