Guardian
type: StructureDefinition
node role: treeRoot
id:
  v: Guardian
text:
  status:
    v: generated
  div: A patient's guardian is a person or organization in the role of guardian (Guardian class). The entity playing the role of guardian is a person (Person class) or organization (Organization class). The entity scoping the role is the patient (Patient class). Where a guardian is not explicitly stated, the value should default to local business practice (e.g. the patient makes their own health care decisions unless incapacitated in which case healthcare decisions are made by the patient's spouse).
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/logical-target
  value: boolean
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/data-absent-reason
      value: code
        v: not-applicable
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-namespace
  value: uri
    v: urn:hl7-org:v3
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-name
  value: string
    v: guardian
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/logical-container
  value: uri
    v: http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/type-profile-style
  value: code
    v: cda
url:
  v: http://hl7.org/cda/stds/core/StructureDefinition/Guardian
version:
  v: 1.0.1
name:
  v: Guardian
title:
  v: Guardian (CDA Class)
status:
  v: active
experimental:
  v: false
date:
  v: 2025-10-10T09:58:30+10:00
publisher:
  v: HL7
description:
  v: A patient's guardian is a person or organization in the role of guardian (Guardian class). The entity playing the role of guardian is a person (Person class) or organization (Organization class). The entity scoping the role is the patient (Patient class). Where a guardian is not explicitly stated, the value should default to local business practice (e.g. the patient makes their own health care decisions unless incapacitated in which case healthcare decisions are made by the patient's spouse).
fhir version:
  v: 5.0.0
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
  name:
    v: RIM Mapping
kind:
  v: logical
abstract:
  v: false
type:
  v: http://hl7.org/cda/stds/core/StructureDefinition/Guardian
base definition:
  v: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
  link: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
derivation:
  v: specialization
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
    value: string
      v: 1.0.1
  element:
    id:
      v: Guardian
    path:
      v: Guardian
    short:
      v: Base for all types and resources
    definition:
      v: Defines the basic properties of every data value. This is an abstract type, meaning that no value can be just a data value without belonging to any concrete type. Every concrete type is a specialization of this general abstract DataValue type.
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: Base
      min:
        v: 0
      max:
        v: *
    constraint:
      key:
        v: guardian-choice
      severity:
        v: error
      human:
        v: guardianPerson and guardianOrganization are mutually exclusive (one must be present)
      expression:
        v: (guardianPerson | guardianOrganization).count() = 1
    is modifier:
      v: false
    mapping:
      identity:
        v: rim
      map:
        v: n/a
  element:
    id:
      v: Guardian.nullFlavor
    path:
      v: Guardian.nullFlavor
    representation:
      v: xmlAttr
    label:
      v: Exceptional Value Detail
    definition:
      v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: ANY.nullFlavor
      min:
        v: 0
      max:
        v: 1
    type:
      code:
        v: code
      profile:
        v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
        link: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    binding:
      strength:
        v: required
      value set:
        v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
        link: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
  element:
    id:
      v: Guardian.realmCode
    path:
      v: Guardian.realmCode
    definition:
      v: When valued in an instance, this attribute signals the imposition of realm-specific constraints. The value of this attribute identifies the realm in question
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: InfrastructureRoot.realmCode
      min:
        v: 0
      max:
        v: *
    type:
      code:
        v: http://hl7.org/cda/stds/core/StructureDefinition/CS
  element:
    id:
      v: Guardian.typeId
    path:
      v: Guardian.typeId
    definition:
      v: When valued in an instance, this attribute signals the imposition of constraints defined in an HL7-specified message type. This might be a common type (also known as CMET in the messaging communication environment), or content included within a wrapper. The value of this attribute provides a unique identifier for the type in question.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: InfrastructureRoot.typeId
      min:
        v: 0
      max:
        v: 1
    type:
      code:
        v: http://hl7.org/cda/stds/core/StructureDefinition/II
    constraint:
      key:
        v: II-1
      severity:
        v: error
      human:
        v: An II instance must have either a root or an nullFlavor.
      expression:
        v: root.exists() or nullFlavor.exists()
      source:
        v: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot
        link: http://hl7.org/cda/stds/core/StructureDefinition/InfrastructureRoot

id:
  v: Guardian.typeId.nullFlavor
path:
  v: Guardian.typeId.nullFlavor
representation:
  v: xmlAttr
label:
  v: Exceptional Value Detail
definition:
  v: If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ANY.nullFlavor
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    link: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
binding:
  strength:
    v: required
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor
    link: http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor

id:
  v: Guardian.typeId.assigningAuthorityName
path:
  v: Guardian.typeId.assigningAuthorityName
representation:
  v: xmlAttr
label:
  v: Assigning Authority Name
definition:
  v: A human readable name or mnemonic for the assigning authority. The Assigning Authority Name has no computational value. The purpose of a Assigning Authority Name is to assist an unaided human interpreter of an II value to interpret the authority. Note: no automated processing must depend on the assigning authority name to be present in any form.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.assigningAuthorityName
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    link: http://hl7.org/cda/stds/core/StructureDefinition/st-simple

id:
  v: Guardian.typeId.displayable
path:
  v: Guardian.typeId.displayable
representation:
  v: xmlAttr
label:
  v: Displayable
definition:
  v: Specifies if the identifier is intended for human display and data entry (displayable = true) as opposed to pure machine interoperation (displayable = false).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: II.displayable
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: boolean
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple
    link: http://hl7.org/cda/stds/core/StructureDefinition/bl-simple

id:
  v: Guardian.typeId.root
path:
  v: Guardian.typeId.root
representation:
  v: xmlAttr
label:
  v: Root
definition:
  v: Identifies the type as an HL7 Registered model
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.root
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/oid
    link: http://hl7.org/cda/stds/core/StructureDefinition/oid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/uuid
    link: http://hl7.org/cda/stds/core/StructureDefinition/uuid
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/ruid
    link: http://hl7.org/cda/stds/core/StructureDefinition/ruid
fixed: string
  v: 2.16.840.1.113883.1.3

id:
  v: Guardian.typeId.extension
path:
  v: Guardian.typeId.extension
representation:
  v: xmlAttr
label:
  v: Extension
definition:
  v: A character string as a unique identifier within the scope of the identifier root.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: II.extension
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/st-simple
    link: http://hl7.org/cda/stds/core/StructureDefinition/st-simple

id:
  v: Guardian.templateId
path:
  v: Guardian.templateId
definition:
  v: When valued in an instance, this attribute signals the imposition of a set of template-defined constraints. The value of this attribute provides a unique identifier for the templates in question
min:
  v: 0
max:
  v: *
base:
  path:
    v: InfrastructureRoot.templateId
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II

id:
  v: Guardian.classCode
path:
  v: Guardian.classCode
representation:
  v: xmlAttr
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Guardian.classCode
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: code
  profile:
    v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
    link: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
fixed: code
  v: GUARD
binding:
  strength:
    v: required
  value set:
    v: http://terminology.hl7.org/ValueSet/v3-RoleClassAgent
    link: http://terminology.hl7.org/ValueSet/v3-RoleClassAgent

id:
  v: Guardian.id
path:
  v: Guardian.id
min:
  v: 0
max:
  v: *
base:
  path:
    v: Guardian.id
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/II

id:
  v: Guardian.sdtcIdentifiedBy
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-namespace
  value: uri
    v: urn:hl7-org:sdtc
extension:
  url:
    v: http://hl7.org/fhir/tools/StructureDefinition/xml-name
  value: string
    v: identifiedBy
path:
  v: Guardian.sdtcIdentifiedBy
min:
  v: 0
max:
  v: *
base:
  path:
    v: Guardian.sdtcIdentifiedBy
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/IdentifiedBy

id:
  v: Guardian.code
path:
  v: Guardian.code
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Guardian.code
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/CE
binding:
  strength:
    v: example
  value set:
    v: http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
    link: http://hl7.org/cda/stds/core/ValueSet/CDARoleCode

id:
  v: Guardian.addr
path:
  v: Guardian.addr
min:
  v: 0
max:
  v: *
base:
  path:
    v: Guardian.addr
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/AD

id:
  v: Guardian.telecom
path:
  v: Guardian.telecom
min:
  v: 0
max:
  v: *
base:
  path:
    v: Guardian.telecom
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/TEL

id:
  v: Guardian.guardianPerson
path:
  v: Guardian.guardianPerson
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Guardian.guardianPerson
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/Person

id:
  v: Guardian.guardianOrganization
path:
  v: Guardian.guardianOrganization
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Guardian.guardianOrganization
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: http://hl7.org/cda/stds/core/StructureDefinition/Organization

element:
  id:
    v: Guardian
  path:
    v: Guardian
  min:
    v: 1
  max:
    v: 1
  constraint:
    key:
      v: guardian-choice
    severity:
      v: error
    human:
      v: guardianPerson and guardianOrganization are mutually exclusive (one must be present)
    expression:
      v: (guardianPerson | guardianOrganization).count() = 1
element:
  id:
    v: Guardian.classCode
  path:
    v: Guardian.classCode
  representation:
    v: xmlAttr
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: code
    profile:
      v: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
      link: http://hl7.org/cda/stds/core/StructureDefinition/cs-simple
  fixed: code
    v: GUARD
  binding:
    strength:
      v: required
    value set:
      v: http://terminology.hl7.org/ValueSet/v3-RoleClassAgent
      link: http://terminology.hl7.org/ValueSet/v3-RoleClassAgent
element:
  id:
    v: Guardian.id
  path:
    v: Guardian.id
  min:
    v: 0
  max:
    v: *
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/II
element:
  id:
    v: Guardian.sdtcIdentifiedBy
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/xml-namespace
    value: uri
      v: urn:hl7-org:sdtc
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/xml-name
    value: string
      v: identifiedBy
  path:
    v: Guardian.sdtcIdentifiedBy
  min:
    v: 0
  max:
    v: *
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/IdentifiedBy
element:
  id:
    v: Guardian.code
  path:
    v: Guardian.code
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/CE
  binding:
    strength:
      v: example
    value set:
      v: http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
      link: http://hl7.org/cda/stds/core/ValueSet/CDARoleCode
element:
  id:
    v: Guardian.addr
  path:
    v: Guardian.addr
  min:
    v: 0
  max:
    v: *
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/AD
element:
  id:
    v: Guardian.telecom
  path:
    v: Guardian.telecom
  min:
    v: 0
  max:
    v: *
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/TEL
element:
  id:
    v: Guardian.guardianPerson
  path:
    v: Guardian.guardianPerson
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/Person
element:
  id:
    v: Guardian.guardianOrganization
  path:
    v: Guardian.guardianOrganization
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: http://hl7.org/cda/stds/core/StructureDefinition/Organization