R4 Ballot #1 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.3.0: R4 Ballot 2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

8.3 Resource Group - Content

FHIR Infrastructure Work GroupMaturity Level: 1 Trial Use Compartments: Device, Patient, Practitioner

Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization.

The Group resource is used in one of two ways:

  1. To define a group of specific people, animals, devices, etc. that is being tracked, examined or otherwise referenced as part of healthcare-related activities
  2. To define a set of possible people, animals, devices, etc. that are of interest for some intended future healthcare-related activities

Examples of the former could include group therapy or treatment sessions, exposed entities tracked as part of public health, etc. The latter might be used to define expected subjects for a clinical study.

Both use cases are handled by a single resource because the data elements captured tend to be similar.

There are five mechanisms in FHIR for communicating collections of resources:

  • The List resource - enumerates a flat collection of resources and provides features for managing the collection. While a particular List instance may represent a "snapshot", from a business process perspective the notion of "List" is dynamic – items are added and removed over time. The List resource references other resources. Lists may be curated and have specific business meaning.
  • This Group resource - defines a group of specific people, animals, devices etc. by enumerating them, or by describing qualities that group members have. The group resource refers to other resources, possibly implicitly. Groups are intended to be acted upon or observed as a whole; e.g. performing therapy on a group, calculating risk for a group, etc. This resource will commonly be used for public health (e.g. describing an at-risk population), clinical trials (e.g. defining a test subject pool) and similar purposes.
  • The Bundle resource - is an infrastructure container for a group of resources. It does not have narrative and is used to group collections of resources for transmission, persistence or processing (e.g. messages, documents, transactions, query responses, etc.) The content of bundles is typically algorithmically determined for a particular exchange or persistence purpose.
  • The Composition resource - defines a set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. The composition resource provides the basic structure of a FHIR document. The full content of the document is expressed using a bundle. Compositions will often reference Lists as the focus of particular sections.
  • The DomainResource.contained element - allows multiple resources to be nested inside any DomainResource. This is a special type of grouping where the grouped resources lose independent existence - they no longer have their own identifiers, can't easily be queried independently, etc. Use of this grouping is a technical mechanism for managing the independence of resources and has no impact on meaning.
Contained, bundled and remotely referenced resources convey the same meaning.

This resource is referenced by ActivityDefinition, AdverseEvent, CarePlan, CareTeam, ChargeItem, ClinicalImpression, Communication, CommunicationRequest, Condition, Consent, Contract, DeviceRequest, DeviceUseStatement, DiagnosticReport, DocumentManifest, DocumentReference, Encounter, EventDefinition, Flag, Goal, GuidanceResponse, ImagingStudy, Invoice, Library, List, Measure, MeasureReport, Media, MedicationAdministration, MedicationDispense, MedicationRequest, MedicationStatement, Observation, PlanDefinition, Procedure, RequestGroup, ResearchStudy, RiskAssessment, ServiceRequest, Specimen and Task

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Group ITUDomainResourceGroup of multiple entities
+ Can only have members if group is "actual"
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierUnique id
... active Σ0..1booleanWhether this group's record is in active use
... type Σ1..1codeperson | animal | practitioner | device | medication | substance
GroupType (Required)
... actual ΣI1..1booleanDescriptive or actual
... code Σ0..1CodeableConceptKind of Group members
... name Σ0..1stringLabel for Group
... quantity Σ0..1unsignedIntNumber of members
... characteristic 0..*BackboneElementTrait of group members
.... code 1..1CodeableConceptKind of characteristic
.... value[x] 1..1Value held by characteristic
..... valueCodeableConceptCodeableConcept
..... valueBooleanboolean
..... valueQuantityQuantity
..... valueRangeRange
.... exclude ?!1..1booleanGroup includes or excludes
.... period 0..1PeriodPeriod over which characteristic is tested
... member I0..*BackboneElementWho or what is in group
.... entity 1..1Reference(Patient | Practitioner | PractitionerRole | Device | Medication | Substance)Reference to the group member
.... period 0..1PeriodPeriod member belonged to the group
.... inactive 0..1booleanIf member is no longer in group

doco Documentation for this format

UML Diagram (Legend)

Group (DomainResource)A unique business identifier for this groupidentifier : Identifier [0..*]Indicates whether the record for the group is available for use or is merely being retained for historical purposesactive : boolean [0..1]Identifies the broad classification of the kind of resources the group includestype : code [1..1] « Types of resources that are part of group (Strength=Required)GroupType! »If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individualsactual : boolean [1..1]Provides a specific type of resource the group includes; e.g. "cow", "syringe", etccode : CodeableConcept [0..1]A label assigned to the group for human identification and communicationname : string [0..1]A count of the number of resource instances that are part of the groupquantity : unsignedInt [0..1]CharacteristicA code that identifies the kind of trait being assertedcode : CodeableConcept [1..1]The value of the trait that holds (or does not hold - see 'exclude') for members of the groupvalue[x] : Type [1..1] « CodeableConcept|boolean|Quantity|Range »If true, indicates the characteristic is one that is NOT held by members of the group (this element modifies the meaning of other elements)exclude : boolean [1..1]The period over which the characteristic is tested; e.g. the patient had an operation during the month of Juneperiod : Period [0..1]MemberA reference to the entity that is a member of the group. Must be consistent with Group.typeentity : Reference [1..1] « Patient|Practitioner|PractitionerRole| Device|Medication|Substance »The period that the member was in the group, if knownperiod : Period [0..1]A flag to indicate that the member is no longer in the group, but previously may have been a memberinactive : boolean [0..1]Identifies the traits shared by members of the groupcharacteristic[0..*]Identifies the resource instances that are members of the groupmember[0..*]

XML Template

<Group xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique id --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this group's record is in active use -->
 <type value="[code]"/><!-- 1..1 person | animal | practitioner | device | medication | substance -->
 <actual value="[boolean]"/><!-- ?? 1..1 Descriptive or actual -->
 <code><!-- 0..1 CodeableConcept Kind of Group members --></code>
 <name value="[string]"/><!-- 0..1 Label for Group -->
 <quantity value="[unsignedInt]"/><!-- 0..1 Number of members -->
 <characteristic>  <!-- 0..* Trait of group members -->
  <code><!-- 1..1 CodeableConcept Kind of characteristic --></code>
  <value[x]><!-- 1..1 CodeableConcept|boolean|Quantity|Range Value held by characteristic --></value[x]>
  <exclude value="[boolean]"/><!-- 1..1 Group includes or excludes -->
  <period><!-- 0..1 Period Period over which characteristic is tested --></period>
 </characteristic>
 <member>  <!-- ?? 0..* Who or what is in group -->
  <entity><!-- 1..1 Reference(Patient|Practitioner|PractitionerRole|Device|
    Medication|Substance) Reference to the group member --></entity>
  <period><!-- 0..1 Period Period member belonged to the group --></period>
  <inactive value="[boolean]"/><!-- 0..1 If member is no longer in group -->
 </member>
</Group>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Group;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Group.identifier [ Identifier ], ... ; # 0..* Unique id
  fhir:Group.active [ boolean ]; # 0..1 Whether this group's record is in active use
  fhir:Group.type [ code ]; # 1..1 person | animal | practitioner | device | medication | substance
  fhir:Group.actual [ boolean ]; # 1..1 Descriptive or actual
  fhir:Group.code [ CodeableConcept ]; # 0..1 Kind of Group members
  fhir:Group.name [ string ]; # 0..1 Label for Group
  fhir:Group.quantity [ unsignedInt ]; # 0..1 Number of members
  fhir:Group.characteristic [ # 0..* Trait of group members
    fhir:Group.characteristic.code [ CodeableConcept ]; # 1..1 Kind of characteristic
    # Group.characteristic.value[x] : 1..1 Value held by characteristic. One of these 4
      fhir:Group.characteristic.valueCodeableConcept [ CodeableConcept ]
      fhir:Group.characteristic.valueBoolean [ boolean ]
      fhir:Group.characteristic.valueQuantity [ Quantity ]
      fhir:Group.characteristic.valueRange [ Range ]
    fhir:Group.characteristic.exclude [ boolean ]; # 1..1 Group includes or excludes
    fhir:Group.characteristic.period [ Period ]; # 0..1 Period over which characteristic is tested
  ], ...;
  fhir:Group.member [ # 0..* Who or what is in group
    fhir:Group.member.entity [ Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance) ]; # 1..1 Reference to the group member
    fhir:Group.member.period [ Period ]; # 0..1 Period member belonged to the group
    fhir:Group.member.inactive [ boolean ]; # 0..1 If member is no longer in group
  ], ...;
]

Changes since R3

Group
Group.active
  • Default Value "true" removed
Group.member.entity
  • Type changed from Reference(Patient|Practitioner|Device|Medication|Substance) to Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance)
Group.member.inactive
  • Default Value "false" removed

See the Full Difference for further information

This analysis is available as XML or JSON.

See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). Note: these have note yet been updated to be R3 to R4

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Group ITUDomainResourceGroup of multiple entities
+ Can only have members if group is "actual"
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierUnique id
... active Σ0..1booleanWhether this group's record is in active use
... type Σ1..1codeperson | animal | practitioner | device | medication | substance
GroupType (Required)
... actual ΣI1..1booleanDescriptive or actual
... code Σ0..1CodeableConceptKind of Group members
... name Σ0..1stringLabel for Group
... quantity Σ0..1unsignedIntNumber of members
... characteristic 0..*BackboneElementTrait of group members
.... code 1..1CodeableConceptKind of characteristic
.... value[x] 1..1Value held by characteristic
..... valueCodeableConceptCodeableConcept
..... valueBooleanboolean
..... valueQuantityQuantity
..... valueRangeRange
.... exclude ?!1..1booleanGroup includes or excludes
.... period 0..1PeriodPeriod over which characteristic is tested
... member I0..*BackboneElementWho or what is in group
.... entity 1..1Reference(Patient | Practitioner | PractitionerRole | Device | Medication | Substance)Reference to the group member
.... period 0..1PeriodPeriod member belonged to the group
.... inactive 0..1booleanIf member is no longer in group

doco Documentation for this format

UML Diagram (Legend)

Group (DomainResource)A unique business identifier for this groupidentifier : Identifier [0..*]Indicates whether the record for the group is available for use or is merely being retained for historical purposesactive : boolean [0..1]Identifies the broad classification of the kind of resources the group includestype : code [1..1] « Types of resources that are part of group (Strength=Required)GroupType! »If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individualsactual : boolean [1..1]Provides a specific type of resource the group includes; e.g. "cow", "syringe", etccode : CodeableConcept [0..1]A label assigned to the group for human identification and communicationname : string [0..1]A count of the number of resource instances that are part of the groupquantity : unsignedInt [0..1]CharacteristicA code that identifies the kind of trait being assertedcode : CodeableConcept [1..1]The value of the trait that holds (or does not hold - see 'exclude') for members of the groupvalue[x] : Type [1..1] « CodeableConcept|boolean|Quantity|Range »If true, indicates the characteristic is one that is NOT held by members of the group (this element modifies the meaning of other elements)exclude : boolean [1..1]The period over which the characteristic is tested; e.g. the patient had an operation during the month of Juneperiod : Period [0..1]MemberA reference to the entity that is a member of the group. Must be consistent with Group.typeentity : Reference [1..1] « Patient|Practitioner|PractitionerRole| Device|Medication|Substance »The period that the member was in the group, if knownperiod : Period [0..1]A flag to indicate that the member is no longer in the group, but previously may have been a memberinactive : boolean [0..1]Identifies the traits shared by members of the groupcharacteristic[0..*]Identifies the resource instances that are members of the groupmember[0..*]

XML Template

<Group xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Unique id --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this group's record is in active use -->
 <type value="[code]"/><!-- 1..1 person | animal | practitioner | device | medication | substance -->
 <actual value="[boolean]"/><!-- ?? 1..1 Descriptive or actual -->
 <code><!-- 0..1 CodeableConcept Kind of Group members --></code>
 <name value="[string]"/><!-- 0..1 Label for Group -->
 <quantity value="[unsignedInt]"/><!-- 0..1 Number of members -->
 <characteristic>  <!-- 0..* Trait of group members -->
  <code><!-- 1..1 CodeableConcept Kind of characteristic --></code>
  <value[x]><!-- 1..1 CodeableConcept|boolean|Quantity|Range Value held by characteristic --></value[x]>
  <exclude value="[boolean]"/><!-- 1..1 Group includes or excludes -->
  <period><!-- 0..1 Period Period over which characteristic is tested --></period>
 </characteristic>
 <member>  <!-- ?? 0..* Who or what is in group -->
  <entity><!-- 1..1 Reference(Patient|Practitioner|PractitionerRole|Device|
    Medication|Substance) Reference to the group member --></entity>
  <period><!-- 0..1 Period Period member belonged to the group --></period>
  <inactive value="[boolean]"/><!-- 0..1 If member is no longer in group -->
 </member>
</Group>

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Group;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Group.identifier [ Identifier ], ... ; # 0..* Unique id
  fhir:Group.active [ boolean ]; # 0..1 Whether this group's record is in active use
  fhir:Group.type [ code ]; # 1..1 person | animal | practitioner | device | medication | substance
  fhir:Group.actual [ boolean ]; # 1..1 Descriptive or actual
  fhir:Group.code [ CodeableConcept ]; # 0..1 Kind of Group members
  fhir:Group.name [ string ]; # 0..1 Label for Group
  fhir:Group.quantity [ unsignedInt ]; # 0..1 Number of members
  fhir:Group.characteristic [ # 0..* Trait of group members
    fhir:Group.characteristic.code [ CodeableConcept ]; # 1..1 Kind of characteristic
    # Group.characteristic.value[x] : 1..1 Value held by characteristic. One of these 4
      fhir:Group.characteristic.valueCodeableConcept [ CodeableConcept ]
      fhir:Group.characteristic.valueBoolean [ boolean ]
      fhir:Group.characteristic.valueQuantity [ Quantity ]
      fhir:Group.characteristic.valueRange [ Range ]
    fhir:Group.characteristic.exclude [ boolean ]; # 1..1 Group includes or excludes
    fhir:Group.characteristic.period [ Period ]; # 0..1 Period over which characteristic is tested
  ], ...;
  fhir:Group.member [ # 0..* Who or what is in group
    fhir:Group.member.entity [ Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance) ]; # 1..1 Reference to the group member
    fhir:Group.member.period [ Period ]; # 0..1 Period member belonged to the group
    fhir:Group.member.inactive [ boolean ]; # 0..1 If member is no longer in group
  ], ...;
]

Changes since DSTU2

Group
Group.active
  • Default Value "true" removed
Group.member.entity
  • Type changed from Reference(Patient|Practitioner|Device|Medication|Substance) to Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance)
Group.member.inactive
  • Default Value "false" removed

See the Full Difference for further information

This analysis is available as XML or JSON.

See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). Note: these have note yet been updated to be R3 to R4

 

Alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis

PathDefinitionTypeReference
Group.type Types of resources that are part of groupRequiredGroupType
Group.code Kind of particular resource; e.g. cow, syringe, lake, etc.UnknownNo details provided yet
Group.characteristic.code List of characteristics used to describe group members; e.g. gender, age, owner, location, etc.UnknownNo details provided yet
Group.characteristic.value[x] Value of descriptive member characteristic; e.g. red, male, pneumonia, Caucasian, etc.UnknownNo details provided yet

  • grp-1: Can only have members if group is "actual" (expression : member.empty() or (actual = true))

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
actualtokenDescriptive or actualGroup.actual
characteristictokenKind of characteristicGroup.characteristic.code
characteristic-valuecompositeA composite of both characteristic and valueGroup.characteristic
codetokenThe kind of resources containedGroup.code
excludetokenGroup includes or excludesGroup.characteristic.exclude
identifiertokenUnique idGroup.identifier
memberreferenceReference to the group memberGroup.member.entity
(Practitioner, Device, Medication, Patient, Substance, PractitionerRole)
typetokenThe type of resources the group containsGroup.type
valuetokenValue held by characteristicGroup.characteristic.value