Bulk Data Access IG, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 3.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/bulk-data/ and changes regularly. See the Directory of published versions
| Official URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/bulk-cohort-group | Version: 3.0.0-ballot | |||
| Standards status: Trial-use Active as of 2025-11-03 | Maturity Level: 5 | Computable Name: BulkCohortGroup | ||
This Group resource profile enables the creation of patient cohorts, practitioner cohorts, and sets of devices based on characteristics defined using FHIR RESTful search filters. It can be used to constrain the population included in a bulk export request.
Usages:
You can also check for usages in the FHIR IG Statistics
Description Differentials, Snapshots, and other representations.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Group | Group of multiple entities Constraints: grp-1 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |
![]() ![]() |
?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url |
![]() ![]() ![]() |
?! | 1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter |
![]() ![]() |
Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) |
![]() ![]() |
ΣC | 1..1 | boolean | True if the member element is populated, otherwise false. |
![]() ![]() |
Σ | 1..1 | string | Label for Group |
![]() ![]() |
C | 0..* | BackboneElement | Who or what is in group |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
| Group.characteristic.code | Base | example | Not State | Unknown | |
| Group.characteristic.value[x] | Base | example | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Group | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Group | 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 | Group | 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 | Group | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Group | 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()
|
| grp-1 | error | Group | Can only have members if group is "actual" |
member.empty() or (actual = true)
|
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Group | Group of multiple entities | |
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |
![]() ![]() |
1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter | |
![]() ![]() |
1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) | |
![]() ![]() |
1..1 | boolean | True if the member element is populated, otherwise false. | |
![]() ![]() |
1..1 | string | Label for Group | |
![]() ![]() |
0..0 | This element is not used in groups complying with this profile | ||
![]() ![]() |
0..* | BackboneElement | Who or what is in group | |
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Group | Group of multiple entities Constraints: grp-1 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |||||
![]() ![]() |
?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
?! | 1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter | ||||
![]() ![]() |
Σ | 0..* | Identifier | Unique id | ||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this group's record is in active use | ||||
![]() ![]() |
Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) | ||||
![]() ![]() |
ΣC | 1..1 | boolean | True if the member element is populated, otherwise false. | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Kind of Group members Binding Description: (example): Kind of particular resource; e.g. cow, syringe, lake, etc. | ||||
![]() ![]() |
Σ | 1..1 | string | Label for Group | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of members | ||||
![]() ![]() |
Σ | 0..1 | Reference(Organization | RelatedPerson | Practitioner | PractitionerRole) | Entity that is the custodian of the Group's definition | ||||
![]() ![]() |
C | 0..* | BackboneElement | Who or what is in group | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |||||
![]() ![]() ![]() |
0..1 | Period | Period member belonged to the group | |||||
![]() ![]() ![]() |
0..1 | boolean | If member is no longer in group | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
| Group.code | Base | example | Not State | Unknown | |
| Group.characteristic.code | Base | example | Not State | Unknown | |
| Group.characteristic.value[x] | Base | example | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Group | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Group | 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 | Group | 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 | Group | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Group | 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()
|
| grp-1 | error | Group | Can only have members if group is "actual" |
member.empty() or (actual = true)
|
Summary
Mandatory: 3 elements
Prohibited: 1 element
Extensions
This structure refers to these extensions:
Maturity: 5
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Group | Group of multiple entities Constraints: grp-1 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |
![]() ![]() |
?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url |
![]() ![]() ![]() |
?! | 1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter |
![]() ![]() |
Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) |
![]() ![]() |
ΣC | 1..1 | boolean | True if the member element is populated, otherwise false. |
![]() ![]() |
Σ | 1..1 | string | Label for Group |
![]() ![]() |
C | 0..* | BackboneElement | Who or what is in group |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
| Group.characteristic.code | Base | example | Not State | Unknown | |
| Group.characteristic.value[x] | Base | example | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Group | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Group | 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 | Group | 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 | Group | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Group | 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()
|
| grp-1 | error | Group | Can only have members if group is "actual" |
member.empty() or (actual = true)
|
Differential View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Group | Group of multiple entities | |
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |
![]() ![]() |
1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | |
![]() ![]() ![]() |
1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter | |
![]() ![]() |
1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) | |
![]() ![]() |
1..1 | boolean | True if the member element is populated, otherwise false. | |
![]() ![]() |
1..1 | string | Label for Group | |
![]() ![]() |
0..0 | This element is not used in groups complying with this profile | ||
![]() ![]() |
0..* | BackboneElement | Who or what is in group | |
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
Snapshot ViewView
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Group | Group of multiple entities Constraints: grp-1 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
0..1 | dateTime | Members Refreshed URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/members-refreshed | |||||
![]() ![]() |
?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | ||||
![]() ![]() ![]() |
?! | 1..* | Expression | Member Filter URL: http://hl7.org/fhir/uv/bulkdata/StructureDefinition/member-filter | ||||
![]() ![]() |
Σ | 0..* | Identifier | Unique id | ||||
![]() ![]() |
Σ | 0..1 | boolean | Whether this group's record is in active use | ||||
![]() ![]() |
Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: Subset of GroupType Value Set (required) | ||||
![]() ![]() |
ΣC | 1..1 | boolean | True if the member element is populated, otherwise false. | ||||
![]() ![]() |
Σ | 0..1 | CodeableConcept | Kind of Group members Binding Description: (example): Kind of particular resource; e.g. cow, syringe, lake, etc. | ||||
![]() ![]() |
Σ | 1..1 | string | Label for Group | ||||
![]() ![]() |
Σ | 0..1 | unsignedInt | Number of members | ||||
![]() ![]() |
Σ | 0..1 | Reference(Organization | RelatedPerson | Practitioner | PractitionerRole) | Entity that is the custodian of the Group's definition | ||||
![]() ![]() |
C | 0..* | BackboneElement | Who or what is in group | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |||||
![]() ![]() ![]() |
0..1 | Period | Period member belonged to the group | |||||
![]() ![]() ![]() |
0..1 | boolean | If member is no longer in group | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Group.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Group.type | Base | required | Subset of GroupType Value Set | 📦3.0.0-ballot | This IG |
| Group.code | Base | example | Not State | Unknown | |
| Group.characteristic.code | Base | example | Not State | Unknown | |
| Group.characteristic.value[x] | Base | example | Not State | Unknown |
| Id | Grade | Path(s) | Description | Expression |
| dom-2 | error | Group | If the resource is contained in another resource, it SHALL NOT contain nested Resources |
contained.contained.empty()
|
| dom-3 | error | Group | 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 | Group | 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 | Group | If a resource is contained in another resource, it SHALL NOT have a security label |
contained.meta.security.empty()
|
| dom-6 | best practice | Group | 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()
|
| grp-1 | error | Group | Can only have members if group is "actual" |
member.empty() or (actual = true)
|
Summary
Mandatory: 3 elements
Prohibited: 1 element
Extensions
This structure refers to these extensions:
Maturity: 5
Other representations of profile: CSV, Excel, Schematron