Personal Health Records
1.0.0-ballot2 - STU 1 ballot International flag

Personal Health Records, published by HL7 International / Patient Empowerment. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/personal-health-record-format-ig/ and changes regularly. See the Directory of published versions

Resource Profile: PhrMedia

Official URL: http://hl7.org/fhir/uv/phr/StructureDefinition/PhrMedia Version: 1.0.0-ballot2
Standards status: Trial-use Active as of 2025-12-27 Maturity Level: 1 Computable Name: PhrMedia

Standard PHR profile of the Media resource.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): Codes identifying the lifecycle stage of an event.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.status Base required EventStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Media If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Media If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Media If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Media If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Media A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifier(s) for the image
... basedOn Σ 0..* Reference(ServiceRequest | CarePlan) Procedure that caused this media to be created
... partOf Σ 0..* Reference(Resource) Part of referenced event
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): Codes identifying the lifecycle stage of an event.
... type Σ 0..1 CodeableConcept Classification of media as image, video, or audio
Binding: MediaType (extensible): Codes for high level media categories.
... modality Σ 0..1 CodeableConcept The type of acquisition equipment/process
Binding: MediaModality (example): Detailed information about the type of the image - its kind, purpose, or the kind of equipment used to generate it.
... view Σ 0..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
Binding: MediaCollectionView/Projection (example): Imaging view (projection) used when collecting an image.
... subject Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | Group | Device | Specimen | Location) Who/What this Media is a record of
... encounter Σ 0..1 Reference(Encounter) Encounter associated with media
... created[x] Σ 0..1 When Media was collected
.... createdDateTime dateTime
.... createdPeriod Period
... issued Σ 0..1 instant Date/Time this version was made available
... operator Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) The person who generated the image
... reasonCode Σ 0..* CodeableConcept Why was event performed?
Binding: ProcedureReasonCodes (example): The reason for the media.
... bodySite Σ 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... deviceName Σ 0..1 string Name of the device/manufacturer
... device Σ 0..1 Reference(Device | DeviceMetric | Device) Observing Device
... height Σ 0..1 positiveInt Height of the image in pixels (photo/video)
... width Σ 0..1 positiveInt Width of the image in pixels (photo/video)
... frames Σ 0..1 positiveInt Number of frames if > 1 (photo)
... duration Σ 0..1 decimal Length in seconds (audio / video)
... content Σ 1..1 Attachment Actual Media - reference or data
... note 0..* Annotation Comments made about the media

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Media.status Base required EventStatus 📍4.0.1 FHIR Std.
Media.type Base extensible Media Type 📍4.0.1 FHIR Std.
Media.modality Base example Media Modality 📍4.0.1 FHIR Std.
Media.view Base example Media Collection View/Projection 📍4.0.1 FHIR Std.
Media.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Media.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Media If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Media If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Media If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Media If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Media A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Maturity: 1

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): Codes identifying the lifecycle stage of an event.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.status Base required EventStatus 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Media If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Media If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Media If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Media If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Media A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference

doco Documentation for this format

Snapshot ViewView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Media 0..* Media A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Identifier(s) for the image
... basedOn Σ 0..* Reference(ServiceRequest | CarePlan) Procedure that caused this media to be created
... partOf Σ 0..* Reference(Resource) Part of referenced event
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): Codes identifying the lifecycle stage of an event.
... type Σ 0..1 CodeableConcept Classification of media as image, video, or audio
Binding: MediaType (extensible): Codes for high level media categories.
... modality Σ 0..1 CodeableConcept The type of acquisition equipment/process
Binding: MediaModality (example): Detailed information about the type of the image - its kind, purpose, or the kind of equipment used to generate it.
... view Σ 0..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
Binding: MediaCollectionView/Projection (example): Imaging view (projection) used when collecting an image.
... subject Σ 0..1 Reference(Patient | Practitioner | PractitionerRole | Group | Device | Specimen | Location) Who/What this Media is a record of
... encounter Σ 0..1 Reference(Encounter) Encounter associated with media
... created[x] Σ 0..1 When Media was collected
.... createdDateTime dateTime
.... createdPeriod Period
... issued Σ 0..1 instant Date/Time this version was made available
... operator Σ 0..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) The person who generated the image
... reasonCode Σ 0..* CodeableConcept Why was event performed?
Binding: ProcedureReasonCodes (example): The reason for the media.
... bodySite Σ 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... deviceName Σ 0..1 string Name of the device/manufacturer
... device Σ 0..1 Reference(Device | DeviceMetric | Device) Observing Device
... height Σ 0..1 positiveInt Height of the image in pixels (photo/video)
... width Σ 0..1 positiveInt Width of the image in pixels (photo/video)
... frames Σ 0..1 positiveInt Number of frames if > 1 (photo)
... duration Σ 0..1 decimal Length in seconds (audio / video)
... content Σ 1..1 Attachment Actual Media - reference or data
... note 0..* Annotation Comments made about the media

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Media.status Base required EventStatus 📍4.0.1 FHIR Std.
Media.type Base extensible Media Type 📍4.0.1 FHIR Std.
Media.modality Base example Media Modality 📍4.0.1 FHIR Std.
Media.view Base example Media Collection View/Projection 📍4.0.1 FHIR Std.
Media.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Media.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Media If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Media If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Media If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Media If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Media A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Summary

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron