NCPI FHIR Implementation Guide
0.2.0 - ci-build
NCPI FHIR Implementation Guide - Local Development build (v0.2.0). See the Directory of published versions
Official URL: https://nih-ncpi.github.io/ncpi-fhir-ig/StructureDefinition/study-data-dictionary-table | Version: 0.2.0 | |||
Draft as of 2022-12-09 | Computable Name: StudyDataDictionaryTable |
Aggregates Variable Details associated with a single dataset table that are represented in FHIR as as list of references to StudyDataDictionaryVariables in the observationResultRequirement property.
The Study Table is primarily a collection of references to the StudyDataDictionaryVariable resources describing it’s contents but it is advisable for those responsible for resource production to set appropriate name and description properties, as well as any others that would help researches better understand the content of data associated with this table.
In order to tie the table resource to the appropriate study, the resource’s code property SHALL be set to the corresponding table code in the dataset’s code system.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from ActivityDefinition
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ActivityDefinition | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context | |
code | 1..1 | CodeableConcept | Detail type of activity | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ActivityDefinition | C | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context |
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 | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
code | Σ | 1..1 | CodeableConcept | Detail type of activity Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC. |
doNotPerform | ?!Σ | 0..1 | boolean | True if the activity should not be performed |
Documentation for this format |
Path | Conformance | ValueSet |
ActivityDefinition.status | required | PublicationStatus |
ActivityDefinition.code | example | ProcedureCodes(SNOMEDCT) |
Id | Grade | Path(s) | Details | Requirements |
adf-0 | warning | ActivityDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
dom-2 | error | ActivityDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | ActivityDefinition | 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 | ActivityDefinition | 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 | ActivityDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | ActivityDefinition | 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() |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
ActivityDefinition | C | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context | ||||
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): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
url | Σ | 0..1 | uri | Canonical identifier for this activity definition, represented as a URI (globally unique) | ||||
identifier | Σ | 0..* | Identifier | Additional identifier for the activity definition | ||||
version | Σ | 0..1 | string | Business version of the activity definition | ||||
name | ΣC | 0..1 | string | Name for this activity definition (computer friendly) | ||||
title | Σ | 0..1 | string | Name for this activity definition (human friendly) | ||||
subtitle | 0..1 | string | Subordinate title of the activity definition | |||||
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
subject[x] | 0..1 | Type of individual the activity definition is intended for Binding: SubjectType (extensible): The possible types of subjects for an activity (E.g. Patient, Practitioner, Organization, Location, etc.). | ||||||
subjectCodeableConcept | CodeableConcept | |||||||
subjectReference | Reference(Group) | |||||||
date | Σ | 0..1 | dateTime | Date last changed | ||||
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) | ||||
contact | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | Σ | 0..1 | markdown | Natural language description of the activity definition | ||||
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for activity definition (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
purpose | 0..1 | markdown | Why this activity definition is defined | |||||
usage | 0..1 | string | Describes the clinical usage of the activity definition | |||||
copyright | 0..1 | markdown | Use and/or publishing restrictions | |||||
approvalDate | 0..1 | date | When the activity definition was approved by publisher | |||||
lastReviewDate | 0..1 | date | When the activity definition was last reviewed | |||||
effectivePeriod | Σ | 0..1 | Period | When the activity definition is expected to be used | ||||
topic | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |||||
author | 0..* | ContactDetail | Who authored the content | |||||
editor | 0..* | ContactDetail | Who edited the content | |||||
reviewer | 0..* | ContactDetail | Who reviewed the content | |||||
endorser | 0..* | ContactDetail | Who endorsed the content | |||||
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |||||
library | 0..* | canonical(Library) | Logic used by the activity definition | |||||
kind | Σ | 0..1 | code | Kind of resource Binding: RequestResourceType (required): The kind of activity the definition is describing. | ||||
profile | 0..1 | canonical(StructureDefinition) | What profile the resource needs to conform to | |||||
code | Σ | 1..1 | CodeableConcept | Detail type of activity Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC. | ||||
intent | 0..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): Codes indicating the degree of authority/intentionality associated with a request. | |||||
priority | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | |||||
doNotPerform | ?!Σ | 0..1 | boolean | True if the activity should not be performed | ||||
timing[x] | 0..1 | When activity is to occur | ||||||
timingTiming | Timing | |||||||
timingDateTime | dateTime | |||||||
timingAge | Age | |||||||
timingPeriod | Period | |||||||
timingRange | Range | |||||||
timingDuration | Duration | |||||||
location | 0..1 | Reference(Location) | Where it should happen | |||||
participant | 0..* | BackboneElement | Who should participate in the action | |||||
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 | ||||
type | 1..1 | code | patient | practitioner | related-person | device Binding: ActionParticipantType (required): The type of participant in the activity. | |||||
role | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent, etc. Binding: ActionParticipantRole (example): Defines roles played by participants for the action. | |||||
product[x] | 0..1 | What's administered/supplied Binding: SNOMEDCTMedicationCodes (example): Code describing the type of substance or medication. | ||||||
productReference | Reference(Medication | Substance) | |||||||
productCodeableConcept | CodeableConcept | |||||||
quantity | 0..1 | SimpleQuantity | How much is administered/consumed/supplied | |||||
dosage | 0..* | Dosage | Detailed dosage instructions | |||||
bodySite | 0..* | CodeableConcept | What part of body to perform on Binding: SNOMEDCTBodyStructures (example): A code that identifies the anatomical location. | |||||
specimenRequirement | 0..* | Reference(SpecimenDefinition) | What specimens are required to perform this action | |||||
observationRequirement | 0..* | Reference(ObservationDefinition) | What observations are required to perform this action | |||||
observationResultRequirement | 0..* | Reference(ObservationDefinition) | What observations must be produced by this action | |||||
transform | 0..1 | canonical(StructureMap) | Transform to apply the template | |||||
dynamicValue | 0..* | BackboneElement | Dynamic aspects of the definition | |||||
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 | ||||
path | 1..1 | string | The path to the element to be set dynamically | |||||
expression | 1..1 | Expression | An expression that provides the dynamic value for the customization | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
ActivityDefinition.language | preferred | CommonLanguages
| ||||
ActivityDefinition.status | required | PublicationStatus | ||||
ActivityDefinition.subject[x] | extensible | SubjectType | ||||
ActivityDefinition.jurisdiction | extensible | Jurisdiction ValueSet | ||||
ActivityDefinition.topic | example | DefinitionTopic | ||||
ActivityDefinition.kind | required | RequestResourceType | ||||
ActivityDefinition.code | example | ProcedureCodes(SNOMEDCT) | ||||
ActivityDefinition.intent | required | RequestIntent | ||||
ActivityDefinition.priority | required | RequestPriority | ||||
ActivityDefinition.participant.type | required | ActionParticipantType | ||||
ActivityDefinition.participant.role | example | ActionParticipantRole | ||||
ActivityDefinition.product[x] | example | SNOMEDCTMedicationCodes | ||||
ActivityDefinition.bodySite | example | SNOMEDCTBodyStructures |
Id | Grade | Path(s) | Details | Requirements |
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 ActivityDefinition
Differential View
This structure is derived from ActivityDefinition
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ActivityDefinition | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context | |
code | 1..1 | CodeableConcept | Detail type of activity | |
Documentation for this format |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
ActivityDefinition | C | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context |
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 | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. |
code | Σ | 1..1 | CodeableConcept | Detail type of activity Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC. |
doNotPerform | ?!Σ | 0..1 | boolean | True if the activity should not be performed |
Documentation for this format |
Path | Conformance | ValueSet |
ActivityDefinition.status | required | PublicationStatus |
ActivityDefinition.code | example | ProcedureCodes(SNOMEDCT) |
Id | Grade | Path(s) | Details | Requirements |
adf-0 | warning | ActivityDefinition | Name should be usable as an identifier for the module by machine processing applications such as code generation : name.matches('[A-Z]([A-Za-z0-9_]){0,254}') | |
dom-2 | error | ActivityDefinition | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | ActivityDefinition | 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 | ActivityDefinition | 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 | ActivityDefinition | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | ActivityDefinition | 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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
ActivityDefinition | C | 0..* | ActivityDefinition | The definition of a specific activity to be taken, independent of any particular patient or context | ||||
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): A human language.
| |||||
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
contained | 0..* | Resource | Contained, inline Resources | |||||
extension | 0..* | Extension | Additional content defined by implementations | |||||
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored | ||||
url | Σ | 0..1 | uri | Canonical identifier for this activity definition, represented as a URI (globally unique) | ||||
identifier | Σ | 0..* | Identifier | Additional identifier for the activity definition | ||||
version | Σ | 0..1 | string | Business version of the activity definition | ||||
name | ΣC | 0..1 | string | Name for this activity definition (computer friendly) | ||||
title | Σ | 0..1 | string | Name for this activity definition (human friendly) | ||||
subtitle | 0..1 | string | Subordinate title of the activity definition | |||||
status | ?!Σ | 1..1 | code | draft | active | retired | unknown Binding: PublicationStatus (required): The lifecycle status of an artifact. | ||||
experimental | Σ | 0..1 | boolean | For testing purposes, not real usage | ||||
subject[x] | 0..1 | Type of individual the activity definition is intended for Binding: SubjectType (extensible): The possible types of subjects for an activity (E.g. Patient, Practitioner, Organization, Location, etc.). | ||||||
subjectCodeableConcept | CodeableConcept | |||||||
subjectReference | Reference(Group) | |||||||
date | Σ | 0..1 | dateTime | Date last changed | ||||
publisher | Σ | 0..1 | string | Name of the publisher (organization or individual) | ||||
contact | Σ | 0..* | ContactDetail | Contact details for the publisher | ||||
description | Σ | 0..1 | markdown | Natural language description of the activity definition | ||||
useContext | Σ | 0..* | UsageContext | The context that the content is intended to support | ||||
jurisdiction | Σ | 0..* | CodeableConcept | Intended jurisdiction for activity definition (if applicable) Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use. | ||||
purpose | 0..1 | markdown | Why this activity definition is defined | |||||
usage | 0..1 | string | Describes the clinical usage of the activity definition | |||||
copyright | 0..1 | markdown | Use and/or publishing restrictions | |||||
approvalDate | 0..1 | date | When the activity definition was approved by publisher | |||||
lastReviewDate | 0..1 | date | When the activity definition was last reviewed | |||||
effectivePeriod | Σ | 0..1 | Period | When the activity definition is expected to be used | ||||
topic | 0..* | CodeableConcept | E.g. Education, Treatment, Assessment, etc. Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering. | |||||
author | 0..* | ContactDetail | Who authored the content | |||||
editor | 0..* | ContactDetail | Who edited the content | |||||
reviewer | 0..* | ContactDetail | Who reviewed the content | |||||
endorser | 0..* | ContactDetail | Who endorsed the content | |||||
relatedArtifact | 0..* | RelatedArtifact | Additional documentation, citations, etc. | |||||
library | 0..* | canonical(Library) | Logic used by the activity definition | |||||
kind | Σ | 0..1 | code | Kind of resource Binding: RequestResourceType (required): The kind of activity the definition is describing. | ||||
profile | 0..1 | canonical(StructureDefinition) | What profile the resource needs to conform to | |||||
code | Σ | 1..1 | CodeableConcept | Detail type of activity Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC. | ||||
intent | 0..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): Codes indicating the degree of authority/intentionality associated with a request. | |||||
priority | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. | |||||
doNotPerform | ?!Σ | 0..1 | boolean | True if the activity should not be performed | ||||
timing[x] | 0..1 | When activity is to occur | ||||||
timingTiming | Timing | |||||||
timingDateTime | dateTime | |||||||
timingAge | Age | |||||||
timingPeriod | Period | |||||||
timingRange | Range | |||||||
timingDuration | Duration | |||||||
location | 0..1 | Reference(Location) | Where it should happen | |||||
participant | 0..* | BackboneElement | Who should participate in the action | |||||
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 | ||||
type | 1..1 | code | patient | practitioner | related-person | device Binding: ActionParticipantType (required): The type of participant in the activity. | |||||
role | 0..1 | CodeableConcept | E.g. Nurse, Surgeon, Parent, etc. Binding: ActionParticipantRole (example): Defines roles played by participants for the action. | |||||
product[x] | 0..1 | What's administered/supplied Binding: SNOMEDCTMedicationCodes (example): Code describing the type of substance or medication. | ||||||
productReference | Reference(Medication | Substance) | |||||||
productCodeableConcept | CodeableConcept | |||||||
quantity | 0..1 | SimpleQuantity | How much is administered/consumed/supplied | |||||
dosage | 0..* | Dosage | Detailed dosage instructions | |||||
bodySite | 0..* | CodeableConcept | What part of body to perform on Binding: SNOMEDCTBodyStructures (example): A code that identifies the anatomical location. | |||||
specimenRequirement | 0..* | Reference(SpecimenDefinition) | What specimens are required to perform this action | |||||
observationRequirement | 0..* | Reference(ObservationDefinition) | What observations are required to perform this action | |||||
observationResultRequirement | 0..* | Reference(ObservationDefinition) | What observations must be produced by this action | |||||
transform | 0..1 | canonical(StructureMap) | Transform to apply the template | |||||
dynamicValue | 0..* | BackboneElement | Dynamic aspects of the definition | |||||
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 | ||||
path | 1..1 | string | The path to the element to be set dynamically | |||||
expression | 1..1 | Expression | An expression that provides the dynamic value for the customization | |||||
Documentation for this format |
Path | Conformance | ValueSet | ||||
ActivityDefinition.language | preferred | CommonLanguages
| ||||
ActivityDefinition.status | required | PublicationStatus | ||||
ActivityDefinition.subject[x] | extensible | SubjectType | ||||
ActivityDefinition.jurisdiction | extensible | Jurisdiction ValueSet | ||||
ActivityDefinition.topic | example | DefinitionTopic | ||||
ActivityDefinition.kind | required | RequestResourceType | ||||
ActivityDefinition.code | example | ProcedureCodes(SNOMEDCT) | ||||
ActivityDefinition.intent | required | RequestIntent | ||||
ActivityDefinition.priority | required | RequestPriority | ||||
ActivityDefinition.participant.type | required | ActionParticipantType | ||||
ActivityDefinition.participant.role | example | ActionParticipantRole | ||||
ActivityDefinition.product[x] | example | SNOMEDCTMedicationCodes | ||||
ActivityDefinition.bodySite | example | SNOMEDCTBodyStructures |
Id | Grade | Path(s) | Details | Requirements |
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 ActivityDefinition
Other representations of profile: CSV, Excel, Schematron
There is no clear way to connect an ActivityDefinition to a study, so the best way to aggregate multiple “tables” together will be using codes from a common CodeSystem.