59.1.1Actors and Roles

 

59.1.1.1Exchange Actors

There are two parties for each exchange:

ActorDescriptionAlternative Names
Requesting PayerThe payer organization receiving data in an exchange transactionTarget, Client, "New" Payer
Responding PayerThe payer organization sharing data in an exchange transactionSource, Server, "Old" Payer

All exchanges are initiated by the Requesting Payer.

59.1.2Exchange Modes

 

The PDex Implementation Guide supports two modes for data exchange:

59.1.2.1Single-Member Exchange

Requesting data for a single member via the following request methods:

MethodTypeDescription
Bulk export via $exportAsynchronousRecommended for most use cases
Real-time export via $everythingSynchronousFor immediate data needs
Standard FHIR queriesSynchronousFor individual resources

59.1.2.2Multi-Member Exchange

Group-based exchange, also referred to as "bulk" exchange:

MethodTypeDescription
$davinci-data-exportAsynchronousExport data for multiple members in a Group

59.1.3Phases of the Exchange

 

Here is a short overview of the key activities part of any transaction and where Smile fits in. Implementation details for each are explored in other sections of this guide.

PhaseDescriptionPrimary Actor
RegistrationEstablish secure authentication credentialsBoth payers
Opt-InMembers trigger the exchange by giving consentRequesting payer
Requesting DataInitiate exchange via $invoke-exportRequesting payer
Authentication and AuthorizationInsert security credentials and validate accessBoth payers
Patient MatchingSubmit demographics and locate patient recordBoth payers
Data ExportExport and transfer member health recordsBoth payers
Data StorageStore and integrate retrieved recordsRequesting payer

59.1.3.1Where Smile CDR Fits

PhaseSmile CDR Role
RegistrationCreate OIDC definitions and Organization resources
AuthenticationSMART Outbound Security module handles token management
Patient MatchingExecute $member-match with custom or default matching logic
Data ExportPerform $export or $everything operations
Data StorageStore DocumentReference, create Provenance, transform and link resources

59.1.3.2Out-of-Band Activities

These activities occur largely outside of Smile:

  • Registration vetting processes - Developer portals, legal review
  • Member opt-in process - Member portals, education materials
  • Consent capture - User interface for collecting member authorization

59.1.4Key Activities Overview

 

59.1.4.1Registration

Prior to any exchange, two payer actors register their P2P applications with the primary objective of establishing secure authentication credentials. Payers may choose to create vetting processes through developer portals for processing applications.

While this process occurs largely outside of Smile CDR, registration artifacts may need to be created in Smile CDR software, such as OIDC client/server definitions and FHIR Organization resources.

59.1.4.2Opt-in

Members trigger the exchange by giving consent to the Requesting Payer to retrieve their health records. This opt-in process, including delivering education materials, occurs outside of Smile CDR. Information gathered from the member about the other payer feeds into the next phase of the transaction.

59.1.4.3Requesting Data

Requesting Payers initiate exchanges via the $sdh.s2s.invoke-export operation, which automates the request and retrieval of data from the Responding Payer.

Note: This operation is currently supported only for single-member exchange.

59.1.4.4Authentication and Authorization

  • Requesting Payer side: The $sdh.s2s.invoke-export operation inserts the necessary security credentials to request access to server-side resources.
  • Responding Payer side: Smile CDR is configured to ensure requesters have access to appropriate resources defined by both CMS and business policies.

59.1.4.5Patient Matching

  • Requesting Payer side: The $sdh.s2s.invoke-export operation submits patient and coverage information to facilitate record location in the source server.
  • Responding Payer side: Configure $member-match (for single member) and $bulk-member-match (for multi member) operations to return matching patient record locations.

59.1.5Storing Imported Records

 

59.1.5.1Data Export

Successful member match allows the requester to initiate a data export using the returned patient IDs. The $sdh.s2s.invoke-export operation makes a request on the bulk $export endpoint.

The Responding Payer configures Smile CDR to define the scope of resources to share, using the CMS mandate as its primary guide.

59.1.5.2Data Storage

Once retrieved, records are stored in the repository through several stages:

  1. Original records are stored unaltered and embedded in DocumentReference resources for auditing purposes.
  2. Provenance records are created to link imported resources to the data transmitter.
  3. Imported FHIR records undergo minimal transformation and are stored in a separate Patient compartment from pre-existing data in the CDR. Both compartments are linked via a patient business identifier (enterprise member ID).

This separation into distinct Patient compartments supports querying for only pre-existing data or collating pre-existing and imported records when other payers request member data.

59.1.5.2.1Key Fields in DocumentReference

DataDocumentReference fieldNotes
Document creation dateDocumentReference.meta.lastUpdatedTimestamp
Document statusDocumentReference.statusFixed value: current
Content typeDocumentReference.content.attachment.contentTypeFixed value: application/fhir+ndjson
DataDocumentReference.content.attachment.dataBase 64 encoded Binary Resource. The original ndjson files are also Base 64 encoded in Binary.data field.

59.1.5.2.2Key Fields in Provenance

DataProvenance fieldNotes
Created resourceProvenance.target.referenceReference to the created resource
Creation dateProvenance.recordedTimestamp
Source payerProvenance.agent.who.referencePoints to an Organization resource that represents the source payer. This will require:
1. An Organization resource has been created for the source payer on the target system, such as during registration
2. The coverage.payor field is properly configured
Target patientProvenance.agent.onBehalfOf.referenceReference to the target patient on behalf of whom the data was transmitted

59.1.5.3Resource Tagging

A tag of "migrated" is added to imported resources to clearly identify them as originating from an external payer system.

59.1.5.3.1Example Resource Tag

{
  "meta": {
    "tag": [
      {
        "system": "http://smilecdr.com/fhir/tags",
        "code": "migrated",
        "display": "Resource imported from external payer"
      }
    ]
  }
}