mimic-oasis-24h-raw

mimic-oasis-24h-raw is a skill for Claude Code, Codex from hannesill/m4. It costs 0 tokens per session (2,079 once invoked), scanned A, a copy of mimic-apsiii-24h-raw, MIT.

A reference SQL query for calculating the Oxford Acute Severity of Illness Score, or OASIS, for the first 24 hours of an intensive-care stay.

In plain words
What is it for?
Use it to compare, adapt, or understand SQL that calculates OASIS from the MIMIC clinical database.
Why use it?
It provides a concrete implementation reference for a clinical score based on vital signs, urine output, consciousness, ventilation, age, stay length, and admission type, without laboratory results.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to compare, adapt, or understand SQL that calculates OASIS from the MIMIC clinical database.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/hannesill/m4/mimic-oasis-24h-raw
View source ↗ hannesill/m4
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add hannesill/m4 --skill mimic-oasis-24h-raw
Clone the repo
git clone --depth 1 https://github.com/hannesill/m4

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mimic-oasis-24h-raw

README.md
[![agentmods](https://agentmods.dev/badge/skills/hannesill/m4/mimic-oasis-24h-raw/github.svg)](https://agentmods.dev/skills/hannesill/m4/mimic-oasis-24h-raw)
Your own site
<a href="https://agentmods.dev/skills/hannesill/m4/mimic-oasis-24h-raw"><img src="https://agentmods.dev/badge/skills/hannesill/m4/mimic-oasis-24h-raw/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for mimic-oasis-24h-raw

Your own site · 80×15
<a href="https://agentmods.dev/skills/hannesill/m4/mimic-oasis-24h-raw"><img src="https://agentmods.dev/badge/skills/hannesill/m4/mimic-oasis-24h-raw.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,079 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.02079
Opus 5 $0.00000 $0.01040
Sonnet 5 $0.00000 $0.00416
Haiku 4.5 $0.00000 $0.00208

Measured 11d ago against content hash 150882b0248f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

mimic-oasis-24h-raw scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to mimic-apsiii-24h-raw — 1,080 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

benchmark/tasks/oasis/mimic-oasis-24h-raw/skills-rawsql/mimic-oasis-24h-raw/SKILL.md · 219 lines

How it starts

The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Reference SQL (matched-content control)

The following block is the public reference SQL used to construct the ground truth for this task. It is provided verbatim, without procedural prose, to test whether matched task-relevant content alone explains the WITH-SKILL gain.

-- ------------------------------------------------------------------
-- Title: Oxford Acute Severity of Illness Score (OASIS)
-- This query extracts the OASIS score for the first 24 hours of each
-- ICU patient's stay. OASIS uses 10 components — vitals, urine output,
-- GCS, ventilation status, age, pre-ICU LOS, and admission type.
-- Notably, it requires NO laboratory values.
-- ------------------------------------------------------------------

-- Reference for OASIS:
--    Johnson AEW, Kramer AA, Clifford GD. "A new severity of illness
--    scale using a subset of APACHE data elements shows comparable
--    predictive accuracy." Crit Care Med. 2013;41(7):1711-1718.

-- Adapted from mimic-code oasis.sql

WITH surgflag AS (
    SELECT
        ie.stay_id,
        MAX(
            CASE
                WHEN LOWER(curr_service) LIKE '%surg%'
                THEN 1
                WHEN curr_service = 'ORTHO'
                THEN 1
                ELSE 0
            END
        ) AS surgical
    FROM mimiciv_icu.icustays AS ie
    LEFT JOIN mimiciv_hosp.services AS se
        ON ie.hadm_id = se.hadm_id AND se.transfertime < ie.intime + INTERVAL '1' DAY
    GROUP BY
        ie.stay_id
)

, vent AS (
    SELECT
        ie.stay_id,
        MAX(CASE WHEN NOT v.stay_id IS NULL THEN 1 ELSE 0 END) AS vent
    FROM mimiciv_icu.icustays AS ie
    LEFT JOIN mimiciv_derived.ventilation AS v
        ON ie.stay_id = v.stay_id
        AND v.ventilation_status = 'InvasiveVent'
        AND (
            (v.starttime >= ie.intime AND v.starttime <= ie.intime + INTERVAL '1' DAY)
            OR (v.endtime >= ie.intime AND v.endtime <= ie.intime + INTERVAL '1' DAY)
            OR (v.starttime <= ie.intime AND v.endtime >= ie.intime + INTERVAL '1' DAY)
        )
    GROUP BY
        ie.stay_id
)

, cohort AS (
    SELECT
        ie.subject_id,
        ie.hadm_id,
        ie.stay_id,
        DATE_DIFF('microseconds', adm.admittime, ie.intime)/60000000.0 AS preiculos,
        ag.age,
        gcs.gcs_min,
        vital.heart_rate_max,
        vital.heart_rate_min,
        vital.mbp_max,
        vital.mbp_min,
        vital.resp_rate_max,
        vital.resp_rate_min,
        vital.temperature_max,
        vital.temperature_min,
        vent.vent AS mechvent,
        uo.urineoutput,
        CASE
            WHEN adm.admission_type = 'ELECTIVE' AND sf.surgical = 1
            THEN 1
            WHEN adm.admission_type IS NULL OR sf.surgical IS NULL
            THEN NULL
            ELSE 0
        END AS electivesurgery
    FROM mimiciv_icu.icustays AS ie
    INNER JOIN mimiciv_hosp.admissions AS adm
        ON ie.hadm_id = adm.hadm_id
    INNER JOIN mimiciv_hosp.patients AS pat
        ON ie.subject_id = pat.subject_id
    LEFT JOIN mimiciv_derived.age AS ag
        ON ie.hadm_id = ag.hadm_id
    LEFT JOIN surgflag AS sf
        ON ie.stay_id = sf.stay_id
    LEFT JOIN mimiciv_derived.first_day_gcs AS gcs
        ON ie.stay_id = gcs.stay_id
    LEFT JOIN mimiciv_derived.first_day_vitalsign AS vital
        ON ie.stay_id = vital.stay_id
    LEFT JOIN mimiciv_derived.first_day_urine_output AS uo
        ON ie.stay_id = uo.stay_id
    LEFT JOIN vent
        ON ie.stay_id = vent.stay_id
)

, scorecomp AS (
    SELECT
        co.subject_id,
        co.hadm_id,
        co.stay_id,
        CASE
            WHEN preiculos IS NULL THEN NULL
            WHEN preiculos < 10.2 THEN 5
            WHEN preiculos < 297 THEN 3
            WHEN preiculos < 1440 THEN 0
            WHEN preiculos < 18708 THEN 2
            ELSE 1
        END AS preiculos_score,
        CASE
            WHEN age IS NULL THEN NULL
            WHEN age < 24 THEN 0
            WHEN age <= 53 THEN 3
            WHEN age <= 77 THEN 6
            WHEN age <= 89 THEN 9
            WHEN age >= 90 THEN 7
            ELSE 0
        END AS age_score,
        CASE
            WHEN gcs_min IS NULL THEN NULL
            WHEN gcs_min <= 7 THEN 10
            WHEN gcs_min < 14 THEN 4
            WHEN gcs_min = 14 THEN 3
            ELSE 0
        END AS gcs_score,
        CASE
            WHEN heart_rate_max IS NULL THEN NULL
            WHEN heart_rate_max > 125 THEN 6
            WHEN heart_rate_min < 33 THEN 4
            WHEN heart_rate_max >= 107 AND heart_rate_max <= 125 THEN 3
            WHEN heart_rate_max >= 89 AND heart_rate_max <= 106 THEN 1
            ELSE 0
        END AS heart_rate_score,
        CASE
            WHEN mbp_min IS NULL THEN NULL
            WHEN mbp_min < 20.65 THEN 4
            WHEN mbp_min < 51 THEN 3
            WHEN mbp_max > 143.44 THEN 3
            WHEN mbp_min >= 51 AND mbp_min < 61.33 THEN 2
            ELSE 0
        END AS mbp_score,
        CASE
            WHEN resp_rate_min IS NULL THEN NULL
            WHEN resp_rate_min < 6 THEN 10
            WHEN resp_rate_max > 44 THEN 9
            WHEN resp_rate_max > 30 THEN 6
            WHEN resp_rate_max > 22 THEN 1
            WHEN resp_rate_min < 13 THEN 1
            ELSE 0
        END AS resp_rate_score,
        CASE
            WHEN temperature_max IS NULL THEN NULL
            WHEN temperature_max > 39.88 THEN 6
            WHEN temperature_min >= 33.22 AND temperature_min <= 35.93 THEN 4
            WHEN temperature_max >= 33.22 AND temperature_max <= 35.93 THEN 4
            WHEN temperature_min < 33.22 THEN 3
            WHEN temperature_min > 35.93 AND temperature_min <= 36.39 THEN 2
            WHEN temperature_max >= 36.89 AND temperature_max <= 39.88 THEN 2
            ELSE 0
        END AS temp_score,
        CASE
            WHEN urineoutput IS NULL THEN NULL
            WHEN urineoutput < 671.09 THEN 10
            WHEN urineoutput > 6896.80 THEN 8
            WHEN urineoutput >= 671.09 AND urineoutput <= 1426.99 THEN 5
            WHEN urineoutput >= 1427.00 AND urineoutput <= 2544.14 THEN 1
            ELSE 0
        END AS urineoutput_score,
        CASE
            WHEN mechvent IS NULL THEN NULL
            WHEN mechvent = 1 THEN 9
            ELSE 0
        END AS mechvent_score,
        CASE
            WHEN electivesurgery IS NULL THEN NULL
            WHEN electivesurgery = 1 THEN 0
            ELSE 6
        END AS electivesurgery_score
    FROM cohort AS co
)

SELECT
    subject_id, hadm_id, stay_id
    -- Combine all scores to get OASIS total
    -- Impute 0 if the score is missing
    , COALESCE(preiculos_score, 0)
    + COALESCE(age_score, 0)
    + COALESCE(gcs_score, 0)
    + COALESCE(heart_rate_score, 0)
    + COALESCE(mbp_score, 0)
    + COALESCE(resp_rate_score, 0)
    + COALESCE(temp_score, 0)
    + COALESCE(urineoutput_score, 0)
    + COALESCE(mechvent_score, 0)
    + COALESCE(electivesurgery_score, 0)
    AS oasis
    -- DEVIATION from mimic-code: COALESCE component scores to 0.
    -- See sofa-24h.sql for rationale.
    , COALESCE(preiculos_score, 0) AS preiculos_score
    , COALESCE(age_score, 0) AS age_score
    , COALESCE(gcs_score, 0) AS gcs_score
    , COALESCE(heart_rate_score, 0) AS heart_rate_score
    , COALESCE(mbp_score, 0) AS mbp_score
    , COALESCE(resp_rate_score, 0) AS resp_rate_score
    , COALESCE(temp_score, 0) AS temp_score
    , COALESCE(urineoutput_score, 0) AS urineoutput_score
    , COALESCE(mechvent_score, 0) AS mechvent_score
    , COALESCE(electivesurgery_score, 0) AS electivesurgery_score
FROM scorecomp
;

Read the full file on GitHub · 219 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 219 lines · 0 tokens per session scan A 150882b0248f

Subscribe to this mod's changes

mimic-oasis-24h-raw is a skill published in the GitHub repository hannesill/m4 (43 stars, last pushed 1mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,079 tokens. A static security scan graded it A with 0 findings. It is 100% identical to mimic-apsiii-24h-raw, differing in 1,080 lines, and is treated as a copy.

Related

Other skills, from other repositories

arbor-agent-orchestrator

Top-level controller for recreating the open-source AutoResearch workflow as a suite of skills. Use when the user asks to run, emulate, extract, validate, or refine Arbor/AutoResearch behavior, especially when a coordinator must load phase skills for setup, ideation, executors, merge evaluation, novelty search…

RUC-NLPIR/Arbor · 77 tokens

dfam-check

Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF). Use when the user asks whether a part is printable, wants overhang/wall-thickness/support analysis of an .stl, .obj, .ply, or .3mf mesh, wants a build-orientation…

earthtojake/text-to-cad · 111 tokens

tooluniverse-phylogenetics

Phylogenetic analysis — de novo multiple sequence alignment (Clustal Omega/MUSCLE/MAFFT via EBImsaalign) and neighbour-joining/UPGMA tree building (EBIbuildphylogenetictree) from your own sequences, plus tree analysis, treeness, saturation (PhyKIT), parsimony-informative sites, alignment gap analysis, DVMC…

mims-harvard/ToolUniverse · 155 tokens

tooluniverse-gene-enrichment

Gene-set enrichment analysis — GO (Biological Process, Molecular Function, Cellular Component), KEGG, Reactome pathway enrichment via clusterProfiler, gseapy, ORA, GSEA. Use for interpreting DEG lists, screen hit lists, or any gene-list-to-pathways query. Includes simplify-cutoff handling and union-vs-total…

mims-harvard/ToolUniverse · 82 tokens

tooluniverse-population-genetics

Population genetics analysis — allele frequencies (gnomAD, 1000 Genomes), Hardy-Weinberg equilibrium testing, Fst between populations, GWAS associations, evolutionary constraint scores. Use for cross-population variant comparison, ancestry-aware allele frequency lookups, and population-level evolutionary analysis.

mims-harvard/ToolUniverse · 66 tokens

tooluniverse-variant-analysis

VCF and variant analysis — parsing, annotation, classification (synonymous, missense, frameshift, stopgained), VAF filtering, coding vs non-coding categorization, multi-condition variant comparison. Use for VCF parsing, variant fraction calculations (denominator = coding subset only, NOT all variants), and per-sample…

mims-harvard/ToolUniverse · 77 tokens