R5 Final QA

This page is part of the FHIR Specification (v5.0.0-draft-final: Final QA Preview for R5 - see ballot notes). 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.1 Resource Patient - Content

Patient Administration icon Work GroupMaturity Level: N Normative (from v4.0.0)Security Category: Patient Compartments: Patient, Practitioner, RelatedPerson

Demographics and other administrative information about an individual or animal receiving care or other health-related services.

This Resource covers data about patients and animals involved in a wide range of health-related activities, including:

  • Curative activities
  • Psychiatric care
  • Social services
  • Pregnancy care
  • Nursing and assisted living
  • Dietary services
  • Tracking of personal health and exercise data
  • Tracking financial services (e.g. insurance subscriber/policy holder)

The data in the Resource covers the "who" information about the patient: its attributes are focused on the demographic information necessary to support the administrative, financial and logistic procedures. A Patient record is generally created and maintained by each organization providing care for a patient. A patient or animal receiving care at multiple organizations may therefore have its information present in multiple Patient Resources.

Not all concepts are included within the base resource (such as race, ethnicity, organ donor status, nationality, etc.), but may be found in profiles defined for specific jurisdictions (e.g., US Meaningful Use Program) or standard extensions. Such fields vary widely between jurisdictions and often have different names and valuesets for the similar concepts, but they are not similar enough to be able to map and exchange.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient NDomainResourceInformation about an individual or animal receiving health care services

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierAn identifier for this patient

... active ?!Σ0..1booleanWhether this patient's record is in active use
... name Σ0..*HumanNameA name associated with the patient

... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (Required)
... birthDate Σ0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1Indicates if the individual is deceased or not
.... deceasedBooleanboolean
.... deceasedDateTimedateTime
... address Σ0..*AddressAn address for the individual

... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (Extensible)
... multipleBirth[x] 0..1Whether patient is part of a multiple birth
.... multipleBirthBooleanboolean
.... multipleBirthIntegerinteger
... photo 0..*AttachmentImage of the patient

... contact C0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
+ Rule: SHALL at least contain a contact's details or a reference to an organization

.... relationship 0..*CodeableConceptThe kind of relationship
Binding: Patient Contact Relationship (Extensible)

.... name C0..1HumanNameA name associated with the contact person
.... telecom C0..*ContactPointA contact detail for the person

.... address C0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (Required)
.... organization C0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication 0..*BackboneElementA language which may be used to communicate with the patient about his or her health

.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: All Languages (Required)
Additional BindingsPurpose
Common LanguagesStarter Set

.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider

... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!Σ0..*BackboneElementLink to a Patient or RelatedPerson resource that concerns the same actual individual

.... other Σ1..1Reference(Patient | RelatedPerson)The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: Link Type (Required)

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Patient (DomainResource)An identifier for this patientidentifier : Identifier [0..*]Whether this patient record is in active use. Many systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules. It is often used to filter patient lists to exclude inactive patients Deceased patients may also be marked as inactive for the same reasons, but may be active for some time after death (this element modifies the meaning of other elements)active : boolean [0..1]A name associated with the individualname : HumanName [0..*]A contact detail (e.g. a telephone number or an email address) by which the individual may be contactedtelecom : ContactPoint [0..*]Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposesgender : code [0..1] « null (Strength=Required)AdministrativeGender! »The date of birth for the individualbirthDate : date [0..1]Indicates if the individual is deceased or not (this element modifies the meaning of other elements)deceased[x] : PrimitiveType [0..1] « boolean|dateTime »An address for the individualaddress : Address [0..*]This field contains a patient's most recent marital (civil) statusmaritalStatus : CodeableConcept [0..1] « null (Strength=Extensible)MaritalStatusCodes+ »Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer)multipleBirth[x] : PrimitiveType [0..1] « boolean|integer »Image of the patientphoto : Attachment [0..*]Patient's nominated care providergeneralPractitioner : Reference [0..*] « Organization|Practitioner| PractitionerRole »Organization that is the custodian of the patient recordmanagingOrganization : Reference [0..1] « Organization »ContactThe nature of the relationship between the patient and the contact personrelationship : CodeableConcept [0..*] « null (Strength=Extensible)PatientContactRelationship+ »A name associated with the contact personname : HumanName [0..1] « This element has or is affected by some invariantsC »A contact detail for the person, e.g. a telephone number or an email addresstelecom : ContactPoint [0..*] « This element has or is affected by some invariantsC »Address for the contact personaddress : Address [0..1] « This element has or is affected by some invariantsC »Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposesgender : code [0..1] « null (Strength=Required)AdministrativeGender! »Organization on behalf of which the contact is acting or for which the contact is workingorganization : Reference [0..1] « Organization » « This element has or is affected by some invariantsC »The period during which this contact person or organization is valid to be contacted relating to this patientperiod : Period [0..1]CommunicationThe ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-AU" for Australian Englishlanguage : CodeableConcept [1..1] « null (Strength=Required)AllLanguages! »Indicates whether or not the patient prefers this language (over other languages he masters up a certain level)preferred : boolean [0..1]LinkLink to a Patient or RelatedPerson resource that concerns the same actual individualother : Reference [1..1] « Patient|RelatedPerson »The type of link between this patient resource and another patient resourcetype : code [1..1] « null (Strength=Required)LinkType! »A contact party (e.g. guardian, partner, friend) for the patientcontact[0..*]A language which may be used to communicate with the patient about his or her healthcommunication[0..*]Link to a Patient or RelatedPerson resource that concerns the same actual individual (this element modifies the meaning of other elements)link[0..*]

XML Template

<Patient xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier An identifier for this patient --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this patient's record is in active use -->
 <name><!-- 0..* HumanName A name associated with the patient --></name>
 <telecom><!-- 0..* ContactPoint A contact detail for the individual --></telecom>
 <gender value="[code]"/><!-- 0..1 male | female | other | unknown -->
 <birthDate value="[date]"/><!-- 0..1 The date of birth for the individual -->
 <deceased[x]><!-- 0..1 boolean|dateTime Indicates if the individual is deceased or not --></deceased[x]>
 <address><!-- 0..* Address An address for the individual --></address>
 <maritalStatus><!-- 0..1 CodeableConcept Marital (civil) status of a patient --></maritalStatus>
 <multipleBirth[x]><!-- 0..1 boolean|integer Whether patient is part of a multiple birth --></multipleBirth[x]>
 <photo><!-- 0..* Attachment Image of the patient --></photo>
 <contact>  <!-- 0..* A contact party (e.g. guardian, partner, friend) for the patient -->
  <relationship><!-- 0..* CodeableConcept The kind of relationship --></relationship>
  <name><!-- I 0..1 HumanName A name associated with the contact person --></name>
  <telecom><!-- I 0..* ContactPoint A contact detail for the person --></telecom>
  <address><!-- I 0..1 Address Address for the contact person --></address>
  <gender value="[code]"/><!-- 0..1 male | female | other | unknown -->
  <organization><!-- I 0..1 Reference(Organization) Organization that is associated with the contact --></organization>
  <period><!-- 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient --></period>
 </contact>
 <communication>  <!-- 0..* A language which may be used to communicate with the patient about his or her health -->
  <language><!-- 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health --></language>
  <preferred value="[boolean]"/><!-- 0..1 Language preference indicator -->
 </communication>
 <generalPractitioner><!-- 0..* Reference(Organization|Practitioner|
   PractitionerRole) Patient's nominated primary care provider --></generalPractitioner>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization that is the custodian of the patient record --></managingOrganization>
 <link>  <!-- 0..* Link to a Patient or RelatedPerson resource that concerns the same actual individual -->
  <other><!-- 1..1 Reference(Patient|RelatedPerson) The other patient or related person resource that the link refers to --></other>
  <type value="[code]"/><!-- 1..1 replaced-by | replaces | refer | seealso -->
 </link>
</Patient>

JSON Template

{doco
  "resourceType" : "Patient",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // An identifier for this patient
  "active" : <boolean>, // Whether this patient's record is in active use
  "name" : [{ HumanName }], // A name associated with the patient
  "telecom" : [{ ContactPoint }], // A contact detail for the individual
  "gender" : "<code>", // male | female | other | unknown
  "birthDate" : "<date>", // The date of birth for the individual
  // deceased[x]: Indicates if the individual is deceased or not. One of these 2:
  "deceasedBoolean" : <boolean>,
  "deceasedDateTime" : "<dateTime>",
  "address" : [{ Address }], // An address for the individual
  "maritalStatus" : { CodeableConcept }, // Marital (civil) status of a patient
  // multipleBirth[x]: Whether patient is part of a multiple birth. One of these 2:
  "multipleBirthBoolean" : <boolean>,
  "multipleBirthInteger" : <integer>,
  "photo" : [{ Attachment }], // Image of the patient
  "contact" : [{ // A contact party (e.g. guardian, partner, friend) for the patient
    "relationship" : [{ CodeableConcept }], // The kind of relationship
    "name" : { HumanName }, // I A name associated with the contact person
    "telecom" : [{ ContactPoint }], // I A contact detail for the person
    "address" : { Address }, // I Address for the contact person
    "gender" : "<code>", // male | female | other | unknown
    "organization" : { Reference(Organization) }, // I Organization that is associated with the contact
    "period" : { Period } // The period during which this contact person or organization is valid to be contacted relating to this patient
  }],
  "communication" : [{ // A language which may be used to communicate with the patient about his or her health
    "language" : { CodeableConcept }, // R!  The language which can be used to communicate with the patient about his or her health
    "preferred" : <boolean> // Language preference indicator
  }],
  "generalPractitioner" : [{ Reference(Organization|Practitioner|
   PractitionerRole) }], // Patient's nominated primary care provider
  "managingOrganization" : { Reference(Organization) }, // Organization that is the custodian of the patient record
  "link" : [{ // Link to a Patient or RelatedPerson resource that concerns the same actual individual
    "other" : { Reference(Patient|RelatedPerson) }, // R!  The other patient or related person resource that the link refers to
    "type" : "<code>" // R!  replaced-by | replaces | refer | seealso
  }]
}

Turtle Template

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


[ a fhir:Patient;
  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:identifier  ( [ Identifier ] ... ) ; # 0..* An identifier for this patient
  fhir:active [ boolean ] ; # 0..1 Whether this patient's record is in active use
  fhir:name  ( [ HumanName ] ... ) ; # 0..* A name associated with the patient
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* A contact detail for the individual
  fhir:gender [ code ] ; # 0..1 male | female | other | unknown
  fhir:birthDate [ date ] ; # 0..1 The date of birth for the individual
  # deceased[x] : 0..1 Indicates if the individual is deceased or not. One of these 2
    fhir:deceased [  a fhir:boolean ; boolean ]
    fhir:deceased [  a fhir:dateTime ; dateTime ]
  fhir:address  ( [ Address ] ... ) ; # 0..* An address for the individual
  fhir:maritalStatus [ CodeableConcept ] ; # 0..1 Marital (civil) status of a patient
  # multipleBirth[x] : 0..1 Whether patient is part of a multiple birth. One of these 2
    fhir:multipleBirth [  a fhir:boolean ; boolean ]
    fhir:multipleBirth [  a fhir:integer ; integer ]
  fhir:photo  ( [ Attachment ] ... ) ; # 0..* Image of the patient
  fhir:contact ( [ # 0..* A contact party (e.g. guardian, partner, friend) for the patient
    fhir:relationship  ( [ CodeableConcept ] ... ) ; # 0..* The kind of relationship
    fhir:name [ HumanName ] ; # 0..1 I A name associated with the contact person
    fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* I A contact detail for the person
    fhir:address [ Address ] ; # 0..1 I Address for the contact person
    fhir:gender [ code ] ; # 0..1 male | female | other | unknown
    fhir:organization [ Reference(Organization) ] ; # 0..1 I Organization that is associated with the contact
    fhir:period [ Period ] ; # 0..1 The period during which this contact person or organization is valid to be contacted relating to this patient
  ] ... ) ;
  fhir:communication ( [ # 0..* A language which may be used to communicate with the patient about his or her health
    fhir:language [ CodeableConcept ] ; # 1..1 The language which can be used to communicate with the patient about his or her health
    fhir:preferred [ boolean ] ; # 0..1 Language preference indicator
  ] ... ) ;
  fhir:generalPractitioner  ( [ Reference(Organization|Practitioner|PractitionerRole) ] ... ) ; # 0..* Patient's nominated primary care provider
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization that is the custodian of the patient record
  fhir:link ( [ # 0..* Link to a Patient or RelatedPerson resource that concerns the same actual individual
    fhir:other [ Reference(Patient|RelatedPerson) ] ; # 1..1 The other patient or related person resource that the link refers to
    fhir:type [ code ] ; # 1..1 replaced-by | replaces | refer | seealso
  ] ... ) ;
]

Changes since R4

Patient
Patient.communication.language
  • Change binding strength from preferred to required
  • Change value set from http://hl7.org/fhir/ValueSet/languages to http://hl7.org/fhir/ValueSet/all-languages|5.0.0-draft-final
  • Change max value set from http://hl7.org/fhir/ValueSet/all-languages to n/a

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 16 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient NDomainResourceInformation about an individual or animal receiving health care services

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier Σ0..*IdentifierAn identifier for this patient

... active ?!Σ0..1booleanWhether this patient's record is in active use
... name Σ0..*HumanNameA name associated with the patient

... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (Required)
... birthDate Σ0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1Indicates if the individual is deceased or not
.... deceasedBooleanboolean
.... deceasedDateTimedateTime
... address Σ0..*AddressAn address for the individual

... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (Extensible)
... multipleBirth[x] 0..1Whether patient is part of a multiple birth
.... multipleBirthBooleanboolean
.... multipleBirthIntegerinteger
... photo 0..*AttachmentImage of the patient

... contact C0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
+ Rule: SHALL at least contain a contact's details or a reference to an organization

.... relationship 0..*CodeableConceptThe kind of relationship
Binding: Patient Contact Relationship (Extensible)

.... name C0..1HumanNameA name associated with the contact person
.... telecom C0..*ContactPointA contact detail for the person

.... address C0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (Required)
.... organization C0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication 0..*BackboneElementA language which may be used to communicate with the patient about his or her health

.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: All Languages (Required)
Additional BindingsPurpose
Common LanguagesStarter Set

.... preferred 0..1booleanLanguage preference indicator
... generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider

... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!Σ0..*BackboneElementLink to a Patient or RelatedPerson resource that concerns the same actual individual

.... other Σ1..1Reference(Patient | RelatedPerson)The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: Link Type (Required)

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Patient (DomainResource)An identifier for this patientidentifier : Identifier [0..*]Whether this patient record is in active use. Many systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules. It is often used to filter patient lists to exclude inactive patients Deceased patients may also be marked as inactive for the same reasons, but may be active for some time after death (this element modifies the meaning of other elements)active : boolean [0..1]A name associated with the individualname : HumanName [0..*]A contact detail (e.g. a telephone number or an email address) by which the individual may be contactedtelecom : ContactPoint [0..*]Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposesgender : code [0..1] « null (Strength=Required)AdministrativeGender! »The date of birth for the individualbirthDate : date [0..1]Indicates if the individual is deceased or not (this element modifies the meaning of other elements)deceased[x] : PrimitiveType [0..1] « boolean|dateTime »An address for the individualaddress : Address [0..*]This field contains a patient's most recent marital (civil) statusmaritalStatus : CodeableConcept [0..1] « null (Strength=Extensible)MaritalStatusCodes+ »Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer)multipleBirth[x] : PrimitiveType [0..1] « boolean|integer »Image of the patientphoto : Attachment [0..*]Patient's nominated care providergeneralPractitioner : Reference [0..*] « Organization|Practitioner| PractitionerRole »Organization that is the custodian of the patient recordmanagingOrganization : Reference [0..1] « Organization »ContactThe nature of the relationship between the patient and the contact personrelationship : CodeableConcept [0..*] « null (Strength=Extensible)PatientContactRelationship+ »A name associated with the contact personname : HumanName [0..1] « This element has or is affected by some invariantsC »A contact detail for the person, e.g. a telephone number or an email addresstelecom : ContactPoint [0..*] « This element has or is affected by some invariantsC »Address for the contact personaddress : Address [0..1] « This element has or is affected by some invariantsC »Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposesgender : code [0..1] « null (Strength=Required)AdministrativeGender! »Organization on behalf of which the contact is acting or for which the contact is workingorganization : Reference [0..1] « Organization » « This element has or is affected by some invariantsC »The period during which this contact person or organization is valid to be contacted relating to this patientperiod : Period [0..1]CommunicationThe ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-AU" for Australian Englishlanguage : CodeableConcept [1..1] « null (Strength=Required)AllLanguages! »Indicates whether or not the patient prefers this language (over other languages he masters up a certain level)preferred : boolean [0..1]LinkLink to a Patient or RelatedPerson resource that concerns the same actual individualother : Reference [1..1] « Patient|RelatedPerson »The type of link between this patient resource and another patient resourcetype : code [1..1] « null (Strength=Required)LinkType! »A contact party (e.g. guardian, partner, friend) for the patientcontact[0..*]A language which may be used to communicate with the patient about his or her healthcommunication[0..*]Link to a Patient or RelatedPerson resource that concerns the same actual individual (this element modifies the meaning of other elements)link[0..*]

XML Template

<Patient xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier An identifier for this patient --></identifier>
 <active value="[boolean]"/><!-- 0..1 Whether this patient's record is in active use -->
 <name><!-- 0..* HumanName A name associated with the patient --></name>
 <telecom><!-- 0..* ContactPoint A contact detail for the individual --></telecom>
 <gender value="[code]"/><!-- 0..1 male | female | other | unknown -->
 <birthDate value="[date]"/><!-- 0..1 The date of birth for the individual -->
 <deceased[x]><!-- 0..1 boolean|dateTime Indicates if the individual is deceased or not --></deceased[x]>
 <address><!-- 0..* Address An address for the individual --></address>
 <maritalStatus><!-- 0..1 CodeableConcept Marital (civil) status of a patient --></maritalStatus>
 <multipleBirth[x]><!-- 0..1 boolean|integer Whether patient is part of a multiple birth --></multipleBirth[x]>
 <photo><!-- 0..* Attachment Image of the patient --></photo>
 <contact>  <!-- 0..* A contact party (e.g. guardian, partner, friend) for the patient -->
  <relationship><!-- 0..* CodeableConcept The kind of relationship --></relationship>
  <name><!-- I 0..1 HumanName A name associated with the contact person --></name>
  <telecom><!-- I 0..* ContactPoint A contact detail for the person --></telecom>
  <address><!-- I 0..1 Address Address for the contact person --></address>
  <gender value="[code]"/><!-- 0..1 male | female | other | unknown -->
  <organization><!-- I 0..1 Reference(Organization) Organization that is associated with the contact --></organization>
  <period><!-- 0..1 Period The period during which this contact person or organization is valid to be contacted relating to this patient --></period>
 </contact>
 <communication>  <!-- 0..* A language which may be used to communicate with the patient about his or her health -->
  <language><!-- 1..1 CodeableConcept The language which can be used to communicate with the patient about his or her health --></language>
  <preferred value="[boolean]"/><!-- 0..1 Language preference indicator -->
 </communication>
 <generalPractitioner><!-- 0..* Reference(Organization|Practitioner|
   PractitionerRole) Patient's nominated primary care provider --></generalPractitioner>
 <managingOrganization><!-- 0..1 Reference(Organization) Organization that is the custodian of the patient record --></managingOrganization>
 <link>  <!-- 0..* Link to a Patient or RelatedPerson resource that concerns the same actual individual -->
  <other><!-- 1..1 Reference(Patient|RelatedPerson) The other patient or related person resource that the link refers to --></other>
  <type value="[code]"/><!-- 1..1 replaced-by | replaces | refer | seealso -->
 </link>
</Patient>

JSON Template

{doco
  "resourceType" : "Patient",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // An identifier for this patient
  "active" : <boolean>, // Whether this patient's record is in active use
  "name" : [{ HumanName }], // A name associated with the patient
  "telecom" : [{ ContactPoint }], // A contact detail for the individual
  "gender" : "<code>", // male | female | other | unknown
  "birthDate" : "<date>", // The date of birth for the individual
  // deceased[x]: Indicates if the individual is deceased or not. One of these 2:
  "deceasedBoolean" : <boolean>,
  "deceasedDateTime" : "<dateTime>",
  "address" : [{ Address }], // An address for the individual
  "maritalStatus" : { CodeableConcept }, // Marital (civil) status of a patient
  // multipleBirth[x]: Whether patient is part of a multiple birth. One of these 2:
  "multipleBirthBoolean" : <boolean>,
  "multipleBirthInteger" : <integer>,
  "photo" : [{ Attachment }], // Image of the patient
  "contact" : [{ // A contact party (e.g. guardian, partner, friend) for the patient
    "relationship" : [{ CodeableConcept }], // The kind of relationship
    "name" : { HumanName }, // I A name associated with the contact person
    "telecom" : [{ ContactPoint }], // I A contact detail for the person
    "address" : { Address }, // I Address for the contact person
    "gender" : "<code>", // male | female | other | unknown
    "organization" : { Reference(Organization) }, // I Organization that is associated with the contact
    "period" : { Period } // The period during which this contact person or organization is valid to be contacted relating to this patient
  }],
  "communication" : [{ // A language which may be used to communicate with the patient about his or her health
    "language" : { CodeableConcept }, // R!  The language which can be used to communicate with the patient about his or her health
    "preferred" : <boolean> // Language preference indicator
  }],
  "generalPractitioner" : [{ Reference(Organization|Practitioner|
   PractitionerRole) }], // Patient's nominated primary care provider
  "managingOrganization" : { Reference(Organization) }, // Organization that is the custodian of the patient record
  "link" : [{ // Link to a Patient or RelatedPerson resource that concerns the same actual individual
    "other" : { Reference(Patient|RelatedPerson) }, // R!  The other patient or related person resource that the link refers to
    "type" : "<code>" // R!  replaced-by | replaces | refer | seealso
  }]
}

Turtle Template

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


[ a fhir:Patient;
  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:identifier  ( [ Identifier ] ... ) ; # 0..* An identifier for this patient
  fhir:active [ boolean ] ; # 0..1 Whether this patient's record is in active use
  fhir:name  ( [ HumanName ] ... ) ; # 0..* A name associated with the patient
  fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* A contact detail for the individual
  fhir:gender [ code ] ; # 0..1 male | female | other | unknown
  fhir:birthDate [ date ] ; # 0..1 The date of birth for the individual
  # deceased[x] : 0..1 Indicates if the individual is deceased or not. One of these 2
    fhir:deceased [  a fhir:boolean ; boolean ]
    fhir:deceased [  a fhir:dateTime ; dateTime ]
  fhir:address  ( [ Address ] ... ) ; # 0..* An address for the individual
  fhir:maritalStatus [ CodeableConcept ] ; # 0..1 Marital (civil) status of a patient
  # multipleBirth[x] : 0..1 Whether patient is part of a multiple birth. One of these 2
    fhir:multipleBirth [  a fhir:boolean ; boolean ]
    fhir:multipleBirth [  a fhir:integer ; integer ]
  fhir:photo  ( [ Attachment ] ... ) ; # 0..* Image of the patient
  fhir:contact ( [ # 0..* A contact party (e.g. guardian, partner, friend) for the patient
    fhir:relationship  ( [ CodeableConcept ] ... ) ; # 0..* The kind of relationship
    fhir:name [ HumanName ] ; # 0..1 I A name associated with the contact person
    fhir:telecom  ( [ ContactPoint ] ... ) ; # 0..* I A contact detail for the person
    fhir:address [ Address ] ; # 0..1 I Address for the contact person
    fhir:gender [ code ] ; # 0..1 male | female | other | unknown
    fhir:organization [ Reference(Organization) ] ; # 0..1 I Organization that is associated with the contact
    fhir:period [ Period ] ; # 0..1 The period during which this contact person or organization is valid to be contacted relating to this patient
  ] ... ) ;
  fhir:communication ( [ # 0..* A language which may be used to communicate with the patient about his or her health
    fhir:language [ CodeableConcept ] ; # 1..1 The language which can be used to communicate with the patient about his or her health
    fhir:preferred [ boolean ] ; # 0..1 Language preference indicator
  ] ... ) ;
  fhir:generalPractitioner  ( [ Reference(Organization|Practitioner|PractitionerRole) ] ... ) ; # 0..* Patient's nominated primary care provider
  fhir:managingOrganization [ Reference(Organization) ] ; # 0..1 Organization that is the custodian of the patient record
  fhir:link ( [ # 0..* Link to a Patient or RelatedPerson resource that concerns the same actual individual
    fhir:other [ Reference(Patient|RelatedPerson) ] ; # 1..1 The other patient or related person resource that the link refers to
    fhir:type [ code ] ; # 1..1 replaced-by | replaces | refer | seealso
  ] ... ) ;
]

Changes since Release 4

Patient
Patient.communication.language
  • Change binding strength from preferred to required
  • Change value set from http://hl7.org/fhir/ValueSet/languages to http://hl7.org/fhir/ValueSet/all-languages|5.0.0-draft-final
  • Change max value set from http://hl7.org/fhir/ValueSet/all-languages to n/a

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 16 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)

 

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

PathValueSetTypeDocumentation
Patient.gender AdministrativeGender Required

The gender of a person used for administrative purposes.

Patient.maritalStatus MaritalStatusCodes Extensible

This value set defines the set of codes that can be used to indicate the marital status of a person.

Patient.contact.relationship PatientContactRelationship Extensible

The nature of the relationship between the patient and the contact person.

Patient.contact.gender AdministrativeGender Required

The gender of a person used for administrative purposes.

Patient.communication.language AllLanguages (a valid code from Tags for the Identification of Languages icon)Required

This value set includes all possible codes from BCP-47 (see http://tools.ietf.org/html/bcp47)

  Common Languages starter
Patient.link.type LinkType Required

The type of link between this Patient resource and another Patient/RelatedPerson resource.

UniqueKeyLevelLocationDescriptionExpression
img pat-1Rule Patient.contactSHALL at least contain a contact's details or a reference to an organizationname.exists() or telecom.exists() or address.exists() or organization.exists()

Notes:

  • multipleBirth can be either expressed as a Boolean (just indicating whether the patient is part of a multiple birth) or as an integer, indicating the actual birth order.
  • Patient records may only be in one of two statuses: in use (active=true) and not in use (active=false). A normal record is active, i.e. it is in use. Active is set to 'false' when a record is created as a duplicate or in error. A record does not need to be linked to be inactivated.
  • The link element is used to assert that two or more Patient resources are both about the same actual patient. See below for further discussion
  • There should be only one preferred language (Language.preference = true) per mode of expression.
  • The Contact for a Patient has an element organization, this is for use with guardians or business related contacts where just the organization is relevant.

A Patient record's Resource Id can never change. For this reason, the identifiers with which humans are concerned (often called MRN - Medical Record Number, or UR - Unit Record) should not be used for the resource's id, since MRN's may change, i.e. as a result of having duplicate records of the same patient. Instead they should be represented in the Patient.identifier list where they can be managed. This is also useful for the case of institutions that have acquired multiple numbers because of mergers of patient record systems over time.

Where there is a need to implement an automated MRN Identifier created for a patient record, this could be achieved by providing an identifier in the patient with an appropriate assigner, MRN Type and/or system but with no value assigned. Internal business rules can then detect this and replace/populate this identifier with 1 or more identifiers (as required).

There are two common approaches for resolving duplicate patient records: merging and linking. Linking duplicate patients is described in the Linking Patients section, or merging duplicate patients as described in the $merge operation page.

The link element is used to assert that patient resources refer to the same patient. This element is used to support the following scenarios where multiple patient records exist:

Managing Patient registration is a well-known difficult problem. Around 2% of registrations are in error, mostly duplicate records. Sometimes the duplicate record is caught fairly quickly and retired before much data is accumulated. In other cases, substantial amounts of data may accumulate.
There are two common approaches for resolving duplicate patient records: merging and linking. Merging duplicate patients is described in the $merge operation page.
Linking duplicate records can be accomplished by using a link of type 'replaced-by' where the record containing such a link is marked as a duplicate and the link points forward to a record that should be used instead. Note that the record pointed to may in its turn have been identified as created in error and forward to yet another Patient resource. Records that replace another record may use a link type of 'replaces' pointing to the old record.

A Patient record may be present in a system that acts as a Patient Index: it maintains a (summary of) patient data and a list of one or more servers that are known to hold a more comprehensive and/or authoritative record of the same patient. The link type 'refer' is used to denote such a link. Note that linked records may contain contradictory information. The record referred to does not point back to the referring record.

In a distributed architecture, multiple systems keep separate patient records concerning the same patient. These records are not considered duplicates, but contain a distributed, potentially overlapping view of the patient's data. Each such record may have its own focus or maintaining organization and there need not be a sense of one record being more complete or more authoritative than another. In such cases, links of type 'see also' can be used to point to other patient records. It is not a requirement that such links are bilateral.

The Person resource on the surface appears to be very similar to the Patient resource, and the usage for it is very similar to using the Patient.Link capability.
The intention of the Person resource is to be able to link instances of resources together that are believed to be the same individual. This includes across resource types, such as RelatedPerson, Practitioner, Patient and even other Person resources.
The Patient Link however is only intended to be used for Patient resources.

The primary use case for the Person resource is to be able to support person registries that do not necessarily have a healthcare context, and are able to identify and quantify confidence levels that this is the same person.
This could include consumer portals where the maintainer of the person information is the actual person themselves.
A system could use the Person entry to cross check changes to information applied to one part of a record to values in another system; e.g., when moving, a consumer updates his contact numbers and address in his person record, and then a Patient Administration system is able to see that this data is changed and prompt the organization to follow up with the patient that was linked to the person record if they want their details updated, or if they no longer need services and they should be cancelled, as they've moved from the area.

The Linkage resource and the Patient.link property conceptually perform similar functions in FHIR, both provide an assertion of linkages between multiple resource instances that are referring to the same underlying individual.
When a Patient resource is linked/merged then it needs to have an internal indication that there is another patient resource that should be considered when referencing other records, which is achieved using the patient.link property.
Not detecting/checking for a potential linkage could mean that related clinical records are not discovered, potentially impacting patient safety. (which is why using the Linkage resource is not appropriate, as its use in this manner would force the use of either another query to potentially locate other patient resources to consider, or use _revinclude)

The contact element on the Patient resource should be used for storing the details of people to contact. This information always travels with the Patient resource, and cannot be used as the target of a reference. Where related people need to be referenced by other resources (e.g. CarePlan.participant, Encounter.participant, DocumentReference.author, Appointment.participant), the RelatedPerson resource must be used.

It is not expected that these records will be used for recording the primary care provider; this information should be stored in the Patient.generalPractitioner field.

Many systems and organizations only provide for a single attribute that aspires to represent all aspects of a patient's gender and sex with a single value. However, there are many considerations around sex and gender documentation and interoperability. Listed below are various social and biological attributes that are relevant in the healthcare setting, as well as information on how each can be communicated. Each of these attributes may be useful to address different use cases, and it is up to the implementer to identify which attribute or combination of attributes are most appropriate.

  • Administrative Gender - in order to interoperate with systems that use a single generic property, the basic Patient.gender property represents an administrative gender: the gender that the patient is considered to have for administration and record keeping purposes. This property is often used as an input to patient matching algorithms. Systems should not infer any specific clinical meaning from Patient.gender without pre-coordination with exchange partners.
  • Gender Identity - a gender the patient has indicated they consider themselves to be. The gender identity can influence how the patient prefers to be addressed by care providers and other individuals. The standard genderIdentity extension may be used to communicate this property. When determining how to address the patient, the pronouns extension may also be applicable.
  • Sex Parameter for Clinical Use (SPCU) - a parameter that provides guidance on how a recipient should apply settings or reference ranges that are derived from observable information such as an organ inventory, recent hormone lab tests, genetic testing, menstrual status, obstetric history, etc.. This property is intended for use in clinical decision making, and indicates that treatment or diagnostic tests should consider best practices associated with the relevant reference population. The standard sexParameterForClinicalUse extension may be used to communicate this property.
  • Clinical Observations about sex characteristics - a testable observation about a biological property of the patient. This could include karyotypic sex, genetic sex, chromosomal sex, gonadal sex, ductal sex, hormone levels, or various other phenotypic attributes. Clinical observations about sex characteristics should be represented using Observation, qualified with the appropriate clinical codes from LOINC, SNOMED, or other relevant clinical terminologies. These observations may serve as supporting information for the Sex Parameters for Clinical Use categorization.
  • Recorded Sex or Gender (RSG) - recorded sex or gender information includes the various sex and gender concepts that are often used in existing systems but are known NOT to represent a gender identity, sex parameter for clinical use, or attributes related to sexuality, such as sexual orientation, sexual activity, or sexual attraction. Examples of recorded sex or gender concepts include administrative gender, administrative sex, legal sex, and sex assigned at birth. When exchanging these concepts, refer to the guidance in the Gender Harmony Implementation Guide. icon
  • Legal Sex - a sex value documented on a legal document, such as a passport, driver's license, birth certificate, or other document. Regional and national entities often categorize citizens using a single legal sex value. The legal sex of a patient can vary from region to region and country to country. A single patient may have multiple legal sex values at the same time in different jurisdictions, or even on different legal documents within a single jurisdiction. In cases where the Patient.gender administrative property is not sufficient to communicate legal sex, refer to the guidance in the Gender Harmony Implementation Guide icon.
  • Sex assigned at Birth - the sex assigned at birth is a sex or gender value assigned to a patient at birth. This value is often documented on the birth registration. Some jurisdictions allow variations such as not yet determined, unknown, or undifferentiated, while others do not. Some jurisdictions also allow birth registration information to be updated. The sex assigned at birth may often be a poor approximation of the patient's current sex for clinical use, especially for adult patients. See sexParameterForClinicalUse as a way to communicate a patient's current sex for clinical use. Refer to the guidance in the Gender Harmony Implementation Guide icon for options to exchange this concept.

For veterinary use, the animal extension also includes the genderStatus which indicates sterility information.

There are several ways to represent the relationship between a mother and a child. This is due to the when it is recorded and the purpose for which it is recorded:

  • To express the family relationship and legal responsibility thereof for administrative purposes: use the Patient/RelatedPerson structure.
    This structure is consistent over time.
  • To relate the encounters of a mother and her baby in a maternity encounter, for administrative and billing purposes: use the encounter.partof property
  • To collect information about the patient's relatives that might be relevant to the patient's medical condition: use the FamilyMemberHistory resource

During a maternity encounter, the Patient and Encounter resources for the mother will be present. After the child is born, new Patient, Encounter and RelatedPerson (for the mother) records will be created. The Child's encounter should reference the Mother's encounter using the partOf property.
The Patient/RelatedPerson structure should also be created for ongoing usage, as shown in this example:

<Patient>
	<id value="child"/>
	<!-- The details of the child -->
</Patient>
<RelatedPerson>
	<id value="rp-mom"/>
	<patient>
		<reference value="Patient/child"/>
	</patient>
</RelatedPerson>
<Patient>
	<id value="pat-mom"/>
	<!-- The details of the mom -->
	<link>
		<other value="rp-mom"/>
		<type value="see-also"/>
	</link>
</Patient>
<Encounter>
	<id value="mom-enc"/>
	<status value="in-progress"/>
	<class value="inpatient"/>
	<patient>
		<reference value="Patient/mom"/>
	</patient>
</Encounter>
<Encounter>
	<id value="child-enc"/>
	<status value="in-progress"/>
	<class value="inpatient"/>
	<patient>
		<reference value="Patient/child"/>
	</patient>
	<partOf>
		<reference value="Encounter/mom-enc"/>
	</partOf>
</Encounter>

This specification does not specify merge functionality: if multiple patient records are found to be duplicates, they can be linked together, as described above. These links merely express the relationship between records, and in the case of a replacement link, indicate a "master" record. This specification does not mandate that FHIR servers migrate information between such records on finding such a link. Note:

  • Health information administrators may call the process "merging", but it is often implemented as "linking" at the record level
  • Servers are allowed to implement merging/record migration even though it is not mandated.

Note to Implementers: We are seeking input from the implementer community on what effect linking/merging/unlinking should have on other functionality such as the GET operation, searching, reverse includes, etc.;
How should an unlink behavior be done?
How will the patient compartment interact with the merge?
This functionality and related behaviors is subject to ongoing experimentation and implementation testing, with a definition to be proposed in a future version of this specification.

Feedback here icon.

A Master Patient Index (MPI icon) is a service used to manage patient identification in a context where multiple patient databases exist. Healthcare applications and middleware use the MPI to match patients between the databases, and as new patient details are encountered. MPIs are highly specialized applications, often tailored extensively to the institution's particular mix of patients. MPIs can also be run on a regional and national basis.

To ask an MPI to match a patient, clients call the patient $match operation, which processes a parameters resource containing a complete or fragment of a patient resource, along with some other control parameters.
This provided patient resource does not need to pass full validation (mandatory fields, or invariants) as the resource will not be stored, it does however need to be a parsable instance.
The MPI can then use the properties of the resource as MPI inputs, and process them using an internal MPI algorithm of some kind to determine the most appropriate matches in the patient set. It does not have to use all the properties provided, and may ignore others provided quietly.
A specific profile (with the required fields/invariants) can be used to define what parameters the MPI algorithm requires.

  POST [base]/Patient/$match
  [some headers including content-type xml or json]
  [parameters body with patient resource inside]

The response from an MPI $match operation is a set of patient records, ordered from most likely to least likely. If there are not patient matches, the MPI SHALL return an empty search set with no error, but may include an operation outcome with further advice. All patient records should have a score from 0 to 1, where 1 is the most certain match, along with an extension "match-grade" that indicates the MPI's position on the match quality:

  <entry> 
    <resource>
      <Patient>
        <!-- patient details -->
      </Patient>
    </resource>
    <search>
      <extension url="http://hl7.org/fhir/StructureDefinition/match-grade">
        <valueCode value="probable"/>
      </extension>
      <score value="0.80"/>
    </search>
  </entry> 

The match-grade extension has one of the following codes:

certainThis record meets the matching criteria to be automatically considered as a full match.
probableThis record is a close match, but not a certain match. Additional review (e.g. by a human) may be required before using this as a match.
possibleThis record may be a matching one. Additional review (e.g. by a human) SHOULD be performed before using this as a match.
certainly-notThis record is known not to be a match. Note that usually non-matching records are not returned, but in some cases records previously or likely considered as a match may specifically be negated by the matching engine.

The purpose of using an MPI search versus a regular search is that the MPI search is really intended to target and find a specific single patient for recording information about reducing errors through incorrectly selecting the wrong patient. Often MPIs won't return data if there is insufficient search parameter data, such as a partial surname.
This compares to a regular search which can be used for finding lists of patients, such as to locate a group of patients that share a property in common, such as live in a specific location, or fit within an age range for performing population analysis.

A formal definition for the MPI $match operation is published.

Veterinary care is very much within the scope of FHIR, and the Patient resource can be used to communicate information about animal patients. To support this, there is a standard patient-animal extension which can be used for recording details about species, breed, and gender status. This extension is not intended to cover all relevant properties for veterinary care, and the use of additional domain-relevant extensions is expected for areas such as laboratory, zoological and livestock care.

The veterinary client ("owner") is represented using the RelatedPerson resource.

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
activetokenWhether the patient record is activePatient.active
addressstringA server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or textPatient.address4 Resources
address-citystringA city specified in an addressPatient.address.city4 Resources
address-countrystringA country specified in an addressPatient.address.country4 Resources
address-postalcodestringA postalCode specified in an addressPatient.address.postalCode4 Resources
address-statestringA state specified in an addressPatient.address.state4 Resources
address-usetokenA use code specified in an addressPatient.address.use4 Resources
birthdatedateThe patient's date of birthPatient.birthDate3 Resources
death-datedateThe date of death has been provided and satisfies this search value(Patient.deceased.ofType(dateTime))
deceasedtokenThis patient has been marked as deceased, or has a death date enteredPatient.deceased.exists() and Patient.deceased != false
emailtokenA value in an email contactPatient.telecom.where(system='email')5 Resources
familystringA portion of the family name of the patientPatient.name.family2 Resources
gendertokenGender of the patientPatient.gender4 Resources
general-practitionerreferencePatient's nominated general practitioner, not the organization that manages the recordPatient.generalPractitioner
(Practitioner, Organization, PractitionerRole)
givenstringA portion of the given name of the patientPatient.name.given2 Resources
identifiertokenA patient identifierPatient.identifier
languagetokenLanguage code (irrespective of use value)Patient.communication.language
linkreferenceAll patients/related persons linked to the given patientPatient.link.other
(Patient, RelatedPerson)
namestringA server defined search that may match any of the string fields in the HumanName, including family, given, prefix, suffix, and/or textPatient.name
organizationreferenceThe organization that is the custodian of the patient recordPatient.managingOrganization
(Organization)
phonetokenA value in a phone contactPatient.telecom.where(system='phone')5 Resources
phoneticstringA portion of either family or given name using some kind of phonetic matching algorithmPatient.name4 Resources
telecomtokenThe value in any kind of telecom details of the patientPatient.telecom5 Resources