eHealth Infrastructure - Local Development build (v2021.3.0). See the Directory of published versions
Defining URL: | http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-media |
Version: | 2021.3.0 |
Name: | ehealth-media |
Status: | Active as of 2021-11-25T09:32:14+00:00 |
Publisher: | Systematic | Trifork |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-media
A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference.
In scope of the eHealth infrastructure Media resources are used with measurements, so that submitted measurement bundles can consist of e.g. Observations, QuestionnaireResponses, and Media. The actual media data can be contained as a payload of the Media resource (using the content.data
element) or be referenced from the Media resource (using the content.url
element).
Media are immutable. Once they are created as a FHIR resource they cannot be updated or deleted, but they can be read based on id
or searched based on certain elements.
It is possible to search for Media based on:
At least one of “subject” and “context” must be provided. “period” searches on range of “occurence”.
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Media
Summary
Mandatory: 6 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
This structure is derived from Media
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | string | 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) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 2..* | Extension | Extension Slice: Unordered, Open by value:url | |
workflow-episodeOfCare | 1..1 | Reference(EpisodeOfCare) | Associated Encounter episode of care URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare | |
ehealth-quality | 0..* | (Complex) | Minimum requirements for qualities URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality | |
ehealth-resolved-timing | 1..1 | (Complex) | Resolved Timing URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Identifier(s) for the image |
basedOn | Σ | 1..1 | Reference(ehealth-servicerequest) {r} | 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 | Σ | 1..1 | Reference(ehealth-patient | ehealth-practitioner | Group | ehealth-device | Specimen) | Who/What this Media is a record of |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
reference | ΣI | 1..1 | string | Literal reference, Relative, internal or absolute URL |
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). |
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known |
display | Σ | 0..1 | string | Text alternative for the resource |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter associated with media |
created[x] | Σ | 1..1 | When Media was collected | |
createdDateTime | dateTime | |||
createdPeriod | Period | |||
issued | Σ | 0..1 | instant | Date/Time this version was made available |
operator | Σ | 0..1 | Reference(ehealth-practitioner) {r} | 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(ehealth-device | ehealth-devicemetric) {r} | 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 | |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
Slices for author[x] | Σ | 0..1 | Individual responsible for the annotation Slice: Unordered, Closed by type:$this | |
authorReference | Reference(Any) | |||
authorString | string | |||
author[x]:authorReference | Σ | 0..1 | Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) | Individual responsible for the annotation |
author[x]:authorString | Σ | 0..1 | string | Individual responsible for the annotation |
time | Σ | 0..1 | dateTime | When the annotation was made |
text | Σ | 1..1 | markdown | The annotation - text content (as markdown) |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | |
Documentation for this format |
This structure is derived from Media
Summary
Mandatory: 6 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Differential View
This structure is derived from Media
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | string | 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) Max Binding: AllLanguages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
Slices for extension | 2..* | Extension | Extension Slice: Unordered, Open by value:url | |
workflow-episodeOfCare | 1..1 | Reference(EpisodeOfCare) | Associated Encounter episode of care URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare | |
ehealth-quality | 0..* | (Complex) | Minimum requirements for qualities URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-quality | |
ehealth-resolved-timing | 1..1 | (Complex) | Resolved Timing URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-resolved-timing | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Identifier(s) for the image |
basedOn | Σ | 1..1 | Reference(ehealth-servicerequest) {r} | 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 | Σ | 1..1 | Reference(ehealth-patient | ehealth-practitioner | Group | ehealth-device | Specimen) | Who/What this Media is a record of |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
reference | ΣI | 1..1 | string | Literal reference, Relative, internal or absolute URL |
type | Σ | 0..1 | uri | Type the reference refers to (e.g. "Patient") Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model). |
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known |
display | Σ | 0..1 | string | Text alternative for the resource |
encounter | Σ | 0..1 | Reference(Encounter) | Encounter associated with media |
created[x] | Σ | 1..1 | When Media was collected | |
createdDateTime | dateTime | |||
createdPeriod | Period | |||
issued | Σ | 0..1 | instant | Date/Time this version was made available |
operator | Σ | 0..1 | Reference(ehealth-practitioner) {r} | 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(ehealth-device | ehealth-devicemetric) {r} | 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 | |
id | 0..1 | string | Unique id for inter-element referencing | |
Slices for extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
Slices for author[x] | Σ | 0..1 | Individual responsible for the annotation Slice: Unordered, Closed by type:$this | |
authorReference | Reference(Any) | |||
authorString | string | |||
author[x]:authorReference | Σ | 0..1 | Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) | Individual responsible for the annotation |
author[x]:authorString | Σ | 0..1 | string | Individual responsible for the annotation |
time | Σ | 0..1 | dateTime | When the annotation was made |
text | Σ | 1..1 | markdown | The annotation - text content (as markdown) |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
Media.language | preferred | CommonLanguages Max Binding: AllLanguages |
Media.status | required | EventStatus |
Media.type | extensible | MediaType |
Media.modality | example | MediaModality |
Media.view | example | MediaCollectionView/Projection |
Media.subject.type | extensible | ResourceType |
Media.reasonCode | example | ProcedureReasonCodes |
Media.bodySite | example | SNOMEDCTBodyStructures |
Id | Path | Details | Requirements |
dom-2 | Media | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | 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 | 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 | Media | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Media | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | Media.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.extension:episodeOfCare | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.extension:episodeOfCare | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.extension:quality | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.extension:quality | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.extension:resolvedTiming | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.extension:resolvedTiming | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.partOf | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.modality | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.view | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.subject.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.subject.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.subject.reference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.subject.type | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.subject.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.subject.display | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.created[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.issued | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.operator | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.deviceName | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.device | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.height | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.width | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.frames | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.duration | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.content | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | Media.note.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Media.note.author[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note.author[x]:authorReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note.author[x]:authorString | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note.time | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | Media.note.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |