context/resource.accesspatient, user, or systemCondition) or * for allread, write, or * for both| Scope | Description |
|---|---|
| patient/Condition.read | Read Condition data for the current patient |
| system/Observation.read | Read all Observations across patients |
| user/. | Read and write all user-authorized resources |
| openid fhirUser | Request user identity and profile |
| launch | Get context during launch from within the EHR |
| launch/patient | Request patient selection during standalone launch |
| offline_access | Enables long-lived access via refresh token |
| online_access | Refresh tokens valid while the user is online |
response_type: codeclient_id: App client IDredirect_uri: Must match a registered redirect URIscope: Requested permissions (e.g. openid patient/*.read)state: CSRF protection valueaud: Base URL of the Edvak FHIR APIcode_challenge & code_challenge_method: For PKCE (public clients)access_token: Required for accessing APIstoken_type: Always "Bearer"expires_in: Token lifetime (in seconds)scope: Granted scopesrefresh_token: If offline or online access was requestedid_token: If OpenID Connect identity was requestedPOST /token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
refresh_token=YOUR_REFRESH_TOKEN
client_id=CLIENT_ID (required for public apps)
client_secret=CLIENT_SECRET (required for confidential apps)Cache-Control: no-storePragma: no-cacheGET https://fhir-dev.edvak.com/fhir/Patient/123
Authorization: Bearer <ACCESS_TOKEN>