#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1];t=(P/'script/script_nasal_cycle.txt').read_text().casefold()
g={'nasal_cycle':['chu kỳ mũi'],'turbinates':['cuốn mũi'],'venous_sinusoids':['venous sinusoids'],'erectile_tissue':['mô cương'],'congestion':['sung huyết'],'resistance':['sức cản'],'opposite_side':['phía đối diện'],'autonomic':['hệ thần kinh tự chủ'],'sympathetic':['giao cảm'],'parasympathetic':['đối giao cảm'],'not_switch':['không phải một chiếc công tắc'],'hours':['hàng giờ'],'not_fixed_clock':['không nhất thiết đều như đồng hồ'],'warming':['làm ấm'],'humidifying':['làm ẩm'],'filtering':['lọc không khí'],'air_distribution':['phân phối trong hốc mũi'],'not_rest_fact':['không nên được trình bày như một sự thật chắc chắn'],'gravity':['trọng lực'],'axillary_reflex':['axillary reflex'],'exercise':['tập thể dục'],'temporary':['tạm thời'],'cold_dry':['lạnh hoặc quá khô'],'allergy':['dị ứng'],'virus':['nhiễm virus'],'deviated_septum':['vách ngăn lệch'],'polyp':['polyp'],'enlarged_turbinate':['cuốn mũi phì đại'],'persistent_unilateral':['cùng một bên bị chặn liên tục'],'mucus_color_not_diagnosis':['chỉ nhìn màu dịch không thể tự kết luận'],'not_antibiotic':['không đủ để quyết định rằng mình cần kháng sinh'],'saline':['saline'],'distilled':['nước cất'],'sterile':['nước vô trùng'],'boiled_cooled':['đun sôi rồi để nguội'],'not_tap':['không dùng trực tiếp nước máy'],'clean_device':['dụng cụ cần sạch'],'stop_if_harm':['bạn nên dừng lại'],'decongestant':['thuốc xịt co mạch tại chỗ'],'rebound':['rebound congestion'],'ask_clinician':['hỏi bác sĩ hoặc dược sĩ'],'contraindication':['chống chỉ định'],'no_objects':['đừng nhét vật'],'no_forceful_blowing':['xì mũi thật mạnh liên tục không đảm bảo'],'bleeding':['chảy máu tái diễn'],'facial_pain_swelling':['đau hay sưng mặt'],'fever_headache':['sốt kèm đau đầu dữ dội'],'eye_symptoms':['triệu chứng ở mắt'],'trauma':['chấn thương'],'breathing':['khó thở đáng kể'],'foul_unilateral':['dịch mũi hôi chỉ chảy từ một bên'],'child':['trẻ nhỏ'],'button_battery':['pin cúc áo'],'payoff':['nghẹt luân phiên, tự đổi bên và tự giảm']};missing=[k for k,v in g.items() if not all(x in t for x in v)];o={'status':'PASS' if not missing else 'FAIL','groups':len(g),'missing':missing};(P/'logs/script_semantic_gate.json').write_text(json.dumps(o,ensure_ascii=False,indent=2)+'\n');print(json.dumps(o,ensure_ascii=False));sys.exit(bool(missing))
