[507] | 1 | <?xml version="1.0" encoding="UTF-8"?>
|
---|
| 2 | <process
|
---|
| 3 | name="EntityDocQuery"
|
---|
| 4 | targetNamespace="urn:gov:hhs:fha:nhinc:gateway:entitybpel:entitydocquery"
|
---|
| 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:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling"
|
---|
| 10 | xmlns:tns="urn:gov:hhs:fha:nhinc:gateway:entitybpel:entitydocquery"
|
---|
| 11 | xmlns:nccommonent="urn:gov:hhs:fha:nhinc:common:nhinccommonentity"
|
---|
| 12 | xmlns:query="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0"
|
---|
| 13 | xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
|
---|
| 14 | xmlns:nccommon="urn:gov:hhs:fha:nhinc:common:nhinccommon"
|
---|
| 15 | xmlns:patcorrfacade="urn:gov:hhs:fha:nhinc:common:patientcorrelationfacade"
|
---|
| 16 | xmlns:agg="urn:gov:hhs:fha:nhinc:gateway:aggregator"
|
---|
| 17 | xmlns:entcommonintorch="urn:gov:hhs:fha:nhinc:common:entitycommoninternalorch" xmlns:ns0="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:ns1="urn:gov:hhs:fha:nhinc:common:propertyaccess" xmlns:ns2="urn:gov:hhs:fha:nhinc:common:nhinccommonadapter" xmlns:ns3="urn:gov:hhs:fha:nhinc:common:auditlog">
|
---|
| 18 | <import namespace="urn:gov:hhs:fha:nhinc:entitydocquery" location="Interfaces/wsdl/EntityDocQuery.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:nhinccomponentaggregator" location="Interfaces/wsdl/NhincComponentAggregator.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
|
---|
| 21 | <import namespace="urn:gov:hhs:fha:nhinc:entitycomponentinternaldocqueryorch" location="Interfaces/wsdl/EntityComponentInternalDocQueryOrch.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
|
---|
| 22 | <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentpropaccessor" location="Interfaces/wsdl/NhincComponentPropAccessor.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
|
---|
| 23 | <import namespace="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" location="Interfaces/wsdl/NhincComponentInternalAuditRepository.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
|
---|
| 24 | <partnerLinks>
|
---|
| 25 | <partnerLink name="PropAccessorPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentpropaccessor" partnerLinkType="tns:NhincComponentPropAccessor" partnerRole="NhincComponentPropAccessorPortTypeRole"/>
|
---|
| 26 | <partnerLink name="AggregatorPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" partnerLinkType="tns:NhincComponentAggregator" partnerRole="NhincComponentAggregatorPortTypeRole"/>
|
---|
| 27 | <partnerLink name="PatientCorrelationPL" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" partnerLinkType="tns:PatientCorrelationFacadePartnerLinkType" partnerRole="PatientCorrelationPortTypeRole"/>
|
---|
| 28 | <partnerLink name="EntityCompIntDocQueryOrchPL" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternaldocqueryorch" partnerLinkType="tns:EntityComponentInternalDocQueryOrch" partnerRole="EntityComponentInternalDocQueryOrchPortTypeRole"/>
|
---|
| 29 | <partnerLink name="AuditRepositoryPL" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" partnerLinkType="tns:NhincComponentInternalAuditRepository" partnerRole="NhincComponentInternalAuditRepositoryPortTypeRole"/>
|
---|
| 30 | <partnerLink name="EntityDocQueryPL" xmlns:tns="urn:gov:hhs:fha:nhinc:entitydocquery" partnerLinkType="tns:EntityDocQuery" myRole="EntityDocQueryPortTypeRole"/>
|
---|
| 31 | </partnerLinks>
|
---|
| 32 | <variables>
|
---|
| 33 | <variable name="LogAdhocQueryResultOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" messageType="tns:LogEventResponseMessage"/>
|
---|
| 34 | <variable name="LogAdhocQueryResultIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" messageType="tns:LogAdhocQueryResultRequestMessage"/>
|
---|
| 35 | <variable name="LogAdhocQueryOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" messageType="tns:LogEventResponseMessage"/>
|
---|
| 36 | <variable name="LogAdhocQueryIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" messageType="tns:LogAdhocQueryRequestMessage"/>
|
---|
| 37 | <variable name="RespondingGateway_CrossGatewayQueryIn" xmlns:tns="urn:gov:hhs:fha:nhinc:entitydocquery" messageType="tns:RespondingGateway_CrossGatewayQueryRequestMessage"/>
|
---|
| 38 | <variable name="RespondingGateway_CrossGatewayQueryOut" xmlns:tns="urn:gov:hhs:fha:nhinc:entitydocquery" messageType="tns:RespondingGateway_CrossGatewayQueryResponseMessage"/>
|
---|
| 39 | </variables>
|
---|
| 40 | <sequence>
|
---|
| 41 | <receive name="ReceiveEnityDocQuery" createInstance="yes" partnerLink="EntityDocQueryPL" operation="RespondingGateway_CrossGatewayQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:entitydocquery" portType="tns:EntityDocQueryPortType" variable="RespondingGateway_CrossGatewayQueryIn"/>
|
---|
| 42 | <assign name="AssignAuditReposDQReq">
|
---|
| 43 | <sxt:trace>
|
---|
| 44 | <sxt:log level="info" location="onStart">
|
---|
| 45 | <from>'Begin Receive Entity Doc Query Input Message is: '</from>
|
---|
| 46 | </sxt:log>
|
---|
| 47 | <sxt:log level="info" location="onStart">
|
---|
| 48 | <from variable="RespondingGateway_CrossGatewayQueryIn"/>
|
---|
| 49 | </sxt:log>
|
---|
| 50 | </sxt:trace>
|
---|
| 51 | <copy>
|
---|
| 52 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest</from>
|
---|
| 53 | <to>$LogAdhocQueryIn.LogAdhocQueryRequest/ns3:message/query:AdhocQueryRequest</to>
|
---|
| 54 | </copy>
|
---|
| 55 | <copy>
|
---|
| 56 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:assertion</from>
|
---|
| 57 | <to>$LogAdhocQueryIn.LogAdhocQueryRequest/ns3:message/ns3:assertion</to>
|
---|
| 58 | </copy>
|
---|
| 59 | <copy>
|
---|
| 60 | <from>'Inbound'</from>
|
---|
| 61 | <to>$LogAdhocQueryIn.LogAdhocQueryRequest/ns3:direction</to>
|
---|
| 62 | </copy>
|
---|
| 63 | <copy>
|
---|
| 64 | <from>'Entity'</from>
|
---|
| 65 | <to>$LogAdhocQueryIn.LogAdhocQueryRequest/ns3:interface</to>
|
---|
| 66 | </copy>
|
---|
| 67 | </assign>
|
---|
| 68 | <invoke name="InvokeAuditReposDQReq" partnerLink="AuditRepositoryPL" operation="LogAdhocQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" portType="tns:NhincComponentInternalAuditRepositoryPortType" inputVariable="LogAdhocQueryIn" outputVariable="LogAdhocQueryOut"/>
|
---|
| 69 | <scope name="EntityDocQueryScope">
|
---|
| 70 | <variables>
|
---|
| 71 | <variable name="QuerySelf" type="xsd:boolean"/>
|
---|
| 72 | <variable name="GetPropertyOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentpropaccessor" messageType="tns:GetPropertyResponseMessage"/>
|
---|
| 73 | <variable name="GetPropertyIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentpropaccessor" messageType="tns:GetPropertyRequestMessage"/>
|
---|
| 74 | <variable name="CorrelationCount" type="xsd:integer"/>
|
---|
| 75 | <variable name="SlotCount" type="xsd:integer"/>
|
---|
| 76 | <variable name="StartTransactionDocQueryOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" messageType="tns:StartTransactionDocQueryResponseMessage"/>
|
---|
| 77 | <variable name="StartTransactionDocQueryIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" messageType="tns:StartTransactionDocQueryRequestMessage"/>
|
---|
| 78 | <variable name="RetrievePatientCorrelationsOut" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RetrievePatientCorrelationsResponseMessage"/>
|
---|
| 79 | <variable name="RetrievePatientCorrelationsIn" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" messageType="tns:RetrievePatientCorrelationsRequestMessage"/>
|
---|
| 80 | </variables>
|
---|
| 81 | <faultHandlers>
|
---|
| 82 | <catch faultName="sxeh:systemFault" faultVariable="systemFaultVar" faultMessageType="sxeh:faultMessage">
|
---|
| 83 | <sequence name="SystemFaultSeq">
|
---|
| 84 | <assign name="AssignFromFaultHandler">
|
---|
| 85 | <sxt:trace>
|
---|
| 86 | <sxt:log level="info" location="onStart">
|
---|
| 87 | <from>'EntityDocQuery.bpel - System fault encounterd processing an AdhocQuery request. Fault details follow...'</from>
|
---|
| 88 | </sxt:log>
|
---|
| 89 | <sxt:log level="warning" location="onStart">
|
---|
| 90 | <from variable="systemFaultVar"/>
|
---|
| 91 | </sxt:log>
|
---|
| 92 | </sxt:trace>
|
---|
| 93 | <copy>
|
---|
| 94 | <from>'urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure'</from>
|
---|
| 95 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/@status</to>
|
---|
| 96 | </copy>
|
---|
| 97 | <copy>
|
---|
| 98 | <from>'XDSRegistryError'</from>
|
---|
| 99 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@errorCode</to>
|
---|
| 100 | </copy>
|
---|
| 101 | <copy>
|
---|
| 102 | <from>'Error'</from>
|
---|
| 103 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@severity</to>
|
---|
| 104 | </copy>
|
---|
| 105 | <copy>
|
---|
| 106 | <from>'Fault encountered processing a document query'</from>
|
---|
| 107 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@codeContext</to>
|
---|
| 108 | </copy>
|
---|
| 109 | </assign>
|
---|
| 110 | </sequence>
|
---|
| 111 | </catch>
|
---|
| 112 | </faultHandlers>
|
---|
| 113 | <sequence name="EntityDocQuerySeq">
|
---|
| 114 | <sequence name="ExtractPatientIdSeq">
|
---|
| 115 | <assign name="AssignSlotCount">
|
---|
| 116 | <copy>
|
---|
| 117 | <from>count($RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest/rim:AdhocQuery/rim:Slot)</from>
|
---|
| 118 | <to variable="SlotCount"/>
|
---|
| 119 | </copy>
|
---|
| 120 | <copy>
|
---|
| 121 | <from>'DefaultToPreventNull'</from>
|
---|
| 122 | <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:SubjectIdentifier</to>
|
---|
| 123 | </copy>
|
---|
| 124 | </assign>
|
---|
| 125 | <forEach name="ForEachSlotList" parallel="no" counterName="SlotListCounter">
|
---|
| 126 | <startCounterValue>1</startCounterValue>
|
---|
| 127 | <finalCounterValue>$SlotCount</finalCounterValue>
|
---|
| 128 | <scope name="CollectPatientIdScope">
|
---|
| 129 | <variables>
|
---|
| 130 | <variable name="TargetCommunityCount" type="xsd:integer"/>
|
---|
| 131 | <variable name="SlotName" type="xsd:string"/>
|
---|
| 132 | </variables>
|
---|
| 133 | <faultHandlers>
|
---|
| 134 | <catch faultName="sxeh:systemFault" faultVariable="collectPatientSystemFaultVar" faultMessageType="sxeh:faultMessage">
|
---|
| 135 | <empty name="LogError">
|
---|
| 136 | <sxt:trace>
|
---|
| 137 | <sxt:log level="info" location="onStart">
|
---|
| 138 | <from>'EntityDocQuery.bpel - Error collecting patient ideentifier. Fault details follow...'</from>
|
---|
| 139 | </sxt:log>
|
---|
| 140 | <sxt:log level="warning" location="onStart">
|
---|
| 141 | <from variable="collectPatientSystemFaultVar"/>
|
---|
| 142 | </sxt:log>
|
---|
| 143 | </sxt:trace>
|
---|
| 144 | </empty>
|
---|
| 145 | </catch>
|
---|
| 146 | </faultHandlers>
|
---|
| 147 | <sequence name="CollectPatientIdSeq">
|
---|
| 148 | <assign name="AssignSlotName">
|
---|
| 149 | <copy>
|
---|
| 150 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest/rim:AdhocQuery/rim:Slot[$SlotListCounter]/@name</from>
|
---|
| 151 | <to variable="SlotName"/>
|
---|
| 152 | </copy>
|
---|
| 153 | </assign>
|
---|
| 154 | <if name="IfPatientIdSlot">
|
---|
| 155 | <condition>'$XDSDocumentEntryPatientId' = $SlotName</condition>
|
---|
| 156 | <sequence name="PatientIdSlotSeq">
|
---|
| 157 | <assign name="AssignPatientIdFromSlot">
|
---|
| 158 | <sxt:trace>
|
---|
| 159 | <sxt:log level="info" location="onComplete">
|
---|
| 160 | <from>concat('Extracted patient id: ', $RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:SubjectIdentifier, ', assigning authority: ', $RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:AssigningAuthorityIdentifier)</from>
|
---|
| 161 | </sxt:log>
|
---|
| 162 | </sxt:trace>
|
---|
| 163 | <copy>
|
---|
| 164 | <from>substring-before($RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest/rim:AdhocQuery/rim:Slot[$SlotListCounter]/rim:ValueList/rim:Value, '^')</from>
|
---|
| 165 | <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:SubjectIdentifier</to>
|
---|
| 166 | </copy>
|
---|
| 167 | <copy>
|
---|
| 168 | <from>substring-before(substring-after($RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest/rim:AdhocQuery/rim:Slot[$SlotListCounter]/rim:ValueList/rim:Value, '&'), '&')
|
---|
| 169 | <sxed:editor>
|
---|
| 170 | <sxed:predicate path="$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest/rim:AdhocQuery/rim:Slot[$SlotListCounter]" source="from"/>
|
---|
| 171 | </sxed:editor>
|
---|
| 172 | </from>
|
---|
| 173 | <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:AssigningAuthorityIdentifier</to>
|
---|
| 174 | </copy>
|
---|
| 175 | </assign>
|
---|
| 176 | <if name="IfHasTargetCommunities">
|
---|
| 177 | <condition>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:NhinTargetCommunities</condition>
|
---|
| 178 | <sequence name="Sequence4">
|
---|
| 179 | <assign name="AssignTargetCommunityCount">
|
---|
| 180 | <copy>
|
---|
| 181 | <from>count($RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:NhinTargetCommunities/nccommon:nhinTargetCommunity)</from>
|
---|
| 182 | <to variable="TargetCommunityCount"/>
|
---|
| 183 | </copy>
|
---|
| 184 | </assign>
|
---|
| 185 | <if name="IfHasCommunities">
|
---|
| 186 | <condition>$TargetCommunityCount > 0</condition>
|
---|
| 187 | <forEach name="ForEachTargetCommunity" parallel="no" counterName="TargetCommunityCounter">
|
---|
| 188 | <startCounterValue>1</startCounterValue>
|
---|
| 189 | <finalCounterValue>$TargetCommunityCount</finalCounterValue>
|
---|
| 190 | <scope name="TargetCommunityScope">
|
---|
| 191 | <assign name="AssignTargetCommunity">
|
---|
| 192 | <copy>
|
---|
| 193 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:NhinTargetCommunities/nccommon:nhinTargetCommunity[$TargetCommunityCounter]/nccommon:homeCommunity/nccommon:homeCommunityId</from>
|
---|
| 194 | <to>$RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:TargetHomeCommunity[$TargetCommunityCounter]</to>
|
---|
| 195 | </copy>
|
---|
| 196 | </assign>
|
---|
| 197 | </scope>
|
---|
| 198 | </forEach>
|
---|
| 199 | </if>
|
---|
| 200 | </sequence>
|
---|
| 201 | </if>
|
---|
| 202 | </sequence>
|
---|
| 203 | </if>
|
---|
| 204 | </sequence>
|
---|
| 205 | </scope>
|
---|
| 206 | </forEach>
|
---|
| 207 | </sequence>
|
---|
| 208 | <invoke name="InvokeRetrieveCorrelations" partnerLink="PatientCorrelationPL" operation="RetrievePatientCorrelations" xmlns:tns="urn:gov:hhs:fha:nhinc:componentpatientcorrelationfacade" portType="tns:PatientCorrelationFacadePortType" inputVariable="RetrievePatientCorrelationsIn" outputVariable="RetrievePatientCorrelationsOut"/>
|
---|
| 209 | <assign name="AssignAggregatorStartInput">
|
---|
| 210 | <sxt:trace>
|
---|
| 211 | <sxt:log level="info" location="onStart">
|
---|
| 212 | <from>'Completed Call to Patient Correlation Service: '</from>
|
---|
| 213 | </sxt:log>
|
---|
| 214 | <sxt:log level="fine" location="onStart">
|
---|
| 215 | <from variable="RetrievePatientCorrelationsOut"/>
|
---|
| 216 | </sxt:log>
|
---|
| 217 | </sxt:trace>
|
---|
| 218 | <copy>
|
---|
| 219 | <from>count($RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientIdentifier)</from>
|
---|
| 220 | <to variable="CorrelationCount"/>
|
---|
| 221 | </copy>
|
---|
| 222 | <copy>
|
---|
| 223 | <from>$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientIdentifier</from>
|
---|
| 224 | <to>$StartTransactionDocQueryIn.StartTransactionDocQueryRequest/agg:qualifiedPatientIdentifiers/nccommon:QualifiedSubjectIdentifier</to>
|
---|
| 225 | </copy>
|
---|
| 226 | </assign>
|
---|
| 227 | <invoke name="InvokeAggregatorStart" partnerLink="AggregatorPL" operation="StartTransactionDocQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" portType="tns:NhincComponentAggregatorPortType" inputVariable="StartTransactionDocQueryIn" outputVariable="StartTransactionDocQueryOut">
|
---|
| 228 | <sxt:trace>
|
---|
| 229 | <sxt:log level="info" location="onComplete">
|
---|
| 230 | <from>concat('Called start aggregator - transaction id: ', $StartTransactionDocQueryOut.StartTransactionDocQueryResponse/agg:transactionId)</from>
|
---|
| 231 | </sxt:log>
|
---|
| 232 | </sxt:trace>
|
---|
| 233 | </invoke>
|
---|
| 234 | <assign name="AssignGetQuerySelfInput">
|
---|
| 235 | <copy>
|
---|
| 236 | <from>'gateway'</from>
|
---|
| 237 | <to>$GetPropertyIn.GetPropertyRequest/ns1:propertyFile</to>
|
---|
| 238 | </copy>
|
---|
| 239 | <copy>
|
---|
| 240 | <from>'documentQueryQuerySelf'</from>
|
---|
| 241 | <to>$GetPropertyIn.GetPropertyRequest/ns1:propertyName</to>
|
---|
| 242 | </copy>
|
---|
| 243 | </assign>
|
---|
| 244 | <invoke name="InvokeGetQuerySelfProperty" partnerLink="PropAccessorPL" operation="GetProperty" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentpropaccessor" portType="tns:NhincComponentPropAccessorPortType" inputVariable="GetPropertyIn" outputVariable="GetPropertyOut"/>
|
---|
| 245 | <assign name="AssignQuerySelfFlag">
|
---|
| 246 | <copy>
|
---|
| 247 | <from>$GetPropertyOut.GetPropertyResponse/ns1:propertyValue = 'true'</from>
|
---|
| 248 | <to variable="QuerySelf"/>
|
---|
| 249 | </copy>
|
---|
| 250 | </assign>
|
---|
| 251 | <forEach name="ForEachCorrelation" parallel="no" counterName="CorrelationCounter">
|
---|
| 252 | <startCounterValue>1</startCounterValue>
|
---|
| 253 | <finalCounterValue>$CorrelationCount</finalCounterValue>
|
---|
| 254 | <scope name="CorrelationScope">
|
---|
| 255 | <variables>
|
---|
| 256 | <variable name="SendAdhocQueryOut" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternaldocqueryorch" messageType="tns:SendAdhocQueryResponseMessage"/>
|
---|
| 257 | <variable name="IsHomeCommunity" type="xsd:boolean"/>
|
---|
| 258 | <variable name="SendAdhocQueryIn" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternaldocqueryorch" messageType="tns:SendAdhocQueryRequestMessage"/>
|
---|
| 259 | </variables>
|
---|
| 260 | <sequence name="CorrelationSeq">
|
---|
| 261 | <assign name="AssignIsHomeCommunityFlag">
|
---|
| 262 | <copy>
|
---|
| 263 | <from>$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientIdentifier[$CorrelationCounter]/nccommon:AssigningAuthorityIdentifier = $RetrievePatientCorrelationsIn.RetrievePatientCorrelationsRequest/patcorrfacade:QualifiedPatientIdentifier/nccommon:AssigningAuthorityIdentifier
|
---|
| 264 | <sxed:editor>
|
---|
| 265 | <sxed:predicate path="$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientCorrelation/nccommon:QualifiedSubjectIdentifier[$CorrelationCounter]" source="from"/>
|
---|
| 266 | </sxed:editor>
|
---|
| 267 | </from>
|
---|
| 268 | <to variable="IsHomeCommunity"/>
|
---|
| 269 | </copy>
|
---|
| 270 | </assign>
|
---|
| 271 | <if name="IfSendQuery">
|
---|
| 272 | <condition>$QuerySelf or not($IsHomeCommunity)</condition>
|
---|
| 273 | <sequence name="NotHomeCommunitySeq">
|
---|
| 274 | <assign name="AssignDocQuerySenderInput">
|
---|
| 275 | <copy>
|
---|
| 276 | <from>$StartTransactionDocQueryOut.StartTransactionDocQueryResponse/agg:transactionId</from>
|
---|
| 277 | <to>$SendAdhocQueryIn.SendAdhocQueryRequest/entcommonintorch:TransactionId</to>
|
---|
| 278 | </copy>
|
---|
| 279 | <copy>
|
---|
| 280 | <from>$RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientIdentifier[$CorrelationCounter]</from>
|
---|
| 281 | <to>$SendAdhocQueryIn.SendAdhocQueryRequest/nccommon:QualifiedSubjectIdentifier</to>
|
---|
| 282 | </copy>
|
---|
| 283 | <copy>
|
---|
| 284 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:assertion</from>
|
---|
| 285 | <to>$SendAdhocQueryIn.SendAdhocQueryRequest/nccommon:Assertion</to>
|
---|
| 286 | </copy>
|
---|
| 287 | <copy>
|
---|
| 288 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/query:AdhocQueryRequest</from>
|
---|
| 289 | <to>$SendAdhocQueryIn.SendAdhocQueryRequest/query:AdhocQueryRequest</to>
|
---|
| 290 | </copy>
|
---|
| 291 | </assign>
|
---|
| 292 | <invoke name="InvokeInternalDocQueryOrch" partnerLink="EntityCompIntDocQueryOrchPL" operation="SendAdhocQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:entitycomponentinternaldocqueryorch" portType="tns:EntityComponentInternalDocQueryOrchPortType" inputVariable="SendAdhocQueryIn" outputVariable="SendAdhocQueryOut">
|
---|
| 293 | <sxt:trace>
|
---|
| 294 | <sxt:log level="warning" location="onStart">
|
---|
| 295 | <from>'### Sending a message to the entity internal orch'</from>
|
---|
| 296 | </sxt:log>
|
---|
| 297 | <sxt:log level="info" location="onStart">
|
---|
| 298 | <from variable="SendAdhocQueryIn"/>
|
---|
| 299 | </sxt:log>
|
---|
| 300 | </sxt:trace>
|
---|
| 301 | </invoke>
|
---|
| 302 | <empty name="LogSenderStatus">
|
---|
| 303 | <sxt:trace>
|
---|
| 304 | <sxt:log level="info" location="onStart">
|
---|
| 305 | <from>concat('Status from internal doc query sender: ', $SendAdhocQueryOut.SendAdhocQueryResponse/entcommonintorch:Status)</from>
|
---|
| 306 | </sxt:log>
|
---|
| 307 | </sxt:trace>
|
---|
| 308 | </empty>
|
---|
| 309 | </sequence>
|
---|
| 310 | <else>
|
---|
| 311 | <empty name="LogWasHomeCommunity">
|
---|
| 312 | <sxt:trace>
|
---|
| 313 | <sxt:log level="info" location="onStart">
|
---|
| 314 | <from>concat('Not sending to this assigning authority: ', $RetrievePatientCorrelationsOut.RetrievePatientCorrelationsResponse/patcorrfacade:QualifiedPatientCorrelation/nccommon:QualifiedSubjectIdentifier[$CorrelationCounter]/nccommon:AssigningAuthorityIdentifier)</from>
|
---|
| 315 | </sxt:log>
|
---|
| 316 | </sxt:trace>
|
---|
| 317 | </empty>
|
---|
| 318 | </else>
|
---|
| 319 | </if>
|
---|
| 320 | </sequence>
|
---|
| 321 | </scope>
|
---|
| 322 | </forEach>
|
---|
| 323 | <scope name="PollForResultsScope">
|
---|
| 324 | <variables>
|
---|
| 325 | <variable name="AggregationFailed" type="xsd:boolean"/>
|
---|
| 326 | <variable name="AggregatorCompleted" type="xsd:boolean"/>
|
---|
| 327 | <variable name="GetAggResultsDocQueryOut" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" messageType="tns:GetAggResultsDocQueryResponseMessage"/>
|
---|
| 328 | <variable name="GetAggResultsDocQueryIn" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" messageType="tns:GetAggResultsDocQueryRequestMessage"/>
|
---|
| 329 | <variable name="TimedOut" type="xsd:boolean"/>
|
---|
| 330 | </variables>
|
---|
| 331 | <eventHandlers>
|
---|
| 332 | <onAlarm>
|
---|
| 333 | <for>'P0Y0M0DT0H0M60.0S'</for>
|
---|
| 334 | <scope name="TimedOutScope">
|
---|
| 335 | <sequence name="Sequence2">
|
---|
| 336 | <assign name="AssignTimedOut">
|
---|
| 337 | <sxt:trace>
|
---|
| 338 | <sxt:log level="info" location="onStart">
|
---|
| 339 | <from>'Aggregator timeout reached'</from>
|
---|
| 340 | </sxt:log>
|
---|
| 341 | </sxt:trace>
|
---|
| 342 | <copy>
|
---|
| 343 | <from>true()</from>
|
---|
| 344 | <to variable="TimedOut"/>
|
---|
| 345 | </copy>
|
---|
| 346 | </assign>
|
---|
| 347 | <assign name="AssignGetAggResultsInput">
|
---|
| 348 | <sxt:trace>
|
---|
| 349 | <sxt:log level="info" location="onStart">
|
---|
| 350 | <from>'Assigning get agg results input'</from>
|
---|
| 351 | </sxt:log>
|
---|
| 352 | </sxt:trace>
|
---|
| 353 | <copy>
|
---|
| 354 | <from>$StartTransactionDocQueryOut.StartTransactionDocQueryResponse/agg:transactionId</from>
|
---|
| 355 | <to>$GetAggResultsDocQueryIn.GetAggResultsDocQueryRequest/agg:transactionId</to>
|
---|
| 356 | </copy>
|
---|
| 357 | <copy>
|
---|
| 358 | <from>true()</from>
|
---|
| 359 | <to>$GetAggResultsDocQueryIn.GetAggResultsDocQueryRequest/agg:timedOut</to>
|
---|
| 360 | </copy>
|
---|
| 361 | </assign>
|
---|
| 362 | <invoke name="InvokeGetAggResultsFromTimeout" partnerLink="AggregatorPL" operation="GetAggResultsDocQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" portType="tns:NhincComponentAggregatorPortType" inputVariable="GetAggResultsDocQueryIn" outputVariable="GetAggResultsDocQueryOut">
|
---|
| 363 | <sxt:trace>
|
---|
| 364 | <sxt:log level="info" location="onStart">
|
---|
| 365 | <from>'Invoking get agg results from timeout'</from>
|
---|
| 366 | </sxt:log>
|
---|
| 367 | </sxt:trace>
|
---|
| 368 | </invoke>
|
---|
| 369 | <assign name="AssignGetAggResultsOutput">
|
---|
| 370 | <sxt:trace>
|
---|
| 371 | <sxt:log level="info" location="onStart">
|
---|
| 372 | <from>'Assigning get agg results from timeout output'</from>
|
---|
| 373 | </sxt:log>
|
---|
| 374 | </sxt:trace>
|
---|
| 375 | <copy>
|
---|
| 376 | <from>$GetAggResultsDocQueryOut.GetAggResultsDocQueryResponse/query:AdhocQueryResponse</from>
|
---|
| 377 | <to variable="RespondingGateway_CrossGatewayQueryOut" part="RespondingGateway_CrossGatewayQueryResponse"/>
|
---|
| 378 | </copy>
|
---|
| 379 | </assign>
|
---|
| 380 | </sequence>
|
---|
| 381 | </scope>
|
---|
| 382 | </onAlarm>
|
---|
| 383 | </eventHandlers>
|
---|
| 384 | <sequence name="PollForResultsSeq">
|
---|
| 385 | <assign name="AssignDefaults">
|
---|
| 386 | <copy>
|
---|
| 387 | <from>false()</from>
|
---|
| 388 | <to variable="AggregationFailed"/>
|
---|
| 389 | </copy>
|
---|
| 390 | <copy>
|
---|
| 391 | <from>false()</from>
|
---|
| 392 | <to variable="AggregatorCompleted"/>
|
---|
| 393 | </copy>
|
---|
| 394 | <copy>
|
---|
| 395 | <from>false()</from>
|
---|
| 396 | <to variable="TimedOut"/>
|
---|
| 397 | </copy>
|
---|
| 398 | </assign>
|
---|
| 399 | <repeatUntil name="RepeatUntilHaveResultsOrTimeout">
|
---|
| 400 | <sequence name="RepeatUntilFinishedSeq">
|
---|
| 401 | <assign name="AssignGetResultsInput">
|
---|
| 402 | <copy>
|
---|
| 403 | <from>$StartTransactionDocQueryOut.StartTransactionDocQueryResponse/agg:transactionId</from>
|
---|
| 404 | <to>$GetAggResultsDocQueryIn.GetAggResultsDocQueryRequest/agg:transactionId</to>
|
---|
| 405 | </copy>
|
---|
| 406 | <copy>
|
---|
| 407 | <from>false()</from>
|
---|
| 408 | <to>$GetAggResultsDocQueryIn.GetAggResultsDocQueryRequest/agg:timedOut</to>
|
---|
| 409 | </copy>
|
---|
| 410 | </assign>
|
---|
| 411 | <invoke name="InvokeGetAggResults" partnerLink="AggregatorPL" operation="GetAggResultsDocQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentaggregator" portType="tns:NhincComponentAggregatorPortType" inputVariable="GetAggResultsDocQueryIn" outputVariable="GetAggResultsDocQueryOut"/>
|
---|
| 412 | <assign name="AssignCompletedStatus">
|
---|
| 413 | <copy>
|
---|
| 414 | <from>$GetAggResultsDocQueryOut.GetAggResultsDocQueryResponse/agg:status = 'COMPLETE'</from>
|
---|
| 415 | <to variable="AggregatorCompleted"/>
|
---|
| 416 | </copy>
|
---|
| 417 | <copy>
|
---|
| 418 | <from>$GetAggResultsDocQueryOut.GetAggResultsDocQueryResponse/agg:status = 'FAIL'</from>
|
---|
| 419 | <to variable="AggregationFailed"/>
|
---|
| 420 | </copy>
|
---|
| 421 | </assign>
|
---|
| 422 | <if name="IfResultsComplete">
|
---|
| 423 | <condition>$AggregatorCompleted</condition>
|
---|
| 424 | <assign name="AssignAggregatorResults">
|
---|
| 425 | <sxt:trace>
|
---|
| 426 | <sxt:log level="info" location="onStart">
|
---|
| 427 | <from>'Aggregator results complete'</from>
|
---|
| 428 | </sxt:log>
|
---|
| 429 | </sxt:trace>
|
---|
| 430 | <copy>
|
---|
| 431 | <from>$GetAggResultsDocQueryOut.GetAggResultsDocQueryResponse/query:AdhocQueryResponse</from>
|
---|
| 432 | <to variable="RespondingGateway_CrossGatewayQueryOut" part="RespondingGateway_CrossGatewayQueryResponse"/>
|
---|
| 433 | </copy>
|
---|
| 434 | </assign>
|
---|
| 435 | <elseif>
|
---|
| 436 | <condition>$AggregationFailed</condition>
|
---|
| 437 | <assign name="AssignFailedInfo">
|
---|
| 438 | <sxt:trace>
|
---|
| 439 | <sxt:log level="info" location="onStart">
|
---|
| 440 | <from>'Failure status received from aggregator.'</from>
|
---|
| 441 | </sxt:log>
|
---|
| 442 | </sxt:trace>
|
---|
| 443 | <copy>
|
---|
| 444 | <from>'urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure'</from>
|
---|
| 445 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/@status</to>
|
---|
| 446 | </copy>
|
---|
| 447 | <copy>
|
---|
| 448 | <from>'XDSRegistryError'</from>
|
---|
| 449 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@errorCode</to>
|
---|
| 450 | </copy>
|
---|
| 451 | <copy>
|
---|
| 452 | <from>'Error'</from>
|
---|
| 453 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@severity</to>
|
---|
| 454 | </copy>
|
---|
| 455 | <copy>
|
---|
| 456 | <from>'Error aggregating query results'</from>
|
---|
| 457 | <to>$RespondingGateway_CrossGatewayQueryOut.RespondingGateway_CrossGatewayQueryResponse/ns0:RegistryErrorList/ns0:RegistryError/@codeContext</to>
|
---|
| 458 | </copy>
|
---|
| 459 | </assign>
|
---|
| 460 | </elseif>
|
---|
| 461 | <else>
|
---|
| 462 | <wait name="Pause">
|
---|
| 463 | <sxt:trace>
|
---|
| 464 | <sxt:log level="info" location="onStart">
|
---|
| 465 | <from>'Pausing while waiting for doc query results'</from>
|
---|
| 466 | </sxt:log>
|
---|
| 467 | </sxt:trace>
|
---|
| 468 | <for>'P0Y0M0DT0H0M1.0S'</for>
|
---|
| 469 | </wait>
|
---|
| 470 | </else>
|
---|
| 471 | </if>
|
---|
| 472 | </sequence>
|
---|
| 473 | <condition>$AggregatorCompleted or $AggregationFailed or $TimedOut</condition>
|
---|
| 474 | </repeatUntil>
|
---|
| 475 | </sequence>
|
---|
| 476 | </scope>
|
---|
| 477 | </sequence>
|
---|
| 478 | </scope>
|
---|
| 479 | <assign name="AssignAuditReposDQRes">
|
---|
| 480 | <copy>
|
---|
| 481 | <from variable="RespondingGateway_CrossGatewayQueryOut" part="RespondingGateway_CrossGatewayQueryResponse"/>
|
---|
| 482 | <to>$LogAdhocQueryResultIn.LogAdhocQueryResultRequest/ns3:message/query:AdhocQueryResponse</to>
|
---|
| 483 | </copy>
|
---|
| 484 | <copy>
|
---|
| 485 | <from>$RespondingGateway_CrossGatewayQueryIn.RespondingGateway_CrossGatewayQueryRequest/nccommonent:assertion</from>
|
---|
| 486 | <to>$LogAdhocQueryResultIn.LogAdhocQueryResultRequest/ns3:message/ns3:assertion</to>
|
---|
| 487 | </copy>
|
---|
| 488 | <copy>
|
---|
| 489 | <from>'Outbound'</from>
|
---|
| 490 | <to>$LogAdhocQueryResultIn.LogAdhocQueryResultRequest/ns3:direction</to>
|
---|
| 491 | </copy>
|
---|
| 492 | <copy>
|
---|
| 493 | <from>'Entity'</from>
|
---|
| 494 | <to>$LogAdhocQueryResultIn.LogAdhocQueryResultRequest/ns3:interface</to>
|
---|
| 495 | </copy>
|
---|
| 496 | </assign>
|
---|
| 497 | <invoke name="InvokeAuditReposDQRes" partnerLink="AuditRepositoryPL" operation="LogAdhocQueryResult" xmlns:tns="urn:gov:hhs:fha:nhinc:nhinccomponentinternalauditrepository" portType="tns:NhincComponentInternalAuditRepositoryPortType" inputVariable="LogAdhocQueryResultIn" outputVariable="LogAdhocQueryResultOut">
|
---|
| 498 | <sxt:trace>
|
---|
| 499 | <sxt:log level="info" location="onStart">
|
---|
| 500 | <from>'End of Entity Doc Query the response is: '</from>
|
---|
| 501 | </sxt:log>
|
---|
| 502 | <sxt:log level="info" location="onStart">
|
---|
| 503 | <from variable="LogAdhocQueryResultOut"/>
|
---|
| 504 | </sxt:log>
|
---|
| 505 | </sxt:trace>
|
---|
| 506 | </invoke>
|
---|
| 507 | <reply name="ReplyEntityDocQuery" partnerLink="EntityDocQueryPL" operation="RespondingGateway_CrossGatewayQuery" xmlns:tns="urn:gov:hhs:fha:nhinc:entitydocquery" portType="tns:EntityDocQueryPortType" variable="RespondingGateway_CrossGatewayQueryOut"/>
|
---|
| 508 | </sequence>
|
---|
| 509 | </process>
|
---|