Prior Authorization Support (PAS) is a Smile CDR module that enables the direct submission of prior authorization requests from EHR systems. It streamlines and automates the prior authorization process between healthcare providers and payers, ensuring efficient, interoperable, and secure management of authorization requests.
Built on Fast Healthcare Interoperability Resources (FHIR) standards and aligned with HL7 Da Vinci Prior Authorization Support (PAS) implementation guidelines (IG), the PAS module enhances the prior authorization workflow with several key features.
Smile CDR supports the PAS IG with the following operations:
Claim/$submit is used to submit a prior authorization request for adjudication. It accepts a single Bundle resource as input, which includes the PAS Claim Request along with any referenced resources. The output is either a single Bundle resource containing the PAS Claim Response and any referenced resources or an OperationOutcome resource in case of errors.Claim/$submit call:
ClaimResponse/$sdh.pa.submit, making the ClaimResponse available to the Provider via polling or subscription push.Bundle is returned to the caller.v2025.08, camel route will be used for evaluation of a prior auth request for adjudication.PAS Request Bundle.priorAuthPasContextJson.Bundle as a Java object or in a String or Stream format.Claim resource.Claim must resolve to an entry within the same Bundle.Claim.insurer must be present.Claim with the same identifier.meta.profile must match the profile expected for the requested workflow.Claim.related are validated against the Bundle.| Use | Parameter | Type | Cardinality | Description |
|---|---|---|---|---|
| IN | PAS Request Bundle | Resource | 1..1 | A Bundle containing a single Claim and referenced resources. If the request is an Update request multiple Claims are allowed as part of the Bundle. |
| OUT | PAS Response Bundle or OperationOutcome (in case of error) | Resource | 1..1 | A Bundle containing a single ClaimResponse and referenced resources, or an OperationOutcome in case of errors. |
Claim/$inquire is used to check the status of prior authorization requests. It accepts a single Bundle resource as input, which includes the PAS Claim Inquiry Request along with any referenced resources. The output is either a single Bundle resource containing the PAS Claim Inquiry Response and any referenced resources or an OperationOutcome resource in case of errors.Claim/$submit, the inquire operation sends the request through the module's Camel context, on the direct:start-pas-inquire route, so the inquiry can be forwarded to a payer or adjudication system. The shipped processors answer the inquiry from the local repository:
pasInquiryRequestBundleValidator validates the incoming Bundle (see default validations below).createInquireResponseProcessor searches for the previously-stored PAS Response Bundle from a prior Claim/$submit, and reshapes it into the inquiry response. The search is:
_profile = http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-response-bundleclaimresponse.identifier = <system>|<value> (taken from the inquiry request's first Claim.identifier)_lastUpdated descending — the most recent matching Response Bundle is selected.HTTP 422 Unprocessable Entity.Claim resource.Claim.identifier must be present.claimresponse.identifier SearchParameter being installed on the PAS persistence — see the payer setup guide for the SearchParameter Bundle.Bundle, as a JSON String, or as a JSON stream. A route that fails produces HTTP 500 Internal Server Error unless the failure is itself a FHIR error response, which is returned to the caller unchanged.| Use | Parameter | Type | Cardinality | Description |
|---|---|---|---|---|
| IN | PAS Inquiry Request Bundle | Resource | 1..1 | A Bundle containing a single ClaimInquiry and referenced resources. |
| OUT | PAS Inquiry Response Bundle or OperationOutcome (in case of error) | Resource | 1..1 | A Bundle containing a single ClaimInquiryResponse and referenced resources, or an OperationOutcome in case of errors. |
ClaimResponse/$sdh.pa.submit is a custom Smile CDR operation, intended for internal use inside the Payer environment. It allows the various payer back-end systems to send their responses to the PAS module, including authorization decisions such as approvals, denials, or requests for additional information. It accepts a single Bundle resource as input, which includes the PAS ClaimResponse along with any referenced resources. The output is also a single Bundle resource containing the PAS ClaimResponse and any referenced resources, or it may return an OperationOutcome resource in case of errors. The PAS module will in turn make the response available to the Provider, either via polling or subscription push if configured for the specific Provider.ClaimResponse/$sdh.pa.submit call:
profile-pas-response-bundle profile, keyed on the contained ClaimResponse.identifier. If a Bundle for the same ClaimResponse identifier already exists in the repository it is updated in place; otherwise a new one is created. This is what makes the response discoverable by Claim/$inquire and by any configured Subscriptions.Task is created to drive the follow-up workflow.ClaimResponse resource.ClaimResponse must resolve to exactly one entry within the same Bundle.ClaimResponse.insurer must be present, must reference an Organization, and that Organization must have an identifier with a value.extension-itemTraceNumber must be present on ClaimResponse.item whose system matches one of the configured payer_system_item_trn values.A3 or A4, a Reason Code extension must be present.A4 and the reason code is 0U, a CommunicationRequest must be included in the Bundle.| Use | Parameter | Type | Cardinality | Description |
|---|---|---|---|---|
| IN | PAS Response Bundle | Resource | 1..1 | A Bundle containing a single ClaimResponse and referenced resources. |
| OUT | PAS Response Bundle or OperationOutcome (in case of error) | Resource | 1..1 | A Bundle containing a single ClaimResponse and referenced resources, or an OperationOutcome in case of errors. |
To route the PAS Requests from healthcare providers to the payer, the following components are used:
FHIR Subscription are used to track PAS Request Bundles from Claim/$submit as they are created and updated in the FHIR repository, then pushing them to the payer-preferred message broker (i.e., Kafka or ActiveMQ).
{
"resourceType": "Subscription",
"id": "profile-pas-request-bundle",
"status": "active",
"criteria": "Bundle?_profile=http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-request-bundle",
"channel": {
"type": "message",
"endpoint": "channel:<indicate channel name>",
"payload": "application/json"
}
}
The Message Broker is a messaging system used as the communication channel to transmit prior authorization requests and updates to the payer. PAS Request Bundles, including new requests and updates, are pushed to this broker and then consumed by the payer to initiate the adjudication process.
You are about to leave the Smile Digital Health documentation and navigate to the Open Source HAPI-FHIR Documentation.