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

Resource Profile: NCPI Research Study

Official URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/ncpi-research-study Version: 0.1.0
Draft as of 2025-03-24 Computable Name: NcpiResearchStudy

The NCPI Research Study FHIR resource represents an individual research effort and acts as a grouper or “container” for that effort’s study participants and their related data files.

The NCPI Research Study is based upon the core HL7 FHIR ResearchStudy resource (R4) and acts as the umbrella for grouping and describing all other study resources..

For the purposes of interoperability, this guide includes recommended practices for the shared data elements required for submission.

Please see the research study documentation for in-depth mappings on the R4 version and the necessary extensions needed to ensure interoperability.

Added Profile Restrictions

To ensure consistency across all NCPI research studies represented in FHIR, there are some additional requirements which must be enforced. These requirements are derived from the Differential Table section of this document.

The following requirements are true for all NCPI Research Studies:

  • each study should have its accession ID added as an identifier. This is an identifier provided by DbGAP or other organization which represents a common identifier recognized by similar research groups.
  • each study should have its study name as the title.
  • for those studies which exist as part of a larger study, the parent study should be referenced in the study’s partOf property.
  • enrollment must contain 1 reference of type, Study Group.
  • category must contain the Coding from NCPI StudyCohort.
  • principalInvestigator must be of type Practitioner if present. (Note: we are using practitioner to maintain consistency with existing FHIR structures.)

To ensure consistency across all NCPI research studies represented in FHIR, there are some additional elements which should be included if applicable to your study. A recommended element is one that is important and will likely have value for those trying to understand the study’s purpose and usefulness but not essential for validation against the profile. Those elements labeled as optional are not central to the fundamental understanding of the study’s content but may play a key role in a study being findable.

Shared Data Elements

NCPI Shared Data Elements HL7 FHIR (R4) Element Recommended or Optional Notes  
Study description description Recommended    
Disease/focus condition Recommended Should also have one or more Codings provided, indicating the disease or phenotypes that were interrogated during the study’s execution  
Attribution relatedArtifact Recommended This can include, but not limited to; principal investigators, grant numbers, etc.  
Study weblinks relatedArtifact Optional These elements fall under the StudyDescription element located in the Added Profile Restrictions section of this document.  
Study design studyDesign Optional These elements fall under the StudyDescription element located in the Added Profile Restrictions section of this document.  
Study type studyDesign Optional These elements fall under the StudyDescription element located in the Added Profile Restrictions section of this document.  
Citation relatedArtifact Optional    
Study documents relatedArtifact Optional    

For a more detailed view of these elements as well as the recommended FHIR mappings please see the research study documentation.

Population Details

Each NCPI Research must have one Study Group which must, at the very least, indicate the total number of patients enrolled at the time the data was loaded into FHIR.

Additional Study Groups may be included to describe various aspects of the study’s population.

Notes:

As mentioned in the section, “Added Profile Restrictions” above, each NCPI Research must have one NCPI Study Group which must, at the very least, indicate the total number of patients enrolled at the time the data was loaded into FHIR.

Practices for Summary Only Resources

For Studies loaded into Summary Only FHIR servers, the Study’s Study Group resources must have the quantity. This promotes findability by enabling researchers without current access to the study’s row-level data to get basic study details including the different subject counts.

For studies that exist alongside row-level data, the Study’s Study Group resources should have each corresponding Patient referenced in the Group’s members array.

Identifiers - Best Practices

Provide meaningful systems at all times

System uris are important for identifying the origin of an identifier. These uris should be consistent across all groups which utilize these identifiers. Some important systems to note include:

Organization System Comment
DbGAP https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/study.cgi?study_id= For DbGAP Research Studies, this recommended system, when combined with the value would constitute a valid URL for the study.

For those identifiers that have been defined by the investigators and collaborators, the system should be unique to the Research Study and may be defined by those responsible for the ETL itself.

Utilize 'use' Property

The Identifier datatype provides a use property which is used to indicate which identifier is official and secondary (among others) and should be used where appropriate. It is strongly recommended that the most visible external identifier be marked as official.

Common Data Model Mappings

The following represents the mapping from the Logical Research Study model to this NCPI Research Study FHIR profile.

NCPI Shared Data Elements FHIR Resource Mapping Note
persistentIdentifier identifier System should be provided for each identifier which clearly indicates the identifier's origin
parentStudy partOf  
name title The "Formal Title" will be stored as title
or name relatedArtifact All other names will be recorded as relatedArtifacts
description description  
website relatedArtifact.url relatedArtifact.type = 'documentation' and url will record the actual website URL
studyFocus focus  
additionalDocumentation relatedArtifact There should be some sort of guidance about how to designate the different possible documents listed here
consortium extension[associatedParty] R5 provides a more inclusive option for sponsor, investigators, collaborators etcs. I recommend using an extension to emulate the new approach
acknowledgements extension[associatedParty] R5 provides a more inclusive option for sponsor, investigators, collaborators etcs. I recommend using an extension to emulate the new approach
personnel extension[associatedPart] R5 provides a more inclusive option for sponsor, investigators, collaborators etcs. I recommend using an extension to emulate the new approach

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. ResearchStudy 0..* ResearchStudy Investigation to increase healthcare-related patient-independent knowledge
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... extension:studyDesign 0..* CodeableConcept Study Design and Study Type
URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/research-study-design
Binding: https://hl7.org/fhir/valueset-study-design.html (example)
ele-1: All FHIR elements must have a @value or children unless an empty Parameters resource
ext-1: Must have either extensions or value[x], not both
.... extension:result 0..* Reference(Citation) Link to results generated during the study.
URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/research-study-result
ele-1: All FHIR elements must have a @value or children unless an empty Parameters resource
ext-1: Must have either extensions or value[x], not both
.... extension:associatedParty 0..* (Complex) Research Study Associated Party
URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/research-study-associated-party
ele-1: All FHIR elements must have a @value or children unless an empty Parameters resource
ext-1: Must have either extensions or value[x], not both
.... extension:acknowledgement 0..* markdown URL describing the policy restrictions in detail.
URL: https://nih-ncpi.github.io/ncpi-fhir-ig-2/StructureDefinition/research-study-acknowledgement
ele-1: All FHIR elements must have a @value or children unless an empty Parameters resource
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... title Σ 0..1 string Study's formal title.
ele-1: All FHIR elements must have a @value or children
... status ?!Σ 1..1 code active | administratively-completed | approved | closed-to-accrual | closed-to-accrual-and-intervention | completed | disapproved | in-review | temporarily-closed-to-accrual | temporarily-closed-to-accrual-and-intervention | withdrawn
Binding: ResearchStudyStatus (required): Codes that convey the current status of the research study.


ele-1: All FHIR elements must have a @value or children
... focus Σ 0..* CodeableConcept The primary, non-disease focus(es) of the study. This can include terms related to intervention, drug, device, or other focus.
Binding Description (No ValueSet): (example): Codes for medications, devices and other interventions.


ele-1: All FHIR elements must have a @value or children
... condition Σ 0..* CodeableConcept The primary focus(es) of the study. This is specific to the disease. MeSH terms are preferred.
Binding: Condition/Problem/DiagnosisCodes (example): Identification of the condition or diagnosis.


ele-1: All FHIR elements must have a @value or children
... relatedArtifact 0..* RelatedArtifact Attribution, Study Weblinks, Citation, Study Documents, etc.
ele-1: All FHIR elements must have a @value or children
... description 0..1 markdown Study Description (Recommended)
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
ResearchStudy.statusrequiredResearchStudyStatus
http://hl7.org/fhir/ValueSet/research-study-status|4.3.0
from the FHIR Standard
ResearchStudy.focusexample
ResearchStudy.conditionexampleCondition/Problem/DiagnosisCodes
http://hl7.org/fhir/ValueSet/condition-code
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorResearchStudyIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorResearchStudyIf 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-4errorResearchStudyIf 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-5errorResearchStudyIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceResearchStudyA 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()

 

Other representations of profile: CSV, Excel, Schematron