1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.platform.camel.ihe.mllp.iti30;
17
18 import org.apache.camel.CamelContext;
19 import org.openehealth.ipf.commons.ihe.core.TransactionOptionUtils;
20 import org.openehealth.ipf.commons.ihe.hl7v2.HL7v2TransactionOption;
21 import org.openehealth.ipf.commons.ihe.hl7v2.audit.FeedAuditDataset;
22 import org.openehealth.ipf.commons.ihe.hl7v2.options.Iti30Options;
23 import org.openehealth.ipf.platform.camel.ihe.mllp.core.MllpTransactionComponent;
24 import org.openehealth.ipf.platform.camel.ihe.mllp.core.MllpTransactionEndpointConfiguration;
25
26 import java.util.List;
27 import java.util.Map;
28
29 import static org.openehealth.ipf.commons.ihe.hl7v2.PAM.Interactions.ITI_30;
30
31
32
33
34
35
36
37
38 public class Iti30Component extends MllpTransactionComponent<FeedAuditDataset> {
39
40
41 public Iti30Component() {
42 super(ITI_30);
43 }
44
45 public Iti30Component(CamelContext camelContext) {
46 super(camelContext, ITI_30);
47 }
48
49 @Override
50 protected MllpTransactionEndpointConfiguration createConfig(String uri, Map<String, Object> parameters) throws Exception {
51 MllpTransactionEndpointConfiguration config = super.createConfig(uri, parameters);
52 String options = getAndRemoveParameter(parameters, "options", String.class, Iti30Options.MERGE.name());
53 List<? extends HL7v2TransactionOption> iti30Options = TransactionOptionUtils.split(options, Iti30Options.class);
54 if (iti30Options.isEmpty()) {
55 throw new IllegalArgumentException("Options parameter for pam-iti30 is invalid");
56 }
57 getInteractionId().init(iti30Options);
58 return config;
59 }
60
61 }