---
title: "encounter"
description: "The US Core Encounter Profile inherits from the FHIR [Encounter](https://hl7.org/fhir/R4/encounter.html) resource; refer to it for scope and usage definitions."
---

The US Core Encounter Profile inherits from the FHIR [Encounter](https://hl7.org/fhir/R4/encounter.html) resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the Encounter resource to record, search, and fetch basic encounter information for an individual patient. It specifies which core elements, extensions, vocabularies, and value sets **SHALL** be present and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption.

## Source

| Model | Leg | Role |
|---|---|---|
| `us-core-encounter` | FHIR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Encounter.id | — |
| `created_at` | `timestamptz` | no | Row creation timestamp. | — |
| `updated_at` | `timestamptz` | no | Row update timestamp; maintained by the application. | — |
| `created_by` | `text` | no | Actor who created the row. | — |
| `updated_by` | `text` | no | Actor who last updated the row. | — |
| `interpreter_required`<br />`interpreter_required_code`<br />`interpreter_required_system`<br />`interpreter_required_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Whether the patient needs an interpreter | `Encounter.extension` |
| `identifier_value`<br />`identifier_system` | text, text<br />`text`, `text` | yes | Identifier(s) by which this encounter is known | `Encounter.identifier` |
| `status` | `text` | yes | planned \| arrived \| triaged \| in-progress \| onleave \| finished \| cancelled + | `Encounter.status` |
| `class`<br />`class_code`<br />`class_system`<br />`class_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Classification of patient encounter | `Encounter.class` |
| `patient_id` | `uuid` | yes | The patient or group present at the encounter | `Encounter.subject` |
| `period_start`<br />`period_end` | timestamptz, timestamptz<br />`timestamptz`, `timestamptz` | yes | The start and end time of the encounter | `Encounter.period` |
| `hospitalization_discharge_disposition`<br />`hospitalization_discharge_disposition_code`<br />`hospitalization_discharge_disposition_system` | text, text, text<br />`text`, `text`, `text` | yes | Category or kind of location after discharge | `Encounter.hospitalization.dischargeDisposition` |
| `service_provider_id` | `uuid` | yes | The organization (facility) responsible for this encounter | `Encounter.serviceProvider` |

## Constraints

```sql
check ((interpreter_required is null and interpreter_required_code is null and interpreter_required_system is null and interpreter_required_valueset_id is null) or (interpreter_required is not null and interpreter_required_code is not null and interpreter_required_system is not null and interpreter_required_valueset_id is not null))
check (identifier_system is null or identifier_value is not null)
check ((class is null and class_code is null and class_system is null and class_valueset_id is null) or (class is not null and class_code is not null and class_system is not null and class_valueset_id is not null))
check (period_start is null or period_end is null or period_start <= period_end)
check ((hospitalization_discharge_disposition_code is null and hospitalization_discharge_disposition_system is null) or (hospitalization_discharge_disposition_code is not null and hospitalization_discharge_disposition_system is not null))
```

## References

| Columns | Target | On delete |
|---|---|---|
| `interpreter_required_valueset_id, interpreter_required_code, interpreter_required_system, interpreter_required` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `class_valueset_id, class_code, class_system, class` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `patient_id` | [`patient`](/docs/tables/patient) | no action |
| `service_provider_id` | [`organization`](/docs/tables/organization) | no action |

## Referenced by

- [`document_reference_encounter`](/docs/tables/document_reference_encounter) via `encounter_id`
- [`encounter_other_identifier`](/docs/tables/encounter_other_identifier) via `encounter_id`
- [`encounter_type`](/docs/tables/encounter_type) via `encounter_id`
- [`encounter_participant`](/docs/tables/encounter_participant) via `encounter_id`
- [`encounter_reason_code`](/docs/tables/encounter_reason_code) via `encounter_id`
- [`encounter_location`](/docs/tables/encounter_location) via `encounter_id`

## Indexes

- `encounter_patient_id_idx` on `patient_id`
- `encounter_service_provider_id_idx` on `service_provider_id`

## Child tables

6 tables hang off `encounter`, one row per repetition.

### `encounter_other_identifier`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_id` | `uuid` → [`encounter`](/docs/tables/encounter) | no | — | — |
| `identifier_value` | `text` | no | — | — |
| `identifier_system` | `text` | yes | — | — |
| `identifier_use` | `text` | yes | — | — |
| `valid_from` | `timestamptz` | yes | — | — |
| `valid_until` | `timestamptz` | yes | — | — |

#### Unique

- `encounter_id, identifier_system, identifier_value`

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_id` | [`encounter`](/docs/tables/encounter) | cascade |

### `encounter_type`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_id` | `uuid` → [`encounter`](/docs/tables/encounter) | no | — | — |
| `type`<br />`type_code`<br />`type_system`<br />`type_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Specific type of encounter | `Encounter.type` |

#### Constraints

```sql
check ((type is null and type_code is null and type_system is null and type_valueset_id is null) or (type is not null and type_code is not null and type_system is not null and type_valueset_id is not null))
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_id` | [`encounter`](/docs/tables/encounter) | cascade |
| `type_valueset_id, type_code, type_system, type` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

#### Indexes

- `encounter_type_encounter_id_idx` on `encounter_id`

### `encounter_participant`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_id` | `uuid` → [`encounter`](/docs/tables/encounter) | no | — | — |
| `period_start`<br />`period_end` | timestamptz, timestamptz<br />`timestamptz`, `timestamptz` | yes | Period of time during the encounter that the participant participated | `Encounter.participant.period` |
| `individual_practitioner_id`<br />`individual_practitioner_role_id`<br />`individual_related_person_id` | uuid, uuid, uuid<br />`uuid`, `uuid`, `uuid` | yes | Persons involved in the encounter other than the patient | `Encounter.participant.individual` |

#### Constraints

```sql
check (period_start is null or period_end is null or period_start <= period_end)
check (num_nonnulls(individual_practitioner_id, individual_practitioner_role_id, individual_related_person_id) <= 1)
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_id` | [`encounter`](/docs/tables/encounter) | cascade |
| `individual_practitioner_id` | [`practitioner`](/docs/tables/practitioner) | no action |
| `individual_practitioner_role_id` | [`practitioner_role`](/docs/tables/practitioner_role) | no action |
| `individual_related_person_id` | [`related_person`](/docs/tables/related_person) | no action |

### Referenced by

- [`encounter_participant_type`](/docs/tables/encounter_participant_type) via `encounter_participant_id`

#### Indexes

- `encounter_participant_encounter_id_idx` on `encounter_id`
- `encounter_participant_individual_practitioner_id_idx` on `individual_practitioner_id`
- `encounter_participant_individual_practitioner_role_id_idx` on `individual_practitioner_role_id`
- `encounter_participant_individual_related_person_id_idx` on `individual_related_person_id`

### `encounter_participant_type`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_participant_id` | `uuid` → [`encounter_participant`](/docs/tables/encounter_participant) | no | — | — |
| `type`<br />`type_code`<br />`type_system` | text, text, text<br />`text`, `text`, `text` | yes | Role of participant in encounter | `Encounter.participant.type` |

#### Constraints

```sql
check ((type_code is null and type_system is null) or (type_code is not null and type_system is not null))
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_participant_id` | [`encounter_participant`](/docs/tables/encounter_participant) | cascade |

#### Indexes

- `encounter_participant_type_encounter_participant_id_idx` on `encounter_participant_id`

### `encounter_reason_code`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_id` | `uuid` → [`encounter`](/docs/tables/encounter) | no | — | — |
| `reason_code`<br />`reason_code_code`<br />`reason_code_system` | text, text, text<br />`text`, `text`, `text` | yes | Coded reason the encounter takes place | `Encounter.reasonCode` |

#### Constraints

```sql
check ((reason_code_code is null and reason_code_system is null) or (reason_code_code is not null and reason_code_system is not null))
```

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_id` | [`encounter`](/docs/tables/encounter) | cascade |

#### Indexes

- `encounter_reason_code_encounter_id_idx` on `encounter_id`

### `encounter_location`

Child table — one row per repetition, deleted with its parent.

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `encounter_id` | `uuid` → [`encounter`](/docs/tables/encounter) | no | — | — |
| `location_id` | `uuid` | yes | Location the encounter takes place | `Encounter.location.location` |

#### References

| Columns | Target | On delete |
|---|---|---|
| `encounter_id` | [`encounter`](/docs/tables/encounter) | cascade |
| `location_id` | [`location`](/docs/tables/location) | no action |

#### Indexes

- `encounter_location_encounter_id_idx` on `encounter_id`
- `encounter_location_location_id_idx` on `location_id`

## Value sets

| Value set | Codes |
|---|---|
| `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1267.16` | 0 |
| `http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1267.23` | 0 |
| `http://terminology.hl7.org/ValueSet/v3-ActEncounterCode` | 0 |

