1、新增手动处理有问题医嘱接口

2、新增接收入院消息,默认isScanning为未扫描
master
leijx 5 years ago
parent d77d122f42
commit f6af9a6750

@ -42,6 +42,7 @@ public class TestController {
Objects.equals(interfaceForm.getInterfaceName(), "BloodTransfusionUrl") ||
Objects.equals(interfaceForm.getInterfaceName(), InterfaceName.DOCTOR_DATA) ||
Objects.equals(interfaceForm.getInterfaceName(), InterfaceName.NURSE_DATA) ||
Objects.equals(interfaceForm.getInterfaceName(), InterfaceName.HANDLE_MEDICAL_ADVICE) ||
Objects.equals(interfaceForm.getInterfaceName(), InterfaceName.PARAMETER_EXAMAPPLYSTATECHANGE)) {
objects = client.invoke(interfaceForm.getInterfaceName(), interfaceForm.getContent());
} else {

@ -51,6 +51,11 @@ public class AliasName {
// 出院召回
public static final String PARAMETER_DISCHARGE_BACK = "8";
// 手动处理有问题的医嘱
public static final String HANDLE_MEDICAL_ADVICE = "38";
// 手麻
// public static final String HANDNUMBNESS_REPORT = "117";

@ -144,6 +144,6 @@ public class InterfaceName {
//20200909 新增出院召回
public static final String PARAMETER_DISCHARGE_BACK = "CalPatientOutRequest";
public static final String HANDLE_MEDICAL_ADVICE = "HandleMedicalAdvice";
}

@ -124,6 +124,13 @@ public class WebserviceId {
*/
public static final String PARAMETER_DISCHARGE_BACK = "22";
/**
* 20200909
*/
public static final String HANDLE_MEDICAL_ADVICE = "23";
}

@ -151,6 +151,8 @@ public class ArchiveMaster {
//2020-12-28 新增床号
private String bedNumber;
private String isScanning = "0";
}

@ -42,6 +42,8 @@ public class InterfaceHisCache {
//2020-7-6 新增修改时间
private Date updateTime = new Date();
private String createState;
public InterfaceHisCache(String inpNo, String visitId, String type) {
this.inpNo = inpNo;

@ -11,4 +11,6 @@ public interface HomepageDictionary {
@WebMethod
String HIPMessageServer(@WebParam(name = "action") String action, @WebParam(name = "message") String message);
@WebMethod
String HandleMedicalAdvice( @WebParam(name = "message") String message);
}

@ -1,16 +1,23 @@
package com.ann.demo.interfaces.impl;
import com.alibaba.fastjson.JSON;
import com.ann.demo.entity.constant.AliasName;
import com.ann.demo.entity.constant.InterfaceName;
import com.ann.demo.entity.constant.WebserviceId;
import com.ann.demo.entity.filing.MessageSubordinate;
import com.ann.demo.entity.filing.dto.MessageDto;
import com.ann.demo.entity.interfaceEntity.*;
import com.ann.demo.interfaces.HomepageDictionary;
import com.ann.demo.service.*;
import com.ann.demo.service.impl.AnalysisService;
import com.ann.demo.utils.XMLUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import javax.jws.WebService;
import java.util.Date;
import java.util.Objects;
/**
* @Author: LeiJiaXin
@ -28,6 +35,20 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
@Autowired
private AnalysisService analysisService;
@Autowired
private MessageService messageService;
@Autowired
private MessageSubordinateService messageSubordinateService;
@Autowired
private ArchiveMasterService archiveMasterService;
@Autowired
private InterfaceHisCacheService interfaceHisCacheService;
@Override
public String HIPMessageServer(String action, String message) {
String result = "";
@ -75,6 +96,59 @@ public class HomepageDictionaryImpl implements HomepageDictionary {
return result;
}
@Override
public String HandleMedicalAdvice(String xmlStr) { // 手动处理有问题医嘱
String outContent = "失败";
String remark = null;
try {
// 1、定义变量
boolean flag = false;
Integer result = 0;
String type = "";
String patientMainStr = null,archiveMasterId = null;
long startTime = System.currentTimeMillis();
Date xmlCreateTime = null;
MessageLog messageLog = new MessageLog(xmlStr, InterfaceName.HANDLE_MEDICAL_ADVICE, new Date(), WebserviceId.HANDLE_MEDICAL_ADVICE);
messageService.save(messageLog);
// 2、 解析
MessageDto messageDto = XMLUtils.xpathToBean(xmlStr, ArchiveMaster.class, InterfaceName.HANDLE_MEDICAL_ADVICE);
if (messageDto != null) {
archiveMasterId = messageService.getArchiveMasterId(messageDto.getInpNo(), messageDto.getVisitId());
if(archiveMasterId != null){
remark = interfaceHisCacheService.handleMedicalAdvice(messageDto.getInpNo(), messageDto.getVisitId(),messageDto.getType(),messageDto.getXmlCreateTime());
if (remark == null) {
result = 1;
flag = true;
}
}else{
remark = "没有入院消息";
}
xmlCreateTime = messageDto.getXmlCreateTime();
type = AliasName.HANDLE_MEDICAL_ADVICE;
} else {
remark = "传过来的消息无法解析";
}
outContent = AnalysisService.getReturnResult(flag,remark);
// 更新日志表
long endTime = System.currentTimeMillis();
messageLog.setValue(archiveMasterId,outContent, result, messageDto == null ? "" : JSON.toJSONString(messageDto), xmlCreateTime, (endTime - startTime), new Date(), type,remark);
messageService.save(messageLog);
if (flag) {
messageSubordinateService.save(new MessageSubordinate(messageLog.getId(), patientMainStr, JSON.toJSONString(messageLog)));
}
}catch (Exception e){
try {
logger.error("当前参数:{},报错信息:{}","HandleMedicalAdvice",e.getMessage());
return AnalysisService.getReturnResult(false,remark);
} catch (Exception ex) {
logger.error("当前参数:{},报错信息:{}","HandleMedicalAdvice",ex.getMessage());
}
}
return outContent;
}
}

@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import javax.transaction.Transactional;
import java.util.Date;
import java.util.List;
public interface InterfaceHisCacheRepository extends JpaRepository<InterfaceHisCache,String> {
@ -19,4 +20,9 @@ public interface InterfaceHisCacheRepository extends JpaRepository<InterfaceHisC
@Modifying
@Query(value = "update InterfaceHisCache o set o.state = ?1 where o.id = ?2 and o.state = 0 and o.type = ?3 ")
public Integer updateStateById(String state, String id, String type);
@Transactional
@Modifying
@Query(value = "update InterfaceHisCache o set o.state = 0,o.pdfPath = null,o.createState = null,o.updateTime = ?4 where o.inpNo = ?1 and o.visitId = ?2 and o.state = 1 and o.type = ?3 ")
public Integer handleMedicalAdvice(String inpNo, String visitId, String type, Date updateTime);
}

@ -41,4 +41,6 @@ public interface ArchiveMasterService {
boolean updateArchiveMasterBydoctorInCharge(ArchiveMaster archiveMaster);
boolean updateArchiveMasterArchiveState(ArchiveMaster archiveMaster);
}

@ -4,6 +4,7 @@ package com.ann.demo.service;
import com.ann.demo.entity.interfaceEntity.InterfaceHisCache;
import java.util.Date;
import java.util.List;
public interface InterfaceHisCacheService {
@ -18,5 +19,5 @@ public interface InterfaceHisCacheService {
InterfaceHisCache findInterfaceHisCache(String inpNo, String visitId, String type);
String handleMedicalAdvice(String inp_no, String visitId, String type, Date updateTime);
}

@ -1,9 +1,13 @@
package com.ann.demo.service.impl;
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.constant.WebserviceId;
import com.ann.demo.entity.filing.MessageSubordinate;
import com.ann.demo.entity.filing.dto.MessageDto;
import com.ann.demo.entity.filing.dto.PatientMainDto;
import com.ann.demo.entity.interfaceEntity.ArchiveMaster;
import com.ann.demo.entity.interfaceEntity.ExamApply;
import com.ann.demo.entity.interfaceEntity.MessageLog;
@ -30,6 +34,7 @@ import java.util.Objects;
@Component
public class AnalysisService {
@Autowired
MessageService messageService;
@ -152,4 +157,16 @@ public class AnalysisService {
return textContent;
}
public static String getReturnResult(boolean resultCode,String remark) throws Exception{
OutPara outPara = new OutPara();
if (resultCode) {
outPara.setRESULT_CODE(true);
outPara.setRESULT_CONTENT("成功");
} else {
outPara.setRESULT_CODE(false);
outPara.setRESULT_CONTENT(remark);
}
return XMLUtils.generateXmlStr(outPara);
}
}

@ -10,6 +10,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @Author: LeiJiaXin
@ -48,6 +50,7 @@ public class ArchiveMasterServiceImpl implements ArchiveMasterService {
archiveMaster.setSex(sex);
}
archiveMaster.setIsScaned("0");
archiveMaster.setIsScanning("0");
//2020-8-17 如果不等于null那么就是入院信息更新操作
if(archiveMaster.getId() != null ){
@ -193,5 +196,6 @@ public class ArchiveMasterServiceImpl implements ArchiveMasterService {
}
return false;
}
}

@ -6,6 +6,7 @@ import com.ann.demo.service.InterfaceHisCacheService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
@ -37,4 +38,12 @@ public class InterfaceHisCacheServiceImpl implements InterfaceHisCacheService {
return interfaceHisCacheRepository.findByInpNoAndVisitIdAndStateAndType(inpNo,visitId,"0",type);
}
@Override
public String handleMedicalAdvice(String inp_no, String visitId, String type, Date updateTime) {
if(interfaceHisCacheRepository.handleMedicalAdvice(inp_no,visitId,type, updateTime) > 0)
return null;
return "更新状态失败";
}
}

@ -83,6 +83,12 @@ public class XMLUtils {
@Value("${file.dischargeBackPath}")
private String dischargeBackPathTemp;
// 手动处理有问题医嘱
public static String handleMedicalAdvicePath;
@Value("${file.handleMedicalAdvicePath}")
private String handleMedicalAdvicePathTemp;
@PostConstruct
public void init() {
@ -94,6 +100,7 @@ public class XMLUtils {
dieMedicalAdvicePath = dieMedicalAdvicePathTemp;
bedManagerPath = bedManagerPathTemp;
dischargeBackPath = dischargeBackPathTemp;
handleMedicalAdvicePath = handleMedicalAdvicePathTemp;
}
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
@ -251,6 +258,9 @@ public class XMLUtils {
case InterfaceName.PARAMETER_DISCHARGE_BACK: // 同步出院召回
messageDto = new MessageDto(ArchiveMaster.class.getName(), new ArchiveMaster(), AliasName.PARAMETER_DISCHARGE_BACK, dischargeBackPath, source);
break;
case InterfaceName.HANDLE_MEDICAL_ADVICE: // 手动处理有问题医嘱
messageDto = new MessageDto(ArchiveMaster.class.getName(), new ArchiveMaster(), AliasName.HANDLE_MEDICAL_ADVICE, handleMedicalAdvicePath, source);
break;
}
return messageDto;
}
@ -266,4 +276,21 @@ public class XMLUtils {
return null;
}
/**
* xml
*/
public static String generateXmlStr(OutPara outPara) throws Exception{
Field[] fields = outPara.getClass().getDeclaredFields();
// 创建XML
Document document = DocumentHelper.createDocument();
Element response = document.addElement("RESPONSE");
for (Field field : fields) {
field.setAccessible(true);
response
.addElement(field.getName())
.addText(field.get(outPara).toString());
}
return document.getRootElement().asXML();
}
}

@ -55,3 +55,4 @@ file:
dieMedicalAdvicePath: D:\\1\dieMedicalAdvice.properties
bedManagerPath: D:\\1\bedManager.properties
dischargeBackPath: D:\\1\dischargeBack.properties
handleMedicalAdvicePath: D:\\1\handleMedicalAdvice.properties

@ -32,6 +32,7 @@
<option value="NurseData">NurseData</option>
<option value="DoctorData">DoctorData</option>
<option value="CheckExamApplyIsOpen">CheckExamApplyIsOpen</option>
<option value="HandleMedicalAdvice">HandleMedicalAdvice</option>
</select>
</div>
</div>

Loading…
Cancel
Save