"""
Sick Day Knowledge Base for Type 1 Diabetes Management
This module contains evidence-based clinical guidelines for managing
Type 1 Diabetes during illness (sick days).
All data is sourced from verified medical guidelines:
- ISPAD Clinical Practice Consensus Guidelines 2024
- ADA Standards of Care in Diabetes
- IDF (International Diabetes Federation) Guidelines
DISCLAIMER: This information is for educational purposes only and should
not replace professional medical advice. Always consult with your
healthcare team for personalized guidance.
"""
from typing import Dict, List, Any
from dataclasses import dataclass
from enum import Enum
class RiskLevel(Enum):
"""Risk level classification based on ISPAD/ADA guidelines."""
NORMAL = "normal"
CAUTION = "caution"
WARNING = "warning"
DANGER = "danger"
EMERGENCY = "emergency"
# =============================================================================
# GLUCOSE RISK LEVELS
# Based on ISPAD 2024 Clinical Practice Consensus Guidelines
# and ADA Standards of Care in Diabetes
# =============================================================================
GLUCOSE_RISK_LEVELS: Dict[str, Dict[str, Any]] = {
"severe_hypoglycemia": {
"range_mg_dl": (0, 54),
"range_mmol_l": (0, 3.0),
"level": RiskLevel.EMERGENCY,
"emoji": "๐ด",
"name_ko": "์ฌ๊ฐํ ์ ํ๋น",
"name_en": "Severe Hypoglycemia",
"actions": [
"์์์ด ์์ผ๋ฉด: ์ฆ์ 15-20g ์ํจ์ฑ ํ์ํ๋ฌผ ์ญ์ทจ (ํฌ๋๋น, ์ฃผ์ค, ์ฌํ)",
"15๋ถ ํ ์ฌ์ธก์ , ์ฌ์ ํ ๋ฎ์ผ๋ฉด ๋ฐ๋ณต",
"์์ ์ ํ ์: ๊ธ๋ฃจ์นด๊ณค ํฌ์ฌ ๋๋ 119 ํธ์ถ"
],
"follow_up": "ํ๋ณต ํ ๋ณตํฉ ํ์ํ๋ฌผ ์ญ์ทจ, ์๋ฃํ์ ๋ณด๊ณ ",
"source": "ISPAD 2024 - Level 2 Hypoglycemia (<54 mg/dL)"
},
"hypoglycemia": {
"range_mg_dl": (54, 70),
"range_mmol_l": (3.0, 3.9),
"level": RiskLevel.DANGER,
"emoji": "๐ ",
"name_ko": "์ ํ๋น",
"name_en": "Hypoglycemia",
"actions": [
"15g ์ํจ์ฑ ํ์ํ๋ฌผ ์ญ์ทจ (ํฌ๋๋น ์ ์ , ์ฃผ์ค 120ml)",
"15๋ถ ํ ์ฌ์ธก์ ",
"70 mg/dL ์ด์ ๋ ๋๊น์ง ๋ฐ๋ณต"
],
"follow_up": "์์ธ ํ์
(์ธ์๋ฆฐ ๊ณผ๋ค, ์์ฌ ์ง์ฐ, ์ด๋ ๋ฑ)",
"source": "ADA Standards of Care - Hypoglycemia Alert Value"
},
"low_normal": {
"range_mg_dl": (70, 90),
"range_mmol_l": (3.9, 5.0),
"level": RiskLevel.CAUTION,
"emoji": "๐ก",
"name_ko": "๋ฎ์ ์ ์",
"name_en": "Low Normal",
"actions": [
"์ํ ๋ ์๋ ๊ฐ์ ์ค๋น",
"30๋ถ ํ ์ฌ์ธก์ ๊ถ์ฅ",
"ํ๋ ์ ํ์ํ๋ฌผ ์ญ์ทจ ๊ณ ๋ ค"
],
"follow_up": "์ ์ ๋ฒ์ ์ ์ง ๋ชจ๋ํฐ๋ง",
"source": "ISPAD 2024 - Sick Day Target Range (70-180 mg/dL)"
},
"target_range": {
"range_mg_dl": (90, 180),
"range_mmol_l": (5.0, 10.0),
"level": RiskLevel.NORMAL,
"emoji": "๐ข",
"name_ko": "๋ชฉํ ๋ฒ์",
"name_en": "Target Range",
"actions": [
"ํ์ฌ ๊ด๋ฆฌ ์ ์ง",
"์ํ ๋ : 2-4์๊ฐ ๊ฐ๊ฒฉ ๋ชจ๋ํฐ๋ง ์ง์",
"์๋ถ ์ญ์ทจ ์ ์ง"
],
"follow_up": "์ฆ์ ํธ์ ๊น์ง ๋ชจ๋ํฐ๋ง ์ง์",
"source": "ISPAD 2024 - Sick Day Target Range (70-180 mg/dL)"
},
"elevated": {
"range_mg_dl": (180, 250),
"range_mmol_l": (10.0, 13.9),
"level": RiskLevel.CAUTION,
"emoji": "๐ก",
"name_ko": "๋์",
"name_en": "Elevated",
"actions": [
"์๋ถ ์ญ์ทจ ์ฆ๊ฐ (๋ฌด์คํ ์๋ฃ)",
"2์๊ฐ ๊ฐ๊ฒฉ ๋ชจ๋ํฐ๋ง",
"์ผํค ์ธก์ ๊ณ ๋ ค (ํนํ 240 mg/dL ์ด์ ์)"
],
"follow_up": "๊ต์ ์ธ์๋ฆฐ ๊ณ ๋ ค (์๋ฃํ ์ง์์ ๋ฐ๋ผ)",
"source": "ADA Standards of Care - Increased Monitoring Threshold"
},
"high": {
"range_mg_dl": (250, 300),
"range_mmol_l": (13.9, 16.7),
"level": RiskLevel.WARNING,
"emoji": "๐ ",
"name_ko": "๋งค์ฐ ๋์",
"name_en": "High",
"actions": [
"์ผํค ์ธก์ ํ์",
"์๋ถ ์ญ์ทจ ์ฆ๊ฐ (์๊ฐ๋น 120-180ml)",
"์๋ฃํ์ ์ฐ๋ฝํ์ฌ ์ธ์๋ฆฐ ์กฐ์ ์๋ด"
],
"follow_up": "์ผํค์ด ์์ฑ์ด๋ฉด ์ฆ์ ์๋ฃํ ์ฐ๋ฝ",
"source": "ADA - Check ketones if glucose >240 mg/dL"
},
"dka_risk": {
"range_mg_dl": (300, 9999),
"range_mmol_l": (16.7, 999),
"level": RiskLevel.DANGER,
"emoji": "๐ด",
"name_ko": "DKA ์ํ",
"name_en": "DKA Risk Zone",
"actions": [
"์ฆ์ ์ผํค ์ธก์ ",
"์๋ฃํ ๋๋ ์๊ธ์ค ์ฐ๋ฝ",
"์๋ถ ์ญ์ทจ ์ง์ (๊ตฌํ ์๋ ๊ฒฝ์ฐ)",
"์ถ๊ฐ ์ธ์๋ฆฐ ์ฉ๋์ ์๋ฃํ ์ง์์ ๋ฐ๋ผ ํฌ์ฌ"
],
"follow_up": "์ผํค >3.0 mmol/L ๋๋ ์ฆ์ ์
ํ ์ ์๊ธ์ค ๋ฐฉ๋ฌธ",
"source": "ISPAD 2024 - DKA Prevention, ADA Sick Day Rules"
}
}
# =============================================================================
# KETONE RISK LEVELS
# Based on ISPAD 2024 and ADA Guidelines
# Blood ketone (beta-hydroxybutyrate) levels
# =============================================================================
KETONE_RISK_LEVELS: Dict[str, Dict[str, Any]] = {
"normal": {
"range_mmol_l": (0, 0.6),
"level": RiskLevel.NORMAL,
"emoji": "๐ข",
"name_ko": "์ ์",
"name_en": "Normal",
"actions": [
"๋ชจ๋ํฐ๋ง ์ง์",
"ํ๋น์ด ๋์ผ๋ฉด ์๋ถ ์ญ์ทจ ์ฆ๊ฐ"
],
"source": "ISPAD 2024 - Target ketone level <0.6 mmol/L"
},
"mild": {
"range_mmol_l": (0.6, 1.5),
"level": RiskLevel.CAUTION,
"emoji": "๐ก",
"name_ko": "๊ฒฝ๋ฏธํ ์ผํคํ์ฆ",
"name_en": "Mild Ketonemia",
"actions": [
"์๋ฃํ์ ์ฐ๋ฝ",
"์๋ถ ์ญ์ทจ ์ฆ๊ฐ",
"์ถ๊ฐ ์ธ์๋ฆฐ ํฌ์ฌ ๊ณ ๋ ค (์๋ฃํ ์ง์)",
"2์๊ฐ๋ง๋ค ์ผํค ์ฌ์ธก์ "
],
"source": "ISPAD 2024 - Contact diabetes team if >0.6 mmol/L"
},
"moderate": {
"range_mmol_l": (1.5, 3.0),
"level": RiskLevel.WARNING,
"emoji": "๐ ",
"name_ko": "์ค๋ฑ๋ ์ผํคํ์ฆ",
"name_en": "Moderate Ketonemia",
"actions": [
"์ฆ์ ์๋ฃํ์ ์ฐ๋ฝ",
"์ถ๊ฐ ์ธ์๋ฆฐ ํ์ (์ด ์ผ์ผ๋์ 10-20%)",
"์๋ถ ์ญ์ทจ ์ง์",
"1-2์๊ฐ๋ง๋ค ํ๋น ๋ฐ ์ผํค ๋ชจ๋ํฐ๋ง"
],
"source": "ISPAD 2024 - Moderate ketones require medical guidance"
},
"severe": {
"range_mmol_l": (3.0, 999),
"level": RiskLevel.EMERGENCY,
"emoji": "๐ด",
"name_ko": "์ฌ๊ฐํ ์ผํคํ์ฆ (DKA ์ํ)",
"name_en": "Severe Ketonemia (DKA Risk)",
"actions": [
"์ฆ์ ์๊ธ์ค ๋ฐฉ๋ฌธ",
"IV ์์ก ๋ฐ ์ธ์๋ฆฐ ์น๋ฃ ํ์",
"๊ตฌํ , ๋ณตํต, ๋น ๋ฅธ ํธํก ๋ฑ DKA ์ฆ์ ํ์ธ"
],
"source": "ISPAD 2024 - Blood ketones >3.0 mmol/L require hospital treatment"
}
}
# =============================================================================
# SYMPTOM GUIDELINES
# Based on ISPAD Sick Day Management Chapter and ADA Guidelines
# =============================================================================
SYMPTOM_GUIDELINES: Dict[str, Dict[str, Any]] = {
"fever": {
"name_ko": "๋ฐ์ด",
"name_en": "Fever",
"glucose_impact": "์์น ๊ฐ๋ฅ์ฑ ๋์ (์คํธ๋ ์ค ํธ๋ฅด๋ชฌ ๋ถ๋น ์ฆ๊ฐ)",
"risk_multiplier": 1.3, # ํ๋น ๋ณ๋ ์ํ ์ฆ๊ฐ ๊ณ์
"advice": [
"ํ๋น ๋ชจ๋ํฐ๋ง ๋น๋ ์ฆ๊ฐ (2-4์๊ฐ ๊ฐ๊ฒฉ)",
"์๋ถ ์ญ์ทจ ์ฆ๊ฐ (์๊ฐ๋น 100ml ์ด์)",
"ํด์ด์ ๋ณต์ฉ ๊ฐ๋ฅ (ํ๋ผ์ธํ๋ชฐ/์ด๋ถํ๋กํ, ๋น๋ถ ๋ฏธํฌํจ ์ ํ)"
],
"warning_signs": [
"38.5ยฐC ์ด์ 24์๊ฐ ์ง์",
"์คํ ๋๋ฐ",
"ํด์ด์ ์ ๋ฐ์ ์์"
],
"source": "ISPAD 2024 - Treat fever as in children without diabetes"
},
"vomiting": {
"name_ko": "๊ตฌํ ",
"name_en": "Vomiting",
"glucose_impact": "๋ถ์์ (ํ์ + ์์ ํก์ ์ ํ)",
"risk_multiplier": 2.0, # ๋์ ์ํ
"advice": [
"ํ์ ๋ฐฉ์ง: 15๋ถ๋ง๋ค ํ ๋ชจ๊ธ์ฉ ๋ฌผ ์ญ์ทจ",
"์ ํด์ง ์๋ฃ ๊ถ์ฅ (์ด์จ์๋ฃ ํฌ์)",
"์ผํค ์ธก์ ํ์",
"์ธ์๋ฆฐ์ ์ค๋จํ์ง ์๋, ์ฉ๋ ์กฐ์ ํ์ํ ์ ์์"
],
"warning_signs": [
"2์๊ฐ ์ด์ ์ง์",
"์๋ถ ์ญ์ทจ ๋ถ๊ฐ",
"ํ์ก ์์"
],
"emergency_threshold": "2์๊ฐ ์ด์ ๊ตฌํ ์ง์ ์ ์๊ธ์ค ๋ฐฉ๋ฌธ",
"source": "ISPAD 2024 - Vomiting >2 hours requires medical attention"
},
"diarrhea": {
"name_ko": "์ค์ฌ",
"name_en": "Diarrhea",
"glucose_impact": "์ ํ๋น ์ํ ์ฆ๊ฐ (ํก์ ์ฅ์ )",
"risk_multiplier": 1.5,
"advice": [
"ํ์ ๋ฐฉ์ง๊ฐ ์ต์ฐ์ ",
"์ ํด์ง ๋ณด์ถฉ ํ์ (ORS ๋๋ ํฌ์ ์ด์จ์๋ฃ)",
"ํ๋น์ด ๋ฎ์์ง๋ฉด ๋น๋ถ ํฌํจ ์๋ฃ ์ญ์ทจ",
"BRAT ์์ด ๊ถ์ฅ (๋ฐ๋๋, ์, ์ฌ๊ณผ์์ค, ํ ์คํธ)"
],
"warning_signs": [
"24์๊ฐ ์ด์ ์ง์",
"ํ๋ณ ๋๋ ์ ์ก ์์",
"์ฌํ ๋ณตํต ๋๋ฐ"
],
"source": "ADA Sick Day Rules - Fluid replacement priority"
},
"nausea": {
"name_ko": "๋ฉ์ค๊บผ์",
"name_en": "Nausea",
"glucose_impact": "์์ฌ๋ ๊ฐ์๋ก ์ ํ๋น ๊ฐ๋ฅ",
"risk_multiplier": 1.3,
"advice": [
"์ ์ ์ ์์ฃผ ์ญ์ทจ",
"๋ฌดํ์ฐ, ๋ฌด์นดํ์ธ ์๋ฃ ๊ถ์ฅ",
"ํ๋น 180 mg/dL ์ดํ๋ฉด ๋น๋ถ ํฌํจ ์๋ฃ ๊ฐ๋ฅ",
"์ฟ ํค, ํฌ๋์ปค ๋ฑ ๋ด๋ฐฑํ ์์ ์๋"
],
"warning_signs": [
"24์๊ฐ ์ด์ ์ง์",
"๊ตฌํ ๋ก ์งํ"
],
"source": "ISPAD 2024 - If appetite decreased, consider sugary fluids"
},
"cold_flu": {
"name_ko": "๊ฐ๊ธฐ/๋
๊ฐ",
"name_en": "Cold/Flu",
"glucose_impact": "์์น ๊ฐ๋ฅ์ฑ (๋ฉด์ญ ๋ฐ์)",
"risk_multiplier": 1.2,
"advice": [
"์ถฉ๋ถํ ํด์",
"์๋ถ ์ญ์ทจ ์ฆ๊ฐ",
"๋ฌด์คํ ๊ธฐ์นจ์ฝ ์ ํ",
"์ฆ์ ์ํ์ ๋ณต์ฉ ๊ฐ๋ฅ (๋น๋ถ ๋ฏธํฌํจ ํ์ธ)"
],
"warning_signs": [
"ํธํก ๊ณค๋",
"๊ณ ์ด ๋๋ฐ (38.5ยฐC ์ด์)",
"์ฆ์ ์
ํ"
],
"source": "ADA - Treat underlying illness appropriately"
},
"infection": {
"name_ko": "๊ฐ์ผ",
"name_en": "Infection",
"glucose_impact": "์์น ๊ฐ๋ฅ์ฑ ๋์",
"risk_multiplier": 1.5,
"advice": [
"์๋ฃ์ง ์ง์ฐฐ ํ์",
"์ฒ๋ฐฉ๋ ํญ์์ ๋ณต์ฉ (ํ์์)",
"ํ๋น ๋ชจ๋ํฐ๋ง ๊ฐํ",
"์ธ์๋ฆฐ ์ฉ๋ ์ฆ๊ฐ ํ์ํ ์ ์์"
],
"warning_signs": [
"๋ฐ์ด ์ง์",
"๊ตญ์ ์ฆ์ ์
ํ",
"์ ์ ์ ์ฝ๊ฐ"
],
"source": "ISPAD 2024 - Treat bacterial infections with antibiotics"
}
}
# =============================================================================
# EMERGENCY CRITERIA
# When to seek immediate medical attention
# Based on ISPAD and ADA Guidelines
# =============================================================================
EMERGENCY_CRITERIA: Dict[str, Dict[str, Any]] = {
"dka_symptoms": {
"name_ko": "๋น๋จ๋ณ์ฑ ์ผํค์ฐ์ฆ (DKA) ์ฆ์",
"indicators": [
"ํ๋น >300 mg/dL (16.7 mmol/L) ์ง์",
"ํ์ค ์ผํค >3.0 mmol/L",
"๊ณผ์ผ ๋์ ๋๋ ํธํก (์์ธํค ๋์)",
"๋น ๋ฅด๊ณ ๊น์ ํธํก (์ฟ ์ค๋ง์ธ ํธํก)",
"์ฌํ ๋ณตํต",
"์์ ํผ๋ ๋๋ ์กธ๋ฆผ",
"์ฌํ ๊ตฌํ (2์๊ฐ ์ด์)"
],
"action": "์ฆ์ 119 ํธ์ถ ๋๋ ์๊ธ์ค ๋ฐฉ๋ฌธ",
"source": "ISPAD 2024 - DKA Recognition"
},
"severe_hypoglycemia": {
"name_ko": "์ฌ๊ฐํ ์ ํ๋น",
"indicators": [
"์์ ์ ํ ๋๋ ํผ๋",
"๊ฒฝ๋ จ",
"์ค์ค๋ก ๋น๋ถ ์ญ์ทจ ๋ถ๊ฐ"
],
"action": "๊ธ๋ฃจ์นด๊ณค ํฌ์ฌ, 119 ํธ์ถ",
"source": "ADA - Severe Hypoglycemia Management"
},
"dehydration": {
"name_ko": "์ฌํ ํ์",
"indicators": [
"4์๊ฐ ์ด์ ์๋ถ ์ญ์ทจ ๋ถ๊ฐ",
"์๋ณ๋ ํ์ ํ ๊ฐ์",
"๋ ํจ๋ชฐ, ํผ๋ถ ํ๋ ฅ ์ ํ",
"๋น ๋ฅธ ์ฌ๋ฐ์",
"์ด์ง๋ฌ์ ๋๋ ๊ธฐ๋ฆฝ์ฑ ์ ํ์"
],
"action": "์๊ธ์ค ๋ฐฉ๋ฌธ (IV ์์ก ํ์)",
"source": "ISPAD 2024 - Signs of Dehydration"
}
}
# =============================================================================
# SICK DAY ESSENTIAL RULES
# Core principles that always apply
# =============================================================================
SICK_DAY_ESSENTIAL_RULES = [
{
"rule": "์ธ์๋ฆฐ ์ ๋ ์ค๋จ ๊ธ์ง",
"explanation": "์ํ๋ฉด ํ๋น์ด ์ฌ๋ผ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์คํ๋ ค ์ธ์๋ฆฐ์ด ๋ ํ์ํฉ๋๋ค. ์์ฌ๋ฅผ ๋ชป ํด๋ ๊ธฐ์ ์ธ์๋ฆฐ์ ์ ์งํด์ผ DKA๋ฅผ ์๋ฐฉํฉ๋๋ค.",
"source": "ISPAD 2024 - Never stop insulin"
},
{
"rule": "ํ๋น ์์ฃผ ์ธก์ (2-4์๊ฐ ๊ฐ๊ฒฉ)",
"explanation": "์ํ ๋ ์๋ ํ๋น ๋ณ๋์ด ์ฌํฉ๋๋ค. ํ์๋ณด๋ค ์์ฃผ ์ธก์ ํด์ผ ์ํ์ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.",
"source": "ADA - Monitor blood glucose every 2-4 hours"
},
{
"rule": "์๋ถ ์ญ์ทจ ์ฆ๊ฐ",
"explanation": "ํ์๋ ํ๋น ์์น๊ณผ ์ผํค ์ฆ๊ฐ์ ์ํ์ ๋์
๋๋ค. ์๊ฐ๋น 100ml ์ด์ ๋ง์์ธ์.",
"source": "ISPAD 2024 - 100ml/hour fluid intake"
},
{
"rule": "์ผํค ๋ชจ๋ํฐ๋ง",
"explanation": "ํนํ ํ๋น์ด 240 mg/dL ์ด์์ด๊ฑฐ๋ ๊ตฌํ ๊ฐ ์์ ๋ ์ผํค์ ์ธก์ ํ์ธ์. ์กฐ๊ธฐ ๋ฐ๊ฒฌ์ด DKA๋ฅผ ์๋ฐฉํฉ๋๋ค.",
"source": "ADA - Check ketones if glucose >240 mg/dL"
},
{
"rule": "์๋ฃํ ์ฐ๋ฝ ๊ธฐ์ค ์์ง",
"explanation": "๊ตฌํ 2์๊ฐ ์ด์, ์ผํค ์์ฑ, ํ๋น ์กฐ์ ๋ถ๊ฐ, ์ฆ์ ์
ํ ์ ์ฆ์ ์๋ฃํ์ ์ฐ๋ฝํ์ธ์.",
"source": "ISPAD 2024 - When to contact diabetes team"
}
]
# =============================================================================
# HYDRATION GUIDELINES
# Fluid intake recommendations during illness
# =============================================================================
HYDRATION_GUIDELINES = {
"general": {
"target": "์๊ฐ๋น 100ml ์ด์ (5-10๋ถ๋ง๋ค ์๋์ฉ)",
"source": "ISPAD 2024"
},
"glucose_high": {
"threshold_mg_dl": 250,
"recommendation": "๋ฌด์คํ/๋ฌดํ์ํ๋ฌผ ์๋ฃ (๋ฌผ, ๋ฌด์คํ ์ฐจ, ๋ฌด์คํ ์ด์จ์๋ฃ)",
"source": "ADA Sick Day Rules"
},
"glucose_low_normal": {
"threshold_mg_dl": 180,
"recommendation": "๋น๋ถ ํฌํจ ์๋ฃ ๊ฐ๋ฅ (ํฌ์ ์ฃผ์ค, ์ด์จ์๋ฃ, ์คํฌ์ธ ๋๋งํฌ)",
"source": "ISPAD 2024 - Prevent starvation ketosis"
},
"examples_sugar_free": [
"๋ฌผ",
"๋ฌด์คํ ์ฐจ",
"๋ฌด์คํ ์ด์จ์๋ฃ",
"๊ตญ๋ฌผ (์ ๋ํธ๋ฅจ)"
],
"examples_with_sugar": [
"ํฌ์ ๊ณผ์ผ์ฃผ์ค (50%)",
"์ด์จ์๋ฃ",
"์คํฌ์ธ ๋๋งํฌ"
]
}