1、处理新老数据接口方式,老的还是按照老方式处理,新的按照新的方式处理;

2、优化pdf接口,新增删除、修改、新增标识、是新老数据;
3、知情同意与知情文件合并,老数据还是知情文件作废,新数据合并;
master
leijx 5 years ago
parent d8ad086f8e
commit c82e28156b

@ -96,7 +96,7 @@ public class AliasName {
NURSE_MAP.put("首次护理记录", "7");
NURSE_MAP.put("护理文书", "6");
NURSE_MAP.put("专科单护理", "24");
NURSE_MAP.put("知情文件", "8");
NURSE_MAP.put("知情文件", "20");
NURSE_MAP.put("体温单", "5");
NURSE_MAP.put("护理记录", "2");
NURSE_MAP.put("评估单", "4");

@ -40,6 +40,7 @@ public class ArchiveDetail {
private String title;
// 0 使用 1是系统作废 2是老数据作废 3是新数据作废 88历史数据作废
private String flag = "0";
private String sys;

@ -58,6 +58,9 @@ public class MessageDto<T> {
//2019-12-10 新增一个提交时间
private Date commitTime;
//20200609 0是老数据 1是新数据
private String isOld;
public MessageDto() {
}

@ -102,7 +102,7 @@ public class MessageLog {
}
public void setValue(String outContent, Integer result, String outJson, Date xmlCreateTime, Long executionTime, Date endTime, String type) {
public void setValue(String outContent, Integer result, String outJson, Date xmlCreateTime, Long executionTime, Date endTime, String type,String remark) {
this.outContent = outContent;
this.result = result;
this.outJson = outJson;
@ -110,6 +110,7 @@ public class MessageLog {
this.executionTime = executionTime;
this.endTime = endTime;
this.type = type;
this.remark = remark;
}
public void setValue1(String outContent, Integer result, Long executionTime, Date endTime) {

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.ann.demo.entity.constant.AliasName;
import com.ann.demo.entity.constant.InterfaceName;
import com.ann.demo.entity.filing.ArchiveDetail;
import com.ann.demo.entity.filing.MessageSubordinate;
import com.ann.demo.entity.filing.dto.MessageDto;
import com.ann.demo.entity.filing.dto.PatientMainDto;
@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.jws.WebService;
import java.util.Date;
import java.util.Objects;
/**
* @Author: LeiJiaXin
@ -51,7 +53,7 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
// 1、定义变量
boolean flag = false;
Integer result = 0;
String type = "", patientMainStr = null;
String type = "", patientMainStr = null,remark = null;
ArchiveMaster archiveMaster ;
long startTime = System.currentTimeMillis();
Date xmlCreateTime = null;
@ -63,7 +65,6 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
if (messageDto != null) {
archiveMaster = archiveMasterRepository.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(),messageDto.getVisitId(),0);
if(archiveMaster != null){
// 区分类型
String reportType = messageDto.getType();
if (reportType != null) {
@ -81,46 +82,69 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
}
messageDto.setType(type);
}
// 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废
messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-nurse-"+messageDto.getCommitTime());
if(!(archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") ||
if(! (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") ||
archiveMaster.getArchiveState().equals("复审退回") )){
String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource());
if(temp != null){
messageLog.setRemark(temp);
String addFlag = messageDto.getAddFlag();
if(Objects.equals(addFlag,"delete") || Objects.equals(addFlag,"update") || Objects.equals(addFlag,"insert")){
if(Objects.equals(messageDto.getIsOld(),"0")){
if(messageDto.getType().equals("20")){
messageDto.setType("8");
}
messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-nurse-"+messageDto.getCommitTime());
remark = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource());
}else if(Objects.equals(messageDto.getIsOld(),"1")){
ArchiveDetail archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId());
if(archiveDetail == null && !Objects.equals(addFlag,"insert")){
remark = messageDto.getSubType()+"没有生成对应的文件不能"+addFlag;
}else{
if(Objects.equals(addFlag,"delete")){
if(!archiveDetailService.delete(archiveDetail.getId())){
remark = messageDto.getSubType()+"删除失败!";
}else{
remark = "ok";
}
}
}
}else{
remark = "数据有问题";
}
}else{
patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue);
result = 1;
flag = true;
remark = "标识不包括insert/update/delete";
}
}else{
messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收");
remark = "该病历已"+archiveMaster.getArchiveState()+",不再接收";
}
}
// 保存消息从属表
xmlCreateTime = messageDto.getXmlCreateTime();
}else{
messageLog.setRemark("没有入院消息。。");
remark = "没有入院消息";
}
} else {
messageLog.setRemark("传过来的消息无法解析。。");
remark = "传过来的消息无法解析";
}
if(remark == null || remark.equals("ok") ){
result = 1;
flag = true;
patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue);
}
// 4、判断是否成功 失败 的原因 我们插入报错 然后无法解析xml 传入参数为null
outContent = AnalysisService.getReturnResult(flag);
outContent = AnalysisService.getReturnResult(flag,remark);
// 更新日志表
long endTime = System.currentTimeMillis();
messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type);
messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type,remark);
messageService.save(messageLog);
if (flag) {
if( remark == null && flag){
messageSubordinateService.save(new MessageSubordinate(messageLog.getId(), patientMainStr, JSON.toJSONString(messageLog)));
}
logger.info("-----------------------护理总时长:" + (endTime - startTime) + "-------------------------");
}catch (Exception e){
try {
logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]);
return AnalysisService.getReturnResult(false);
return AnalysisService.getReturnResult(false,e.toString());
} catch (Exception e1) {
logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e1,e1.getStackTrace()[0]);
return outContent;
@ -136,7 +160,7 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
// 1、定义变量
boolean flag = false;
Integer result = 0;
String type = "", patientMainStr = null;
String type = "", patientMainStr = null,remark = null;
ArchiveMaster archiveMaster ;
long startTime = System.currentTimeMillis();
Date xmlCreateTime = null;
@ -165,44 +189,84 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
}
messageDto.setType(type);
}
// 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废
messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId() + "-doctor-" + messageDto.getCommitTime());
if(!(archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") ||
if(! (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") ||
archiveMaster.getArchiveState().equals("复审退回") )){
String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource());
if (temp != null) {
messageLog.setRemark(temp);
} else {
result = 1;
flag = true;
patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue);
String addFlag = messageDto.getAddFlag();
if(Objects.equals(addFlag,"delete") || Objects.equals(addFlag,"update") || Objects.equals(addFlag,"insert")){
if(Objects.equals(messageDto.getIsOld(),"0")){
messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId()+"-doctor-"+messageDto.getCommitTime());
remark = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource());
}else if(Objects.equals(messageDto.getIsOld(),"1")){
ArchiveDetail archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId());
if(archiveDetail == null && !Objects.equals(addFlag,"insert")){
remark = messageDto.getSubType()+"没有生成对应的文件不能"+addFlag;
}else{
if(Objects.equals(addFlag,"delete")){
if(!archiveDetailService.delete(archiveDetail.getId())){
remark = messageDto.getSubType()+"删除失败!";
}else{
remark = "ok";
}
}
}
}else{
remark = "数据有问题";
}
}else{
remark = "标识不包括insert/update/delete";
}
}else{
messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收");
remark = "该病历已"+archiveMaster.getArchiveState()+",不再接收";
}
// 根据住院次数 患者id 查询是否存在记录 如果存在 那么就作废
// messageDto.setApplyId(messageDto.getInpNo() + "-" + messageDto.getVisitId() + "-doctor-" + messageDto.getCommitTime());
// if((archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档") ||
// archiveMaster.getArchiveState().equals("复审退回") )){
// String temp = archiveDetailService.updateAllFlag(messageDto.getApplyId(), messageDto.getSource());
// if (temp != null) {
// messageLog.setRemark(temp);
// } else {
// result = 1;
// flag = true;
// patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue);
// }
// messageLog.setRemark("该病历已"+archiveMaster.getArchiveState()+",不再接收");
// }
// else{
//
// }
}
xmlCreateTime = messageDto.getXmlCreateTime();
}else{
messageLog.setRemark("没有入院消息。。");
remark = "没有入院消息。。";
}
} else {
messageLog.setRemark("传过来的消息无法解析。。");
remark = "传过来的消息无法解析。。";
}
if(remark == null || remark.equals("ok")){
result = 1;
flag = true;
patientMainStr = JSON.toJSONString(new PatientMainDto(messageDto.getInpNo(), messageDto.getVisitId()), SerializerFeature.WriteMapNullValue);
}
// 4、判断是否成功 失败 的原因 我们插入报错 然后无法解析xml 传入参数为null
outContent = AnalysisService.getReturnResult(flag);
outContent = AnalysisService.getReturnResult(flag,remark);
// 更新日志表
long endTime = System.currentTimeMillis();
messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type);
messageLog.setValue(outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type,remark);
messageService.save(messageLog);
if (flag) {
if( remark == null && flag){
messageSubordinateService.save(new MessageSubordinate(messageLog.getId(), patientMainStr, JSON.toJSONString(messageLog)));
}
logger.info("-----------------------医生总时长:" + (endTime - startTime) + "-------------------------");
}catch (Exception e){
try {
logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]);
return AnalysisService.getReturnResult(false);
return AnalysisService.getReturnResult(false,e.toString());
} catch (Exception e1) {
logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e1,e1.getStackTrace()[0]);
}

@ -36,6 +36,14 @@ public interface ArchiveDetailRepository extends JpaRepository<ArchiveDetail, St
@Query(value = "UPDATE ArchiveDetail o set o.flag = 2 where o.applyId = ?1 and o.flag = 0 and o.source = ?2")
public Integer updateFlagByApplyId(String id, String source);
@Query("select count (o) from ArchiveDetail o where o.masterID = ?1 and o.assortID = ?2 and o.source=?3 and (o.applyId = ?4 and o.applyId is not null) and o.flag = 0")
Integer countByMasterIDAndAssortIDAndSourceAndApplyId(String masterId, String AssortID, String source, String applyId);
public ArchiveDetail findByMasterIDAndAssortIDAndSourceAndApplyIdAndFlag(String masterId, String AssortID, String source, String applyId,String flag);
@Transactional
@Modifying
@Query(value = "UPDATE ArchiveDetail o set o.flag = 3 where o.id = ?1 and o.flag = 0 ")
Integer updateFlagById(String id);
}

@ -20,7 +20,7 @@ public interface MessageRepository extends JpaRepository<MessageLog, Integer> {
@Query("select o from MessageLog o ")
public List<MessageLog> findAllHaha();
@Query(nativeQuery = true,value = " select id from archive_master where (inp_No = ?1 ) and (visit_id = ?2 ) ")
@Query(nativeQuery = true,value = " select id from archive_master where (inp_No = ?1 ) and (visit_id = ?2 ) and archiveState <> '作废' and is_valid = 0 ")
public String getArchiveMasterId(String inpNo,String visitId);

@ -15,11 +15,11 @@ import org.springframework.stereotype.Component;
@Component
public class AnalysisService {
public static String getReturnResult(boolean resultCode) throws Exception {
public static String getReturnResult(boolean resultCode,String content) throws Exception {
OutPara outPara = new OutPara();
if (!resultCode) {
outPara.setRESULT_CODE(false);
outPara.setRESULT_CONTENT("失败");
outPara.setRESULT_CONTENT(content);
} else {
outPara.setRESULT_CODE(true);
outPara.setRESULT_CONTENT("成功");

@ -1,5 +1,7 @@
package com.ann.demo.service;
import com.ann.demo.entity.filing.ArchiveDetail;
/**
* @Author: LeiJiaXin
* @Date: 2019/9/4 10:05
@ -9,4 +11,8 @@ public interface ArchiveDetailService {
// public String updateFlag(String applyId) throws Exception;
String updateAllFlag(String applyId, String source) throws Exception;
ArchiveDetail isExit(String id, String type, String source, String applyId);
boolean delete(String id);
}

@ -1,5 +1,6 @@
package com.ann.demo.service.impl;
import com.ann.demo.entity.filing.ArchiveDetail;
import com.ann.demo.entity.interfaceEntity.ArchiveMaster;
import com.ann.demo.repository.ArchiveDetailRepository;
import com.ann.demo.repository.ArchiveMasterRepository;
@ -69,4 +70,18 @@ public class ArchiveDetailServiceImpl implements ArchiveDetailService {
}
return null;
}
@Override
public ArchiveDetail isExit(String id, String type, String source, String applyId) {
if (archiveDetailRepository.countByMasterIDAndAssortIDAndSourceAndApplyId(id, type, source, applyId) > 0)
return archiveDetailRepository.findByMasterIDAndAssortIDAndSourceAndApplyIdAndFlag(id, type, source, applyId,"0");
return null;
}
@Override
public boolean delete(String id) {
if(archiveDetailRepository.updateFlagById(id) > 0)
return true;
return false;
}
}

@ -1,26 +1,26 @@
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
# url: jdbc:mysql://10.6.1.127:3306/test
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
# url: jdbc:mysql://localhost:3306/test
# # url: jdbc:mysql://10.6.1.127:3306/test
# username: root
# password: 123456
# driver-class-name: com.mysql.jdbc.Driver
# jpa:
# database: mysql
# show-sql: false
# hibernate:
# ddl-auto: update
# database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
# url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record
url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY
username: sa
password: docus@702
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
jpa:
database: mysql
database: sql_server
show-sql: false
hibernate:
ddl-auto: update
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
# url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record
# url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY
# username: sa
# password: docus@702
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# jpa:
# database: sql_server
# show-sql: false
# hibernate:
# dialect: org.hibernate.dialect.SQLServer2008Dialect
dialect: org.hibernate.dialect.SQLServer2008Dialect
hikari:
#是否为只读数据库
read-only: false

Loading…
Cancel
Save