source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/SubscriptionDteEjb/src/java/gov/hhs/fha/nhinc/subscription/dte/transformEntityNotifyDocumentToSubscriptionCriteriaHelper.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: 5.5 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
7//import gov.hhs.fha.nhinc.subscription.*;
8import gov.hhs.fha.nhinc.common.nhinccommon.QualifiedSubjectIdentifierType;
9import gov.hhs.fha.nhinc.common.subscription.CriteriaType;
10import gov.hhs.fha.nhinc.common.subscription.CriterionType;
11import gov.hhs.fha.nhinc.common.subscription.SubscriptionCriteriaType;
12import gov.hhs.fha.nhinc.common.subscriptionb2overridefordocuments.NotificationMessageHolderType;
13import gov.hhs.fha.nhinc.common.subscriptionb2overridefordocuments.NotifyDocumentType;
14import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntityNotifyDocumentToSubscriptionCriteriaRequestType;
15import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntityNotifyDocumentToSubscriptionCriteriaResponseType;
16
17//import gov.hhs.fha.nhinc.subscription_b_2_overridefordocuments.NotificationMessageHolderType;
18import ihe.iti.xds_b._2007.RetrieveDocumentSetRequestType;
19import ihe.iti.xds_b._2007.RetrieveDocumentSetRequestType.DocumentRequest;
20import java.util.List;
21import oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType;
22import oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType;
23//import gov.hhs.fha.nhinc.subscriptiondte.*;
24//import gov.hhs.fha.nhinc.util.format.PatientIdFormatUtil;
25//import ihe.iti.xds_b._2007.RetrieveDocumentSetRequestType.DocumentRequest;
26//import java.util.List;
27//import oasis.names.tc.ebxml_regrep.xsd.rim._3.ClassificationType;
28//import oasis.names.tc.ebxml_regrep.xsd.rim._3.ExternalIdentifierType;
29//import oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType;
30//import oasis.names.tc.ebxml_regrep.xsd.rim._3.IdentifiableType;
31//import oasis.names.tc.ebxml_regrep.xsd.rim._3.RegistryObjectListType;
32//import oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1;
33//import org.netbeans.xml.schema.homecommunity.HomeCommunity;
34//import org.netbeans.xml.schema.qualifiedsubjectid.QualifiedSubjectId;
35/**
36 *
37 * @author rayj
38 */
39public class transformEntityNotifyDocumentToSubscriptionCriteriaHelper {
40
41 public static TransformEntityNotifyDocumentToSubscriptionCriteriaResponseType transformEntityNotifyDocumentToSubscriptionCriteria(TransformEntityNotifyDocumentToSubscriptionCriteriaRequestType request) {
42 TransformEntityNotifyDocumentToSubscriptionCriteriaResponseType response = new TransformEntityNotifyDocumentToSubscriptionCriteriaResponseType();
43
44 SubscriptionCriteriaType subscriptionCriteria = new SubscriptionCriteriaType();
45
46 RegistryObjectListType documentMetadatas = request.getRegistryObjectList();
47 List<DocumentRequest> documentList = getDocumentList(request);
48 QualifiedSubjectIdentifierType patient;
49
50 if (documentList != null) {
51 for (DocumentRequest document : documentList) {
52 ExtrinsicObjectType documentMetaData = DocumentMetadataHelper.findMatchingDocumentMetadata(documentMetadatas, document);
53
54 //special handling for patient
55 if (documentMetaData != null) {
56 patient = DocumentMetadataHelper.getPatient(documentMetaData);
57 subscriptionCriteria.setSubscribeePatient(patient);
58
59 //special handling for document type
60 subscriptionCriteria.setCriteria(new CriteriaType());
61
62 String documentClassCode = DocumentMetadataHelper.getDocumentClassCode(documentMetaData);
63 CriterionType documentClassCodeCriterion = new CriterionType();
64 documentClassCodeCriterion.setKey(Constants.DocumentClassCodeSlotName);
65 documentClassCodeCriterion.setValue(documentClassCode);
66 subscriptionCriteria.getCriteria().getCriterion().add(documentClassCodeCriterion);
67 }
68 }
69
70 }
71
72 response.setSubscriptionCriteria(subscriptionCriteria);
73 return response;
74 }
75
76 private static List<DocumentRequest> getDocumentList(TransformEntityNotifyDocumentToSubscriptionCriteriaRequestType entityNotify) {
77 List<DocumentRequest> documentList = null;
78 if ((entityNotify != null) && (entityNotify.getNotifyDocument() != null) && (entityNotify.getNotifyDocument().getNotificationMessage() != null) && (!entityNotify.getNotifyDocument().getNotificationMessage().isEmpty())) {
79 NotificationMessageHolderType notificationMessage = entityNotify.getNotifyDocument().getNotificationMessage().get(0);
80 if ((notificationMessage != null) && (notificationMessage.getMessage() != null) && (notificationMessage.getMessage().getRetrieveDocumentSetRequest() != null)) {
81 documentList = notificationMessage.getMessage().getRetrieveDocumentSetRequest().getDocumentRequest();
82 }
83 }
84 return documentList;
85 }
86
87 public static RetrieveDocumentSetRequestType getDocumentSetRequest(NotifyDocumentType entityNotify) {
88 RetrieveDocumentSetRequestType documentSetRequest = null;
89 if ((entityNotify != null) && (entityNotify.getNotificationMessage() != null) && (!entityNotify.getNotificationMessage().isEmpty())) {
90 NotificationMessageHolderType notificationMessage = entityNotify.getNotificationMessage().get(0);
91 if ((notificationMessage != null) && (notificationMessage.getMessage() != null) && (notificationMessage.getMessage().getRetrieveDocumentSetRequest() != null)) {
92 documentSetRequest = notificationMessage.getMessage().getRetrieveDocumentSetRequest();
93 }
94 }
95 return documentSetRequest;
96 }
97}
Note: See TracBrowser for help on using the repository browser.