---
title: "menstruation"
description: "Details about one single menstrual cycle."
---

Details about one single menstrual cycle.

**Purpose.** To record details about one single menstrual cycle.

## Source

| Model | Leg | Role |
|---|---|---|
| `openEHR-EHR-OBSERVATION.menstruation.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. | — |
| `start_of_menses` | `timestamptz` | yes | Start of menses | `/data[at0001]/events[at0002]/data[at0003]/items[at0004]` |
| `duration_of_menses` | `interval` | yes | Duration of menses | `/data[at0001]/events[at0002]/data[at0003]/items[at0005]` |
| `description_of_the_cycle` | `text` | yes | Description of the cycle | `/data[at0001]/events[at0002]/data[at0003]/items[at0006]` |
| `relative_flow`<br />`relative_flow_code`<br />`relative_flow_system`<br />`relative_flow_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Relative flow | `/data[at0001]/events[at0002]/data[at0003]/items[at0007]` |
| `blood_clots`<br />`blood_clots_code`<br />`blood_clots_system`<br />`blood_clots_valueset_id` | coded text<br />`text`, `text`, `text`, `text` | yes | Blood clots | `/data[at0001]/events[at0002]/data[at0003]/items[at0013]` |
| `comment` | `text` | yes | Comment | `/data[at0001]/events[at0002]/data[at0003]/items[at0032]` |
| `confounding_factors` | `text` | yes | Confounding factors | `/data[at0001]/events[at0002]/state[at0020]/items[at0021]` |

## Constraints

```sql
check ((relative_flow_code is null and relative_flow_system is null and relative_flow_valueset_id is null and relative_flow is null) or (relative_flow is not null and relative_flow_code is not null and relative_flow_system is not null and relative_flow_valueset_id is not null))
check ((blood_clots_code is null and blood_clots_system is null and blood_clots_valueset_id is null and blood_clots is null) or (blood_clots is not null and blood_clots_code is not null and blood_clots_system is not null and blood_clots_valueset_id is not null))
```

## 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 |
| `relative_flow_valueset_id, relative_flow_code, relative_flow_system, relative_flow` | [`valueset_code`](/docs/tables/valueset_code) | restrict |
| `blood_clots_valueset_id, blood_clots_code, blood_clots_system, blood_clots` | [`valueset_code`](/docs/tables/valueset_code) | restrict |

## Indexes

- `menstruation_form_id_idx` on `form_id`

## Value sets

| Value set | Codes |
|---|---|
| `org.openehr::openEHR-EHR-OBSERVATION.menstruation.v1/blood_clots` | 2 |
| `org.openehr::openEHR-EHR-OBSERVATION.menstruation.v1/relative_flow` | 3 |

