source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/SubscriptionDteEjb/src/java/gov/hhs/fha/nhinc/subscription/dte/TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemHelper.java@ 507

Last change on this file since 507 was 507, checked in by George Lilly, 15 years ago

NHIN gateway and adaptor for use on linux with VistA EHR and RPMS

File size: 6.6 KB
Line 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package gov.hhs.fha.nhinc.subscription.dte;
6
7import gov.hhs.fha.nhinc.common.nhinccommonentity.SubscribeCdcBioPackageRequestType;
8import gov.hhs.fha.nhinc.common.subscription.CommunityType;
9import gov.hhs.fha.nhinc.common.subscription.KeyValuePairListType;
10import gov.hhs.fha.nhinc.common.subscription.KeyValuePairType;
11import gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType;
12import gov.hhs.fha.nhinc.common.subscriptionb2overrideforcdc.SubscribeCdcBioPackageType;
13import gov.hhs.fha.nhinc.nhinclib.NullChecker;
14import org.oasis_open.docs.wsn.b_2.Subscribe.SubscriptionPolicy;
15import gov.hhs.fha.nhinc.common.nhinccommon.HomeCommunityType;
16import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemRequestType;
17import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemResponseType;
18import gov.hhs.healthit.nhin.cdc.CdcBioPackageSubscriptionCriteriaType;
19import org.oasis_open.docs.wsn.b_2.Subscribe;
20
21/**
22 *
23 * @author rayj
24 */
25public class TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemHelper {
26
27 public static TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemResponseType transformEntitySubscribeCdcBioPackageToInternalSubscriptionItem(TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemRequestType request) {
28 TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemResponseType resp = new TransformEntitySubscribeCdcBioPackageToInternalSubscriptionItemResponseType ();
29 SubscribeCdcBioPackageRequestType subscribeCdcBioPackageRequest = request.getSubscribeCdcBioPackageRequest();
30 Subscribe nhinSubscribe = transformEntitySubscribeToNhinSubscribe(subscribeCdcBioPackageRequest.getSubscribe());
31 SubscriptionItemType internalSubscriptionItem = TransformNhinSubscribeToInternalSubscribeHelper.TransformNhinSubscribeToInternalSubscribe(nhinSubscribe);
32
33
34
35 if (subscribeCdcBioPackageRequest.getNhinTargetCommunities() != null &&
36 NullChecker.isNotNullish(subscribeCdcBioPackageRequest.getNhinTargetCommunities().getNhinTargetCommunity()) &&
37 subscribeCdcBioPackageRequest.getNhinTargetCommunities().getNhinTargetCommunity().get(0) != null &&
38 subscribeCdcBioPackageRequest.getNhinTargetCommunities().getNhinTargetCommunity().get(0).getHomeCommunity() != null) {
39 internalSubscriptionItem.getSubscribee().setCommunity(TranslateToSubscriptionCommunity(subscribeCdcBioPackageRequest.getNhinTargetCommunities().getNhinTargetCommunity().get(0).getHomeCommunity()));
40 }
41
42 if (internalSubscriptionItem.getSubscriptionCriteria().getTopicExpression() == null) {
43 internalSubscriptionItem.getSubscriptionCriteria().setTopicExpression(TopicBuilder.createCdcBioPackageTopic());
44 }
45
46 SubscriptionPolicy nhinSubscriptionPolicy = nhinSubscribe.getSubscriptionPolicy();
47
48 if (nhinSubscriptionPolicy != null) {
49 for (Object policyItem : nhinSubscriptionPolicy.getAny()) {
50 if (policyItem instanceof CdcBioPackageSubscriptionCriteriaType) {
51 CdcBioPackageSubscriptionCriteriaType cdcCriteria = (CdcBioPackageSubscriptionCriteriaType) policyItem;
52 gov.hhs.fha.nhinc.common.subscription.SubscriptionPolicyType policy = internalSubscriptionItem.getSubscriptionCriteria().getSubscriptionPolicy();
53 policy = new gov.hhs.fha.nhinc.common.subscription.SubscriptionPolicyType();
54 internalSubscriptionItem.getSubscriptionCriteria().setSubscriptionPolicy(policy);
55 KeyValuePairListType genericPolicyItems = new KeyValuePairListType();
56 internalSubscriptionItem.getSubscriptionCriteria().getSubscriptionPolicy().setGenericPolicyItems(genericPolicyItems);
57
58 if (cdcCriteria != null) {
59 if ((cdcCriteria.getFrequency() != null) && (cdcCriteria.getFrequency().getFrequencyUnits() != null) && (cdcCriteria.getFrequency().getFrequencyDuration() != null)) {
60 addKeyValuePair(genericPolicyItems, "FrequenceUnits", cdcCriteria.getFrequency().getFrequencyUnits().toString());
61 addKeyValuePair(genericPolicyItems, "FrequenceDuration", cdcCriteria.getFrequency().getFrequencyDuration().toString());
62 }
63 addKeyValuePair(genericPolicyItems, "SizeThreshold", cdcCriteria.getSizeThreshold().toString());
64
65 for (String messageType : cdcCriteria.getMessageTypes().getMessageType()) {
66 addKeyValuePair(genericPolicyItems, "MessageType", messageType);
67 }
68 }
69 }
70 }
71 }
72
73 resp.setSubscriptionItem(internalSubscriptionItem);
74 return resp;
75 }
76
77 private static void addKeyValuePair(KeyValuePairListType list, String key, String value) {
78 KeyValuePairType keyvaluepair = keyValuePairFactory(key, value);
79 list.getKeyValuePair().add(keyvaluepair);
80 }
81
82 private static KeyValuePairType keyValuePairFactory(String key, String value) {
83 KeyValuePairType keyvaluepair = new KeyValuePairType();
84 keyvaluepair.setKey(key);
85 keyvaluepair.setValue(value);
86 return keyvaluepair;
87
88 }
89
90 private static gov.hhs.fha.nhinc.common.subscription.CommunityType TranslateToSubscriptionCommunity(HomeCommunityType community) {
91 CommunityType subCommunity = new CommunityType();
92 subCommunity.setId(community.getHomeCommunityId());
93 subCommunity.setName(community.getName());
94 return subCommunity;
95 }
96
97 private static org.oasis_open.docs.wsn.b_2.Subscribe transformEntitySubscribeToNhinSubscribe(SubscribeCdcBioPackageType entitySubscribe) {
98 org.oasis_open.docs.wsn.b_2.Subscribe nhinSubscribe = new org.oasis_open.docs.wsn.b_2.Subscribe();
99
100 if (entitySubscribe.getConsumerReference() != null) {
101 nhinSubscribe.setConsumerReference(entitySubscribe.getConsumerReference());
102 }
103
104 if (entitySubscribe.getFilter() != null) {
105 nhinSubscribe.setFilter(entitySubscribe.getFilter());
106 }
107
108 if (entitySubscribe.getSubscriptionPolicy() != null) {
109 SubscriptionPolicy nhinSubscriptionPolicy = new SubscriptionPolicy();
110 nhinSubscriptionPolicy.getAny().add(entitySubscribe.getSubscriptionPolicy().getCdcBioPackageSubscriptionCriteria());
111 nhinSubscribe.setSubscriptionPolicy(nhinSubscriptionPolicy);
112 }
113
114 return nhinSubscribe;
115 }
116}
Note: See TracBrowser for help on using the repository browser.