|
106 | 106 | </Step> |
107 | 107 | <Condition>(raisefault.RaiseFault.MissingAsid.failed = true)</Condition> |
108 | 108 | </FaultRule> |
109 | | - <FaultRule name="single_asid_ods_header_not_in_partner_list_error"> |
| 109 | + <FaultRule name="ods_header_not_in_partner_list_error"> |
110 | 110 | <Step> |
111 | 111 | <Condition>(isFhirR4Path = false)</Condition> |
112 | 112 | <Name>AssignMessage.SetOperationOutcomeVariablesPreR4</Name> |
|
115 | 115 | <Condition>(isFhirR4Path = false)</Condition> |
116 | 116 | <Name>AssignMessage.SetOperationOutcomeODSHeaderValueNotInPartnerListPreR4</Name> |
117 | 117 | </Step> |
| 118 | + <Step> |
| 119 | + <Condition>(isFhirR4Path = true)</Condition> |
| 120 | + <Name>AssignMessage.SetOperationOutcomeVariablesR4</Name> |
| 121 | + </Step> |
118 | 122 | <Step> |
119 | 123 | <Condition>(isFhirR4Path = true)</Condition> |
120 | 124 | <Name>AssignMessage.SetOperationOutcomeODSHeaderValueNotInPartnerListR4</Name> |
|
124 | 128 | </Step> |
125 | 129 | <Condition>(raisefault.RaiseFault.CheckAllowlistFailed.failed = true) and (validation.errorDescription ~~ ".*Invalid ODS code.*")</Condition> |
126 | 130 | </FaultRule> |
127 | | - <FaultRule name="single_asid_ods_header_missing_error"> |
| 131 | + <FaultRule name="ods_header_missing_error"> |
128 | 132 | <Step> |
129 | 133 | <Condition>(isFhirR4Path = false)</Condition> |
130 | 134 | <Name>AssignMessage.SetOperationOutcomeVariablesPreR4</Name> |
|
133 | 137 | <Condition>(isFhirR4Path = false)</Condition> |
134 | 138 | <Name>AssignMessage.SetOperationOutcomeODSHeaderMissingPreR4</Name> |
135 | 139 | </Step> |
| 140 | + <Step> |
| 141 | + <Condition>(isFhirR4Path = true)</Condition> |
| 142 | + <Name>AssignMessage.SetOperationOutcomeVariablesR4</Name> |
| 143 | + </Step> |
136 | 144 | <Step> |
137 | 145 | <Condition>(isFhirR4Path = true)</Condition> |
138 | 146 | <Name>AssignMessage.SetOperationOutcomeODSHeaderMissingR4</Name> |
|
163 | 171 | <!-- Must be placed after Authentication --> |
164 | 172 | <Step> |
165 | 173 | <Name>FlowCallout.ExtendedAttributes</Name> |
166 | | - <Condition>(accesstoken.auth_type == "user")</Condition> |
| 174 | + <Condition>(accesstoken.auth_type == "user") and (proxy.pathsuffix != "/FHIR/R4/PractitionerRole")</Condition> |
167 | 175 | </Step> |
168 | 176 | <Step> |
169 | 177 | <Name>FlowCallout.EUOAllowlistVerify</Name> |
170 | | - <Condition>(accesstoken.auth_type == "user")</Condition> |
| 178 | + <Condition>(accesstoken.auth_type == "user") and (proxy.pathsuffix != "/FHIR/R4/PractitionerRole")</Condition> |
171 | 179 | </Step> |
172 | 180 | <Step> |
173 | 181 | <Name>RaiseFault.MissingAsid</Name> |
|
210 | 218 | <Condition>(request.header.nhsd-ers-business-function == "AUTHORISED_APPLICATION")</Condition> |
211 | 219 | </Step><Step> |
212 | 220 | <Name>AssignMessage.Set.x-ers-access-mode-header-user-restricted</Name> |
213 | | - </Step> <Step> |
| 221 | + </Step><Step> |
214 | 222 | <Name>AssignMessage.Set.x-ers-user-id-header-user-restricted</Name> |
215 | | - </Step> <Step> |
| 223 | + </Step><Step> |
216 | 224 | <Name>AssignMessage.Swap.NHSD-eRS-On-Behalf-Of-User-ID</Name> |
217 | 225 | <Condition>(request.header.NHSD-eRS-On-Behalf-Of-User-ID ~~ ".+")</Condition> |
218 | | - </Step> <Step> |
| 226 | + </Step><Step> |
219 | 227 | <Name>AssignMessage.Swap.nhsd-end-user-organisation-ods</Name> |
220 | 228 | <Condition>(request.header.nhsd-end-user-organisation-ods ~~ ".+")</Condition> |
221 | | - </Step> <Step> |
| 229 | + </Step><Step> |
222 | 230 | <Name>AssignMessage.Swap.nhsd-ers-business-function</Name> |
223 | 231 | <Condition>(request.header.nhsd-ers-business-function ~~ ".+")</Condition> |
224 | | - </Step> <Step> |
| 232 | + </Step><Step> |
225 | 233 | <Name>AssignMessage.Swap.nhsd-ers-comm-rule-org</Name> |
226 | 234 | <Condition>(request.header.nhsd-ers-comm-rule-org ~~ ".+")</Condition> |
227 | | - </Step> <Step> |
| 235 | + </Step><Step> |
228 | 236 | <Name>AssignMessage.Swap.nhsd-ers-file-name</Name> |
229 | 237 | <Condition>(request.header.nhsd-ers-file-name ~~ ".+")</Condition> |
230 | | - </Step> <Step> |
| 238 | + </Step><Step> |
231 | 239 | <Name>AssignMessage.Swap.nhsd-ers-referral-id</Name> |
232 | 240 | <Condition>(request.header.nhsd-ers-referral-id ~~ ".+")</Condition> |
233 | | - </Step> <Step> |
| 241 | + </Step><Step> |
234 | 242 | <Name>AssignMessage.Remove.x-request-id-header</Name> |
235 | | - </Step> <Step> |
| 243 | + </Step><Step> |
236 | 244 | <Name>AssignMessage.Set.x-ers-authentication-assurance-level-header</Name> |
237 | | - </Step> <Step> |
| 245 | + </Step><Step> |
238 | 246 | <Name>AssignMessage.Set.x-ers-amr-header</Name> |
239 | | - </Step> <Step> |
| 247 | + </Step><Step> |
240 | 248 | <Name>AssignMessage.Set.x-ers-id-assurance-level-header</Name> |
241 | 249 | </Step> <Step> |
242 | 250 | <Condition>(request.header.x-ers-id-assurance-level LesserThan 3)</Condition> |
243 | 251 | <Name>RaiseFault.401InsufficientIal</Name> |
244 | | - </Step> {% if ALLOW_ECHO_TARGET | default(false) == true %} <Step> |
| 252 | + </Step> {% if ALLOW_ECHO_TARGET | default(false) == true %}<Step> |
245 | 253 | <Name>AssignMessage.SetEchoTarget</Name> |
246 | 254 | <Condition>(request.header.echo)</Condition> |
247 | | - </Step> {% endif %} {% if '--ft-' in (ERS_TARGET_SERVER | default('e-referrals-service-api')) %} <Step> |
| 255 | + </Step> {% endif %} {% if '--ft-' in (ERS_TARGET_SERVER | default('e-referrals-service-api')) %}<Step> |
248 | 256 | <Name>AssignMessage.SetTruststore</Name> |
249 | 257 | <!--Condition is implemented this way around to account for isEchoCall being null (https://docs.apigee.com/api-platform/reference/conditions-reference#behaviorofnulloperandsinconditionalstatements)--> |
250 | 258 | <Condition>(isEchoCall != true )</Condition> |
|
0 commit comments