NCPI FHIR Implementation Guide v2
0.2.0 - ci-build
NCPI FHIR Implementation Guide v2 - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/ncpi-drs-attachment | Version: 0.2.0 | |||
| Draft as of 2025-12-03 | Computable Name: DRSAttachment | |||
A FHIR Attachment with a DRS url.
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: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: att-1, must-be-drs-uri |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| att-1 | error | Attachment | If the Attachment has data, it SHALL have a contentType |
data.empty() or contentType.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
This structure is derived from Attachment
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: must-be-drs-uri |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: att-1, must-be-drs-uri | ||||
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png | ||||
![]() ![]() |
Σ | 0..1 | code | Human language of the content (BCP-47) Binding: CommonLanguages (preferred): A human language.
Example General: en-AU | ||||
![]() ![]() |
0..1 | base64Binary | Data inline, base64ed | |||||
![]() ![]() |
Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of bytes of content (if url provided) | ||||
![]() ![]() |
Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed) | ||||
![]() ![]() |
Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date attachment was first created | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Attachment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| att-1 | error | Attachment | If the Attachment has data, it SHALL have a contentType |
data.empty() or contentType.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()
|
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
This structure is derived from Attachment
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: att-1, must-be-drs-uri |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| att-1 | error | Attachment | If the Attachment has data, it SHALL have a contentType |
data.empty() or contentType.exists()
|
| ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children |
hasValue() or (children().count() > id.count())
|
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
Differential View
This structure is derived from Attachment
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: must-be-drs-uri |
Documentation for this format | ||||
| Id | Grade | Path(s) | Description | Expression |
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Attachment | Content in a format defined elsewhere Constraints: att-1, must-be-drs-uri | ||||
![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() |
Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png | ||||
![]() ![]() |
Σ | 0..1 | code | Human language of the content (BCP-47) Binding: CommonLanguages (preferred): A human language.
Example General: en-AU | ||||
![]() ![]() |
0..1 | base64Binary | Data inline, base64ed | |||||
![]() ![]() |
Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of bytes of content (if url provided) | ||||
![]() ![]() |
Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed) | ||||
![]() ![]() |
Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo | ||||
![]() ![]() |
Σ | 0..1 | dateTime | Date attachment was first created | ||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std. |
| Attachment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Id | Grade | Path(s) | Description | Expression |
| att-1 | error | Attachment | If the Attachment has data, it SHALL have a contentType |
data.empty() or contentType.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()
|
| must-be-drs-uri | error | Attachment | attachment.url must start with ^drs://. A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the `self_uri` presents you with a hostname and properly encoded DRS ID for use in subsequent `access` endpoint calls. |
$this.url.matches('^drs://.*')
|
This structure is derived from Attachment
Other representations of profile: CSV, Excel, Schematron