查看pdf修改

master
linjj 3 years ago
parent 819bf862de
commit 318bd420fe

@ -1,9 +1,16 @@
package com.emr.controller;
import com.emr.dao.CommomMapper;
import com.emr.dao.approve.Emr_Apply_ApproveMapper;
import com.emr.dao.recordLock.Emr_LockMapper;
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.Zd_AssortServiceImpl;
import com.emr.service.recordType.EmrTypeService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.Jpg2PdfUtil;
import com.emr.vo.FontVo.*;
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.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URL;
@ -56,6 +64,13 @@ public class FontController {
@Autowired
private FontService fontService;
@Autowired
private EmrTypeService emrTypeService;
@Autowired
private Zd_AssortServiceImpl assortService;
@Autowired
private Emr_Apply_ApproveMapper apply_approveMapper;
/**
* 2.1
@ -417,4 +432,43 @@ public class FontController {
public Msg updateTableCommom(CommomVo commom) throws Exception{
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.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@ -92,6 +93,8 @@ public class CommomSearchController {
private LogService logService;
@Autowired
private EmrPdfWaterSetMapper pdfWaterSetMapper;
@Value("${initialization}")
private String initialization;
@Autowired
private EmrPrintDownloadInfoMapper emrPrintDownloadInfoMapper;
@ -103,6 +106,21 @@ public class CommomSearchController {
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")
@ResponseBody
@ -203,6 +221,23 @@ public class CommomSearchController {
return null;
}
}
/***
*
* @param request
* @return
*/
@RequestMapping("selectEmrType")
@ResponseBody
public String selectEmrType(HttpServletRequest request) {
List<Emr_Type> emrTypes = assortService.selectEmrType();
return JSON.toJSONString(emrTypes);
}
/******************************病案预览操作****************************/
/**
* 174
@ -652,7 +687,6 @@ public class CommomSearchController {
}
}
}
List<Archive_Detail> archiveDetails = new ArrayList<>();
if (commomVos.size() == 0) {
List<CommomTree> archiveDetail = archiveDetailMapper.selectPdfPathByPatient2(patientId);
//第一级:全部影像资料
@ -862,15 +896,16 @@ public class CommomSearchController {
String pdfName = "档案管理PDF";
//根据图片路径转换pdf
EmrPdfWaterSet emrPdfWaterSet = pdfWaterSetMapper.selectByPrimaryKey(1);
//定义第二文本水印 姓名 + 科室 + ip
EmrPdfWaterSet emrPdfWaterSet1 = commomService.getEmrPdfWaterSet(emrPdfWaterSet);
//获取角色是否加水印
Integer userSex = user.getUserSex();
if (userSex == null || userSex == 0) {
emrPdfWaterSet.setEffective(Short.valueOf("0"));
emrPdfWaterSet1.setEffective(Short.valueOf("0"));
//UserEffective为1是开启用户信息水印
Short userEffective = emrPdfWaterSet.getUserEffective();
if (userEffective==1){
img2PdfUtil.imageToPdf(response, scanPages, pdfName, emrPdfWaterSet, emrPdfWaterSet1);
}else {
img2PdfUtil.imageToPdfUserEffective(response, scanPages, pdfName, emrPdfWaterSet);
}
img2PdfUtil.imageToPdf(response, scanPages, pdfName, emrPdfWaterSet, emrPdfWaterSet1);
//移除缓存
request.removeAttribute(mapKey);
}
@ -883,7 +918,16 @@ public class CommomSearchController {
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
String mapKey = user.getUserName() + "_" + patientId;
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;
@Value("${POWER_URLHEAD}")
private String POWER_URLHEAD;
@Value("${applyApproveFlag}")
private String applyApproveFlag;
@Autowired
private CommomService commomService;
/**
@ -152,6 +154,12 @@ public class ApproveController {
}
}
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.setApplyTime(fmt.format(new Date()));
List<Emr_Apply_Approve> list = new ArrayList<>();
@ -783,12 +791,25 @@ public class ApproveController {
@RequestMapping(value = "updateApprove")
@ResponseBody
public ResultUtil updateApprove(Emr_Apply_Approve applyApprove,HttpServletRequest request) throws Exception{
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);
//如果等一就是开启了过滤节假日
if (applyApproveFlag.equals("1")){
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");
String userName = user.getUserName();
applyApprove.setApprover(userName);
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.setEffeTime(s);
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();
}

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

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

@ -14,6 +14,7 @@ public interface Archive_DetailMapper {
List<Archive_Detail> selectPdfPathByPatient(@Param("patientId")String patientId,@Param("assortIds")String assortIds);
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);

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

@ -80,4 +80,6 @@ public interface Emr_Apply_ApproveMapper {
* @return
*/
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,
@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

@ -27,7 +27,7 @@
<sql id="Base_Column_List" >
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,
download_effective, download_is_img, print_effective, print_is_img
download_effective, download_is_img, print_effective, print_is_img,user_effective
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
@ -277,6 +277,7 @@
download_effective = #{downloadEffective,jdbcType=SMALLINT},
download_is_img = #{downloadIsImg,jdbcType=SMALLINT},
print_effective = #{printEffective,jdbcType=SMALLINT},
user_effective = #{userEffective,jdbcType=SMALLINT},
print_is_img = #{printIsImg,jdbcType=SMALLINT}
where id = #{id,jdbcType=INTEGER}
</update>

@ -20,4 +20,6 @@ public interface QualityMapper {
List<String>getFliePath(@Param("ph")String ph);
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 name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 10
*/

@ -45,6 +45,16 @@ public class EmrPdfWaterSet implements Serializable {
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;
public Integer getId() {

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

@ -3,6 +3,7 @@ package com.emr.service;
import com.emr.dao.Zd_AssortMapper;
import com.emr.entity.Power_User;
import com.emr.entity.Zd_Assort;
import com.emr.entity.recordType.Emr_Type;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -54,4 +55,8 @@ public class Zd_AssortServiceImpl{
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));
}
@Override
public List<String> expireTime(String currentTime,int effeDays) {
return applyApproveMapper.expireTime(currentTime,effeDays);
}
}

@ -1,7 +1,6 @@
package com.emr.service.approve;
import com.emr.entity.approve.Emr_Apply_Approve;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@ -28,4 +27,6 @@ public interface ApplyApproveService {
*
* */
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.setPrintFee(printCount * printPrice);
if (vo.getTypeName().equals("院内查阅")){
vo.setPrintFee(0 * printPrice);
}
if (vo.getTypeName().equals("公检法单位")){
vo.setPrintFee(0 * printPrice);
}
}
}
return list;

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

@ -22,6 +22,8 @@ public interface EmrTypeService {
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
public Emr_Type checkTypeNameByCreater(String typeName,HttpServletRequest request) {
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;
import com.emr.entity.emrPdfWaterSet.EmrPdfWaterSet;
import com.lowagie.text.*;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
@ -267,7 +268,7 @@ public class Jpg2PdfUtil {
image.scaleToFit(200, 200);
content.addImage(image);
}
content.setColorFill(Color.BLACK);
content.setColorFill(Color.red);
content.setFontAndSize(base, 8);
}
} 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="";
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//遍历删除,除去损坏,文件不存在,抛异常就是空白页
@ -306,6 +307,7 @@ public class Jpg2PdfUtil {
Document document = null;
PdfCopy copy = null;
try {
filename = java.net.URLEncoder.encode(filename, "UTF-8");
response.reset();
response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf");
@ -318,15 +320,15 @@ public class Jpg2PdfUtil {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfReader pdfReader = null;
//判断是否加水印
if (StringUtils.isNotBlank(waterMarkName)) {
setWatermark(bos, reader, waterMarkName, null);
if (emrPdfWaterSet.getDownloadEffective()==1) {
setWatermark(bos, reader, emrPdfWaterSet.getText(), 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)) {
if (emrPdfWaterSet.getDownloadEffective()==1) {
page = copy.getImportedPage(pdfReader, j);
} else {
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");
//遍历删除,除去损坏,文件不存在,抛异常就是空白页
Iterator<String> iterator = filePaths.iterator();
@ -381,7 +386,7 @@ public class Jpg2PdfUtil {
response.reset();
response.setCharacterEncoding("utf-8");
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));
copy = new PdfCopy(document,response.getOutputStream());
document.open();
@ -389,7 +394,22 @@ public class Jpg2PdfUtil {
PdfReader reader = new PdfReader(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfReader pdfReader = null;
//判断是否加水印
if (effective == 1 || isImg == 1) {
setWatermark(bos, reader, emrPdfWaterSet.getText(), null);
pdfReader = new PdfReader(bos.toByteArray());
}
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){
pdfReader.close();
}
@ -430,4 +450,54 @@ public class Jpg2PdfUtil {
p = Math.round(p2);
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) {
Document document = new Document(PageSize.A4, 30, 30, 30, 30); //创建文档容器
ByteArrayOutputStream bos = new ByteArrayOutputStream();
@ -251,12 +295,122 @@ 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
private static void imgToPdf(Document document, List<String> filePaths) throws Exception {
document.open(); //打开容器
float percent = 100;
float w, h;
for (String filePath : filePaths) {
try {
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);
}
} 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);
@ -283,7 +437,6 @@ public class img2PdfUtil {
}
document.add(img);
}
}
document.close(); //关闭容器
}

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

@ -1,5 +1,5 @@
#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_JSPHEAD = localhost
@ -7,14 +7,6 @@ POWER_JSP = http://localhost:8081/power
#\u672C\u8EAB\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934
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
@ -40,5 +32,11 @@ waterPicPath = D:/jiashi/reload/
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.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.password=docus@702
jdbc.password=admin123
#dataSource2
jdbc.url2=jdbc\:sqlserver\://47.111.21.195:1433;databaseName=blgd_java
jdbc.username2=sa
jdbc.password2=docus@702
jdbc.url2=jdbc\:sqlserver\://localhost:1433;databaseName=blgd_java
jdbc.username2=jsuser
jdbc.password2=123456

@ -136,12 +136,7 @@
</select>
<select id="selectPdfPathByPatient3" resultType="com.emr.vo.commomSearch.CommomTree">
SELECT
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
archive_detail.PDF_PATH
FROM
archive_detail
LEFT JOIN zd_assort
@ -150,4 +145,15 @@
MasterID = #{patientIds}
ORDER BY zd_assort.assort_sort,UpLoadDateTime
</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>

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

@ -315,11 +315,11 @@
a.dis_date,
a.approve_notes,
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,
a.approver,
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,
c.name,
CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus
@ -687,4 +687,9 @@
and apply_type = 4
order by id desc
</select>
<select id="expireTime" resultType="java.lang.String">
SELECT top (${effeDays}) date FROM emr_holiday_set where date> #{currentTime} AND flag=1
</select>
</mapper>

@ -68,6 +68,42 @@
dbo.zd_assort.assort_sort,t_scan_assort.scan_page
</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">
${sql}
</update>
@ -79,4 +115,35 @@
<select id="selectCountPdf" resultType="java.lang.Integer">
SELECT COUNT(*) FROM dbo.t_scan_assort
</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>

@ -27,7 +27,7 @@
<sql id="Base_Column_List" >
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,
download_effective, download_is_img, print_effective, print_is_img
download_effective, download_is_img, print_effective, print_is_img,user_effective
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
@ -277,6 +277,7 @@
download_effective = #{downloadEffective,jdbcType=SMALLINT},
download_is_img = #{downloadIsImg,jdbcType=SMALLINT},
print_effective = #{printEffective,jdbcType=SMALLINT},
user_effective = #{userEffective,jdbcType=SMALLINT},
print_is_img = #{printIsImg,jdbcType=SMALLINT}
where id = #{id,jdbcType=INTEGER}
</update>

@ -1,6 +1,12 @@
<?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" >
<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 COUNT(distinct ph) FROM commomtable

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

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

@ -170,6 +170,17 @@
id="textColor" name="textColor" maxlength="12">
</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>
<hr>
<div class="row">

@ -132,7 +132,8 @@
<label class="labelDiv">用途:</label>
</div>
<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 class="dateSearchDiv left">

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

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

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

@ -107,5 +107,5 @@ function returnShowDetailUrl(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);
//加载分段
selectAssortsSelect();
//加载用途
selectEmrType();
})
function selectAssortsSelect(){
$.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 columns = [];
columns.push(

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

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

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