// 하루결 — 검사지 용어 사전
// 유방암 환자가 받게 되는 주요 검사 항목과 해석.
// 출처: 국가암정보센터, 서울대학교병원, 한국유방암학회, NCCN 가이드라인 일반 정보.
// ※ 정상 범위는 검사실마다 약간 다를 수 있습니다. 실제 해석은 담당 의료진이 합니다.

const LAB_CATEGORIES = [
  { id: 'cbc',     label: '혈액검사 (CBC)',  desc: '혈구 수 — 항암 부작용을 가장 자주 확인',     c: 'var(--hg-clay)',  bg: 'var(--hg-clay-tint)' },
  { id: 'chem',    label: '화학검사',         desc: '간·신장·전해질 등 장기 기능',                 c: 'var(--hg-honey)', bg: 'var(--hg-honey-tint)' },
  { id: 'tumor',   label: '종양표지자',       desc: '재발·진행 추적에 참고',                       c: 'var(--hg-rose)',  bg: 'var(--hg-rose-soft)' },
  { id: 'patho',   label: '병리 (조직검사)',  desc: 'ER/PR/HER2/Ki-67 — 치료 방향을 결정',          c: 'var(--hg-mist)',  bg: 'var(--hg-mist-tint)' },
  { id: 'staging', label: '병기 (TNM)',       desc: 'T 종양 / N 림프절 / M 전이',                  c: 'var(--hg-sage)',  bg: 'var(--hg-sage-tint)' },
  { id: 'image',   label: '영상검사',         desc: '유방촬영·초음파·MRI·CT·PET',                  c: 'var(--hg-clay-dark)', bg: 'var(--hg-clay-tint)' },
];

const LAB_TERMS = [
  // ───── 혈액검사 ─────
  {
    id: 'wbc', cat: 'cbc',
    name: '백혈구', abbr: 'WBC', english: 'White Blood Cell',
    short: '감염과 싸우는 세포. 항암치료 후 감소해요.',
    range: '4,000 – 10,000 /μL',
    high: '감염·염증 가능성. 의료진 판단 필요.',
    low: '면역력 저하. 4,000 미만이면 감염 주의, 1,000 미만은 사람 많은 곳·외출 피하세요. 38°C 이상 발열 시 즉시 병원.',
    why: '항암제는 골수에서 만드는 백혈구를 일시적으로 감소시킵니다. 보통 투여 후 7~14일에 가장 낮아져요.',
  },
  {
    id: 'anc', cat: 'cbc',
    name: '호중구', abbr: 'ANC', english: 'Absolute Neutrophil Count',
    short: '백혈구 중 가장 중요한 감염 방어 세포',
    range: '1,500 – 8,000 /μL',
    high: '세균 감염 의심.',
    low: '1,500 미만은 감염 위험, 500 미만은 호중구 감소증으로 격리 수준 주의가 필요합니다. 항암 다음 차수를 미룰 수도 있어요.',
    why: '항암 일정·약 조정에 가장 영향을 주는 수치입니다.',
  },
  {
    id: 'hgb', cat: 'cbc',
    name: '혈색소', abbr: 'Hgb', english: 'Hemoglobin',
    short: '산소를 운반하는 빨간 색소. 빈혈 정도를 봅니다.',
    range: '여성 12 – 16, 남성 13 – 17 g/dL',
    high: '드물게 적혈구 증가증 의심.',
    low: '빈혈. 10 미만은 어지러움·피로감이 심해질 수 있고, 8 미만은 수혈을 고려합니다.',
    why: '항암으로 적혈구도 감소합니다. 피로의 큰 원인.',
  },
  {
    id: 'plt', cat: 'cbc',
    name: '혈소판', abbr: 'PLT', english: 'Platelet',
    short: '피를 멈추게 하는 세포',
    range: '150,000 – 400,000 /μL',
    high: '드물게 증가증.',
    low: '50,000 미만은 출혈 위험. 잇몸·코피·멍이 잘 들면 알리세요. 20,000 미만은 입원 고려.',
    why: '항암 부작용으로 자주 감소합니다.',
  },
  {
    id: 'rbc', cat: 'cbc',
    name: '적혈구', abbr: 'RBC', english: 'Red Blood Cell',
    short: '산소를 운반하는 세포 자체의 수',
    range: '여성 4.0 – 5.4 백만/μL',
    high: '드물게 적혈구 증가증.',
    low: 'Hgb과 함께 빈혈 판단.',
    why: 'Hgb과 같이 봐요.',
  },
  {
    id: 'lym', cat: 'cbc',
    name: '림프구', abbr: 'Lymph', english: 'Lymphocyte',
    short: '바이러스 방어 면역세포',
    range: '20 – 40 %',
    high: '바이러스 감염 가능성.',
    low: '면역력 저하. 감염 주의.',
    why: '항암제에 의해 감소할 수 있어요.',
  },

  // ───── 화학검사 ─────
  {
    id: 'ast', cat: 'chem',
    name: '간 효소', abbr: 'AST/ALT', english: 'AST · ALT',
    short: '간세포가 손상되면 올라가는 효소',
    range: 'AST 0 – 40, ALT 0 – 40 IU/L',
    high: '간 기능 부담. 항암제·한약·진통제 영향일 수 있어요.',
    low: '의미 없음.',
    why: '항암제는 간에 부담을 주기도 합니다. 영양제·한약 임의 복용 금지.',
  },
  {
    id: 'cr', cat: 'chem',
    name: '크레아티닌', abbr: 'Cr', english: 'Creatinine',
    short: '신장 기능 지표',
    range: '0.6 – 1.2 mg/dL',
    high: '신장 기능 저하 가능성. 일부 항암제 용량 조정.',
    low: '의미 없음.',
    why: '신장 기능에 따라 항암제 용량이 달라질 수 있어요.',
  },
  {
    id: 'bun', cat: 'chem',
    name: '혈중 요소 질소', abbr: 'BUN', english: 'Blood Urea Nitrogen',
    short: '신장 기능과 탈수 정도',
    range: '7 – 20 mg/dL',
    high: '신장 기능 저하 또는 탈수.',
    low: '드뭅니다.',
    why: '구토·설사로 탈수가 있을 때도 올라갑니다.',
  },
  {
    id: 'alb', cat: 'chem',
    name: '알부민', abbr: 'Alb', english: 'Albumin',
    short: '영양 상태를 보여주는 단백질',
    range: '3.5 – 5.2 g/dL',
    high: '드뭅니다.',
    low: '영양 부족, 만성 질환. 단백질 섭취가 중요해집니다.',
    why: '체중·식욕과 함께 영양 평가에 활용.',
  },
  {
    id: 'bili', cat: 'chem',
    name: '빌리루빈', abbr: 'T.Bil', english: 'Total Bilirubin',
    short: '담즙의 노란 색소. 간·담도 기능을 반영합니다.',
    range: '0.3 – 1.2 mg/dL',
    high: '간·담도 기능 부담. 황달이 생길 수 있어요.',
    low: '의미 없음.',
    why: '간 기능 부담 시 항암 일정이 조정될 수 있어요.',
  },

  // ───── 종양표지자 ─────
  {
    id: 'ca153', cat: 'tumor',
    name: '유방암 표지자', abbr: 'CA 15-3', english: 'Cancer Antigen 15-3',
    short: '유방암 추적 검사에 가장 자주 쓰는 표지자',
    range: '0 – 28.5 U/mL (검사실마다 약간 다름)',
    high: '재발·진행 가능성 시 상승할 수 있지만, 양성 질환에서도 오를 수 있어요. 단일 수치보다 변화 추세가 중요.',
    low: '문제 없음.',
    why: '치료 효과 모니터링과 재발 추적에 사용. 정상이라고 안심하거나, 높다고 단정하면 안 됩니다.',
  },
  {
    id: 'cea', cat: 'tumor',
    name: '암 태아성 항원', abbr: 'CEA', english: 'Carcinoembryonic Antigen',
    short: '여러 암에서 관찰되는 비특이적 표지자',
    range: '비흡연 0 – 3, 흡연 0 – 5 ng/mL',
    high: '재발·진행 가능성 외 흡연·만성 질환에서도 상승. 추세를 봅니다.',
    low: '문제 없음.',
    why: 'CA 15-3과 함께 보조적으로 확인.',
  },

  // ───── 병리 ─────
  {
    id: 'er', cat: 'patho',
    name: '에스트로겐 수용체', abbr: 'ER', english: 'Estrogen Receptor',
    short: '여성호르몬에 반응해 자라는 암인지 확인',
    range: '양성 (+) / 음성 (–). 양성률 % 또는 Allred score로 표기.',
    high: 'ER 양성: 호르몬에 반응. 항호르몬치료 효과가 기대됩니다.',
    low: 'ER 음성: 호르몬치료 효과 적음. 다른 치료 전략.',
    why: '유방암 치료 방향을 결정하는 가장 중요한 검사 중 하나입니다.',
  },
  {
    id: 'pr', cat: 'patho',
    name: '프로게스테론 수용체', abbr: 'PR', english: 'Progesterone Receptor',
    short: 'ER과 함께 호르몬 반응성 평가',
    range: '양성 (+) / 음성 (–)',
    high: 'PR 양성도 항호르몬치료 효과 기대.',
    low: 'PR 음성은 ER 양성·PR 음성 조합일 때 의미가 달라질 수 있어요.',
    why: 'ER과 짝지어 해석합니다.',
  },
  {
    id: 'her2', cat: 'patho',
    name: 'HER2 수용체', abbr: 'HER2', english: 'Human Epidermal growth factor Receptor 2',
    short: '암세포 성장에 관여하는 단백질',
    range: '0 / 1+ / 2+ / 3+ (IHC) — 2+는 FISH 추가 검사',
    high: 'HER2 양성 (3+): 표적치료제 (트라스투주맙 등) 효과 기대.',
    low: 'HER2 음성 (0/1+): 표적치료제 효과 없음.',
    why: '표적치료제 사용 여부를 결정합니다.',
  },
  {
    id: 'ki67', cat: 'patho',
    name: '세포 증식 지수', abbr: 'Ki-67', english: 'Ki-67 proliferation index',
    short: '암세포가 얼마나 빨리 자라는지 비율',
    range: '%로 표기',
    high: '20% 이상이면 빠르게 자라는 암으로 분류. 항암치료 강도가 달라질 수 있어요.',
    low: '20% 미만은 느리게 자라는 편.',
    why: 'ER/PR/HER2와 종합해 아형(luminal A/B 등) 분류.',
  },
  {
    id: 'grade', cat: 'patho',
    name: '분화도', abbr: 'Grade', english: 'Histologic Grade',
    short: '암세포가 정상세포와 얼마나 비슷한지',
    range: '1 / 2 / 3 (또는 G1/G2/G3)',
    high: 'Grade 3: 분화도 낮음 = 더 공격적.',
    low: 'Grade 1: 분화도 좋음 = 비교적 천천히 자람.',
    why: '치료 전략과 예후를 가늠하는 지표.',
  },

  // ───── 병기 ─────
  {
    id: 't', cat: 'staging',
    name: 'T — 종양 크기', abbr: 'T', english: 'Tumor size',
    short: '원발 종양의 크기와 침범 범위',
    range: 'Tis(상피내) / T1(≤2cm) / T2(2-5cm) / T3(>5cm) / T4(피부·흉벽 침범)',
    high: 'T3·T4일수록 크고 진행된 상태.',
    low: 'T1 이하는 작고 조기.',
    why: '병기의 첫 글자.',
  },
  {
    id: 'n', cat: 'staging',
    name: 'N — 림프절', abbr: 'N', english: 'Lymph Node involvement',
    short: '겨드랑이 림프절로 퍼졌는지',
    range: 'N0(전이 없음) / N1(1-3개) / N2(4-9개) / N3(10개 이상)',
    high: 'N2·N3는 많이 퍼진 상태.',
    low: 'N0는 림프절 전이 없음.',
    why: '수술 범위와 보조 치료 결정에 중요.',
  },
  {
    id: 'm', cat: 'staging',
    name: 'M — 원격 전이', abbr: 'M', english: 'Metastasis',
    short: '뼈·간·폐·뇌 등 다른 장기로 전이됐는지',
    range: 'M0(없음) / M1(있음)',
    high: 'M1은 4기.',
    low: 'M0가 일반적인 조기·국소 진행 단계.',
    why: 'M1이 아니면 완치를 목표로 치료를 계획합니다.',
  },
  {
    id: 'stage', cat: 'staging',
    name: '전체 병기', abbr: 'Stage', english: 'Overall Stage',
    short: 'T·N·M을 종합해 0기 ~ 4기로 분류',
    range: '0 / I / II / III / IV',
    high: '4기는 원격 전이 있는 상태.',
    low: '0기·1기는 조기 단계.',
    why: '치료 전략과 5년 생존율 통계의 기준.',
  },

  // ───── 영상 ─────
  {
    id: 'mmg', cat: 'image',
    name: '유방촬영술', abbr: 'MMG', english: 'Mammography',
    short: '저용량 X선으로 유방 조직을 보는 검사',
    range: 'BI-RADS 0~6 으로 결과 분류',
    high: 'BI-RADS 4·5는 조직검사 권고.',
    low: 'BI-RADS 1·2는 정상 또는 양성.',
    why: '국가 검진과 진단·추적에 사용.',
  },
  {
    id: 'us', cat: 'image',
    name: '유방 초음파', abbr: 'US', english: 'Breast Ultrasound',
    short: '치밀유방에서 작은 병변을 추가로 보는 검사',
    range: 'BI-RADS 0~6',
    high: 'BI-RADS 4·5: 추가 검사·조직검사.',
    low: 'BI-RADS 1·2·3.',
    why: '유방촬영술 결과 보완용으로 자주 함께 시행.',
  },
  {
    id: 'mri', cat: 'image',
    name: '유방 MRI', abbr: 'MRI', english: 'Breast MRI',
    short: '고해상도 영상. 다발성 병변·고위험군에 활용',
    range: '판독 소견 + BI-RADS',
    high: '추가 정밀검사 필요한 소견.',
    low: '정상 또는 양성 소견.',
    why: '치밀유방, BRCA 변이 등 고위험군 추적.',
  },
  {
    id: 'pet', cat: 'image',
    name: 'PET-CT', abbr: 'PET', english: 'Positron Emission Tomography',
    short: '포도당 흡수도로 전신 암 활성 확인',
    range: 'SUV (max) 수치 + 부위별 소견',
    high: 'SUV 높은 부위는 활성 의심. 정확한 해석은 판독의가.',
    low: '활성 낮음.',
    why: '전이·재발 평가에 사용.',
  },
  {
    id: 'bone', cat: 'image',
    name: '뼈 스캔', abbr: 'Bone scan', english: 'Bone Scintigraphy',
    short: '뼈로의 전이 여부 확인',
    range: '판독 소견',
    high: '뼈 전이 의심 소견.',
    low: '정상 또는 양성 소견.',
    why: '병기 평가와 재발 추적에 사용.',
  },
];

// 검색
function searchLabs(q) {
  const query = q.trim().toLowerCase();
  if (!query) return LAB_TERMS;
  return LAB_TERMS.filter(t => {
    const hay = (t.name + ' ' + t.abbr + ' ' + t.english + ' ' + t.short + ' ' + (LAB_CATEGORIES.find(c => c.id === t.cat) || {}).label).toLowerCase();
    return hay.includes(query);
  });
}

Object.assign(window, { LAB_CATEGORIES, LAB_TERMS, searchLabs });
