代码更新 4/7 wzq

master
wzqgit 4 years ago
parent 803a57c57e
commit efc606e030

File diff suppressed because it is too large Load Diff

@ -0,0 +1,357 @@
package com.emr.controller;
import com.alibaba.fastjson.JSON;
import com.emr.dao.Emr_DictionaryMapper;
import com.emr.entity.*;
import com.emr.service.Archive_DetailService;
import com.emr.service.Archive_MasterService;
import com.emr.service.Zd_AssortService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.Msg;
import org.apache.commons.lang3.StringUtils;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
/**
* @author zwh
* */
@Controller
@RequestMapping("font/")
public class FontController {
@Value("${pdfWater}")
private String pdfWater;
@Value("${allAddortIds}")
private String allAddortIds;
@Value("${POWER_URLHEAD}")
private String powerUrlHead;
@Autowired
private Archive_DetailService archiveDetailService;
@Autowired
private Archive_MasterService archiveMasterService;
@Autowired
private Emr_DictionaryMapper dictionaryMapper;
@Autowired
private Zd_AssortService assortService;
/***************************提供第三方按多个分段id和记账号查询病历pdf***********************************/
/**
* idpdf
* */
@RequestMapping("showRecordByPatientId")
public String showRecordByPatientId(String assortIds, String patientId,String visitId, Model model){
if(StringUtils.isBlank(assortIds)){
return retrunErrorPage(model,"病案分类Id不能为空!");
}
if(StringUtils.isBlank(patientId)){
return retrunErrorPage(model,"记账号不能为空!");
}
if(StringUtils.isBlank(visitId)){
return retrunErrorPage(model,"住院次数不能为空!");
}
List<Archive_Master> list = new ArrayList<>();
//判断工号是否存在
try {
/* String checkUserName = checkUserName(userName);
if(StringUtils.isNotBlank(checkUserName)){
return retrunErrorPage(model,checkUserName);
}*/
//判断分类id是否存在,协商assortIds = "00000000"为查询全部
if(!allAddortIds.equals(assortIds)) {
String checkAssortIds = checkAssortIds(assortIds);
if (StringUtils.isNotBlank(checkAssortIds)) {
return retrunErrorPage(model, checkAssortIds);
}
}
//判断记账号是否存在
list = archiveMasterService.selectByObject(patientId,visitId);
if(null == list || list.isEmpty()){
return retrunErrorPage(model,"病历不存在!");
}
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
}
model.addAttribute("patientId",list.get(0).getId());
model.addAttribute("accountNumber",list.get(0).getPatientId());
model.addAttribute("assortIds",assortIds);
return "font/showRecord";
}
/**
*
* */
private String retrunErrorPage(Model model, String errorMsg){
model.addAttribute("errorMsg",errorMsg);
return "font/error";
}
/**
* id
* */
private String checkAssortIds(String assortIds){
Zd_Assort assort = new Zd_Assort();
assort.setPrintFlag("0");
List<Zd_Assort> assortList = null;
try {
assortList = assortService.selectAll(assort);
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
}
if(null != assortList && !assortList.isEmpty()){
String[] split = assortIds.split(",");
for (String s : split) {
//定义分类存在
boolean exist = false;
if (StringUtils.isNotBlank(s)) {
for (Zd_Assort assort1 : assortList) {
if (s.equals(assort1.getAssortId())) {
exist = true;
break;
}
}
}
if (!exist) {
return "病案分类Id有误!";
}
}
}else{
return "病案分类Id有误!";
}
return null;
}
/**
*
* @param masterId
* @return
*/
@ResponseBody
@RequestMapping(value = "/getRecord")
public String getPdfToPdf(String masterId){
try {
Archive_Master archiveMaster = archiveMasterService.selectById(masterId);
//转换科室数据字典
if(StringUtils.isNotBlank(archiveMaster.getDeptName())){
Emr_Dictionary dictionary = new Emr_Dictionary();
dictionary.setCode(archiveMaster.getDeptName());
dictionary.setTypecode("dept_code");
List<Emr_Dictionary> dictionaries = dictionaryMapper.dicByTypeCode(dictionary);
if(null != dictionaries && !dictionaries.isEmpty()){
archiveMaster.setDeptName(dictionaries.get(0).getName());
}
//判断出院日期
String dischargeDateTime = archiveMaster.getDischargeDateTime();
if(StringUtils.isNotBlank(dischargeDateTime)){
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String time = fmt.format(fmt.parse(dischargeDateTime));
if("1801-02-03".equals(time)){
archiveMaster.setDischargeDateTime(null);
}
}
}
return JSON.toJSONString(archiveMaster);
} catch (ParseException e) {
ExceptionPrintUtil.printException(e);
//e.printStackTrace();
return null;
}
}
/**
* showRecordIframe
* */
@RequestMapping("showRecordIframe")
public String showRecordIframe(){
return "font/showRecordIframe";
}
/**
* masterid
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getRecordTypeTree")
public String getRecordTypeTree(String patientId,String assortIds){
List<AssortTypeTree> treeList = new ArrayList<>();
if(StringUtils.isNotBlank(patientId) && StringUtils.isNotBlank(assortIds)){
List<Archive_Detail> list = new ArrayList<>();
//assortIds等于协商的全查的分类id全查
try {
if(allAddortIds.equals(assortIds)){
list = archiveDetailService.selectTypeTreeByPatientIdAndAssortIds(patientId, null);
}else{
//否则按条件查
//分类id分别以单引号隔开
StringBuilder assortIdStr = new StringBuilder();
String[] split = assortIds.split(",");
for (String s : split) {
assortIdStr.append("'").append(s).append("',");
}
//去掉最后一个逗号
assortIdStr = new StringBuilder(assortIdStr.substring(0, assortIdStr.length() - 1));
list = archiveDetailService.selectTypeTreeByPatientIdAndAssortIds(patientId, assortIdStr.toString());
}
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
}
if(null != list && !list.isEmpty()){
Set<String> assortList = new LinkedHashSet<>();
//抽取首次病程记录
String strTemp = "首次病程";
String assortId = "11";
//定义护理记录里的首次护理记录排前头
String nurseTemp = "首次护理";
String nurseAssortId = "7";
Archive_Detail detailTemp = new Archive_Detail();
Archive_Detail nurseDetailVoTemp = new Archive_Detail();
//分类去重
for(Archive_Detail detail : list){
assortList.add(detail.getSubassort());
//获取title
String title = detail.getTitle();
if(StringUtils.isNotBlank(title) && detail.getTitle().contains(strTemp)){
detailTemp = detail;
}
if(StringUtils.isNotBlank(title) && detail.getTitle().contains(nurseTemp)){
nurseDetailVoTemp = detail;
}
}
//组织树
int id = 1;
//定义第一层的id为第二层父id
int oneParentId = 0;
//定义第二层的id为第三层父id
int twoParentId = 0;
AssortTypeTree tree = new AssortTypeTree();
//第一层,根目录全部影像资料
tree.setId(id);
tree.setParentId(0);
tree.setName("全部影像资料");
tree.setChecked("true");
treeList.add(tree);
oneParentId = id;
id++;
for(String assortName : assortList){
AssortTypeTree tree1 = new AssortTypeTree();
//第二层,分类名称
tree1.setId(id);
tree1.setParentId(oneParentId);
twoParentId = id;
id++;
//定义该类的数量
int count = 0;
//定义是否添加了首次病程
boolean flag = false;
boolean nurseflag = false;
for(Archive_Detail detail : list){
if(StringUtils.isNoneBlank(detail.getSubassort()) && assortName.equals(detail.getSubassort())){
String assortid = detail.getAssortid();
if(StringUtils.isNotBlank(assortid) && assortid.equals(assortId)){
//是病程记录
if(!flag && StringUtils.isNotBlank(detailTemp.getTitle())){
AssortTypeTree tree2 = new AssortTypeTree();
//第三层,资料名称
count++;
tree2.setId(id);
tree2.setParentId(twoParentId);
tree2.setName(detailTemp.getTitle());
tree2.setSelfId(detailTemp.getId());
tree2.setChecked("true");
treeList.add(tree2);
id++;
flag = true;
}
}
if(StringUtils.isNotBlank(assortid) && assortid.equals(nurseAssortId)){
//是护理记录
if(!nurseflag && StringUtils.isNotBlank(nurseDetailVoTemp.getTitle())){
AssortTypeTree tree2 = new AssortTypeTree();
//第三层,资料名称
count++;
tree2.setId(id);
tree2.setParentId(twoParentId);
tree2.setName(nurseDetailVoTemp.getTitle());
tree2.setSelfId(nurseDetailVoTemp.getId());
tree2.setChecked("true");
treeList.add(tree2);
id++;
nurseflag = true;
}
}
if(!detail.equals(detailTemp) && !detail.equals(nurseDetailVoTemp)) {
AssortTypeTree tree2 = new AssortTypeTree();
//第三层,资料名称
count++;
tree2.setId(id);
tree2.setParentId(twoParentId);
tree2.setName(detail.getTitle());
tree2.setSelfId(detail.getId());
tree2.setChecked("true");
treeList.add(tree2);
id++;
}
}
}
tree1.setName(assortName + "("+count+")");
tree1.setChecked("true");
treeList.add(tree1);
}
}
}
return JSON.toJSONString(treeList);
}
/**
* idPDFpdf
* @param response
* @param detailIds
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/getPdfToPdf",method = RequestMethod.POST)
public Msg getPdfToPdf(HttpServletResponse response, String detailIds, HttpSession session){
try {
Archive_Detail detail = new Archive_Detail();
if(StringUtils.isNotBlank(detailIds)){
detail.setTitle(detailIds);
archiveDetailService.selectByIdStrFont(response,session,detail);
}else{
//存至session
session.setAttribute("showRecord",null);
}
return Msg.success();
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
return Msg.fail("查看出错了,请联系系统管理员");
//e.printStackTrace();
}
}
@ResponseBody
@RequestMapping(value = "showPdf")
public void showPdf(HttpServletResponse response, HttpSession session){
try {
archiveDetailService.showPdf(response,session,pdfWater);
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
}
}
}

@ -36,22 +36,22 @@ public class TempHandleWzController {
@ResponseBody
public int reloadWz(String masterId){
int rows = 0;
TempMasterID tempMasterID = new TempMasterID();
/*TempMasterID tempMasterID = new TempMasterID();
tempMasterID.setId(masterId);
List<TempMasterID> list = new ArrayList<>();
list.add(tempMasterID);
rows = tempMasterIDService.reloadWz(list);
list.add(tempMasterID);*/
rows = tempMasterIDService.reloadWz(masterId);
return rows;
}
@RequestMapping("reloadWzAll")
/*@RequestMapping("reloadWzAll")
@ResponseBody
public int reloadWzAll(){
int rows = 0;
List<TempMasterID> list = tempMasterIDService.selectAllMasterID();
rows = tempMasterIDService.reloadWz(list);
/*TempMasterID t1 = new TempMasterID();
*//*TempMasterID t1 = new TempMasterID();
t1.setId("36cc3c27-447e-48e4-93b9-06b3acc397ca");
TempMasterID t2 = new TempMasterID();
t2.setId("a490ca0b-879f-4ae4-9238-33c44e5fda99");
@ -67,7 +67,7 @@ public class TempHandleWzController {
list.add(t3);
list.add(t4);
list.add(t5);
rows = tempMasterIDService.reloadWz(list);*/
rows = tempMasterIDService.reloadWz(list);*//*
return rows;
}
}*/
}

@ -9,8 +9,13 @@ package com.emr.controller;
import com.emr.entity.*;
import com.emr.service.*;
import com.emr.util.ExportExcelUtil;
import com.emr.util.XMLUtil;
import com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_CALLBACK_RECORD;
import com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_INDEX_CALLBACK;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
@ -315,6 +320,119 @@ public class lastVerifyController {
return archiveMasterService.updateByClo(archive_master);
}
@Transactional
@ResponseBody
@RequestMapping(value = "/emrShowBackReason")
public String emrShowBackReason(Emr_Fault_Detail emrFaultDetail) throws Exception {
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String nowTime = format1.format(new Date());
//退回原因
StringBuffer assortName = new StringBuffer();
List<Emr_Fault_Vo> list = emrFaultDetailService.selectByColumn(emrFaultDetail);
for (Emr_Fault_Vo emr_fault_vo:list) {
assortName.append(emr_fault_vo.getAssortName()+";");
}
Archive_Master archive_master = archiveMasterService.selectById(emrFaultDetail.getArchiveDetailId());
String result="False";
if (archive_master!=null){
result = emrWebServiceShowBackReason(archive_master.getPatientId(),
Integer.parseInt(archive_master.getVisitId()),
nowTime,
assortName.toString(),
archive_master.getInpNo());
}
return result;
}
public String emrWebServiceShowBackReason(String PATIENT_ID,int VISIT_ID,String nowTime,String APPLY_REASON,String INP_NO) throws Exception {
String MR_FILE_CALLBACK_RECORD="";//入参1
String MR_FILE_INDEX_CALLBACK="";//入参2
com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_CALLBACK_RECORD inputParam1 = new MR_FILE_CALLBACK_RECORD();
inputParam1.setPATIENT_ID(PATIENT_ID);
inputParam1.setVISIT_ID(VISIT_ID);
inputParam1.setFILE_UNIQUE_ID("1");
inputParam1.setAPPLY_DATE_TIME(nowTime);
inputParam1.setAPPLY_TIME_LIMIT(nowTime);
inputParam1.setAPPLY_REASON(APPLY_REASON);
inputParam1.setEXPIRY_TIME(nowTime);
//其他为""参数
inputParam1.setAPPLY_USER_ID("1");
inputParam1.setAPPLY_USER_NAME("1");
inputParam1.setAPPLY_DEPT_CODE("1");
inputParam1.setSTATUS(0);
inputParam1.setAPPROVE_USER_ID("1");
inputParam1.setAPPROVE_USER_NAME("1");
inputParam1.setAPPROVE_DEPT_CODE("1");
inputParam1.setAPPROVE_DATE_TIME(nowTime);
inputParam1.setCLINIC_TYPE(0);
inputParam1.setAPPROVE_REASON("1");
inputParam1.setAPPROVE_USER_ID_DIRECTOR("1");
inputParam1.setAPPLY_USER_NAME_DIRECTOR("1");
inputParam1.setAPPROVE_DEPT_CODE_DIRECTOR("1");
inputParam1.setAPPROVE_DATE_TIME_DIRECTOR(nowTime);
inputParam1.setAPPLY_REASON_DIRECTOR("1");
inputParam1.setAPPROVE_USER_ID_MEDICAL("1");
inputParam1.setAPPLY_USER_NAME_MEDICAL("1");
inputParam1.setAPPROVE_DEPT_CODE_MEDICAL("1");
inputParam1.setAPPROVE_DATE_TIME_MEDICAL(nowTime);
inputParam1.setAPPLY_REASON_MEDICAL("1");
inputParam1.setRECEIVE_USERID("1");
com.emr.webservice.MedicalRecordShowBackContent.MR_FILE_INDEX_CALLBACK inputParam2 = new MR_FILE_INDEX_CALLBACK();
inputParam2.setPATIENT_ID(PATIENT_ID);
inputParam2.setVISIT_ID(VISIT_ID);
inputParam2.setAPPLY_DATE_TIME(nowTime);
inputParam2.setAPPLY_TIME_LIMIT(nowTime);
inputParam2.setAPPLY_USER_NAME("1");
inputParam2.setAPPLY_DEPT_CODE("1");
inputParam2.setSTATUS(1);
inputParam2.setAPPROVE_USER_ID("1");
inputParam2.setAPPROVE_USER_NAME("1");
inputParam2.setAPPROVE_DEPT_CODE("1");
inputParam2.setAPPROVE_DATE_TIME(nowTime);
inputParam2.setAPPLY_REASON(APPLY_REASON);
inputParam2.setCLINIC_TYPE(0);
inputParam2.setOPERATOR_TYPE(0);
inputParam2.setLIMIT_DATE(nowTime);
//其他为""参数
inputParam2.setAPPROVE_REASON("1");
inputParam2.setISCOPYBACK(0);
inputParam2.setIS_FIRSTPAGE(0);
inputParam2.setMRBACK_STATUS(0);
inputParam2.setIS_APPROVE(1);
inputParam2.setINP_NO(INP_NO);
inputParam2.setBACK_TYPE(0);
inputParam2.setFINISH_DATE_TIME(nowTime);
inputParam2.setAPPROVE_USER_ID_DIRECTOR("1");
inputParam2.setAPPLY_USER_NAME_DIRECTOR("1");
inputParam2.setAPPROVE_DEPT_CODE_DIRECTOR("1");
inputParam2.setAPPROVE_DATE_TIME_DIRECTOR(nowTime);
inputParam2.setAPPLY_REASON_DIRECTOR("1");
inputParam2.setAPPROVE_USER_ID_MEDICAL("1");
inputParam2.setAPPLY_USER_NAME_MEDICAL("1");
inputParam2.setAPPROVE_DEPT_CODE_MEDICAL("1");
inputParam2.setAPPROVE_DATE_TIME_MEDICAL(nowTime);
inputParam2.setAPPLY_REASON_MEDICAL("1");
inputParam2.setAPPROVE_HOST_IP("1");
inputParam2.setAPPROVE_HOST_NAME("1");
inputParam2.setAPPROVE_HOST_MAC_ADD("1");
inputParam2.setHOSPITAL_NO("12440000455858169P");
MR_FILE_CALLBACK_RECORD = XMLUtil.convertToXml(inputParam1);
MR_FILE_INDEX_CALLBACK = XMLUtil.convertToXml(inputParam2);
String endpoint = "http://10.6.1.152:8037/SignWebService.asmx?WSDL";
String method = "MedicalRecordRepair";
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient(endpoint);
Object[] res = null;
res = client.invoke(method,MR_FILE_CALLBACK_RECORD,MR_FILE_INDEX_CALLBACK);
//String xml = (String) res[0];
//System.err.println("@@@@@@@@@@@@@@@@@" + xml);
return (String) res[0];
}
}

@ -2,6 +2,7 @@ package com.emr.dao;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -34,4 +35,7 @@ public interface Archive_DetailMapper {
List<Archive_Detail> selectByCol2(Archive_Detail record);
List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(@Param("patientId")String patientId, @Param("assortIds")String assortIds);
List<Archive_Detail> selectByIdStr1(Archive_Detail record);
}

@ -2,6 +2,7 @@ package com.emr.dao;
import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -49,4 +50,9 @@ public interface Archive_MasterMapper {
//封存日志
List<Archive_Master_Vo> selectByFollowinglog(Archive_Master_Vo record);
/**
*
* */
List<Archive_Master> selectByObject(@Param(value = "patientId") String patientId,@Param(value = "visitId")String visitId);
}

@ -1,6 +1,7 @@
package com.emr.dao;
import com.emr.entity.Zd_Assort;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -10,4 +11,7 @@ public interface Zd_AssortMapper {
int insertSelective(Zd_Assort record);
List<Zd_Assort> selectByColm(Zd_Assort record);
List<Zd_Assort> selectAll(@Param("record") Zd_Assort record);
}

@ -0,0 +1,65 @@
package com.emr.entity;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/4/22 17:40
* @UpdateUser:
* @UpdateDate: 2020/4/22 17:40
* @UpdateRemark:
* @Version: 1.0
*/
public class AssortTypeTree {
private Integer id;
private Integer parentId;
private String name;
private String selfId;
private String checked;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSelfId() {
return selfId;
}
public void setSelfId(String selfId) {
this.selfId = selfId;
}
public String getChecked() {
return checked;
}
public void setChecked(String checked) {
this.checked = checked;
}
}

@ -9,7 +9,10 @@ package com.emr.service;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import com.emr.entity.OffsetLimitPage;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
public interface Archive_DetailService {
@ -85,6 +88,14 @@ public interface Archive_DetailService {
List<Archive_Detail> selectByIdStr(Archive_Detail record);
List<Archive_Detail> selectByCol2(Archive_Detail record);
List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(@Param("patientId")String patientId, @Param("assortIds")String assortIds);
void selectByIdStrFont(HttpServletResponse response, HttpSession session, Archive_Detail detail);
List<String> mulFile2OneById(HttpServletResponse response,List<Archive_Detail> arList);
void showPdf(HttpServletResponse response, HttpSession session, String pdfWater);
}

@ -198,6 +198,11 @@ public interface Archive_MasterService {
//封存日志
OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit);
/**
*
* */
List<Archive_Master> selectByObject(String patientId,String visitId);
}

@ -10,5 +10,5 @@ public interface TempMasterIDService {
List<TempMasterID> selectAllMasterID();
//重新校验完整性并赋值
int reloadWz(List<TempMasterID> masterIDList);
int reloadWz(String masterId);
}

@ -4,9 +4,15 @@ import com.emr.entity.Emr_Log;
import com.emr.entity.Emr_Log_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.entity.Zd_Assort;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface Zd_AssortService {
List<Zd_Assort> selectByColm(Zd_Assort record);
/**
*
* */
List<Zd_Assort> selectAll(@Param("record") Zd_Assort record);
}

@ -12,11 +12,17 @@ import com.emr.entity.Archive_Detail_Vo;
import com.emr.entity.Emr_Fault_Vo;
import com.emr.entity.OffsetLimitPage;
import com.emr.service.Archive_DetailService;
import com.emr.util.Jpg2PdfUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
@Service
@ -88,7 +94,82 @@ public class Archive_DetailServiceImpl implements Archive_DetailService {
return archiveDetailMapper.selectByCol2(record);
}
@Override
public List<Archive_Detail> selectTypeTreeByPatientIdAndAssortIds(String patientId, String assortIds) {
return archiveDetailMapper.selectTypeTreeByPatientIdAndAssortIds(patientId,assortIds);
}
@Override
public void selectByIdStrFont(HttpServletResponse response, HttpSession session, Archive_Detail detail) {
List<Archive_Detail> arList = archiveDetailMapper.selectByIdStr1(detail);
List<String> pdfList = mulFile2OneById(response, arList);
//存至session
session.setAttribute("showRecord",pdfList);
}
/**
* pdf
* @param response
* @param arList
*/
@Override
public List<String> mulFile2OneById(HttpServletResponse response,List<Archive_Detail> arList) {
List<String> pdfList = new ArrayList<>();
if (arList != null && !arList.isEmpty()) {
//TODO 抽取首次病程记录
String strTemp = "首次病程";
String assortId = "AFB9FBE656D7492C80AEDE6E685A851A";
//定义护理记录里的首次护理记录排前头
String nurseTemp = "首次护理";
String nurseAssortId = "C70E8C427A3648B79BE80798C08F4D12";
if(!CollectionUtils.isEmpty(arList)) {
String strPath = "";
String nursePath = "";
for (int i = 0; i < arList.size(); i++) {
String assortid = arList.get(i).getAssortid();
if(StringUtils.isNotBlank(assortid) && assortid.equals(assortId) && arList.get(i).getTitle().contains(strTemp)){
strPath = arList.get(i).getPdfPath();
}
if(StringUtils.isNotBlank(assortid) && assortid.equals(nurseAssortId) && arList.get(i).getTitle().contains(nurseTemp)){
nursePath = arList.get(i).getPdfPath();
}
}
//定义是否添加首次病程
boolean flag = false;
boolean nurseFlag = false;
for (Archive_Detail detail : arList) {
String str = detail.getPdfPath();
if (StringUtils.isNoneBlank(str)) {
//病程分类先添加首次病程
if (detail.getAssortid().equals(assortId) && !flag && StringUtils.isNotBlank(strPath)) {
pdfList.add(strPath);
flag = true;
}
//护理记录单先添加首次护理
if (detail.getAssortid().equals(nurseAssortId) && !nurseFlag && StringUtils.isNotBlank(nursePath)) {
pdfList.add(nursePath);
nurseFlag = true;
}
if(!detail.getPdfPath().equals(strPath) && !detail.getPdfPath().equals(nursePath)){
pdfList.add(str);
}
}
}
}
}
return pdfList;
}
@Override
public void showPdf(HttpServletResponse response, HttpSession session, String pdfWater) {
List<String> pdfList = (List<String>)session.getAttribute("showRecord");
if(!CollectionUtils.isEmpty(pdfList)) {
Jpg2PdfUtil jpg2PdfUtil = Jpg2PdfUtil.getInstance();
jpg2PdfUtil.mulFile2One(response, pdfList, pdfWater);
}
//删除缓存` ` `
session.removeAttribute("showRecord");
}
}

@ -357,6 +357,12 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
return new OffsetLimitPage((Page) list);
}
@Override
public List<Archive_Master> selectByObject(String patientId,String visitId) {
return archiveMasterMapper.selectByObject(patientId,visitId);
}
}

@ -33,46 +33,24 @@ public class TempMasterIDServiceImpl implements TempMasterIDService {
}
@Override
public int reloadWz(List<TempMasterID> masterIDList) {
public int reloadWz(String masterId) {
String result = "";
int rows = 0;
ArrayList<Archive_Master> archive_masters = new ArrayList<>();
Archive_Master archive_master = null;
Archive_Master archive_master = new Archive_Master();
try {
String endpoint = HomepageDictionary;
String method = HomepageMethod;
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient(endpoint);
// HomepageDictionary_Service homepageDictionary_service = new HomepageDictionary_Service();
// com.emr.webservice.HomepageDictionary homepageDictionaryImplPort = homepageDictionary_service.getHomepageDictionaryImplPort();
Object[] res = null;
res = client.invoke(method, masterId);
result = (String) res[0];
// 设置超时单位为毫秒
/*HTTPConduit conduit = (HTTPConduit)client.getConduit();
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setConnectionTimeout(30000);//连接超时时间
policy.setAllowChunking(false);
policy.setReceiveTimeout(180000);//请求超时时间.
conduit.setClient(policy);*/
//修改lockinfo
archive_master.setId(masterId);
archive_master.setLockinfo(result);
for (TempMasterID tempMasterID:masterIDList) {
archive_master = new Archive_Master();
String temp = tempMasterID.getId();
Object[] res = null;
res = client.invoke(method, temp);
result = (String) res[0];
// String result = homepageDictionaryImplPort.checkData(temp);
//修改lockinfo
archive_master.setId(temp);
archive_master.setLockinfo(result);
archive_masters.add(archive_master);
//rows = archive_masterMapper.updateByClo(archive_master);
//TODO 手动提交事务
}
for (Archive_Master temp: archive_masters) {
rows = archive_masterMapper.updateByClo(temp);
}
rows = archive_masterMapper.updateByClo(archive_master);
} catch (Exception e) {
System.err.println(e.toString());
}

@ -32,6 +32,11 @@ public class Zd_AssortServiceImpl implements Zd_AssortService {
public List<Zd_Assort> selectByColm(Zd_Assort record) {
return zdAssortMapper.selectByColm(record);
}
@Override
public List<Zd_Assort> selectAll(Zd_Assort record) {
return zdAssortMapper.selectAll(record);
}
}

@ -0,0 +1,36 @@
package com.emr.util;
import org.apache.log4j.Logger;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/8/4 14:18
* @UpdateUser:
* @UpdateDate: 2020/8/4 14:18
* @UpdateRemark:
* @Version: 1.0
*/
public class ExceptionPrintUtil {
private static Logger log = Logger.getLogger("errorMsg");
public static void printException(Exception e){
//方法名
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();
log.error(exception);
try {
baos.flush();
baos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

@ -0,0 +1,187 @@
package com.emr.util;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2019/6/6 9:07
* @UpdateUser:
* @UpdateDate: 2019/6/6 9:07
* @UpdateRemark:
* @Version: 1.0
*/
public class Jpg2PdfUtil {
private static Logger log = Logger.getLogger("myMsg");
/**
* itextpdf
*/
private PdfReader check(String file) {
if(StringUtils.isNotBlank(file)) {
PdfReader pdfReader = null;
try {
pdfReader = new PdfReader(file);
if (pdfReader.getNumberOfPages() != 0) {
return pdfReader;
}
} catch (Exception e) {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String logStr = "'"+ file + "'"+"文件损坏或不存在";
log.info(logStr);
System.out.println(fmt.format(new Date()) + ":" + logStr);
} finally {
if (null != pdfReader) {
pdfReader.close();
}
}
}
return null;
}
private Jpg2PdfUtil(){};
public static Jpg2PdfUtil getInstance(){
return ContainerHolder.HOLDER.jpg2PdfUtil;
}
private enum ContainerHolder{
HOLDER;
private Jpg2PdfUtil jpg2PdfUtil;
ContainerHolder(){
jpg2PdfUtil = new Jpg2PdfUtil();
}
}
public void mulFile2One(HttpServletResponse response, List<String> files, String waterMarkName) {
List<PdfReader> list = new ArrayList<>();
//遍历删除,除去损坏,文件不存在,抛异常就是空白页
Iterator<String> iterator = files.iterator();
while (iterator.hasNext()) {
PdfReader check = check(iterator.next());
if(null != check){
list.add(check);
}
}
if (!CollectionUtils.isEmpty(list)) {
// pdf合并工具类
Document document = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfCopy copy = null;
try {
response.reset();
document = new Document(list.get(0).getPageSize(1));
copy = new PdfCopy(document, response.getOutputStream());
document.open();
for (PdfReader reader : list) {
bos.flush();
//判断是否加水印
if (StringUtils.isNotBlank(waterMarkName)) {
setWatermark(bos, reader, waterMarkName, null);
reader = 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(reader, j);
} else {
page = copy.getImportedPage(reader, j);
}
copy.addPage(page);
}
reader.close();
}
} catch (Exception e) {
//e.printStackTrace();
} finally {
if (null != copy) {
copy.close();
}
try {
bos.flush();
bos.close();
} catch (Exception e) {
//e.printStackTrace();
}
if (null != document) {
document.close();
}
}
}
}
//加水印
private void setWatermark(ByteArrayOutputStream bos, PdfReader reader, String waterMarkName, String imgPath) {
PdfStamper stamper = null;
try {
stamper = new PdfStamper(reader, bos);
//stamper.setEncryption(null, null, ~(PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING), PdfWriter.STANDARD_ENCRYPTION_128);
int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
PdfGState gs = new PdfGState();
for (int i = 1; i < total; i++) {
content = stamper.getOverContent(i);// 在内容上方加水印
//加文字水印
if (StringUtils.isNotBlank(waterMarkName)) {
gs.setFillOpacity(0.3f);
gs.setStrokeOpacity(0.3f);
content.setGState(gs);
content.beginText();
content.setColorFill(Color.LIGHT_GRAY);
content.setFontAndSize(base, 50);
content.setTextMatrix(70, 200);
//v:距左 v1:距下 v2:
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 300, 600, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 300, 200, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 800, 600, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 800, 200, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 300, 1100, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 300, 1500, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 800, 1100, 40);
content.showTextAligned(Element.ALIGN_CENTER, waterMarkName, 800, 1500, 40);
content.endText();
}
if (StringUtils.isNotBlank(imgPath)) {
Image image = Image.getInstance(imgPath);
image.setAbsolutePosition(200, 206); // set the first background
image.scaleToFit(200, 200);
content.addImage(image);
}
content.setColorFill(Color.BLACK);
content.setFontAndSize(base, 8);
}
} catch (IOException | DocumentException e) {
e.printStackTrace();
} finally {
try {
assert stamper != null;
stamper.close();
} catch (DocumentException | IOException e) {
e.printStackTrace();
}
}
}
}

@ -0,0 +1,75 @@
/**
*
*/
package com.emr.util;
import java.util.HashMap;
import java.util.Map;
/**
* <p>Title:Msg </p>
* <p>Description:common return class </p>
* <p>Company: </p>
* @author hu
* @date
*/
public class Msg {
//state:100-success 200-fail
private int code;
//提示信息
private String msg;
//用户要返回给浏览器的数据
private Map<String,Object> extend=new HashMap<String,Object>();
public static Msg success(){
Msg result=new Msg();
result.setCode(100);
result.setMsg("success");
return result;
}
public static Msg fail(){
Msg result=new Msg();
result.setCode(200);
result.setMsg("fail");
return result;
}
public static Msg fail(String msg){
Msg result=new Msg();
result.setCode(200);
result.setMsg(msg);
return result;
}
public Msg add(String key, Object value){
this.getExtend().put(key, value);
return this;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map<String, Object> getExtend() {
return extend;
}
public void setExtend(Map<String, Object> extend) {
this.extend = extend;
}
}

@ -7,9 +7,7 @@
package com.emr.util;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Picture;
import com.emr.entity.MergePDFItem;
import com.github.pagehelper.Page;
import com.itextpdf.text.Element;
import com.itextpdf.text.Phrase;
import com.lowagie.text.Document;
@ -17,23 +15,13 @@ import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.*;
import com.lowagie.text.rtf.RtfWriter2;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.javafx.css.Size;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.commons.io.FileUtils;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.rendering.PDFRenderer;
import javax.imageio.ImageIO;
import javax.xml.namespace.QName;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.text.SimpleDateFormat;

@ -112,7 +112,7 @@ public class test {
String mrFILECALLBACKRECORDxml="";//入参1
String mrFILEINDEXCALLBACKxml="";//入参2
MR_FILE_CALLBACK_RECORDxml inputParam1 = new MR_FILE_CALLBACK_RECORDxml();
/*MR_FILE_CALLBACK_RECORDxml inputParam1 = new MR_FILE_CALLBACK_RECORDxml();
inputParam1.setPATIENT_ID("2");
inputParam1.setVISIT_ID("2");
inputParam1.setFILE_UNIQUE_ID("1");
@ -149,7 +149,7 @@ public class test {
SignWebService signWebService = new SignWebService();
SignWebServiceSoap signWebServiceSoap = signWebService.getSignWebServiceSoap();
String str = signWebServiceSoap.medicalRecordRepair(mrFILECALLBACKRECORDxml, mrFILEINDEXCALLBACKxml);
System.out.println(str);
System.out.println(str);*/

@ -0,0 +1,318 @@
package com.emr.webservice.MedicalRecordShowBackContent;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement(name = "MR_FILE_CALLBACK_RECORD")
public class MR_FILE_CALLBACK_RECORD {
@XmlElement
public String PATIENT_ID;
@XmlElement
public int VISIT_ID;
@XmlElement
public String FILE_UNIQUE_ID ;
@XmlElement
public String APPLY_DATE_TIME ;
@XmlElement
public String APPLY_TIME_LIMIT ;
@XmlElement
public String APPLY_USER_ID ;
@XmlElement
public String APPLY_USER_NAME ;
@XmlElement
public String APPLY_DEPT_CODE ;
@XmlElement
public int STATUS ;
@XmlElement
public String APPROVE_USER_ID ;
@XmlElement
public String APPROVE_USER_NAME ;
@XmlElement
public String APPROVE_DEPT_CODE ;
@XmlElement
public String APPROVE_DATE_TIME ;
@XmlElement
public String APPLY_REASON ;
@XmlElement
public int CLINIC_TYPE ;
@XmlElement
public String EXPIRY_TIME ;
@XmlElement
public String APPROVE_REASON ;
@XmlElement
public String APPROVE_USER_ID_DIRECTOR ;
@XmlElement
public String APPLY_USER_NAME_DIRECTOR ;
@XmlElement
public String APPROVE_DEPT_CODE_DIRECTOR ;
@XmlElement
public String APPROVE_DATE_TIME_DIRECTOR ;
@XmlElement
public String APPLY_REASON_DIRECTOR ;
@XmlElement
public String APPROVE_USER_ID_MEDICAL ;
@XmlElement
public String APPLY_USER_NAME_MEDICAL ;
@XmlElement
public String APPROVE_DEPT_CODE_MEDICAL ;
@XmlElement
public String APPROVE_DATE_TIME_MEDICAL ;
@XmlElement
public String APPLY_REASON_MEDICAL ;
@XmlElement
public String RECEIVE_USERID ;
@XmlTransient
public String getPATIENT_ID() {
return PATIENT_ID;
}
public void setPATIENT_ID(String PATIENT_ID) {
this.PATIENT_ID = PATIENT_ID;
}
@XmlTransient
public int getVISIT_ID() {
return VISIT_ID;
}
public void setVISIT_ID(int VISIT_ID) {
this.VISIT_ID = VISIT_ID;
}
@XmlTransient
public String getFILE_UNIQUE_ID() {
return FILE_UNIQUE_ID;
}
public void setFILE_UNIQUE_ID(String FILE_UNIQUE_ID) {
this.FILE_UNIQUE_ID = FILE_UNIQUE_ID;
}
@XmlTransient
public String getAPPLY_DATE_TIME() {
return APPLY_DATE_TIME;
}
public void setAPPLY_DATE_TIME(String APPLY_DATE_TIME) {
this.APPLY_DATE_TIME = APPLY_DATE_TIME;
}
@XmlTransient
public String getAPPLY_TIME_LIMIT() {
return APPLY_TIME_LIMIT;
}
public void setAPPLY_TIME_LIMIT(String APPLY_TIME_LIMIT) {
this.APPLY_TIME_LIMIT = APPLY_TIME_LIMIT;
}
@XmlTransient
public String getAPPLY_USER_ID() {
return APPLY_USER_ID;
}
public void setAPPLY_USER_ID(String APPLY_USER_ID) {
this.APPLY_USER_ID = APPLY_USER_ID;
}
@XmlTransient
public String getAPPLY_USER_NAME() {
return APPLY_USER_NAME;
}
public void setAPPLY_USER_NAME(String APPLY_USER_NAME) {
this.APPLY_USER_NAME = APPLY_USER_NAME;
}
@XmlTransient
public String getAPPLY_DEPT_CODE() {
return APPLY_DEPT_CODE;
}
public void setAPPLY_DEPT_CODE(String APPLY_DEPT_CODE) {
this.APPLY_DEPT_CODE = APPLY_DEPT_CODE;
}
@XmlTransient
public int getSTATUS() {
return STATUS;
}
public void setSTATUS(int STATUS) {
this.STATUS = STATUS;
}
@XmlTransient
public String getAPPROVE_USER_ID() {
return APPROVE_USER_ID;
}
public void setAPPROVE_USER_ID(String APPROVE_USER_ID) {
this.APPROVE_USER_ID = APPROVE_USER_ID;
}
@XmlTransient
public String getAPPROVE_USER_NAME() {
return APPROVE_USER_NAME;
}
public void setAPPROVE_USER_NAME(String APPROVE_USER_NAME) {
this.APPROVE_USER_NAME = APPROVE_USER_NAME;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE() {
return APPROVE_DEPT_CODE;
}
public void setAPPROVE_DEPT_CODE(String APPROVE_DEPT_CODE) {
this.APPROVE_DEPT_CODE = APPROVE_DEPT_CODE;
}
@XmlTransient
public String getAPPROVE_DATE_TIME() {
return APPROVE_DATE_TIME;
}
public void setAPPROVE_DATE_TIME(String APPROVE_DATE_TIME) {
this.APPROVE_DATE_TIME = APPROVE_DATE_TIME;
}
@XmlTransient
public String getAPPLY_REASON() {
return APPLY_REASON;
}
public void setAPPLY_REASON(String APPLY_REASON) {
this.APPLY_REASON = APPLY_REASON;
}
@XmlTransient
public int getCLINIC_TYPE() {
return CLINIC_TYPE;
}
public void setCLINIC_TYPE(int CLINIC_TYPE) {
this.CLINIC_TYPE = CLINIC_TYPE;
}
@XmlTransient
public String getEXPIRY_TIME() {
return EXPIRY_TIME;
}
public void setEXPIRY_TIME(String EXPIRY_TIME) {
this.EXPIRY_TIME = EXPIRY_TIME;
}
@XmlTransient
public String getAPPROVE_REASON() {
return APPROVE_REASON;
}
public void setAPPROVE_REASON(String APPROVE_REASON) {
this.APPROVE_REASON = APPROVE_REASON;
}
@XmlTransient
public String getAPPROVE_USER_ID_DIRECTOR() {
return APPROVE_USER_ID_DIRECTOR;
}
public void setAPPROVE_USER_ID_DIRECTOR(String APPROVE_USER_ID_DIRECTOR) {
this.APPROVE_USER_ID_DIRECTOR = APPROVE_USER_ID_DIRECTOR;
}
@XmlTransient
public String getAPPLY_USER_NAME_DIRECTOR() {
return APPLY_USER_NAME_DIRECTOR;
}
public void setAPPLY_USER_NAME_DIRECTOR(String APPLY_USER_NAME_DIRECTOR) {
this.APPLY_USER_NAME_DIRECTOR = APPLY_USER_NAME_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE_DIRECTOR() {
return APPROVE_DEPT_CODE_DIRECTOR;
}
public void setAPPROVE_DEPT_CODE_DIRECTOR(String APPROVE_DEPT_CODE_DIRECTOR) {
this.APPROVE_DEPT_CODE_DIRECTOR = APPROVE_DEPT_CODE_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_DATE_TIME_DIRECTOR() {
return APPROVE_DATE_TIME_DIRECTOR;
}
public void setAPPROVE_DATE_TIME_DIRECTOR(String APPROVE_DATE_TIME_DIRECTOR) {
this.APPROVE_DATE_TIME_DIRECTOR = APPROVE_DATE_TIME_DIRECTOR;
}
@XmlTransient
public String getAPPLY_REASON_DIRECTOR() {
return APPLY_REASON_DIRECTOR;
}
public void setAPPLY_REASON_DIRECTOR(String APPLY_REASON_DIRECTOR) {
this.APPLY_REASON_DIRECTOR = APPLY_REASON_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_USER_ID_MEDICAL() {
return APPROVE_USER_ID_MEDICAL;
}
public void setAPPROVE_USER_ID_MEDICAL(String APPROVE_USER_ID_MEDICAL) {
this.APPROVE_USER_ID_MEDICAL = APPROVE_USER_ID_MEDICAL;
}
@XmlTransient
public String getAPPLY_USER_NAME_MEDICAL() {
return APPLY_USER_NAME_MEDICAL;
}
public void setAPPLY_USER_NAME_MEDICAL(String APPLY_USER_NAME_MEDICAL) {
this.APPLY_USER_NAME_MEDICAL = APPLY_USER_NAME_MEDICAL;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE_MEDICAL() {
return APPROVE_DEPT_CODE_MEDICAL;
}
public void setAPPROVE_DEPT_CODE_MEDICAL(String APPROVE_DEPT_CODE_MEDICAL) {
this.APPROVE_DEPT_CODE_MEDICAL = APPROVE_DEPT_CODE_MEDICAL;
}
@XmlTransient
public String getAPPROVE_DATE_TIME_MEDICAL() {
return APPROVE_DATE_TIME_MEDICAL;
}
public void setAPPROVE_DATE_TIME_MEDICAL(String APPROVE_DATE_TIME_MEDICAL) {
this.APPROVE_DATE_TIME_MEDICAL = APPROVE_DATE_TIME_MEDICAL;
}
@XmlTransient
public String getAPPLY_REASON_MEDICAL() {
return APPLY_REASON_MEDICAL;
}
public void setAPPLY_REASON_MEDICAL(String APPLY_REASON_MEDICAL) {
this.APPLY_REASON_MEDICAL = APPLY_REASON_MEDICAL;
}
@XmlTransient
public String getRECEIVE_USERID() {
return RECEIVE_USERID;
}
public void setRECEIVE_USERID(String RECEIVE_USERID) {
this.RECEIVE_USERID = RECEIVE_USERID;
}
}

@ -0,0 +1,427 @@
package com.emr.webservice.MedicalRecordShowBackContent;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@XmlRootElement(name = "MR_FILE_INDEX_CALLBACK")
public class MR_FILE_INDEX_CALLBACK {
@XmlElement
public String PATIENT_ID ;
@XmlElement
public int VISIT_ID ;
@XmlElement
public String APPLY_DATE_TIME ;
@XmlElement
public String APPLY_TIME_LIMIT ;
@XmlElement
public String APPLY_USER_ID ;
@XmlElement
public String APPLY_USER_NAME ;
@XmlElement
public String APPLY_DEPT_CODE ;
@XmlElement
public int STATUS ;
@XmlElement
public String APPROVE_USER_ID ;
@XmlElement
public String APPROVE_USER_NAME ;
@XmlElement
public String APPROVE_DEPT_CODE ;
@XmlElement
public String APPROVE_DATE_TIME ;
@XmlElement
public String APPLY_REASON ;
@XmlElement
public int CLINIC_TYPE ;
@XmlElement
public int OPERATOR_TYPE ;
@XmlElement
public String LIMIT_DATE ;
@XmlElement
public String APPROVE_REASON ;
@XmlElement
public int ISCOPYBACK ;
@XmlElement
public int IS_FIRSTPAGE ;
@XmlElement
public int MRBACK_STATUS ;
@XmlElement
public int IS_APPROVE ;
@XmlElement
public String INP_NO ;
@XmlElement
public int BACK_TYPE ;
@XmlElement
public String FINISH_DATE_TIME ;
@XmlElement
public String APPROVE_USER_ID_DIRECTOR ;
@XmlElement
public String APPLY_USER_NAME_DIRECTOR ;
@XmlElement
public String APPROVE_DEPT_CODE_DIRECTOR ;
@XmlElement
public String APPROVE_DATE_TIME_DIRECTOR ;
@XmlElement
public String APPLY_REASON_DIRECTOR ;
@XmlElement
public String APPROVE_USER_ID_MEDICAL ;
@XmlElement
public String APPLY_USER_NAME_MEDICAL ;
@XmlElement
public String APPROVE_DEPT_CODE_MEDICAL ;
@XmlElement
public String APPROVE_DATE_TIME_MEDICAL ;
@XmlElement
public String APPLY_REASON_MEDICAL ;
@XmlElement
public String APPROVE_HOST_IP ;
@XmlElement
public String APPROVE_HOST_NAME ;
@XmlElement
public String APPROVE_HOST_MAC_ADD ;
@XmlElement
public String HOSPITAL_NO ;
@XmlTransient
public String getHOSPITAL_NO() {
return HOSPITAL_NO;
}
public void setHOSPITAL_NO(String HOSPITAL_NO) {
this.HOSPITAL_NO = HOSPITAL_NO;
}
@XmlTransient
public String getPATIENT_ID() {
return PATIENT_ID;
}
public void setPATIENT_ID(String PATIENT_ID) {
this.PATIENT_ID = PATIENT_ID;
}
@XmlTransient
public int getVISIT_ID() {
return VISIT_ID;
}
public void setVISIT_ID(int VISIT_ID) {
this.VISIT_ID = VISIT_ID;
}
@XmlTransient
public String getAPPLY_DATE_TIME() {
return APPLY_DATE_TIME;
}
public void setAPPLY_DATE_TIME(String APPLY_DATE_TIME) {
this.APPLY_DATE_TIME = APPLY_DATE_TIME;
}
@XmlTransient
public String getAPPLY_TIME_LIMIT() {
return APPLY_TIME_LIMIT;
}
public void setAPPLY_TIME_LIMIT(String APPLY_TIME_LIMIT) {
this.APPLY_TIME_LIMIT = APPLY_TIME_LIMIT;
}
@XmlTransient
public String getAPPLY_USER_ID() {
return APPLY_USER_ID;
}
public void setAPPLY_USER_ID(String APPLY_USER_ID) {
this.APPLY_USER_ID = APPLY_USER_ID;
}
@XmlTransient
public String getAPPLY_USER_NAME() {
return APPLY_USER_NAME;
}
public void setAPPLY_USER_NAME(String APPLY_USER_NAME) {
this.APPLY_USER_NAME = APPLY_USER_NAME;
}
@XmlTransient
public String getAPPLY_DEPT_CODE() {
return APPLY_DEPT_CODE;
}
public void setAPPLY_DEPT_CODE(String APPLY_DEPT_CODE) {
this.APPLY_DEPT_CODE = APPLY_DEPT_CODE;
}
@XmlTransient
public int getSTATUS() {
return STATUS;
}
public void setSTATUS(int STATUS) {
this.STATUS = STATUS;
}
@XmlTransient
public String getAPPROVE_USER_ID() {
return APPROVE_USER_ID;
}
public void setAPPROVE_USER_ID(String APPROVE_USER_ID) {
this.APPROVE_USER_ID = APPROVE_USER_ID;
}
@XmlTransient
public String getAPPROVE_USER_NAME() {
return APPROVE_USER_NAME;
}
public void setAPPROVE_USER_NAME(String APPROVE_USER_NAME) {
this.APPROVE_USER_NAME = APPROVE_USER_NAME;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE() {
return APPROVE_DEPT_CODE;
}
public void setAPPROVE_DEPT_CODE(String APPROVE_DEPT_CODE) {
this.APPROVE_DEPT_CODE = APPROVE_DEPT_CODE;
}
@XmlTransient
public String getAPPROVE_DATE_TIME() {
return APPROVE_DATE_TIME;
}
public void setAPPROVE_DATE_TIME(String APPROVE_DATE_TIME) {
this.APPROVE_DATE_TIME = APPROVE_DATE_TIME;
}
@XmlTransient
public String getAPPLY_REASON() {
return APPLY_REASON;
}
public void setAPPLY_REASON(String APPLY_REASON) {
this.APPLY_REASON = APPLY_REASON;
}
@XmlTransient
public int getCLINIC_TYPE() {
return CLINIC_TYPE;
}
public void setCLINIC_TYPE(int CLINIC_TYPE) {
this.CLINIC_TYPE = CLINIC_TYPE;
}
@XmlTransient
public int getOPERATOR_TYPE() {
return OPERATOR_TYPE;
}
public void setOPERATOR_TYPE(int OPERATOR_TYPE) {
this.OPERATOR_TYPE = OPERATOR_TYPE;
}
@XmlTransient
public String getLIMIT_DATE() {
return LIMIT_DATE;
}
public void setLIMIT_DATE(String LIMIT_DATE) {
this.LIMIT_DATE = LIMIT_DATE;
}
@XmlTransient
public String getAPPROVE_REASON() {
return APPROVE_REASON;
}
public void setAPPROVE_REASON(String APPROVE_REASON) {
this.APPROVE_REASON = APPROVE_REASON;
}
@XmlTransient
public int getISCOPYBACK() {
return ISCOPYBACK;
}
public void setISCOPYBACK(int ISCOPYBACK) {
this.ISCOPYBACK = ISCOPYBACK;
}
@XmlTransient
public int getIS_FIRSTPAGE() {
return IS_FIRSTPAGE;
}
public void setIS_FIRSTPAGE(int IS_FIRSTPAGE) {
this.IS_FIRSTPAGE = IS_FIRSTPAGE;
}
@XmlTransient
public int getMRBACK_STATUS() {
return MRBACK_STATUS;
}
public void setMRBACK_STATUS(int MRBACK_STATUS) {
this.MRBACK_STATUS = MRBACK_STATUS;
}
@XmlTransient
public int getIS_APPROVE() {
return IS_APPROVE;
}
public void setIS_APPROVE(int IS_APPROVE) {
this.IS_APPROVE = IS_APPROVE;
}
@XmlTransient
public String getINP_NO() {
return INP_NO;
}
public void setINP_NO(String INP_NO) {
this.INP_NO = INP_NO;
}
@XmlTransient
public int getBACK_TYPE() {
return BACK_TYPE;
}
public void setBACK_TYPE(int BACK_TYPE) {
this.BACK_TYPE = BACK_TYPE;
}
@XmlTransient
public String getFINISH_DATE_TIME() {
return FINISH_DATE_TIME;
}
public void setFINISH_DATE_TIME(String FINISH_DATE_TIME) {
this.FINISH_DATE_TIME = FINISH_DATE_TIME;
}
@XmlTransient
public String getAPPROVE_USER_ID_DIRECTOR() {
return APPROVE_USER_ID_DIRECTOR;
}
public void setAPPROVE_USER_ID_DIRECTOR(String APPROVE_USER_ID_DIRECTOR) {
this.APPROVE_USER_ID_DIRECTOR = APPROVE_USER_ID_DIRECTOR;
}
@XmlTransient
public String getAPPLY_USER_NAME_DIRECTOR() {
return APPLY_USER_NAME_DIRECTOR;
}
public void setAPPLY_USER_NAME_DIRECTOR(String APPLY_USER_NAME_DIRECTOR) {
this.APPLY_USER_NAME_DIRECTOR = APPLY_USER_NAME_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE_DIRECTOR() {
return APPROVE_DEPT_CODE_DIRECTOR;
}
public void setAPPROVE_DEPT_CODE_DIRECTOR(String APPROVE_DEPT_CODE_DIRECTOR) {
this.APPROVE_DEPT_CODE_DIRECTOR = APPROVE_DEPT_CODE_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_DATE_TIME_DIRECTOR() {
return APPROVE_DATE_TIME_DIRECTOR;
}
public void setAPPROVE_DATE_TIME_DIRECTOR(String APPROVE_DATE_TIME_DIRECTOR) {
this.APPROVE_DATE_TIME_DIRECTOR = APPROVE_DATE_TIME_DIRECTOR;
}
@XmlTransient
public String getAPPLY_REASON_DIRECTOR() {
return APPLY_REASON_DIRECTOR;
}
public void setAPPLY_REASON_DIRECTOR(String APPLY_REASON_DIRECTOR) {
this.APPLY_REASON_DIRECTOR = APPLY_REASON_DIRECTOR;
}
@XmlTransient
public String getAPPROVE_USER_ID_MEDICAL() {
return APPROVE_USER_ID_MEDICAL;
}
public void setAPPROVE_USER_ID_MEDICAL(String APPROVE_USER_ID_MEDICAL) {
this.APPROVE_USER_ID_MEDICAL = APPROVE_USER_ID_MEDICAL;
}
@XmlTransient
public String getAPPLY_USER_NAME_MEDICAL() {
return APPLY_USER_NAME_MEDICAL;
}
public void setAPPLY_USER_NAME_MEDICAL(String APPLY_USER_NAME_MEDICAL) {
this.APPLY_USER_NAME_MEDICAL = APPLY_USER_NAME_MEDICAL;
}
@XmlTransient
public String getAPPROVE_DEPT_CODE_MEDICAL() {
return APPROVE_DEPT_CODE_MEDICAL;
}
public void setAPPROVE_DEPT_CODE_MEDICAL(String APPROVE_DEPT_CODE_MEDICAL) {
this.APPROVE_DEPT_CODE_MEDICAL = APPROVE_DEPT_CODE_MEDICAL;
}
@XmlTransient
public String getAPPROVE_DATE_TIME_MEDICAL() {
return APPROVE_DATE_TIME_MEDICAL;
}
public void setAPPROVE_DATE_TIME_MEDICAL(String APPROVE_DATE_TIME_MEDICAL) {
this.APPROVE_DATE_TIME_MEDICAL = APPROVE_DATE_TIME_MEDICAL;
}
@XmlTransient
public String getAPPLY_REASON_MEDICAL() {
return APPLY_REASON_MEDICAL;
}
public void setAPPLY_REASON_MEDICAL(String APPLY_REASON_MEDICAL) {
this.APPLY_REASON_MEDICAL = APPLY_REASON_MEDICAL;
}
@XmlTransient
public String getAPPROVE_HOST_IP() {
return APPROVE_HOST_IP;
}
public void setAPPROVE_HOST_IP(String APPROVE_HOST_IP) {
this.APPROVE_HOST_IP = APPROVE_HOST_IP;
}
@XmlTransient
public String getAPPROVE_HOST_NAME() {
return APPROVE_HOST_NAME;
}
public void setAPPROVE_HOST_NAME(String APPROVE_HOST_NAME) {
this.APPROVE_HOST_NAME = APPROVE_HOST_NAME;
}
@XmlTransient
public String getAPPROVE_HOST_MAC_ADD() {
return APPROVE_HOST_MAC_ADD;
}
public void setAPPROVE_HOST_MAC_ADD(String APPROVE_HOST_MAC_ADD) {
this.APPROVE_HOST_MAC_ADD = APPROVE_HOST_MAC_ADD;
}
}

@ -20,13 +20,13 @@
/test=anon
/login=anon
/static/**=anon
/font/**=anon
/jspf/**=anon
/img/**=anon
/styles/**=anon
/batch/**=anon
/css/**=anon
/js/**=anon
/noauthc/**=anon
/home=perms[home] <!--perms表示需要该权限才能访问的页面-->
/admin=roles["admin"] <!-- roles["admin,user"] 只有拥有admin角色的用户才可访问同时需要拥有多个角色的话用引号引起来中间用逗号隔开-->
<!--/admin=anon-->

@ -120,6 +120,18 @@
</if>
ORDER BY page_number
</select>
<select id="selectByIdStr1" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
PDF_PATH,archive_detail.AssortID,archive_detail.title
from archive_detail
left join zd_assort
on zd_assort.assort_id = archive_detail.AssortID
where 1=1 and flag=0
<if test="title != null and title!=''">
and id in (${title})
</if>
order by zd_assort.assort_sort,archive_detail.UpLoadDateTime
</select>
<select id="selectByColm" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
@ -195,7 +207,7 @@
#{item}
</foreach>
</if>
ORDER BY z.assort_sort,d.page_number
ORDER BY z.assort_sort,d.Title,d.page_number,d.UpLoadDateTime
</select>
<delete id="deleteByClo" parameterType="com.emr.entity.Archive_Detail">
delete from archive_detail
@ -370,4 +382,24 @@
recover_pdf_path=#{recoverPdfPath,jdbcType=NVARCHAR}
where id = #{id,jdbcType=NVARCHAR}
</update>
<!--以master表的记账号或分类id集合组织分类树-->
<select id="selectTypeTreeByPatientIdAndAssortIds" resultMap="BaseResultMap">
SELECT
archive_detail.id,
zd_assort.assort_name subassort,
archive_detail.AssortID,
archive_detail.Title
FROM
archive_detail
LEFT JOIN zd_assort ON archive_detail.AssortID = zd_assort.assort_id
WHERE
archive_detail.flag != '1' and assort_id != '8'
<if test="patientId != null and patientId != ''">
AND archive_detail.MasterID = #{patientId}
</if>
<if test="assortIds != null and assortIds != ''">
AND archive_detail.AssortID in (${assortIds})
</if>
ORDER BY zd_assort.assort_sort
</select>
</mapper>

@ -99,6 +99,17 @@
from archive_master
where id = #{id,jdbcType=NVARCHAR}
</select>
<!--查询病案是否存在-->
<select id="selectByObject" resultMap="BaseResultMap">
select * from archive_master
where 1=1
<if test="patientId != null and patientId != ''">
and patient_id = #{patientId,jdbcType=NVARCHAR}
</if>
<if test="visitId != null and visitId != ''">
and visit_id = #{visitId,jdbcType=NVARCHAR}
</if>
</select>
<select id="selectByCol" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap">
select distinct m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,f.name
dept_name,CONVERT(varchar(10),m.discharge_date_time, 120) discharge_date_time,m.ArchiveState,CONVERT(varchar(10),m.admission_date_time, 120) admission_date_time,d.name dept_admission_to

@ -21,6 +21,24 @@
</if>
ORDER BY assort_sort
</select>
<!--查询全部-->
<select id="selectAll" resultMap="BaseResultMap">
SELECT
*
FROM
zd_assort
<where>
print_flag = 0
<if test="record.assortName != '' and record.assortName != null">
AND assort_name = #{record.assortName}
</if>
<if test="record.printFlag != '' and record.printFlag != null">
AND print_flag = ${record.printFlag}
</if>
</where>
ORDER BY
assort_sort
</select>
<insert id="insert" parameterType="com.emr.entity.Zd_Assort">
insert into zd_assort (assort_id, assort_name, assort_sort,
print_flag)

@ -0,0 +1,45 @@
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="path" value="${pageContext.request.contextPath}"/>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<link rel="stylesheet" href="${path}/static/js/confirm/jquery-confirm.min.css">
<script src="${path}/static/js/confirm/jquery-confirm.min.js"></script>
<input type="hidden" id="common_confirm_btn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#common_confirm_model">
<div id="common_confirm_model" class="modal" style="z-index: 99999">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h5 class="modal-title"><i class="fa fa-exclamation-circle"></i> <span class="title"></span></h5>
</div>
<div class="modal-body small">
<p ><span class="message"></span></p>
</div>
<div class="modal-footer" >
<button type="button" class="btn btn-primary ok" data-dismiss="modal">确认</button>
<button type="button" class="btn btn-default cancel" data-dismiss="modal">取消</button>
</div>
</div>
</div>
</div>
<script>
var Common = {
confirm:function(params){
var model = $("#common_confirm_model");
model.find(".title").html(params.title)
model.find(".message").html(params.message)
$("#common_confirm_btn").click()
//每次都将监听先关闭,防止多次监听发生,确保只有一次监听
model.find(".cancel").off("click")
model.find(".ok").off("click")
model.find(".ok").on("click",function(){
params.operate(true)
})
model.find(".cancel").on("click",function(){
params.operate(false)
})
}
}
</script>

@ -177,6 +177,7 @@
margin-top: 35%;
width: 120%;
}
#verifyModal .modal-content {
margin-left: 50%;
@ -302,7 +303,7 @@
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<%--<div class="form-group divCss8">--%>
<%--<label for="id">病案号:</label>--%>
@ -761,8 +762,8 @@
aria-hidden="true">×</span></button>
</div>
<div class="modal-content ">
<div class="modal-body" style="height: 60%;">
<div class="shadeImg" onclick="javascript:closeShadeImg()" style="height: 80%;">
<div class="modal-body" style="height: 90%;">
<div class="shadeImg" onclick="javascript:closeShadeImg()" style="height: 90%;">
<div class="">
<img class="showImg" src=""/>
</div>
@ -844,29 +845,32 @@
</div>
<%--缺陷窗口--%>
<div class="modal fade" id="QXInfoModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content ">
<div class="modal-header2">
<div class="modal fade" id="QXInfoModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" >
<div class="modal-dialog" role="document">
<div class="modal-header2" style="width:165%;">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">缺陷列表</h4>
</div>
<div class="modal-body" style="height:500px;overflow:auto">
<input id="archIdQX" type="text" hidden/>
</div>
<div class="modal-content" style="height:80%;">
<div class="modal-body style="height:100%;width:100%;overflow:auto">
<!--数据表格-->
<table id="tableQX" class="table text-nowrap table-striped" style="table-layout:fixed"></table>
<table id="tableQX" class="table text-nowrap table-striped" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"></table>
</div>
<div class="modal-footer">
<!-- <div class="modal-footer">
<button type="button" class="btn btn-default btn-sm" data-dismiss="modal">返回</button>
</div>
</div>-->
</div>
</div>
</div>
<%--缺陷详情弹窗--%>
<!--缺陷详情弹窗-->
<div class="modal fade" id="qxModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content ">
<div class="modal-content">
<div class="modal-header2">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
@ -1061,9 +1065,10 @@
<textarea id="doctorText" rows="5" style="width:95%;" ></textarea>
</div>
<div class="row divCss2">
归档病历是否已全部无纸化无扫描件
<input type="checkbox" name="isScanedChk" class="isScanedChk1" onclick="checkedThis(this,this);">是
<input type="checkbox" name="isScanedChk" class="isScanedChk2" onclick="checkedThis(this,this);">否
<%--归档病历是否已全部无纸化无扫描件--%>
是否有纸质病历送病案室
<input type="checkbox" name="isScanedChk" class="isScanedChk1" onclick="checkedThis(this,this);">有
<input type="checkbox" name="isScanedChk" class="isScanedChk2" onclick="checkedThis(this,this);">无
<label style="color: red">(必填)</label>
</div>
</div>
@ -1317,6 +1322,21 @@
var objUrl;
var img_html;
var MasterID;
var oMoveBox = $("#arrow"), infoDiv = $("#infoDiv"), maxL = 0;
oMoveBox.click(function () {
if (maxL > 0) {
maxL = 0;
$("#pdfDiv").css("width", '80%');
$("#arrow").html(">");
$("#infoDiv").show();
} else {
maxL = 1;
$("#pdfDiv").css("width", '97%');
$("#arrow").html("<");
$("#infoDiv").hide();
}
});
$("#myFile").change(function () {
var img_div = $(".img_div");
@ -1874,7 +1894,8 @@
if (result != "") {
//绝对路径
var pdfPath = result;
newWindow.location.href = "${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
//console.log(result);
newWindow.location.href = "${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
<%--var pdfUrl = "${path}/static/pdfjs/web/viewer.html?file=../../../static/img/pdfFiles/typesPdf/" + result;//+ result;--%>
<%--newWindow.location.href = pdfUrl;--%>
@ -2831,7 +2852,7 @@
delId="delId_"+result[i].id;
delPageV="delPageV_"+result[i].id;
//console.log("========="+result[i].id+"======delId:"+delId+"===="+result[i].pictureNumber);
maxPicture=result[i].maxPicture.replaceAll("/","\\");
maxPicture=result[i].maxPicture.replace( /(\/)+/g,'\\' );//.replaceAll("/","\\");
//console.log(result[i].maxPicture);
img_html="${path}\\"+maxPicture;
img_html="<div class='row showDelDiv'><img class='showImg2' src='"+img_html+"' onclick='javascript:lookBigImg(this)'/>";
@ -2981,55 +3002,66 @@
});
}
function initTableQX(archiveDetailId) {
$('#tableQX').bootstrapTable({
function initTableQX() {
$('#tableQX').bootstrapTable({
url: "${path}/fault/getFaultList", // 获取表格数据的url
queryParams: function (params) {
//console.log($("#archIdQX").val());
var temp = {
///limit: limit, //页面大小
// offset: offset, //页码
//order: params.order, //排位命令descasc
//id: $("#id").val(),
archiveDetailId: archiveDetailId,
archiveDetailId: $("#archIdQX").val(),
backFlag:1
};
return temp;
},
singleSelect: true,//设置True 将禁止多选
clickToSelect: true,//设置true 将在点击行时自动选择rediobox 和 checkbox
// toolbar: '#toolbar',//指定工具栏
// toolbarAlign: 'right',// 指定 toolbar 水平方向的位置。'left' 或 'right'
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //是否显示行间隔色
showColumns: true,
//height:'300',
width:'100%',
height: $(window).height() / 2,//自定义高度
columns: [{
//width:'100%',
//height: $(window).height() / 2,//自定义高度
columns: [
/*{
title: '全选',
field: 'select', //复选框
checkbox: true,
width: 30,
align: 'center',
valign: 'middle'
}, {
field: 'archive_detail_id',
}, */
{
field: 'id2',
title: '序号',
formatter: function (value, row, index) {
return index+1;
}
},
{
field: 'id',
title: 'id',
visible: false
}, {
},
{
field: 'archiveDetailId',
title: '病案号',
visible: false
},
{
field: 'assortId',
title: '缺陷类型',
width: 150,
visible: false,
formatter: function (value, row, index) {
return value
}
//width: 150,
visible: false
}, {
field: 'assortName',
title: '缺陷类型',
width: 150
// width: '30%'
}, {
field: 'price',
title: '类型分',
width: 80,
//width: 80,
visible: false,
formatter: function (value, row, index) {
var result = '';
@ -3044,7 +3076,7 @@
title: '退回',
field: 'backFlag',
align: 'center',
width: 100,
//width: 100,
formatter: function (value, row, index) {
var result = "";
if (value == 1) {
@ -3063,7 +3095,7 @@
field: 'dealFlag',
title: '处理否',
align: 'center',
width: 80,
//width: 80,
formatter: function (value, row, index) {
var result = "";
if (value =="1") {
@ -3076,21 +3108,21 @@
},{
field: 'dealPerson',
title: '处理人',
width: 80
//width: 80
},{
field: 'dealTime',
title: '处理时间',
width: 80
//width: 80
},{
field: 'content',
title: '内容',
width: 200
//width: 200
}],onUncheck: function (rowsAfter, rowsBefore) {
editId=null;
//console.log("====取消选中");
},
},
//如果想双击获取row把onlClickRow改为onDbClickRow如下
onDblClickRow: function (row) {
// if (template.defaults.imports.hasPermission('/payment_manager/payment_detail')) {
@ -3106,6 +3138,7 @@
}
});
}
initTableQX();
function initTable() {
if (tipLoad == 1) {
$("#table").bootstrapTable({ // 对应table标签的id
@ -3405,9 +3438,9 @@
//缺陷
if (value==1) {
//有缺陷显示红色
a = '<span style="color:red;">已提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已提交</span>';
}else{
a = '<span style="color:red;">未提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未提交</span>';
}
}
return a;
@ -3471,9 +3504,9 @@
//有缺陷显示红色
if (value==1) {
//有缺陷显示红色
a = '<span style="color:red;">已提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已提交</span>';
}else{
a = '<span style="color:red;">未提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未提交</span>';
}
}
return a;
@ -3537,9 +3570,9 @@
}else{
if (value==1) {
//有缺陷显示红色
a = '<span style="color:red;">已提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已提交</span>';
}else{
a = '<span style="color:red;">未提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未提交</span>';
}
}
return a;
@ -3562,9 +3595,9 @@
//有缺陷显示红色
if (value==1) {
//有缺陷显示红色
a = '<span style="color:red;">已提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已提交</span>';
}else{
a = '<span style="color:red;">未提交</span>';
a = '<span style="color:red;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未提交</span>';
}
}
return a;
@ -3902,7 +3935,9 @@
},
'click .getQXInfo': function (e, value, row, index) {
//查看缺陷列表
initTableQX(row.id);
//initTableQX(row.id);
$("#archIdQX").val(row.id);
$('#tableQX').bootstrapTable('refresh');
$('#QXInfoModal').modal({
backdrop: 'static',//backdrop 为 static 时,点击模态对话框的外部区域不会将其关闭。
keyboard: true,//keyboard 为 false 时,按下 Esc 键不会关闭 Modal。
@ -4201,9 +4236,11 @@
$("#mb").css("display","block");
var target = document.getElementById('delPdfBody');
spinner.spin(target);//给id为foo的div 中绑上spinner
var pdfPath=row.pdfPath.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
var pdfPath=row.pdfPath;//.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
//console.log( pdfPath );
if(pdfPath!=""){
pdfPath = pdfPath.replace( /(\\)+/g,'/' );
pdfPath="${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
$('#pdf_page').attr('src', pdfPath);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
@ -4904,6 +4941,14 @@
});
})
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>
</html>

@ -264,7 +264,7 @@
<div id="mb"></div>
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<%--<div class="form-group divCss8" hidden="hidden">--%>
<%--<label for="id">病案号:</label>--%>
@ -799,7 +799,7 @@
aria-hidden="true">×</span></button>
</div>
<div class="modal-content ">
<div class="modal-body" style="height: 80%;">
<div class="modal-body" style="height: 90%;">
<div class="shadeImg" onclick="javascript:closeShadeImg()">
<div class="">
<img class="showImg" src=""/>
@ -1170,6 +1170,21 @@
var img_html;
//复审退回4主任退回3
var backFlagVal;
var oMoveBox = $("#arrow"), infoDiv = $("#infoDiv"), maxL = 0;
oMoveBox.click(function () {
if (maxL > 0) {
maxL = 0;
$("#pdfDiv").css("width", '80%');
$("#arrow").html(">");
$("#infoDiv").show();
} else {
maxL = 1;
$("#pdfDiv").css("width", '97%');
$("#arrow").html("<");
$("#infoDiv").hide();
}
});
$("#myFile").change(function () {
var img_div = $(".img_div");
@ -2270,7 +2285,7 @@
delId="delId_"+result[i].id;
delPageV="delPageV_"+result[i].id;
//console.log("========="+result[i].id+"======delId:"+delId+"===="+result[i].pictureNumber);
maxPicture=result[i].maxPicture.replaceAll("/","\\");
maxPicture=result[i].maxPicture.replace( /(\/)+/g,'\\' );//.replaceAll("/","\\");
//console.log(result[i].maxPicture);
img_html="${path}\\"+maxPicture;
img_html="<div class='row showDelDiv'><img class='showImg2' src='"+img_html+"' onclick='javascript:lookBigImg(this)'/>";
@ -3274,9 +3289,10 @@
$("#mb").css("display","block");
var target = document.getElementById('delPdfBody');
spinner.spin(target);//给id为foo的div 中绑上spinner
var pdfPath=row.pdfPath.replaceAll("\\","/");
var pdfPath=row.pdfPath;//.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
if(pdfPath!=""){
pdfPath = pdfPath.replace( /(\\)+/g,'/' );
pdfPath="${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
$('#pdf_page').attr('src', pdfPath);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
@ -4471,6 +4487,14 @@
});
})
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>
</html>

@ -0,0 +1,75 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<c:set var="path" value="${pageContext.request.contextPath}"/>
<%@ include file="/WEB-INF/jspf/comm.jspf" %>
<%@ include file="/WEB-INF/jspf/ztreeCommom.jsp" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>提示页面</title>
<meta http-equiv=X-UA-Compatible IE=EmulateIE7>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="shortcut icon" href="${path}/static/favicon.ico">
<link rel="stylesheet" href="${path }/static/css/layui.css" media="all" />
<!--[if lt IE 9]>
<![endif]-->
<script>
var path = "${path}";
</script>
<style type="text/css">
body{
width:100%;
margin:0;
padding:0;
}
.main{
width:100%;
}
/*
*页头div
*/
.headDiv{
height:43px;
background-color: #1D9ED7;
}
/*
*页头标题div
*/
.headSpanDiv{
padding:10px 15px;
}
/*
*页头标题
*/
.headspan{
color: #fff;
font-size: 1.2em;
font-weight: bold;
}
h4{
color: #fff;
font-size: 1.0em;
font-weight: bold;
}
hr{
margin:0!important;
}
</style>
</head>
<body>
<div class="main">
<div class="headDiv">
<div class="headSpanDiv">
<span class="headspan">
错误提示
</span>
</div>
</div>
<div >
<blockquote class="layui-elem-quote">${errorMsg}</blockquote>
</div>
</div>
</body>
</html>

@ -0,0 +1,172 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<c:set var="path" value="${pageContext.request.contextPath}"/>
<%@ include file="/WEB-INF/jspf/comm.jspf" %>
<%@ include file="/WEB-INF/jspf/ztreeCommom.jsp" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>病案浏览</title>
<meta http-equiv=X-UA-Compatible IE=EmulateIE7>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="shortcut icon" href="${path}/static/favicon.ico">
<!--[if lt IE 9]>
<script type="text/javascript" src="${path}/static/js/html5shiv.min.js"></script>
<script type="text/javascript" src="${path}/static/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="${path}/static/js/respond.min.js"></script>
<![endif]-->
<script>
var path = "${path}";
</script>
<style type="text/css">
body{
width:100%;
height:100%;
margin:0;
padding:0;
background-color: #F2F2F2;
}
.main{
width:100%;
background-color: #c1d7e3;
}
/*
*页头div
*/
.headDiv{
height:43px;
background-color: #1D9ED7;
}
/*
*页头标题div
*/
.headSpanDiv{
padding:10px 15px;
}
/*
*页头标题
*/
.headspan{
color: #fff;
font-size: 1.2em;
font-weight: bold;
}
.searchDiv{
width:100%;
height:13%;
background-color: #FFF;
}
.contentDiv{
width:100%;
height: calc(100vh - 13% - 43px - 1vh);
margin-top:1vh;
background-color: #FFF;
}
.labelDiv{
padding-top: 2%;
padding-right: 0;
text-align: right;
}
.rowDiv{
padding-top:0.5%;
}
.inputDiv{
padding:0!important;
margin-left: -3%!important;
}
h4{
color: #fff;
font-size: 1.0em;
font-weight: bold;
}
hr{
margin:0!important;
}
#iframe{
height: 100%;
}
</style>
</head>
<body style="scroll:auto" onkeydown="disabledPrint()">
<!--主键-->
<input type="hidden" id="patientId" value="${patientId}">
<!--记账号-->
<input type="hidden" id="accountNumber" value="${accountNumber}">
<input type="hidden" id="assortIds" value="${assortIds}">
<input type="hidden" id="visitId" value="${visitId}">
<!--业务识别码1:护理按需采集预览-->
<input type="hidden" id="typeFlag" value="1">
<div class="main">
<div class="headDiv">
<div class="headSpanDiv">
<span class="headspan">
病案浏览
</span>
</div>
</div>
<!--病案详情-->
<div class="searchDiv">
<input type="hidden" id="admissId" value="${commom.admissId}">
<div class="row rowDiv">
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">主管医生:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input input-sm input" id="doctorInCharge">
</div>
</div>
</div>
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">姓名:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input-sm input" id="name">
</div>
</div>
</div>
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">住院号:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input-sm input" id="inpatientNo">
</div>
</div>
</div>
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">住院次数:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input-sm input" id="admissTimes">
</div>
</div>
</div>
</div>
<div class="row rowDiv">
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">出院科室:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input-sm input" id="disDeptName">
</div>
</div>
</div>
<div class="col-sm-3 inputDiv">
<div class="form-group">
<label class="col-sm-5 control-label labelDiv">出院日期:</label>
<div class="col-sm-7">
<input type="text" readonly class="form-control input-sm input" id="disDate">
</div>
</div>
</div>
</div>
</div>
<div class="contentDiv">
<iframe width="100%" src="" id="iframe" frameborder="0" scrolling="no"></iframe>
</div>
</div>
<script type="text/javascript" src="${path}/static/js/showRecord/showRecord.js"></script>
<script type="text/javascript" src="${path}/static/js/showRecord/showRecordIframeCommom.js"></script>
</body>
</html>

@ -0,0 +1,94 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<c:set var="path" value="${pageContext.request.contextPath}"/>
<%@ include file="/WEB-INF/jspf/comm.jspf" %>
<%@ include file="/WEB-INF/jspf/ztreeCommom.jsp" %>
<%@ include file="/WEB-INF/jspf/confirmJsp.jspf" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>预览pdfIframe页面</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv=X-UA-Compatible IE=EmulateIE7>
<!--[if lt IE 9]>
<script type="text/javascript" src="${path}/static/js/html5shiv.min.js"></script>
<script type="text/javascript" src="${path}/static/js/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="${path}/static/js/respond.min.js"></script>
<![endif]-->
<script>
var path = "${path}";
</script>
<style type="text/css">
body{
width:100%;
margin:0;
padding:0;
background-color: #F2F2F2;
}
.content-left{
height:100%;
width:16%;
float:left;
background-color: #FFFFFF;
}
.content-right{
height:100%;
width:83%;
float:right;
background-color: #FFFFFF;
}
.loading {
width: 148px;
height: 56px;
position: absolute;
top: 28px;
right: 16px;
line-height: 56px;
color: red;
padding-left: 60px;
font-size: 7px;
background: #000;
opacity: 0.7;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
display: none;
}
</style>
</head>
<body style="scroll:auto" onkeydown="disabledPrint()">
<div id="loading" class="loading">正在采集,请稍等</div>
<!--文件路径-->
<input type="hidden" id="filePath">
<input type="hidden" id="detailIds">
<div class="content-left">
<div class="row" style="margin-top: 5px">
<div class="col-md-4">
</div>
<div class="col-md-4" style="padding:0 2px">
<button type="button" class="btn btn-xs btn-primary" onclick="onloadPdf()">加载PDF</button>
</div>
<div class="col-md-4" style="padding:0 2px;" >
<button type="button" class="btn btn-xs btn-primary" style="display: none" onclick="flashPdf()" id="freshBtnDiv">刷新</button>
<button type="button" class="btn btn-xs btn-danger" style="display: none" id="delBtnDiv">删除</button>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="zTreeDemo">
<ul id="ztree" class="ztree"></ul>
</div>
</div>
</div>
</div>
<div class="content-right">
<iframe width="100%" src="" id="iframe1" frameborder="0" scrolling="yes"></iframe>
</div>
<script type="text/javascript" src="${path}/static/js/showRecord/showRecordIframe.js?time=2021-02-07"></script>
<script type="text/javascript" src="${path}/static/js/showRecord/showRecordIframeCommom.js"></script>
</body>
</html>

@ -244,7 +244,7 @@
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<%--<div class="form-group divCss8">--%>
<%--<label for="id">病案号:</label>--%>
@ -613,7 +613,7 @@
aria-hidden="true">×</span></button>
</div>
<div class="modal-content " >
<div class="modal-body" style="height:100%;">
<div class="modal-body" style="height:90%;">
<div class="shadeImg" onclick="javascript:closeShadeImg()">
<div class="">
<img class="showImg" src=""/>
@ -810,7 +810,6 @@
<script type="text/javascript">
var transfertDeptStr="";
//识别是否加载
var tipLoad = 1;
//创建数组保存图片
@ -818,7 +817,7 @@
var id = 0;
$(function () {
var objUrl;
var img_html;
var img_html;
var oMoveBox = $("#arrow"), infoDiv = $("#infoDiv"), maxL =0;
oMoveBox.click(function () {
@ -1807,7 +1806,7 @@
delId="delId_"+result[i].id;
delPageV="delPageV_"+result[i].id;
//console.log("========="+result[i].id+"======delId:"+delId+"===="+result[i].pictureNumber);
maxPicture=result[i].maxPicture.replaceAll("/","\\");
maxPicture=result[i].maxPicture.replace( /(\/)+/g,'\\' );//.replaceAll("/","\\");
//console.log(result[i].maxPicture);
img_html="${path}\\"+maxPicture;
img_html="<div class='row showDelDiv'><img class='showImg2' src='"+img_html+"' onclick='javascript:lookBigImg(this)'/>";
@ -2486,9 +2485,10 @@
$("#mb").css("display","block");
var target = document.getElementById('delPdfBody');
spinner.spin(target);//给id为foo的div 中绑上spinner
var pdfPath=row.pdfPath.replaceAll("\\","/");
var pdfPath=row.pdfPath;//.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
if(pdfPath!=""){
pdfPath = pdfPath.replace( /(\\)+/g,'/' );
pdfPath="${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
$('#pdf_page').attr('src', pdfPath);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
@ -3218,6 +3218,14 @@
}
});
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>

@ -264,7 +264,7 @@
<div id="mb"></div>
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<%--<div class="form-group divCss8" hidden="hidden">--%>
<%--<label for="id">病案号:</label>--%>
@ -705,7 +705,7 @@
aria-hidden="true">×</span></button>
</div>
<div class="modal-content ">
<div class="modal-body" style="height: 80%;">
<div class="modal-body" style="height: 90%;">
<div class="shadeImg" onclick="javascript:closeShadeImg()">
<div class="">
<img class="showImg" src=""/>
@ -1027,6 +1027,21 @@
var objUrl;
var img_html;
var oMoveBox = $("#arrow"), infoDiv = $("#infoDiv"), maxL = 0;
oMoveBox.click(function () {
if (maxL > 0) {
maxL = 0;
$("#pdfDiv").css("width", '80%');
$("#arrow").html(">");
$("#infoDiv").show();
} else {
maxL = 1;
$("#pdfDiv").css("width", '97%');
$("#arrow").html("<");
$("#infoDiv").hide();
}
});
$("#myFile").change(function () {
var img_div = $(".img_div");
@ -2084,7 +2099,7 @@
delId="delId_"+result[i].id;
delPageV="delPageV_"+result[i].id;
//console.log("========="+result[i].id+"======delId:"+delId+"===="+result[i].pictureNumber);
maxPicture=result[i].maxPicture.replaceAll("/","\\");
maxPicture=result[i].maxPicture.replace( /(\/)+/g,'\\' );//.replaceAll("/","\\");
//console.log(result[i].maxPicture);
img_html="${path}\\"+maxPicture;
img_html="<div class='row showDelDiv'><img class='showImg2' src='"+img_html+"' onclick='javascript:lookBigImg(this)'/>";
@ -2474,7 +2489,8 @@
}
},
{
title: '科室是否提交纸质病历',
// title: '科室是否提交纸质病历',
title: '是否有纸质病历送病案室',
field: 'isscaned',
align: 'center',
valign: 'middle',
@ -2482,9 +2498,9 @@
//在院 未归档 归档中 初审 已归档 已认证
var a = '';
if (value == "1") {
a = '<span style="color:#c0c0c0;"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>已提交</span>';
a = '<span style="color:#c0c0c0;"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>有</span>';
} else if (value == "0") {
a = '<span style="color:#030378"><i class="glyphicon glyphicon-ban-circle" aria-hidden="true"></i>未提交</span>';
a = '<span style="color:#030378"><i class="glyphicon glyphicon-ok-circle" aria-hidden="true"></i>无</span>';
}else{
a = '<span style="color:red"><i class="glyphicon glyphicon-question-sign" aria-hidden="true"></i>未知</span>';
}
@ -2879,12 +2895,12 @@
}
if (row.source != null && row.source != "") {
if (row.source.indexOf("后台") != -1) {
//if (row.source.indexOf("后台") != -1) {
if (index != null && index != "" && index.indexOf("delPage") != -1) {
//return '<button class="btn btn-danger btn-sm" onclick="selectFun(\'' + row + '\')">查看 </button>';
html = html + '<button type="button" class="btn btn-primary btn-sm delPdfPage" >删除页 </button>';// '<a href="javascript:;" class="delete">删除</a>';
}
}
//}
}
@ -2973,9 +2989,10 @@
$("#mb").css("display","block");
var target = document.getElementById('delPdfBody');
spinner.spin(target);//给id为foo的div 中绑上spinner
var pdfPath=row.pdfPath.replaceAll("\\","/");
var pdfPath=row.pdfPath;//.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
if(pdfPath!=""){
pdfPath = pdfPath.replace( /(\\)+/g,'/' );
pdfPath="${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
$('#pdf_page').attr('src', pdfPath);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
@ -3697,6 +3714,14 @@
});
});
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>
</html>

@ -220,7 +220,7 @@
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<div hidden="hidden">
<label for="id">病案号:</label>
@ -3531,6 +3531,14 @@
});
})
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>

@ -214,7 +214,7 @@
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<div hidden="hidden">
<label for="id">病案号:</label>
@ -3178,7 +3178,13 @@
}
});
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>
</html>

@ -290,7 +290,7 @@
<div id="mb"></div>
<div style="margin-left:30px;margin-right:10px;height:auto">
<!--搜索-->
<form style="margin-top:20px;">
<form style="margin-top:20px;" onkeydown="enter()">
<div class="form-inline">
<div hidden="hidden">
<label for="id">病案号:</label>
@ -875,15 +875,16 @@
</div>
</div>
</div>
<%--发大弹窗--%>
<div class="modal fade" id="maxImg" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-header2" style="width: 165%">
<div class="modal-header2" style="width: 165%;margin-left: 20%;">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">×</span></button>
</div>
<div class="modal-content ">
<div class="modal-body" style="height:80%;">
<div class="modal-content " style="height:800px;margin-left: 20%;">
<div class="modal-body" >
<div class="shadeImg" onclick="javascript:closeShadeImg()">
<div class="">
<img class="showImg" src=""/>
@ -1171,6 +1172,21 @@
$(function () {
var objUrl;
var img_html;
var oMoveBox = $("#arrow"), infoDiv = $("#infoDiv"), maxL = 0;
oMoveBox.click(function () {
if (maxL > 0) {
maxL = 0;
$("#pdfDiv").css("width", '80%');
$("#arrow").html(">");
$("#infoDiv").show();
} else {
maxL = 1;
$("#pdfDiv").css("width", '97%');
$("#arrow").html("<");
$("#infoDiv").hide();
}
});
$("#myFile").change(function () {
var img_div = $(".img_div");
@ -2048,7 +2064,7 @@
delId="delId_"+result[i].id;
delPageV="delPageV_"+result[i].id;
//console.log("========="+result[i].id+"======delId:"+delId+"===="+result[i].pictureNumber);
maxPicture=result[i].maxPicture.replaceAll("/","\\");
maxPicture=result[i].maxPicture.replace( /(\/)+/g,'\\' );;//.replaceAll("/","\\");
//console.log(result[i].maxPicture);
img_html="${path}\\"+maxPicture;
img_html="<div class='row showDelDiv'><img class='showImg2' src='"+img_html+"' onclick='javascript:lookBigImg(this)'/>";
@ -2833,9 +2849,10 @@
$("#mb").css("display","block");
var target = document.getElementById('delPdfBody');
spinner.spin(target);//给id为foo的div 中绑上spinner
var pdfPath=row.pdfPath.replaceAll("\\","/");
var pdfPath=row.pdfPath;//.replaceAll("\\","/");
//C:/Users/Administrator/Desktop/test/autoPdf/1617156631367.pdf
if(pdfPath!=""){
pdfPath = pdfPath.replace( /(\\)+/g,'/' );
pdfPath="${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
$('#pdf_page').attr('src', pdfPath);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
@ -3918,6 +3935,14 @@
});
})
function enter()
{
if (event.keyCode == 13)
{
document.getElementById('searchBtn').click();
}
}
</script>
</html>

@ -0,0 +1,29 @@
//初始化函数
$(function(){
//加载病案信息
loadRecord();
//加载iframe
$("#iframe").prop("src",path+"/font/showRecordIframe?patientId="+$("#patientId").val())+"&assortIds="+assortIds;
})
//加载病案信息
function loadRecord(){
$.ajax({
type:'get',
url:path+'/font/getRecord',
data:{masterId:$("#patientId").val()},
async:false,
dataType:'json',
success:function (data) {
if(null != data && data != ''){
$("#doctorInCharge").val(data.doctorInCharge);
$("#inpatientNo").val(data.inpNo);
$("#name").val(data.name);
$("#admissTimes").val(data.visitId);
$("#disDate").val(data.dischargeDateTime);
$("#disDeptName").val(data.deptName);
$("#archivestate").val(data.archivestate);
}
}
})
}

@ -0,0 +1,136 @@
//树操作
var menu = {
setting: {
view:{
fontCss : {"font-family": "微软雅黑","color":"blue"}
},
data:{
key:{
name:"name"
},
simpleData: {
chkStyle: "checkbox",
enable: true,
idKey: "id",
pIdKey: "parentId"
}
},
check:{
enable:true
},
callback: { //回调函数
onCheck: onCheck,
onClick:onClick}
},
loadMenuTree:function(){
var url = '';
var params = '';
//获取业务识别编码
url = path+"/font/getRecordTypeTree";
params = {patientId:parent.$("#patientId").val(),assortIds:parent.$("#assortIds").val()};
$.ajax({
type: "post",
url: url,
data: params,
dataType:"json",
async:false,
success:function(data){
$.fn.zTree.init($("#ztree"), menu.setting, data);
zTree = $.fn.zTree.getZTreeObj("ztree");
var nodes = zTree.getNodes();
zTree.expandNode(nodes[0], true, false, true);
var detailIds = '';
for (var i = 0; i < data.length; i++) {
if(data[i].selfId != null && data[i].checked == 'true'){
if(i != data.length - 1){
detailIds += "'"+data[i].selfId+"',";
}else{
detailIds += "'"+data[i].selfId+"'";
}
}
}
if(detailIds.substring(detailIds.length-1,detailIds.length) == ","){
detailIds = detailIds.substring(0,detailIds.length-1);
}
if(detailIds == ''){
toastr.warning('该患者该时间段未上传报告!');
}
$("#detailIds").val(detailIds);
}
})
//加载pdf
onloadPdf();
}
};
//加载树
$().ready(function(data){
menu.loadMenuTree();
// //判断是否是护理按需采集,是显示刷新按钮
// var typeFlag = parent.$("#typeFlag").val();
// if(typeFlag == 1){
// $("#freshBtnDiv").show();
// }else if(typeFlag == 2){
// var delPower = parent.$("#delPower").val();
// if(delPower == 1){
// $("#delBtnDiv").show();
// }
// }
});
//获取获取树选中节点赋值隐藏域并加载pdf
function onPdfLoadByselected() {
var treeObj = $.fn.zTree.getZTreeObj("ztree");
nodes = treeObj.getCheckedNodes(true);
var detailIds = '';
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].level == 2) {
if (i != (nodes.length - 1)) {
detailIds += "'" + nodes[i].selfId + "',";
} else {
detailIds += "'" + nodes[i].selfId + "'";
}
}
}
$("#detailIds").val(detailIds);
//加载pdf
onloadPdf();
}
//树选中事件
function onCheck(e, treeId, treeNode) {
onPdfLoadByselected();
};
//树点击事件
function onClick(e, treeId, treeNode) {
//点击后选中
zTree.checkNode(treeNode,!treeNode.checked, true);
onPdfLoadByselected();
};
//加载pdfan按钮功能
function onloadPdf(){
var url = '';
var params = '';
//获取业务识别编码
var detailIds = $("#detailIds").val();
if(detailIds != '') {
url = path + "/font/getPdfToPdf";
params = {detailIds: detailIds};
$.ajax({
type: 'post',
url: url,
data: params,
success: function (data) {
if (data.code == 100) {
var pdfUrl = path + "/static/pdfjs/web/viewer.html?file=" + path + "/font/showPdf";
$("#iframe1").attr("src", pdfUrl);
$("#iframe1").css("height", $("body")[0].offsetHeight)
} else {
toastr.error(data.msg);
}
}
});
}
/*$("#iframe1").attr("src",path+"/static/pdfjs/web/viewer.html?file="+path+"/font/getPdfToPdf/"+patientId+"/"+detailIds);*/
}

@ -0,0 +1,18 @@
//屏蔽鼠标右键
document.oncontextmenu = function(e) {
var e = e || window.event;
e.returnValue = false;
return false;
}
//禁止快捷键打印
function disabledPrint(){
if(event.keyCode==80 && event.ctrlKey){
event.keyCode=0;
event.returnValue=false;
}
if (event.ctrlKey && event.keyCode == 83) {
event.preventDefault();
event.returnValue = false;
return false;
}
}
Loading…
Cancel
Save