Skip to main content
A haau3 SMART Health Link (SHL) carries a patient’s curated health summary in two layers: an encrypted transport (what the QR code and shlink: URI encode) and, once decrypted, a FHIR bundle built to explicit profiles. This page walks through both layers and links to the haau3 FHIR Implementation Guide for the exact, machine-readable shapes. Scanning the QR code (or decoding the shlink:/… URI) yields a small JSON payload that tells a receiver where and how to fetch the data:
The flag determines how a receiver fetches the file. See Retrieve a SMART Health Link. The retrieved file is a JWE (compact serialization) encrypted with AES-256-GCM; its protected header declares cty: application/fhir+json. Decrypt it with key to get the FHIR bundle below.

The FHIR bundle

The decrypted payload is a FHIR Bundle that conforms to the KTC Patient-Shared Bundle profile (aligned with the KTC specification). The profile requires:
  • type fixed to collection.
  • timestamp present (when the bundle was assembled).
  • At least two entries: exactly one Patient, plus one or more content entries.
  • Every entry.fullUrl populated (FHIR R4 requires this for collection bundles).
Entries are sliced by resource profile so a receiver can locate each kind of content without scanning. The slicing is open, so additional US Core content beyond the named slices is allowed. Resources in the bundle do not carry meta.profile. The KTC specification says resources in this bundle should not include it, and that receivers must not require it. Match an entry to the profiles below by validating its content, not by reading meta.profile. Resources may carry meta.tag values that record processing haau3 applied to a record. One of them matters to a receiver: the derived-by tag (https://haau3.com/fhir/CodeSystem/derived-by, code medlist) marks a record haau3 computed from other records. The others can be ignored.

Medications

The person, or their caregiver, chooses in haau3 what Medications carries in a share. A bundle carries one of the two, never both.
  • haau3’s reconciled medication list, the default. One MedicationRequest per medication, whatever its status, each tagged derived-by medlist and conforming to haau3 Reconciled MedicationRequest, with its Provenances. The Provenance with no activity names the records the entry was built from. The one with activity append names what haau3 added. haau3 is a contained Organization, #haau3. The records themselves do not travel with the list, so a Provenance names them in words, as a display and a type with no reference. An entry’s own pointer to a record outside the bundle, such as its prescriber, is given the same way. A pointer to a record in the bundle, such as the patient, stays a pointer.
  • The medication records as received. Every MedicationRequest, MedicationStatement, MedicationDispense and MedicationAdministration the source systems sent, with the Medications they name, so a drug named by reference resolves inside the bundle.
The PDF summary prints whichever the bundle carries. With no reconciled list built yet for the person, the records as received are shared, and the PDF says so.

KTC Patient-Shared Bundle profile

Full StructureDefinition, element constraints, and slicing in the FHIR IG.

Document references (PDFs)

Human-readable summaries (a rendered health summary, and the patient’s own “Patient Story”) travel as DocumentReference entries conforming to the KTC Patient-Shared DocumentReference profile. The profile requires:
  • content.attachment.contentType fixed to application/pdf, with the PDF base64-encoded in content.attachment.data.
  • A category of CMS patient-shared (https://cms.gov/fhir/CodeSystem/patient-shared-category).
  • A type from the KTC Patient-Shared Document Type value set, which allows two LOINC codes: a patient summary document (60591-5) or a patient note for the Patient Story (51855-5).
  • The patient as a required author, so the receiver can see the data is patient-asserted.
  • For patient-asserted content such as the Patient Story, a PATAST security label (http://terminology.hl7.org/CodeSystem/v3-ObservationValue).

KTC Patient-Shared DocumentReference profile

Full StructureDefinition for the embedded PDF document references.

Profiles & examples in the FHIR IG

The Implementation Guide has the exact shapes, value sets, and worked examples.

Example: Patient-Shared Bundle

A complete example instance with the medication records as received (also available as JSON).

Example: the reconciled medication list

A bundle carrying haau3’s reconciled medication list (also available as JSON).

haau3 Patient Story Observation

The profile for patient self-reported care-experience preferences.

Bundle profile

KTC Patient-Shared Bundle StructureDefinition.

All IG artifacts

Every profile, value set, and example in the haau3 IG.