Skip to content
MHgh0stPublic

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ASCVD Risk Calculator 🫀

ماشین حساب تخصصی ریسک بیماری‌های قلبی عروقی بر اساس الگوریتم ACC/AHA

پروژه ASCVD یک وب اپلیکیشن پیشرفته برای محاسبه و ارزیابی ریسک ابتلا به بیماری‌های قلبی عروقی آترواسکلروتیک است. این برنامه با استفاده از الگوریتم معتبر American College of Cardiology و American Heart Association طراحی شده و امکان ثبت نام کاربران، ذخیره تست‌ها و ارائه توصیه‌های شخصی‌سازی شده را فراهم می‌کند.

🌐 نسخه آنلاین

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

🧮 محاسبه دقیق ریسک

  • الگوریتم معتبر ACC/AHA 2013 برای محاسبه ریسک ۱۰ ساله
  • پشتیبانی از متغیرهای کلیدی: سن، جنس، کلسترول، فشار خون، دیابت، سیگار
  • دسته‌بندی ریسک به چهار سطح: کم، متوسط، نزدیک به خطر، بالا
  • نمایش نتایج با گیج بصری و رنگ‌بندی مناسب

👤 مدیریت کاربران

  • ثبت نام و ورود امن با NextAuth.js
  • احراز هویت بر اساس شماره تلفن
  • رمزگذاری امن با bcrypt
  • نشست‌های امن و مدیریت JWT

💾 ذخیره‌سازی تست‌ها

  • ذخیره خودکار تست‌ها برای کاربران احراز هویت شده
  • پیگیری تاریخچه تست‌های قبلی
  • پروفایل کاربر با اطلاعات شخصی
  • پایگاه داده Supabase برای ذخیره‌سازی مطمئن

🎯 توصیه‌های شخصی‌سازی شده

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

🏗️ معماری پروژه

Frontend Architecture

src/
├── app/                    # Next.js App Router
│   ├── api/               # API Routes
│   │   ├── calculator/    # ASCVD محاسبه‌گر
│   │   ├── auth/         # NextAuth endpoints
│   │   └── test/         # ذخیره و بازیابی تست‌ها
│   ├── login/            # صفحه ورود
│   ├── profile/          # پروفایل کاربر
│   └── page.tsx          # صفحه اصلی
├── components/           # کامپوننت‌های قابل استفاده مجدد
├── views/               # صفحات اصلی
│   ├── InformationForm.tsx  # فرم ورود اطلاعات
│   ├── Results.tsx         # نمایش نتایج
│   └── Advices.tsx        # توصیه‌ها
├── utils/              # ابزارهای کمکی
├── types/              # تعاریف TypeScript
└── data/               # داده‌های استاتیک (توصیه‌ها)

Backend Services

  • Supabase: پایگاه داده PostgreSQL برای ذخیره کاربران و تست‌ها
  • NextAuth.js: مدیریت احراز هویت و نشست‌ها
  • API Routes: endpoints RESTful برای عملیات مختلف
  • Server Actions: عملیات سرور برای محاسبات و تحلیل

🚀 نصب و راه‌اندازی

پیش‌نیازها

  • Node.js 18+
  • pnpm (Package Manager)
  • حساب Supabase
  • تنظیمات متغیرهای محیطی

نصب پروژه

# کلون کردن پروژه
git clone https://github.com/MHgh0st/ASCVD.git
cd ASCVD

# نصب وابستگی‌ها
pnpm install

تنظیم متغیرهای محیطی

فایل .env.local ایجاد کنید:

# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key

# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret

اجرای پروژه

# حالت توسعه
pnpm dev

# ساخت برای production
pnpm build
pnpm start

📊 نحوه استفاده

1. ورود اطلاعات بیمار

  • اطلاعات دموگرافیک: سن (40-79 سال) و جنسیت
  • آزمایشات خون: کلسترول کل، HDL، LDL
  • فشار خون: سیستولیک و دیاستولیک
  • عوامل خطر: دیابت، سیگار، داروهای فشار خون

2. مشاهده نتایج

  • ریسک عددی: درصد احتمال ابتلا در ۱۰ سال آینده
  • دسته‌بندی ریسک: نمایش با رنگ‌بندی مناسب
  • نمودار بصری: گیج دایره‌ای برای نمایش بهتر ریسک
  • مقایسه با میانگین: مقایسه با افراد هم سن و جنس

3. دریافت توصیه‌های شخصی

  • توصیه‌های عمومی: برای همه کاربران
  • توصیه‌های اختصاصی: بر اساس عوامل خطر شخصی
  • راهنمایی عملی: قدم‌های عملی برای کاهش ریسک
  • پیگیری پزشکی: راهنمایی برای مراجعه به پزشک

4. ثبت نام و پیگیری

  • ثبت نام با شماره تلفن و رمز عبور
  • ذخیره خودکار تست‌ها
  • مشاهده تاریخچه تست‌های قبلی
  • مدیریت پروفایل شخصی

🧬 الگوریتم محاسبه ASCVD

فرمول مردان

// ضرایب مخصوص مردان بر اساس مطالعه ACC/AHA
risk_sum += 12.344 * ln(age)
risk_sum += 11.853 * ln(total_cholesterol)
risk_sum += -2.664 * ln(age) * ln(total_cholesterol)
risk_sum += -7.99 * ln(hdl_cholesterol)
// ... سایر متغیرها

final_risk = (1 - baseline_survival^exp(risk_sum - mean_risk)) * 100

فرمول زنان

// ضرایب مخصوص زنان با تعدیلات مناسب
risk_sum += -29.799 * ln(age)
risk_sum += 4.884 * ln(age)²
// ... سایر محاسبات

دسته‌بندی ریسک

  • کم: < 5%
  • نزدیک به خطر: 5% - 7.4%
  • متوسط: 7.5% - 19.9%
  • بالا: ≥ 20%

🛠️ تکنولوژی‌های استفاده شده

Frontend Stack

  • Next.js 15: فریمورک React با App Router
  • React 19: کتابخانه UI با جدیدترین ویژگی‌ها
  • TypeScript 5: زبان برنامه‌نویسی با Type Safety
  • Tailwind CSS 4: فریمورک CSS مدرن
  • HeroUI: کامپوننت‌های UI پیشرفته
  • Framer Motion: انیمیشن‌های روان
  • React Hook Form: مدیریت فرم‌های پیشرفته

Backend & Database

  • Supabase: پایگاه داده PostgreSQL در کلود
  • NextAuth.js: احراز هویت و مدیریت نشست
  • bcrypt: رمزگذاری امن کلمات عبور
  • Server Actions: عملیات سرور Next.js

Visualization & UX

  • React Gauge Component: نمودارهای دایره‌ای
  • Stepper Component: راهنمای گام به گام
  • Responsive Design: سازگار با موبایل و دسکتاپ
  • Persian RTL: پشتیبانی کامل از زبان فارسی

Development Tools

  • pnpm: مدیر بسته سریع و کارآمد
  • ESLint: کیفیت کد
  • Prettier: فرمت کد یکنواخت
  • PostCSS: پردازش CSS

📈 ویژگی‌های تکنیکی

عملکرد و بهینه‌سازی

  • Server-Side Rendering: بارگذاری سریع صفحات
  • Static Generation: کش کردن محتوای استاتیک
  • Image Optimization: بهینه‌سازی خودکار تصاویر
  • Bundle Splitting: تقسیم کد برای بارگذاری بهتر

امنیت

  • HTTPS Only: تمام ارتباطات رمزگذاری شده
  • CSRF Protection: محافظت در برابر حملات CSRF
  • SQL Injection Prevention: RLS در Supabase
  • Password Hashing: رمزگذاری با bcrypt

قابلیت اطمینان

  • Error Boundaries: مدیریت خطاهای React
  • Form Validation: اعتبارسنجی کامل ورودی‌ها
  • Database Transactions: عملیات اتمی
  • Graceful Degradation: عملکرد در شرایط محدود

📱 پشتیبانی از دستگاه‌ها

  • موبایل: iOS و Android
  • تبلت: iPad و Android tablets
  • دسکتاپ: Windows، macOS، Linux
  • مرورگرها:Chrome، Firefox، Safari، Edge

🏥 کاربرد بالینی

مخاطبان هدف

  • پزشکان عمومی: ارزیابی اولیه بیماران
  • متخصصان قلب: تصمیم‌گیری درمانی
  • پرستاران: غربالگری و آموزش بیماران
  • بیماران: خودارزیابی و آگاهی‌بخشی

مزایای استفاده

  • کاهش زمان ارزیابی ریسک
  • استانداردسازی محاسبات
  • ثبت دقیق اطلاعات بیماران
  • پیگیری منظم تغییرات ریسک

🤝 مشارکت و توسعه

این پروژه به عنوان نمونه کاری تخصصی در حوزه سلامت دیجیتال توسعه یافته است. برای پیشنهادات بهبود یا گزارش مشکلات از بخش Issues استفاده کنید.

راهنمای توسعه

# Fork کردن پروژه
# Clone کردن fork شده
git clone https://github.com/your-username/ASCVD.git

# ایجاد branch جدید
git checkout -b feature/new-feature

# Commit و Push تغییرات
git commit -m "Add new feature"
git push origin feature/new-feature

# ایجاد Pull Request

📚 منابع علمی

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

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages