Group — Identified collection of entities
Patient cohort, herd, device batch, medication basket: Group bundles entities under a shared identity, either enumerated or rule-defined.
Purpose
Group identifies a coherent set of entities. Typical uses:
- Research cohorts or population follow-up groups.
- FHIR bulk export: export the Patient subset of a Group via
GET /Group/[id]/$export. - Care programs: list of patients enrolled.
- Veterinary: cattle herd.
- Pharmacy: medication batch of a delivery.
Two modes:
membership=enumerated— members are listed explicitly inmember[].membership=definitional— members are defined by criteria incharacteristic[], no enumeration.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers. |
active | boolean | 0..1 | Active Group. |
type | code | 1..1 | Mandatory. person | animal | practitioner | device | careteam | healthcareservice | location | organization | relatedperson | specimen. |
membership | code | 1..1 | Mandatory. definitional | enumerated. |
code | CodeableConcept | 0..1 | Code describing the entity type. |
name | string | 0..1 | Human-readable name. |
description | markdown | 0..1 | Description. |
quantity | unsignedInt | 0..1 | Member count. |
managingEntity | Reference(Organization | RelatedPerson | Practitioner | PractitionerRole) | 0..1 | Managing entity. |
characteristic | BackboneElement[] | 0..* | Definition criteria. |
characteristic.code | CodeableConcept | 1..1 | Which criterion. |
characteristic.value[x] | CodeableConcept | boolean | Quantity | Range | Reference | 1..1 | Criterion value. |
characteristic.exclude | boolean | 1..1 | true = exclusion criterion. |
member | BackboneElement[] | 0..* | Enumerated members. |
member.entity | Reference | 1..1 | Member entity. |
member.period | Period | 0..1 | Membership period. |
member.inactive | boolean | 0..1 | Inactive member. |
JSON example
Cohort of 3 type-2 diabetic patients enrolled in a 2026 follow-up program, age criterion 40–80:
{
"resourceType": "Group",
"id": "diabetes-cohort-2026",
"identifier": [{
"system": "http://acme.com/cohorts",
"value": "DM2-2026"
}],
"active": true,
"type": "person",
"membership": "enumerated",
"code": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "44054006",
"display": "Diabetes mellitus type 2 (disorder)"
}]
},
"name": "Type 2 Diabetes Cohort — 2026 Follow-up Program",
"description": "Patients enrolled in the type 2 diabetes follow-up program for 2026.",
"quantity": 3,
"managingEntity": { "reference": "Organization/hospital-1" },
"characteristic": [{
"code": {
"coding": [{ "system": "http://loinc.org", "code": "30525-0", "display": "Age" }]
},
"valueRange": {
"low": { "value": 40, "unit": "years" },
"high": { "value": 80, "unit": "years" }
},
"exclude": false
}],
"member": [
{ "entity": { "reference": "Patient/example" }, "period": { "start": "2026-01-15" } },
{ "entity": { "reference": "Patient/patient-2" }, "period": { "start": "2026-02-01" } },
{ "entity": { "reference": "Patient/patient-3" }, "period": { "start": "2026-03-10" } }
]
} Common pitfalls
- Enumerated Group with constraining
characteristic— inconsistent: when enumerated,characteristicis informational only. - Bulk export on definitional Group — not supported:
$exportrequires enumeration. - Inconsistent
quantityvsmember.length— always sync. - Confusion Group / List — List is generic (heterogeneous), Group targets a single entity type (
type). - Bulk export Group of millions of Patients without
_typeFilter— volumetric explosion server-side.
Related resources
- Patient, Practitioner, Device — typical member types.
- List — alternative for heterogeneous lists.
- CarePlan, CareTeam — associated care programs.
- ResearchStudy — clinical studies.