Usage Communication Format

 

The Patient Access transformer maps each usage event to one Communication resource in the CMS trace repository. The resource follows the shared trace conventions, with the patientaccess tag and the member and application values as identifiers.

Example Communication

 

The following Communication was created from the example usage event, a GET Patient/patient-005 request made by the example-health-app application, without enrichment:

{
  "resourceType": "Communication",
  "id": "1601",
  "meta": {
    "tag": [
      {
        "system": "https://smiledigitalhealth.com/communication/category",
        "code": "patientaccess",
        "display": "Patient Access"
      }
    ]
  },
  "identifier": [
    {
      "system": "https://smiledigitalhealth.com/communication/message-key",
      "value": "ad59d558-6230-488f-bbef-6d2f279c5576"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/patientid",
      "value": "patient-005"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/userid",
      "value": "d749550c-2f63-4c5a-9bf2-696b3af9d328"
    },
    {
      "system": "https://smiledigitalhealth.com/credentialmap/oidc/client",
      "value": "example-health-app"
    }
  ],
  "status": "completed",
  "category": [
    {
      "coding": [
        {
          "system": "https://smiledigitalhealth.com/communication/event-type",
          "code": "FHIR_REQUEST"
        },
        {
          "system": "https://smiledigitalhealth.com/communication/event-sub-type",
          "code": "FHIR_READ"
        }
      ],
      "text": "Transaction Log Message Type Information"
    }
  ],
  "sent": "2026-08-26T15:10:10.698-04:00",
  "received": "2026-08-26T15:10:10.685-04:00",
  "recipient": [
    {
      "display": "example-health-app"
    }
  ],
  "payload": [
    {
      "contentAttachment": {
        "contentType": "application/json",
        "url": "Binary/1602",
        "title": "ENDPOINT_RECEIVE",
        "creation": "2026-08-26T15:10:10.685-04:00"
      }
    },
    {
      "contentAttachment": {
        "contentType": "application/json",
        "url": "Binary/1603",
        "title": "ENDPOINT_REPLY",
        "creation": "2026-08-26T15:10:10.698-04:00"
      }
    }
  ],
  "note": [
    {
      "text": "Patient Access API request processed successfully."
    }
  ]
}

Enriched Elements

 

When enrichment finds the member, the member's active Coverage, and the application's Organization, the same request produces a Communication with the following additional and changed elements:

{
  "contained": [
    {
      "resourceType": "Patient",
      "id": "member",
      "identifier": [
        {
          "type": {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
                "code": "MB"
              }
            ]
          },
          "system": "https://example.org/member-id",
          "value": "M-100045"
        }
      ],
      "name": [
        {
          "family": "Chen",
          "given": ["Carol"],
          "suffix": ["Jr"]
        }
      ]
    },
    {
      "resourceType": "Organization",
      "id": "requester",
      "identifier": [
        {
          "system": "https://smiledigitalhealth.com/credentialmap/oidc/client",
          "value": "example-health-app"
        }
      ],
      "name": "Example Health App"
    }
  ],
  "subject": {
    "reference": "#member",
    "display": "Chen, Carol Jr"
  },
  "recipient": [
    {
      "reference": "#requester",
      "display": "Example Health App"
    }
  ],
  "identifier": [
    {
      "system": "https://smiledigitalhealth.com/communication/message-key",
      "value": "ad59d558-6230-488f-bbef-6d2f279c5576"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/patientid",
      "value": "patient-005"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/userid",
      "value": "d749550c-2f63-4c5a-9bf2-696b3af9d328"
    },
    {
      "system": "https://smiledigitalhealth.com/credentialmap/oidc/client",
      "value": "example-health-app"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/planid",
      "value": "PLAN-GOLD-2026"
    },
    {
      "system": "https://smiledigitalhealth.com/communication/groupid",
      "value": "GRP-7781"
    }
  ]
}

Each enriched element is added on its own: for example, when only the Organization is found, the Communication contains the requester but has no subject.

Fields Used for Usage Reporting

 
Field Source Description
meta.tag patientaccess Transformer Identifies a Patient Access API trace. A second tag with the code error marks an event that the transformer could not map.
identifier .../communication/message-key transactionGuid A unique identifier for the event.
identifier .../communication/patientid additionalJson.patient_id The member's Patient resource ID.
identifier .../communication/userid additionalJson.subject The member's user identifier at the IdP.
identifier .../credentialmap/oidc/client additionalJson.client_id The requesting application's client ID.
identifier .../communication/planid, .../communication/groupid Enrichment: the member's active Coverage The member's plan and group.
subject, contained Patient member Enrichment: Patient/[patient_id] The member's name, formatted as Family, Given Suffix in subject.display, and member number.
recipient, contained Organization requester Enrichment: the application's Organization, or additionalJson.client_id The requesting application. recipient.display holds the Organization name when it is found, otherwise the client ID, or Unknown Client when the event has no client ID.
status outcome, responseStatus completed, or not-done when the event outcome is FAIL or the response status is 400 or higher. A not-done resource carries the HTTP status in statusReason.text.
received, sent ENDPOINT_RECEIVE and ENDPOINT_REPLY timestamps The times the request was received and the reply was sent.
category.coding type, subType The FHIR interaction, for example FHIR_READ.

An identifier is absent when the corresponding additionalJson value is absent from the event, for example when the request failed authentication.

Searching for Usage

 

Reporting clients can search the trace endpoint for a member's successful Patient Access API requests:

GET https://example.com/trace-fhir/Communication?_tag=https://smiledigitalhealth.com/communication/category|patientaccess&identifier=https://smiledigitalhealth.com/communication/patientid|patient-005&status=completed

Add received=ge2026-01-01&received=lt2027-01-01 to limit the search to a reporting period, or search by the .../credentialmap/oidc/client identifier to find the requests made by one application.