source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Gateway/NhincInternalOrchBPEL/src/NhincComponentInternalSubDiscovery201303Orch.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: 22.3 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<process
3 name="NhincComponentInternalSubDiscovery201303Orch"
4 targetNamespace="urn:gov:hhs:fha:nhinc:gateway:nhincinternalorchbpel:nhinccomponentinternalsubdiscovery201303orch"
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:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
12 xmlns:tns="urn:gov:hhs:fha:nhinc:gateway:nhincinternalorchbpel:nhinccomponentinternalsubdiscovery201303orch"
13 xmlns:conninfo="urn:gov:hhs:fha:nhinc:common:connectionmanagerinfo"
14 xmlns:nccommon="urn:gov:hhs:fha:nhinc:common:nhinccommon"
15 xmlns:hl7="urn:hl7-org:v3"
16 xmlns:ncpc="urn:gov:hhs:fha:nhinc:common:patientcorrelationfacade"
17 xmlns:evtcmn="urn:gov:hhs:fha:nhinc:common:eventcommon" xmlns:ns0="urn:gov:hhs:fha:nhinc:common:nhinccommonadapter" xmlns:ns1="urn:oasis:names:tc:xacml:2.0:context:schema:os">
18 <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" location="Interfaces/wsdl/NhincComponentInternalSubDiscovery201303Orch.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
19 <import namespace="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" location="Interfaces/wsdl/NhincComponentPatientCorrelationFacade.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
20 <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentconnectionmanager" location="Interfaces/wsdl/NhincComponentConnectionManager.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
21 <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" location="Interfaces/wsdl/NhincComponentSubDiscTransforms.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
22 <import namespace="urn:gov:hhs:fha:nhinc:NhincComponentInternalPolicyEngineFacade" location="Interfaces/wsdl/NhincComponentInternalPolicyEngineFacade.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
23 <partnerLinks>
24 <partnerLink name="PolicyEnginePL" xmlns:tns="urn:gov:hhs:fha:nhinc:NhincComponentInternalPolicyEngineFacade" partnerLinkType="tns:NhincComponentInternalPolicyEngineFacade" partnerRole="NhincComponentInternalPolicyEngineFacadePortTypeRole"/>
25 <partnerLink name="ConnectionManagerPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentconnectionmanager" partnerLinkType="tns:NhincComponentConnectionManager" partnerRole="NhincComponentConnectionManagerPortTypeRole"/>
26 <partnerLink name="PatientCorrelationPL" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" partnerLinkType="tns:PatientCorrelationFacadePartnerLinkType" partnerRole="PatientCorrelationPortTypeRole"/>
27 <partnerLink name="SubjectDiscoveryDtePL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" partnerLinkType="tns:NhincComponentSubDiscTransforms" partnerRole="NhincComponentSubDiscTransformsPortTypeRole"/>
28 <partnerLink name="NhincRevokePL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" partnerLinkType="tns:NhincComponentInternalSubDiscovery201303Orch" myRole="NhincComponentInternalSubDiscovery201303OrchPortTypeRole"/>
29 </partnerLinks>
30 <variables>
31 <variable name="RevokePatientIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" messageType="tns:RevokePatientRequestMessage"/>
32 </variables>
33 <sequence>
34 <receive name="Receive201303" createInstance="yes" partnerLink="NhincRevokePL" operation="RevokePatient" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" portType="tns:NhincComponentInternalSubDiscovery201303OrchPortType" variable="RevokePatientIn"/>
35 <scope name="Process201303Scope">
36 <variables>
37 <variable name="CheckPolicySubjectRevokedOut" xmlns:tns="urn:gov:hhs:fha:nhinc:NhincComponentInternalPolicyEngineFacade" messageType="tns:CheckPolicyResponseMessage"/>
38 <variable name="CheckPolicySubjectRevokedIn" xmlns:tns="urn:gov:hhs:fha:nhinc:NhincComponentInternalPolicyEngineFacade" messageType="tns:CheckPolicySubjectRevokedRequestMessage"/>
39 <variable name="CreateAckOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" messageType="tns:CreateAckResponseMessage"/>
40 <variable name="CreateAckIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" messageType="tns:CreateAckRequestMessage"/>
41 <variable name="RevokePatientOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" messageType="tns:RevokePatientResponseMessage"/>
42 <variable name="GetAAsByHCIDOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentconnectionmanager" messageType="tns:GetAssigningAuthoritiesByHomeCommunityResponseMessage"/>
43 <variable name="GetAAsByHCIDIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentconnectionmanager" messageType="tns:GetAssigningAuthoritiesByHomeCommunityRequestMessage"/>
44 <variable name="RemovePatientCorrelationOut" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RemovePatientCorrelationResponseMessage"/>
45 <variable name="RemovePatientCorrelationIn" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RemovePatientCorrelationRequestMessage"/>
46 </variables>
47 <faultHandlers>
48 <catch faultName="sxeh:systemFault" faultVariable="systemFaultVar" faultMessageType="sxeh:faultMessage">
49 <sequence name="SystemFaultSeq">
50 <assign name="AssignCreateFaultAck">
51 <sxt:trace>
52 <sxt:log level="info" location="onStart">
53 <bpel:from>'NhinComponentInternalSubDiscovery201303Orch.bpel - A system fault was encounterd processing a 201303 message. Fault detials follow...'</bpel:from>
54 </sxt:log>
55 <sxt:log level="warning" location="onStart">
56 <bpel:from variable="systemFaultVar"/>
57 </sxt:log>
58 </sxt:trace>
59 <copy>
60 <from>$RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:id</from>
61 <to>$CreateAckIn.CreateAckRequest/hl7:origMsgId</to>
62 </copy>
63 <copy>
64 <from>'Error - Policy Check Failed'</from>
65 <to>$CreateAckIn.CreateAckRequest/hl7:msgText</to>
66 </copy>
67 <copy>
68 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:receiver/hl7:device/hl7:id/@root)</from>
69 <to>$CreateAckIn.CreateAckRequest/hl7:senderOID</to>
70 </copy>
71 <copy>
72 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:sender/hl7:device/hl7:id/@root)</from>
73 <to>$CreateAckIn.CreateAckRequest/hl7:receiverOID</to>
74 </copy>
75 </assign>
76 <invoke name="InvokeCreateFaultAck" partnerLink="SubjectDiscoveryDtePL" operation="CreateAck" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" portType="tns:NhincComponentSubDiscTransformsPortType" inputVariable="CreateAckIn" outputVariable="CreateAckOut"/>
77 <assign name="AssignFaultResp">
78 <copy>
79 <from variable="CreateAckOut" part="CreateAckResponse"/>
80 <to variable="RevokePatientOut" part="RevokePatientResponse"/>
81 </copy>
82 </assign>
83 </sequence>
84 </catch>
85 </faultHandlers>
86 <sequence name="Process201303Seq">
87 <assign name="AssignPolicyEngine">
88 <copy>
89 <from variable="RevokePatientIn" part="RevokePatientRequest"/>
90 <to>$CheckPolicySubjectRevokedIn.CheckPolicySubjectRevokedRequest/evtcmn:message</to>
91 </copy>
92 <copy>
93 <from>'Inbound'</from>
94 <to>$CheckPolicySubjectRevokedIn.CheckPolicySubjectRevokedRequest/evtcmn:direction</to>
95 </copy>
96 <copy>
97 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:sender/hl7:device/hl7:id/@root)</from>
98 <to>$CheckPolicySubjectRevokedIn.CheckPolicySubjectRevokedRequest/evtcmn:sendingHomeCommunity</to>
99 </copy>
100 </assign>
101 <invoke name="InvokePolicyEngine" partnerLink="PolicyEnginePL" operation="CheckPolicySubjectRevoked" xmlns:tns="urn:gov:hhs:fha:nhinc:NhincComponentInternalPolicyEngineFacade" portType="tns:NhincComponentInternalPolicyEngineFacadePortType" inputVariable="CheckPolicySubjectRevokedIn" outputVariable="CheckPolicySubjectRevokedOut"/>
102
103 <if name="IfPolicyIsValid">
104 <condition>$CheckPolicySubjectRevokedOut.CheckPolicyResponse/ns0:response/ns1:Result/ns1:Decision = 'Permit'</condition>
105 <sequence name="ValidPolicySeq">
106 <assign name="AssignGetAAsfromHcid">
107 <copy>
108 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:sender/hl7:device/hl7:id/@root)</from>
109 <to>$GetAAsByHCIDIn.GetAssigningAuthoritiesByHomeCommunityRequest/conninfo:HomeCommunity/nccommon:homeCommunityId</to>
110 </copy>
111 </assign>
112 <invoke name="InvokeGetAAsfromHcid" partnerLink="ConnectionManagerPL" operation="GetAssigningAuthoritiesByHomeCommunity" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentconnectionmanager" portType="tns:NhincComponentConnectionManagerPortType" inputVariable="GetAAsByHCIDIn" outputVariable="GetAAsByHCIDOut"/>
113 <forEach name="ForEachAA" parallel="no" counterName="AACtr" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade">
114 <startCounterValue>1</startCounterValue>
115 <finalCounterValue>count($GetAAsByHCIDOut.GetAssigningAuthoritiesByHomeCommunityResponse/conninfo:assigningAuthoritiesId/nccommon:assigningAuthority)</finalCounterValue>
116 <scope name="RetrieveCorrelationsScope">
117 <variables>
118 <variable name="RetrievePatientCorrelationsOut" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RetrievePatientCorrelationsResponseMessage"/>
119 <variable name="RetrievePatientCorrelationsIn" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RetrievePatientCorrelationsRequestMessage"/>
120 </variables>
121 <sequence name="RetrieveCorrelationsSeq">
122 <assign name="AssignRetrieveCorrelations">
123 <copy>
124 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:controlActProcess/hl7:subject/hl7:registrationEvent/hl7:subject1/hl7:patient/hl7:id/@root)</from>
125 <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/ncpc:QualifiedPatientIdentifier/nccommon:AssigningAuthorityIdentifier</to>
126 </copy>
127 <copy>
128 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:controlActProcess/hl7:subject/hl7:registrationEvent/hl7:subject1/hl7:patient/hl7:id/@extension)</from>
129 <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/ncpc:QualifiedPatientIdentifier/nccommon:SubjectIdentifier</to>
130 </copy>
131 <copy>
132 <from>$GetAAsByHCIDOut.GetAssigningAuthoritiesByHomeCommunityResponse/conninfo:assigningAuthoritiesId/nccommon:assigningAuthority[$AACtr]/nccommon:assigningAuthorityId</from>
133 <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/ncpc:TargetAssigningAuthority</to>
134 </copy>
135 </assign>
136 <invoke name="InvokeRetrieveCorrelations" partnerLink="PatientCorrelationPL" operation="RetrievePatientCorrelations" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" portType="tns:PatientCorrelationFacadePortType" inputVariable="RetrievePatientCorrelationsIn" outputVariable="RetrievePatientCorrelationsOut"/>
137 <forEach name="ForEachCorrelation" parallel="no" counterName="CorrelationCtr">
138 <startCounterValue>1</startCounterValue>
139 <finalCounterValue>count($RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/ncpc:QualifiedPatientIdentifier)</finalCounterValue>
140 <scope name="RemoveCorrelationScope">
141 <sequence name="RemoveCorrelationSeq">
142 <assign name="AssignRemoveCorrelation">
143 <copy>
144 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:controlActProcess/hl7:subject/hl7:registrationEvent/hl7:subject1/hl7:patient/hl7:id/@extension)</from>
145 <to>$RemovePatientCorrelationIn.RemovePatientCorrelationRequest/ncpc:QualifiedPatientIdentifier[1]/nccommon:SubjectIdentifier</to>
146 </copy>
147 <copy>
148 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:controlActProcess/hl7:subject/hl7:registrationEvent/hl7:subject1/hl7:patient/hl7:id/@root)</from>
149 <to>$RemovePatientCorrelationIn.RemovePatientCorrelationRequest/ncpc:QualifiedPatientIdentifier[1]/nccommon:AssigningAuthorityIdentifier</to>
150 </copy>
151 <copy>
152 <from>$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/ncpc:QualifiedPatientIdentifier[$CorrelationCtr]/nccommon:SubjectIdentifier</from>
153 <to>$RemovePatientCorrelationIn.RemovePatientCorrelationRequest/ncpc:QualifiedPatientIdentifier[2]/nccommon:SubjectIdentifier</to>
154 </copy>
155 <copy>
156 <from>$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/ncpc:QualifiedPatientIdentifier[$CorrelationCtr]/nccommon:AssigningAuthorityIdentifier</from>
157 <to>$RemovePatientCorrelationIn.RemovePatientCorrelationRequest/ncpc:QualifiedPatientIdentifier[2]/nccommon:AssigningAuthorityIdentifier</to>
158 </copy>
159 </assign>
160 <invoke name="InvokeRemoveCorrelation" partnerLink="PatientCorrelationPL" operation="RemovePatientCorrelation" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" portType="tns:PatientCorrelationFacadePortType" inputVariable="RemovePatientCorrelationIn" outputVariable="RemovePatientCorrelationOut"/>
161 </sequence>
162 </scope>
163 </forEach>
164 </sequence>
165 </scope>
166 </forEach>
167 <assign name="AssignCreateAck">
168 <copy>
169 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:receiver/hl7:device/hl7:id/@root)</from>
170 <to>$CreateAckIn.CreateAckRequest/hl7:senderOID</to>
171 </copy>
172 <copy>
173 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:sender/hl7:device/hl7:id/@root)</from>
174 <to>$CreateAckIn.CreateAckRequest/hl7:receiverOID</to>
175 </copy>
176 <copy>
177 <from>'Success'</from>
178 <to>$CreateAckIn.CreateAckRequest/hl7:msgText</to>
179 </copy>
180 <copy>
181 <from>$RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:id</from>
182 <to>$CreateAckIn.CreateAckRequest/hl7:origMsgId</to>
183 </copy>
184 </assign>
185 <invoke name="InvokeCreateAck" partnerLink="SubjectDiscoveryDtePL" operation="CreateAck" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" portType="tns:NhincComponentSubDiscTransformsPortType" inputVariable="CreateAckIn" outputVariable="CreateAckOut"/>
186 <assign name="Assign201303Resp">
187 <copy>
188 <from variable="CreateAckOut" part="CreateAckResponse"/>
189 <to variable="RevokePatientOut" part="RevokePatientResponse"/>
190 </copy>
191 </assign>
192 </sequence>
193 <else>
194 <sequence name="InvalidPolicySeq">
195 <assign name="AssignCreatePolicyFailedAck">
196 <copy>
197 <from>$RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:id</from>
198 <to>$CreateAckIn.CreateAckRequest/hl7:origMsgId</to>
199 </copy>
200 <copy>
201 <from>'Error - Policy Check Failed'</from>
202 <to>$CreateAckIn.CreateAckRequest/hl7:msgText</to>
203 </copy>
204 <copy>
205 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:receiver/hl7:device/hl7:id/@root)</from>
206 <to>$CreateAckIn.CreateAckRequest/hl7:senderOID</to>
207 </copy>
208 <copy>
209 <from>string($RevokePatientIn.RevokePatientRequest/hl7:PRPA_IN201303UV/hl7:sender/hl7:device/hl7:id/@root)</from>
210 <to>$CreateAckIn.CreateAckRequest/hl7:receiverOID</to>
211 </copy>
212 </assign>
213 <invoke name="InvokeCreatePolicyFailedAck" partnerLink="SubjectDiscoveryDtePL" operation="CreateAck" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentsubdisctransforms" portType="tns:NhincComponentSubDiscTransformsPortType" inputVariable="CreateAckIn" outputVariable="CreateAckOut"/>
214 <assign name="AssignInvalidPolicyResp">
215 <copy>
216 <from variable="CreateAckOut" part="CreateAckResponse"/>
217 <to variable="RevokePatientOut" part="RevokePatientResponse"/>
218 </copy>
219 </assign>
220 </sequence>
221 </else>
222 </if>
223 <reply name="Reply201303" partnerLink="NhincRevokePL" operation="RevokePatient" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalsubdiscovery201303orch" portType="tns:NhincComponentInternalSubDiscovery201303OrchPortType" variable="RevokePatientOut"/>
224 </sequence>
225 </scope>
226 </sequence>
227</process>
Note: See TracBrowser for help on using the repository browser.