ca签章后修改访问图像路径

master
linjj 2 years ago
parent cbe34c436d
commit e45855b819

@ -115,6 +115,11 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>

@ -7,6 +7,8 @@
package com.emr.controller;
import com.emr.annotation.OptionalLog;
import com.emr.dao.ArchiveDetailCaCopyMapper;
import com.emr.dao.CaSignatureMapper;
import com.emr.entity.*;
import com.emr.service.*;
import com.emr.util.*;
@ -60,8 +62,14 @@ public class inHospitalController {
@Autowired
private Archive_Detail_PictureService archiveDetailPictureService;
@Autowired
private ArchiveDetailCaCopyServer archiveDetailCaCopyServer;
@Resource
@Autowired
private CaSignatureMapper caSignatureMapper;
@Autowired
private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper;
private LogService logService;
@Value("${pictureUrl}")
@ -96,14 +104,14 @@ public class inHospitalController {
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception {
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
String[] header = {"病历清单id","住院号","住院次数","名字","性别","身份证","入院科室","入院日期","主管医生","状态"};
String[] fileNames = {"id","inpNo","visitId","name","sex","idNo","deptAdmissionTo","admissionDateTime","doctorInCharge","archivestate"};
String[] header = {"病历清单id", "住院号", "住院次数", "名字", "性别", "身份证", "入院科室", "入院日期", "主管医生", "状态"};
String[] fileNames = {"id", "inpNo", "visitId", "name", "sex", "idNo", "deptAdmissionTo", "admissionDateTime", "doctorInCharge", "archivestate"};
//文件名
String fileName = "在院浏览" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//构造excel的数据
List<Archive_Master> list = archiveMasterService.selectByCol(archiveMasterVo);
ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames);
String result=utils.exportExcelToFilePath(response,utils.listConvert(list));
String result = utils.exportExcelToFilePath(response, utils.listConvert(list));
}
@ResponseBody
@ -118,17 +126,35 @@ public class inHospitalController {
@ResponseBody
@RequestMapping(value = "/getAssort")
public List<Archive_Detail_Vo> getAssort(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo) throws Exception {
//查询是否签章
int caMasterIdNum = caSignatureMapper.getCaMasterId(archiveDetailVo.getPatientId(), 1);
//如果存在记录查询新的签章文件表
if (caMasterIdNum > 0) {
List<Archive_Detail_Vo> list = archiveDetailCaCopyMapper.selectByClo(archiveDetailVo);
//查询新生儿数据并存入list
Integer page = archiveDetailService.selectChildByClo(archiveDetailVo);
if (page != 0) {
Archive_Detail_Vo archiveDetailVoNew = new Archive_Detail_Vo();
archiveDetailVoNew.setAssortId("1000");
archiveDetailVoNew.setAssortName("新生儿病历");
archiveDetailVoNew.setPrintFlag("0");
archiveDetailVoNew.setPageNum(page);
archiveDetailVoNew.setAssortSort((short) 1000);
list.add(archiveDetailVoNew);
}
return list;
}
//分段列表
List<Archive_Detail_Vo> newList=archiveDetailService.selectByClo(archiveDetailVo);
List<Archive_Detail_Vo> newList = archiveDetailService.selectByClo(archiveDetailVo);
//查询新生儿数据并存入list
Integer page=archiveDetailService.selectChildByClo(archiveDetailVo);
if(page!=0){
Archive_Detail_Vo archiveDetailVoNew=new Archive_Detail_Vo();
Integer page = archiveDetailService.selectChildByClo(archiveDetailVo);
if (page != 0) {
Archive_Detail_Vo archiveDetailVoNew = new Archive_Detail_Vo();
archiveDetailVoNew.setAssortId("1000");
archiveDetailVoNew.setAssortName("新生儿病历");
archiveDetailVoNew.setPrintFlag("0");
archiveDetailVoNew.setPageNum(page);
archiveDetailVoNew.setAssortSort((short)1000);
archiveDetailVoNew.setAssortSort((short) 1000);
newList.add(archiveDetailVoNew);
}
return newList;
@ -139,31 +165,32 @@ public class inHospitalController {
@RequestMapping(value = "/getAssortdetail")
public OffsetLimitPage getAssortdetail(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo, Integer offset, Integer limit) throws Exception {
//分段详情列表分页
OffsetLimitPage result =null;
OffsetLimitPage result = null;
//判断是否是新生儿数据 assortId=1000
if("1000".equals(archiveDetailVo.getAssortId())){
if ("1000".equals(archiveDetailVo.getAssortId())) {
result = archiveDetailService.selectChild(archiveDetailVo, offset, limit);
}else {
result = archiveDetailService.detailByClo(archiveDetailVo, offset, limit);
} else {
result = archiveDetailService.detailByClo(archiveDetailVo, offset, limit);
}
return result;
}
/**
/**
* @description:
* @params:
* @return:
* @return:
* @author linjj
* @date: 2023/6/28 15:38
*/
@ResponseBody
@RequestMapping(value = "/getDetailInfo")
public Archive_Detail_Vo getDetailInfo(String detailId,HttpServletRequest request){
public Archive_Detail_Vo getDetailInfo(String detailId, HttpServletRequest request) {
Archive_Detail_Vo detailInfo = archiveDetailService.getDetailInfo(detailId);
List<String> list = new ArrayList<>();
list.add(detailInfo.getPdfPath());
SessionContant.setPdfUrl(null,detailId,list,request);
SessionContant.setPdfUrl(null, detailId, list, request);
return detailInfo;
}
@ -200,7 +227,7 @@ public class inHospitalController {
if (file2.exists() && file2.isFile()) {
file2.delete();
}
if(detail.getRecoverPdfPath()!=null &&detail.getRecoverPdfPath()!="") {
if (detail.getRecoverPdfPath() != null && detail.getRecoverPdfPath() != "") {
File file3 = new File(detail.getRecoverPdfPath());
if (file3.exists() && file3.isFile()) {
file3.delete();
@ -295,11 +322,11 @@ public class inHospitalController {
Archive_Detail archiveDetail = new Archive_Detail();
archiveDetail.setFlag(flag);
archiveDetail.setMasterid(masterId.trim());
List<Archive_Detail> arList =new ArrayList<>();
List<Archive_Detail> arList = new ArrayList<>();
//如果是新生儿则不加分段id的筛选条件,
if("1000".equals(assortID)){
arList =archiveDetailService.selectChildList(archiveDetail);
}else{
if ("1000".equals(assortID)) {
arList = archiveDetailService.selectChildList(archiveDetail);
} else {
archiveDetail.setTitle(assortID);
arList = archiveDetailService.selectByCol(archiveDetail);
}
@ -359,11 +386,26 @@ public class inHospitalController {
@ResponseBody
@RequestMapping(value = "/getPdfToPdf")
public String getPdfToPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId, String flag) throws Exception {
//查询是否签章
int caMasterIdNum = caSignatureMapper.getCaMasterId(masterId, 1);
//如果存在记录查询新的签章文件表
if (caMasterIdNum > 0) {
//组织分类id集合
if (StringUtils.isNotBlank(imgStr)) {
String[] assortIds = StringUtils.split(imgStr, ",");
List<String> srcFileList = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(assortIds, masterId, flag, null);
if (!CollectionUtils.isEmpty(srcFileList)) {
//设置进缓存
String key = SessionContant.setPdfUrl(masterId, imgStr, srcFileList, request);
return key;
}
}
}
//组织分类id集合
if(StringUtils.isNotBlank(imgStr)){
if (StringUtils.isNotBlank(imgStr)) {
String[] assortIds = StringUtils.split(imgStr, ",");
List<String> srcFileList = archiveDetailService.getPdfUrlByMasterOrId(assortIds,masterId,flag,null);
if(!CollectionUtils.isEmpty(srcFileList)){
List<String> srcFileList = archiveDetailService.getPdfUrlByMasterOrId(assortIds, masterId, flag, null);
if (!CollectionUtils.isEmpty(srcFileList)) {
//设置进缓存
String key = SessionContant.setPdfUrl(masterId, imgStr, srcFileList, request);
return key;
@ -507,17 +549,27 @@ public class inHospitalController {
@RequestMapping(value = "/getPdfById")
public String getPdfById(HttpServletResponse response, HttpServletRequest request, @Param("id") String idStr) throws Exception {
//组织分类id集合
if(StringUtils.isNotBlank(idStr)){
if (StringUtils.isNotBlank(idStr)) {
List<String> srcFileList = null;
try {
srcFileList = archiveDetailService.getPdfUrlByMasterOrId(null,null,null,idStr);
} catch (Exception e) {
e.printStackTrace();
}
if(!CollectionUtils.isEmpty(srcFileList)){
//设置进缓存
String key = SessionContant.setPdfUrl(idStr, idStr, srcFileList, request);
return key;
List<String> list = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(null, null, null, idStr);
//如果存在记录查询新的签章文件表
if (list.size() > 0) {
if (!CollectionUtils.isEmpty(list)) {
//设置进缓存
String key = SessionContant.setPdfUrl(idStr, idStr, list, request);
return key;
}
} else {
try {
srcFileList = archiveDetailService.getPdfUrlByMasterOrId(null, null, null, idStr);
} catch (Exception e) {
e.printStackTrace();
}
if (!CollectionUtils.isEmpty(srcFileList)) {
//设置进缓存
String key = SessionContant.setPdfUrl(idStr, idStr, srcFileList, request);
return key;
}
}
}
return null;
@ -931,7 +983,7 @@ public class inHospitalController {
detail.setFlag("0");//显示
detail.setSource("后台");
detail.setSys("emr_medical_record");
detail.setTitle("自动生成"+obj.get("selectName")+"PDF");
detail.setTitle("自动生成" + obj.get("selectName") + "PDF");
detail.setUploaddatetime(nowTime);
detail.setPdfPath(realPath + masterID + "\\" + pathType + pdfFile);
//类名
@ -946,17 +998,17 @@ public class inHospitalController {
}
//读取指定路径下的文件名和目录名
String pdfPathFile=realPath + path2+pathType.replace("\\", "")+"\\"+pathType.replace("\\", "")+".pdf";
//获取图片的绝对路径根据路径合成一份pdf文件
String pdfPathFile = realPath + path2 + pathType.replace("\\", "") + "\\" + pathType.replace("\\", "") + ".pdf";
//获取图片的绝对路径根据路径合成一份pdf文件
entity = new Emr_Picture();
entity.setRelationId(masterID);
entity.setAssortId(obj.get("selectVal").toString());
List<Emr_Picture> imgsList=emrPictureService.selectByClo(entity);
result=PrintToPdfUtil.imgsListTopdf(pdfPathFile,imgsList);
if(result.equals("合成pdf成功")){
List<Emr_Picture> imgsList = emrPictureService.selectByClo(entity);
result = PrintToPdfUtil.imgsListTopdf(pdfPathFile, imgsList);
if (result.equals("合成pdf成功")) {
result = "批量上传成功!";
}else{
result=result;
} else {
result = result;
}
/*
List dirList = new ArrayList();
@ -1356,23 +1408,43 @@ public class inHospitalController {
*/
@RequestMapping(value = "/pdfStreamHandeler")
public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response,String url)throws Exception {
public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response, String url) throws Exception {
String filePath = request.getParameter("url");
String[] list=filePath.split("titleName=");
String key =list[0].substring(0,list[0].length()-1);
int caMasterIdNum = 0;
int archiveDetailNum = 0;
String[] list = filePath.split("titleName=");
String key = list[0].substring(0, list[0].length() - 1);
//titleName为前端页面title显示的患者姓名这里要去掉
List<String> filePaths = SessionContant.getPdfUrl(key, request);
if(CollectionUtils.isEmpty(filePaths) && StringUtils.isNotBlank(key)){
if (CollectionUtils.isEmpty(filePaths) && StringUtils.isNotBlank(key)) {
//终审页面没有缓存,key为Mid_文件id逗号隔开
String[] keyArr = StringUtils.split(key, "_");
String[] assortIds = StringUtils.split(keyArr[1], ",");
String masterId = keyArr[0];
if(masterId.substring(0,masterId.length()-1).equals(keyArr[1])){
//查询是否签章
if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) {
//按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号
filePaths = archiveDetailService.getPdfUrlByMasterOrId(null,null,"0",masterId);
}else{
//按文件分类id集合
filePaths = archiveDetailService.getPdfUrlByMasterOrId(assortIds,masterId,"0",null);
archiveDetailNum = archiveDetailCaCopyMapper.getArchiveDetailNum(masterId);
} else {
caMasterIdNum = caSignatureMapper.getCaMasterId(masterId, 1);
}
//如果存在记录查询新的签章文件表
if (caMasterIdNum > 0 || archiveDetailNum > 0) {
if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) {
//按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号
filePaths = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(null, null, "0", masterId);
} else {
//按文件分类id集合
filePaths = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(assortIds, masterId, "0", null);
}
} else {
if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) {
//按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号
filePaths = archiveDetailService.getPdfUrlByMasterOrId(null, null, "0", masterId);
} else {
//按文件分类id集合
filePaths = archiveDetailService.getPdfUrlByMasterOrId(assortIds, masterId, "0", null);
}
}
}
if (null != filePaths && !filePaths.isEmpty()) {
@ -1509,7 +1581,7 @@ public class inHospitalController {
//判断是否有备份如果没有则备份pdf文件
Archive_Detail archiveDetail2 = archiveDetailService.selectByid(archiveDetail.getId());
if (archiveDetail2 != null) {
if (archiveDetail2.getRecoverPdfPath() == null|| archiveDetail2.getRecoverPdfPath() == "") {
if (archiveDetail2.getRecoverPdfPath() == null || archiveDetail2.getRecoverPdfPath() == "") {
//备份pdf文件复印并将记录保存
String recoverPdfPath = archiveDetail2.getPdfPath().replace(file.getName(), "") + nowTime + ".pdf";
archiveDetail2.setRecoverPdfPath(recoverPdfPath);
@ -1656,17 +1728,17 @@ public class inHospitalController {
// 页数
int pageNum = archiveDetailPicture.getPictureNumber();
File file = new File(templatePath);
if(file.exists()) {
if (file.exists()) {
//备份pdf文件
//判断是否有备份如果没有则备份pdf文件
Archive_Detail archiveDetail =archiveDetailService.selectByid(archiveDetailPicture.getParentId());
if(archiveDetail!=null){
Archive_Detail archiveDetail = archiveDetailService.selectByid(archiveDetailPicture.getParentId());
if (archiveDetail != null) {
String fileDirName = archiveDetail.getPdfPath();
fileDirName = fileDirName.substring(fileDirName.lastIndexOf("\\") + 1).replace(".pdf", "");
if (archiveDetail.getRecoverPdfPath() == null || archiveDetail.getRecoverPdfPath() == "") {
//备份pdf文件复印并将记录保存
String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf";
String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf";
archiveDetail.setRecoverPdfPath(recoverPdfPath);
archiveDetailService.updateCloById(archiveDetail);
//复印pdf备份
@ -1687,7 +1759,7 @@ public class inHospitalController {
//删除记录
bol = archiveDetailPictureService.deleteByCol(archiveDetailPicture);
if (bol == 1) {
// file.delete();
// file.delete();
//将之前文件删除
File file1 = new File(imagePath);
if (file1.exists() && file1.isFile()) {
@ -1705,25 +1777,25 @@ public class inHospitalController {
} else {
result = "pdf文件无内容!";
}
}else{
} else {
result = "pdf文件不存在!";
}
return result;
}
//@OptionalLog(methods = "PDF文件还原最初")
//@OptionalLog(methods = "PDF文件还原最初")
@ResponseBody
@RequestMapping(value = "/returnPdfFile")
public String returnPdfFile(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result="";
String result = "";
//判断是否有备份如果没有则备份pdf文件
archiveDetail = archiveDetailService.selectByid(archiveDetail.getId());
if(archiveDetail!=null){
if(archiveDetail.getPdfPath()!="" && archiveDetail.getPdfPath()!=null && archiveDetail.getRecoverPdfPath()!="" && archiveDetail.getRecoverPdfPath()!=null){
File file2=new File(archiveDetail.getPdfPath());
if(file2.exists()) {
if (archiveDetail != null) {
if (archiveDetail.getPdfPath() != "" && archiveDetail.getPdfPath() != null && archiveDetail.getRecoverPdfPath() != "" && archiveDetail.getRecoverPdfPath() != null) {
File file2 = new File(archiveDetail.getPdfPath());
if (file2.exists()) {
PrintToPdfUtil.copyFile2(archiveDetail.getRecoverPdfPath(), archiveDetail.getPdfPath());
//并删除图片记录
Archive_Detail_Picture archiveDetailPicture = new Archive_Detail_Picture();
@ -1740,11 +1812,11 @@ public class inHospitalController {
File file = new File(realPath + pdfDelPicUrl + fileDirName + "\\");
PrintToPdfUtil.delete(file);
}
}else{
result="pdf文件不存在所以不可备份!";
} else {
result = "pdf文件不存在所以不可备份!";
}
}else{
result="暂无备份pdf文件!";
} else {
result = "暂无备份pdf文件!";
}
}
return result;
@ -1756,13 +1828,13 @@ public class inHospitalController {
public String bfPdfFile(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String result="";
String result = "";
//判断是否有备份如果没有则备份pdf文件
archiveDetail = archiveDetailService.selectByid(archiveDetail.getId());
if(archiveDetail!=null){
if(archiveDetail.getPdfPath()!="" && archiveDetail.getPdfPath()!=null && archiveDetail.getRecoverPdfPath()!="" && archiveDetail.getRecoverPdfPath()!=null){
File file2=new File(archiveDetail.getPdfPath());
if(file2.exists()) {
if (archiveDetail != null) {
if (archiveDetail.getPdfPath() != "" && archiveDetail.getPdfPath() != null && archiveDetail.getRecoverPdfPath() != "" && archiveDetail.getRecoverPdfPath() != null) {
File file2 = new File(archiveDetail.getPdfPath());
if (file2.exists()) {
PrintToPdfUtil.copyFile2(archiveDetail.getPdfPath(), archiveDetail.getRecoverPdfPath());
//并删除图片记录
Archive_Detail_Picture archiveDetailPicture = new Archive_Detail_Picture();
@ -1780,11 +1852,11 @@ public class inHospitalController {
PrintToPdfUtil.delete(file);
}
result = "重新备份pdf文件成功!";
}else{
result="pdf文件不存在所以不可备份!";
} else {
result = "pdf文件不存在所以不可备份!";
}
}else{
result="暂无备份pdf文件!";
} else {
result = "暂无备份pdf文件!";
}
}
return result;
@ -1818,20 +1890,20 @@ public class inHospitalController {
String realPath = request.getSession().getServletContext().getRealPath("/");
// 设置存放删除页图片路径
String path2 = "static\\img\\delPicImg\\";
String result="";
int bol=0;
String result = "";
int bol = 0;
if (parentId != null && parentId != "") {
//判断是否有备份如果没有则备份pdf文件
Archive_Detail archiveDetail = archiveDetailService.selectByid(parentId);
if(archiveDetail!=null) {
if (archiveDetail != null) {
File file = new File(archiveDetail.getPdfPath());
if(file.exists()) {
if (file.exists()) {
String fileDirName = archiveDetail.getPdfPath();
fileDirName = fileDirName.substring(fileDirName.lastIndexOf("\\") + 1).replace(".pdf", "");
if (archiveDetail.getRecoverPdfPath() == null || archiveDetail.getRecoverPdfPath() == "") {
//备份pdf文件复印并将记录保存
String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf";
String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf";
archiveDetail.setRecoverPdfPath(recoverPdfPath);
archiveDetailService.updateCloById(archiveDetail);
//复印pdf备份
@ -1857,7 +1929,7 @@ public class inHospitalController {
oldName = imgs[t].getOriginalFilename();// 如apple1.jpg
lasName = oldName.substring(oldName.lastIndexOf(".") + 1);
// 自定义的文件名称String.valueOf(System.currentTimeMillis())
trueFileName = nowTime2+System.currentTimeMillis() + oldName;
trueFileName = nowTime2 + System.currentTimeMillis() + oldName;
if ("GIF".equals(lasName.toUpperCase()) || "JPEG".equals(lasName.toUpperCase()) || "PNG".equals(lasName.toUpperCase()) || "JPG".equals(lasName.toUpperCase())) {
File fileDir = new File(realPath + path2 + fileDirName + "\\");
if (!fileDir.exists() && !fileDir.isDirectory()) {
@ -1880,14 +1952,14 @@ public class inHospitalController {
} else {
result = "上传图片不为空!";
}
}else{
} else {
result = "pdf文件不存在或破损!";
}
} else {
result = "记录不存在!";
}
}else{
result="记录不存在!";
} else {
result = "记录不存在!";
}
return result;

@ -598,6 +598,12 @@ public class lastVerifyController {
}
return result;
}
@ResponseBody
@RequestMapping(value = "/getUserInfn")
public Power_User getUserInfn(HttpServletRequest request){
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
return user;
}
}

@ -53,13 +53,6 @@ public class medicalOverdueController {
return result;
}
/*@ResponseBody
@RequestMapping(value = "/test")
public String test(Archive_Master_Vo archiveMasterVo) {
List<Archive_Master_Vo> list = archiveMasterService.selectOverdue(archiveMasterVo);
System.out.println(list.toString());
return list.toString();
}*/
@ResponseBody
@RequestMapping(value = "/exportExcel")
@ -82,8 +75,9 @@ public class medicalOverdueController {
//文件名
String fileName = "初次提交归档列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//构造excel的数据overdueDays
List<Archive_Master_Vo> list = archiveMasterService.selectOverdue(archiveMasterVo);
List<Archive_Master_Vo> list = archiveMasterService.selectOverdueE(archiveMasterVo);
for (int a = 0; a < list.size(); a++) {
String overTime1 = list.get(a).getOverTime1();
String handleTime = list.get(a).getHandleTime();
try {
@ -111,56 +105,6 @@ public class medicalOverdueController {
list.get(a).setDeathFlag("否");
}
}
List<MedicalRecordHomepageCache> medicalRecordHomepageCacheList = null;
if(archiveMasterVo.getOverdueDays()!=null && archiveMasterVo.getOverdueDays()!="") {
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getOverdue() != null && !list.get(i).getOverdue().equals("")) {
int score = Integer.parseInt(list.get(i).getOverdue()) - Integer.parseInt(archiveMasterVo.getOverdueDays());
list.get(i).setScore("" + score);
}
// if (list.get(i).getDeathFlag() != null && !list.get(i).getDeathFlag().equals("")){
// if (list.get(i).getDeathFlag().equals("0")){
// list.get(i).setDeathFlag("否");
// }else {
// list.get(i).setDeathFlag("是");
// }
// }
//2021-09-17
String doctorInChargeInHomePage = "";
String directorDoctorInHomePage = "";
//根据masterId查出该条首页缓存表中content内容
MedicalRecordHomepageCacheExample medicalRecordHomepageCacheExample = new MedicalRecordHomepageCacheExample();
MedicalRecordHomepageCacheExample.Criteria criteria = medicalRecordHomepageCacheExample.createCriteria();
if (!StringUtils.isEmpty(list.get(i).getId())){
criteria.andMasterIdEqualTo(list.get(i).getId());
}
medicalRecordHomepageCacheList = medicalRecordHomepageCacheMapper.selectByExample(medicalRecordHomepageCacheExample);
if (medicalRecordHomepageCacheList.size()>0){
//查出content
String content = medicalRecordHomepageCacheList.get(0).getContent();
//根据content内容获取首页中主治医生name、主任副主任医生name
doctorInChargeInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable").getString("yZY054");
directorDoctorInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable1").getString("yZY052");
}
// //重新赋值主管医生、主任(副主任)医生
// if (doctorInChargeInHomePage != null && !doctorInChargeInHomePage.equals("")){
// list.get(i).setDoctorInCharge(doctorInChargeInHomePage);
// }else {
// list.get(i).setDoctorInCharge("首页尚未填写主治医生!");
// }
if (directorDoctorInHomePage != null && !directorDoctorInHomePage.equals("")){
list.get(i).setFirstInstance(directorDoctorInHomePage);
}else {
list.get(i).setFirstInstance("首页尚未填写主任(副主任)医生!");
}
//2021-09-17
}
}
}
ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames);
String result=utils.exportExcelToFilePath(response,utils.listConvert(list));
}

@ -76,48 +76,48 @@ public class taskController {
}
@Scheduled(cron="0 0 1 * * ?")//每天4点触发cron="0 0 4 * * ?"
public void taskPDF() throws IOException {
Date date1 = new Date();
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(date1);//把当前时间赋给日历
calendar.add(calendar.DATE, -15); //设置为前15天
Date date2 = calendar.getTime();//获取15天前的时间
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date;
//转换成时间戳
long t1 = date2.getTime();
try {
File f = new File("D:\\docus\\caCopy");
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
//获取文件路径
String filePath = files[i].getCanonicalPath();
//获取文件名,文件名为yyyy--mm--dd格式时间
String lastTime = files[i].getName();
//将lastTime时间转为long类型
try {
date = format.parse(lastTime);
} catch (ParseException e) {
throw new RuntimeException(e);
}
Long timestamp = date.getTime();
if (timestamp < t1) {
//删除
FileSystemUtils.deleteRecursively(new File(filePath));
}
}
} catch (IOException e) {
e.printStackTrace();
}
File file = new File(waterTifToJpgPath);
if (file.isDirectory()) {
for (File f : file.listFiles()) {
f.delete();
}
}
}
// @Scheduled(cron="0 0 1 * * ?")//每天4点触发cron="0 0 4 * * ?"
// public void taskPDF() throws IOException {
// Date date1 = new Date();
// Calendar calendar = Calendar.getInstance(); //得到日历
// calendar.setTime(date1);//把当前时间赋给日历
// calendar.add(calendar.DATE, -15); //设置为前15天
// Date date2 = calendar.getTime();//获取15天前的时间
// DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
// Date date;
// //转换成时间戳
// long t1 = date2.getTime();
// try {
// File f = new File("D:\\docus\\caCopy");
// File[] files = f.listFiles();
// for (int i = 0; i < files.length; i++) {
// //获取文件路径
// String filePath = files[i].getCanonicalPath();
// //获取文件名,文件名为yyyy--mm--dd格式时间
// String lastTime = files[i].getName();
// //将lastTime时间转为long类型
// try {
// date = format.parse(lastTime);
// } catch (ParseException e) {
// throw new RuntimeException(e);
// }
// Long timestamp = date.getTime();
// if (timestamp < t1) {
// //删除
// FileSystemUtils.deleteRecursively(new File(filePath));
// }
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// File file = new File(waterTifToJpgPath);
// if (file.isDirectory()) {
// for (File f : file.listFiles()) {
// f.delete();
// }
// }
//
// }
//@Scheduled(cron="0 0 3 * * ?")//每天3点触发0 0 3 * * ?

@ -0,0 +1,40 @@
package com.emr.dao;
import com.emr.dto.Archive_DetailPdfPathDto;
import com.emr.entity.Archive_Detail_Vo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @InterfaceName ArchiveDetailCACOPY
* @Description
* @Author linjj
* @Date 2023/10/27 11:12
* @Version 1.0
*/
public interface ArchiveDetailCaCopyMapper {
int addArchiveDetailCaCopyMapper(@Param("list") List<Archive_DetailPdfPathDto> list);
/**
*
* @param record
* @return
*/
List<Archive_Detail_Vo> selectByClo(Archive_Detail_Vo record);
/**
*
* @param record
* @return
*/
List<Archive_Detail_Vo> detailByClo(Archive_Detail_Vo record);
List<String> getChildPdfUrlByMasterIds(@Param("masterIds")String masterIds);
List<String> getPdfUrlByMasterOrId(@Param("assortIds") String[] assortIds, @Param("masterId")String masterId, @Param("flag")String flag, @Param("fileIds")String fileIds);
int getArchiveDetailNum(@Param("fileIds")String fileIds);
}

@ -163,6 +163,8 @@ public interface Archive_MasterMapper {
* @return
*/
List<Archive_Master_Vo> selectOverdue(Archive_Master_Vo record);
List<Archive_Master_Vo> selectOverdueE(Archive_Master_Vo record);
//获取初次审核信息
List<Archive_Master_Vo>getFollowingInfo(@Param("ids")String ids);

@ -0,0 +1,18 @@
package com.emr.dao;
import org.apache.ibatis.annotations.Param;
/**
* @InterfaceName CaSignatureMapper
* @Description
* @Author linjj
* @Date 2023/10/26 16:31
* @Version 1.0
*/
public interface CaSignatureMapper {
int addCaSignature(@Param("masterId") String masterId,@Param("signatureStatic") int signatureStatic);
int getCaMasterId(@Param("masterId") String masterId,@Param("signatureStatic") int signatureStatic);
}

@ -12,4 +12,32 @@ public class Archive_DetailPdfPathDto {
private String id;
private String pdfPath;
private String masterID;
private String upLoadDateTime;
private String assortID;
private String source;
private String subAssort;
private String title;
private String flag;
private String Sys;
private String applyId;
private Integer pageNumber;
private String checkReportId;
private String recoverPdfPath;
private String fileCode;
private Integer cType;
private String fileContext;
private Integer pageCount;
}

@ -14,4 +14,6 @@ public class Archive_Detail_caSign {
private String archiveDetailId;
private String masterId;
private Date signTime;
private Integer caStatic;
}

@ -25,6 +25,8 @@ public class Archive_Master_Vo {
private String visitId;
private String deptNameCode;
private String name;
private String sex;

@ -33,6 +33,17 @@ public class Power_User {
private String deptIdQuality;
private String deptId;
private String deptCode;
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
/**
*
*/

@ -0,0 +1,15 @@
package com.emr.service;
import java.util.List;
/**
* @InterfaceName ArchiveDetailCaCopyServer
* @Description
* @Author linjj
* @Date 2023/10/31 13:58
* @Version 1.0
*/
public interface ArchiveDetailCaCopyServer {
List<String> getPdfUrlByMasterOrId(String[] assortIds, String masterId, String flag, String fileIds);
}

@ -218,6 +218,17 @@ public interface Archive_MasterService {
*/
List<Archive_Master_Vo> selectOverdue(Archive_Master_Vo archiveMasterVo);
/**
*
*
* @param archiveMasterVo
* @return
*/
List<Archive_Master_Vo> selectOverdueE(Archive_Master_Vo archiveMasterVo);
/**
*
*

@ -0,0 +1,87 @@
package com.emr.service.ipml;
import com.emr.dao.ArchiveDetailCaCopyMapper;
import com.emr.dao.Archive_MasterMapper;
import com.emr.dto.Archive_MasterDto;
import com.emr.entity.Archive_Master;
import com.emr.service.ArchiveDetailCaCopyServer;
import lombok.extern.slf4j.Slf4j;
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 java.util.ArrayList;
import java.util.List;
/**
* @ClassName ArchiveDetailCaCopyServerImpl
* @Description
* @Author linjj
* @Date 2023/10/31 13:58
* @Version 1.0
*/
@Slf4j
@Service
public class ArchiveDetailCaCopyServerImpl implements ArchiveDetailCaCopyServer {
@Autowired
private Archive_MasterMapper archiveMasterMapper;
@Autowired
private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper;
@Override
public List<String> getPdfUrlByMasterOrId(String[] assortIds, String masterId, String flag, String fileIds) {
List<String> resultList = new ArrayList<>();
//查询本病历
List<String> pdfUrlByMasterOrId = archiveDetailCaCopyMapper.getPdfUrlByMasterOrId(assortIds, masterId, flag, fileIds);
if(!CollectionUtils.isEmpty(pdfUrlByMasterOrId)){
resultList.addAll(pdfUrlByMasterOrId);
}
//判断是否存在查询新生儿
if(null != assortIds){
boolean childFlag = false;
for (String assortId:assortIds){
if(StringUtils.isNotBlank(assortId) && assortId.equals("1000")){
childFlag = true;
break;
}
}
if(childFlag){
String childMidsByMasterId = getChildMidsByMasterId(masterId);
List<String> childPdfUrlByMasterIds = archiveDetailCaCopyMapper.getChildPdfUrlByMasterIds(childMidsByMasterId);
if(!CollectionUtils.isEmpty(childPdfUrlByMasterIds)){
resultList.addAll(childPdfUrlByMasterIds);
}
}
}
return resultList;
}
/**
* masterIdmasterId
* @param masterId
* @return
*/
private String getChildMidsByMasterId(String masterId) {
//查询该主键的病案号和住院时间
Archive_Master archiveMaster = archiveMasterMapper.selectById(masterId);
//查询该住院时间的数据集合
List<Archive_MasterDto> list = archiveMasterMapper.selectChildMasterId(archiveMaster.getAdmissionDateTime());
//定义是该患者的婴儿的masterId集合
StringBuilder mIdStr = new StringBuilder();
if(!CollectionUtils.isEmpty(list)){
for (Archive_MasterDto dto : list){
if(!dto.getId().equals(archiveMaster.getId()) && (dto.getInpNo().contains(archiveMaster.getInpNo() + "B") || dto.getInpNo().contains(archiveMaster.getInpNo() + "_B"))){
if(StringUtils.isNotBlank(mIdStr)){
mIdStr.append(",");
}
mIdStr.append("'").append(dto.getId()).append("'");
}
}
}
return mIdStr.toString();
}
}

@ -20,6 +20,7 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.google.common.base.Function;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -33,7 +34,6 @@ import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
@ -193,7 +193,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
setNameAndPrintFlagNew(archiveMasterVo, list);
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){
@ -202,13 +202,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
});
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//获取医生缺陷数量
List<Archive_Master_Vo> doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String doctorId = p.getId();
if (doctorMap.containsKey(doctorId)){
@ -220,7 +220,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
//获取护士缺陷数量
List<Archive_Master_Vo> nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids);
//护士是否有缺陷
Map<String, Archive_Master_Vo> nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
//判断是否有缺陷就填入
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String nurseId = p.getId();
@ -279,7 +279,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
dic.setTypecode("dept_code");
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
@ -293,13 +293,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
});
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//获取医生缺陷数量
List<Archive_Master_Vo> doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String doctorId = p.getId();
if (doctorMap.containsKey(doctorId)){
@ -311,7 +311,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
//获取护士缺陷数量
List<Archive_Master_Vo> nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids);
//护士是否有缺陷
Map<String, Archive_Master_Vo> nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
//判断是否有缺陷就填入
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String nurseId = p.getId();
@ -627,7 +627,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
dic.setTypecode("dept_code");
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
@ -641,13 +641,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
});
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//获取医生缺陷数量
List<Archive_Master_Vo> doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String doctorId = p.getId();
if (doctorMap.containsKey(doctorId)){
@ -659,7 +659,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
//获取护士缺陷数量
List<Archive_Master_Vo> nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids);
//护士是否有缺陷
Map<String, Archive_Master_Vo> nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
//判断是否有缺陷就填入
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String nurseId = p.getId();
@ -858,6 +858,41 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
List<Archive_Master_Vo> list = archiveMasterMapper.selectOverdue(archiveMasterVo);
if(list!=null && list.size()>0) {
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){
String deptName = codeMap.get(deptCode).getName();
p.setDeptName(deptName);
}
if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){
String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName();
p.setDeptAdmissionTo(deptAdmissionTo);
}
});
//masterIds集合
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId);
//分批次
List<List<String>> newList = ListUtils.partition(masterIds, 1000);
for (List<String> messageList : newList) {
//转成逗号拼接
String ids = String.join(",", messageList);
//根据分页的masterId获取签收信息
List<Archive_Master_Vo> followingInfo = archiveMasterMapper.getFollowingInfo(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> followingMap = ListUtil.toMap(followingInfo, Archive_Master_Vo::getMasterId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String masterId = p.getMasterId();
if (followingMap.containsKey(masterId)){
String handleTime = followingMap.get(masterId).getHandleTime();
String handleName = followingMap.get(masterId).getHandleName();
p.setHandleTime(handleTime);
p.setHandleName(handleName);
}
});
}
//查询用户集合
JSONArray powerUsers = powerUserService.getPowerUserList("1");
List<Power_User_Dto> powerUserList = null;
@ -885,10 +920,16 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
Calendar ca1 = Calendar.getInstance();
Calendar ca2 = Calendar.getInstance();
Calendar ca3 = Calendar.getInstance();
ca1.setTime(date1);
ca2.setTime(date2);
ca3.setTime(date3);
long distanceMin =( ca2.getTimeInMillis()- ca1.getTimeInMillis())/(1000*60*60*24);
long distanceMin2 =( ca2.getTimeInMillis()- ca3.getTimeInMillis())/(1000*60*60*24);
int i= (int)distanceMin;
int i2= (int)distanceMin2;
archiveMaster.setDiffDay(String.valueOf(i2));
archiveMasterVo.setDischargeDateTime1(date3);
if (i>0){
archiveMaster.setOverTime(i);
}else {
@ -903,25 +944,92 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
archiveMaster.setFirstInstance(name);
}
}
//转换科室
for (int k = 0; k < dicList.size(); k++) {
if (StringUtils.isNotBlank(archiveMaster.getDeptName())){
String deptName = archiveMaster.getDeptName();
if (deptName.equals(dicList.get(k).getCode())) {
//出院科室
deptName = deptName.replace(deptName, dicList.get(k).getName());
archiveMaster.setDeptName(deptName);
}
}
}
}
return list;
}
@Override
public List<Archive_Master_Vo> selectOverdueE(Archive_Master_Vo archiveMasterVo) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date1=null;
Date date2=null;
Date date3=null;
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
List<Archive_Master_Vo> list = archiveMasterMapper.selectOverdueE(archiveMasterVo);
if(list!=null && list.size()>0) {
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){
String deptName = codeMap.get(deptCode).getName();
p.setDeptName(deptName);
}
if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){
String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName();
p.setDeptAdmissionTo(deptAdmissionTo);
}
});
//查询用户集合
JSONArray powerUsers = powerUserService.getPowerUserList("1");
List<Power_User_Dto> powerUserList = null;
if (!CollectionUtils.isEmpty(powerUsers)) {
//转换对象
powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class);
}
//遍历赋值
for (Archive_Master_Vo archiveMaster : list) {
if (null != powerUserList) {
//获取主管医生
String doctorInCharge = archiveMaster.getDoctorInCharge();
//获取 初审人
String firstInstance = archiveMaster.getFirstInstance();
//遍历匹配工号赋值姓名
String overTime1 = archiveMaster.getOverTime1();
String handleTime = archiveMaster.getHandleTime();
String dischargeDateTime = archiveMaster.getDischargeDateTime();
try {
date1=format.parse(overTime1);
date2=format.parse(handleTime);
date3=format.parse(dischargeDateTime);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar ca1 = Calendar.getInstance();
Calendar ca2 = Calendar.getInstance();
Calendar ca3 = Calendar.getInstance();
ca1.setTime(date1);
ca2.setTime(date2);
ca3.setTime(date3);
long distanceMin =( ca2.getTimeInMillis()- ca1.getTimeInMillis())/(1000*60*60*24);
long distanceMin2 =( ca2.getTimeInMillis()- ca3.getTimeInMillis())/(1000*60*60*24);
int i= (int)distanceMin;
int i2= (int)distanceMin2;
archiveMaster.setDiffDay(String.valueOf(i2));
archiveMasterVo.setDischargeDateTime1(date3);
if (i>0){
archiveMaster.setOverTime(i);
}else {
archiveMaster.setOverTime(0);
}
for (Power_User_Dto powerUserDto : powerUserList) {
String name = powerUserDto.getName();
if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) {
archiveMaster.setDoctorInCharge(name);
}
if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){
String dept2 = archiveMaster.getDeptAdmissionTo();
if(dept2 != null && dept2.equals(dicList.get(k).getCode())) {
//入院科室dept_admission_to
dept2 = dept2.replace(dept2, dicList.get(k).getName());
archiveMaster.setDeptAdmissionTo(dept2);
}
if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) {
archiveMaster.setFirstInstance(name);
}
}
}
}
@ -949,13 +1057,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
if(list!=null && list.size()>0) {
//赋值签收信息
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getMasterId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//根据分页的masterId获取签收信息
List<Archive_Master_Vo> followingInfo = archiveMasterMapper.getFollowingInfo(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> followingMap = ListUtils.toMap(followingInfo, Archive_Master_Vo::getMasterId);
Map<String, Archive_Master_Vo> followingMap = ListUtil.toMap(followingInfo, Archive_Master_Vo::getMasterId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String masterId = p.getMasterId();
if (followingMap.containsKey(masterId)){
@ -965,6 +1073,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
p.setHandleName(handleName);
}
});
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//查询用户集合
JSONArray powerUsers = powerUserService.getPowerUserList("1");
List<Power_User_Dto> powerUserList = null;
@ -1019,11 +1132,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
archiveMaster.setFirstInstance(name);
}
}
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
for (int k = 0; k < dicList.size(); k++) {
if (StringUtils.isNotBlank(archiveMaster.getDeptName())){
@ -1053,6 +1162,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
@Override
public List<Archive_Master_Vo> selectOverdueXls2(Archive_Master_Vo archiveMasterVo) {
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
List<Archive_Master_Vo> list = archiveMasterMapper.selectOverdue2(archiveMasterVo);
if(list!=null && list.size()>0) {
//查询用户集合
@ -1079,6 +1193,27 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
archiveMaster.setFirstInstance(name);
}
}
//转换科室
for (int k = 0; k < dicList.size(); k++) {
if (StringUtils.isNotBlank(archiveMaster.getDeptName())){
String deptName = archiveMaster.getDeptName();
if (deptName.equals(dicList.get(k).getCode())) {
//出院科室
deptName = deptName.replace(deptName, dicList.get(k).getName());
archiveMaster.setDeptName(deptName);
}
}
if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){
String dept2 = archiveMaster.getDeptAdmissionTo();
if(dept2 != null && dept2.equals(dicList.get(k).getCode())) {
//入院科室dept_admission_to
dept2 = dept2.replace(dept2, dicList.get(k).getName());
archiveMaster.setDeptAdmissionTo(dept2);
}
}
}
}
}
}
@ -1180,6 +1315,32 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
//遍历赋值
for (Archive_Master_Vo archiveMaster : list) {
Emr_Dictionary dic = new Emr_Dictionary();
dic.setEffective(1);
dic.setTypecode("dept_code");
//科室列表
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
for (int k = 0; k < dicList.size(); k++) {
if (StringUtils.isNotBlank(archiveMaster.getDeptName())){
String deptName = archiveMaster.getDeptName();
if (deptName.equals(dicList.get(k).getCode())) {
//出院科室
deptName = deptName.replace(deptName, dicList.get(k).getName());
archiveMaster.setDeptName(deptName);
}
}
if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){
String dept2 = archiveMaster.getDeptAdmissionTo();
if(dept2 != null && dept2.equals(dicList.get(k).getCode())) {
//入院科室dept_admission_to
dept2 = dept2.replace(dept2, dicList.get(k).getName());
archiveMaster.setDeptAdmissionTo(dept2);
}
}
}
String overTime1 = archiveMaster.getOverTime1();
String handleTime = archiveMaster.getAgainTime();
try {
@ -1339,12 +1500,12 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//添加封存类型
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getMasterId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//查询封存记录
List<Archive_Master_Vo> archiveMasterVos = archiveMasterMapper.selectFollowing(ids);
Map<String, Archive_Master_Vo> masterIdMap = ListUtils.toMap(archiveMasterVos, Archive_Master_Vo::getMasterId);
Map<String, Archive_Master_Vo> masterIdMap = ListUtil.toMap(archiveMasterVos, Archive_Master_Vo::getMasterId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String masterId = p.getMasterId();
if (masterIdMap.containsKey(masterId)){
@ -1352,7 +1513,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
});
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String afekeepingCode = p.getSafekeepingName();
if(StringUtils.isNotBlank(afekeepingCode) && codeMap.containsKey(afekeepingCode)){
@ -1423,13 +1584,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
//转换科室
List<Archive_Master_Vo> list = archiveMasterMapper.selectByCmtCol(archiveMasterVo);
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId);
List<String> masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId);
//转成逗号拼接
String ids = String.join(",", masterIds);
//获取医生缺陷数量
List<Archive_Master_Vo> doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids);
//医生是否有缺陷
Map<String, Archive_Master_Vo> doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String doctorId = p.getId();
if (doctorMap.containsKey(doctorId)){
@ -1441,7 +1602,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
//获取护士缺陷数量
List<Archive_Master_Vo> nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids);
//护士是否有缺陷
Map<String, Archive_Master_Vo> nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
Map<String, Archive_Master_Vo> nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId);
//判断是否有缺陷就填入
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String nurseId = p.getId();
@ -1457,7 +1618,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
dic.setTypecode("dept_code");
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Archive_Master_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();

@ -5,7 +5,9 @@ import cn.org.bjca.seal.esspdf.client.message.ChannelMessage;
import cn.org.bjca.seal.esspdf.client.message.RectangleBean;
import cn.org.bjca.seal.esspdf.client.tools.AnySignClientTool;
import cn.org.bjca.seal.esspdf.client.utils.ClientUtil;
import com.emr.dao.ArchiveDetailCaCopyMapper;
import com.emr.dao.Archive_Detail_ca_reqParamMapper;
import com.emr.dao.CaSignatureMapper;
import com.emr.dto.Archive_DetailPdfPathDto;
import com.emr.entity.Archive_Detail_caSign;
import com.emr.entity.Archive_Detail_ca_reqParam;
@ -47,12 +49,19 @@ public class CaSignServiceImpl {
private int isCaOpen;
@Value("${caCopyPath}")
private String caCopyPath;
@Value("${newPdfPath}")
private String newPdfPath;
@Resource
private Archive_DetailService archiveDetailService;
@Resource
private Archive_Detai_CaSignServiceImpl archiveDetaiCaSignService;
@Resource
private Archive_Detail_ca_reqParamMapper archiveDetailCaReqParamMapper;
@Resource
private CaSignatureMapper caSignatureMapper;
@Resource
private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper;
/**
* @Description: caSignByMasterIdmasterIdca
* @param: [masterId]
@ -69,30 +78,49 @@ public class CaSignServiceImpl {
try {
List<Archive_DetailPdfPathDto> pdfPathList = archiveDetailService.getPdfPathByMasterId(masterId);
if (!CollectionUtils.isEmpty(pdfPathList)) {
//保存文件表数据list
List<Archive_DetailPdfPathDto> list=new ArrayList<>();
//签章后保存目录
String newPath = newPdfPath + File.separator + masterId;
//没有目录创建目录
if (!new File(newPath).isDirectory()) {
new File(newPath).mkdirs();
}
//查询签章位置比例
Archive_Detail_ca_reqParam caReqParam = archiveDetailCaReqParamMapper.selectAll();
//定义此次需要签章的文件id集合
List<String> idList = new ArrayList<>();
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
//获取今天日期
String todayDate = fmt.format(new Date());
//签章失败文件id集合
List<String> failIdList = new ArrayList<>();
//遍历文件集合
for (Archive_DetailPdfPathDto dto : pdfPathList) {
//获取文件路径
String pdfPath = dto.getPdfPath();
File file = new File(pdfPath);
if (file.isFile()) {
//备份源文件
caCopyFile(pdfPath, todayDate, masterId);
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
//获取今天日期
String todayDate = fmt.format(new Date());
//签章后地址
String newpdfPath = newPath + File.separator + todayDate+".pdf";
//进行签章
boolean isSign = caSign(pdfPath,caReqParam);
boolean isSign = caSign(pdfPath, newpdfPath, caReqParam);
if (isSign) {
idList.add(dto.getId());
dto.setPdfPath(newpdfPath);
} else {
failIdList.add(dto.getId());
dto.setPdfPath(newpdfPath);
}
}
list.add(dto);
}
//添加签章记录
updateCaFileState(idList,masterId);
updateCaFileState(idList, failIdList, masterId);
//签章完后保存新的文件表
archiveDetailCaCopyMapper.addArchiveDetailCaCopyMapper(list);
//签章完成后保存状态
caSignatureMapper.addCaSignature(masterId, 1);
}
} catch (Exception e) {
e.printStackTrace();
@ -106,20 +134,31 @@ public class CaSignServiceImpl {
* @author
* @createTime 2023/7/25 16:19
*/
private void updateCaFileState(List<String> idList, String masterId) {
if(!CollectionUtils.isEmpty(idList)) {
private void updateCaFileState(List<String> idList, List<String> failIdList, String masterId) {
if (!CollectionUtils.isEmpty(idList)) {
//先删除原有签章记录
archiveDetaiCaSignService.deletesFromMasterId(masterId);
//后新增
List<Archive_Detail_caSign> list = new ArrayList<>();
Date date = new Date();
for(String id : idList){
for (String id : idList) {
Archive_Detail_caSign obj = new Archive_Detail_caSign();
obj.setArchiveDetailId(id);
obj.setMasterId(masterId);
obj.setSignTime(date);
obj.setCaStatic(1);
list.add(obj);
}
if (!CollectionUtils.isEmpty(failIdList)) {
for (String id : failIdList) {
Archive_Detail_caSign obj = new Archive_Detail_caSign();
obj.setArchiveDetailId(id);
obj.setMasterId(masterId);
obj.setSignTime(date);
obj.setCaStatic(2);
list.add(obj);
}
}
//批量新增
archiveDetaiCaSignService.insertBatchCaSign(list);
}
@ -132,9 +171,9 @@ public class CaSignServiceImpl {
* @author
* @createTime 2023/7/25 15:51
*/
private void caCopyFile(String pdfPath, String todayDate,String masterId) {
String newPath = caCopyPath + File.separator + todayDate + File.separator + masterId ;
if(!new File(newPath).isDirectory()){
private void caCopyFile(String pdfPath, String todayDate, String masterId) {
String newPath = caCopyPath + File.separator + todayDate + File.separator + masterId;
if (!new File(newPath).isDirectory()) {
new File(newPath).mkdirs();
}
String newSrc = newPath + File.separator + new File(pdfPath).getName();
@ -160,8 +199,8 @@ public class CaSignServiceImpl {
*
* z:docus/caTemp/masterId/
*/
private boolean caSign(String fileSrc,Archive_Detail_ca_reqParam caReqParam) throws Exception {
System.out.println("fileSrc:"+fileSrc);
private boolean caSign(String fileSrc, String newpdfPath, Archive_Detail_ca_reqParam caReqParam) throws Exception {
System.out.println("fileSrc:" + fileSrc);
//定义是否成功
boolean flag = false;
PdfReader pdfReader = null;
@ -177,7 +216,7 @@ public class CaSignServiceImpl {
byte[] pdfBty = ClientUtil.readFileToByteArray(file);
//pdf验章
ChannelMessage messageExist = anySignClientTool.pdfVerify(pdfBty);
if(!StringUtils.isEmpty(messageExist.getStatusInfo()) && "pdf文档未签章".equals(messageExist.getStatusInfo())) {
if (!StringUtils.isEmpty(messageExist.getStatusInfo()) && "pdf文档未签章".equals(messageExist.getStatusInfo())) {
RectangleBean bean = new RectangleBean();
int numberOfPages = pdfReader.getNumberOfPages();
for (int i = 0; i < numberOfPages; i++) {
@ -187,19 +226,19 @@ public class CaSignServiceImpl {
bean.setPageNo(i + 1);
ChannelMessage message = null;
//获取pdf的高宽
Rectangle pageSize = pdfReader.getPageSizeWithRotation(i+1);
Rectangle pageSize = pdfReader.getPageSizeWithRotation(i + 1);
// 获取页面的宽度和高度
float width = pageSize.getWidth();
float height = pageSize.getHeight();
System.out.println("pdf尺寸width:"+width+"height:"+height);
System.out.println("pdf尺寸width:" + width + "height:" + height);
bean.setLeft(Float.valueOf(width - caReqParam.getSignLeft()));
bean.setTop(Float.valueOf(caReqParam.getSignTop()));
bean.setRight(Float.valueOf(width));
bean.setBottom(Float.valueOf(caReqParam.getSignBottom()));
System.out.println("左:"+bean.getLeft()+",上:"+bean.getTop()+",右:"+bean.getRight()+",下:"+bean.getBottom());
System.out.println("左:" + bean.getLeft() + ",上:" + bean.getTop() + ",右:" + bean.getRight() + ",下:" + bean.getBottom());
message = anySignClientTool.pdfSignByParam(pdfBty, signNo, bean);
if ("200".equals(message.getStatusCode())) {//成功
ClientUtil.writeByteArrayToFile(new File(fileSrc), message.getBody());
ClientUtil.writeByteArrayToFile(new File(newpdfPath), message.getBody());
System.out.println("签章成功");
} else {
String statusCode = message.getStatusCode();
@ -209,11 +248,11 @@ public class CaSignServiceImpl {
}
}
flag = true;
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
}
} else {
log.error("进行签章pdf"+fileSrc+"不存在或损坏");
log.error("进行签章pdf" + fileSrc + "不存在或损坏");
}
System.out.println("完成");
return flag;

@ -15,7 +15,7 @@ import com.emr.service.Emr_DictionaryService;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.service.Emr_Fault_TypeService;
import com.emr.service.PowerUserService;
import com.emr.util.ListUtils;
import com.emr.util.ListUtil;
import com.emr.util.Setters;
import com.emr.vo.Power_User_Dto;
import com.github.pagehelper.Page;
@ -366,7 +366,7 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
dic.setTypecode("dept_code");
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Emr_Fault_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){

@ -7,28 +7,22 @@
package com.emr.service.ipml;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.emr.dao.Archive_MasterMapper;
import com.emr.dao.Sign_ListMapper;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_DictionaryService;
import com.emr.service.PowerUserService;
import com.emr.service.Sign_ListService;
import com.emr.util.ListUtils;
import com.emr.util.ListUtil;
import com.emr.util.Setters;
import com.emr.vo.Power_User_Dto;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class Sign_ListServiceImpl implements Sign_ListService {
@ -53,7 +47,7 @@ public class Sign_ListServiceImpl implements Sign_ListService {
dic.setTypecode("dept_code");
List<Emr_Dictionary> dicList = emrDictionaryService.dicByTypeCode(dic);
//转换科室
Map<String, Emr_Dictionary> codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode);
Map<String, Emr_Dictionary> codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode);
Setters.<Sign_List_Vo>instance().list(list).cycleSetProperties(p -> {
String deptCode = p.getDeptName();
String deptAdmissionCode = p.getDeptAdmissionTo();
@ -90,12 +84,12 @@ public class Sign_ListServiceImpl implements Sign_ListService {
}
//查询签收次数
//masterIds集合
List<String> masterIds = ListUtils.distinctSelect(list, Sign_List_Vo::getMasterID);
List<String> masterIds = ListUtil.distinctSelect(list, Sign_List_Vo::getMasterID);
//转成逗号拼接
String ids = String.join(",", masterIds);
List<Sign_List_Vo> signNum = signListMapper.getSignNum(ids);
//遍历签收次数
Map<String, Sign_List_Vo> signNumMap = ListUtils.toMap(signNum, Sign_List_Vo::getMasterID);
Map<String, Sign_List_Vo> signNumMap = ListUtil.toMap(signNum, Sign_List_Vo::getMasterID);
Setters.<Sign_List_Vo>instance().list(list).cycleSetProperties(p -> {
String masterID = p.getMasterID();
if (signNumMap.containsKey(masterID)){

@ -10,7 +10,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
public final class ListUtils {
public final class ListUtil {
public static <T, K> Map<K, T> toMap(List<T> list, FieldSelector<T, K> selector) {
if (CollectionUtils.isEmpty(list)) return Collections.emptyMap();
Map<K, T> map = new HashMap<>(list.size());

@ -1,20 +1,23 @@
#\u662F\u5426\u5F00\u542F\u63A5\u53E3 1:\u5F00\u542F\uFF1B0:\u5173\u95ED
isCaOpen=0
isCaOpen=1
#ca\u63A5\u53E3ip
caServerIp=10.6.0.88
#ca\u63A5\u53E3\u7AEF\u53E3
caServerPort=8002
\u7B7E\u7AE0\u7F16\u53F7
signNo=3012E4D7D234DC58
#caServerIp=10.6.0.88
##ca\u63A5\u53E3\u7AEF\u53E3
#caServerPort=8002
#\u7B7E\u7AE0\u7F16\u53F7
#signNo=3012E4D7D234DC58
#\u7B7E\u7AE0\u7BA1\u7406\u540E\u53F0\u8D26\u53F7\uFF1Aoperator \u5BC6\u7801\uFF1A111111
#\u5916\u7F51\u6D4B\u8BD5
#ca\u63A5\u53E3ip
#caServerIp=223.70.139.221
##ca\u63A5\u53E3\u7AEF\u53E3
#caServerPort=18002
###\u7B7E\u7AE0\u7F16\u53F7
#signNo=59BC18FE5DEB0F15
caServerIp=223.70.139.221
#ca\u63A5\u53E3\u7AEF\u53E3
caServerPort=18002
##\u7B7E\u7AE0\u7F16\u53F7
signNo=59BC18FE5DEB0F15
#\u5907\u4EFD\u539F\u6587\u4EF6\u8DEF\u5F84
caCopyPath=d:docus/caCopy
caCopyPath=d:docus/caCopy
newPdfPath=G:/caPdfs

@ -1,4 +1,4 @@
POWER_IP=127.0.0.1
POWER_IP=localhost
jdbc.username=sa
jdbc.password=admin123
dataBaseName=zj_record_new
@ -18,7 +18,7 @@ hibernate.enable_lazy_load_no_trans=true
WEBSOCKET_URLHEAD=${POWER_JSPHEAD}:8088
#\u901A\u77E5\u5B57\u7B26\u4E32\u95F4\u9694\u7B26
STR_SPLIT=*^:|,.
POWER_JSPHEAD=127.0.0.1
POWER_JSPHEAD=localhost
##\u56FE\u7247\u5730\u5740
pictureUrl=Z:\\test\\uploadImage

@ -3,7 +3,7 @@ log4j.appender.myLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myLog.File=D:\\logs\\emr_medical_record\\info\\info_log
log4j.appender.myLog.DatePattern=-yyyy-MM-dd'.log'
log4j.appender.myLog.Append = true
log4j.appender.myLog.Threshold = debug
log4j.appender.myLog.Threshold = info
log4j.appender.myLog.layout=org.apache.log4j.PatternLayout
log4j.appender.myLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n
@ -12,7 +12,7 @@ log4j.appender.errorMsg=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorMsg.File=D:\\logs\\emr_medical_record\\error\\error_log
log4j.appender.errorMsg.DatePattern=-yyyy-MM-dd'.log'
log4j.appender.errorMsg.Append = true
log4j.appender.errorMsg.Threshold = debug
log4j.appender.errorMsg.Threshold = info
log4j.appender.errorMsg.layout=org.apache.log4j.PatternLayout
log4j.appender.errorMsg.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n
@ -22,6 +22,6 @@ log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern =%d %-5p [%c{5}] - %m%n
log4j.logger.com.emr=debug
log4j.logger.com.alibaba=debug
log4j.logger.org=debug
log4j.logger.com.emr=info
log4j.logger.com.alibaba=info
log4j.logger.org=info

@ -0,0 +1,154 @@
<?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.ArchiveDetailCaCopyMapper">
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Detail_Vo">
<result column="id" jdbcType="NVARCHAR" property="id"/>
<result column="PDF_PATH" jdbcType="NVARCHAR" property="pdfPath"/>
<result column="MasterID" jdbcType="NVARCHAR" property="masterid"/>
<result column="UpLoadDateTime" jdbcType="NVARCHAR" property="uploaddatetime"/>
<result column="AssortID" jdbcType="NVARCHAR" property="assortid"/>
<result column="Source" jdbcType="NVARCHAR" property="source"/>
<result column="SubAssort" jdbcType="NVARCHAR" property="subassort"/>
<result column="Title" jdbcType="NVARCHAR" property="title"/>
<result column="flag" jdbcType="NVARCHAR" property="flag"/>
<result column="Sys" jdbcType="NVARCHAR" property="sys"/>
<result column="page_number" jdbcType="INTEGER" property="pageNumber"/>
<result column="patient_id" property="patientId" jdbcType="VARCHAR"/>
<result column="assort_id" property="assortId" jdbcType="VARCHAR"/>
<result column="scan_page" property="scanPage" jdbcType="VARCHAR"/>
<result column="assort_name" property="assortName" jdbcType="VARCHAR"/>
<result column="assort_sort" property="assortSort" jdbcType="SMALLINT"/>
<result column="print_flag" property="printFlag" jdbcType="VARCHAR"/>
<result column="pageNum" property="pageNum" jdbcType="INTEGER"/>
<result column="recover_pdf_path" jdbcType="INTEGER" property="recoverPdfPath"/>
<result column="ArchiveState" jdbcType="NVARCHAR" property="archivestate"/>
<result column="cmt_doctor_date" jdbcType="NVARCHAR" property="cmtDoctorDate"/>
<result column="cmt_nurse_date" jdbcType="NVARCHAR" property="cmtNurseDate"/>
<result column="create_time" jdbcType="NCHAR" property="createTime"/>
</resultMap>
<insert id="addArchiveDetailCaCopyMapper">
insert into Archive_Detail_CA_COPY(ID,PDF_PATH,MasterID,UpLoadDateTime,AssortID,Source,SubAssort,Title,flag,Sys,apply_id,
page_number,check_report_Id,recover_pdf_path,FileCode,CType,FileContext,pageCount)
values
<foreach collection="list" item="item" separator=",">
(#{item.id},#{item.pdfPath},#{item.masterID},#{item.upLoadDateTime},#{item.assortID},#{item.source},#{item.subAssort},#{item.title},#{item.flag}
,#{item.Sys},#{item.applyId},#{item.pageNumber},#{item.checkReportId},#{item.crecoverPdfPath},#{item.fileCode},#{item.cType},#{item.fileContext}
,#{item.pageCount})
</foreach>
</insert>
<select id="selectByClo" resultMap="BaseResultMap2" resultType="com.emr.entity.Archive_Detail_Vo">
select *,COUNT(1) pageNum from (
SELECT
z.assort_id,
z.assort_name,
z.assort_sort,
z.print_flag
FROM
zd_assort z
INNER JOIN Archive_Detail_CA_COPY s ON s.AssortID= z.assort_id
where 1=1
<if test="patientId != null and patientId != ''">
and MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortId != null and assortId != ''">
and AssortID=#{assortId,jdbcType=VARCHAR}
</if>
<if test="flag != null">
and flag = #{flag,jdbcType=NVARCHAR}
</if>
) s
group by assort_id,assort_name,assort_sort,print_flag
ORDER BY s.assort_sort
</select>
<select id="detailByClo" resultType="com.emr.entity.Archive_Detail_Vo">
select
t.id,t.Source,t.UpLoadDateTime,t.Title,t.flag
from Archive_Detail_CA_COPY t
where 1=1
<if test="patientId != null">
and t.MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortId != null and assortId != ''">
and t.AssortID=#{assortId,jdbcType=VARCHAR}
</if>
<if test="source != null and source != '' and source!='-1'">
and t.Source=#{source,jdbcType=VARCHAR}
</if>
<if test="source=='-1'">
and t.Source is null
</if>
<if test="flag != null and flag != ''">
and t.flag = #{flag,jdbcType=NVARCHAR}
</if>
<if test="title != null and title != ''">
and t.title like '%'+#{title,jdbcType=VARCHAR}+'%'
</if>
ORDER BY t.UpLoadDateTime
</select>
<select id="getPdfUrlByMasterOrId" resultType="java.lang.String">
SELECT
PDF_PATH
FROM
Archive_Detail_CA_COPY
INNER JOIN
zd_assort
on Archive_Detail_CA_COPY.AssortID = zd_assort.assort_id
WHERE 1=1
<if test="fileIds != null and fileIds != ''">
AND ID IN (
<foreach collection="fileIds.split(',')" item="item" separator=",">
#{item}
</foreach>
)
</if>
<if test="masterId != null and masterId != ''">
AND MasterID = #{masterId}
</if>
<if test="assortIds != null">
AND AssortID IN (
<foreach collection="assortIds" item="item" separator=",">
#{item}
</foreach>
)
</if>
<if test="flag != null and flag != ''">
AND flag = #{flag}
</if>
order by zd_assort.assort_sort
</select>
<!--查询婴儿病历pdf路径集合-->
<select id="getChildPdfUrlByMasterIds" resultType="java.lang.String">
SELECT
PDF_PATH
FROM
Archive_Detail_CA_COPY
INNER JOIN
zd_assort
on Archive_Detail.AssortID = zd_assort.assort_id
WHERE 1=1
<if test="masterIds != null and masterIds != ''">
AND MasterID in (${masterIds})
</if>
AND flag = 0
order by zd_assort.assort_sort
</select>
<select id="getArchiveDetailNum" resultType="java.lang.Integer">
select count(*) from Archive_Detail_CA_COPY
where
<if test="fileIds != null and fileIds != ''">
ID IN (
<foreach collection="fileIds.split(',')" item="item" separator=",">
#{item}
</foreach>
)
</if>
</select>
</mapper>

@ -768,6 +768,6 @@
select Title,page_number,Source,flag,PDF_PATH from Archive_Detail where ID=#{detailId}
</select>
<select id="getPdfPathByMasterId" resultType="com.emr.dto.Archive_DetailPdfPathDto">
select id,PDF_PATH pdfPath from Archive_Detail where MasterID = #{masterId}
select * from Archive_Detail where MasterID = #{masterId}
</select>
</mapper>

@ -1,11 +1,15 @@
<?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.Archive_Detail_caSignMapper">
<insert id="insertBatchCaSign">
insert into Archive_Detail_caSign(archive_detail_id,master_id,sign_time)
insert into Archive_Detail_caSign(archive_detail_id,master_id,sign_time,ca_static)
values
<foreach collection="list" item="item" separator=",">
(#{item.archiveDetailId},#{item.masterId},#{item.signTime})
(#{item.archiveDetailId},#{item.masterId},#{item.signTime},#{item.caStatic})
</foreach>
</insert>

@ -49,6 +49,7 @@
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Master_Vo">
<id column="id" jdbcType="NVARCHAR" property="id" />
<result column="dept_name_code" jdbcType="NVARCHAR" property="deptNameCode" />
<result column="patient_id" jdbcType="NVARCHAR" property="patientId" />
<result column="inp_no" jdbcType="NVARCHAR" property="inpNo" />
<result column="visit_id" jdbcType="NVARCHAR" property="visitId" />
@ -382,10 +383,10 @@
</select>
<select id="selectByLast" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap2">
select m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.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,
select m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.dept_name,m.discharge_date_time,m.ArchiveState,m.admission_date_time,
m.dept_admission_to,m.check_doctor,m.checked_datetime,m.checked_doctor,m.LockInfo,m.DOCTOR_IN_CHARGE,m.ID_NO,m.DISCHARGE_DISPOSITION,m.dept_code_lend,m.isscaned,
m.cmt_doctor,m.cmt_nurse,m.doctor_name,m.nurse_name,m.cmt_doctor_date,m.cmt_nurse_date,m.emr_doctor_cmt,m.emr_nure_cmt,m.death_flag,m.first_instance,
m.is_scanning,m.bed_number,ao.C5 is_sign,case when emr_fault_detail.archive_detail_id is not null then '是' else '否' end isFault,m.print_flag as printNum
m.is_scanning,m.bed_number,ao.C5 is_sign,case when emr_fault_detail.archive_detail_id is not null then '是' else '否' end isFault,m.print_flag as printNum,m.dept_name as dept_name_code
from archive_master m
left join (select distinct archive_detail_id from emr_fault_detail where back_flag in ('6','5')) emr_fault_detail
on emr_fault_detail.archive_detail_id = m.ID
@ -1572,6 +1573,81 @@
</where>
ORDER BY m.master_id,m.discharge_date_time asc
</select>
<!--初次提交归档-->
<select id="selectOverdueE" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap2">
select
f.id,f.handle_name,f.handle_id,f.handle_time,ISNULL(DATEDIFF(dd,CONVERT(VARCHAR(20),m.discharge_date_time,23),CONVERT(VARCHAR(20),f.handle_time,23)),
0) diffDay,
(SELECT max(b.date)
FROM (select top ${overdueDaysTwo} date from emr_holiday_set where date >= CONVERT (
VARCHAR (10),
m.discharge_date_time,
120
) and flag= 1 order by date asc) as b) as overTime1
,m.master_id,m.patient_id,m.inp_no,m.visit_id,m.name,m.dept_name,m.discharge_date_time,m.DOCTOR_IN_CHARGE,
m.first_instance,m.death_flag,m.dept_admission_to,admission_date_time
from (
select id,master_id ,convert(varchar,handle_time,120) handle_time ,handle_id,handle_name,following_type from (
select ROW_NUMBER() over(partition by master_id order by handle_time asc) RowNum
,Archive_Master_Following.*
from Archive_Master_Following where 1=1 and following_type='5') as t1 where 1=1 and RowNum = 1
) f
LEFT JOIN (
select id master_id,patient_id,inp_no,visit_id,name,dept_name,convert(varchar,discharge_date_time,120)
discharge_date_time,check_doctor,first_instance,DOCTOR_IN_CHARGE,death_flag,dept_admission_to,convert(varchar,admission_date_time,120)
admission_date_time
from archive_master where 1=1 and ArchiveState not in('作废','已封存','取消入院') and Is_Valid!=1
) m
on f.master_id=m.master_id
<where> 1=1 and m.master_id!='' and m.master_id is not null
<if test="id != null and id != ''">
and m.id = #{id,jdbcType=NVARCHAR}
</if>
<if test="inpNo != null and inpNo != ''">
and m.inp_no like '%'+#{inpNo,jdbcType=NCHAR}+'%'
</if>
<if test="visitId != null and visitId != ''">
and m.visit_id=#{visitId,jdbcType=NCHAR}
</if>
<if test="name != null and name != ''">
and m.name like '%'+#{name,jdbcType=NCHAR}+'%'
</if>
<if test="deathFlag != null and deathFlag != ''">
and m.death_flag=#{deathFlag,jdbcType=NCHAR}
</if>
<if test="deptName!= null and deptName!= ''">
and m.dept_name in
<foreach item="item" collection="deptName.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="deptAdmissionTo != null and deptAdmissionTo!=''">
and m.dept_admission_to in
<foreach item="item" collection="deptAdmissionTo.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<choose>
<when test="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(20),m.discharge_date_time,23) between #{startDate,jdbcType=NCHAR} and #{endDate,jdbcType=NCHAR}
</when>
<when test="startDate != null and startDate != ''">
and CONVERT(VARCHAR(20),m.discharge_date_time,23) >=#{startDate,jdbcType=NCHAR}
</when>
<when test="endDate != null and endDate != ''">
and CONVERT(VARCHAR(20),m.discharge_date_time,23) &lt;= #{endDate,jdbcType=NCHAR}
</when>
</choose>
</where>
ORDER BY m.master_id,m.discharge_date_time,f.handle_time asc
</select>
<!-- 住院返修病历 -->
<select id="selectOverdue2" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap2">
select f1.id,f1.following_content,f1.handle_name,CONVERT(VARCHAR(20),f1.handle_time,120) handle_time,ISNULL(DATEDIFF(dd,CONVERT(VARCHAR(20),f1.handle_time,23),CONVERT(VARCHAR(20),f2.handle_time,23)), 0) diffDay,f2.handle_time as againTime,

@ -1298,12 +1298,6 @@
<if test="dischargeDateTime != null">
and m.discharge_date_time = #{dischargeDateTime,jdbcType=NVARCHAR}
</if>
<if test="creater!= null and creater!= ''">
and e.creater in
<foreach item="item" collection="creater.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<choose>
<when test="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(20),m.discharge_date_time,23) between CONVERT(VARCHAR(20),#{startDate,jdbcType=NCHAR},23) and

@ -0,0 +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.CaSignatureMapper">
<insert id="addCaSignature">
insert into ca_signature(master_id,signature_static)
values(#{masterId},#{signatureStatic})
</insert>
<select id="getCaMasterId" resultType="java.lang.Integer">
select count(*) num from ca_signature where master_id=#{masterId} and signature_static=#{signatureStatic}
</select>
</mapper>

@ -530,53 +530,6 @@
//return changeDateFormat(value)
}
},
// {
// field: 'creater',
// title: '创建人',
// valign: 'middle',
// }
/*{
field: 'createTime',
title: '创建时间',
valign: 'middle',
formatter: function (value, row, index) {
return value;
//return changeDateFormat(value)
}
},
},*/
// {
// field: 'updater',
// title: '修改人',
// valign: 'middle',
// formatter: function (value, row, index) {
// return value;
// //return changeDateFormat(value)
// }
// },
// {
// field: 'updateTime',
// title: '修改时间',
// valign: 'middle',
// formatter: function (value, row, index) {
// return value;
// //return changeDateFormat(value)
// }
// }
// {
// title: "操作",
// align: 'center',
// valign: 'middle',
// width: 160, // 定义列的宽度单位为像素px
// formatter: function (value, row, index) {
// return '<button class="btn btn-primary btn-sm" onclick="del(\'' + row.Age + '\')">修改</button> <button class="btn btn-danger btn-sm" onclick="del(\'' + row.Age + '\')">删除</button>';
// },
// cellStyle: function (value, row, index) {
// return {classes: 'success'}
//
// }
// }
],
onLoadSuccess: function (result) { //加载成功时执行
//console.info("加载成功");
@ -1168,7 +1121,7 @@
window.location.href = "${path}/fault/exportExcel?inpNo=" + inpNo + "&visitId=" + visitId +
"&name=" + name + "&startDate=" + startDate + "&endDate=" + endDate + "&archivestate=" + archivestate+
"&deptName="+ deptName + "&doctorInCharge=" + doctorInCharge
+ "&assortId=" + assortId + "&creater=" + creater+"&backFlag="+backFlag;
+ "&assortId=" + assortId +"&backFlag="+backFlag;
});

@ -19,6 +19,8 @@
<%@include file="../../jspf/ztreeCommom.jsp" %>
<script type="text/javascript"
src="${path}/static/bootstrap-3.3.7/bootstrap-table-fixed-columns.js?time=2019-12-25"></script>
<script type="text/javascript"
src="http://10.6.2.231/cdss/jssdk?v=4.0&ak=7C529E8A5ABF717778D62596C79EE51D"></script>
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/bootstrap-table-fixed-columns.css" type="text/css">
<script>
var path = "${path}";
@ -2231,6 +2233,7 @@
data: {masterId: masterId, imgStr: imgStr, flag: flag},
success: function (result) {
if (result != "") {
console.log(result)
//绝对路径
//var pdfPath = result;
//newWindow.location.href = "${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + pdfPath);
@ -3395,6 +3398,13 @@
title: '出院日期',
field: 'dischargeDateTime',
align: 'center',
formatter: function (value, row, index) {
var result = "";
if (value != null && value != "") {
result = value.substring(0, 10);
}
return result;
}
},
{
title: '主管医生',
@ -3432,43 +3442,12 @@
title: '医生',
field: 'doctorName',
align: 'left',
/*formatter: function (value, row, index) {
//调接口 参数:工号 返回:名字
var redFlag = row.numb;
var a = "";
if (value == null || value == "null") {
a = "";
} else {
a = value;
}
if (redFlag != 0) {
//有缺陷显示红色
a = '<span style="color:red;">' + a + '</span>';
}
return a;
}*/
},
{
title: '医生提交日期',
field: 'cmtDoctorDate',
align: 'center',
visible: false,
/*formatter: function (value, row, index) {
var redFlag = row.numb;
var a = "";
if (value != null && value != "") {
a = value.substring(0, 10);
} else if (value == null) {
a = "";
} else {
a = value;
}
if (redFlag != 0) {
//有缺陷显示红色
a = '<span style="color:red;">' + a + '</span>';
}
return a;
}*/
},
{
title: '护士是否提交',
@ -3500,44 +3479,12 @@
title: '护士',
field: 'nurseName',
align: 'left',
/*formatter: function (value, row, index) {
var redFlag = row.numb;
var a = "";
if (value == null || value == "null") {
a = "";
} else {
a = value;
}
if (redFlag != 0) {
//有缺陷显示红色
a = '<span style="color:red;">' + a + '</span>';
}
return a;
}*/
},
{
title: '护士提交日期',
field: 'cmtNurseDate',
align: 'center',
visible: false,
/*formatter: function (value, row, index) {
var redFlag = row.numb;
var a = "";
if (value != null && value != "") {
value = value.substring(0, 10);
} else if (value == null) {
value = "";
} else {
value = value;
}
if (redFlag == 0) {
a = value;
} else {
//有缺陷显示红色
a = '<span style="color:red;">' + value + '</span>';
}
return a;
}*/
}, {
title: '是否死亡',
field: 'deathFlag',
@ -3745,15 +3692,12 @@
formatter: function (value, row, index) {
var url = window.location.href;
var index = url.substring(url.lastIndexOf('?') + 1).replace("num=", "");
//return '<button class="btn btn-danger btn-sm" onclick="selectFun(\'' + row + '\')">查看 </button>';
var html = "";
html = '<button type="button" class="btn btn-sm btn-warning aiInfo">AI质控</button>';
if (index != null && index != "" && index.indexOf("select") != -1) {
html = '<button type="button" class="btn btn-danger btn-sm selInfo" onclick="initTable2()">查看</button>';// '<a href="javascript:;" class="delete">删除</a>';
html += '<button type="button" class="btn btn-danger btn-sm selInfo" onclick="initTable2()">查看</button>';// '<a href="javascript:;" class="delete">删除</a>';
}
if (row.archivestate == '初审') {
/*if (index != null && index != "" && index.indexOf("back") != -1) {
html += '<button type="button" class="btn btn-warning btn-sm returnInfo" >退回</button>';
}*/
if (index != null && index != "" && index.indexOf("last") != -1) {
html += '<button type="button" class="btn btn-sm btn-primary verifyInfo">审核</button>';
}
@ -3784,6 +3728,9 @@
return html;
},
events: {
'click .aiInfo': function (e, value, row, index) {
aiQuality(row);
},
'click .returnInfo': function (e, value, row, index) {
if (row.id != null && row.id != "") {
$.ajax({
@ -3954,6 +3901,109 @@
}
}
//ai质控
function aiQuality(row) {
//当前登录用户id
var userId;
//当前登录用户姓名
var userName;
//当前登录用户科室编号
var userDept;
//用户姓名
var userPosition;
//获取用户信息
$.ajax({
url: "${path}/lastVerify/getUserInfn",
type: "POST",
async: false,
success: function (result) {
userId = result.userId
userName = result.userName
userDept = result.userTel
userPosition = result.userPosition
}
})
var maysonAutherEntity = {
"autherKey": "7C529E8A5ABF717778D62596C79EE51D",
"userGuid": row.patientId,
"serialNumber": row.patientId + row.visitId,
"doctorGuid": userId,
"doctorName": userName,
"department": userDept,
"hospitalGuid": "1",
"hospitalName": "广东医科大学附属医院",
"customEnv": "1",
"flag": "m"
}
//固定参数
var maysonBean = {
"progressNoteList": [{
"progressGuid": 10000,
"progressType": 11,
"progressTypeName": "病历质控",
"progressTitleName": "病历质控",
"msgType": 0,
"progressMessage": "无纸化归档接口调用",
"doctorGuid": userName,
"recordTime": row.dischargeDateTime,
"firstSignTime": row.dischargeDateTime,
"lastSaveTime": row.dischargeDateTime,
"completionTime": row.dischargeDateTime,
"documentTitleTime": row.dischargeDateTime,
"departmentCode": row.deptNameCode,
"department": row.deptName,
}]
}
console.log(maysonBean)
loadJs('http://10.6.2.231/cdss/jssdk', function () {
HM.maysonLoader(maysonAutherEntity, function (mayson) {
mayson.setDrMaysonConfig('m', 1);
mayson.listenViewData = function (data) {
if (data) {
for (var i = 0; i < data.length; i++) {
var perData = data[i];
if (perData.type == 11) {//type=11:惠每文献返回url路径
if (perData.items) {
for (varj = 0; j < perData.items.length; j++) {
window.open(perData.items[j].text);
}
}
} else {//文献外的其他类型,直接做回显处理
if (perData.items) {
for (var j = 0; j < perData.items.length; j++) {
window.alert(perData.items[j].text);
}
}
}
}
}
};
mayson.setMaysonBean(maysonBean);
mayson.ai();
});
})
function loadJs(src, cbk) {
var script = document.createElement('script')
script.src = src;
if (script.readyState) {
script.onreadystatechange = function () {
var r = script.readyState;
if (r === 'loaded' || r === 'complete') {
script.onreadystatechange = null;
cbk && cbk();
}
};
} else {
script.onload = function () {
cbk && cbk();
}
}
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
}
}
//查看方法的清单显示方法
function showDiag(tableId) {
$("#tableDiag").hide();
@ -4380,7 +4430,7 @@
}
});
var titleName = document.getElementById("nameLab").innerText;
var iframeUrl = "${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url="+detailId+"?titleName=" + titleName);
var iframeUrl = "${path}/static/pdfjs/web/viewer.html?file=" + encodeURIComponent("${path}/inHosp/pdfStreamHandeler?url=" + detailId + "?titleName=" + titleName);
$('#pdf_page').attr('src', iframeUrl);
//病案号 45e9b098f9da49ffba1843bfc6930cb8
//删除pdf某一页
@ -4737,10 +4787,9 @@
var isSign = $("#isSign").val();
var printNum = $("#printNum").val();
var isFault = $("#isFault").val();
var deathFlag = $("#deathFlag2").val();
window.location.href = "${path}/lastVerify/exportExcel?inpNo=" + inpNo + "&visitId=" + visitId +
"&name=" + name + "&deptName=" + deptName + "&startDateTo=" + startDateTo + "&endDateTo=" + endDateTo
+ "&isscaned=" + isscaned + "&isSign=" + isSign + "&isScanning=" + isScanning + "&printNum=" + printNum + "&isFault=" + isFault + "&deathFlag=" + deathFlag2;
+ "&isscaned=" + isscaned + "&isSign=" + isSign + "&isScanning=" + isScanning + "&printNum=" + printNum + "&isFault=" + isFault + "&deathFlag=";
});
var zNodes = [];

@ -821,7 +821,6 @@
var overdueDaysTwo= $("#overdueDays4").val();
window.location.href = "${path}/medicalOverdue/exportExcel?inpNo=" + inpNo + "&visitId=" + visitId +
"&name=" + name + "&deptName=" + deptName + "&deptAdmissionTo=" + deptAdmissionTo
//+ "&archivestate=" + archivestate
+ "&createTimeStart=" + createTimeStart + "&createTimeEnd=" + createTimeEnd+ "&startDate=" + startDate
+ "&endDate=" + endDate+ "&deathFlag=" + deathFlag + "&overdueDays=" + overdueDays+ "&overdueDaysTwo=" + overdueDaysTwo;
});

Loading…
Cancel
Save