{ "cells": [ { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "# 03 — Severity Classification\n", "\n", "Fine-tune Bio_ClinicalBERT on MTSamples for severity classification.\n", "\n", "**What this notebook covers**\n", "- Inspect weak-supervision labels\n", "- Train the classifier\n", "- Evaluate on the test set\n", "- Save metrics for the dashboard\n", "- Run inference on new notes\n", "\n", "> **Note**: Training takes ~20 min on CPU, ~5 min on Colab GPU." ] }, { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "## 1. Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "code", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setup OK\n" ] } ], "source": [ "import sys\n", "sys.path.insert(0, '..')\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "import json\n", "import pandas as pd\n", "import plotly.express as px\n", "from pathlib import Path\n", "\n", "from src.etl.extract import load_mtsamples\n", "from src.etl.transform import prepare_for_training\n", "from src.nlp.classifier import ClinicalClassifier\n", "from src.utils.config import ModelConfig\n", "\n", "print('Setup OK')" ] }, { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "## 2. Load and Inspect Training Data" ] }, { "cell_type": "code", "execution_count": 2, "id": "code", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2026-06-26 19:15:41 | INFO | src.etl.extract | Loading MTSamples from C:\\Users\\Hp\\Documents\\clinical-nlp-pipeline\\data\\raw\\mtsamples.csv\n", "2026-06-26 19:15:42 | INFO | src.etl.extract | MTSamples loaded: 4999 notes, 40 specialties\n", "2026-06-26 19:15:42 | INFO | src.etl.transform | Running full transformation pipeline...\n", "2026-06-26 19:15:42 | INFO | src.etl.transform | Dropped 33 rows with missing transcription text\n", "2026-06-26 19:16:11 | INFO | src.etl.transform | Removed 2609 duplicate notes\n", "2026-06-26 19:16:11 | INFO | src.etl.transform | Clean notes: 2357 rows remaining\n", "2026-06-26 19:16:11 | INFO | src.etl.transform | Filtered 33 notes shorter than 30 words\n", "2026-06-26 19:16:11 | INFO | src.etl.transform | Deriving severity labels via weak supervision...\n", "2026-06-26 19:16:20 | INFO | src.etl.transform | urgent 1053 (45.3%)\n", "2026-06-26 19:16:20 | INFO | src.etl.transform | routine 920 (39.6%)\n", "2026-06-26 19:16:20 | INFO | src.etl.transform | critical 351 (15.1%)\n", "2026-06-26 19:16:20 | INFO | src.etl.transform | Transformation complete: 2324 notes ready for training\n", "Training samples: 2,324\n", "\n", "Severity distribution:\n", "severity\n", "urgent 1053\n", "routine 920\n", "critical 351\n", "Name: count, dtype: int64\n", "\n", "Class balance:\n", " urgent 1053 (45.3%)\n", " routine 920 (39.6%)\n", " critical 351 (15.1%)\n" ] } ], "source": [ "raw_df = load_mtsamples()\n", "df = prepare_for_training(raw_df)\n", "\n", "print(f'Training samples: {len(df):,}')\n", "print()\n", "print('Severity distribution:')\n", "print(df['severity'].value_counts())\n", "print()\n", "print(f'Class balance:')\n", "for label, count in df['severity'].value_counts().items():\n", " print(f' {label:<12} {count:>5} ({count/len(df):.1%})')" ] }, { "cell_type": "code", "execution_count": 3, "id": "code", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "customdata": [ [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "urgent" ], [ "critical" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "critical" ], [ "routine" ], [ "critical" ], [ "critical" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "routine" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "routine" ], [ "urgent" ], [ "critical" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "urgent" ], [ "critical" ] ], "domain": { "x": [ 0, 1 ], "y": [ 0, 1 ] }, "hole": 0.35, "hovertemplate": "severity=%{customdata[0]}", "labels": [ "routine", "critical", "critical", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "critical", "routine", "routine", "critical", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "critical", "routine", "routine", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "critical", "routine", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "critical", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "critical", "critical", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "critical", "routine", "urgent", "routine", "routine", "routine", "critical", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "routine", "routine", "critical", "routine", "urgent", "critical", "routine", "routine", "routine", "critical", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "routine", "critical", "critical", "routine", "routine", "urgent", "critical", "urgent", "critical", "critical", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "critical", "routine", "routine", "urgent", "critical", "urgent", "urgent", "critical", "routine", "critical", "routine", "urgent", "critical", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "critical", "critical", "routine", "routine", "urgent", "urgent", "urgent", "critical", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "routine", "critical", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "critical", "routine", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "critical", "routine", "routine", "urgent", "routine", "urgent", "routine", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "critical", "routine", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "routine", "critical", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "routine", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "critical", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "critical", "urgent", "critical", "routine", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "routine", "routine", "routine", "routine", "critical", "urgent", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "urgent", "urgent", "critical", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "routine", "critical", "critical", "routine", "critical", "routine", "routine", "critical", "critical", "routine", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "critical", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "critical", "routine", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "critical", "routine", "critical", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "critical", "routine", "routine", "routine", "urgent", "routine", "routine", "urgent", "critical", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "routine", "routine", "routine", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "urgent", "critical", "critical", "routine", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "critical", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "critical", "routine", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "routine", "routine", "critical", "routine", "critical", "routine", "routine", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "critical", "urgent", "routine", "routine", "urgent", "critical", "routine", "critical", "routine", "urgent", "routine", "urgent", "routine", "routine", "critical", "critical", "routine", "urgent", "urgent", "routine", "critical", "critical", "critical", "critical", "critical", "critical", "routine", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "critical", "routine", "critical", "urgent", "critical", "critical", "critical", "critical", "routine", "routine", "critical", "critical", "routine", "critical", "routine", "routine", "routine", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "routine", "urgent", "urgent", "routine", "critical", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "critical", "routine", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "critical", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "routine", "critical", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "critical", "routine", "routine", "critical", "routine", "routine", "critical", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "critical", "critical", "routine", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "critical", "routine", "critical", "urgent", "critical", "routine", "critical", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "critical", "routine", "routine", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "critical", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "critical", "critical", "urgent", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "critical", "urgent", "routine", "routine", "routine", "routine", "routine", "critical", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "routine", "critical", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "critical", "critical", "routine", "routine", "routine", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "routine", "routine", "urgent", "routine", "critical", "routine", "routine", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "routine", "critical", "critical", "routine", "routine", "urgent", "urgent", "critical", "urgent", "routine", "critical", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "critical", "routine", "urgent", "urgent", "routine", "critical", "critical", "critical", "critical", "urgent", "critical", "critical", "routine", "urgent", "urgent", "critical", "critical", "urgent", "critical", "routine", "urgent", "critical", "urgent", "routine", "routine", "urgent", "critical", "routine", "urgent", "routine", "routine", "routine", "critical", "routine", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "critical", "urgent", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "critical", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "critical", "routine", "urgent", "critical", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "critical", "critical", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "critical", "urgent", "urgent", "critical", "routine", "urgent", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "critical", "routine", "routine", "routine", "urgent", "routine", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "routine", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "routine", "urgent", "urgent", "critical", "critical", "urgent", "critical", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "routine", "critical", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "routine", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "routine", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "routine", "routine", "urgent", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "routine", "routine", "critical", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "critical", "critical", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "routine", "urgent", "urgent", "critical", "routine", "routine", "urgent", "routine", "routine", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "routine", "routine", "routine", "routine", "urgent", "critical", "routine", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "routine", "urgent", "routine", "routine", "routine", "routine", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "routine", "critical", "urgent", "routine", "routine", "critical", "urgent", "critical", "critical", "urgent", "critical", "critical", "urgent", "critical", "critical", "critical", "routine", "routine", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "routine", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "routine", "urgent", "urgent", "routine", "routine", "critical", "critical", "urgent", "routine", "routine", "critical", "critical", "urgent", "urgent", "routine", "critical", "routine", "urgent", "critical", "critical", "routine", "urgent", "critical", "critical", "critical", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "routine", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "routine", "critical", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "critical", "urgent", "urgent", "critical", "routine", "urgent", "routine", "urgent", "urgent", "routine", "critical", "routine", "urgent", "routine", "routine", "routine", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "routine", "critical", "critical", "critical", "urgent", "urgent", "urgent", "routine", "critical", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "critical", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "critical", "critical", "critical", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "critical", "routine", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "routine", "urgent", "critical", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "critical", "routine", "routine", "urgent", "critical", "routine", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "critical", "critical", "urgent", "routine", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "critical", "critical", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "critical", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "critical", "critical", "critical", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "urgent", "critical", "critical", "critical", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "routine", "urgent", "urgent", "routine", "routine", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "routine", "critical", "critical", "critical", "urgent", "urgent", "urgent", "critical", "urgent", "critical", "urgent", "critical", "urgent", "urgent", "critical", "critical", "urgent", "critical", "critical", "routine", "routine", "routine", "urgent", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "urgent", "critical", "critical", "critical", "critical", "critical", "urgent", "critical", "critical", "critical", "routine", "urgent", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "routine", "routine", "critical", "routine", "routine", "critical", "routine", "critical", "critical", "routine", "routine", "routine", "routine", "routine", "urgent", "urgent", "urgent", "urgent", "routine", "urgent", "critical", "urgent", "urgent", "urgent", "urgent", "urgent", "critical" ], "legendgroup": "", "marker": { "colors": [ "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#2ecc71", "#2ecc71", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#2ecc71", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#e74c3c", "#f39c12", "#e74c3c", "#e74c3c", "#e74c3c", "#2ecc71", "#f39c12", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#2ecc71", "#e74c3c", "#2ecc71", "#e74c3c", "#e74c3c", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#2ecc71", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#2ecc71", "#f39c12", "#e74c3c", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#f39c12", "#e74c3c" ] }, "name": "", "showlegend": true, "type": "pie" } ], "layout": { "legend": { "tracegroupgap": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Weak-supervision severity label distribution" } } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Distribution chart\n", "fig = px.pie(\n", " df, names='severity',\n", " title='Weak-supervision severity label distribution',\n", " color='severity',\n", " color_discrete_map={'routine': '#2ecc71', 'urgent': '#f39c12', 'critical': '#e74c3c'},\n", " hole=0.35,\n", ")\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "## 3. Train the Classifier\n", "\n", "This cell fine-tunes Bio_ClinicalBERT and saves the best checkpoint." ] }, { "cell_type": "code", "execution_count": 5, "id": "code", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2026-06-23 15:33:53 | INFO | src.nlp.classifier | ClinicalClassifier init: task=severity, model=emilyalsentzer/Bio_ClinicalBERT, labels=['routine', 'urgent', 'critical']\n", "2026-06-23 15:33:53 | INFO | src.nlp.classifier | Starting fine-tuning: task=severity\n", "2026-06-23 15:35:39 | INFO | src.nlp.classifier | Loading tokenizer: emilyalsentzer/Bio_ClinicalBERT\n", "2026-06-23 15:35:40 | INFO | src.nlp.classifier | Training data: 2324 notes, label dist={'routine': 875, 'urgent': 1098, 'critical': 351}\n", "2026-06-23 15:35:40 | INFO | src.nlp.classifier | Split: train=1742 val=349 test=233\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "238e316defa04700bdb4b8f32aaac9f0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading weights: 0%| | 0/199 [00:00Actual: %{y}
Count: %{z}", "name": "0", "texttemplate": "%{z}", "type": "heatmap", "x": [ "routine", "urgent", "critical" ], "xaxis": "x", "y": [ "routine", "urgent", "critical" ], "yaxis": "y", "z": { "bdata": "TQ0CC1oFAQYc", "dtype": "i1", "shape": "3, 3" } } ], "layout": { "coloraxis": { "autocolorscale": false, "colorbar": { "title": { "text": "Count" } }, "colorscale": [ [ 0, "rgb(247,251,255)" ], [ 0.125, "rgb(222,235,247)" ], [ 0.25, "rgb(198,219,239)" ], [ 0.375, "rgb(158,202,225)" ], [ 0.5, "rgb(107,174,214)" ], [ 0.625, "rgb(66,146,198)" ], [ 0.75, "rgb(33,113,181)" ], [ 0.875, "rgb(8,81,156)" ], [ 1, "rgb(8,48,107)" ] ] }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermap": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermap" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Confusion Matrix — Severity Classification (Test Set)" }, "xaxis": { "anchor": "y", "constrain": "domain", "domain": [ 0, 1 ], "scaleanchor": "y", "title": { "text": "Predicted" } }, "yaxis": { "anchor": "x", "autorange": "reversed", "constrain": "domain", "domain": [ 0, 1 ], "title": { "text": "Actual" } } } } }, "metadata": {}, "output_type": "display_data" }, { "ename": "", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", "\u001b[1;31mClick here for more info. \n", "\u001b[1;31mView Jupyter log for further details." ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import classification_report, confusion_matrix\n", "import plotly.express as px\n", "\n", "from src.utils.config import ClassifierConfig, TrainingConfig\n", "\n", "labels_list = ClassifierConfig.active_labels() # ['routine', 'urgent', 'critical']\n", "label2id = {lbl: i for i, lbl in enumerate(labels_list)}\n", "cfg = TrainingConfig\n", "\n", "# Reconstruct the exact same split used inside clf.train() — same filtering,\n", "# same integer label encoding, same seed — so this evaluates on the untouched\n", "# held-out test set rather than data the model has already seen.\n", "valid_mask = df['severity'].isin(labels_list)\n", "df_valid = df[valid_mask]\n", "texts = df_valid['transcription'].tolist()\n", "label_ids = [label2id[lbl] for lbl in df_valid['severity']]\n", "\n", "x_trainval, x_test, y_trainval, y_test_ids = train_test_split(\n", " texts, label_ids,\n", " test_size = cfg.test_split,\n", " random_state = cfg.random_seed,\n", " stratify = label_ids,\n", ")\n", "y_test = [labels_list[i] for i in y_test_ids]\n", "\n", "# Load the best saved checkpoint and predict on the held-out test set\n", "clf.load()\n", "results = clf.predict_batch(x_test)\n", "y_pred = [r.label for r in results]\n", "\n", "print(classification_report(y_test, y_pred, labels=labels_list, digits=3))\n", "\n", "cm = confusion_matrix(y_test, y_pred, labels=labels_list)\n", "fig = px.imshow(\n", " cm, text_auto=True,\n", " x=labels_list, y=labels_list,\n", " labels=dict(x='Predicted', y='Actual', color='Count'),\n", " title='Confusion Matrix — Severity Classification (Test Set)',\n", " color_continuous_scale='Blues',\n", ")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "fa41f720", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "233 233 233\n", "urgent 110\n", "routine 88\n", "critical 35\n", "Name: count, dtype: int64\n" ] } ], "source": [ "print(len(x_test), len(y_test), len(y_pred))\n", "print(pd.Series(y_test).value_counts())\n" ] }, { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "## 4. Save Metrics for the Dashboard" ] }, { "cell_type": "code", "execution_count": 10, "id": "code", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Metrics saved to C:\\Users\\Hp\\Documents\\clinical-nlp-pipeline\\data\\models\\severity_classifier\\training_metrics.json\n" ] } ], "source": [ "metrics_path = ModelConfig.fine_tuned_dir / 'training_metrics.json'\n", "metrics_path.parent.mkdir(parents=True, exist_ok=True)\n", "\n", "with open(metrics_path, 'w') as fh:\n", " json.dump(metrics, fh, indent=2)\n", "\n", "print(f'Metrics saved to {metrics_path}')" ] }, { "cell_type": "markdown", "id": "md", "metadata": {}, "source": [ "## 5. Inference on New Notes" ] }, { "cell_type": "code", "execution_count": 12, "id": "code", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2026-06-25 15:59:39 | INFO | src.nlp.classifier | Loading classifier from: C:\\Users\\Hp\\Documents\\clinical-nlp-pipeline\\data\\models\\severity_classifier\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "45a4a24079e443a7a0b5bdf8c963577b", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Loading weights: 0%| | 0/201 [00:00