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/ncpi-specimen-NcpiSpecimenCollection | Version: 0.1.0 | |||
Draft as of 2024-11-25 | Computable Name: NcpiSpecimenCollection |
Linkage for related samples
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
List | C | 0..* | List | A list is a curated collection of resources 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. |
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | Reference to any subjects or other samples related to a subject |
Documentation for this format |
Path | Conformance | ValueSet | URI |
List.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
List.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 | List | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | List | 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 | List | 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 | List | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | List | 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 | List | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | List | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | List | 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 | ||||
---|---|---|---|---|---|---|---|---|
List | C | 0..* | List | A list is a curated collection of resources 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) | Reference to any subjects or other samples related to a 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. | ||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
List.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
List.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
List.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
List.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
List.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
List.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
List.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | List | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | List | 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 | List | 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 | List | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | List | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | List.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 | List | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | List | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | List | 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 List
Differential View
This structure is derived from List
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
List | C | 0..* | List | A list is a curated collection of resources 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. |
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | Reference to any subjects or other samples related to a subject |
Documentation for this format |
Path | Conformance | ValueSet | URI |
List.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | |
List.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 | List | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | List | 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 | List | 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 | List | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | List | 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 | List | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | List | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | List | 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 | ||||
---|---|---|---|---|---|---|---|---|
List | C | 0..* | List | A list is a curated collection of resources 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) | Reference to any subjects or other samples related to a 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. | ||||
Documentation for this format |
Path | Conformance | ValueSet | URI | |||
List.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
List.status | required | ListStatushttp://hl7.org/fhir/ValueSet/list-status|4.3.0 from the FHIR Standard | ||||
List.mode | required | ListModehttp://hl7.org/fhir/ValueSet/list-mode|4.3.0 from the FHIR Standard | ||||
List.code | example | ExampleUseCodesForListhttp://hl7.org/fhir/ValueSet/list-example-codes from the FHIR Standard | ||||
List.orderedBy | preferred | ListOrderCodeshttp://hl7.org/fhir/ValueSet/list-order from the FHIR Standard | ||||
List.entry.flag | example | PatientMedicineChangeTypeshttp://hl7.org/fhir/ValueSet/list-item-flag from the FHIR Standard | ||||
List.emptyReason | preferred | ListEmptyReasonshttp://hl7.org/fhir/ValueSet/list-empty-reason from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | List | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | List | 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 | List | 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 | List | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | List | A resource should have narrative for robust management : text.`div`.exists() | |
dom-r4b | warning | List.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 | List | A list can only have an emptyReason if it is empty : emptyReason.empty() or entry.empty() | |
lst-2 | error | List | The deleted flag can only be used if the mode of the list is "changes" : mode = 'changes' or entry.deleted.empty() | |
lst-3 | error | List | 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 List
Other representations of profile: CSV, Excel, Schematron