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.
The SMART Health Link payload
Scanning the QR code (or decoding theshlink:/… 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 FHIRBundle that conforms to the KTC Patient-Shared Bundle
profile (aligned with the KTC specification).
The profile requires:
typefixed tocollection.timestamppresent (when the bundle was assembled).- At least two entries: exactly one Patient, plus one or more content entries.
- Every
entry.fullUrlpopulated (FHIR R4 requires this for collection bundles).
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-bymedlistand conforming to haau3 Reconciled MedicationRequest, with its Provenances. The Provenance with noactivitynames the records the entry was built from. The one withactivityappend 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.
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 asDocumentReference entries conforming to the KTC Patient-Shared
DocumentReference profile. The profile requires:
content.attachment.contentTypefixed toapplication/pdf, with the PDF base64-encoded incontent.attachment.data.- A
categoryof CMSpatient-shared(https://cms.gov/fhir/CodeSystem/patient-shared-category). - A
typefrom 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
PATASTsecurity 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.