#!/usr/bin/env python3
from pathlib import Path
import json,sys
P=Path(__file__).resolve().parents[1];t=(P/'script/script_bruise_color_changes.txt').read_text().casefold()
groups={
'capillary':['mao mạch nhỏ'],'skin_intact':['da có thể không rách','làn da còn nguyên'],'blood_escape':['máu thoát khỏi lòng mạch'],'tissue_space':['khoảng trống giữa các tế bào'],'hemostasis':['cơ chế cầm máu'],'platelets':['tiểu cầu bám'],'fibrin':['mạng fibrin'],'hemoglobin':['hemoglobin'],'red_pink':['đỏ hoặc hồng'],'purple_blue':['tím, xanh tím'],'depth':['độ sâu của vết bầm'],'blood_amount':['lượng máu'],'light_optics':['ánh sáng bị hấp thụ rồi phản xạ'],'melanin':['nồng độ melanin','màu da'],'macrophage':['đại thực bào','macrophage'],'phagocytosis':['bao lấy hồng cầu'],'globin':['globin'],'heme':['phần heme'],'heme_oxygenase':['heme oxygenase'],'biliverdin':['biliverdin'],'green':['màu xanh lục'],'biliverdin_reductase':['biliverdin reductase'],'bilirubin':['bilirubin'],'yellow':['màu vàng'],'iron_recycle':['thu hồi sắt','sắt được tái chế'],'ferritin':['ferritin'],'hemosiderin':['hemosiderin'],'brown':['sắc nâu','vàng nâu'],'lymphatic':['hệ bạch huyết'],'not_clock':['không phải một chiếc đồng hồ sinh học chính xác'],'no_dating':['không thể nhìn một mảng vàng rồi khẳng định','không thể dựa vào sắc tím hay xanh để chốt ngày'],'no_violence_inference':['không nên suy diễn','chứng minh bạo lực'],'age':['tuổi tác'],'location':['vị trí và độ sâu'],'anticoagulant':['thuốc chống đông'],'antiplatelet':['thuốc kháng tiểu cầu'],'steroid':['steroid'],'liver':['bệnh gan'],'platelet_disorder':['số lượng tiểu cầu thấp','chức năng tiểu cầu bất thường'],'coag_disorder':['rối loạn đông máu'],'cool_wrap':['bọc túi lạnh bằng vải'],'no_direct_ice':['tránh áp đá trực tiếp'],'rest_elevate':['nghỉ tương đối, kê cao'],'first_48h':['24 đến 48 giờ đầu'],'no_massage':['đừng massage mạnh'],'no_puncture':['không chọc kim, rạch, nặn'],'no_stop_meds':['không tự ý bỏ thuốc chống đông'],'gentle_motion':['vận động nhẹ nhàng'],'warm_after':['chườm ấm ngắn'],'spontaneous_many':['bầm xuất hiện tự phát, xuất hiện nhiều lần'],'petechiae':['chấm đỏ tím li ti','chấm xuất huyết'],'other_bleeding':['chảy máu mũi tái diễn','chảy máu lợi'],'rapid_expansion':['tăng kích thước nhanh'],'pressure_pain':['sưng căng, đau dữ dội'],'numb_cold_limb':['tê, yếu, khó cử động','chi lạnh'],'head_chest_abdomen':['chấn thương đầu, ngực hoặc bụng'],'dizzy_faint':['chóng mặt nhiều, ngất'],'dyspnea':['khó thở'],'emergency':['gọi cấp cứu']}
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))
