NCPI FHIR Implementation Guide
0.1.0 - ci-build

NCPI FHIR Implementation Guide - Local Development build (v0.1.0). See the Directory of published versions

Resource Profile: NCPI Study DD Data Table

Official URL: https://ncpi-fhir.github.io/ncpi-fhir-ig/StructureDefinition/study-dd-table Version: 0.1.0
Draft as of 2022-08-16 Computable Name: StudyDdTable

Aggregates Variable Details associated with a single dataset table that are represented in FHIR

The study table represents a single table from the dataset and aggregates each of the variables that are represented in FHIR.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from ActivityDefinition

Summary

This structure is derived from ActivityDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. ActivityDefinition 0..*ActivityDefinitionThe definition of a specific activity to be taken, independent of any particular patient or context

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. ActivityDefinition I0..*ActivityDefinitionThe definition of a specific activity to be taken, independent of any particular patient or context
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this activity definition, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the activity definition
... version Σ0..1stringBusiness version of the activity definition
... name ΣI0..1stringName for this activity definition (computer friendly)
... title Σ0..1stringName for this activity definition (human friendly)
... subtitle 0..1stringSubordinate title of the activity definition
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ0..1booleanFor testing purposes, not real usage
... subject[x] 0..1Type 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.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description Σ0..1markdownNatural language description of the activity definition
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for activity definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this activity definition is defined
... usage 0..1stringDescribes the clinical usage of the activity definition
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the activity definition was approved by publisher
... lastReviewDate 0..1dateWhen the activity definition was last reviewed
... effectivePeriod Σ0..1PeriodWhen the activity definition is expected to be used
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc.
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.


... author 0..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... library 0..*canonical(Library)Logic used by the activity definition
... kind Σ0..1codeKind of resource
Binding: RequestResourceType (required): The kind of activity the definition is describing.

... profile 0..1canonical(StructureDefinition)What profile the resource needs to conform to
... code Σ0..1CodeableConceptDetail type of activity
Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC.

... intent 0..1codeproposal | 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..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.

... doNotPerform ?!Σ0..1booleanTrue if the activity should not be performed
... timing[x] 0..1When activity is to occur
.... timingTimingTiming
.... timingDateTimedateTime
.... timingAgeAge
.... timingPeriodPeriod
.... timingRangeRange
.... timingDurationDuration
... location 0..1Reference(Location)Where it should happen
... participant 0..*BackboneElementWho should participate in the action
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 1..1codepatient | practitioner | related-person | device
Binding: ActionParticipantType (required): The type of participant in the activity.

.... role 0..1CodeableConceptE.g. Nurse, Surgeon, Parent, etc.
Binding: ActionParticipantRole (example): Defines roles played by participants for the action.

... product[x] 0..1What's administered/supplied
Binding: SNOMEDCTMedicationCodes (example): Code describing the type of substance or medication.

.... productReferenceReference(Medication | Substance)
.... productCodeableConceptCodeableConcept
... quantity 0..1SimpleQuantityHow much is administered/consumed/supplied
... dosage 0..*DosageDetailed dosage instructions
... bodySite 0..*CodeableConceptWhat 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..1canonical(StructureMap)Transform to apply the template
... dynamicValue 0..*BackboneElementDynamic aspects of the definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... path 1..1stringThe path to the element to be set dynamically
.... expression 1..1ExpressionAn expression that provides the dynamic value for the customization

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. ActivityDefinition I0..*ActivityDefinitionThe definition of a specific activity to be taken, independent of any particular patient or context

doco Documentation for this format

This structure is derived from ActivityDefinition

Summary

Differential View

This structure is derived from ActivityDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. ActivityDefinition 0..*ActivityDefinitionThe definition of a specific activity to be taken, independent of any particular patient or context

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ActivityDefinition I0..*ActivityDefinitionThe definition of a specific activity to be taken, independent of any particular patient or context
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url Σ0..1uriCanonical identifier for this activity definition, represented as a URI (globally unique)
... identifier Σ0..*IdentifierAdditional identifier for the activity definition
... version Σ0..1stringBusiness version of the activity definition
... name ΣI0..1stringName for this activity definition (computer friendly)
... title Σ0..1stringName for this activity definition (human friendly)
... subtitle 0..1stringSubordinate title of the activity definition
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): The lifecycle status of an artifact.

... experimental Σ0..1booleanFor testing purposes, not real usage
... subject[x] 0..1Type 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.).

.... subjectCodeableConceptCodeableConcept
.... subjectReferenceReference(Group)
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringName of the publisher (organization or individual)
... contact Σ0..*ContactDetailContact details for the publisher
... description Σ0..1markdownNatural language description of the activity definition
... useContext Σ0..*UsageContextThe context that the content is intended to support
... jurisdiction Σ0..*CodeableConceptIntended jurisdiction for activity definition (if applicable)
Binding: Jurisdiction ValueSet (extensible): Countries and regions within which this artifact is targeted for use.


... purpose 0..1markdownWhy this activity definition is defined
... usage 0..1stringDescribes the clinical usage of the activity definition
... copyright 0..1markdownUse and/or publishing restrictions
... approvalDate 0..1dateWhen the activity definition was approved by publisher
... lastReviewDate 0..1dateWhen the activity definition was last reviewed
... effectivePeriod Σ0..1PeriodWhen the activity definition is expected to be used
... topic 0..*CodeableConceptE.g. Education, Treatment, Assessment, etc.
Binding: DefinitionTopic (example): High-level categorization of the definition, used for searching, sorting, and filtering.


... author 0..*ContactDetailWho authored the content
... editor 0..*ContactDetailWho edited the content
... reviewer 0..*ContactDetailWho reviewed the content
... endorser 0..*ContactDetailWho endorsed the content
... relatedArtifact 0..*RelatedArtifactAdditional documentation, citations, etc.
... library 0..*canonical(Library)Logic used by the activity definition
... kind Σ0..1codeKind of resource
Binding: RequestResourceType (required): The kind of activity the definition is describing.

... profile 0..1canonical(StructureDefinition)What profile the resource needs to conform to
... code Σ0..1CodeableConceptDetail type of activity
Binding: ProcedureCodes(SNOMEDCT) (example): Detailed type of the activity; e.g. CBC.

... intent 0..1codeproposal | 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..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.

... doNotPerform ?!Σ0..1booleanTrue if the activity should not be performed
... timing[x] 0..1When activity is to occur
.... timingTimingTiming
.... timingDateTimedateTime
.... timingAgeAge
.... timingPeriodPeriod
.... timingRangeRange
.... timingDurationDuration
... location 0..1Reference(Location)Where it should happen
... participant 0..*BackboneElementWho should participate in the action
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type 1..1codepatient | practitioner | related-person | device
Binding: ActionParticipantType (required): The type of participant in the activity.

.... role 0..1CodeableConceptE.g. Nurse, Surgeon, Parent, etc.
Binding: ActionParticipantRole (example): Defines roles played by participants for the action.

... product[x] 0..1What's administered/supplied
Binding: SNOMEDCTMedicationCodes (example): Code describing the type of substance or medication.

.... productReferenceReference(Medication | Substance)
.... productCodeableConceptCodeableConcept
... quantity 0..1SimpleQuantityHow much is administered/consumed/supplied
... dosage 0..*DosageDetailed dosage instructions
... bodySite 0..*CodeableConceptWhat 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..1canonical(StructureMap)Transform to apply the template
... dynamicValue 0..*BackboneElementDynamic aspects of the definition
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... path 1..1stringThe path to the element to be set dynamically
.... expression 1..1ExpressionAn expression that provides the dynamic value for the customization

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
ActivityDefinition.languagepreferredCommonLanguages
Max Binding: AllLanguages
ActivityDefinition.statusrequiredPublicationStatus
ActivityDefinition.subject[x]extensibleSubjectType
ActivityDefinition.jurisdictionextensibleJurisdiction ValueSet
ActivityDefinition.topicexampleDefinitionTopic
ActivityDefinition.kindrequiredRequestResourceType
ActivityDefinition.codeexampleProcedureCodes(SNOMEDCT)
ActivityDefinition.intentrequiredRequestIntent
ActivityDefinition.priorityrequiredRequestPriority
ActivityDefinition.participant.typerequiredActionParticipantType
ActivityDefinition.participant.roleexampleActionParticipantRole
ActivityDefinition.product[x]exampleSNOMEDCTMedicationCodes
ActivityDefinition.bodySiteexampleSNOMEDCTBodyStructures

Constraints

IdGradePathDetailsRequirements
adf-0warningActivityDefinitionName 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-2errorActivityDefinitionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorActivityDefinitionIf 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-4errorActivityDefinitionIf 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-5errorActivityDefinitionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeActivityDefinitionA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorActivityDefinition.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.urlAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.titleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.subtitleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.experimentalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.subject[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.publisherAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.contactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.useContextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.jurisdictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.purposeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.usageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.copyrightAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.approvalDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.lastReviewDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.effectivePeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.topicAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.authorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.editorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.reviewerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.endorserAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.relatedArtifactAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.libraryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.kindAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.profileAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.intentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.doNotPerformAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.timing[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.participantAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.participant.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.participant.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.participant.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.participant.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.participant.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.participant.roleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.product[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.quantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.dosageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.specimenRequirementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.observationRequirementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.observationResultRequirementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.transformAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.dynamicValueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.dynamicValue.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.dynamicValue.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.dynamicValue.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorActivityDefinition.dynamicValue.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorActivityDefinition.dynamicValue.pathAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorActivityDefinition.dynamicValue.expressionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

Notes:

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.