🏥 سامانه جامع سلامت

مستندات کامل ، راهنمای نصب ، ساختار ، ماژول‌ها و گردش کار نسخه ۱.۰
🎯 هدف پروژه

سامانه جامع سلامت یک نرم‌افزار یکپارچه برای مدیریت کلینیک‌ها و مطب‌های پزشکی است که با ترکیب رابط کاربری دسکتاپ، ربات‌های پیام‌رسان و هوش مصنوعی پزشکی، فرآیندهای زیر را خودکار می‌کند:

📋 مدیریت مراجعان

ثبت‌نام بیماران، مشاهده سوابق، جستجوی پیشرفته و مدیریت اطلاعات.

👨‍⚕️ مدیریت پزشکان

ثبت پزشکان، تعیین تخصص، احراز هویت دو مرحله‌ای و مدیریت نوبت‌ها.

📅 رزرو نوبت هوشمند

رزرو نوبت توسط بیماران از طریق ربات‌های روبیکا و تلگرام با انتخاب پزشک، تاریخ و ساعت.

🧠 ویزیت با هوش مصنوعی

تحلیل بالینی با استفاده از OpenRouter و موتور آفلاین، تولید تشخیص و نسخه پیشنهادی.

📄 تولید گزارش PDF

ایجاد فایل PDF حرفه‌ای از ویزیت‌ها با فونت فارسی و هدر اختصاصی.

🤖 یکپارچه‌سازی با ربات‌ها

ارسال خودکار نتایج ویزیت، یادآوری نوبت و چت با پزشک هوشمند از طریق ربات‌ها.

📦 کتابخانه‌های استفاده شده
کتابخانهکاربردنسخه پیشنهادی
ttkbootstrapطراحی رابط کاربری مدرن با تم‌های بوت‌استرپ≥1.10.1
tkinterفریم‌ورک اصلی ساخت رابط کاربری دسکتاپداخلی پایتون
sqlite3دیتابیس سبک و بدون نیاز به سرورداخلی پایتون
pillowپردازش تصاویر (لوگو، آیکون‌ها)≥10.0.0
jdatetimeتبدیل تاریخ میلادی به شمسی و برعکس≥4.1.0
arabic_reshaper + python-bidiاصلاح و راست‌چین‌سازی متن فارسی برای PDF≥2.1.0
reportlabتولید فایل‌های PDF حرفه‌ای≥4.0.0
rubkeyکتابخانه رسمی ربات روبیکا≥1.0.0
telebotساخت و مدیریت ربات تلگرام≥4.12.0
requestsارسال درخواست‌های HTTP به APIهای هوش مصنوعی≥2.28.0
hazmپردازش زبان فارسی (نرمال‌سازی و توکن‌سازی)≥0.7.0
bcryptهش کردن رمزهای عبور برای امنیت بالا≥4.0.0
threadingاجرای هم‌زمان ربات‌ها و رابط کاربریداخلی پایتون
pip install ttkbootstrap pillow jdatetime arabic_reshaper python-bidi reportlab rubkey telebot requests hazm bcrypt
📂 ساختار فایل‌ها و ماژول‌ها
نام فایلتوضیحاتنقش اصلی
main.pyنقطه ورود برنامه، مدیریت پنجره‌ها و فرم لاگیناجرای اصلی
setup.pyنصب پکیج‌ها و ایجاد دیتابیس اولیهراه‌اندازی
admin_panel.pyپنل مدیریت (پزشکان، بیماران، نوبت‌ها، تنظیمات ربات)مدیریت
doctor_panel.pyپنل پزشک (داشبورد، نوبت‌ها، ویزیت هوشمند، گزارش)ویزیت
bot.pyربات روبیکا با منوی شیشه‌ای و رزرو نوبتربات روبیکا
telegram_bot.pyربات تلگرام با قابلیت‌های مشابه و اشتراک‌گذاری شمارهربات تلگرام
ai_engine.pyموتور تحلیل هوشمند بالینی با OpenRouter و قوانین آفلاینهوش مصنوعی
avicenna.pyدستیار پزشکی ابن‌سینا (چت هوشمند با حافظه)چت‌بات پزشکی
pdf_maker.pyتولید گزارش ویزیت به صورت PDF با فونت فارسیگزارش
help.pyپنجره راهنمای گرافیکی با اسکرول و افکت محو شدنراهنما
🔄 گردش کار کامل
۱. ادمین کاربران را مدیریت می‌کند ۲. بیمار از ربات نوبت رزرو می‌کند ۳. پزشک در پنل، نوبت را ویزیت می‌کند ۴. هوش مصنوعی تحلیل بالینی ارائه می‌دهد ۵. گزارش PDF تولید و به بیمار ارسال می‌شود

🔑 نکته مهم: ورود پزشکان به پنل نیازمند کد تایید دو مرحله‌ای (2FA) است که از طریق ربات تلگرام یا روبیکا ارسال می‌شود.

ویژگی‌های کلیدی

🧠 هوش مصنوعی ابن‌سینا

چت‌بات پزشکی با حافظه مکالمه، پاسخ‌دهی آفلاین و یکپارچه‌سازی با OpenRouter برای تحلیل‌های پیشرفته.

📊 پنل مدیریت جامع

مدیریت پزشکان، بیماران، نوبت‌ها، گزارشات و تنظیمات ربات‌ها با رابط کاربری شیک و حرفه‌ای.

🤖 ربات‌های هوشمند

ربات روبیکا و تلگرام با منوی دکمه‌ای، رزرو نوبت، ثبت‌نام بیماران و ارسال گزارش PDF.

📄 گزارش‌های PDF

تولید خودکار فایل PDF از ویزیت‌ها با فونت فارسی، هدر اختصاصی و ساختار حرفه‌ای.

🔐 امنیت پیشرفته

هش کردن رمزهای عبور با bcrypt، کپچای ریاضی و احراز هویت دو مرحله‌ای (2FA) برای پزشکان.

📱 سازگاری با ویندوز

طراحی شده برای ویندوز با پشتیبانی از فونت‌های فارسی، گرد کردن گوشه‌ها و حالت تمام‌صفحه.

🗄️ ساختار دیتابیس (SQLite)
جدولتوضیحاتستون‌های مهم
usersکاربران سیستم (ادمین و پزشک)username, password (hashed), role
patientsاطلاعات بیمارانnational_code, name, phone, chat_id
appointmentsنوبت‌های رزرو شدهpatient_id, doctor_id, date, time, status
checkupsویزیت‌های ثبت شدهpatient_id, doctor_id, diagnosis, prescription, ai_analysis
tokenbotتوکن ربات روبیکاtoken
telegram_botتوکن ربات تلگرامtoken
doctor_login_codesکدهای 2FA پزشکانphone, code, expires_at
🔒 امنیت پروژه

🔐 هش کردن رمزها

تمام رمزهای عبور با الگوریتم bcrypt هش می‌شوند که در برابر حملات دیکشنری و جدول رنگین‌کمان مقاوم است.

🧮 کپچای ریاضی

در صفحه ورود، یک کپچای ریاضی پویا با خطوط مزاحم و رنگ‌های تصادفی برای جلوگیری از حملات خودکار نمایش داده می‌شود.

📱 احراز هویت دو مرحله‌ای (2FA)

پزشکان پس از وارد کردن رمز صحیح، باید یک کد ۶ رقمی که از طریق ربات تلگرام یا روبیکا دریافت می‌کنند را وارد کنند.

✅ اعتبارسنجی ورودی‌ها

تمام فرم‌ها شامل اعتبارسنجی کد ملی، شماره تلفن، سن و فیلدهای اجباری هستند تا از ورود داده‌های نادرست جلوگیری شود.

🧠 یکپارچه‌سازی با هوش مصنوعی

🌐 موتور OpenRouter

  • مدل: openai/gpt-oss-20b:free
  • پرامپت سیستم با قوانین سختگیرانه (علائم اورژانسی، دارو، هشدارها)
  • دارای سیستم استدلال (Reasoning) برای تحلیل عمیق‌تر

📦 حافظه محلی

  • سوالات و پاسخ‌های تکراری در فایل avicenna_memory.json ذخیره می‌شوند.
  • با تشابه‌سازی کلمات (با استفاده از hazm) پاسخ‌های تکراری سریع‌تر ارائه می‌شوند.
  • حداکثر ۱۰۰۰ مورد در حافظه نگهداری می‌شود.

⚠️ حالت آفلاین

در صورت قطعی سرور، موتور آفلاین با قوانین بالینی از پیش تعریف شده (فشار خون، دیابت، کم‌خونی، عفونت) پاسخ می‌دهد و از بروز خطا جلوگیری می‌کند.

🎨 طراحی رابط کاربری

پالت رنگ

  • آبی تیره (هدرها، دکمه‌های اصلی)
  • خاکستری روشن (بدنه)
  • سبز (موفقیت، وضعیت ویزیت شده)
  • قرمز (هشدار، دکمه حذف)
  • زرد (وضعیت در انتظار)

فونت‌ها

  • Vazir (فونت اصلی برای متن‌ها و تیترها)
  • B TITR (برای تیترهای بزرگ و برجسته)
  • Segoe UI Emoji (برای آیکون‌های ایموجی و نمادها)

افکت‌های گرافیکی

  • گرد کردن گوشه‌های پنجره با WinAPI (CreateRoundRectRgn)
  • افکت محو شدن تدریجی (Fade-in) برای پنجره‌های راهنما و لاگین
  • افکت هاور (Hover) روی آیتم‌های منو، دکمه‌ها و دکمه‌های بستن
  • اسکرول با چرخ ماوس در تمام پنل‌ها
⚙️ نصب و اجرا

۱. نصب پکیج‌ها و دیتابیس

فایل setup.py را اجرا کنید:

python setup.py
  • پکیج‌های مورد نیاز نصب می‌شوند.
  • دیتابیس clinic.db ساخته می‌شود.
  • کاربر ادمین و یک پزشک نمونه ایجاد می‌شود.

۲. تنظیم توکن ربات‌ها

پس از ورود به پنل ادمین:

  • به بخش تنظیمات ربات بروید.
  • توکن روبیکا (از rubika.ir) و تلگرام (از @BotFather) را ذخیره کنید.

۳. اجرای برنامه

فایل main.py را اجرا کنید:

python main.py
  • صفحه اسپلش نمایش داده می‌شود.
  • پنجره ورود با کپچا باز می‌شود.
  • ربات‌ها در پس‌زمینه اجرا می‌شوند.

🔑 اطلاعات ورود پیش‌فرض:
ادمین: نام کاربری و رمز عبوری که در حین نصب وارد کردید.
پزشک نمونه: کد نظام پزشکی 00001، رمز 123456

🚀 توسعه‌پذیری و قابلیت‌های آینده

👤 پنل بیمار

امکان افزودن پنل اختصاصی برای بیماران جهت مشاهده سوابق و نوبت‌ها.

💳 پرداخت آنلاین

یکپارچه‌سازی با درگاه‌های پرداخت برای رزرو نوبت با پیش‌پرداخت.

🏥 چندین کلینیک

پشتیبانی از چندین شعبه و کلینیک با مدیریت متمرکز.

📈 داشبورد تحلیلی

افزودن نمودارها و آمارهای پیشرفته برای تحلیل عملکرد کلینیک.

⏰ یادآوری نوبت

ارسال خودکار پیام یادآوری نوبت به بیماران از طریق ربات‌ها.

🌙 حالت تاریک

پشتیبانی از حالت تاریک (Dark Mode) برای پنل‌های مدیریت و پزشک.

💬 درباره توسعه‌دهنده

این پروژه توسط امیرعلی مومنی طراحی و توسعه یافته است.
تمامی کدها به صورت ماژولار و با رعایت اصول تمیز نویسی (Clean Code) و طراحی الگو (Design Patterns) نوشته شده‌اند.

📧 🌐 github.com/amircoldark80 📱