NCPI FHIR Implementation Guide v2
0.1.0 - ci-build
NCPI FHIR Implementation Guide v2 - Local Development build (v0.1.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/SharedDataModelFile | Version: 0.1.0 | |||
Draft as of 2024-11-25 | Computable Name: CdmFile |
The Shared Data Model for File
Files are a common research product. In this straightforward representation, we provide basic details of the file and how to access it. Details about what is contained in the file or how the content was generated should be described with other entities, such as data dictionaries, summaries, or assays.
File contains basic file metadata about the file location and contents. Files are typically associated with one or more participants, though they can also include general study documents. The file content may have different access control restrictions when compared to this entity, which is only the file metadata.
There can be multiple file location references, for example DRS and cloud storage references, though the access approaches for those locations should be reasonably apparent through the Access Policy for the file content.
If a data file is ONLY accessible through DRS, the underlying bucket locations should not be included here as no user would be able to access them directly. However, if there are multiple Access Policies that provide routes to access the data through different URIs, those can be included. Controlled access release via DRS with a consortium access model permitting direct bucket access could both be stated here to permit consistent reference to the File irrespective of the access mechanism.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Base
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |
fileExternalID | 0..1 | string | A related identifier of this file | |
format | 1..1 | code | The file format used | |
location | 1..* | List | List of locations where this data can be accessed | |
uri | 1..1 | uri | The URI at which this data can be accessed | |
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |
hash | 0..* | List | Provides a list of hashes for confirming file transfers | |
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |
value | 1..1 | string | Value of hashing the file | |
contentVersion | 0..1 | string | Version of the file content | |
description | 0..1 | string | A description of the file | |
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |
fileExternalID | 0..1 | string | A related identifier of this file | |
format | 1..1 | code | The file format used | |
location | C | 1..* | List | List of locations where this data can be accessed lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. |
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. |
uri | 1..1 | uri | The URI at which this data can be accessed | |
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |
hash | C | 0..* | List | Provides a list of hashes for confirming file transfers lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. |
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. |
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |
value | 1..1 | string | Value of hashing the file | |
contentVersion | 0..1 | string | Version of the file content | |
description | 0..1 | string | A description of the file | |
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
SharedDataModelFile.location.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
SharedDataModelFile.location.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | |
SharedDataModelFile.hash.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
SharedDataModelFile.hash.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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 | SharedDataModelFile.location, SharedDataModelFile.hash | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | SharedDataModelFile.location, SharedDataModelFile.hash | 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() | |
lst-1 | error | SharedDataModelFile.location, SharedDataModelFile.hash | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | An entry date can only be used if the mode of the list is "working" : mode = 'working' or entry.date.empty() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |||||
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |||||
fileExternalID | 0..1 | string | A related identifier of this file | |||||
format | 1..1 | code | The file format used | |||||
location | C | 1..* | List | List of locations where this data can be accessed lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | 0..* | Identifier | Business identifier | |||||
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. | ||||
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. | ||||
title | Σ | 0..1 | string | Descriptive name for the list Example General: Dr. Jane's Patients | ||||
code | Σ | 0..1 | CodeableConcept | What the purpose of this list is Binding: ExampleUseCodesForList (example): What the purpose of a list is. | ||||
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | If all resources have the same subject | ||||
encounter | 0..1 | Reference(Encounter) | Context in which list created | |||||
date | Σ | 0..1 | dateTime | When the list was prepared | ||||
source | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | Device) | Who and/or what defined the list contents (aka Author) | ||||
orderedBy | 0..1 | CodeableConcept | What order the list has Binding: ListOrderCodes (preferred): What order applies to the items in a list. | |||||
note | 0..* | Annotation | Comments about the list | |||||
entry | C | 0..* | BackboneElement | Entries in the list | ||||
@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 | ||||
flag | 0..1 | CodeableConcept | Status/Workflow information about this item Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list. | |||||
deleted | ?!C | 0..1 | boolean | If this item is actually marked as deleted | ||||
date | 0..1 | dateTime | When item added to list | |||||
item | 1..1 | Reference(Resource) | Actual entry | |||||
emptyReason | C | 0..1 | CodeableConcept | Why list is empty Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty. | ||||
uri | 1..1 | uri | The URI at which this data can be accessed | |||||
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |||||
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |||||
hash | C | 0..* | List | Provides a list of hashes for confirming file transfers lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | 0..* | Identifier | Business identifier | |||||
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. | ||||
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. | ||||
title | Σ | 0..1 | string | Descriptive name for the list Example General: Dr. Jane's Patients | ||||
code | Σ | 0..1 | CodeableConcept | What the purpose of this list is Binding: ExampleUseCodesForList (example): What the purpose of a list is. | ||||
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | If all resources have the same subject | ||||
encounter | 0..1 | Reference(Encounter) | Context in which list created | |||||
date | Σ | 0..1 | dateTime | When the list was prepared | ||||
source | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | Device) | Who and/or what defined the list contents (aka Author) | ||||
orderedBy | 0..1 | CodeableConcept | What order the list has Binding: ListOrderCodes (preferred): What order applies to the items in a list. | |||||
note | 0..* | Annotation | Comments about the list | |||||
entry | C | 0..* | BackboneElement | Entries in the list | ||||
@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 | ||||
flag | 0..1 | CodeableConcept | Status/Workflow information about this item Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list. | |||||
deleted | ?!C | 0..1 | boolean | If this item is actually marked as deleted | ||||
date | 0..1 | dateTime | When item added to list | |||||
item | 1..1 | Reference(Resource) | Actual entry | |||||
emptyReason | C | 0..1 | CodeableConcept | Why list is empty Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty. | ||||
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |||||
value | 1..1 | string | Value of hashing the file | |||||
contentVersion | 0..1 | string | Version of the file content | |||||
description | 0..1 | string | A description of the file | |||||
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
SharedDataModelFile.location.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
SharedDataModelFile.location.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.location.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.location.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
SharedDataModelFile.location.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
SharedDataModelFile.location.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
SharedDataModelFile.location.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard | ||||
SharedDataModelFile.hash.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
SharedDataModelFile.hash.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.hash.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.hash.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
SharedDataModelFile.hash.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
SharedDataModelFile.hash.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
SharedDataModelFile.hash.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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 | SharedDataModelFile.location, SharedDataModelFile.hash | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | SharedDataModelFile.location, SharedDataModelFile.hash | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | SharedDataModelFile.location.contained, SharedDataModelFile.hash.contained | Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems : ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic) | |
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() | |
lst-1 | error | SharedDataModelFile.location, SharedDataModelFile.hash | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | An entry date can only be used if the mode of the list is "working" : mode = 'working' or entry.date.empty() |
This structure is derived from Base
Differential View
This structure is derived from Base
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |
fileExternalID | 0..1 | string | A related identifier of this file | |
format | 1..1 | code | The file format used | |
location | 1..* | List | List of locations where this data can be accessed | |
uri | 1..1 | uri | The URI at which this data can be accessed | |
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |
hash | 0..* | List | Provides a list of hashes for confirming file transfers | |
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |
value | 1..1 | string | Value of hashing the file | |
contentVersion | 0..1 | string | Version of the file content | |
description | 0..1 | string | A description of the file | |
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |
Documentation for this format |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |
fileExternalID | 0..1 | string | A related identifier of this file | |
format | 1..1 | code | The file format used | |
location | C | 1..* | List | List of locations where this data can be accessed lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. |
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. |
uri | 1..1 | uri | The URI at which this data can be accessed | |
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |
hash | C | 0..* | List | Provides a list of hashes for confirming file transfers lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. |
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. |
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |
value | 1..1 | string | Value of hashing the file | |
contentVersion | 0..1 | string | Version of the file content | |
description | 0..1 | string | A description of the file | |
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |
Documentation for this format |
Path | Conformance | ValueSet | URI |
SharedDataModelFile.location.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
SharedDataModelFile.location.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | |
SharedDataModelFile.hash.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
SharedDataModelFile.hash.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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 | SharedDataModelFile.location, SharedDataModelFile.hash | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | SharedDataModelFile.location, SharedDataModelFile.hash | 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() | |
lst-1 | error | SharedDataModelFile.location, SharedDataModelFile.hash | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | An entry date can only be used if the mode of the list is "working" : mode = 'working' or entry.date.empty() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
SharedDataModelFile | 0..* | Base | Shared Data Model for File Instances of this logical model are not marked to be the target of a Reference | |||||
participantID | 1..1 | VSReference(5.1.0) | The participant(s) for whom this file contains data | |||||
fileExternalID | 0..1 | string | A related identifier of this file | |||||
format | 1..1 | code | The file format used | |||||
location | C | 1..* | List | List of locations where this data can be accessed lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | 0..* | Identifier | Business identifier | |||||
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. | ||||
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. | ||||
title | Σ | 0..1 | string | Descriptive name for the list Example General: Dr. Jane's Patients | ||||
code | Σ | 0..1 | CodeableConcept | What the purpose of this list is Binding: ExampleUseCodesForList (example): What the purpose of a list is. | ||||
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | If all resources have the same subject | ||||
encounter | 0..1 | Reference(Encounter) | Context in which list created | |||||
date | Σ | 0..1 | dateTime | When the list was prepared | ||||
source | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | Device) | Who and/or what defined the list contents (aka Author) | ||||
orderedBy | 0..1 | CodeableConcept | What order the list has Binding: ListOrderCodes (preferred): What order applies to the items in a list. | |||||
note | 0..* | Annotation | Comments about the list | |||||
entry | C | 0..* | BackboneElement | Entries in the list | ||||
@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 | ||||
flag | 0..1 | CodeableConcept | Status/Workflow information about this item Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list. | |||||
deleted | ?!C | 0..1 | boolean | If this item is actually marked as deleted | ||||
date | 0..1 | dateTime | When item added to list | |||||
item | 1..1 | Reference(Resource) | Actual entry | |||||
emptyReason | C | 0..1 | CodeableConcept | Why list is empty Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty. | ||||
uri | 1..1 | uri | The URI at which this data can be accessed | |||||
accessPolicy | 0..* | VSReference(5.1.0) | If present, only those under the specific Access Policy can access the file in this location. | |||||
fileSize | 1..1 | Quantity | The size of the file, e.g., in bytes. | |||||
hash | C | 0..* | List | Provides a list of hashes for confirming file transfers lst-1: A list can only have an emptyReason if it is empty lst-2: The deleted flag can only be used if the mode of the list is "changes" lst-3: An entry date can only be used if the mode of the list is "working" | ||||
id | Σ | 0..1 | id | Logical id of this artifact | ||||
meta | Σ | 0..1 | Meta | Metadata about the resource | ||||
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): IETF language tag
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
identifier | 0..* | Identifier | Business identifier | |||||
status | ?!Σ | 1..1 | code | current | retired | entered-in-error Binding: ListStatus (required): The current state of the list. | ||||
mode | ?!Σ | 1..1 | code | working | snapshot | changes Binding: ListMode (required): The processing mode that applies to this list. | ||||
title | Σ | 0..1 | string | Descriptive name for the list Example General: Dr. Jane's Patients | ||||
code | Σ | 0..1 | CodeableConcept | What the purpose of this list is Binding: ExampleUseCodesForList (example): What the purpose of a list is. | ||||
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | If all resources have the same subject | ||||
encounter | 0..1 | Reference(Encounter) | Context in which list created | |||||
date | Σ | 0..1 | dateTime | When the list was prepared | ||||
source | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Patient | Device) | Who and/or what defined the list contents (aka Author) | ||||
orderedBy | 0..1 | CodeableConcept | What order the list has Binding: ListOrderCodes (preferred): What order applies to the items in a list. | |||||
note | 0..* | Annotation | Comments about the list | |||||
entry | C | 0..* | BackboneElement | Entries in the list | ||||
@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 | ||||
flag | 0..1 | CodeableConcept | Status/Workflow information about this item Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list. | |||||
deleted | ?!C | 0..1 | boolean | If this item is actually marked as deleted | ||||
date | 0..1 | dateTime | When item added to list | |||||
item | 1..1 | Reference(Resource) | Actual entry | |||||
emptyReason | C | 0..1 | CodeableConcept | Why list is empty Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty. | ||||
type | 1..1 | code | Algorithm used to calculate the hash (and size, where applicable) | |||||
value | 1..1 | string | Value of hashing the file | |||||
contentVersion | 0..1 | string | Version of the file content | |||||
description | 0..1 | string | A description of the file | |||||
type | 1..1 | code | The type of data contained in this file. Should be as detailed as possible, e.g., Whole Exome Variant Calls. | |||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
SharedDataModelFile.location.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
SharedDataModelFile.location.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.location.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.location.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
SharedDataModelFile.location.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
SharedDataModelFile.location.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
SharedDataModelFile.location.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard | ||||
SharedDataModelFile.hash.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
SharedDataModelFile.hash.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.hash.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
SharedDataModelFile.hash.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
SharedDataModelFile.hash.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
SharedDataModelFile.hash.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
SharedDataModelFile.hash.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | SharedDataModelFile.location, SharedDataModelFile.hash | 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 | SharedDataModelFile.location, SharedDataModelFile.hash | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | SharedDataModelFile.location, SharedDataModelFile.hash | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | SharedDataModelFile.location.contained, SharedDataModelFile.hash.contained | Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems : ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic) | |
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() | |
lst-1 | error | SharedDataModelFile.location, SharedDataModelFile.hash | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | SharedDataModelFile.location, SharedDataModelFile.hash | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | SharedDataModelFile.location, SharedDataModelFile.hash | An entry date can only be used if the mode of the list is "working" : mode = 'working' or entry.date.empty() |
This structure is derived from Base