Search in sources :

Example 1 with net.ihe.gazelle.hl7v3.mccimt000300UV01

use of net.ihe.gazelle.hl7v3.mccimt000300UV01 in project MobileAccessGateway by i4mi.

the class Iti93ResponseConverter method translateToFhir.

/**
 * translate ITI-44 response to ITI-93 response
 */
public Bundle translateToFhir(byte[] input, Map<String, Object> parameters) {
    try {
        // FIX for xmlns:xmlns
        String content = new String(input);
        content = content.replace("xmlns:xmlns", "xmlns:xxxxx");
        MCCIIN000002UV01Type msg = HL7V3Transformer.unmarshallMessage(MCCIIN000002UV01Type.class, new ByteArrayInputStream(content.getBytes()));
        Bundle responseBundle = new Bundle().setType(Bundle.BundleType.MESSAGE);
        Bundle requestBundle = (Bundle) parameters.get(Utils.KEPT_BODY);
        MessageHeader header = (MessageHeader) requestBundle.getEntryFirstRep().getResource();
        MessageSourceComponent source = new MessageSourceComponent();
        source.setEndpoint(config.getBaseurl());
        header.setSource(source);
        MessageHeaderResponseComponent response = new MessageHeaderResponseComponent();
        response.setCode(ResponseType.OK);
        for (net.ihe.gazelle.hl7v3.mccimt000200UV01.MCCIMT000200UV01Acknowledgement akk : msg.getAcknowledgement()) {
            CS code = akk.getTypeCode();
            if (!code.getCode().equals("AA") && !code.getCode().equals("CA")) {
                response.setCode(ResponseType.FATALERROR);
                OperationOutcome outcome = new OperationOutcome();
                response.setDetails((Reference) new Reference().setResource(outcome));
                for (MCCIMT000200UV01AcknowledgementDetail detail : akk.getAcknowledgementDetail()) {
                    OperationOutcomeIssueComponent issue = outcome.addIssue();
                    issue.setDetails(new CodeableConcept().setText(toText(detail.getText())).addCoding(transform(detail.getCode())));
                }
            }
        }
        response.setIdentifier(header.getId());
        header.setId((String) null);
        header.setResponse(response);
        header.setFocus(null);
        BundleEntryComponent cmp = responseBundle.addEntry();
        cmp.setResource(header);
        return responseBundle;
    } catch (JAXBException e) {
        throw new InvalidRequestException("failed parsing response");
    }
}
Also used : MCCIMT000200UV01AcknowledgementDetail(net.ihe.gazelle.hl7v3.mccimt000200UV01.MCCIMT000200UV01AcknowledgementDetail) OperationOutcomeIssueComponent(org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent) Bundle(org.hl7.fhir.r4.model.Bundle) Reference(org.hl7.fhir.r4.model.Reference) JAXBException(javax.xml.bind.JAXBException) MessageSourceComponent(org.hl7.fhir.r4.model.MessageHeader.MessageSourceComponent) MessageHeaderResponseComponent(org.hl7.fhir.r4.model.MessageHeader.MessageHeaderResponseComponent) MCCIIN000002UV01Type(net.ihe.gazelle.hl7v3.mcciin000002UV01.MCCIIN000002UV01Type) CS(net.ihe.gazelle.hl7v3.datatypes.CS) BundleEntryComponent(org.hl7.fhir.r4.model.Bundle.BundleEntryComponent) ByteArrayInputStream(java.io.ByteArrayInputStream) OperationOutcome(org.hl7.fhir.r4.model.OperationOutcome) InvalidRequestException(ca.uhn.fhir.rest.server.exceptions.InvalidRequestException) MessageHeader(org.hl7.fhir.r4.model.MessageHeader) CodeableConcept(org.hl7.fhir.r4.model.CodeableConcept)

Aggregations

InvalidRequestException (ca.uhn.fhir.rest.server.exceptions.InvalidRequestException)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 JAXBException (javax.xml.bind.JAXBException)1 CS (net.ihe.gazelle.hl7v3.datatypes.CS)1 MCCIIN000002UV01Type (net.ihe.gazelle.hl7v3.mcciin000002UV01.MCCIIN000002UV01Type)1 MCCIMT000200UV01AcknowledgementDetail (net.ihe.gazelle.hl7v3.mccimt000200UV01.MCCIMT000200UV01AcknowledgementDetail)1 Bundle (org.hl7.fhir.r4.model.Bundle)1 BundleEntryComponent (org.hl7.fhir.r4.model.Bundle.BundleEntryComponent)1 CodeableConcept (org.hl7.fhir.r4.model.CodeableConcept)1 MessageHeader (org.hl7.fhir.r4.model.MessageHeader)1 MessageHeaderResponseComponent (org.hl7.fhir.r4.model.MessageHeader.MessageHeaderResponseComponent)1 MessageSourceComponent (org.hl7.fhir.r4.model.MessageHeader.MessageSourceComponent)1 OperationOutcome (org.hl7.fhir.r4.model.OperationOutcome)1 OperationOutcomeIssueComponent (org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent)1 Reference (org.hl7.fhir.r4.model.Reference)1