Encounter

Concept

An encounter is any interaction, regardless of the situation, between a patient and the healthcare provider, in which the healthcare provider has primary responsibility for diagnosing, evaluating and treating the patient’s condition and informing the patient. These can be visits, appointments or non face-to-face interactions.

Encounters can be visits to the general practitioner or other practices, home visits, admissions (in hospitals, nursing homes or care homes, psychiatric institutions or convalescent homes) or other relevant encounters. This includes past and future encounters.

Purpose

Encounters can be recorded to provide insight on the interactions that have taken place between the patient and healthcare professional and in which context these took place.

In NCare the main purpose is to register to which departments a patient is or has been registered.

Profiles

zib-encounter

Encounters as defined by the Dutch Health and Care Information models (Dutch: Zorginformatiebouwsteen or ZIB) version 3.1.

The Encounter resource in NCare is exchanged according to the FHIR HCIM Encounter Profile

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textI0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
statusΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
status1..1codeBinding
periodI1..1Period
classΣ1..1CodingBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
class1..1CodingBinding
periodI1..1Period
typeΣ0..*CodeableConcept
priority0..1CodeableConcept
subjectΣ I1..1Reference(http://fhir.nl/fhir/StructureDefinition/nl-core-patient)
episodeOfCareΣ I0..*Reference(http://fhir.nl/fhir/StructureDefinition/nl-core-episodeofcare)
incomingReferralI0..*Reference(http://hl7.org/fhir/StructureDefinition/ReferralRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
healthProfessionalRoleΣ0..*CodingBinding
textΣ0..1string
periodI0..1Period
id0..1string
practitionerRoleI0..1Extension
referenceΣ I0..1string
identifierΣ0..1Identifier
displayΣ0..1string
appointmentΣ I0..1Reference(http://hl7.org/fhir/StructureDefinition/Appointment)
id0..1string
extensionI0..*Extension
startΣ I1..1dateTime
endΣ I0..1dateTime
lengthI0..1Duration
id0..1string
extensionI0..*Extension
codingΣ0..*Coding
textΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
conditionI1..1Reference(http://nictiz.nl/fhir/StructureDefinition/zib-Procedure | http://nictiz.nl/fhir/StructureDefinition/zib-Problem)
role0..1CodeableConceptBinding
rank0..1positiveInt
accountI0..*Reference(http://hl7.org/fhir/StructureDefinition/Account)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
preAdmissionIdentifier0..1Identifier
originI0..1Reference(http://hl7.org/fhir/StructureDefinition/Location)
admitSource0..1CodeableConceptBinding
reAdmission0..1CodeableConcept
dietPreference0..*CodeableConcept
specialCourtesy0..*CodeableConceptBinding
specialArrangement0..*CodeableConceptBinding
destinationI0..1Reference(http://hl7.org/fhir/StructureDefinition/Location)
dischargeDisposition0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
locationI1..1Reference(http://hl7.org/fhir/StructureDefinition/Location)
status0..1codeBinding
periodI0..1Period
serviceProviderI0..1Reference(http://fhir.nl/fhir/StructureDefinition/nl-core-organization)
partOfI0..1Reference(http://hl7.org/fhir/StructureDefinition/Encounter)

Custom rules & extensions

Secondary location extension

To specify a location object of an encounter to be a secondary location (eg. a location for daytime activities), you can add the extension http://ncare.nl/fhir/StructureDefinition/encounter-location-issecondary to a location and set it's value to true.

Active location

We speak of an 'active location' when the location's property period.start is in the past and period.end is empty or in the future

Only one active primary location

In NCare a patient can only have one active primary location. If you update or create an encounter with a new active location and the patient already has an active location, the current active location will be set to inactive. The period.start of the new location will be used as the period end of the other location.

System properties

Some of the properties of the zib-Encounter profile are automatically filled by NCare and can not be set in an update or create. When these properties are specified in an UPDATE or CREATE command, FHIR Server for NCare simply ignores them.

The system properties are:

  • status: this property is determined by the locations:
    • in-progress -> there is an active location
    • planned -> there are no active locations, but there is one with a start date in the future
    • finished -> there are only inactive locations with an end date in the past
  • class: this will only be ActCode "OTH" with description: "Other: afdeling/kamer plaatsingen"
  • period: this is determined by setting the start to the earliest location.period.start and the end to the highest value of location.period.end
  • serviceProvider: this is always the healthcare organization where this patient's record belongs to.
Ignored properties

Although the complete zib-Encounter profile is accepted by FHIR Server for NCare, we only store the patient data that is needed for the NCare application. The properties we don't store can therefore not be returned when the resource is retrieved with a get of course.

The properties of zib-Encounter that we ignore are:

  • statusHistory
  • classHistory
  • type
  • priority
  • episodeOfCare
  • incomingReferral
  • participant
  • appointment
  • length
  • reason
  • diagnosis
  • account
  • hospitalization

REST API

API Supported Comment
read yes
vread no if a version is specified, we ignore it, the latest version is always returned
update yes
update with optimistic locking yes
update (conditional) yes
patch yes Support for JSON Patch only. We have included a workaround to use JSON Patch in a bundle in this PR.
patch (conditional) no
delete no A hard or soft delete for an encounter is not supported.
delete (conditional) no
history no
create yes Support both POST/PUT
create (conditional) yes
search patial See Overview of FHIR Search.
chained search no chained searches are not supported atm
reverse chained search no chained searches are not supported atm
batch yes
transaction no
paging partial self and next are supported
intermediaries no

Example

ncare | ClientLocation.30030029 - SIMPLIFIER.NET

<Encounter xmlns="http://hl7.org/fhir">
    <id value="ClientLocation.30030029" />
    <meta>
        <versionId value="1" />
        <lastUpdated value="2021-08-26T12:33:30.200222+00:00" />
    </meta>
    <status value="in-progress" />
    <class>
        <system value="http://hl7.org/fhir/v3/ActCode" />
        <code value="OTH" />
        <display value="Other: afdeling/kamer plaatsingen" />
    </class>
    <subject>
        <reference value="Patient/30030029" />
        <display value="van de Steeg," />
    </subject>
    <period>
        <start value="2021-07-25T00:00:00+00:00" />
        <end value="2021-08-04T00:00:00+00:00" />
    </period>
    <location>
        <extension url="http://ncare.nl/fhir/StructureDefinition/encounter-location-issecondary">
            <valueBoolean value="false" />
        </extension>
        <location>
            <reference value="Location/OrganizationalSubunit.13544" />
            <display value="WZC Rosagaerde" />
        </location>
        <status value="completed" />
        <period>
            <start value="2021-07-25T00:00:00+00:00" />
            <end value="2021-08-03T00:00:00+00:00" />
        </period>
    </location>
    <location>
        <extension url="http://ncare.nl/fhir/StructureDefinition/encounter-location-issecondary">
            <valueBoolean value="false" />
        </extension>
        <location>
            <reference value="Location/OrganizationalSubunit.13551" />
            <display value="WZC Belinda" />
        </location>
        <status value="completed" />
        <period>
            <start value="2021-08-03T00:00:00+00:00" />
            <end value="2021-08-04T00:00:00+00:00" />
        </period>
    </location>
    <location>
        <extension url="http://ncare.nl/fhir/StructureDefinition/encounter-location-issecondary">
            <valueBoolean value="false" />
        </extension>
        <location>
            <reference value="Location/OrganizationalSubunit.13544" />
            <display value="WZC Rosagaerde" />
        </location>
        <status value="active" />
        <period>
            <start value="2021-08-04T00:00:00+00:00" />
        </period>
    </location>
    <serviceProvider>
        <reference value="Organization/Organization.48202" />
        <display value="Huize NControl" />
    </serviceProvider>
</Encounter>