FHIR Patient Access API

Production documentation for patient-facing read APIs. This reference covers endpoint paths, required scopes, common query parameters, response behavior, and implementation examples.

FHIR R4 Read-only SMART on FHIR compatible

API Profile

ItemValue
FHIR URLConfigured at runtime
Base path/fhir
AuthenticationOAuth2 Authorization Code + PKCE
Token audienceFHIR proxy API resource
Primary scope setpatient/*.read plus user_impersonation
Content typeapplication/fhir+json
PaginationBundle link navigation (next)

Endpoint Catalog

MethodPathRequired ScopeSuccess Response
GET/fhir/Patient/{id}patient/Patient.read200 Patient
GET/fhir/Patient?identifier={system}|{value}patient/Patient.read200 Bundle(Patient)
GET/fhir/Observation?patient={id}patient/Observation.read200 Bundle(Observation)
GET/fhir/Condition?patient={id}patient/Condition.read200 Bundle(Condition)
GET/fhir/AllergyIntolerance?patient={id}patient/AllergyIntolerance.read200 Bundle(AllergyIntolerance)
GET/fhir/MedicationRequest?patient={id}patient/MedicationRequest.read200 Bundle(MedicationRequest)
GET/fhir/MedicationDispense?patient={id}patient/MedicationDispense.read200 Bundle(MedicationDispense)
GET/fhir/DiagnosticReport?patient={id}patient/DiagnosticReport.read200 Bundle(DiagnosticReport)
GET/fhir/Immunization?patient={id}patient/Immunization.read200 Bundle(Immunization)
GET/fhir/Procedure?patient={id}patient/Procedure.read200 Bundle(Procedure)
GET/fhir/Encounter?patient={id}patient/Encounter.read200 Bundle(Encounter)
GET/fhir/CarePlan?patient={id}patient/CarePlan.read200 Bundle(CarePlan)

Common Query Parameters

ParameterDescription
patientPatient reference id for resource searches.
_countPage size request (server maximum enforced).
_sortSort by supported search parameter.
_sinceReturn records updated after timestamp.
_lastUpdatedFHIR date filter by update timestamp.
category, statusResource-specific filters where supported.

HTTP Status and Error Model

StatusMeaning
200Resource or Bundle returned successfully.
400Invalid parameter combination or malformed query.
401Missing, expired, or invalid access token.
403Token valid, but missing required scope.
404Resource id not found.
429Rate limited; retry using server guidance.
5xxServer-side error; retry per client policy.

Error bodies are returned as FHIR OperationOutcome resources.

Production Examples

GET /fhir/Patient/12345
GET /fhir/Observation?patient=12345&category=vital-signs&_count=20
GET /fhir/MedicationRequest?patient=12345&status=active