Manifest-based Access to DICOM Objects (MADO)
0.1.0 - trial-use
Manifest-based Access to DICOM Objects (MADO), published by IHE Radiology Technical Committee. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IHE/RAD.MADO/ and changes regularly. See the Directory of published versions
| Official URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoImagingStudy | Version: 0.1.0 | |||
| Standards status: Draft | Maturity Level: 1 | Computable Name: MadoImagingStudy | ||
Profile for ImagingStudy resources that represent the imaging studies manifest in the MADO context. It includes additional constraints and extensions specific to the MADO context, such as the study modality, the clinical specialty, the anatomical region of interest, the presence of significant images.
In the case significant images are present, an instance referenced in the ImagingStudy is a Key Object Selection document TID 2010, the ImagingStudy.series.instance.extension[ko-document-title] SHALL contain the Document Title code of the referenced document, and the ImagingStudy.series.instance.description field contains the contents of the KeyObjectSelectionDescription field.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ImagingStudy | A set of images produced in single study (one or more series of references images) | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this |
![]() ![]() ![]() |
SΣ | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study |
![]() ![]() |
?!Σ | 1..1 | code | registered | available | cancelled | entered-in-error | unknown Binding: ImagingStudyStatus (required): The status of the ImagingStudy. |
![]() ![]() |
SΣ | 0..* | Coding | All series modality if actual acquisition modalities Binding: AcquisitionModality (extensible): Type of acquired data in the instance. |
![]() ![]() |
SΣ | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study |
![]() ![]() |
SΣ | 0..1 | dateTime | When the study was started Example General: 2011-01-01T11:01:20+03:00 |
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this |
![]() ![]() ![]() |
SΣ | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled |
![]() ![]() |
Σ | 0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() |
![]() ![]() ![]() |
SΣ | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint |
![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Study Related Series |
![]() ![]() |
SΣ | 0..* | CodeableConcept | The performed procedure code Binding: http://www.rsna.org/RadLex_Playbook.aspx (extensible): The performed procedure type. |
![]() ![]() |
SΣ | 0..1 | string | Institution-generated description |
![]() ![]() |
Σ | 0..* | BackboneElement | Each study has one or more series of instances |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | id | DICOM Series Instance UID for the series Example General: 2.16.124.113543.6003.2588828330.45298.17418.2723805630 |
![]() ![]() ![]() |
SΣ | 0..1 | unsignedInt | Numeric identifier of this series Example General: 3 |
![]() ![]() ![]() |
SΣ | 1..1 | Coding | The modality of the instances in the series Binding: AcquisitionModality (extensible): Type of acquired data in the instance. |
![]() ![]() ![]() |
SΣ | 0..1 | string | A short human readable summary of the series Example General: CT Surview 180 |
![]() ![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Series Related Instances |
![]() ![]() ![]() |
Σ | 1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() |
![]() ![]() ![]() ![]() |
SΣ | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint |
![]() ![]() ![]() |
SΣ | 0..1 | Coding | Body part examined Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. |
![]() ![]() ![]() |
SΣ | 0..* | Reference(Specimen) | Specimen imaged |
![]() ![]() ![]() |
SΣ | 0..1 | dateTime | When the series started |
![]() ![]() ![]() |
0..* | BackboneElement | A single SOP instance from the series | |
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID Example General: 2.16.124.113543.6003.189642796.63084.16748.2599092903 |
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type Binding: http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 (extensible): The sopClass for the instance. |
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series Example General: 1 |
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ImagingStudy.status | Base | required | ImagingStudyStatus | 📍4.0.1 | FHIR Std. |
| ImagingStudy.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.procedureCode | Base | extensible | http://www.rsna.org/RadLex_Playbook.aspx | Not State | Unknown |
| ImagingStudy.series.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.series.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.instance.sopClass | Base | extensible | http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ImagingStudy | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ImagingStudy | 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 | ImagingStudy | 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 | ImagingStudy | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ImagingStudy | 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 ImagingStudy
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
ImagingStudy | |||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) |
![]() ![]() |
1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this | |
![]() ![]() ![]() |
S | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study |
![]() ![]() |
S | 0..* | Coding | All series modality if actual acquisition modalities |
![]() ![]() |
S | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study |
![]() ![]() |
S | 0..1 | dateTime | When the study was started |
![]() ![]() |
0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
S | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled |
![]() ![]() |
0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() | |
![]() ![]() ![]() |
S | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint |
![]() ![]() |
S | 1..1 | unsignedInt | Number of Study Related Series |
![]() ![]() |
S | 0..* | CodeableConcept | The performed procedure code |
![]() ![]() |
S | 0..1 | string | Institution-generated description |
![]() ![]() |
||||
![]() ![]() ![]() |
S | 1..1 | id | DICOM Series Instance UID for the series |
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Numeric identifier of this series |
![]() ![]() ![]() |
S | 1..1 | Coding | The modality of the instances in the series |
![]() ![]() ![]() |
S | 0..1 | string | A short human readable summary of the series |
![]() ![]() ![]() |
S | 1..1 | unsignedInt | Number of Series Related Instances |
![]() ![]() ![]() |
1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() | |
![]() ![]() ![]() ![]() |
S | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint |
![]() ![]() ![]() |
S | 0..1 | Coding | Body part examined |
![]() ![]() ![]() |
S | 0..* | Reference(Specimen) | Specimen imaged |
![]() ![]() ![]() |
S | 0..1 | dateTime | When the series started |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) |
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID |
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type |
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series |
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | ImagingStudy | A set of images produced in single study (one or more series of references images) | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) | ||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this | ||||
![]() ![]() ![]() |
SΣ | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study | ||||
![]() ![]() |
?!Σ | 1..1 | code | registered | available | cancelled | entered-in-error | unknown Binding: ImagingStudyStatus (required): The status of the ImagingStudy. | ||||
![]() ![]() |
SΣ | 0..* | Coding | All series modality if actual acquisition modalities Binding: AcquisitionModality (extensible): Type of acquired data in the instance. | ||||
![]() ![]() |
SΣ | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter with which this imaging study is associated | ||||
![]() ![]() |
SΣ | 0..1 | dateTime | When the study was started Example General: 2011-01-01T11:01:20+03:00 | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this | ||||
![]() ![]() ![]() |
SΣ | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole) | Referring physician | ||||
![]() ![]() |
Σ | 0..* | Reference(Practitioner | PractitionerRole) | Who interpreted images | ||||
![]() ![]() |
Σ | 0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() | ||||
![]() ![]() ![]() |
SΣ | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint | ||||
![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Study Related Series | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of Study Related Instances | ||||
![]() ![]() |
Σ | 0..1 | Reference(Procedure) | The performed Procedure reference | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | The performed procedure code Binding: http://www.rsna.org/RadLex_Playbook.aspx (extensible): The performed procedure type. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Location) | Where ImagingStudy occurred | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Why the study was requested Binding: ProcedureReasonCodes (example): The reason for the study. | ||||
![]() ![]() |
Σ | 0..* | Reference(Condition | Observation | Media | DiagnosticReport | DocumentReference) | Why was study performed | ||||
![]() ![]() |
Σ | 0..* | Annotation | User-defined comments | ||||
![]() ![]() |
SΣ | 0..1 | string | Institution-generated description | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Each study has one or more series of instances | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | id | DICOM Series Instance UID for the series Example General: 2.16.124.113543.6003.2588828330.45298.17418.2723805630 | ||||
![]() ![]() ![]() |
SΣ | 0..1 | unsignedInt | Numeric identifier of this series Example General: 3 | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Coding | The modality of the instances in the series Binding: AcquisitionModality (extensible): Type of acquired data in the instance. | ||||
![]() ![]() ![]() |
SΣ | 0..1 | string | A short human readable summary of the series Example General: CT Surview 180 | ||||
![]() ![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Series Related Instances | ||||
![]() ![]() ![]() |
Σ | 1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint | ||||
![]() ![]() ![]() |
SΣ | 0..1 | Coding | Body part examined Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Coding | Body part laterality Binding: Laterality (example): Codes describing body site laterality (left, right, etc.). | ||||
![]() ![]() ![]() |
SΣ | 0..* | Reference(Specimen) | Specimen imaged | ||||
![]() ![]() ![]() |
SΣ | 0..1 | dateTime | When the series started | ||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Who performed the series | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of performance Binding: ImagingStudySeriesPerformerFunction (extensible): The type of involvement of the performer. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) | Who performed the series | ||||
![]() ![]() ![]() |
0..* | BackboneElement | A single SOP instance from the series | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames | ||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) | ||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID Example General: 2.16.124.113543.6003.189642796.63084.16748.2599092903 | ||||
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type Binding: http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 (extensible): The sopClass for the instance. | ||||
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series Example General: 1 | ||||
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ImagingStudy.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ImagingStudy.status | Base | required | ImagingStudyStatus | 📍4.0.1 | FHIR Std. |
| ImagingStudy.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.procedureCode | Base | extensible | http://www.rsna.org/RadLex_Playbook.aspx | Not State | Unknown |
| ImagingStudy.reasonCode | Base | example | Procedure Reason Codes | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.series.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.laterality | Base | example | Laterality | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.performer.function | Base | extensible | ImagingStudy series performer function | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.instance.sopClass | Base | extensible | http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ImagingStudy | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ImagingStudy | 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 | ImagingStudy | 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 | ImagingStudy | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ImagingStudy | 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 ImagingStudy
Summary
Mandatory: 3 elements(3 nested mandatory elements)
Must-Support: 25 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Maturity: 1
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | ImagingStudy | A set of images produced in single study (one or more series of references images) | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this |
![]() ![]() ![]() |
SΣ | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study |
![]() ![]() |
?!Σ | 1..1 | code | registered | available | cancelled | entered-in-error | unknown Binding: ImagingStudyStatus (required): The status of the ImagingStudy. |
![]() ![]() |
SΣ | 0..* | Coding | All series modality if actual acquisition modalities Binding: AcquisitionModality (extensible): Type of acquired data in the instance. |
![]() ![]() |
SΣ | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study |
![]() ![]() |
SΣ | 0..1 | dateTime | When the study was started Example General: 2011-01-01T11:01:20+03:00 |
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this |
![]() ![]() ![]() |
SΣ | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled |
![]() ![]() |
Σ | 0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() |
![]() ![]() ![]() |
SΣ | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint |
![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Study Related Series |
![]() ![]() |
SΣ | 0..* | CodeableConcept | The performed procedure code Binding: http://www.rsna.org/RadLex_Playbook.aspx (extensible): The performed procedure type. |
![]() ![]() |
SΣ | 0..1 | string | Institution-generated description |
![]() ![]() |
Σ | 0..* | BackboneElement | Each study has one or more series of instances |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
SΣ | 1..1 | id | DICOM Series Instance UID for the series Example General: 2.16.124.113543.6003.2588828330.45298.17418.2723805630 |
![]() ![]() ![]() |
SΣ | 0..1 | unsignedInt | Numeric identifier of this series Example General: 3 |
![]() ![]() ![]() |
SΣ | 1..1 | Coding | The modality of the instances in the series Binding: AcquisitionModality (extensible): Type of acquired data in the instance. |
![]() ![]() ![]() |
SΣ | 0..1 | string | A short human readable summary of the series Example General: CT Surview 180 |
![]() ![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Series Related Instances |
![]() ![]() ![]() |
Σ | 1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() |
![]() ![]() ![]() ![]() |
SΣ | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint |
![]() ![]() ![]() |
SΣ | 0..1 | Coding | Body part examined Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. |
![]() ![]() ![]() |
SΣ | 0..* | Reference(Specimen) | Specimen imaged |
![]() ![]() ![]() |
SΣ | 0..1 | dateTime | When the series started |
![]() ![]() ![]() |
0..* | BackboneElement | A single SOP instance from the series | |
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) |
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID Example General: 2.16.124.113543.6003.189642796.63084.16748.2599092903 |
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type Binding: http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 (extensible): The sopClass for the instance. |
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series Example General: 1 |
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| ImagingStudy.status | Base | required | ImagingStudyStatus | 📍4.0.1 | FHIR Std. |
| ImagingStudy.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.procedureCode | Base | extensible | http://www.rsna.org/RadLex_Playbook.aspx | Not State | Unknown |
| ImagingStudy.series.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.series.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.instance.sopClass | Base | extensible | http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ImagingStudy | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ImagingStudy | 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 | ImagingStudy | 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 | ImagingStudy | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ImagingStudy | 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 ImagingStudy
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
ImagingStudy | |||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) |
![]() ![]() |
1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this | |
![]() ![]() ![]() |
S | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study |
![]() ![]() |
S | 0..* | Coding | All series modality if actual acquisition modalities |
![]() ![]() |
S | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study |
![]() ![]() |
S | 0..1 | dateTime | When the study was started |
![]() ![]() |
0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
S | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled |
![]() ![]() |
0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() | |
![]() ![]() ![]() |
S | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint |
![]() ![]() |
S | 1..1 | unsignedInt | Number of Study Related Series |
![]() ![]() |
S | 0..* | CodeableConcept | The performed procedure code |
![]() ![]() |
S | 0..1 | string | Institution-generated description |
![]() ![]() |
||||
![]() ![]() ![]() |
S | 1..1 | id | DICOM Series Instance UID for the series |
![]() ![]() ![]() |
S | 0..1 | unsignedInt | Numeric identifier of this series |
![]() ![]() ![]() |
S | 1..1 | Coding | The modality of the instances in the series |
![]() ![]() ![]() |
S | 0..1 | string | A short human readable summary of the series |
![]() ![]() ![]() |
S | 1..1 | unsignedInt | Number of Series Related Instances |
![]() ![]() ![]() |
1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() | |
![]() ![]() ![]() ![]() |
S | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint |
![]() ![]() ![]() |
S | 0..1 | Coding | Body part examined |
![]() ![]() ![]() |
S | 0..* | Reference(Specimen) | Specimen imaged |
![]() ![]() ![]() |
S | 0..1 | dateTime | When the series started |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames |
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) |
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID |
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type |
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series |
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | ImagingStudy | A set of images produced in single study (one or more series of references images) | |||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
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 | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
S | 0..* | CodeableConcept | The anatomical regions covered by the study. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoAnatomicalRegionExtension Binding: Anatomical Region (preferred) | ||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Identifiers for the whole study Slice: Unordered, Open by profile:$this | ||||
![]() ![]() ![]() |
SΣ | 1..1 | MadoStudyInstanceUidIdentifier | Identifiers for the whole study | ||||
![]() ![]() |
?!Σ | 1..1 | code | registered | available | cancelled | entered-in-error | unknown Binding: ImagingStudyStatus (required): The status of the ImagingStudy. | ||||
![]() ![]() |
SΣ | 0..* | Coding | All series modality if actual acquisition modalities Binding: AcquisitionModality (extensible): Type of acquired data in the instance. | ||||
![]() ![]() |
SΣ | 1..1 | Reference(MADO Patient) | Who or what is the subject of the study | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter with which this imaging study is associated | ||||
![]() ![]() |
SΣ | 0..1 | dateTime | When the study was started Example General: 2011-01-01T11:01:20+03:00 | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled Slice: Unordered, Open by type:$this | ||||
![]() ![]() ![]() |
SΣ | 0..1 | MadoReferencedAccessionNumberIdentifier(CarePlan | ServiceRequest | Appointment | AppointmentResponse | Task) | Request fulfilled | ||||
![]() ![]() |
Σ | 0..1 | Reference(Practitioner | PractitionerRole) | Referring physician | ||||
![]() ![]() |
Σ | 0..* | Reference(Practitioner | PractitionerRole) | Who interpreted images | ||||
![]() ![]() |
Σ | 0..* | Reference(Endpoint) | Study access endpoint Slice: Unordered, Open by profile:$this.resolve() | ||||
![]() ![]() ![]() |
SΣ | 0..* | Reference(Endpoint: MADO profile for Web Viewer endpoints) | Study access endpoint | ||||
![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Study Related Series | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of Study Related Instances | ||||
![]() ![]() |
Σ | 0..1 | Reference(Procedure) | The performed Procedure reference | ||||
![]() ![]() |
SΣ | 0..* | CodeableConcept | The performed procedure code Binding: http://www.rsna.org/RadLex_Playbook.aspx (extensible): The performed procedure type. | ||||
![]() ![]() |
Σ | 0..1 | Reference(Location) | Where ImagingStudy occurred | ||||
![]() ![]() |
Σ | 0..* | CodeableConcept | Why the study was requested Binding: ProcedureReasonCodes (example): The reason for the study. | ||||
![]() ![]() |
Σ | 0..* | Reference(Condition | Observation | Media | DiagnosticReport | DocumentReference) | Why was study performed | ||||
![]() ![]() |
Σ | 0..* | Annotation | User-defined comments | ||||
![]() ![]() |
SΣ | 0..1 | string | Institution-generated description | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Each study has one or more series of instances | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
SΣ | 1..1 | id | DICOM Series Instance UID for the series Example General: 2.16.124.113543.6003.2588828330.45298.17418.2723805630 | ||||
![]() ![]() ![]() |
SΣ | 0..1 | unsignedInt | Numeric identifier of this series Example General: 3 | ||||
![]() ![]() ![]() |
SΣ | 1..1 | Coding | The modality of the instances in the series Binding: AcquisitionModality (extensible): Type of acquired data in the instance. | ||||
![]() ![]() ![]() |
SΣ | 0..1 | string | A short human readable summary of the series Example General: CT Surview 180 | ||||
![]() ![]() ![]() |
SΣ | 1..1 | unsignedInt | Number of Series Related Instances | ||||
![]() ![]() ![]() |
Σ | 1..* | Reference(Endpoint) | Series access endpoint Slice: Unordered, Open by profile:$this.resolve() | ||||
![]() ![]() ![]() ![]() |
SΣ | 1..* | Reference(Endpoint: MADO WADO endpoint) | Series access endpoint | ||||
![]() ![]() ![]() |
SΣ | 0..1 | Coding | Body part examined Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Coding | Body part laterality Binding: Laterality (example): Codes describing body site laterality (left, right, etc.). | ||||
![]() ![]() ![]() |
SΣ | 0..* | Reference(Specimen) | Specimen imaged | ||||
![]() ![]() ![]() |
SΣ | 0..1 | dateTime | When the series started | ||||
![]() ![]() ![]() |
Σ | 0..* | BackboneElement | Who performed the series | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of performance Binding: ImagingStudySeriesPerformerFunction (extensible): The type of involvement of the performer. | ||||
![]() ![]() ![]() ![]() |
Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | Device | RelatedPerson) | Who performed the series | ||||
![]() ![]() ![]() |
0..* | BackboneElement | A single SOP instance from the series | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Extension Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | integer | The number of frames in an ImagingStudy instance. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoNumberOfFrames | ||||
![]() ![]() ![]() ![]() ![]() |
S | 0..1 | CodeableConcept | When this instance represents a Key Object Selection document, this extension contains the document title code of the referenced document. URL: https://profiles.ihe.net/RAD/MADO/StructureDefinition/MadoKeyObjectDocumentTitle Binding: KeyObjectSelectionDocumentTitle (required) | ||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
S | 1..1 | id | DICOM SOP Instance UID Example General: 2.16.124.113543.6003.189642796.63084.16748.2599092903 | ||||
![]() ![]() ![]() ![]() |
S | 1..1 | Coding | DICOM class type Binding: http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 (extensible): The sopClass for the instance. | ||||
![]() ![]() ![]() ![]() |
S | 0..1 | unsignedInt | The number of this instance in the series Example General: 1 | ||||
![]() ![]() ![]() ![]() |
S | 0..1 | string | Will contain the Key Object Description in the case the instance represents a Key Object. | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| ImagingStudy.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| ImagingStudy.status | Base | required | ImagingStudyStatus | 📍4.0.1 | FHIR Std. |
| ImagingStudy.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.procedureCode | Base | extensible | http://www.rsna.org/RadLex_Playbook.aspx | Not State | Unknown |
| ImagingStudy.reasonCode | Base | example | Procedure Reason Codes | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.modality | Base | extensible | AcquisitionModality | 📦2025.3.20250714 | DICOM v2025c |
| ImagingStudy.series.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.laterality | Base | example | Laterality | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.performer.function | Base | extensible | ImagingStudy series performer function | 📍4.0.1 | FHIR Std. |
| ImagingStudy.series.instance.sopClass | Base | extensible | http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_B.5.html#table_B.5-1 | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | ImagingStudy | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | ImagingStudy | 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 | ImagingStudy | 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 | ImagingStudy | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | ImagingStudy | 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 ImagingStudy
Summary
Mandatory: 3 elements(3 nested mandatory elements)
Must-Support: 25 elements
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Maturity: 1
Other representations of profile: CSV, Excel, Schematron