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 _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; } }