source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/EntityInternalOrchBPEL/src/EntityComponentInternalNotifyOrch.bpel@ 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: 14.8 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<process
3 name="EntityComponentInternalNotifyOrch"
4 targetNamespace="urn:gov:hhs:fha:nhinc:gateway:entityinternalorchbpel:entitycomponentinternalnotifyorch"
5 xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
6 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
7 xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace"
8 xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor"
9 xmlns:sxat="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Attachment"
10 xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling"
11 xmlns:tns="urn:gov:hhs:fha:nhinc:gateway:entityinternalorchbpel:entitycomponentinternalnotifyorch"
12 xmlns:nccommon="urn:gov:hhs:fha:nhinc:common:nhinccommon"
13 xmlns:nccommonentity="urn:gov:hhs:fha:nhinc:common:nhinccommonentity"
14 xmlns:nccommonsubcdc="urn:gov:hhs:fha:nhinc:common:subscriptionb2overridefordocuments"
15 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
16 xmlns:subdte="urn:gov:hhs:fha:nhinc:common:subscriptiondte"
17 xmlns:nccommonsub="urn:gov:hhs:fha:nhinc:common:subscription"
18 xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
19 xmlns:nccommonproxy="urn:gov:hhs:fha:nhinc:common:nhinccommonproxy">
20 <import namespace="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" location="Interfaces/wsdl/EntityComponentInternalNotifyOrch.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
21 <import namespace="urn:gov:hhs:fha:nhinc:nhincproxynotificationconsumer" location="Interfaces/wsdl/NhincProxyNotificationConsumer.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
22 <import namespace="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" location="Interfaces/wsdl/NhincComponentInternalSubscriptionDte.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
23 <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository" location="Interfaces/wsdl/NhincComponentSubscriptionRepository.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
24 <partnerLinks>
25 <partnerLink name="SubscriptionDtePL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" partnerLinkType="tns:NhincComponentInternalSubscriptionDte" partnerRole="NhincComponentInternalSubscriptionDtePortTypeRole"/>
26 <partnerLink name="SubscriptionRepoPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository" partnerLinkType="tns:NhincComponentSubscriptionRepository" partnerRole="NhincComponentSubscriptionRepositoryPortTypeRole"/>
27 <partnerLink name="NhincNotifyProxyPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincproxynotificationconsumer" partnerLinkType="tns:NhincProxyNotificationConsumer" partnerRole="NhincProxyNotificationConsumerPortTypeRole"/>
28 <partnerLink name="EntityNotifyPL" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" partnerLinkType="tns:EntityComponentInternalNotifyOrch" myRole="EntityComponentInternalNotifyOrchPortTypeRole"/>
29 </partnerLinks>
30 <variables>
31 <variable name="DocumentNotifyIn" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" messageType="tns:DocumentNotifyRequestMessage"/>
32 </variables>
33 <sequence>
34 <receive name="ReceiveEntityNotify" createInstance="yes" partnerLink="EntityNotifyPL" operation="DocumentNotify" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" portType="tns:EntityComponentInternalNotifyOrchPortType" variable="DocumentNotifyIn"/>
35 <scope name="ProcessDocumentNotifyScope">
36 <variables>
37 <variable name="DocumentNotifyOut" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" messageType="tns:DocumentNotifyResponseMessage"/>
38 </variables>
39 <faultHandlers>
40 <catch faultName="sxeh:systemFault" faultVariable="systemFaultVar" faultMessageType="sxeh:faultMessage">
41 <sequence name="SystemFaultDocNotifySeq">
42 <assign name="AssignDocNotifyFault">
43 <sxt:trace>
44 <sxt:log level="info" location="onStart">
45 <from>'EntityComponentInternalNotifyOrch.bpel - A system fault was encounterd processing a Document Notify message. Fault detials follow...'</from>
46 </sxt:log>
47 <sxt:log level="warning" location="onStart">
48 <from variable="systemFaultVar"/>
49 </sxt:log>
50 </sxt:trace>
51 <copy>
52 <from>'Internal Gateway Error'</from>
53 <to>$DocumentNotifyOut.DocumentNotifyResponse/nccommon:message</to>
54 </copy>
55 </assign>
56 <reply name="ReplyDocNotifyFault" partnerLink="EntityNotifyPL" operation="DocumentNotify" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" portType="tns:EntityComponentInternalNotifyOrchPortType" variable="DocumentNotifyOut"/>
57 </sequence>
58 </catch>
59 </faultHandlers>
60 <sequence name="ProcessDocumentNotifySeq">
61 <forEach name="ForEachNotificationMessage" parallel="no" counterName="NotifyMsgCtr">
62 <startCounterValue>1</startCounterValue>
63 <finalCounterValue>count($DocumentNotifyIn.DocumentNotifyRequest/nccommonentity:notify/nccommonsubcdc:NotificationMessage)</finalCounterValue>
64 <scope name="ProcessNotifyMessageScope">
65 <variables>
66 <variable name="RetrieveByCriteriaOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository" messageType="tns:RetrieveByCriteriaResponse"/>
67 <variable name="RetrieveByCriteriaIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository" messageType="tns:RetrieveByCriteriaRequest"/>
68 <variable name="CreateSubscriptionCriteriaOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" messageType="tns:TransformEntityNotifyDocumentToSubscriptionCriteriaResponseMessage"/>
69 <variable name="CreateSubscriptionCriteriaIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" messageType="tns:TransformEntityNotifyDocumentToSubscriptionCriteriaRequestMessage"/>
70 </variables>
71 <sequence name="ProcessNotifyMessageSeq">
72 <assign name="AssignCreateSubscriptionCriteria">
73 <copy>
74 <from>$DocumentNotifyIn.DocumentNotifyRequest/rim:RegistryObjectList</from>
75 <to>$CreateSubscriptionCriteriaIn.TransformEntityNotifyDocumentToSubscriptionCriteria/subdte:RegistryObjectList</to>
76 </copy>
77 <copy>
78 <from>$DocumentNotifyIn.DocumentNotifyRequest/nccommonentity:notify/nccommonsubcdc:NotificationMessage[$NotifyMsgCtr]</from>
79 <to>$CreateSubscriptionCriteriaIn.TransformEntityNotifyDocumentToSubscriptionCriteria/subdte:NotifyDocument/nccommonsubcdc:NotificationMessage</to>
80 </copy>
81 </assign>
82 <invoke name="InvokeCreateSubscriptionCriteria" partnerLink="SubscriptionDtePL" operation="TransformEntityNotifyDocumentToSubscriptionCriteria" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" portType="tns:NhincComponentInternalSubscriptionDtePortType" inputVariable="CreateSubscriptionCriteriaIn" outputVariable="CreateSubscriptionCriteriaOut"/>
83 <assign name="AssignSubscriptionLookup">
84 <copy>
85 <from>$CreateSubscriptionCriteriaOut.TransformEntityNotifyDocumentToSubscriptionCriteria/nccommonsub:SubscriptionCriteria</from>
86 <to variable="RetrieveByCriteriaIn" part="subscriptionCriteria"/>
87 </copy>
88 </assign>
89 <invoke name="InvokeSubscriptionLookup" partnerLink="SubscriptionRepoPL" operation="RetrieveByCriteria" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubscriptionrepository" portType="tns:NhincComponentSubscriptionRepositoryPortType" inputVariable="RetrieveByCriteriaIn" outputVariable="RetrieveByCriteriaOut"/>
90 <forEach name="ForEachSubscription" parallel="no" counterName="SubItemCtr">
91 <startCounterValue>1</startCounterValue>
92 <finalCounterValue>count($RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem)</finalCounterValue>
93 <scope name="ProcessSubItemScope">
94 <variables>
95 <variable name="CreateNhinNotifyDocumentOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" messageType="tns:CreateNhinNotifyDocumentResponseMessage"/>
96 <variable name="CreateNhinNotifyDocumentIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" messageType="tns:CreateNhinNotifyDocumentRequestMessage"/>
97 <variable name="NotifyIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincproxynotificationconsumer" messageType="tns:NotifyRequestMessage"/>
98 </variables>
99 <sequence name="ProcessSubItemSeq">
100 <assign name="AssignCreateNhinNotify">
101 <copy>
102 <from>$RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem[$SubItemCtr]
103 <sxed:editor>
104 <sxed:predicate path="$RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem[$SubItemCtr]" source="from"/>
105 </sxed:editor>
106 </from>
107 <to>$CreateNhinNotifyDocumentIn.CreateNhinNotifyDocumentRequest/nccommonsub:SubscriptionItem</to>
108 </copy>
109 <copy>
110 <from>$DocumentNotifyIn.DocumentNotifyRequest/nccommonentity:notify</from>
111 <to>$CreateNhinNotifyDocumentIn.CreateNhinNotifyDocumentRequest/subdte:notify</to>
112 </copy>
113 </assign>
114 <invoke name="InvokeCreateNhinNotify" partnerLink="SubscriptionDtePL" operation="CreateNhinNotifyDocument" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincinternalcomponentpolicyenginetransform" portType="tns:NhincComponentInternalSubscriptionDtePortType" inputVariable="CreateNhinNotifyDocumentIn" outputVariable="CreateNhinNotifyDocumentOut"/>
115 <empty name="Policy_Placeholder"/>
116 <assign name="AssignNotifyProxy">
117 <copy>
118 <from>$DocumentNotifyIn.DocumentNotifyRequest/nccommonentity:assertion</from>
119 <to>$NotifyIn.NotifyRequest/nccommonproxy:assertion</to>
120 </copy>
121 <copy>
122 <from>$RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem[$SubItemCtr]/nccommonsub:Subscriber/nccommonsub:NotificationConsumerEndpointAddress</from>
123 <to>$NotifyIn.NotifyRequest/nccommonproxy:nhinTargetSystem/nccommon:url</to>
124 </copy>
125 <copy>
126 <from>$RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem[$SubItemCtr]/nccommonsub:SubscriptionCriteria/nccommonsub:SubscribeePatient/nccommon:SubjectIdentifier</from>
127 <to>$NotifyIn.NotifyRequest/nccommonproxy:assertion/nccommon:uniquePatientId</to>
128 </copy>
129 <copy>
130 <from>$RetrieveByCriteriaOut.subscriptionItems/nccommonsub:subscriptionItem[$SubItemCtr]/nccommonsub:Subscribee/nccommonsub:Community/nccommonsub:Id</from>
131 <to>$NotifyIn.NotifyRequest/nccommonproxy:assertion/nccommon:userInfo/nccommon:org/nccommon:homeCommunityId</to>
132 </copy>
133 <copy>
134 <from>$CreateNhinNotifyDocumentOut.CreateNhinNotifyDocumentResponse/wsnt:Notify/wsnt:NotificationMessage</from>
135 <to>$NotifyIn.NotifyRequest/wsnt:Notify/wsnt:NotificationMessage</to>
136 </copy>
137 </assign>
138 <invoke name="InvokeNotifyProxy" partnerLink="NhincNotifyProxyPL" operation="Notify" xmlns:tns="urn:gov:hhs:fha:nhinc:nhincproxynotificationconsumer" portType="tns:NhincProxyNotificationConsumerPortType" inputVariable="NotifyIn"/>
139 </sequence>
140 </scope>
141 </forEach>
142 </sequence>
143 </scope>
144 </forEach>
145 <assign name="AssignEntityNotifyResp">
146 <copy>
147 <from>'Successfully processed document notify message'</from>
148 <to>$DocumentNotifyOut.DocumentNotifyResponse/nccommon:message</to>
149 </copy>
150 </assign>
151 <reply name="ReplyEntityNotify" partnerLink="EntityNotifyPL" operation="DocumentNotify" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternalnotifyorch" portType="tns:EntityComponentInternalNotifyOrchPortType" variable="DocumentNotifyOut"/>
152 </sequence>
153 </scope>
154 </sequence>
155</process>
Note: See TracBrowser for help on using the repository browser.