#!/usr/bin/env python3
from pathlib import Path
import json,re,sys,unicodedata
p=Path(sys.argv[1]); raw=p.read_text(); text=unicodedata.normalize('NFC',raw).casefold()
def anyof(*xs): return any(x.casefold() in text for x in xs)
checks={
 'cold_hook': anyof('kem lạnh','nước đá','đồ uống lạnh'),
 'forehead_pain': anyof('đau buốt','đau nhói','nhói ở trán','đau ở trán'),
 'reframe': anyof('kỳ lạ hơn','không phải bộ não','não không bị đóng băng'),
 'classification': anyof('cold-stimulus headache','đau đầu do kích thích lạnh','ichd-3','phân loại quốc tế các rối loạn đau đầu'),
 'palate_pharynx': anyof('khẩu cái','vòm miệng','họng sau','thành sau họng'),
 'trigeminal': anyof('thần kinh sinh ba','dây thần kinh sọ số năm','trigeminal'),
 'referred_pain': anyof('đau quy chiếu','định vị','cảm nhận ở trán','quy về vùng trán'),
 'vascular_caution': anyof('động mạch não trước','lưu lượng máu não','mạch máu') and anyof('chưa đủ','chưa được chốt','không phải cơ chế duy nhất','không chứng minh toàn bộ'),
 'migraine_relation': anyof('đau nửa đầu','migraine') and anyof('dễ gặp hơn','liên quan','không chẩn đoán','không phải chẩn đoán'),
 'tooth_distinction': anyof('ê buốt răng','nhạy cảm răng','men răng','ngà răng'),
 'sinus_distinction': anyof('xoang','viêm xoang'),
 'practical': anyof('ăn chậm','uống chậm','miếng nhỏ','ngụm nhỏ') and anyof('lưỡi','làm ấm khẩu cái','ép lưỡi'),
 'benign_brief': anyof('vài giây','ngắn','tự hết') and anyof('thường lành tính','thường không nguy hiểm','không đáng lo'),
 'red_flags': all(anyof(*group) for group in [('đau đầu tệ nhất','đau dữ dội đột ngột','sét đánh'),('yếu liệt','tê yếu','nói khó','triệu chứng thần kinh'),('sốt','cứng cổ'),('chấn thương đầu','ngất')]),
 'closing_echo': anyof('không đóng băng bộ não','não không bị đóng băng','không phải bộ não bị đông lạnh') and anyof('mạng cảm giác','thần kinh sinh ba','tín hiệu lạnh')
}
names=['International Classification of Headache Disorders','ICHD-3','Jorge Serrador','Faiq H. Khan','Maya Kaczorowski','Peter Mattsson','Lars H. Tegelberg','R. S. Bird','D. A. MacGregor']
found=[x for x in names if x.casefold() in text]
checks['named_sources']=len(set(found))>=3
forbidden={
 'literal_frozen_brain': anyof('mô não bị đóng băng','bộ não thật sự đóng băng'),
 'single_settled_mechanism': anyof('cơ chế duy nhất đã được chứng minh','chắc chắn hoàn toàn do mạch máu'),
 'diagnoses_migraine': anyof('chứng minh bạn bị migraine','chẩn đoán đau nửa đầu bằng kem')
}
errors=[k for k,v in checks.items() if not v]+[f'forbidden:{k}' for k,v in forbidden.items() if v]
out={'status':'PASS' if not errors else 'FAIL','checks':checks,'named_sources':found,'errors':errors}
print(json.dumps(out,ensure_ascii=False,indent=2));sys.exit(0 if not errors else 1)
