代码优化

3.2.4.44
宇宙皮皮娃 2 years ago
parent 01bbcd0d82
commit b7324ef6a0

@ -3,7 +3,7 @@ package com.docus.server;
import com.docus.server.collection.webservice.IDeptServer;
import com.docus.server.collection.webservice.IUserServer;
import com.docus.server.collection.webservice.ReceiveServer;
import com.docus.server.collection.webservice.TBasicService;
import com.docus.server.collection.webservice.BasicService;
import org.apache.cxf.jaxws.EndpointImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Qualifier;
@ -23,7 +23,7 @@ public class CxfConfig {
private final IDeptServer deptServer;
private final TBasicService tBasicService;
private final BasicService tBasicService;
private final ReceiveServer receiveServer;
/**
* ServletbeanNamedispatcherServlet

@ -0,0 +1,8 @@
package com.docus.server.collection.service;
import com.docus.server.collection.dto.TBasicDto;
public interface ITBasicService {
public void setTBasic(TBasicDto dto) throws Exception;
}

@ -0,0 +1,69 @@
package com.docus.server.collection.service.impl;
import cn.hutool.core.util.NumberUtil;
import com.docus.core.util.DateUtil;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.collection.dto.TBasicDto;
import com.docus.server.collection.entity.TBasic;
import com.docus.server.collection.mapper.TBasicMapper;
import com.docus.server.collection.service.ITBasicService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
* @BelongsProject: docus-webservice-sdry
* @BelongsPackage: com.docus.server.collection.service.impl
* @Author: chierhao
* @CreateTime: 2023-02-28 08:37
* @Description: TODO
* @Version: 1.0
*/
@Service
public class TBasicServiceImpl implements ITBasicService {
@Resource
private TBasicMapper tBasicMapper;
@Resource
private IdService idService;
@Override
public void setTBasic(TBasicDto tBasicDto) throws Exception {
//判断jzh是否重复
Integer num = tBasicMapper.selectOne(tBasicDto.getJzh());
if (num>0) {
throw new Exception("记帐号已存在");
}
long patientId = idService.getDateSeq();
//数据类型转化,格式处理
Date admissDate = Func.parseDate(tBasicDto.getAdmissDate(), DateUtil.PATTERN_DATETIME_MINI);
Date disDate = Func.parseDate(tBasicDto.getDisDate(), DateUtil.PATTERN_DATETIME_MINI);
String admissTimesStr = tBasicDto.getAdmissTimes();
Integer admissTimes=null;
if(NumberUtil.isInteger(admissTimesStr)){
admissTimes=Integer.parseInt(admissTimesStr);
}
//组装数据
TBasic tBasic=new TBasic();
tBasic.setPatientId(patientId);
tBasic.setJzh(tBasicDto.getJzh());
tBasic.setInpatientNo(tBasicDto.getInpatientNo());
tBasic.setAdmissTimes(admissTimes);
tBasic.setName(tBasicDto.getName());
tBasic.setAdmissDate(admissDate);
tBasic.setDisDate(disDate);
tBasic.setAdmissDeptName(tBasicDto.getAdmissDeptName());
tBasic.setDisDeptName(tBasicDto.getDisDeptName());
tBasic.setAttendingName(tBasicDto.getAttendingName());
//持久化
tBasicMapper.insert(tBasic);
}
}

@ -26,7 +26,7 @@ public class Result {
String message="成功";
return "<MCCI_IN000002UV01 xmlns=\"urn:hl7-org:v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ITSVersion=\"XML_1.0\" xsi:schemaLocation=\"urn:hl7-org:v3 file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI _IN000002UV01.xsd\"> \n" +
" <id extension=\"@12122\"/> \n" +
" <id extension=\""+Func.randomUUID()+"\"/> \n" +
" <creationTime value=\""+createTime+"\"/> \n" +
" <interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/> \n" +
" <processingCode code=\"P\"/> \n" +
@ -63,7 +63,7 @@ public class Result {
return "<MCCI_IN000002UV01 xmlns=\"urn:hl7-org:v3\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ITSVersion=\"XML_1.0\" xsi:schemaLocation=\"urn:hl7-org:v3 file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI_IN000002UV01.xsd\"> \n" +
" <id extension=\"@12122\"/> \n" +
" <id extension=\""+Func.randomUUID()+"\"/> \n" +
" <creationTime value=\""+createTime+"\"/> \n" +
" <interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\" displayable=\"true\"/> \n" +
" <processingCode code=\"P\"/> \n" +

@ -1,6 +1,6 @@
package com.docus.server.collection.webservice;
public interface TBasicService {
public interface BasicService {
public String setTBasic(String str);
}

@ -0,0 +1,145 @@
package com.docus.server.collection.webservice.impl;
import com.docus.core.util.Func;
import com.docus.server.collection.dto.TBasicDto;
import com.docus.server.collection.service.ITBasicService;
import com.docus.server.collection.util.Result;
import com.docus.server.collection.util.XmlUtil;
import com.docus.server.collection.webservice.BasicService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.w3c.dom.Node;
import javax.annotation.Resource;
import javax.jws.WebService;
/**
* @BelongsProject: docus-webservice-sdry
* @BelongsPackage: com.docus.server.collection.webservice
* @Author: chierhao
* @CreateTime: 2023-02-25 14:52
* @Description: TODO
* @Version: 1.0
*/
@Service
@WebService
@Slf4j
public class BasicServiceImpl implements BasicService {
@Resource
private ITBasicService tBasicService;
@Override
public String setTBasic(String body) {
if (Func.isEmpty(body)) {
return Result.failed(null,"参数为空",null,null);
}
//解析xml
TBasicDto tBasicDto = null;
try {
tBasicDto=getTBasicDto(body);
//持久化
tBasicService.setTBasic(tBasicDto);
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(), e);
return Result.failed(tBasicDto.getSerialId(),e.getMessage(),tBasicDto.getReceive(),tBasicDto.getSend());
}
return Result.success(tBasicDto.getSerialId(),tBasicDto.getReceive(),tBasicDto.getSend());
}
public TBasicDto getTBasicDto(String str) {
XmlUtil xml=XmlUtil.of(str);
//id-消息流水号
String serialId=null;
Node serialIdNode = xml.getNode("/PRPA_HIP0032/id/@extension");
if(Func.isNotEmpty(serialIdNode)){
serialId=serialIdNode.getNodeValue();
}
//接受方
String receive=null;
Node receiveNode = xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension");
if(Func.isNotEmpty(receiveNode)){
receive=receiveNode.getNodeValue();
}
//发送方
String send=null;
Node sendNode = xml.getNode("/PRPA_HIP0032/sender/device/id/item/@extension");
if(Func.isNotEmpty(sendNode)){
send=sendNode.getNodeValue();
}
//住院流水号
String jzh=null;
Node jzhNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/item/@extension");
if(Func.isNotEmpty(jzhNode)){
jzh=jzhNode.getNodeValue();
}
//住院号标识
String inpatientNo=null;
Node inpatientNoNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/id/item/@extension");
if(Func.isNotEmpty(inpatientNoNode)){
inpatientNo=inpatientNoNode.getNodeValue();
}
//住院次数[]
String admissTimes=null;
Node admissTimesNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='次']/@value");
if(Func.isNotEmpty(admissTimesNode)){
admissTimes=admissTimesNode.getNodeValue();
}
//姓名
String name=null;
Node nameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/name/item/part/@value");
if(Func.isNotEmpty(nameNode)){
name=nameNode.getNodeValue();
}
//入院日期时间
String admissDate=null;
Node admissDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/low/@value");
if(Func.isNotEmpty(admissDateNode)){
admissDate=admissDateNode.getNodeValue();
}
//出院日期时间
String disDate=null;
Node disDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/high/@value");
if(Func.isNotEmpty(disDateNode)){
disDate=disDateNode.getNodeValue();
}
//入院诊断科室名称[]
String admissDeptName=null;
Node admissDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='入院诊断']/section/entry[@displayName='入院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name");
if(Func.isNotEmpty(admissDeptNameNode)){
admissDeptNameNode.getTextContent();
}
//出院诊断科室名称[]
String disDeptName=null;
Node disDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name");
if(Func.isNotEmpty(disDeptNameNode)){
disDeptName=disDeptNameNode.getTextContent();
}
//主治医师[]
String attendingName=null;
Node attendingNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/authenticator[@displayName='主治医师']/assignedEntity/assignedPerson/name");
if(Func.isNotEmpty(attendingNameNode)){
attendingName=attendingNameNode.getTextContent();
}
//设置dto
TBasicDto dto=new TBasicDto();
dto.setSerialId(serialId);
dto.setSend(send);
dto.setReceive(receive);
dto.setInpatientNo(inpatientNo);
dto.setName(name);
dto.setJzh(jzh);
dto.setAdmissDeptName(admissDeptName);
dto.setDisDeptName(disDeptName);
dto.setAdmissDate(admissDate);
dto.setDisDate(disDate);
dto.setAdmissTimes(admissTimes);
dto.setAttendingName(attendingName);
return dto;
}
}

@ -3,7 +3,7 @@ package com.docus.server.collection.webservice.impl;
import com.docus.server.collection.webservice.IDeptServer;
import com.docus.server.collection.webservice.IUserServer;
import com.docus.server.collection.webservice.ReceiveServer;
import com.docus.server.collection.webservice.TBasicService;
import com.docus.server.collection.webservice.BasicService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -27,7 +27,7 @@ public class ReceiveServerImpl implements ReceiveServer {
@Resource
private IDeptServer deptServer;
@Resource
private TBasicService tBasicService;
private BasicService basicService;
@Override
@ -37,7 +37,7 @@ public class ReceiveServerImpl implements ReceiveServer {
@Override
public String setTBasic(String str) {
return tBasicService.setTBasic(str);
return basicService.setTBasic(str);
}
@Override

@ -1,152 +0,0 @@
package com.docus.server.collection.webservice.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.docus.core.util.DateUtil;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.collection.dto.TBasicDto;
import com.docus.server.collection.entity.TBasic;
import com.docus.server.collection.mapper.TBasicMapper;
import com.docus.server.collection.util.Result;
import com.docus.server.collection.util.XmlUtil;
import com.docus.server.collection.webservice.TBasicService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.w3c.dom.Node;
import javax.annotation.Resource;
import javax.jws.WebService;
import java.util.Date;
import java.util.HashMap;
/**
* @BelongsProject: docus-webservice-sdry
* @BelongsPackage: com.docus.server.collection.webservice
* @Author: chierhao
* @CreateTime: 2023-02-25 14:52
* @Description: TODO
* @Version: 1.0
*/
@Service
@WebService
@Slf4j
public class TBasicServiceImpl implements TBasicService {
@Resource
private TBasicMapper tBasicMapper;
@Resource
private IdService idService;
@Override
public String setTBasic(String body) {
if (Func.isEmpty(body)) {
return Result.failed(null,"参数为空",null,null);
}
//解析xml
TBasicDto tBasicDto = null;
try {
tBasicDto=getTBasicDto(body);
//判断jzh是否重复
Integer num = tBasicMapper.selectOne(tBasicDto.getJzh());
if (num>0) {
return Result.failed(tBasicDto.getSerialId(),"记帐号已存在",tBasicDto.getReceive(),tBasicDto.getSend());
}
long patientId = idService.getDateSeq();
//组装数据
TBasic tBasic=new TBasic();
tBasic.setPatientId(patientId);
tBasic.setJzh(tBasicDto.getJzh());
tBasic.setInpatientNo(tBasicDto.getInpatientNo());
tBasic.setAdmissTimes(Integer.parseInt(tBasicDto.getAdmissTimes()));
tBasic.setName(tBasicDto.getName());
Date admissDate = Func.parseDate(tBasicDto.getAdmissDate(), DateUtil.PATTERN_DATETIME_MINI);
tBasic.setAdmissDate(admissDate);
Date disDate = Func.parseDate(tBasicDto.getDisDate(), DateUtil.PATTERN_DATETIME_MINI);
tBasic.setDisDate(disDate);
tBasic.setAdmissDeptName(tBasicDto.getAdmissDeptName());
tBasic.setDisDeptName(tBasicDto.getDisDeptName());
tBasic.setAttendingName(tBasicDto.getAttendingName());
//持久化
tBasicMapper.insert(tBasic);
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(), e);
}
return Result.success(tBasicDto.getSerialId(),tBasicDto.getReceive(),tBasicDto.getSend());
}
public TBasicDto getTBasicDto(String str) {
TBasicDto dto=new TBasicDto();
XmlUtil xml=XmlUtil.of(str);
Node node=null;
//id-消息流水号
node = xml.getNode("/PRPA_HIP0032/id/@extension");
if(Func.isNotEmpty(node)){
dto.setSerialId(node.getNodeValue());
}
//接受方
node = xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension");
if(Func.isNotEmpty(node)){
dto.setReceive(node.getNodeValue());
}
//发送方
node = xml.getNode("/PRPA_HIP0032/sender/device/id/item/@extension");
if(Func.isNotEmpty(node)){
dto.setSend(node.getNodeValue());
}
//住院流水号
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/item/@extension");
if(Func.isNotEmpty(node)){
dto.setJzh(node.getNodeValue());
}
//住院号标识
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/id/item/@extension");
if(Func.isNotEmpty(node)){
dto.setInpatientNo( node.getNodeValue());
}
//住院次数[]
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='次']/@value");
if(Func.isNotEmpty(node)){
dto.setAdmissTimes(node.getNodeValue());
}
//姓名
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/name/item/part/@value");
if(Func.isNotEmpty(node)){
dto.setName(node.getNodeValue());
}
//入院日期时间
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/low/@value");
if(Func.isNotEmpty(node)){
dto.setAdmissDate(node.getNodeValue());
}
//出院日期时间
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/high/@value");
if(Func.isNotEmpty(node)){
dto.setDisDate(node.getNodeValue());
}
//入院诊断科室名称[]
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='入院诊断']/section/entry[@displayName='入院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name");
if(Func.isNotEmpty(node)){
dto.setAdmissDeptName(node.getTextContent());
}
//出院诊断科室名称[]
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name");
if(Func.isNotEmpty(node)){
dto.setDisDeptName(node.getTextContent());
}
//主治医师[]
node = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/authenticator[@displayName='主治医师']/assignedEntity/assignedPerson/name");
if(Func.isNotEmpty(node)){
dto.setAttendingName(node.getTextContent());
}
return dto;
}
}
Loading…
Cancel
Save