Profile: Patient (Client Registry)

This Profile is created and maintained external to the LRA project and is provided here as an aid for implementers of the LRA in finding the base profile definitions. The reader should always verify the profile on the linked source page.

Overview

The Patient Resource (Client Registry Patient Profile) contains demographics and other administrative information about an individual receiving care or other health-related services. The data in the Resource covers the "who" information about the patient: its attributes are focused on demographic information necessary to support administrative processes.

Please refer to the LRA Configuration page for information on authentication, authorization, environment, and endpoint details.

Important Links

BC Client Registry FHIR IG

BC Client Registry Simplifier Project Page

Example Usage Scenarios

The following are example query usage scenarios for this profile:

Profile Content

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
aboriginalidentitygroupC0..1Extension
aboriginalidentityindicatorC0..1Extension
birthsexC0..1Extension
ethnicityC0..1Extension
patientEffectiveDatesS C0..1Extension(Period)
modifierExtension?! C0..*Extension
id0..1string
sourceIDS C0..1Extension(Complex)
idStatusS C0..1Extension(code)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
versionCodeC0..1Extension
useΣ ?!0..1codeBinding
typeΣ1..1CodeableConceptBindingFixed Value
systemΣ1..1uri
valueΣ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
activeΣ ?!0..1boolean
id0..1string
sourceIDS C0..1Extension(Complex)
useΣ ?!0..1codeBinding
textΣ0..1string
familyΣ0..1string
givenΣ0..*string
prefixΣ0..*string
suffixΣ0..*string
periodΣ C0..1Period
id0..1string
sourceIDS C0..1Extension(Complex)
systemΣ C1..1codeBinding
valueΣ1..1string
useΣ ?!0..1codeBinding
rankΣ0..1positiveInt
periodΣ C0..1Period
id0..1string
genderEffectiveDatesS C0..1Extension(Period)
sourceIDS C0..1Extension(Complex)
historyS C0..*Extension(Complex)
value0..1System.String
id0..1string
birthDateEffectiveDatesC0..1Extension(Period)
sourceIDS C0..1Extension(Complex)
historyS C0..*Extension(Complex)
value0..1System.Date
id0..1string
deathDateEffectiveDatesS C0..1Extension(Period)
sourceIDS C0..1Extension(Complex)
deathDateHistoryS C0..*Extension(Complex)
verifiedDeathFlagS C0..1Extension(Complex)
value0..1System.DateTime
id0..1string
preferredC0..1Extension(boolean)
noFixedAddressC0..1Extension
sourceIDS C0..1Extension(Complex)
validationStatusS C0..1Extension(code)
useΣ ?!0..1codeBinding
typeΣ0..1codeBinding
textΣ0..1string
lineΣ0..*string
cityΣ0..1string
districtΣ0..1string
stateΣ0..1string
postalCodeΣ0..1string
countryΣ0..1string
periodΣ C0..1Period
maritalStatus0..1CodeableConceptBinding
id0..1string
multipleBirthEffectiveDatesS C0..1Extension(Period)
sourceIDS C0..1Extension(Complex)
historyS C0..*Extension(Complex)
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoC0..*Attachment
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomC0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationC0..1Reference(Organization)
periodC0..1Period
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerC0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ C0..1Reference(Organization)
id0..1string
mergeStatusS C0..*Extension(code)
modifierExtensionΣ ?! C0..*Extension
otherΣ C1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

 

LRA Interaction Support

  1. Search

  2. Mandatory Search Parameters

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

    • SHALL support searching patient by an identifier such as a PHN using the identifier search parameter:

      GET [base]/Patient?identifier={system|}[code]

      Example query with values:

      GET [base]/Patient?identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-bc-patient-healthcare-id|9872728523

      Example response to above query: Example Response - Searching Patient by an Identifier

    • SHALL support searching using a combination of family, given, and at LEAST one of the following:
      • birthdate (best search)
      • address-line
      • address-postalcode
      • phone
    • Examples of this form of query with values (ensure URL encoding has been done):

      • GET [base]/Patient?family=Zhang&given=Robby&birthdate=2007-07-12

      • GET [base]/Patient?family=Zhang&given=Robby&address-line=4269%20Road

      • GET [base]/Patient?family=Zhang&given=Robby&address-postalcode=V3R%201N9

      • GET [base]/Patient?family=Zhang&given=Robby&phone=239-788-1073

      An example demonstrating this form of query:

      GET [base]/Patient?birthdate=1998-06-03&family=Phairing&given=Hoston

      Example response to above query: Example Response - Searching Patient by Name and BirthDate

    Optional Search Parameters

    1. SHOULD support searching using the combination of family, given, (birthdate, address-line, address-postalcode, phone) AND gender search parameters:
      • Example: GET [base]/Patient?family=Longfellow&given=Max&birthdate=1946-08-16&gender=male

    2. SHOULD support searching using the combination of family, given, (birthdate, address-line, address-postalcode, phone) AND address-city search parameters:
      • Example: GET [base]/Patient?family=Longfellow&given=Max&birthdate=1946-08-16&address-city=Sandon

    3. SHOULD support searching using the combination of family, given, (birthdate, address-line, address-postalcode, phone) AND address-country search parameters.
      • Example: GET [base]/Patient?family=Longfellow&given=Max&birthdate=1946-08-16&address-country=CA

    4. SHOULD support searching using the combination of family, given, (birthdate, address-line, address-postalcode, phone) AND email search parameters:
      • Example:GET [base]/Patient?family=Longfellow&given=Max&birthdate=1946-08-16&email=maxlongfellow@lra.com

    Search using $match Operation

    Search by $match FHIR Operation is a standard operation defined in the base HL7 FHIR specification. Please refer to Operation $match on Patient in the HL7 FHIR base specification.

    Currently, in order to use $match operation, the minimum search parameters still apply.

    Query Structure Example: POST [base]/Patient/$match

    Example Request: Example Request - $match Operation

  3. Create

  4. LRA Strategy: Use RESTful POST for Creating Patients.

    Query Structure Example: POST [base]/Patient/

    Request Body:

  5. Update

  6. LRA Strategy: Use RESTful PUT for Updating Patients.

    Query Structure Example: PUT [base]/Patient/[logical-id]

    Request Body:

  7. Merge

  8. LRA uses the BC Client Registry Merge Patient operation to support patient merge processing. The implementation aligns with the BC Client Registry FHIR Implementation Guide operation definition for Merge Patient:

    BC Client Registry Merge Patient OperationDefinition

    The operation is invoked as:

    POST [base]/Patient/$merge

    The merge operation is used to request that two Patient resources be merged. One Patient is identified as the source patient or non-survivor, and the other is identified as the target patient or survivor. Data from the source Patient is merged into the target Patient. The operation supports identifying the source and target Patients by direct Patient reference and/or by identifier:

    • source-patient
    • source-patient-identifier
    • target-patient
    • target-patient-identifier

    Where identifiers are provided, Client Registry is responsible for resolving those identifiers to the applicable Patient records. The request is rejected if the supplied identifiers do not resolve to a single Patient record. The operation may also include a result-patient parameter to indicate the expected updated target Patient. When provided, the result-patient must reference the source Patient using Patient.link.

    After a successful merge, the source Patient is linked to the target Patient using Patient.link with link.type = replaced-by. The target Patient is linked back to the source Patient using Patient.link with link.type = replaces. The operation response is returned as a Parameters resource and may include the input parameters, an OperationOutcome, the resulting merged Patient or Patient reference, and optionally a Task resource if additional processing is required.