---
title: "menstruation_summary"
description: "Summary or persistent information about an individual's menstruation history."
---

Summary or persistent information about an individual's menstruation history.

**Purpose.** To record summary or persistent information about an individual's menstruation history events or patterns of menstruation over time.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-EVALUATION.menstruation_summary.v1` | 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. | — |
| `overall_description` | `text` | yes | Overall description | `/data[at0001]/items[at0025]` |
| `menstrual_status`<br />`menstrual_status_code`<br />`menstrual_status_system`<br />`menstrual_status_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Menstrual status | `/data[at0001]/items[at0003]` |
| `menarche_duration`<br />`menarche_date` | interval, date<br />`interval`, `date` | yes | Menarche | `/data[at0001]/items[at0002]` |
| `menopause_duration`<br />`menopause_date` | interval, date<br />`interval`, `date` | yes | Menopause | `/data[at0001]/items[at0004]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/items[at0023]` |
| `date_last_updated` | `timestamptz` | yes | Date last updated | `/protocol[at0008]/items[at0024]` |

## Constraints

```sql
check ((menstrual_status_code is null and menstrual_status_system is null and menstrual_status_valueset_id is null and menstrual_status is null) or (menstrual_status is not null and menstrual_status_code is not null and menstrual_status_system is not null and menstrual_status_valueset_id is not null))
check (num_nonnulls(menarche_duration, menarche_date) <= 1)
check (num_nonnulls(menopause_duration, menopause_date) <= 1)
```

## 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 |
| `menstrual_status_valueset_id, menstrual_status_code, menstrual_status_system, menstrual_status` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Referenced by

- [`menstruation_summary_per_episode`](/docs/tables/menstruation_summary_per_episode) via `menstruation_summary_id`

## Indexes

- `menstruation_summary_form_id_idx` on `form_id`

## Child tables

1 table hang off `menstruation_summary`, one row per repetition.

### `menstruation_summary_per_episode`

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

| Column | Type | Null | Description | Source |
|---|---|---|---|---|
| `id` | `uuid primary key` | no | Primary key. | — |
| `menstruation_summary_id` | `uuid` → [`menstruation_summary`](/docs/tables/menstruation_summary) | no | — | — |
| `position` | `integer` | no | Order of this row within its parent, from zero. | — |
| `episode_label` | `text` | yes | Episode label | `/data[at0001]/items[at0010]/items[at0011]` |
| `episode_start_date` | `timestamptz` | yes | Episode start date | `/data[at0001]/items[at0010]/items[at0012]` |
| `description` | `text` | yes | Description | `/data[at0001]/items[at0010]/items[at0013]` |
| `typical_pattern`<br />`typical_pattern_code`<br />`typical_pattern_system`<br />`typical_pattern_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Typical pattern | `/data[at0001]/items[at0010]/items[at0014]` |
| `typical_cycle_length` | `interval` | yes | Typical cycle length | `/data[at0001]/items[at0010]/items[at0017]` |
| `typical_menses_duration` | `interval` | yes | Typical menses duration | `/data[at0001]/items[at0010]/items[at0018]` |
| `episode_end_date` | `timestamptz` | yes | Episode end date | `/data[at0001]/items[at0010]/items[at0021]` |
| `episode_comment` | `text` | yes | Episode comment | `/data[at0001]/items[at0010]/items[at0022]` |

#### Constraints

```sql
check ((typical_pattern_code is null and typical_pattern_system is null and typical_pattern_valueset_id is null and typical_pattern is null) or (typical_pattern is not null and typical_pattern_code is not null and typical_pattern_system is not null and typical_pattern_valueset_id is not null))
```

#### Unique

- `menstruation_summary_id, position`

#### References

| Columns | Target | On delete |
|---|---|---|
| `menstruation_summary_id` | [`menstruation_summary`](/docs/tables/menstruation_summary) | cascade |
| `typical_pattern_valueset_id, typical_pattern_code, typical_pattern_system, typical_pattern` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-EVALUATION.menstruation_summary.v1/menstrual_status` | 4 |
| `org.openehr::openEHR-EHR-EVALUATION.menstruation_summary.v1/typical_pattern` | 2 |

