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/MadoWebViewerEndpoint | Version: 0.1.0 | |||
| Standards status: Draft | Maturity Level: 1 | Computable Name: MadoWebViewerEndpoint | ||
This profile defines the Web Viewer endpoint for accessing imaging study content. The URL in the Endpoint SHALL be a fully populated URL that contains all the information required to the launch the viewer to this study.
The address field in the endpoint corresponds to the Display URI in the DICOM KOS manifest (see 6.X.2.13 Hierarchical SOP Instance Reference Macro).
The endpoint MAY be encoded using the format defined in IHE-RAD-IID.
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..* | Endpoint | The technical details of an endpoint that can be used for electronic services | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint. |
![]() ![]() |
Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible) |
![]() ![]() |
Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: EndpointPayloadType (example) Required Pattern: At least the following |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Required Pattern: text/html |
![]() ![]() |
Σ | 1..1 | url | The technical base address for connecting to this endpoint |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std. |
| Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadType | Base | example | Endpoint Payload Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Endpoint | 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 Endpoint
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
Endpoint | |||
![]() ![]() |
1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Required Pattern: At least the following | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |
![]() ![]() |
0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Required Pattern: text/html | |
Documentation for this format | ||||
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Endpoint | The technical details of an endpoint that can be used for electronic services | |||||
![]() ![]() |
Σ | 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 | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifies this endpoint across multiple systems | ||||
![]() ![]() |
?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint. | ||||
![]() ![]() |
Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible) | ||||
![]() ![]() |
Σ | 0..1 | string | A name that this endpoint can be identified by | ||||
![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint) | ||||
![]() ![]() |
0..* | ContactPoint | Contact details for source (e.g. troubleshooting) | |||||
![]() ![]() |
Σ | 0..1 | Period | Interval the endpoint is expected to be operational | ||||
![]() ![]() |
Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: EndpointPayloadType (example) Required Pattern: At least the following | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |||||
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Required Pattern: text/html | ||||
![]() ![]() |
Σ | 1..1 | url | The technical base address for connecting to this endpoint | ||||
![]() ![]() |
0..* | string | Usage depends on the channel type | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std. |
| Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadType | Base | example | Endpoint Payload Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Endpoint | 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()
|
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Endpoint | The technical details of an endpoint that can be used for electronic services | |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint. |
![]() ![]() |
Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible) |
![]() ![]() |
Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: EndpointPayloadType (example) Required Pattern: At least the following |
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Required Pattern: text/html |
![]() ![]() |
Σ | 1..1 | url | The technical base address for connecting to this endpoint |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std. |
| Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadType | Base | example | Endpoint Payload Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Endpoint | 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 Endpoint
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
Endpoint | |||
![]() ![]() |
1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Required Pattern: At least the following | |
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |
![]() ![]() |
0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Required Pattern: text/html | |
Documentation for this format | ||||
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
0..* | Endpoint | The technical details of an endpoint that can be used for electronic services | |||||
![]() ![]() |
Σ | 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 | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 0..* | Identifier | Identifies this endpoint across multiple systems | ||||
![]() ![]() |
?!Σ | 1..1 | code | active | suspended | error | off | entered-in-error | test Binding: EndpointStatus (required): The status of the endpoint. | ||||
![]() ![]() |
Σ | 1..1 | Coding | Protocol/Profile/Standard to be used with this endpoint connection Binding: EndpointConnectionType (extensible) | ||||
![]() ![]() |
Σ | 0..1 | string | A name that this endpoint can be identified by | ||||
![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that manages this endpoint (might not be the organization that exposes the endpoint) | ||||
![]() ![]() |
0..* | ContactPoint | Contact details for source (e.g. troubleshooting) | |||||
![]() ![]() |
Σ | 0..1 | Period | Interval the endpoint is expected to be operational | ||||
![]() ![]() |
Σ | 1..* | CodeableConcept | The type of content that may be used at this endpoint (e.g. XDS Discharge summaries) Binding: EndpointPayloadType (example) Required Pattern: At least the following | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/endpoint-payload-type | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: none | |||||
![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: NONE | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
Σ | 0..* | code | Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this) Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Required Pattern: text/html | ||||
![]() ![]() |
Σ | 1..1 | url | The technical base address for connecting to this endpoint | ||||
![]() ![]() |
0..* | string | Usage depends on the channel type | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Endpoint.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Endpoint.status | Base | required | EndpointStatus | 📍4.0.1 | FHIR Std. |
| Endpoint.connectionType | Base | extensible | Endpoint Connection Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadType | Base | example | Endpoint Payload Type | 📍4.0.1 | FHIR Std. |
| Endpoint.payloadMimeType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Endpoint | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Endpoint | 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 | Endpoint | 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 | Endpoint | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Endpoint | 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()
|
Other representations of profile: CSV, Excel, Schematron