Use Cases
- Auth Server
- (existing) A user of the Auth server is able to register a client with scopes specified by the user
- Sandbox
- A user of the Sandbox is able to create a sandbox account that has an isolated FHIR resource server datasource (personal datasource)
- A user of the Sandbox is able to select a public datasource
- The initial public datasource is the HSPC FHIR API Server
- A user of the Sandbox is able to launch a SMART application that will run using the selected datasource
- The selected datasource is passed to the application using the "iss" parameter
- Logical API Server
- Defined: A Logical API Server is a FHIR API Server for a FHIR resource server datasource. It may be:
- A physical deployment of an HSPC Reference API instance that specifies a database and schema (traditional)
- A shared deployment of an HSPC Reference API instance that uses a router and multi-tenant database strategy to offer a single FHIR API interaction
- Other technique offering a single FHIR API interaction
- A user of the API server is able to perform the full FHIR REST API interaction according to the FHIR specification and SMART security model (no additional HTTP headers or parameters needed)
- OAuth2 token extensions are permissible
- Base URL path parameters are permissible
- A user a SMART application is restricted by a provisioning layer by scope (ex: app wants write scope but API server does not support write)
- A user of the API server is restricted from accessing a private/personal FHIR server that is not shared with them
- Defined: A Logical API Server is a FHIR API Server for a FHIR resource server datasource. It may be:
- Datasource publication and sharing
- A user of the Sandbox is able to register a datasource as a publicly available datasource (no provisioning required)
- A user of the Sandbox is able to share a personal datasource with another user of the Sandbox
Endpoints
Sandbox (application)
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
sandbox.hspconsortium.org | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain1]/ | Sandbox Welcome Page |
sandbox.hspconsortium.org/manage | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain1]/manage | Management above any team sandbox |
sandbox.hspconsortium.org/health | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain1]/health | Health check |
sandbox.hspconsortium.org/dashboard | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain1]/dashboard | Future use |
sandbox.hspconsortium.org/admin | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain1]/admin | Future use |
sandbox.hspconsortium.org/hspc | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain2]/hspc | HSPC shared team sandbox |
sandbox.hspconsortium.org/{sandboxid} | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain2]/{sandboxid} | Dashboard for a team sandbox |
sandbox.hspconsortium.org/{sandboxid}/manage | sandbox.hspconsortium.org/hspc-sandbox-manager/[brain2]/manage | Management endpoint for a team sandbox |
FHIR Server
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
api.hspconsortium.org | (Info page) Root of the multi-tenant FHIR server | |
api.hspconsortium.org/manage | Management endpoint of the root FHIR server | |
api.hspconsortium.org/{team} | Root of a team sandbox | |
api.hspconsortium.org/{team}/data | Root of a team FHIR server | |
api.hspconsortium.org/{team}/management | Management endpoint of the team sandbox |
Authorization Server
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
auth.hspconsortium.org | Root of the HSPC Authorization server |
Applications (Cloud hosted)
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
apps.hspconsortium.org | (Info Page) Root of the HSPC Applications server | |
apps.hspconsortium.org/{application} | Root of a specific application | |
apps.hspconsortium.org/{application}/launch | Sample launch endpoint for a SMART style application | |
apps.hspconsortium.org/{application}/redirect | Sample redirect endpoint for a SMART style application |
Application Gallery
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
appgallery.hspconsortium.org | Root of the HSPC application gallery |
Test Endpoints
Public Endpoint | Internal Endpoint | Purpose |
---|---|---|
test.hspconsortium.org/sandbox | Root of the test sandbox instance for all Sandbox (application) endpoints above For example, test.hspconsortium.org/sandbox/hspc is the HSPC team sandbox | |
test.hspconsortium.org/auth | Root of the test sandbox authorization server | |
test.hspconsortium.org/apps | Root of the test sandbox apps server | |
test.hspconsortium.org/apps/{application} | For example, test.hspconsortium.org/apps/bilirubin-chart | |
test.hspconsortium.org/appgallery | Root of the test sandbox app gallery |
Database
Architecture