-
Notifications
You must be signed in to change notification settings - Fork 0
Authentication Authorization (WIP)
Sarah McDougall edited this page Dec 29, 2021
·
1 revision
- Client: Gathers data of interest, then assembles and executes submit-data request
- EHR: Data source for Client, implements FHIR API that supports query parameters needed to gather data of interest
- Receiving Server: Receives and stores data of interest, calculates measures and care gap reports
- Auth Server: OAuth2 implementation to provide access control for Receiving Server
- Program Server: Provides functionality related to a specific quality program
-
Client queries
$data-requirements
endpoint forMeasure
-
Receiving Server returns
Library
with populateddataRequirement
-
Client creates queries from
Library.dataRequirement
, and queries EHR for data of interest
- EHR processes queries and returns data needed
-
Client creates
MeasureReport
,Provenance
resource (w/empty target) -
Client creates
Parameters
resource with embeddedMeasureReport
, resources -
Client authenticates with Auth Server, and receives an
authorization token
-
Client executes
$submit-data
on Receiving System withParameters
resource,X-Provenance
header, andauthorization token
-
Receiving Server receives
Parameters
,X-Provenance
andauthorization token
from Client -
Receiving Server verifies user authorization with Auth server using
authorization token
- Creates
AuditEvent
with record of success/failure of authorization
-
Receiving Server sends credentials to Program Server, to verify that user may submit AND is authorized to submit on behalf of an
Organization
- (TODO More detail on this handshake)
- Creates
AuditEvent
with record of success/failure of program authorization
- On Success, Receiving Server extracts data from
Parameters.parameter
resource
and persists into database for theOrganization
that was authorized in Step #9
- Creates
Provenance
resource, linked to all resources that were persisted - Creates
AuditEvent
resource, linked to all resources that were persisted
-
Receiving Server returns
200 Success
to the Client, along withX-Provenance
header in response usingProvenance
resource created in Step #10