Dental Core FHIR Profiles (R4)
Version 0.3.0 - ci-build

Resource Profile: Dental Orthodontic Photograph ( Experimental )

Official URL: https://fhir.cognovis.de/dental-core/StructureDefinition/dental-orthodontic-photograph Version: 0.3.0
Draft as of 2026-08-14 Computable Name: DentalOrthodonticPhotograph
Other Identifiers: OID:2.16.840.1.113883.3.7985.2.42.17

Copyright/Legal: Copyright 2026+ cognovis GmbH. Cognovis-authored Dental Core material is licensed under Apache-2.0; third-party material retains its own terms as documented in the Third-Party Notices.

A standardized orthodontic photograph used as exchangeable image evidence; the image content and acquisition protocol remain outside this profile.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

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 ?!SΣ 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.
... subject SΣ 1..1 Reference(Patient) Who/What this Media is a record of
... created[x] SΣ 1..1 When Media was collected
.... createdDateTime dateTime
.... createdPeriod Period
... content SΣ 1..1 Attachment Actual Media - reference or data
.... contentType SΣ 1..1 code Mime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Example General: text/plain; charset=UTF-8, image/png
.... url SΣ 1..1 url Uri where the data can be found
Example General: http://www.acme.com/logo-small.png

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.status Base required EventStatus 📍4.0.1 FHIR Std.
Media.view Base example Media Collection View/Projection 📍4.0.1 FHIR Std.
Media.content.contentType Base required MimeType 📍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()

This structure is derived from Media

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
... status S 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
... view S 1..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
... subject S 1..1 Reference(Patient) Who/What this Media is a record of
... content S 1..1 Attachment Actual Media - reference or data
.... contentType S 1..1 code Mime type of the content, with charset etc.
.... url S 1..1 url Uri where the data can be found

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 ?!SΣ 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 SΣ 1..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
Binding: MediaCollectionView/Projection (example): Imaging view (projection) used when collecting an image.
... subject SΣ 1..1 Reference(Patient) Who/What this Media is a record of
... encounter Σ 0..1 Reference(Encounter) Encounter associated with media
... created[x] SΣ 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(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 SΣ 1..1 Attachment Actual Media - reference or data
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... contentType SΣ 1..1 code Mime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Example General: text/plain; charset=UTF-8, image/png
.... language Σ 0..1 code Human language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding

Example General: en-AU
.... data 0..1 base64Binary Data inline, base64ed
.... url SΣ 1..1 url Uri where the data can be found
Example General: http://www.acme.com/logo-small.png
.... size Σ 0..1 unsignedInt Number of bytes of content (if url provided)
.... hash Σ 0..1 base64Binary Hash of the data (sha-1, base64ed)
.... title Σ 0..1 string Label to display in place of the data
Example General: Official Corporate Logo
.... creation Σ 0..1 dateTime Date attachment was first created
... 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.
Media.content.contentType Base required MimeType 📍4.0.1 FHIR Std.
Media.content.language Base preferred Common Languages 📍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()

This structure is derived from Media

Summary

Mandatory: 5 elements
Must-Support: 7 elements

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 ?!SΣ 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.
... subject SΣ 1..1 Reference(Patient) Who/What this Media is a record of
... created[x] SΣ 1..1 When Media was collected
.... createdDateTime dateTime
.... createdPeriod Period
... content SΣ 1..1 Attachment Actual Media - reference or data
.... contentType SΣ 1..1 code Mime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Example General: text/plain; charset=UTF-8, image/png
.... url SΣ 1..1 url Uri where the data can be found
Example General: http://www.acme.com/logo-small.png

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Media.status Base required EventStatus 📍4.0.1 FHIR Std.
Media.view Base example Media Collection View/Projection 📍4.0.1 FHIR Std.
Media.content.contentType Base required MimeType 📍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

This structure is derived from Media

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
... status S 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
... view S 1..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
... subject S 1..1 Reference(Patient) Who/What this Media is a record of
... content S 1..1 Attachment Actual Media - reference or data
.... contentType S 1..1 code Mime type of the content, with charset etc.
.... url S 1..1 url Uri where the data can be found

doco Documentation for this format

Snapshot 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
... 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 ?!SΣ 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 SΣ 1..1 CodeableConcept Imaging view, e.g. Lateral or Antero-posterior
Binding: MediaCollectionView/Projection (example): Imaging view (projection) used when collecting an image.
... subject SΣ 1..1 Reference(Patient) Who/What this Media is a record of
... encounter Σ 0..1 Reference(Encounter) Encounter associated with media
... created[x] SΣ 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(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 SΣ 1..1 Attachment Actual Media - reference or data
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... contentType SΣ 1..1 code Mime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.
Example General: text/plain; charset=UTF-8, image/png
.... language Σ 0..1 code Human language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding

Example General: en-AU
.... data 0..1 base64Binary Data inline, base64ed
.... url SΣ 1..1 url Uri where the data can be found
Example General: http://www.acme.com/logo-small.png
.... size Σ 0..1 unsignedInt Number of bytes of content (if url provided)
.... hash Σ 0..1 base64Binary Hash of the data (sha-1, base64ed)
.... title Σ 0..1 string Label to display in place of the data
Example General: Official Corporate Logo
.... creation Σ 0..1 dateTime Date attachment was first created
... 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.
Media.content.contentType Base required MimeType 📍4.0.1 FHIR Std.
Media.content.language Base preferred Common Languages 📍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()

This structure is derived from Media

Summary

Mandatory: 5 elements
Must-Support: 7 elements

 

Other representations of profile: CSV, Excel, Schematron