---
name: gcs-calculation
description: Extract and calculate Glasgow Coma Scale (GCS) for ICU patients. Use for neurological assessment, consciousness monitoring, or trauma severity scoring.
tier: validated
category: clinical
---

# Glasgow Coma Scale (GCS) Calculation

The Glasgow Coma Scale assesses level of consciousness through three components: Eye opening, Verbal response, and Motor response. This concept extracts and calculates GCS with special handling for intubated patients.

## When to Use This Skill

- Neurological status assessment
- Trauma severity scoring
- Sedation monitoring
- Severity scores (SOFA CNS, APACHE, SAPS)
- Consciousness trajectory analysis

## GCS Components and Scoring

| Response | Score 1 | Score 2 | Score 3 | Score 4 | Score 5 | Score 6 |
|----------|---------|---------|---------|---------|---------|---------|
| **Eye** | None | To pain | To speech | Spontaneous | - | - |
| **Verbal** | None | Incomprehensible | Inappropriate | Confused | Oriented | - |
| **Motor** | None | Extension | Flexion | Withdraws | Localizes | Obeys |

**Total GCS Range**: 3-15 (lower = worse)

## Pre-computed Table

```sql
SELECT
    subject_id,
    stay_id,
    charttime,
    gcs,          -- Total GCS score
    gcs_motor,    -- Motor component (1-6)
    gcs_verbal,   -- Verbal component (1-5)
    gcs_eyes,     -- Eye component (1-4)
    gcs_unable    -- 1 if unable to assess (intubated/sedated)
FROM mimiciv_derived.gcs;
```

## MetaVision Item IDs

| Component | Item ID | Description |
|-----------|---------|-------------|
| Verbal | 223900 | GCS - Verbal Response |
| Motor | 223901 | GCS - Motor Response |
| Eyes | 220739 | GCS - Eye Opening |

## Critical Implementation Notes

1. **Intubated Patients**: When verbal response is documented as "No Response-ETT" (endotracheal tube), the verbal component is set to **0** (not 1, not 5) and flagged with `gcs_unable = 1`. The total GCS is then set to **15** (assumed normal if only intubation prevents assessment). **Important**: report `gcs_verbal = 0` in the output — do NOT replace it with 5. The value 0 is a sentinel meaning "untestable."

2. **Component Carry-Forward**: If only one or two components are documented at a time, previous values from the past 6 hours are carried forward. This prevents artificially low scores from incomplete charting.

3. **Calculation Logic**:
   ```
   GCS = Motor + Verbal + Eyes

   IF current verbal = 0 (intubated) THEN GCS = 15 (but keep gcs_verbal = 0 in output)
   ELSE IF previous verbal = 0 THEN use current components only (don't carry forward)
   ELSE carry forward missing components from past 6 hours
   ```

4. **Sedated Patients**: Per SAPS-II guidelines, sedated patients should use pre-sedation GCS. In practice, if documented as "unable to score due to medication", this is flagged.

5. **Time Series**: Each row represents a charted observation, not an hourly aggregate. Multiple observations per hour are possible.

## Example: Worst GCS Per ICU Stay

```sql
SELECT
    stay_id,
    MIN(gcs) AS worst_gcs,
    MIN(gcs_motor) AS worst_motor,
    MIN(gcs_verbal) AS worst_verbal,
    MIN(gcs_eyes) AS worst_eyes
FROM mimiciv_derived.gcs
WHERE gcs_unable = 0  -- Exclude intubated/sedated
GROUP BY stay_id;
```

## Example: GCS Categories

```sql
SELECT
    CASE
        WHEN gcs <= 8 THEN 'Severe (3-8)'
        WHEN gcs <= 12 THEN 'Moderate (9-12)'
        ELSE 'Mild (13-15)'
    END AS gcs_category,
    COUNT(*) AS n_observations
FROM mimiciv_derived.gcs
WHERE gcs_unable = 0
GROUP BY 1
ORDER BY 1;
```

## Example: First Day Minimum GCS

```sql
-- Include ALL patients (intubated patients have gcs=15, gcs_verbal=0)
SELECT
    ie.stay_id,
    MIN(g.gcs) AS first_day_min_gcs
FROM mimiciv_icu.icustays ie
LEFT JOIN mimiciv_derived.gcs g ON g.stay_id = ie.stay_id
    AND g.charttime >= ie.intime - INTERVAL '6' HOUR
    AND g.charttime <= ie.intime + INTERVAL '1' DAY
GROUP BY ie.stay_id;
```

## Example: GCS Trajectory

```sql
WITH hourly_gcs AS (
    SELECT
        stay_id,
        DATETIME_TRUNC(charttime, HOUR) AS hour,
        AVG(gcs) AS avg_gcs
    FROM mimiciv_derived.gcs
    WHERE gcs_unable = 0
    GROUP BY stay_id, DATETIME_TRUNC(charttime, HOUR)
)
SELECT
    stay_id,
    hour,
    avg_gcs,
    avg_gcs - LAG(avg_gcs) OVER (PARTITION BY stay_id ORDER BY hour) AS gcs_change
FROM hourly_gcs;
```

## Example: Handle Intubated Patients

```sql
-- Option 1: Exclude intubated patients
SELECT stay_id, MIN(gcs) AS min_gcs
FROM mimiciv_derived.gcs
WHERE gcs_unable = 0
GROUP BY stay_id;

-- Option 2: Use motor score only for intubated (mGCS)
SELECT
    stay_id,
    MIN(CASE WHEN gcs_unable = 1 THEN gcs_motor ELSE gcs END) AS min_gcs_or_motor
FROM mimiciv_derived.gcs
GROUP BY stay_id;
```

## References

- Teasdale G, Jennett B. "Assessment of coma and impaired consciousness: A practical scale." Lancet. 1974;2(7872):81-84.
- Teasdale G et al. "The Glasgow Coma Scale at 40 years: standing the test of time." Lancet Neurology. 2014;13(8):844-854.
