use of bind.feature.generichierarchy.case1.model.Message in project camel by apache.
the class HL7MLLPNettyRouteToTest method createRouteBuilder.
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
from("direct:start").to("netty4:tcp://127.0.0.1:" + getPort() + "?sync=true&decoder=#hl7decoder&encoder=#hl7encoder").log("HL7 message: ${body}").to("mock:result");
from("netty4:tcp://127.0.0.1:" + getPort() + "?sync=true&decoder=#hl7decoder&encoder=#hl7encoder").process(new Processor() {
public void process(Exchange exchange) throws Exception {
Message input = exchange.getIn().getBody(Message.class);
assertEquals("2.4", input.getVersion());
QRD qrd = (QRD) input.get("QRD");
assertEquals("0101701234", qrd.getWhoSubjectFilter(0).getIDNumber().getValue());
Message response = createHL7AsMessage();
exchange.getOut().setBody(response);
}
});
}
};
}
use of bind.feature.generichierarchy.case1.model.Message in project camel by apache.
the class HL7XmlDataFormatTest method testUnmarshalOkXml.
@Test
public void testUnmarshalOkXml() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:unmarshal");
mock.expectedMessageCount(1);
String body = createHL7AsString();
Message msg = hl7.getParser().parse(body);
String xml = hl7.getParser().encode(msg, "XML");
assertTrue(xml.contains("<ORM_O01"));
template.sendBody("direct:unmarshalOkXml", xml);
assertMockEndpointsSatisfied();
Message received = mock.getReceivedExchanges().get(0).getIn().getMandatoryBody(Message.class);
assertEquals("O01", new Terser(received).get("MSH-9-2"));
}
use of bind.feature.generichierarchy.case1.model.Message in project nifi by apache.
the class TestHL7Query method createMessage.
private HL7Message createMessage(final String msgText) throws HL7Exception, IOException {
final HapiContext hapiContext = new DefaultHapiContext();
hapiContext.setValidationContext(ValidationContextFactory.noValidation());
final PipeParser parser = hapiContext.getPipeParser();
final Message message = parser.parse(msgText);
return new HapiMessage(message);
}
use of bind.feature.generichierarchy.case1.model.Message in project nifi by apache.
the class RouteHL7 method onTrigger.
@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
FlowFile flowFile = session.get();
if (flowFile == null) {
return;
}
final Charset charset = Charset.forName(context.getProperty(CHARACTER_SET).evaluateAttributeExpressions(flowFile).getValue());
final byte[] buffer = new byte[(int) flowFile.getSize()];
session.read(flowFile, new InputStreamCallback() {
@Override
public void process(final InputStream in) throws IOException {
StreamUtils.fillBuffer(in, buffer);
}
});
@SuppressWarnings("resource") final HapiContext hapiContext = new DefaultHapiContext();
hapiContext.setValidationContext((ca.uhn.hl7v2.validation.ValidationContext) ValidationContextFactory.noValidation());
final PipeParser parser = hapiContext.getPipeParser();
final String hl7Text = new String(buffer, charset);
final HL7Message message;
try {
final Message hapiMessage = parser.parse(hl7Text);
message = new HapiMessage(hapiMessage);
} catch (final Exception e) {
getLogger().error("Failed to parse {} as HL7 due to {}; routing to failure", new Object[] { flowFile, e });
session.transfer(flowFile, REL_FAILURE);
return;
}
final Set<String> matchingRels = new HashSet<>();
final Map<Relationship, HL7Query> queryMap = queries;
for (final Map.Entry<Relationship, HL7Query> entry : queryMap.entrySet()) {
final Relationship relationship = entry.getKey();
final HL7Query query = entry.getValue();
final QueryResult result = query.evaluate(message);
if (result.isMatch()) {
FlowFile clone = session.clone(flowFile);
clone = session.putAttribute(clone, "RouteHL7.Route", relationship.getName());
session.transfer(clone, relationship);
session.getProvenanceReporter().route(clone, relationship);
matchingRels.add(relationship.getName());
}
}
session.transfer(flowFile, REL_ORIGINAL);
getLogger().info("Routed a copy of {} to {} relationships: {}", new Object[] { flowFile, matchingRels.size(), matchingRels });
}
use of bind.feature.generichierarchy.case1.model.Message in project streamsx.health by IBMStreams.
the class AdtIngest method run.
@Override
public void run() {
Topology topology = new Topology("AdtIngest");
AdtToModelMapper mapper = new AdtToModelMapper();
addDependencies(topology);
HapiMessageSupplier supplier = new HapiMessageSupplier(getPort());
supplier.setMessageClass(ADT_AXX.class);
TStream<Message> messages = topology.endlessSource(supplier);
// transform message to ADTEvent object
TStream<ADTEvent> adtEvents = messages.multiTransform(message -> {
return mapper.messageToModel(message);
});
// publish data as JSON
PublishAdtEvent.publish(adtEvents, getTopic());
try {
StreamsContextFactory.getStreamsContext(StreamsContext.Type.DISTRIBUTED).submit(topology);
} catch (Exception e) {
TRACE.error("Unable to submit topology", e);
}
}
Aggregations