Argonaut Data Query Implementation Guide Version 1.0.0

This page is part of the Argonaut Data Query Implementation Guide (v1.0.0: Release) based on FHIR R2. This is the current published version. For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-argo-patient

This profile sets minimum expectations for the Patient resource to record, search and fetch basic demographics and other administrative information about an individual patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

The following are example usage scenarios for the DAF Patient profile:

  • Query for a Patient demographic information using Medical Record Number (MRN), which is a type of identifier. The MRN is identifiable by identifier.system and may be location specific.
  • Query for a Patient demographic information using first name, last name etc.
  • Query for Patients based on race, ethnicity, gender etc.
  • Query for Patients less than 5 years of age
  • Query for Patients between ages of 25 and 50
Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Patient must have:

  1. a patient identifier (e.g. MRN)
  2. a patient name
  3. a gender

2015 Edition Certification Requirements (Must Support).

In addition, based upon the 2015 Edition Certification Requirements, the following data-elements must be supported.

’'’If the data is present, Patient shall include:’’’

  1. a birth date
  2. a communication language
  3. a race
  4. an ethnicity
  5. a birth sex

Profile specific implementation guidance:

  • none

Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://fhir.org/guides/argonaut/StructureDefinition/argo-patient

This profile builds on Patient.

This profile was published on Tue Oct 18 00:00:00 AEDT 2016 as a draft by Argonaut Project.

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

Complete Summary of the Mandatory Requirements

  1. One or more medical record numbers in Patient.identifier
    • each Patient.identifier must have:
      • an identifier.system
      • an identifier.value that is unique within the system.
  2. One or more names in Patient.name
    • each Patient.name must have:
      • a name.family
      • a name.given
  3. One administrative gender in Patient.gender

Summary of the Must Support Requirements

Additionally the following data-elements must be supported. See the Argonaut definition of Must Support.

  1. A date of birth in Patient.birthDate
  2. One or more languages spoken in Patient.communication.language which has an extensible binding to:
  3. One or more race codes in Patient.extension= US Core Race Extension which:
  4. One or more ethnicity codes in Patient.extension=US Core ethnicity Extension which:
  5. One Birth Sex in Patient.extension= US Core Patient Birth Sex which has an required binding to:
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*Argonaut Patient Profile
... 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: IETF BCP-47 (required)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... argo-race S0..1(Complex)Extension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-race
... argo-ethnicity S0..1(Complex)Extension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-ethnicity
... argo-birthsex S0..1codeExtension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-birthsex
Binding: USRealm Birth Sex Value Set (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*IdentifierAn identifier for this patient
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!Σ0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system S1..1uriThe namespace for the identifier
Example General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value S1..1stringThe value that is unique within the system.
Example General': 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!Σ0..1booleanWhether this patient's record is in active use
... name S1..*HumanNameA name associated with the patient
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!Σ0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text Σ0..1stringText representation of the full name
.... family S1..*stringFamily name (often called 'Surname')
.... given S1..*stringGiven names (not always 'first'). Includes middle names
.... prefix Σ0..*stringParts that come before the name
.... suffix Σ0..*stringParts that come after the name
.... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the individual
... gender S1..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate S0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1boolean, dateTimeIndicates if the individual is deceased or not
... address Σ0..*AddressAddresses for the individual
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (required)
... multipleBirth[x] 0..1boolean, integerWhether patient is part of a multiple birth
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: PatientContactRelationship (extensible)
.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
.... organization I0..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 S0..*BackboneElementA list of Languages which may be used to communicate with the patient about his or her health
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: All Languages (required)
.... preferred 0..1booleanLanguage preference indicator
... careProvider 0..*Reference(Organization), Reference(Practitioner)Patient's nominated primary care provider
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!0..*BackboneElementLink to another patient resource that concerns the same actual person
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... other ?!1..1Reference(Patient)The other patient resource that the link refers to
.... type ?!1..1codereplace | refer | seealso - type of link
Binding: LinkType (required)

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One or more medical record numbers in Patient.identifier
    • each Patient.identifier must have:
      • an identifier.system
      • an identifier.value that is unique within the system.
  2. One or more names in Patient.name
    • each Patient.name must have:
      • a name.family
      • a name.given
  3. One administrative gender in Patient.gender

Summary of the Must Support Requirements

Additionally the following data-elements must be supported. See the Argonaut definition of Must Support.

  1. A date of birth in Patient.birthDate
  2. One or more languages spoken in Patient.communication.language which has an extensible binding to:
  3. One or more race codes in Patient.extension= US Core Race Extension which:
  4. One or more ethnicity codes in Patient.extension=US Core ethnicity Extension which:
  5. One Birth Sex in Patient.extension= US Core Patient Birth Sex which has an required binding to:

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..*Argonaut Patient Profile
... 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: IETF BCP-47 (required)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... argo-race S0..1(Complex)Extension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-race
... argo-ethnicity S0..1(Complex)Extension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-ethnicity
... argo-birthsex S0..1codeExtension
URL: http://fhir.org/guides/argonaut/StructureDefinition/argo-birthsex
Binding: USRealm Birth Sex Value Set (required)
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S1..*IdentifierAn identifier for this patient
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!Σ0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system S1..1uriThe namespace for the identifier
Example General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value S1..1stringThe value that is unique within the system.
Example General': 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
... active ?!Σ0..1booleanWhether this patient's record is in active use
... name S1..*HumanNameA name associated with the patient
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... use ?!Σ0..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required)
.... text Σ0..1stringText representation of the full name
.... family S1..*stringFamily name (often called 'Surname')
.... given S1..*stringGiven names (not always 'first'). Includes middle names
.... prefix Σ0..*stringParts that come before the name
.... suffix Σ0..*stringParts that come after the name
.... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the individual
... gender S1..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
... birthDate S0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1boolean, dateTimeIndicates if the individual is deceased or not
... address Σ0..*AddressAddresses for the individual
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: Marital Status Codes (required)
... multipleBirth[x] 0..1boolean, integerWhether patient is part of a multiple birth
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: PatientContactRelationship (extensible)
.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
.... organization I0..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 S0..*BackboneElementA list of Languages which may be used to communicate with the patient about his or her health
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... language S1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: All Languages (required)
.... preferred 0..1booleanLanguage preference indicator
... careProvider 0..*Reference(Organization), Reference(Practitioner)Patient's nominated primary care provider
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!0..*BackboneElementLink to another patient resource that concerns the same actual person
.... id 0..1idxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... other ?!1..1Reference(Patient)The other patient resource that the link refers to
.... type ?!1..1codereplace | refer | seealso - type of link
Binding: LinkType (required)

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations for this profile. See the Conformance requirements for the Argonaut Data Query implementation guide server for a complete list of supported RESTful operations and search parameters for this IG.


GET [base]/Patient/[id]

Example:

GET https://fhir-open-api.smarthealthit.org/Patient/1032702

Support: Mandatory

Implementation Notes: Fetches a single Patient

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

GET [base]/Patient/identifier=[system]|[code]

Example:

[GET https://fhir-open-api.smarthealthit.org/Patient?identifier=http://hospital.smarthealthit.org 1032702](https://fhir-open-api.smarthealthit.org/Patient?identifier=http://hospital.smarthealthit.org 1032702)

Support: Mandatory

Implementation Notes: Fetches a single Patient

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

GET [base]/Patient?name=[string]&birthdate=[date]

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?name=Shaw&birthdate=2007-03-20

Support: Mandatory

Implementation Notes: Search based on at least 2 patient elements -text name (how to search by string) and birthdate (how to search by date)

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

GET [base]/Patient?name=[string]&gender=[code]

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?name=Shaw&gender=female

Support: Mandatory

Implementation Notes: Search based on at least 2 patient elements -text name (how to search by string) and gender (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

GET [base]/Patient?family=[string]&gender=[code]

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?name=Shaw&gender=female

Support: SHOULD support Patient search by family name and gender

Implementation Notes: Search based on at least 2 patient elements -text family name (how to search by string) and gender (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource

GET [base]/Patient?given=[string]&gender=[code]

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/Patient?given=amy&gender=female

Support: SHOULD support Patient search by given name and gender

Implementation Notes: Search based on at least 2 patient elements -text given name (how to search by string) and gender (how to search by token)

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope
  • (Status 404): unknown resource
  • (Status 410): deleted resource