US Core Implementation Guide
7.0.0-ballot - Ballot United States of America flag

US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 7.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/US-Core/ and changes regularly. See the Directory of published versions

Resource Profile: US Core RelatedPerson Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson Version: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreRelatedPersonProfile

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the RelatedPerson resource to record, search, and fetch basic administrative information about persons with a legal or familial relationship to a patient. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

  • Query for a related person that supports the patient.
  • Query for a person related to the patient by name.

Mandatory and Must Support Data Elements

The following data elements must always be present (Mandatory definition) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Views below provides the formal summary, definitions, and terminology requirements.

Each RelatedPerson Must Have:

  1. a status
  2. a patient

Each RelatedPerson Must Support:

  1. the relationship to the patient
  2. the name of the related person
  3. the telecom of the related person
  4. the address of the related person*

*see guidance below

Profile Specific Implementation Guidance:

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from RelatedPerson

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... active S1..1booleanWhether this related person's record is in active use
... patient S1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SC0..*CodeableConceptThe nature of the relationship
... name SC0..*HumanNameA name associated with the person
... telecom S0..*ContactPointA contact detail for the person
... address S0..*AddressAddress where the related person can be contacted or visited

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!SΣ1..1booleanWhether this related person's record is in active use
... patient SΣ1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SΣC0..*CodeableConceptThe nature of the relationship
Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person.


... name SΣC0..*HumanNameA name associated with the person
... telecom SΣ0..*ContactPointA contact detail for the person
... address SΣ0..*AddressAddress where the related person can be contacted or visited

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
RelatedPerson.relationshippreferredPatientRelationshipType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorRelatedPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorRelatedPersonIf 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-4errorRelatedPersonIf 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-5errorRelatedPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceRelatedPersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierA human identifier for this person
... active ?!SΣ1..1booleanWhether this related person's record is in active use
... patient SΣ1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SΣC0..*CodeableConceptThe nature of the relationship
Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person.


... name SΣC0..*HumanNameA name associated with the person
... telecom SΣ0..*ContactPointA contact detail for the person
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ0..1dateThe date on which the related person was born
... address SΣ0..*AddressAddress where the related person can be contacted or visited
... photo 0..*AttachmentImage of the person
... period 0..1PeriodPeriod of time that this relationship is considered valid
... communication 0..*BackboneElementA language which may be used to communicate with about the patient's health
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
.... preferred 0..1booleanLanguage preference indicator

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
RelatedPerson.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
RelatedPerson.relationshippreferredPatientRelationshipType
RelatedPerson.genderrequiredAdministrativeGender
RelatedPerson.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorRelatedPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorRelatedPersonIf 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-4errorRelatedPersonIf 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-5errorRelatedPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceRelatedPersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()

This structure is derived from RelatedPerson

Summary

Mandatory: 1 element
Must-Support: 6 elements

Structures

This structure refers to these other structures:

Maturity: 3

Differential View

This structure is derived from RelatedPerson

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... active S1..1booleanWhether this related person's record is in active use
... patient S1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SC0..*CodeableConceptThe nature of the relationship
... name SC0..*HumanNameA name associated with the person
... telecom S0..*ContactPointA contact detail for the person
... address S0..*AddressAddress where the related person can be contacted or visited

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... active ?!SΣ1..1booleanWhether this related person's record is in active use
... patient SΣ1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SΣC0..*CodeableConceptThe nature of the relationship
Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person.


... name SΣC0..*HumanNameA name associated with the person
... telecom SΣ0..*ContactPointA contact detail for the person
... address SΣ0..*AddressAddress where the related person can be contacted or visited

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
RelatedPerson.relationshippreferredPatientRelationshipType

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorRelatedPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorRelatedPersonIf 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-4errorRelatedPersonIf 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-5errorRelatedPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceRelatedPersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. RelatedPerson C0..*RelatedPersonA person that is related to a patient, but who is not a direct target of care
us-core-14: Either a name or a relationship SHALL be provided (or both)
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierA human identifier for this person
... active ?!SΣ1..1booleanWhether this related person's record is in active use
... patient SΣ1..1Reference(US Core Patient Profile)The patient this person is related to
... relationship SΣC0..*CodeableConceptThe nature of the relationship
Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person.


... name SΣC0..*HumanNameA name associated with the person
... telecom SΣ0..*ContactPointA contact detail for the person
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ0..1dateThe date on which the related person was born
... address SΣ0..*AddressAddress where the related person can be contacted or visited
... photo 0..*AttachmentImage of the person
... period 0..1PeriodPeriod of time that this relationship is considered valid
... communication 0..*BackboneElementA language which may be used to communicate with about the patient's health
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
.... preferred 0..1booleanLanguage preference indicator

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
RelatedPerson.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
RelatedPerson.relationshippreferredPatientRelationshipType
RelatedPerson.genderrequiredAdministrativeGender
RelatedPerson.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorRelatedPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorRelatedPersonIf 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-4errorRelatedPersonIf 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-5errorRelatedPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceRelatedPersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
us-core-14errorRelatedPersonEither a name or a relationship SHALL be provided (or both)
: name.exists() or relationship.exists()

This structure is derived from RelatedPerson

Summary

Mandatory: 1 element
Must-Support: 6 elements

Structures

This structure refers to these other structures:

Maturity: 3

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Requirements section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

US Core Scopes

Servers providing access to related person data SHALL support these US Core SMART Scopes:

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support both read RelatedPerson by id AND RelatedPerson search using the _id search parameter:

    GET [base]/RelatedPerson/[id] or GET [base]/RelatedPerson?_id=[id]

    Example:

    1. GET [base]/RelatedPerson/shaw-niece
    2. GET [base]/RelatedPerson?_id=shaw-niece

    Implementation Notes: (how to search by the logical id of the resource)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported:

  1. SHOULD support searching for all relatedpersons for a patient using the patient search parameter:

    GET [base]/RelatedPerson?patient={Type/}[id]

    Example:

    1. GET [base]/RelatedPerson?patient=1032702

    Implementation Notes: Fetches a bundle of all RelatedPerson resources for the specified patient (how to search by reference)

  2. SHOULD support searching using the combination of the patient and name search parameters:

    GET [base]/RelatedPerson?patient={Type/}[id]&name=[string]

    Example:

    1. GET [base]/RelatedPerson?patient=1137192&name=van%20Putten

    Implementation Notes: Fetches a bundle of all RelatedPerson resources for the specified patient that may match any of the string fields in the name element (including family, give, prefix, suffix, suffix, and/or text) (how to search by reference and how to search by string)