---
title: "family_history"
description: "Summary information about the significant health-related problems found in genetic and non-genetic family members."
---

Summary information about the significant health-related problems found in genetic and non-genetic family members.

**Purpose.** To record information about the occurrence of significant health-related problems in genetic and non-genetic family members - both alive and deceased.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-EVALUATION.family_history.v2` | openEHR | defines this table |

## Columns

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `form_id` | `uuid` → [`form`](/docs/tables/form) | no | The form this entry was recorded on. | — |
| `form_block_id` | `uuid` | yes | The block within the form, when the entry is bound to one. | — |
| `summary` | `text` | yes | Summary | `/data[at0001]/items[at0002]` |
| `last_updated` | `timestamptz` | yes | Last Updated | `/protocol[at0025]/items[at0026]` |

## Unique

- `form_block_id`

## References

| Columns | Target | On delete |
|---|---|---|
| `form_id` | [`form`](/docs/tables/form) | cascade |
| `form_id, form_block_id` | [`form_block`](/docs/tables/form_block) | cascade |

## Referenced by

- [`family_history_per_problem`](/docs/tables/family_history_per_problem) via `family_history_id`
- [`family_history_per_family_member`](/docs/tables/family_history_per_family_member) via `family_history_id`
- [`family_history_multimedia`](/docs/tables/family_history_multimedia) via `family_history_id`

## Indexes

- `family_history_form_id_idx` on `form_id`

## Child tables

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

### `family_history_per_problem`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_id` | `uuid` → [`family_history`](/docs/tables/family_history) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `problem_diagnosis_name`<br />`problem_diagnosis_name_code`<br />`problem_diagnosis_name_system`<br />`problem_diagnosis_name_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Problem/diagnosis name | `/data[at0001]/items[at0028]/items[at0029]` |
| `description` | `text` | yes | Description | `/data[at0001]/items[at0028]/items[at0030]` |
| `impact`<br />`impact_code`<br />`impact_system`<br />`impact_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Impact | `/data[at0001]/items[at0028]/items[at0071]` |

#### Constraints

```sql
check ((problem_diagnosis_name_code is null and problem_diagnosis_name_system is null and problem_diagnosis_name_valueset_id is null) or (problem_diagnosis_name is not null and problem_diagnosis_name_code is not null and problem_diagnosis_name_system is not null and problem_diagnosis_name_valueset_id is not null))
check ((impact_code is null and impact_system is null and impact_valueset_id is null) or (impact is not null and impact_code is not null and impact_system is not null and impact_valueset_id is not null))
```

#### Unique

- `family_history_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_id` | [`family_history`](/docs/tables/family_history) | cascade |
| `problem_diagnosis_name_valueset_id, problem_diagnosis_name_code, problem_diagnosis_name_system, problem_diagnosis_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `impact_valueset_id, impact_code, impact_system, impact` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### Referenced by

- [`family_history_per_problem_problem_details`](/docs/tables/family_history_per_problem_problem_details) via `family_history_per_problem_id`

### `family_history_per_problem_problem_details`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_per_problem_id` | `uuid` → [`family_history_per_problem`](/docs/tables/family_history_per_problem) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `family_prevalence_id` | `uuid` | no | Problem details | `/data[at0001]/items[at0028]/items[at0059]` |

#### Unique

- `family_history_per_problem_id, position`
- `family_history_per_problem_id, family_prevalence_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_per_problem_id` | [`family_history_per_problem`](/docs/tables/family_history_per_problem) | cascade |
| `family_prevalence_id` | [`family_prevalence`](/docs/tables/family_prevalence) | no action |

#### Indexes

- `family_history_per_problem_problem_details_family_preval_e8a59c` on `family_prevalence_id`

### `family_history_per_family_member`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_id` | `uuid` → [`family_history`](/docs/tables/family_history) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `family_member_name` | `text` | yes | Family member name | `/data[at0001]/items[at0003]/items[at0004]` |
| `alias` | `text` | yes | Alias | `/data[at0001]/items[at0003]/items[at0020]` |
| `biological_sex`<br />`biological_sex_code`<br />`biological_sex_system`<br />`biological_sex_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Biological sex | `/data[at0001]/items[at0003]/items[at0060]` |
| `relationship`<br />`relationship_code`<br />`relationship_system`<br />`relationship_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Relationship | `/data[at0001]/items[at0003]/items[at0016]` |
| `relationship_degree`<br />`relationship_degree_code`<br />`relationship_degree_system`<br />`relationship_degree_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Relationship degree | `/data[at0001]/items[at0003]/items[at0064]` |
| `family_line`<br />`family_line_code`<br />`family_line_system`<br />`family_line_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Family line | `/data[at0001]/items[at0003]/items[at0068]` |
| `date_of_birth` | `timestamptz` | yes | Date of birth | `/data[at0001]/items[at0003]/items[at0005]` |
| `deceased` | `boolean` | yes | Deceased? | `/data[at0001]/items[at0003]/items[at0023]` |
| `age_at_death` | `interval` | yes | Age at death | `/data[at0001]/items[at0003]/items[at0011]` |
| `date_of_death` | `timestamptz` | yes | Date of death | `/data[at0001]/items[at0003]/items[at0058]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/items[at0003]/items[at0046]` |
| `biomarkers_biomarker_description` | `text` | yes | Biomarker description | `/data[at0001]/items[at0003]/items[at0024]/items[at0022]` |

#### Constraints

```sql
check ((biological_sex_code is null and biological_sex_system is null and biological_sex_valueset_id is null) or (biological_sex is not null and biological_sex_code is not null and biological_sex_system is not null and biological_sex_valueset_id is not null))
check ((relationship_code is null and relationship_system is null and relationship_valueset_id is null) or (relationship is not null and relationship_code is not null and relationship_system is not null and relationship_valueset_id is not null))
check ((relationship_degree_code is null and relationship_degree_system is null and relationship_degree_valueset_id is null and relationship_degree is null) or (relationship_degree is not null and relationship_degree_code is not null and relationship_degree_system is not null and relationship_degree_valueset_id is not null))
check ((family_line_code is null and family_line_system is null and family_line_valueset_id is null and family_line is null) or (family_line is not null and family_line_code is not null and family_line_system is not null and family_line_valueset_id is not null))
```

#### Unique

- `family_history_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_id` | [`family_history`](/docs/tables/family_history) | cascade |
| `biological_sex_valueset_id, biological_sex_code, biological_sex_system, biological_sex` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `relationship_valueset_id, relationship_code, relationship_system, relationship` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `relationship_degree_valueset_id, relationship_degree_code, relationship_degree_system, relationship_degree` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `family_line_valueset_id, family_line_code, family_line_system, family_line` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### Referenced by

- [`family_history_per_family_member_family_member_details`](/docs/tables/family_history_per_family_member_family_member_details) via `family_history_per_family_member_id`
- [`family_history_per_family_member_clinical_history`](/docs/tables/family_history_per_family_member_clinical_history) via `family_history_per_family_member_id`

### `family_history_per_family_member_family_member_details`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_per_family_member_id` | `uuid` → [`family_history_per_family_member`](/docs/tables/family_history_per_family_member) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `person_id` | `uuid` | no | Family member details | `/data[at0001]/items[at0003]/items[at0048]` |

#### Unique

- `family_history_per_family_member_id, position`
- `family_history_per_family_member_id, person_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_per_family_member_id` | [`family_history_per_family_member`](/docs/tables/family_history_per_family_member) | cascade |
| `person_id` | [`person`](/docs/tables/person) | no action |

#### Indexes

- `family_history_per_family_member_family_member_details_p_3bbdfd` on `person_id`

### `family_history_per_family_member_clinical_history`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_per_family_member_id` | `uuid` → [`family_history_per_family_member`](/docs/tables/family_history_per_family_member) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `problem_diagnosis_name`<br />`problem_diagnosis_name_code`<br />`problem_diagnosis_name_system`<br />`problem_diagnosis_name_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Problem/diagnosis name | `/data[at0001]/items[at0003]/items[at0008]/items[at0009]` |
| `clinical_description` | `text` | yes | Clinical description | `/data[at0001]/items[at0003]/items[at0008]/items[at0012]` |
| `age_at_onset` | `interval` | yes | Age at onset | `/data[at0001]/items[at0003]/items[at0008]/items[at0010]` |
| `cause_of_death`<br />`cause_of_death_code`<br />`cause_of_death_system`<br />`cause_of_death_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Cause of death? | `/data[at0001]/items[at0003]/items[at0008]/items[at0014]` |

#### Constraints

```sql
check ((problem_diagnosis_name_code is null and problem_diagnosis_name_system is null and problem_diagnosis_name_valueset_id is null) or (problem_diagnosis_name is not null and problem_diagnosis_name_code is not null and problem_diagnosis_name_system is not null and problem_diagnosis_name_valueset_id is not null))
check ((cause_of_death_code is null and cause_of_death_system is null and cause_of_death_valueset_id is null) or (cause_of_death is not null and cause_of_death_code is not null and cause_of_death_system is not null and cause_of_death_valueset_id is not null))
```

#### Unique

- `family_history_per_family_member_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_per_family_member_id` | [`family_history_per_family_member`](/docs/tables/family_history_per_family_member) | cascade |
| `problem_diagnosis_name_valueset_id, problem_diagnosis_name_code, problem_diagnosis_name_system, problem_diagnosis_name` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `cause_of_death_valueset_id, cause_of_death_code, cause_of_death_system, cause_of_death` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

### `family_history_multimedia`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `family_history_id` | `uuid` → [`family_history`](/docs/tables/family_history) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `attachment_id` | `uuid` | no | Multimedia | `/data[at0001]/items[at0053]` |

#### Unique

- `family_history_id, position`
- `family_history_id, attachment_id`

#### References

| Columns | Target | On delete |
|---|---|---|
| `family_history_id` | [`family_history`](/docs/tables/family_history) | cascade |
| `attachment_id` | [`attachment`](/docs/tables/attachment) | restrict |

#### Indexes

- `family_history_multimedia_attachment_id_idx` on `attachment_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-EVALUATION.family_history.v2/cause_of_death` | 3 |
| `org.openehr::openEHR-EHR-EVALUATION.family_history.v2/family_line` | 2 |
| `org.openehr::openEHR-EHR-EVALUATION.family_history.v2/relationship_degree` | 3 |

