dept,basic

segment2.0
beeajax 2 years ago
parent 2caaf31014
commit f97417812d

@ -15,6 +15,11 @@ public class WsResultImpl implements IWsResult {
@Override @Override
public String fail(String message) { public String fail(String message) {
return null; return message;
}
@Override
public String ok(String message) {
return message;
} }
} }

@ -1,12 +1,17 @@
package com.docus.server.collect.medical.record; package com.docus.server.collect.medical.record;
import com.docus.core.util.DateUtil;
import com.docus.core.util.Func;
import com.docus.core.util.XmlUtil; import com.docus.core.util.XmlUtil;
import com.docus.server.collect.service.IParseService; import com.docus.server.collect.service.IParseService;
import com.docus.server.record.pojo.entity.MedicalRecord; import com.docus.server.record.pojo.entity.MedicalRecord;
import com.docus.server.sys.common.pojo.dto.DeptDTO; import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.tool.IdUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import java.util.Date;
@Service @Service
public class ParseServiceImpl implements IParseService { public class ParseServiceImpl implements IParseService {
@ -45,4 +50,78 @@ public class ParseServiceImpl implements IParseService {
deptDto.setAuthorName(authorNameNode.getNodeValue()); deptDto.setAuthorName(authorNameNode.getNodeValue());
return deptDto; return deptDto;
} }
@Override
public String parseDeptOkXml(DeptDTO deptDTO) {
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
return "<MCCI_IN000002UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" +
"_IN000002UV01.xsd\">\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + deptDTO.getReceiver() + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AA\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + deptDTO.getMessageId() + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + "操作成功!" + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</MCCI_IN000002UV01>";
}
@Override
public String parseDeptFailXml(DeptDTO deptDto) {
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
return "<RCMR_IN000030UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" +
"_IN000030UV01.xsd\">\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"RCMR_IN000030UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + deptDto.getReceiver() + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AE\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + deptDto.getMessageId() + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + deptDto.getErrorMsg() + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n";
}
} }

@ -7,4 +7,8 @@ public interface IParseService {
MedicalRecord parseHandNumbness(String handNumbness); MedicalRecord parseHandNumbness(String handNumbness);
DeptDTO parseDeptXml(String deptXml); DeptDTO parseDeptXml(String deptXml);
String parseDeptOkXml(DeptDTO receiveUser);
String parseDeptFailXml(DeptDTO deptDto);
} }

@ -0,0 +1,19 @@
package com.docus.server.tool;
import lombok.Data;
import java.util.UUID;
import java.util.concurrent.ThreadLocalRandom;
@Data
public class IdUtil {
/**
* 8-4-4-4-12 UUID
* @return 8-4-4-4-12 UUID
*/
public static String standardUUID(){
ThreadLocalRandom random = ThreadLocalRandom.current();
return (new UUID(random.nextLong(), random.nextLong())).toString();
}
}

@ -8,4 +8,7 @@ public interface IWsResult {
String fail(String message); String fail(String message);
String ok(String message);
} }

@ -1,14 +1,20 @@
package com.docus.server.ws; package com.docus.server.ws;
import com.docus.core.util.Func;
import com.docus.infrastructure.core.exception.BaseException;
import com.docus.server.collect.service.CollectService; import com.docus.server.collect.service.CollectService;
import com.docus.server.collect.service.IParseService; import com.docus.server.collect.service.IParseService;
import com.docus.server.record.pojo.entity.MedicalRecord; import com.docus.server.record.pojo.entity.MedicalRecord;
import com.docus.server.record.service.IMedicalRecordService; import com.docus.server.record.service.IMedicalRecordService;
import com.docus.server.sys.common.pojo.dto.DeptDTO; import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Slf4j @Slf4j
@Component @Component
public class WsCollect { public class WsCollect {
@ -20,7 +26,12 @@ public class WsCollect {
private CollectService collectService; private CollectService collectService;
@Autowired @Autowired
private IWsResult wsResult; private IWsResult wsResult;
@Autowired
private IPowerDeptService powerDeptService;
@Autowired
private IWsResult wsResult;
@Autowired
private IWsResult wsResult;
//接收xml。并且下载病案。 //接收xml。并且下载病案。
public String receiveHandNumbness(String handNumbness) { public String receiveHandNumbness(String handNumbness) {
@ -48,4 +59,30 @@ public class WsCollect {
} }
public String deptModify(String receiveUser) {
log.info("新增/修改科室数据:{}", receiveUser);
DeptDTO deptDto = new DeptDTO();
try {
deptDto = parseService.parseDeptXml(receiveUser);
String operateType = deptDto.getOperateType();
String delType = "D";
// 判断操作类型
if (Func.isNotEmpty(operateType) && operateType.contains(delType)) {
powerDeptService.delDeptByDeptCode(deptDto.getDeptCode());
} else {
powerDeptService.saveOrUpdatePowerDept(deptDto);
}
return wsResult.ok(parseService.parseDeptOkXml(deptDto));
} catch (BaseException e) {
log.error(e.getMessage(), e);
deptDto.setErrorMsg(e.getMessage());
return wsResult.fail(parseService.parseDeptFailXml(deptDto));
} catch (Exception e) {
log.error(e.getMessage(), e);
deptDto.setErrorMsg("系统出错啦!");
return wsResult.fail(parseService.parseDeptFailXml(deptDto));
}
}
} }

@ -25,8 +25,8 @@ public class WebserviceServer implements IWebserviceServer {
} }
@Override @Override
public String deptModify(String receiveUser) { public String deptModify(String deptXml) {
return null; return wsCollect.deptModify(deptXml);
} }
@Override @Override

@ -47,6 +47,10 @@ public class DeptDTO {
*/ */
private String authorId; private String authorId;
/**
*
*/
private String errorMsg;
/** /**
* *
@ -65,16 +69,30 @@ public class DeptDTO {
/** /**
* *
*/ */
private Map<String, Object> params; public Param addParam(String key, Object obj) {
return new Param(key, obj);
}
public Object getParams(String key) { public Map<String, Object> param(String key, Object obj) {
return params != null ? params.get(key) : null; return new Param(key, obj).param();
} }
public void setParams(String key, Object value) { protected static final class Param {
if (this.params == null) {
this.params = new HashMap<>(); private Map<String, Object> params = new HashMap<String, Object>();
public Param(String key, Object value) {
addParam(key, value);
}
public Param addParam(String key, Object value) {
this.params.put(key, value);
return this;
}
public Map<String, Object> param() {
return this.params;
} }
this.params.put(key, value);
} }
} }

Loading…
Cancel
Save