import gradio as gr def check_drug_interaction(drug_a, drug_b): if not drug_a or not drug_b: return "يرجى إدخال اسم الدوائين للفحص." if "cipro" in drug_a.lower() and "milk" in drug_b.lower(): return "🚨 **درجة الخطورة:** عالٍ (High)\n\n⚠️ **الأثر السريري:** يقلل الكالسيوم من امتصاص السيبرو بنسبة تصل إلى 50%.\n\n💡 **التوصية:** تناول السيبرو قبل الحليب بساعتين أو بعده بـ 4 ساعات." return "✅ لم يتم العثور على تداخل خطير مسجل بين الدوائين." def calculate_pediatric_dose(weight, dose_per_kg): try: w = float(weight) d = float(dose_per_kg) total = w * d return f"📊 **إجمالي الجرعة اليومية:** {total:.1f} ملجم/يوم (مقسّمة على الجرعات اليومية)." except ValueError: return "يرجى إدخال أرقام صحيحة للوزن والجرعة." with gr.Blocks(theme=gr.themes.Soft()) as demo: gr.Markdown("# 💊 تطبيق المحاكاة الصيدلانية والتثقيف الدوائي") with gr.Tabs(): with gr.TabItem("🔍 فاحص التداخلات الدوائية"): d1 = gr.Textbox(label="الدواء الأول (أو الغذاء)", placeholder="مثال: Cipro") d2 = gr.Textbox(label="الدواء الثاني (أو الغذاء)", placeholder="مثال: Milk") btn1 = gr.Button("فحص التداخل", variant="primary") out1 = gr.Markdown() btn1.click(check_drug_interaction, inputs=[d1, d2], outputs=[out1]) with gr.TabItem("🧮 حاسبة الجرعات للأطفال"): w_in = gr.Textbox(label="وزن الطفل (kg)") d_in = gr.Textbox(label="الجرعة (mg/kg/day)") btn2 = gr.Button("حساب الجرعة", variant="primary") out2 = gr.Markdown() btn2.click(calculate_pediatric_dose, inputs=[w_in, d_in], outputs=[out2]) demo.launch()