use of net.ihe.gazelle.hl7v3.prpain201309UV02.PRPAIN201309UV02QUQIMT021001UV01ControlActProcess in project ipf by oehf.
the class PixV3QueryRequestTransformer method toPrpa.
/**
* Transforms a simplified query into the full PRPA model.
*
* @param simpleQuery The simplified query to transform.
* @return the PRPA model query or {@code null} if the input was {@code null}.
*/
public PRPAIN201309UV02Type toPrpa(final PixV3QueryRequest simpleQuery) {
if (simpleQuery == null) {
return null;
}
// Prepare query with fixed values
final PRPAIN201309UV02Type query = new PRPAIN201309UV02Type();
query.setITSVersion("XML_1.0");
query.setInteractionId(new II("2.16.840.1.113883.1.6", "PRPA_IN201309UV02"));
query.setProcessingCode(new CS("P", null, null));
query.setProcessingModeCode(new CS("T", null, null));
query.setAcceptAckCode(new CS("AL", null, null));
final PRPAIN201309UV02QUQIMT021001UV01ControlActProcess controlActProcess = new PRPAIN201309UV02QUQIMT021001UV01ControlActProcess();
controlActProcess.setClassCode(ActClassControlAct.CACT);
controlActProcess.setMoodCode(XActMoodIntentEvent.EVN);
controlActProcess.setCode(new CD("PRPA_TE201309UV02", null, null));
query.setControlActProcess(controlActProcess);
final PRPAMT201307UV02QueryByParameter queryByParameter = new PRPAMT201307UV02QueryByParameter();
queryByParameter.setStatusCode(new CS("new", null, null));
queryByParameter.setResponsePriorityCode(new CS("I", null, null));
queryByParameter.setParameterList(new PRPAMT201307UV02ParameterList());
controlActProcess.setQueryByParameter(queryByParameter);
// Fill query with given data
query.setCreationTime(new TS());
query.getCreationTime().setValue(HL7DTM.toSimpleString(simpleQuery.getCreationTime()));
query.setId(simpleQuery.getMessageId());
query.setReceiver(List.of(this.toReceiver(simpleQuery.getReceiver())));
query.setSender(this.toSender(simpleQuery.getSender()));
queryByParameter.setQueryId(simpleQuery.getQueryId());
final PRPAMT201307UV02PatientIdentifier patientIdentifier = new PRPAMT201307UV02PatientIdentifier();
patientIdentifier.setValue(List.of(simpleQuery.getQueryPatientId()));
patientIdentifier.setSemanticsText(new ST());
patientIdentifier.getSemanticsText().mixed = List.of("Patient.id");
queryByParameter.getParameterList().setPatientIdentifier(List.of(patientIdentifier));
for (final String dataSourceOid : simpleQuery.getDataSourceOids()) {
final PRPAMT201307UV02DataSource dataSource = new PRPAMT201307UV02DataSource();
dataSource.setValue(List.of(new II(dataSourceOid, null)));
dataSource.setSemanticsText(new ST());
dataSource.getSemanticsText().mixed = List.of("DataSource.id");
queryByParameter.getParameterList().getDataSource().add(dataSource);
}
return query;
}
use of net.ihe.gazelle.hl7v3.prpain201309UV02.PRPAIN201309UV02QUQIMT021001UV01ControlActProcess in project MobileAccessGateway by i4mi.
the class Iti83RequestConverter method iti83ToIti45Converter.
public String iti83ToIti45Converter(Parameters parameters) throws JAXBException {
List<Type> targetSystemList = (List<Type>) parameters.getParameters("targetSystem");
Identifier sourceIdentifier = (Identifier) parameters.getParameter("sourceIdentifier");
PRPAIN201309UV02Type resultMsg = new PRPAIN201309UV02Type();
resultMsg.setITSVersion("XML_1.0");
// String UUID.randomUUID().toString();
resultMsg.setId(new II(config.getPixQueryOid(), uniqueId()));
// Now
resultMsg.setCreationTime(new TS(Timestamp.now().toHL7()));
resultMsg.setProcessingCode(new CS("T", null, null));
resultMsg.setProcessingModeCode(new CS("T", null, null));
resultMsg.setInteractionId(new II("2.16.840.1.113883.1.18", "PRPA_IN201309UV02"));
resultMsg.setAcceptAckCode(new CS("AL", null, null));
MCCIMT000100UV01Receiver receiver = new MCCIMT000100UV01Receiver();
resultMsg.addReceiver(receiver);
receiver.setTypeCode(CommunicationFunctionType.RCV);
MCCIMT000100UV01Device receiverDevice = new MCCIMT000100UV01Device();
receiver.setDevice(receiverDevice);
receiverDevice.setClassCode(EntityClassDevice.DEV);
receiverDevice.setDeterminerCode(EntityDeterminer.INSTANCE);
receiverDevice.setId(Collections.singletonList(new II(config.getPixReceiverOid(), null)));
MCCIMT000100UV01Sender sender = new MCCIMT000100UV01Sender();
resultMsg.setSender(sender);
sender.setTypeCode(CommunicationFunctionType.SND);
MCCIMT000100UV01Device senderDevice = new MCCIMT000100UV01Device();
sender.setDevice(senderDevice);
senderDevice.setClassCode(EntityClassDevice.DEV);
senderDevice.setDeterminerCode(EntityDeterminer.INSTANCE);
senderDevice.setId(Collections.singletonList(new II(config.getPixMySenderOid(), null)));
PRPAIN201309UV02QUQIMT021001UV01ControlActProcess controlActProcess = new PRPAIN201309UV02QUQIMT021001UV01ControlActProcess();
resultMsg.setControlActProcess(controlActProcess);
controlActProcess.setClassCode(ActClassControlAct.CACT);
controlActProcess.setMoodCode(XActMoodIntentEvent.EVN);
controlActProcess.setCode(new CD("PRPA_TE201309UV02", "2.16.840.1.113883.1.18", null));
PRPAMT201307UV02QueryByParameter queryByParameter = new PRPAMT201307UV02QueryByParameter();
controlActProcess.setQueryByParameter(queryByParameter);
queryByParameter.setQueryId(new II(config.getPixQueryOid(), uniqueId()));
queryByParameter.setStatusCode(new CS("new", null, null));
queryByParameter.setResponsePriorityCode(new CS("I", null, null));
PRPAMT201307UV02ParameterList parameterList = new PRPAMT201307UV02ParameterList();
queryByParameter.setParameterList(parameterList);
PRPAMT201307UV02PatientIdentifier patientIdentifier = new PRPAMT201307UV02PatientIdentifier();
parameterList.addPatientIdentifier(patientIdentifier);
String system = getScheme(sourceIdentifier.getSystem());
patientIdentifier.setValue(Collections.singletonList(new II(system, sourceIdentifier.getValue())));
patientIdentifier.setSemanticsText(ST("Patient.id"));
if (targetSystemList != null && (targetSystemList.size() > 0)) {
for (Type targetSystemType : targetSystemList) {
UriType targetSystem = (UriType) targetSystemType;
String sourceSystem = getScheme(targetSystem.getValue());
PRPAMT201307UV02DataSource dataSource = new PRPAMT201307UV02DataSource();
parameterList.addDataSource(dataSource);
dataSource.setValue(Collections.singletonList(new II(sourceSystem, null, null)));
dataSource.setSemanticsText(ST("DataSource.id"));
}
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
log.debug("PRE CONVERT");
HL7V3Transformer.marshallMessage(PRPAIN201309UV02Type.class, out, resultMsg);
log.debug("POST CONVERT");
String outArray = new String(out.toByteArray());
log.debug(outArray);
return outArray;
}
use of net.ihe.gazelle.hl7v3.prpain201309UV02.PRPAIN201309UV02QUQIMT021001UV01ControlActProcess in project ipf by oehf.
the class PixV3QueryRequestTransformer method fromPrpa.
/**
* Transforms a full PRPA query into the simplified model. Data loss can occur, as the simplified model is not
* complete.
*
* @param query The full PRPA query to transform.
* @return the simplified query or {@code null} if the input was {@code null}.
*/
public PixV3QueryRequest fromPrpa(final PRPAIN201309UV02Type query) {
if (query == null) {
return null;
}
final PixV3QueryRequest simpleQuery = new PixV3QueryRequest();
simpleQuery.setMessageId(query.getId());
simpleQuery.setSender(this.fromSender(query.getSender()));
if (!query.getReceiver().isEmpty()) {
simpleQuery.setReceiver(this.fromReceiver(query.getReceiver().get(0)));
}
simpleQuery.setCreationTime(Optional.ofNullable(query.getCreationTime()).map(TS::getValue).map(value -> {
try {
return HL7DTM.toZonedDateTime(value);
} catch (final DataTypeException e) {
return null;
}
}).orElse(null));
if (query.getControlActProcess() == null) {
return simpleQuery;
}
final PRPAIN201309UV02QUQIMT021001UV01ControlActProcess controlActProcess = query.getControlActProcess();
if (controlActProcess.getQueryByParameter() == null) {
return simpleQuery;
}
final PRPAMT201307UV02QueryByParameter queryByParameter = controlActProcess.getQueryByParameter();
simpleQuery.setQueryId(queryByParameter.getQueryId());
if (queryByParameter.getParameterList() == null) {
return simpleQuery;
}
final PRPAMT201307UV02ParameterList parameterList = queryByParameter.getParameterList();
if (!parameterList.getPatientIdentifier().isEmpty()) {
final List<II> patientIds = parameterList.getPatientIdentifier().get(0).getValue();
if (!patientIds.isEmpty()) {
simpleQuery.setQueryPatientId(patientIds.get(0));
}
}
for (final PRPAMT201307UV02DataSource dataSource : parameterList.getDataSource()) {
if (!dataSource.getValue().isEmpty()) {
simpleQuery.getDataSourceOids().add(dataSource.getValue().get(0).getRoot());
}
}
return simpleQuery;
}
Aggregations