NCPI FHIR Implementation Guide
0.2.0 - ci-build

NCPI FHIR Implementation Guide - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Research Consortium

Official URL: https://nih-ncpi.github.io/ncpi-fhir-ig/StructureDefinition/ncpi-research-consortium Version: 0.2.0
Draft as of 2024-03-04 Computable Name: ResearchConsortium

A FHIR Organization representing a single consortium of which one or more NCPI Research Studies is a member.

Key Guidelines

For those studies which are a part of a research consortium, a single NCPI Research Consortium resource should be used to represent the consortium and all related studies should point to the consortium using the sponsor property.

Added Profile Restrictions

Each Consortium must have:

  • a meaningful name.
  • common IDs and acronyms be provided as aliases.
  • The telecom property can be used to provide a URL pointing to the consortium’s website.

Usage:

Formal Views of Profile Content

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

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... name 1..1stringThe Organization's full name.
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom 0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom C0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'
org-3: The telecom of an organization can never be of use 'home'

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf 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-4errorOrganizationIf 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-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ΣC0..*IdentifierIdentifies this organization across multiple systems
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name ΣC1..1stringThe Organization's full name.
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom C0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'
org-3: The telecom of an organization can never be of use 'home'
... address C0..*AddressAn address for the organization
org-2: An address of an organization can never be of use 'home'
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... 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
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Organization.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Organization.typeexampleOrganizationType
http://hl7.org/fhir/ValueSet/organization-type
from the FHIR Standard
Organization.contact.purposeextensibleContactEntityType
http://hl7.org/fhir/ValueSet/contactentity-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf 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-4errorOrganizationIf 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-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
dom-r4bwarningOrganization.containedContaining 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-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()

This structure is derived from Organization

Summary

Mandatory: 1 element

Differential View

This structure is derived from Organization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization 0..*OrganizationA grouping of people or organizations with a common purpose
... name 1..1stringThe Organization's full name.
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom 0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom C0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'
org-3: The telecom of an organization can never be of use 'home'

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf 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-4errorOrganizationIf 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-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Organization C0..*OrganizationA grouping of people or organizations with a common purpose
org-1: The organization SHALL at least have a name or an identifier, and possibly more than one
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
dom-r4b: Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ΣC0..*IdentifierIdentifies this organization across multiple systems
... active ?!Σ0..1booleanWhether the organization's record is still in active use
... type Σ0..*CodeableConceptKind of organization
Binding: OrganizationType (example): Used to categorize the organization.


... name ΣC1..1stringThe Organization's full name.
... alias 0..*string(Strongly Recommended) all altername names and acronyms used for the consortium
... telecom C0..*ContactPoint(Strongly Recommended) Consortium's website as where the ContactPoint.system is 'url'
org-3: The telecom of an organization can never be of use 'home'
... address C0..*AddressAn address for the organization
org-2: An address of an organization can never be of use 'home'
... partOf Σ0..1Reference(Organization)The organization of which this organization forms a part
... contact 0..*BackboneElementContact for the organization for a certain purpose
.... 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
.... purpose 0..1CodeableConceptThe type of contact
Binding: ContactEntityType (extensible): The purpose for which you would contact a contact party.

.... name 0..1HumanNameA name associated with the contact
.... telecom 0..*ContactPointContact details (telephone, email, etc.) for a contact
.... address 0..1AddressVisiting or postal addresses for the contact
... endpoint 0..*Reference(Endpoint)Technical endpoints providing access to services operated for the organization

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Organization.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Organization.typeexampleOrganizationType
http://hl7.org/fhir/ValueSet/organization-type
from the FHIR Standard
Organization.contact.purposeextensibleContactEntityType
http://hl7.org/fhir/ValueSet/contactentity-type
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorOrganizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorOrganizationIf 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-4errorOrganizationIf 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-5errorOrganizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceOrganizationA resource should have narrative for robust management
: text.`div`.exists()
dom-r4bwarningOrganization.containedContaining 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-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
org-1errorOrganizationThe organization SHALL at least have a name or an identifier, and possibly more than one
: (identifier.count() + name.count()) > 0
org-2errorOrganization.addressAn address of an organization can never be of use 'home'
: where(use = 'home').empty()
org-3errorOrganization.telecomThe telecom of an organization can never be of use 'home'
: where(use = 'home').empty()

This structure is derived from Organization

Summary

Mandatory: 1 element

 

Other representations of profile: CSV, Excel, Schematron

Notes:

The ResearchConsortium provides a clean organizational component to represent studies’ participation in a Consortium through the study’s sponsor property. This permits consortium member studies to be more easily found via standard FHIR searches.