SYSTEM ARCHITECTURE DOCUMENT

معمار النظام التقني الكامل
MedPlatform

خريطة شاملة لكل طبقات النظام — من واجهة المستخدم حتى قاعدة البيانات والخدمات الخارجية

🗂 7 طبقات معمارية
⚙️ 12+ خدمة مستقلة
🗄️ 8 جداول بيانات رئيسية
🔌 40+ API endpoint
🛡️ JWT + SSL أمان
طبقة العملاء
API Gateway
الخدمات الأساسية
الذكاء الاصطناعي
قواعد البيانات
البنية التحتية
خدمات خارجية
LAYER 1 — CLIENT APPS | طبقة العملاء
📱

تطبيق المريض

iOS & Android — بحث، حجز، استشارة، ملف طبي

React Native / Flutter
🩺

تطبيق الطبيب

iOS & Android — مواعيد، مرضى، وصفات، جدول

React Native / Flutter
🌐

موقع الويب

بحث، حجز أونلاين، SEO، صفحات الأطباء

Next.js + TypeScript
🏥

داشبورد المستشفى

إدارة أطباء، أقسام، تقارير مالية، حجوزات

React + Vite
📊

لوحة الإدارة

إدارة كاملة للمنصة، مستخدمين، محتوى، دفع

React + Tailwind
📞

واجهة الكول سنتر

استقبال مكالمات، حجز هاتفي، إدارة فريق

React + WebRTC
HTTPS / REST API / WebSocket / GraphQL
LAYER 2 — API GATEWAY & SECURITY | بوابة الـ API والأمان
🛡️

API Gateway

توجيه الطلبات، rate limiting، load balancing

AWS API Gateway
🔐

Auth Service

JWT tokens، OAuth2، تسجيل دخول، صلاحيات

Node.js + Passport
⚖️

Load Balancer

توزيع الحمل على الـ microservices

AWS ALB / Nginx
📡

WebSocket Server

الاستشارات المباشرة، الشات، الإشعارات اللحظية

Socket.io
🧱

Middleware Layer

validation، logging، CORS، error handling

Express Middleware
Internal gRPC / Message Queue (RabbitMQ)
LAYER 3 — CORE MICROSERVICES | الخدمات الأساسية
📅

Booking Service

حجز، إلغاء، تعديل مواعيد، تحقق من التوفر

Node.js + Express
👤

User Service

إدارة ملفات المرضى والأطباء والمستشفيات

Node.js + Express
💬

Consultation Service

فيديو كول، شات طبي، وصفات إلكترونية

WebRTC + Node.js
💳

Payment Service

معالجة المدفوعات، الفواتير، الاشتراكات

Node.js + Stripe
🔔

Notification Service

Push، SMS، Email — تذكيرات وتأكيدات

Firebase + Twilio
📋

Medical Records

السجل الطبي الإلكتروني، التقارير، الأدوية

Node.js + FHIR

Review Service

تقييمات الأطباء، التعليقات، المراجعة والموافقة

Node.js + Express
📞

Call Center Service

IVR، توزيع مكالمات، حجز هاتفي، تسجيل

Node.js + VoIP
🔍

Search Service

بحث متقدم بالتخصص والموقع والتأمين

Elasticsearch
📈

Analytics Service

تقارير، إحصائيات، dashboards متقدمة

Node.js + BI
AI Model API Calls / Python FastAPI
LAYER 4 — AI & INTELLIGENT SERVICES | الذكاء الاصطناعي
🤖

AI Confirmation Bot

اتصال تلقائي بالمريض لتأكيد الحجز بصوت طبيعي

OpenAI TTS + STT
🧠

Symptom Checker

فحص أولي للأعراض واقتراح التخصص المناسب

LLM + RAG
💡

Recommendation Engine

توصية بأفضل الأطباء بناءً على التاريخ والتفضيلات

Python + ML
📝

Smart Summarizer

تلخيص الملف الطبي والتقارير للطبيب

GPT-4 API
🔮

No-Show Predictor

تنبؤ بحالات عدم الحضور وتنبيه العيادة

Scikit-learn
Read / Write — MongoDB Driver / Mongoose / Redis Client
LAYER 5 — DATA LAYER | طبقة البيانات
🍃

MongoDB

قاعدة البيانات الرئيسية — مرضى، أطباء، حجوزات، سجلات

MongoDB Atlas (Cloud)

Redis Cache

تخزين مؤقت للجلسات، نتائج البحث، بيانات متكررة

Redis Cloud
🔍

Elasticsearch

فهرسة وبحث سريع في الأطباء والتخصصات

Elastic Cloud
🗃️

File Storage

صور، تقارير PDF، ملفات الأشعة والمختبرات

AWS S3
📊

Analytics DB

بيانات التحليلات والإحصائيات التاريخية

PostgreSQL / BigQuery
🔄

Message Queue

إدارة الأحداث غير المتزامنة بين الخدمات

RabbitMQ / SQS
Cloud Infrastructure — AWS VPC
LAYER 6 — INFRASTRUCTURE & DEVOPS | البنية التحتية
☁️

AWS Cloud

EC2، ECS، Lambda — استضافة سحابية كاملة

AWS Region: ME
🐳

Docker + Kubernetes

containerization وأوركسترا للـ microservices

EKS / Docker
🔄

CI/CD Pipeline

نشر تلقائي، اختبارات، deployment آمن

GitHub Actions
📡

CDN

توزيع المحتوى الثابت وتسريع التحميل

CloudFront / CF
📉

Monitoring

مراقبة الأداء، التنبيهات، تتبع الأخطاء

Grafana + Sentry
🔒

SSL / VPN

تشفير كامل، شبكة خاصة، حماية البيانات

AWS Shield + WAF
Third-Party API Integration
LAYER 7 — EXTERNAL SERVICES | الخدمات الخارجية
💰

Payment Gateways

Stripe، Paymob، Fawry — مصر والسعودية

Stripe + Paymob API
📱

SMS / WhatsApp

تذكيرات وتأكيدات عبر واتساب والرسائل

Twilio + WA API
📧

Email Service

إيميلات تأكيد، فواتير، نشرات إخبارية

SendGrid
🗺️

Maps & Location

خرائط العيادات، حساب المسافة، الاتجاهات

Google Maps API
🔥

Firebase

Push notifications، Analytics، Auth

Firebase Admin SDK
🤖

OpenAI API

AI Calls، text generation، NLP

GPT-4 + Whisper
🛡️

Insurance APIs

التحقق من التغطية التأمينية آنياً

REST Integration
📹

Video Call SDK

استشارات مرئية مشفرة وعالية الجودة

Agora / Daily.co
🔄

رحلة المريض — User Journey Flow

من أول لحظة يفتح فيها التطبيق حتى نهاية الاستشارة

STEP 01
📱

تسجيل / دخول

إنشاء حساب بالإيميل أو رقم الموبايل — JWT token يُحفظ محلياً

STEP 02
🔍

بحث عن طبيب

بحث بالتخصص، الموقع، التأمين، التقييم — Elasticsearch يرجع النتائج في أقل من 200ms

STEP 03
📅

اختيار موعد

المريض يختار الوقت المتاح — Booking Service يحجز الـ slot ويمنع الـ double booking

STEP 04
💳

الدفع

دفع إلكتروني عبر Stripe / Paymob — receipt يُرسل تلقائياً بالإيميل

STEP 05
🤖

تأكيد AI

24 ساعة قبل الموعد: AI يتصل بالمريض تلقائياً لتأكيد أو تعديل الحجز

STEP 06
🩺

الاستشارة

زيارة عيادة أو فيديو كول مشفر — الطبيب يكتب الوصفة إلكترونياً

STEP 07
📊

المتابعة

تذكيرات الأدوية، الفحوصات الدورية، تقييم الطبيب — دورة تتكرر

🔀

خريطة تدفق البيانات — Data Flow Map

كيف تتحرك البيانات بين طرفي المنصة عبر القلب المركزي

📱
طلب حجز من المريض

التاريخ، الطبيب، نوع الزيارة

🩺
جدول الطبيب

الأوقات المتاحة، الإجازات، الحد الأقصى

📞
مكالمة الكول سنتر

حجز هاتفي، تعديل، إلغاء

💳
عملية الدفع

بيانات البطاقة، التأمين، المحفظة

🤖
رد المريض على AI

تأكيد / تعديل / إلغاء الموعد

↔ INPUT
⚕️
API CORE
OUTPUT ↔
تأكيد الحجز

إشعار فوري للمريض والطبيب معاً

📋
تحديث الملف الطبي

السجل، التشخيصات، الوصفات

🔔
إشعارات متعددة

Push، SMS، WhatsApp، Email

📊
بيانات التحليلات

إحصائيات، تقارير، مؤشرات الأداء

💊
إرسال الوصفة

للصيدلية مباشرة أو PDF للمريض

⚙️

التقنيات المستخدمة — Tech Stack

أفضل التقنيات الحديثة لبناء منصة قابلة للتوسع والاستدامة

📱

Mobile Apps

تطبيقات iOS & Android

Flutter / React NativeFramework
Dart / JavaScriptLanguage
WebRTCVideo
Firebase SDKNotifications
Redux / RiverpodState
🖥️

Frontend Web

موقع الويب ولوحات التحكم

Next.js 14Framework
React + ViteDashboards
TypeScriptLanguage
Tailwind CSSStyling
React QueryData Fetching
⚙️

Backend Services

الخادم والـ APIs

Node.js + ExpressRuntime
Python + FastAPIAI Services
GraphQL + RESTAPIs
Socket.ioReal-time
JWT + OAuth2Auth
🗄️

Databases & Storage

قواعد البيانات والتخزين

MongoDB AtlasMain DB
RedisCache
ElasticsearchSearch
PostgreSQLAnalytics
AWS S3Files
☁️

Infrastructure

البنية التحتية السحابية

AWS (EC2 + ECS)Cloud
Docker + KubernetesContainers
GitHub ActionsCI/CD
CloudFront CDNCDN
Grafana + SentryMonitoring
🤖

AI & Integrations

الذكاء الاصطناعي والخدمات الخارجية

OpenAI GPT-4LLM
Twilio Voice/SMSCalls
Stripe + PaymobPayment
FirebasePush / Auth
Agora.ioVideo SDK
🗄️

هيكل قاعدة البيانات — Database Schema

الجداول والحقول الرئيسية لكل collection في MongoDB

👤

Users

Collection
🔑 PK_idObjectId
nameString
phoneString (unique)
emailString (unique)
roleenum[patient,doctor,admin]
profileImageString (S3 URL)
isVerifiedBoolean
createdAtDate
🩺

Doctors

Collection
🔑 PK_idObjectId
🔗 FKuserIdref: Users
specialtyString
subSpecialtiesArray[String]
licenseNumberString (unique)
yearsOfExpNumber
consultationFeeNumber
ratingNumber (avg)
availableSlotsArray[Object]
🔗 FKhospitalIdref: Hospitals
subscriptionPlanenum[basic,pro,premium]
📅

Appointments

Collection
🔑 PK_idObjectId
🔗 FKpatientIdref: Users
🔗 FKdoctorIdref: Doctors
dateTimeDate
typeenum[clinic,video,home]
statusenum[pending,confirmed,done,cancelled]
aiConfirmedBoolean
🔗 FKpaymentIdref: Payments
notesString
💳

Payments

Collection
🔑 PK_idObjectId
🔗 FKuserIdref: Users
amountNumber
currencyenum[EGP,SAR,USD]
methodenum[card,wallet,insurance]
statusenum[pending,paid,refunded]
stripePaymentIdString
receipt_urlString
📋

Medical Records

Collection
🔑 PK_idObjectId
🔗 FKpatientIdref: Users
🔗 FKdoctorIdref: Doctors
diagnosisString
prescriptionsArray[Object]
attachmentsArray[S3_URL]
followUpDateDate
ICD10_codeString
🏥

Hospitals

Collection
🔑 PK_idObjectId
nameString
locationGeoJSON Point
departmentsArray[String]
doctorsArray[ref: Doctors]
subscriptionPlanenum[basic,enterprise]
insurancePartnersArray[String]
isVerifiedBoolean

Reviews

Collection
🔑 PK_idObjectId
🔗 FKpatientIdref: Users
🔗 FKdoctorIdref: Doctors
ratingNumber (1-5)
commentString
isApprovedBoolean
createdAtDate
📞

CallCenter Logs

Collection
🔑 PK_idObjectId
callerPhoneString
agentIdref: Users
typeenum[inbound,ai_outbound]
durationNumber (seconds)
outcomeenum[booked,modified,cancelled,noAnswer]
🔗 FKappointmentIdref: Appointments
recordingUrlString (S3)
🔌

API Endpoints الرئيسية

أهم نقاط الـ REST API لكل خدمة في المنظومة

👤

/api/auth — المصادقة

POST/registerتسجيل مستخدم جديد
POST/loginتسجيل الدخول + JWT
POST/refresh-tokenتجديد التوكن
POST/logoutتسجيل الخروج
POST/verify-otpتحقق رقم الموبايل
🩺

/api/doctors — الأطباء

GET/searchبحث بفلاتر متعددة
GET/:idبروفايل طبيب
GET/:id/slotsالأوقات المتاحة
PUT/:id/profileتحديث بيانات الطبيب
PUT/:id/scheduleتحديث الجدول
📅

/api/appointments — الحجوزات

POST/bookحجز موعد جديد
GET/myحجوزاتي
PUT/:id/cancelإلغاء موعد
PUT/:id/rescheduleتعديل موعد
PUT/:id/confirmتأكيد موعد (AI)
GET/:id/statusحالة الموعد
💳

/api/payments — المدفوعات

POST/create-intentإنشاء طلب دفع
POST/confirmتأكيد الدفع
GET/historyتاريخ المدفوعات
POST/refundاسترداد مبلغ
POST/webhookStripe Webhook
📋

/api/records — السجلات الطبية

GET/patient/:idالملف الطبي الكامل
POST/createإنشاء سجل زيارة
PUT/:idتحديث سجل
POST/prescriptionإصدار وصفة طبية
GET/:id/pdfتصدير PDF
🤖

/api/ai — الذكاء الاصطناعي

POST/confirm-callبدء اتصال التأكيد
POST/symptom-checkفحص الأعراض
GET/recommend/:patientIdتوصية بطبيب
POST/summarize-recordتلخيص ملف طبي
GET/noshow-risk/:idاحتمالية عدم الحضور
🛡️

الأمان وحماية البيانات — Security

طبقات متعددة من الحماية لبيانات المرضى الحساسة

🔐

JWT Authentication

توكنات مشفرة لكل جلسة مع تحديد صلاحيات دقيق لكل دور (مريض، طبيب، إدارة)

🌐

HTTPS / SSL

كل الاتصالات مشفرة بالكامل — بروتوكول TLS 1.3 لضمان عدم اعتراض البيانات

🧱

WAF + DDoS Protection

AWS WAF لحجب الهجمات + AWS Shield لمنع هجمات الإغراق وحماية الخوادم

🔏

Data Encryption at Rest

البيانات الحساسة مشفرة حتى في قاعدة البيانات — AES-256 لملفات المرضى

⏱️

Rate Limiting

حد أقصى لعدد الطلبات لكل IP لمنع brute force وإساءة استخدام الـ API

📝

Audit Logging

تسجيل كل عملية تغيير على بيانات المريض مع الوقت والمستخدم المسؤول

🏥

HIPAA Compliance

التزام بمعايير حماية البيانات الطبية الدولية وخصوصية المريض

🔄

Automated Backups

نسخ احتياطية تلقائية يومية مشفرة لجميع قواعد البيانات — retention 90 يوم

System Architecture