#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1]
t=(P/'script/script_voice_tremor_stress.txt').read_text().casefold()
groups={
 'lungs':['phổi'],
 'airflow':['luồng khí','dòng khí'],
 'larynx':['thanh quản'],
 'vocal_folds':['dây thanh','nếp thanh'],
 'vibration':['rung'],
 'pitch':['cao độ'],
 'volume':['âm lượng','cường độ'],
 'resonance':['cộng hưởng'],
 'autonomic':['hệ thần kinh tự chủ'],
 'sympathetic':['hệ giao cảm','giao cảm'],
 'stress':['căng thẳng','hồi hộp'],
 'rapid_shallow_breath':['thở nhanh','thở nông'],
 'breath_support':['hỗ trợ hơi','hỗ trợ luồng khí','kiểm soát hơi thở ra'],
 'laryngeal_tension':['cơ thanh quản','căng thanh quản','cơ quanh thanh quản'],
 'neck_jaw_tension':['cổ','hàm'],
 'fine_motor':['điều khiển vận động tinh','điều khiển tinh','kỹ năng vận động tinh'],
 'pitch_amplitude_variation':['dao động cao độ','dao động âm lượng','cao độ và âm lượng','cao độ lên xuống','âm lượng lúc mạnh lúc yếu'],
 'not_adrenaline_only':['không chỉ do adrenaline','không phải chỉ một mình adrenaline','không phải adrenaline duy nhất','không có một chất duy nhất'],
 'feedback_loop':['vòng phản hồi','càng lo','nghe thấy giọng'],
 'transient':['thoáng qua','khi bình tĩnh','giảm khi bạn bình tĩnh'],
 'voice_overuse':['lạm dụng giọng','dùng giọng quá mức'],
 'laryngitis':['viêm thanh quản'],
 'reflux':['trào ngược'],
 'medication_stimulants':['thuốc','chất kích thích'],
 'essential_voice_tremor':['essential voice tremor','run giọng thiết yếu'],
 'spasmodic_dysphonia':['spasmodic dysphonia','loạn trương lực thanh quản'],
 'parkinson':['parkinson'],
 'neurologic':['thần kinh'],
 'slow_breath':['thở chậm','thở ra chậm hơn'],
 'long_exhale':['thở ra dài'],
 'pause':['tạm dừng','ngắt nhịp','khoảng dừng'],
 'hydration':['đủ nước','nhấp nước'],
 'gentle_warmup':['khởi động giọng nhẹ','làm ấm giọng nhẹ','khởi động nhẹ'],
 'caffeine':['caffeine'],
 'microphone':['micro','microphone'],
 'graded_practice':['luyện tập dần','tập dần'],
 'no_force':['không ép giọng','đừng ép giọng'],
 'no_yell_whisper':['không hét','không thì thầm kéo dài'],
 'no_sedative_alcohol':['không tự dùng thuốc','thuốc an thần','rượu'],
 'persistent_2_4_weeks':['hai đến bốn tuần','2 đến 4 tuần','2–4 tuần'],
 'pain_swallow':['đau','khó nuốt'],
 'hemoptysis':['ho ra máu'],
 'neck_mass_weight_loss':['khối ở cổ','khối cổ','sụt cân'],
 'weakness_numbness_spread':['yếu','tê','run lan'],
 'dyspnea_stridor':['khó thở','tiếng thở rít','stridor'],
 'emergency':['cấp cứu'],
 'no_self_diagnosis':['không tự chẩn đoán','không đủ để kết luận','không thể chẩn đoán'],
 'assessment':['bác sĩ tai mũi họng','chuyên gia âm ngữ trị liệu','đánh giá y tế'],
 'safe_payoff':['hiểu đúng tín hiệu','giữ giọng ổn định','rõ ràng và an toàn']
}
missing=[k for k,v in groups.items() if not any(x in t for x in v)]
out={'status':'PASS' if not missing else 'FAIL','missing':missing,'groups':len(groups)}
print(json.dumps(out,ensure_ascii=False));sys.exit(bool(missing))
