source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/SubscriptionDteEjb/src/java/gov/hhs/fha/nhinc/subscription/dte/CreateChildSubscriptionItemHelper.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: 4.7 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.subscription.CommunityType;
8import gov.hhs.fha.nhinc.common.subscription.CriteriaType;
9import gov.hhs.fha.nhinc.common.subscription.SubscribeeType;
10import gov.hhs.fha.nhinc.common.subscription.SubscriberType;
11import gov.hhs.fha.nhinc.common.subscription.SubscriptionCriteriaType;
12import gov.hhs.fha.nhinc.common.subscription.SubscriptionItemType;
13import gov.hhs.fha.nhinc.nhinclib.NullChecker;
14import gov.hhs.fha.nhinc.subscription.*;
15import gov.hhs.fha.nhinc.common.subscriptiondte.CreateChildSubscriptionItemRequestType;
16import gov.hhs.fha.nhinc.common.nhinccommon.QualifiedSubjectIdentifierType;
17import gov.hhs.fha.nhinc.common.subscriptiondte.CreateChildSubscriptionItemResponseType;
18
19/**
20 *
21 * @author rayj
22 */
23public class CreateChildSubscriptionItemHelper {
24
25 public static CreateChildSubscriptionItemResponseType createChildSubscriptionItem(CreateChildSubscriptionItemRequestType createChildSubscriptionInput) {
26 CreateChildSubscriptionItemResponseType response = new CreateChildSubscriptionItemResponseType();
27 SubscriptionItemType subscriptionItem = new SubscriptionItemType();
28
29 SubscriptionItemType parentSubscriptionItem = createChildSubscriptionInput.getParentSubscriptionItem();
30
31 subscriptionItem.setSubscriber(new SubscriberType());
32 subscriptionItem.getSubscriber().setCommunity(Configuration.getMyCommunity());
33 subscriptionItem.getSubscriber().setNotificationConsumerEndpointAddress(Configuration.getlocalNotificationConsumerEndpointAddress());
34
35 subscriptionItem.setSubscribee(new SubscribeeType());
36
37 String userAddress = getUserAddress(parentSubscriptionItem);
38 if (NullChecker.isNotNullish(userAddress)) {
39 subscriptionItem.getSubscribee().setUserAddress(userAddress);
40 }
41
42 String targetCommunityId = createChildSubscriptionInput.getTargetCommunityId();
43 if (NullChecker.isNotNullish(targetCommunityId)) {
44 subscriptionItem.getSubscribee().setCommunity(new CommunityType());
45 subscriptionItem.getSubscribee().getCommunity().setId(targetCommunityId);
46 }
47
48 SubscriptionCriteriaType subscriptionCriteria = new SubscriptionCriteriaType();
49 subscriptionItem.setSubscriptionCriteria(subscriptionCriteria);
50
51 QualifiedSubjectIdentifierType subscribeePatient = createChildSubscriptionInput.getTargetPatientId();
52 if (subscribeePatient != null) {
53 subscriptionCriteria.setSubscribeePatient(subscribeePatient);
54 }
55
56 QualifiedSubjectIdentifierType subscriberPatient = getSubscriptionCriteriaSubscriberPatient(parentSubscriptionItem);
57 subscriptionCriteria.setSubscriberPatient(subscriberPatient);
58
59 CriteriaType miscCriteria = getSubscriptionMiscCriteria(parentSubscriptionItem);
60 subscriptionCriteria.setCriteria(miscCriteria);
61
62 subscriptionCriteria.setTopicExpression(parentSubscriptionItem.getSubscriptionCriteria().getTopicExpression());
63 subscriptionCriteria.setSubscriptionPolicy(parentSubscriptionItem.getSubscriptionCriteria().getSubscriptionPolicy());
64
65 subscriptionItem.setSubscriptionReference(null);
66
67 subscriptionItem.setParentSubscriptionReference(parentSubscriptionItem.getSubscriptionReference());
68
69 response.setSubscriptionItem(subscriptionItem);
70 return response;
71 }
72
73 private static CriteriaType getSubscriptionMiscCriteria(SubscriptionItemType subscriptionItem) {
74 CriteriaType miscCriteria = null;
75 if ((subscriptionItem != null) && (subscriptionItem.getSubscriptionCriteria() != null)) {
76 miscCriteria = subscriptionItem.getSubscriptionCriteria().getCriteria();
77 }
78 return miscCriteria;
79 }
80
81 private static QualifiedSubjectIdentifierType getSubscriptionCriteriaSubscriberPatient(SubscriptionItemType subscriptionItem) {
82 QualifiedSubjectIdentifierType patient = null;
83 if ((subscriptionItem != null) && (subscriptionItem.getSubscriptionCriteria() != null) && (subscriptionItem.getSubscriptionCriteria().getSubscriberPatient() != null)) {
84 patient = subscriptionItem.getSubscriptionCriteria().getSubscriberPatient();
85 }
86 return patient;
87 }
88
89 private static String getUserAddress(SubscriptionItemType parentSubscriptionItem) {
90 String userAddress = null;
91
92 if (parentSubscriptionItem == null) {
93 userAddress = null;
94 } else if (parentSubscriptionItem.getSubscriber() == null) {
95 userAddress = null;
96 } else {
97 userAddress = parentSubscriptionItem.getSubscriber().getUserAddress();
98 }
99
100 return userAddress;
101 }
102}
Note: See TracBrowser for help on using the repository browser.