
This page provides a high-level, SMART App–developer-oriented overview of the HALO specification. It serves as a starting point to help you navigate the most relevant sections, understand how HALO abstracts differences between standard SMART on FHIR and SoFA environments, and quickly identify the requirements, workflows, and conformance expectations that matter most for your role. It is not a substitute for the detailed implementation pages in the specification, but rather a directional guide to point you toward them.
By conforming to HALO, you gain:
From a SMART App developer’s perspective, HALO deliberately abstracts the underlying differences between SoF (standard SMART on FHIR) and SoFA (SMART on FHIR Accelerator) workflows. Whether your app is launched from a fully compliant EMR or from a lightweight PoC system leveraging jurisdictional infrastructure, your app should behave identically during and post-launch.
The HALO specification guarantees:
iss
, launch
) are passed to your app regardless of the source system.iss
) always supports SMART discovery and token exchange via .well-known/smart-configuration
.iss
and authorize URLs—a distinction abstracted away from your App by HALO. HALO’s goal is to make your app portable, scalable, and jurisdiction-ready without modification.If your app works in a standard SMART on FHIR environment, it works in SoFA too.
HALO conformance is comprised of several technical actors and transactions across several HALO Profiles. These responsibilities are grouped and tested leveraging four core business use cases.
From a SMART App perspective, the following use cases apply:
Within these use cases SMART App systems are responsible for fulfilling roles such as Launch Responder
and Authorization Client
. These roles and their related transactions should not differ, regardless of whether the app was launched using the base SMART on FHIR or the SMART on FHIR Accelerator launch flow.
For a more detailed summary of the exact testing and conformance expectations for PoC systems, see the Interoperability Recommendations and Technical Use Case Sequence Diagrams pages.
In addition to the HALO-specific testing, SMART App vendors should ensure compliance with the following external specifications:
launch
and iss
parameters from the PoC system..well-known/smart-configuration
endpoint to obtain authorization metadata.openid
, fhirUser
, launch/patient
, patient/Observation.rs
) in the authorization request.iss
.offline_access
scope if background write operations are required after the user interaction is complete (e.g. user closed the App).patient/Observation.r
, patient/Observation.read
)launch/patient
).2XX
) and asynchronous (202 Accepted
with polling) interactions.Prefer: respond-async
).