[507] | 1 | /*
|
---|
| 2 | * To change this template, choose Tools | Templates
|
---|
| 3 | * and open the template in the editor.
|
---|
| 4 | */
|
---|
| 5 | package gov.hhs.fha.nhinc.subscription.dte;
|
---|
| 6 |
|
---|
| 7 | //import gov.hhs.fha.nhinc.subscription.*;
|
---|
| 8 | import gov.hhs.fha.nhinc.common.nhinccommon.QualifiedSubjectIdentifierType;
|
---|
| 9 | import gov.hhs.fha.nhinc.common.subscription.CriteriaType;
|
---|
| 10 | import gov.hhs.fha.nhinc.common.subscription.CriterionType;
|
---|
| 11 | import gov.hhs.fha.nhinc.common.subscription.SubscriptionCriteriaType;
|
---|
| 12 | import gov.hhs.fha.nhinc.common.subscriptionb2overridefordocuments.NotificationMessageHolderType;
|
---|
| 13 | import gov.hhs.fha.nhinc.common.subscriptionb2overridefordocuments.NotifyDocumentType;
|
---|
| 14 | import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntityNotifyDocumentToSubscriptionCriteriaRequestType;
|
---|
| 15 | import gov.hhs.fha.nhinc.common.subscriptiondte.TransformEntityNotifyDocumentToSubscriptionCriteriaResponseType;
|
---|
| 16 |
|
---|
| 17 | //import gov.hhs.fha.nhinc.subscription_b_2_overridefordocuments.NotificationMessageHolderType;
|
---|
| 18 | import ihe.iti.xds_b._2007.RetrieveDocumentSetRequestType;
|
---|
| 19 | import ihe.iti.xds_b._2007.RetrieveDocumentSetRequestType.DocumentRequest;
|
---|
| 20 | import java.util.List;
|
---|
| 21 | import oasis.names.tc.ebxml_regrep.xsd.rim._3.ExtrinsicObjectType;
|
---|
| 22 | import 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 | */
|
---|
| 39 | public 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 | }
|
---|