# Practice vitals clock: 12 h, few measurements (Medicine & practice example)

> WestCoast Charts 1.1.5, release, public Core release, on npm. HTML: https://westcoast-charts.com/gallery/medical/vitals-practice/ · Index for agents: https://westcoast-charts.com/llms.txt

A practice day 07:00–19:00 with few measurements: gaps stay visible ("not measured"); the last value per parameter is shown with its age under the ring.

- Chart type: `vitalsClock` (Vitals Clock)
- Collection: Medicine & practice · Medicine & practice
- Raw configuration: https://westcoast-charts.com/gallery-src/medical/vitals-practice.js
- Standalone example: https://westcoast-charts.com/embed/samples/wcc/premium/medical.html?only=vitals-practice&lang=en#v-vitals-practice

## Setup

```js
import WestCoastCharts from 'west-coast-charts'
import types from 'west-coast-charts/types'
import premium from 'west-coast-charts/premium'
import vitals from 'west-coast-charts/layers/vitals'
import schedule from 'west-coast-charts/layers/schedule'

WestCoastCharts.use(types).use(premium).use(vitals).use(schedule)
const WestCoastChartsPremium = premium
const WestCoastChartsLayer_vitals = vitals
const WestCoastChartsLayer_schedule = schedule
WestCoastCharts.setLicenseKey(LICENCE_KEY) // paid production licence; localhost evaluation needs no key
```

## Options

```js
const options = {
  "chart": {
    "type": "vitalsClock",
    "height": 460
  },
  "series": [

  ],
  "plotOptions": {
    "vitalsClock": {
      "radialColumn": {
        "innerRadius": "76%",
        "hole": "20%"
      },
      "time": {
        "start": 1792994400000,
        "span": "12h",
        "step": "60min"
      },
      "now": 1793020800000,
      "timeZone": "Europe/Berlin",
      "demo": "Demo data · invented thresholds",
      "params": [
        {
          "id": "hr",
          "gap": 3,
          "title": "Pulse",
          "short": "Pulse",
          "unit": "/min",
          "kind": "columns",
          "aggregate": "last",
          "bands": [
            {
              "to": 40,
              "level": 3,
              "label": "< 40"
            },
            {
              "to": 50,
              "level": 1,
              "label": "40–49"
            },
            {
              "to": 91,
              "level": 0,
              "label": "50–90"
            },
            {
              "to": 111,
              "level": 1,
              "label": "91–110"
            },
            {
              "to": 131,
              "level": 2,
              "label": "111–130"
            },
            {
              "level": 3,
              "label": "≥ 131"
            }
          ],
          "data": [
            [
              1792998720000,
              88
            ],
            [
              1793000400000,
              81
            ],
            [
              1793009100000,
              96
            ],
            [
              1793019000000,
              84
            ]
          ],
          "min": 30,
          "max": 150,
          "decimals": 0
        },
        {
          "id": "bp",
          "gap": 3,
          "title": "Blood pressure",
          "short": "BP",
          "unit": "mmHg",
          "kind": "range",
          "bands": [
            {
              "to": 90,
              "level": 3,
              "label": "< 90"
            },
            {
              "to": 101,
              "level": 2,
              "label": "90–100"
            },
            {
              "to": 111,
              "level": 1,
              "label": "101–110"
            },
            {
              "to": 160,
              "level": 0,
              "label": "111–159"
            },
            {
              "to": 180,
              "level": 1,
              "label": "160–179"
            },
            {
              "level": 2,
              "label": "≥ 180"
            }
          ],
          "bandsLow": [
            {
              "to": 55,
              "level": 3,
              "label": "< 55"
            },
            {
              "to": 65,
              "level": 1,
              "label": "55–64"
            },
            {
              "to": 90,
              "level": 0,
              "label": "65–89"
            },
            {
              "to": 100,
              "level": 1,
              "label": "90–99"
            },
            {
              "level": 2,
              "label": "≥ 100"
            }
          ],
          "data": [
            [
              1792998720000,
              152,
              94
            ],
            [
              1793000460000,
              146,
              91
            ],
            [
              1793009160000,
              171,
              99
            ],
            [
              1793019120000,
              158,
              95
            ]
          ],
          "min": 60,
          "max": 200,
          "decimals": 0
        },
        {
          "id": "spo2",
          "gap": 3,
          "title": "SpO₂",
          "short": "SpO₂",
          "unit": "%",
          "kind": "cells",
          "aggregate": "last",
          "bands": [
            {
              "to": 88,
              "level": 3,
              "label": "< 88"
            },
            {
              "to": 92,
              "level": 2,
              "label": "88–91"
            },
            {
              "to": 95,
              "level": 1,
              "label": "92–94"
            },
            {
              "level": 0,
              "label": "≥ 95"
            }
          ],
          "data": [
            [
              1792998780000,
              97
            ],
            [
              1793009220000,
              95
            ]
          ],
          "decimals": 0
        },
        {
          "id": "t",
          "gap": 3,
          "title": "Temperature",
          "short": "T",
          "unit": "°C",
          "kind": "cells",
          "aggregate": "last",
          "bands": [
            {
              "to": 35.1,
              "level": 3,
              "label": "< 35.1"
            },
            {
              "to": 36.1,
              "level": 1,
              "label": "35.1–36.0"
            },
            {
              "to": 38.1,
              "level": 0,
              "label": "36.1–38.0"
            },
            {
              "to": 39.1,
              "level": 1,
              "label": "38.1–39.0"
            },
            {
              "level": 2,
              "label": "≥ 39.1"
            }
          ],
          "data": [
            [
              1792998840000,
              37.4
            ]
          ],
          "decimals": 1
        }
      ],
      "events": [
        {
          "at": 1793001600000,
          "kind": "med",
          "label": "Dose (demo)"
        }
      ]
    }
  }
}

const chart = new WestCoastCharts(document.querySelector('#chart'), options)
await chart.render()
```

## Verify

- Text check (Library 1.1.5): load `west-coast-charts/agent/describe` and call `chart.describe({ format: "json" })` for the actual drawn state. The live reader is on this example’s HTML page.
- Command line (Public agent tools 0.2.3, tested with Library 1.1.5; available from the versioned GitHub release and npm, https://westcoast-charts.com/docs/cli/index.md): `wcc chart export medical-vitals-practice.json --out medical-vitals-practice.svg --with-table` (save the options above as JSON first)
