Imaging Diagnostic Report
0.0.1-current - ci-build International flag

Imaging Diagnostic Report, published by IHE Radiology Technical Committee. This guide is not an authorized publication; it is the continuous build for version 0.0.1-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/RAD.IDR/ and changes regularly. See the Directory of published versions

Resource Profile: IDR Reported Imaging Procedure

Official URL: https://profiles.ihe.net/RAD/IDR/StructureDefinition/idr-imaging-procedure Version: 0.0.1-current
Draft as of 2026-01-24 Computable Name: IDRImagingProcedure

Procedure information, such as technique, materials, and processing, for the imaging procedure being reported.

For examples of the content to be encoded, see TOLINK RAD TF-3:B.TODO.Procedure

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
.. Procedure C 0..* Procedure An action that is being or was performed on an individual or entity
Constraints: con-4
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 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
... 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): A code specifying the state of the procedure.
... subject Σ 1..1 Reference(Patient | Group | Device | Practitioner | Organization | Location) Individual or entity the procedure was performed on
... focus ?!Σ 0..1 Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen) Who is the target of the procedure when it is not the subject of record only
... complication SΣ 0..* CodeableReference(Condition) Complication following the procedure
Binding: ConditionProblemDiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... note S 0..* Annotation Additional information about the procedure

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍6.0.0-ballot3 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍6.0.0-ballot3 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-4 error Procedure bodyStructure SHALL only be present if Procedure.bodySite is not present bodySite.exists() implies bodyStructure.empty()
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure 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())

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on an individual or entity
... text S 0..1 Narrative Text summary of the resource, for human interpretation
... complication S 0..* CodeableReference(Condition) Complication following the procedure
... note S 0..* Annotation Additional information about the procedure

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* Procedure An action that is being or was performed on an individual or entity
Constraints: con-4
... 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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text S 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 External Identifiers for this procedure
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) A request for this procedure
... partOf Σ 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReasonSNOMEDCT (example): A code that identifies the reason a procedure was not performed.
... category Σ 0..* CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodesSNOMEDCT (example): A code that classifies a procedure for searching, sorting and display purposes.
... code Σ 0..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodesSNOMEDCT (example): A code to identify a specific procedure .
... subject Σ 1..1 Reference(Patient | Group | Device | Practitioner | Organization | Location) Individual or entity the procedure was performed on
... focus ?!Σ 0..1 Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen) Who is the target of the procedure when it is not the subject of record only
... encounter Σ 0..1 Reference(Encounter) The Encounter during which this Procedure was created
... occurrence[x] Σ 0..1 When the procedure occurred or is occurring
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceString string
.... occurrenceAge Age
.... occurrenceRange Range
.... occurrenceTiming Timing
... recorded Σ 0..1 dateTime When the procedure was first captured in the subject's record
... recorder Σ 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
... performer ΣC 0..* BackboneElement Who performed the procedure and what they did
Constraints: prc-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... function Σ 0..1 CodeableConcept Type of performance
Binding: ParticipantRoles (example): A code that identifies the role of a performer of the procedure.
.... actor ΣC 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService) Who performed the procedure
.... onBehalfOf C 0..1 Reference(Organization) Organization the device or practitioner was acting for
.... period 0..1 Period When the performer performed the procedure
... location Σ 0..1 Reference(Location) Where the procedure happened
... reason Σ 0..* CodeableReference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
... bodySite ΣC 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
... bodyStructure 0..* Reference(BodyStructure) Target body structure
... outcome Σ 0..* CodeableReference(Observation) The result of procedure
Binding: ProcedureOutcomeCodesSNOMEDCT (example): An outcome of a procedure - whether it was resolved or otherwise.
... report 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
... complication SΣ 0..* CodeableReference(Condition) Complication following the procedure
Binding: ConditionProblemDiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... followUp 0..* CodeableReference(ServiceRequest | PlanDefinition) Instructions for follow up
Binding: ProcedureFollowUpCodesSNOMEDCT (example): Specific follow up required for a procedure e.g. removal of sutures.
... note S 0..* Annotation Additional information about the procedure
... focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
.... manipulated 1..1 Reference(Device) Device that was changed
... used 0..* CodeableReference(Device | Medication | Substance | BiologicallyDerivedProduct) Items used during procedure
Binding: DeviceType (example): Codes describing items used during a procedure.
... supportingInfo 0..* Reference(Resource) Extra information relevant to the procedure

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base required All Languages 📍6.0.0-ballot3 FHIR Std.
Procedure.status Base required EventStatus 📍6.0.0-ballot3 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.performer.​function Base example Participant Roles 📍6.0.0-ballot3 FHIR Std.
Procedure.reason Base example Procedure Reason Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.bodySite Base example SNOMED CT Body Structures 📍6.0.0-ballot3 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.used Base example Device Type 📍6.0.0-ballot3 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-4 error Procedure bodyStructure SHALL only be present if Procedure.bodySite is not present bodySite.exists() implies bodyStructure.empty()
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure 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())
prc-1 error Procedure.performer Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole onBehalfOf.exists() and actor.resolve().exists() implies actor.resolve().where($this is Practitioner or $this is PractitionerRole).empty()

This structure is derived from Procedure

Summary

Must-Support: 3 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* Procedure An action that is being or was performed on an individual or entity
Constraints: con-4
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text S 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
... 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): A code specifying the state of the procedure.
... subject Σ 1..1 Reference(Patient | Group | Device | Practitioner | Organization | Location) Individual or entity the procedure was performed on
... focus ?!Σ 0..1 Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen) Who is the target of the procedure when it is not the subject of record only
... complication SΣ 0..* CodeableReference(Condition) Complication following the procedure
Binding: ConditionProblemDiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... note S 0..* Annotation Additional information about the procedure

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍6.0.0-ballot3 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍6.0.0-ballot3 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-4 error Procedure bodyStructure SHALL only be present if Procedure.bodySite is not present bodySite.exists() implies bodyStructure.empty()
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure 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())

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure 0..* Procedure An action that is being or was performed on an individual or entity
... text S 0..1 Narrative Text summary of the resource, for human interpretation
... complication S 0..* CodeableReference(Condition) Complication following the procedure
... note S 0..* Annotation Additional information about the procedure

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Procedure C 0..* Procedure An action that is being or was performed on an individual or entity
Constraints: con-4
... 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: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
... text S 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 External Identifiers for this procedure
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) A request for this procedure
... partOf Σ 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReasonSNOMEDCT (example): A code that identifies the reason a procedure was not performed.
... category Σ 0..* CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodesSNOMEDCT (example): A code that classifies a procedure for searching, sorting and display purposes.
... code Σ 0..1 CodeableConcept Identification of the procedure
Binding: ProcedureCodesSNOMEDCT (example): A code to identify a specific procedure .
... subject Σ 1..1 Reference(Patient | Group | Device | Practitioner | Organization | Location) Individual or entity the procedure was performed on
... focus ?!Σ 0..1 Reference(Patient | Group | RelatedPerson | Practitioner | Organization | CareTeam | PractitionerRole | Specimen) Who is the target of the procedure when it is not the subject of record only
... encounter Σ 0..1 Reference(Encounter) The Encounter during which this Procedure was created
... occurrence[x] Σ 0..1 When the procedure occurred or is occurring
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceString string
.... occurrenceAge Age
.... occurrenceRange Range
.... occurrenceTiming Timing
... recorded Σ 0..1 dateTime When the procedure was first captured in the subject's record
... recorder Σ 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
... reported[x] Σ 0..1 Reported rather than primary record
.... reportedBoolean boolean
.... reportedReference Reference(Patient | RelatedPerson | Practitioner | PractitionerRole | Organization)
... performer ΣC 0..* BackboneElement Who performed the procedure and what they did
Constraints: prc-1
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... function Σ 0..1 CodeableConcept Type of performance
Binding: ParticipantRoles (example): A code that identifies the role of a performer of the procedure.
.... actor ΣC 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device | CareTeam | HealthcareService) Who performed the procedure
.... onBehalfOf C 0..1 Reference(Organization) Organization the device or practitioner was acting for
.... period 0..1 Period When the performer performed the procedure
... location Σ 0..1 Reference(Location) Where the procedure happened
... reason Σ 0..* CodeableReference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
... bodySite ΣC 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
... bodyStructure 0..* Reference(BodyStructure) Target body structure
... outcome Σ 0..* CodeableReference(Observation) The result of procedure
Binding: ProcedureOutcomeCodesSNOMEDCT (example): An outcome of a procedure - whether it was resolved or otherwise.
... report 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
... complication SΣ 0..* CodeableReference(Condition) Complication following the procedure
Binding: ConditionProblemDiagnosisCodes (example): Codes describing complications that resulted from a procedure.
... followUp 0..* CodeableReference(ServiceRequest | PlanDefinition) Instructions for follow up
Binding: ProcedureFollowUpCodesSNOMEDCT (example): Specific follow up required for a procedure e.g. removal of sutures.
... note S 0..* Annotation Additional information about the procedure
... focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
.... manipulated 1..1 Reference(Device) Device that was changed
... used 0..* CodeableReference(Device | Medication | Substance | BiologicallyDerivedProduct) Items used during procedure
Binding: DeviceType (example): Codes describing items used during a procedure.
... supportingInfo 0..* Reference(Resource) Extra information relevant to the procedure

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base required All Languages 📍6.0.0-ballot3 FHIR Std.
Procedure.status Base required EventStatus 📍6.0.0-ballot3 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.code Base example Procedure Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.performer.​function Base example Participant Roles 📍6.0.0-ballot3 FHIR Std.
Procedure.reason Base example Procedure Reason Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.bodySite Base example SNOMED CT Body Structures 📍6.0.0-ballot3 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📍6.0.0-ballot3 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍6.0.0-ballot3 FHIR Std.
Procedure.used Base example Device Type 📍6.0.0-ballot3 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
con-4 error Procedure bodyStructure SHALL only be present if Procedure.bodySite is not present bodySite.exists() implies bodyStructure.empty()
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure 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())
prc-1 error Procedure.performer Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole onBehalfOf.exists() and actor.resolve().exists() implies actor.resolve().where($this is Practitioner or $this is PractitionerRole).empty()

This structure is derived from Procedure

Summary

Must-Support: 3 elements

 

Other representations of profile: CSV, Excel, Schematron