1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.hpd;
17
18 import lombok.AllArgsConstructor;
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.hpd.chpidd.ChPiddPortType;
23 import org.openehealth.ipf.commons.ihe.hpd.iti58.Iti58PortType;
24 import org.openehealth.ipf.commons.ihe.hpd.iti59.*;
25 import org.openehealth.ipf.commons.ihe.ws.WsInteractionId;
26 import org.openehealth.ipf.commons.ihe.ws.WsTransactionConfiguration;
27 import org.openehealth.ipf.commons.ihe.ws.cxf.audit.WsAuditDataset;
28
29 import javax.xml.namespace.QName;
30 import java.util.ArrayList;
31 import java.util.Arrays;
32 import java.util.Collections;
33 import java.util.List;
34
35
36
37
38 public class HPD implements IntegrationProfile {
39
40 @AllArgsConstructor
41 public enum ReadInteractions implements WsInteractionId<WsTransactionConfiguration<WsAuditDataset>> {
42 ITI_58(ITI_58_WS_CONFIG),
43 CH_PIDD(CH_PIDD_WS_CONFIG);
44
45 @Getter
46 private WsTransactionConfiguration<WsAuditDataset> wsTransactionConfiguration;
47 }
48
49 @AllArgsConstructor
50 public enum FeedInteractions implements WsInteractionId<WsTransactionConfiguration<Iti59AuditDataset>> {
51 ITI_59(ITI_59_WS_CONFIG);
52
53 @Getter
54 private WsTransactionConfiguration<Iti59AuditDataset> wsTransactionConfiguration;
55 }
56
57 @Override
58 public List<InteractionId> getInteractionIds() {
59 List<InteractionId> interactions = new ArrayList<>();
60 interactions.addAll(Arrays.asList(FeedInteractions.values()));
61 interactions.addAll(Arrays.asList(ReadInteractions.values()));
62 return Collections.unmodifiableList(interactions);
63 }
64
65 private final static WsTransactionConfiguration<WsAuditDataset> ITI_58_WS_CONFIG = new WsTransactionConfiguration<>(
66 "hpd-iti58",
67 "Provider Information Query",
68 true,
69 null,
70 null,
71 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Service"),
72 Iti58PortType.class,
73 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Binding"),
74 false,
75 "wsdl/iti58.wsdl",
76 true,
77 false,
78 false,
79 false);
80
81 private final static WsTransactionConfiguration<Iti59AuditDataset> ITI_59_WS_CONFIG = new WsTransactionConfiguration<>(
82 "hpd-iti59",
83 "Provider Information Feed",
84 true,
85 new Iti59ClientAuditStrategy(),
86 new Iti59ServerAuditStrategy(),
87 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Service"),
88 Iti59PortType.class,
89 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Binding"),
90 false,
91 "wsdl/iti59.wsdl",
92 true,
93 false,
94 false,
95 false);
96
97 private final static WsTransactionConfiguration<WsAuditDataset> CH_PIDD_WS_CONFIG = new WsTransactionConfiguration<>(
98 "ch-pidd",
99 "Provider Information Delta Download (Swiss HPD extension)",
100 true,
101 null,
102 null,
103 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Service"),
104 ChPiddPortType.class,
105 new QName("urn:ihe:iti:hpd:2010", "ProviderInformationDirectory_Binding"),
106 false,
107 "wsdl/ch-pidd.wsdl",
108 true,
109 false,
110 false,
111 false);
112
113 }