1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.platform.camel.ihe.fhir.translation;
17
18 import ca.uhn.hl7v2.model.Message;
19 import org.apache.camel.Processor;
20 import org.openehealth.ipf.commons.ihe.fhir.translation.FhirTranslator;
21 import org.openehealth.ipf.commons.ihe.fhir.translation.ToFhirTranslator;
22 import org.openehealth.ipf.platform.camel.core.util.Exchanges;
23
24 import java.util.Map;
25
26
27
28
29
30
31
32
33
34 public final class FhirCamelTranslators {
35
36 private FhirCamelTranslators() {
37
38 }
39
40
41
42
43
44 public static Processor translatorFhirToHL7v2(final FhirTranslator<Message> translator) {
45 return exchange -> {
46
47 Object fhir = exchange.getIn().getBody();
48 Map<String, Object> parameters = exchange.getIn().getHeaders();
49
50 org.apache.camel.Message resultMessage = Exchanges.resultMessage(exchange);
51 resultMessage.getHeaders().putAll(exchange.getIn().getHeaders());
52 resultMessage.setBody(translator.translateFhir(fhir, parameters));
53 };
54 }
55
56
57
58
59
60
61 public static Processor translatorHL7v2ToFhir(final ToFhirTranslator<Message> translator) {
62 return exchange -> {
63
64 ca.uhn.hl7v2.model.Message msg = exchange.getIn().getMandatoryBody(ca.uhn.hl7v2.model.Message.class);
65 Map<String, Object> parameters = exchange.getIn().getHeaders();
66
67 org.apache.camel.Message resultMessage = Exchanges.resultMessage(exchange);
68 resultMessage.getHeaders().putAll(exchange.getIn().getHeaders());
69 resultMessage.setBody(translator.translateToFhir(msg, parameters));
70 };
71 }
72
73 }