public static class PlausibilityValidator
{
    // Plausible ranges define the outer boundary of physically possible values.
    // These are NOT clinical thresholds — they catch device malfunctions and typos.
    // A heart rate of 300 is clinically impossible; 150 is critical but possible.
    private static readonly Dictionary<string, (decimal Min, decimal Max)> _ranges = new()
    {
        ["HEART_RATE"]       = (1,    300),
        ["TEMP_C"]           = (15,   50),
        ["POTASSIUM_MEQ_L"]  = (0.1m, 12),
        ["SPO2"]             = (50,   100),
        ["RESP_RATE"]        = (1,    80),
        ["WBC_K_UL"]         = (0.1m, 500),
        ["GLUCOSE_MG_DL"]    = (10,   1000),
        ["SYSTOLIC_BP"]     = (40,    300),
        ["DIASTOLIC_BP"]    = (20,    200),
        ["LACTATE_MMOL_L"]  = (0.1m,  30),
        ["AVPU"] = (0, 3),
        ["SUPPLEMENTAL_O2"] = (0, 1),
        ["GCS_EYE"] = (1, 4),
        ["GCS_VERBAL"] = (1, 5),
        ["GCS_MOTOR"] = (1, 6),
        ["PAO2_MMHG"] = (20, 600),
        ["FIO2_PCT"] = (21, 100),
        ["PLATELET_K_UL"] = (1, 1500),
        ["BILIRUBIN_MG_DL"] = (0.1m, 50),
        ["CREATININE_MG_DL"] = (0.1m, 20),
        ["URINE_OUTPUT_ML_H"] = (0, 500),
    };

    public static bool IsPlausible(string observationCode, decimal value, out string? reason)
    {
        if (!_ranges.TryGetValue(observationCode, out var range))
        {
            // Unknown codes pass plausibility — threshold lookup will validate the code
            reason = null;
            return true;
        }

        if (value < range.Min || value > range.Max)
        {
            reason = $"Value {value} is outside the plausible range [{range.Min}–{range.Max}] for {observationCode}.";
            return false;
        }

        reason = null;
        return true;
    }
}