1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.platform.camel.ihe.hl7v3.iti55.deferredresponse;
17
18 import org.apache.camel.ExchangePattern;
19 import org.openehealth.ipf.commons.ihe.hl7v3.Hl7v3NakFactory;
20 import org.openehealth.ipf.commons.ihe.hl7v3.Hl7v3Utils;
21 import org.openehealth.ipf.commons.ihe.hl7v3.iti55.Iti55Utils;
22 import org.openehealth.ipf.commons.ihe.hl7v3.iti55.asyncresponse.Iti55DeferredResponsePortType;
23 import org.openehealth.ipf.platform.camel.ihe.ws.AbstractAsyncResponseWebService;
24
25
26
27
28
29
30 public class Iti55DeferredResponseService extends AbstractAsyncResponseWebService implements Iti55DeferredResponsePortType {
31
32 @Override
33 protected boolean canDropCorrelation(Object response) {
34 return (! Iti55Utils.isMcciAck((String) response));
35 }
36
37 @Override
38 public String receiveDeferredResponse(String responseString) {
39 process(responseString, null, ExchangePattern.InOnly);
40 return Hl7v3NakFactory.response(responseString, null, "MCCI_IN000002UV01", null, false);
41 }
42
43 @Override
44 protected String[] getAlternativeResponseKeys(Object response) {
45 return new String[] { Iti55Utils.responseQueryId(Hl7v3Utils.slurp((String) response)) };
46 }
47 }