| Left: | Bulk Cohort Group (http://hl7.org/fhir/uv/bulkdata/StructureDefinition/bulk-cohort-group) |
| Right: | Bulk Cohort Group (http://hl7.org/fhir/uv/bulkdata/StructureDefinition/bulk-cohort-group) |
| Error | StructureDefinition.version | Values for version differ: '3.0.0-ballot' vs '3.0.0' |
| Information | StructureDefinition.date | Values for date differ: '2025-08-04T20:07:54+00:00' vs '2025-12-09T13:52:35+00:00' |
| Information | Group.language | Example/preferred bindings differ at Group.language using binding from BulkCohortGroup |
| Information | StructureDefinition.definition | Values for definition differ: 'If a groups membership is calculated periodically from the `member-filter` criteria, a server SHALL populate a `valueDateTime` with the date the group's membership was last updated. When a `date` element is populated for the Group, the `valueDateTime` element SHALL NOT be later than the date in that element, but may be the same datetime or an earlier datetime. If members are calculated dynamically for the group (for example, when a Bulk Export operation is kicked off) this value SHALL be omitted. The server's refresh cycle capabilities and relevant configuration options SHOULD be described in the server's documentation.' vs 'If a group's membership is calculated periodically from the `member-filter` criteria, a server SHALL populate a `valueDateTime` with the date the group's membership was last updated. When a `date` element is populated for the Group, the `valueDateTime` element SHALL NOT be later than the date in that element, but may be the same datetime or an earlier datetime. If members are calculated dynamically for the group (for example, when a Bulk Export operation is kicked off) this value SHALL be omitted. The server's refresh cycle capabilities and relevant configuration options SHOULD be described in the server's documentation.' |
| Information | StructureDefinition.definition | Values for definition differ: 'A server SHALL support the inclusion of one or more `member-filter` modifier extensions containing a `valueExpression` with a language of `application/x-fhir-query` and an `expression` populated with a FHIR REST API query for a Patient or Practitioner resource or a resource type included in the Patient or Practitioner compartment. If multiple `member-filter` extensions are provided, servers SHALL filter the group to only include Patients or Practitioners whose resources and resources in their compartments meet the conditions in all of the expressions. A server MAY also support other expression languages such as `text/cql`. When more than one language is supported by a server a client SHALL use a single language type for all of the member-filter expressions included in a single Group. FHIR [search result parameters](https://www.hl7.org/fhir/search.html#modifyingresults) (such as _sort, _include, and _elements) SHALL NOT be used as `member-filter` criteria. Additionally, a query in the `member-filter` parameter SHALL have the search context of a single FHIR Resource Type. The contexts 'all resource types' and 'a specified compartment' are not allowed. Clients should consult the server's capability statement to identify supported search parameters. Servers SHALL reject Group creation requests that include unsupported search parameters in a `member-filter` expression. Implementation guides that reference the Bulk Cohort API, should specify required search parameters must be supported for their use case. Other implementations guides that incorporate the Bulk Export operation MAY provide a set of core search parameters that servers implementing the guide need to support.' vs 'A server SHALL support the inclusion of one or more `member-filter` modifier extensions containing a `valueExpression` with a language of `application/x-fhir-query` and an `expression` populated with a FHIR REST API query, and SHALL support REST queries for one or more of the Patient, Practitioner, or Device resource types. For supported resource types, the server SHALL also support querying the resources in that resource type's compartment. If multiple `member-filter` extensions are provided, servers SHALL filter the group to only include resources that meet the conditions in all of the expressions or resources that have resources in their compartments that meet the conditions in all of the expressions. A server MAY also support other expression languages such as `text/cql`. When more than one language is supported by a server a client SHALL use a single language type for all of the member-filter expressions included in a single Group. FHIR [search result parameters](https://www.hl7.org/fhir/search.html#modifyingresults) (such as _sort, _include, and _elements) SHALL NOT be used as `member-filter` criteria. Additionally, a query in the `member-filter` parameter SHALL have the search context of a single FHIR Resource Type. The contexts 'all resource types' and 'a specified compartment' are not allowed. Clients should consult the server's capability statement to identify supported search parameters. Servers SHALL reject Group creation requests that include unsupported search parameters in a `member-filter` expression. Implementation guides that reference the Bulk Cohort API, should specify required search parameters must be supported for their use case. Other implementations guides that incorporate the Bulk Export operation MAY provide a set of core search parameters that servers implementing the guide need to support.' |
| Information | StructureDefinition.definition | Values for definition differ: 'A client SHALL populate this element with `person` when creating a group of Patients, or `practitioner` when creating a group of Practitioners.' vs 'A client SHALL populate this element with `person` when creating a group of Patient resources, `practitioner` when creating a group of Practitioner resources, or `device` when creating a group of Device resources.' |
| Information | StructureDefinition.short | Values for short differ: 'This element is not used for in groups complying with this profile' vs 'This element is not used in groups complying with this profile' |
| Information | StructureDefinition.definition | Values for definition differ: 'Identifies traits whose presence r absence is shared by members of the group.' vs 'This element is not used in groups complying with this profile' |
| Information | StructureDefinition.definition | Values for definition differ: 'A server MAY support the inclusion of one or more `member` elements that contain an `entity` element with a reference to a Patient resource, Practitioner resource, or Group resource that is a group of Patient resources or Practitioner resources. When members are provided, the expression in the `member-filter` extension for the Group SHALL only be applied to the referenced resources and the compartments of the referenced resources, or those of the members of referenced Group resources. When members are not provided and the Group's `type` element is set to `person`, the expression in the `member-filter` extension SHALL be applied to all of the Patient resources and Patient compartments the client is authorized to access. When members are not provided and the Group's `type` element is set to `practitioner`, the expression in the `member-filter` extension SHALL be applied to all of the Practitioner resources and Practitioner compartments the client is authorized to access.' vs 'A server MAY support the inclusion of one or more `member` elements that contain an `entity` element with a reference to a `Patient` resource, `Practitioner` resource, `Device` resource, or a `Group` resource that is a group of one of these resource types. When members are provided, the expression in the `member-filter` extension for the Group SHALL only be applied to the referenced resources and the compartments of the referenced resources, and the resources and compartments of the members of any referenced Groups. When members are not provided and the Group's `type` element is set to `person`, the expression in the `member-filter` extension SHALL be applied to all of the Patient resources and Patient compartments the client is authorized to access. When members are not provided and the Group's `type` element is set to `practitioner`, the expression in the `member-filter` extension SHALL be applied to all of the Practitioner resources and Practitioner compartments the client is authorized to access. When members are not provided and the Group's `type` element is set to `device`, the expression in the `member-filter` extension SHALL be applied to all of the Device resources and Device compartments the client is authorized to access.' |
| Name | Value | Comments | |
|---|---|---|---|
abstract | false | ||
baseDefinition | http://hl7.org/fhir/StructureDefinition/Group | ||
copyright | |||
date | 2025-08-04T20:07:54+00:00 | 2025-12-09T13:52:35+00:00 |
|
description | Group that provides characteristic based cohorts through coarse-grained, REST search expression based filters to support constraining bulk export requests | 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. |
|
experimental | |||
fhirVersion | 4.0.1 | ||
jurisdiction | |||
![]() jurisdiction[0] | http://unstats.un.org/unsd/methods/m49/m49.htm#001 | ||
kind | resource | ||
name | BulkCohortGroup | ||
publisher | HL7 International / FHIR Infrastructure | ||
purpose | |||
status | active | ||
title | Bulk Cohort Group | ||
type | Group | ||
url | http://hl7.org/fhir/uv/bulkdata/StructureDefinition/bulk-cohort-group | ||
version | 3.0.0-ballot | 3.0.0 |
|
| Name | L Flags | L Card. | L Type | L Description & Constraints | R Flags | R Card. | R Type | R Description & Constraints | Comments![]() | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | C | 0..* | Group | Group of multiple entities | C | 0..* | Group | Group of multiple entities | |||||||||
![]() ![]() | Σ | 0..1 | id | Logical id of this artifact | Σ | 0..1 | id | Logical id of this artifact | |||||||||
![]() ![]() | Σ | 0..1 | Meta | Metadata about the resource | Σ | 0..1 | Meta | Metadata about the resource | |||||||||
![]() ![]() | ?!Σ | 0..1 | uri | A set of rules under which this content was created | ?!Σ | 0..1 | uri | A set of rules under which this content was created | |||||||||
![]() ![]() | 0..1 | code | Language of the resource content Binding: ?? (preferred): A human language.
| 0..1 | code | Language of the resource content Binding: ?? (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..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..* | Resource | Contained, inline Resources | |||||||||||
![]() ![]() | 0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | 0..* | Extension | when membership in this group was updated Slice: Unordered, Open by value:url | |||||||||||
![]() ![]() | ?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | ?! | 1..* | Extension | Filter for members of this group Slice: Unordered, Open by value:url | |||||||||
![]() ![]() | Σ | 0..* | Identifier | Unique id | Σ | 0..* | Identifier | Unique id | |||||||||
![]() ![]() | Σ | 0..1 | boolean | Whether this group's record is in active use | Σ | 0..1 | boolean | Whether this group's record is in active use | |||||||||
![]() ![]() | Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: ?? (required) | Σ | 1..1 | code | person | animal | practitioner | device | medication | substance Binding: ?? (required) | |||||||||
![]() ![]() | ΣC | 1..1 | boolean | True if the member element is populated, otherwise false. | Σ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. | Σ | 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 | Σ | 1..1 | string | Label for Group | |||||||||
![]() ![]() | Σ | 0..1 | unsignedInt | Number of members | Σ | 0..1 | unsignedInt | Number of members | |||||||||
![]() ![]() | Σ | 0..1 | Reference(Organization | RelatedPerson | Practitioner | PractitionerRole) | Entity that is the custodian of the Group's definition | Σ | 0..1 | Reference(Organization | RelatedPerson | Practitioner | PractitionerRole) | Entity that is the custodian of the Group's definition | |||||||||
![]() ![]() | 0..0 | This element is not used for in groups complying with this profile | 0..0 | This element is not used in groups complying with this profile | |||||||||||||
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | 0..1 | string | Unique id for inter-element referencing | |||||||||||
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | 0..* | Extension | Additional content defined by implementations | |||||||||||
![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||
![]() ![]() ![]() | 1..1 | CodeableConcept | Kind of characteristic Binding Description: (example): List of characteristics used to describe group members; e.g. gender, age, owner, location, etc. | 1..1 | CodeableConcept | Kind of characteristic Binding Description: (example): List of characteristics used to describe group members; e.g. gender, age, owner, location, etc. | |||||||||||
![]() ![]() ![]() | 1..1 | CodeableConcept, boolean, Quantity, Range, Reference() | Value held by characteristic Binding Description: (example): Value of descriptive member characteristic; e.g. red, male, pneumonia, Caucasian, etc. | 1..1 | CodeableConcept, boolean, Quantity, Range, Reference() | Value held by characteristic Binding Description: (example): Value of descriptive member characteristic; e.g. red, male, pneumonia, Caucasian, etc. | |||||||||||
![]() ![]() ![]() | 1..1 | boolean | Group includes or excludes | 1..1 | boolean | Group includes or excludes | |||||||||||
![]() ![]() ![]() | 0..1 | Period | Period over which characteristic is tested | 0..1 | Period | Period over which characteristic is tested | |||||||||||
![]() ![]() | C | 0..* | BackboneElement | Who or what is in group | C | 0..* | BackboneElement | Who or what is in group | |||||||||
![]() ![]() ![]() | 0..1 | string | Unique id for inter-element referencing | 0..1 | string | Unique id for inter-element referencing | |||||||||||
![]() ![]() ![]() | 0..* | Extension | Additional content defined by implementations | 0..* | Extension | Additional content defined by implementations | |||||||||||
![]() ![]() ![]() | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | |||||||||
![]() ![]() ![]() | 1..1 | Reference(Patient | Practitioner | PractitionerRole | Device | Medication | Substance | Group) | Reference to the group member | 1..1 | Reference(Patient | Practitioner | Device | Group) | Reference to the group member | |||||||||||
![]() ![]() ![]() | 0..1 | Period | Period member belonged to the group | 0..1 | Period | Period member belonged to the group | |||||||||||
![]() ![]() ![]() | 0..1 | boolean | If member is no longer in group | 0..1 | boolean | If member is no longer in group | |||||||||||
Documentation for this format | |||||||||||||||||