View Javadoc
1   /*
2    * Copyright 2018 the original author or authors.
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *         http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package org.openehealth.ipf.commons.ihe.fhir.qedm;
17  
18  import ca.uhn.fhir.context.FhirContext;
19  import lombok.Getter;
20  import org.openehealth.ipf.commons.ihe.core.IntegrationProfile;
21  import org.openehealth.ipf.commons.ihe.core.InteractionId;
22  import org.openehealth.ipf.commons.ihe.fhir.FhirInteractionId;
23  import org.openehealth.ipf.commons.ihe.fhir.FhirTransactionConfiguration;
24  import org.openehealth.ipf.commons.ihe.fhir.FhirTransactionOptions;
25  import org.openehealth.ipf.commons.ihe.fhir.FhirTransactionValidator;
26  import org.openehealth.ipf.commons.ihe.fhir.audit.FhirQueryAuditDataset;
27  import org.openehealth.ipf.commons.ihe.fhir.pcc44.Pcc44AuditStrategy;
28  import org.openehealth.ipf.commons.ihe.fhir.pcc44.Pcc44ClientRequestFactory;
29  
30  import java.util.Arrays;
31  import java.util.Collections;
32  import java.util.List;
33  
34  /**
35   * @author Christian Ohr
36   * @since 3.5
37   */
38  public class QEDM implements IntegrationProfile {
39  
40  
41      public enum Interactions implements FhirInteractionId<FhirQueryAuditDataset> {
42  
43          PCC_44;
44  
45          @Getter
46          FhirTransactionConfiguration<FhirQueryAuditDataset> fhirTransactionConfiguration;
47  
48          public void init(List<? extends FhirTransactionOptions> options) {
49              this.fhirTransactionConfiguration = new FhirTransactionConfiguration<>(
50                      "qedm-pcc44",
51                      "Mobile Query for Existing Data",
52                      true,
53                      new Pcc44AuditStrategy(false),
54                      new Pcc44AuditStrategy(true),
55                      FhirContext.forDstu3(),
56                      FhirTransactionOptions.concatProviders(options),
57                      new Pcc44ClientRequestFactory(),
58                      FhirTransactionValidator.NO_VALIDATION);
59          }
60      }
61  
62      @Override
63      public List<InteractionId> getInteractionIds() {
64          List<InteractionId> interactions = Arrays.asList(Interactions.values());
65          return Collections.unmodifiableList(interactions);
66      }
67  
68  }