71.0.1Provider System Registration

 

As a prerequisite for using the Provider Access API, a provider system must be fully configured and registered. This workflow ensures the system can:

  • Authenticate and obtain required claims (e.g., NPI, TIN, Organization ID).
  • Associate with FHIR resources — specifically, Organization and Group — to link the system to its attributed members.
  • Comply with payer security and access requirements.

The registration process includes:

  • Configuring the provider system with the Identity Provider (IdP).
  • Creating Organization resources in the FHIR repository.
  • Creating Group resources for attributed members.

71.0.2Registration Options

 

Provider systems can be registered using two different options depending on where the Identity Provider (IdP) resides. Each option describes a slightly different workflow for authentication, token issuance, and FHIR resource access:

  • Option 1: Smile OIDC (SMART-OUT) – Smile acts as the IdP and issues tokens directly to the provider system.
  • Option 2: Payer IdP (SMART-IN) – The payer’s IdP issues tokens, which Smile validates before granting access to FHIR resources.

The table below summarizes the configuration and runtime behavior for each option:

Provider System Registration Options
Enrollment / Configuration
Step Option 1: Smile OIDC (SMART-OUT) Option 2: Payer IdP (SMART-IN)
Register client Register provider system as an OIDC client in Smile (client credentials and allowed scopes). Register provider system as an OIDC client in the payer’s IdP (client credentials and allowed scopes).
Configure OIDC server N/A – Smile acts as the IdP. Configure Smile with the payer’s OIDC server (client ID, JWKS URL, token endpoint).
Define Organization Create Organization resource (includes NPI, TIN, Client ID identifiers). Same as Option 1
Define Group Create Group resource representing attributed members. Same as Option 1
Runtime / Execution
Step Option 1: Smile OIDC (SMART-OUT) Option 2: Payer IdP (SMART-IN)
Token request Provider system requests a token from Smile. Provider system requests a token from the payer’s IdP.
Token validation Smile validates JWT client assertion and issues an access token. Smile validates the token issued by the payer’s IdP.
Access control Smile retrieves Organization and Group based on token claims. Each Business Identifier (BID) from the token is stored in userData for authorization checks during data export requests. The system assigns the required FHIR permissions:
  • FHIR_READ_ALL_OF_TYPE
  • FHIR_OP_INITIATE_BULK_DATA_EXPORT_GROUP
Same as Option 1

71.0.3FHIR Resource Requirements

 

71.0.3.1Organization Resource

Represents the provider system using the HRex Organization profile.

Required fields:

  • id
  • name
  • identifier
    • Business Identifiers (BIDs): NPI, TIN
    • Authentication Identifier: Client ID (used for IdP registration)
      • identifier.system = https://smiledigitalhealth.com/credentialmap/oidc/client
  • Tag the resource to indicate it belongs to the Exchange Directory:
    • meta.tag.system = https://smiledigitalhealth.com/payer-exchange-directory
    • meta.tag.code = Exchange Directory

Example:

{
  "resourceType": "Organization",
  "meta": {
    "tag": [
      {
        "system": "https://smiledigitalhealth.com/payer-exchange-directory",
        "code": "Exchange Directory"
      }
    ]
  },
  "id": "provider-system-001",
  "identifier": [
    {
      "system": "http://hl7.org/fhir/sid/us-npi",
      "value": "1234567890"
    },
    {
      "system": "https://smiledigitalhealth.com/credentialmap/oidc/client",
      "value": "provider-client-001"
    }
  ],
  "name": "Example Provider System"
}

71.0.3.2Group Resource

Defines attributed members associated with the provider system. This resource is based on the PDex Provider Group profile.

  • Each Group links members (patients) to a provider system.
  • The Group resource references the Business Identifiers (BIDs) from the Organization to associate members.
  • Member references point to Patient resources in the FHIR repository.

Example:

{
  "resourceType": "Group",
  "id": "group-001",
  "meta": {
    "profile": [
      "http://hl7.org/fhir/uv/davinci-epdx/StructureDefinition-pdex-provider-group"
    ]
  },
  "type": "person",
  "actual": true,
  "member": [
    {"entity": {"reference": "Patient/patient-001"}},
    {"entity": {"reference": "Patient/patient-002"}}
  ]
}