MALEKTEB سیستم نورومانیتورینگ
ورک‌فلو ثبت‌نام بیمار
داشبورد
🙍 بیمار
🔗
لینک دائمی ثبت‌نام
ادمین لینک یکبار ایجاد می‌کند — همیشه در دسترس
register.html
🔗 لینک دائمی
صفحه:register.html?token=XXXX
جدول:form_tokens (permanent)
وضعیت:نامحدود — هرگز منقضی نمی‌شود
📝
register.html
نام، کد ملی، موبایل، حل کپچا
ورود اطلاعات اولیه
📝 فرم رجیستر
API:api/forms.php?action=spawn_from_permanent
ورودی:نام + کد ملی + موبایل + کپچا
خروجی:توکن یکتا مراجعه
redirect to form.html
📋
فرم مراجعه — مرحله ۱
اطلاعات عمل، جراح، بیمارستان، تاریخ عمل
pending_fill
📋 فرم مرحله ۱
صفحه:form.html?token=UNIQUE
API:api/forms.php?action=save_step1
DB:form_tokens.status = 'pending_fill'
توکن:یکتا — یک‌بار مصرف
💳
فرم مراجعه — مرحله ۲
آپلود فیش واریزی — ثبت‌نام کامل می‌شود
pending_payment → pending_approval
🔔 اعلان بله/روبیکا پس از آپلود
💳 آپلود فیش
API:api/forms.php?action=upload_receipt
DB:form_tokens.status = 'pending_approval'
پیام‌رسان:baleNotifyReceiptUploaded
روبیکا:rubikaSendToPhone
🗂️
portal.html — پرونده بیمار
مشاهده وضعیت مراجعه، تاریخ عمل، گزارش‌ها
approved / pending
🗂️ پرونده بیمار
صفحه:portal.html
شناسه:patient_code: MT-NNNN
جدول:patient_profiles + patients
⚙️ سیستم / ادمین
⚙️
ایجاد توکن دائمی
ادمین یک‌بار اجرا می‌کند — create_permanent
permanent token
⚙️ توکن دائمی
API:api/forms.php?action=create_permanent
جدول:form_tokens (type=permanent)
انقضا:ندارد — همیشه فعال
🔄
spawn_from_permanent
ایجاد توکن یکتا یا بازیابی مراجعه قبلی
جدید یا بازگشتی؟
🔄 spawn_from_permanent
API:api/forms.php?action=spawn_from_permanent
منطق:جستجو در form_tokens و patients
خروجی:توکن یکتا جدید یا موجود
بیمار بازگشتی است؟
✅ بله — در انتظار بررسی: بلاک | ناقص: ادامه یا شروع جدید
➡️ خیر — توکن جدید ایجاد می‌شود
❓ منطق تشخیص
جستجو:ملی‌کد در form_tokens + patients
بلاک:op_status = 'pending' → خطا
ادامه:status = 'pending_fill/payment' → resume
pending_approval دریافت شد
🔍
بررسی فرم — app.html
ادمین فیش را بررسی و تأیید یا رد می‌کند
pending_approval
🔍 بررسی ادمین
صفحه:app.html
API:api/forms.php?action=review
امکانات:تأیید | رد | برگشت برای اصلاح
✅ تأیید → INSERT patients
🔄 برگشت مرحله ۱ → pending_fill
🔄 برگشت مرحله ۲ → pending_payment
❌ رد → حذف / expired
در صورت تأیید
INSERT patients
ایجاد پرونده — op_status = pending
approved
🔔 اعلان تأیید بله/روبیکا
✅ ثبت پرونده
جدول:patients (op_status = 'pending')
جدول:patient_profiles (MT-NNNN)
کد:visit_code: MT-NNNN-VN
پیام:baleNotifyApproved
📊
محاسبه سهام
جراح | کارشناس | شاهب | سپهر
done / cancelled
📊 تسویه مالی
زمان:پس از set_op_status = done/cancelled
ذینفعان:جراح، کارشناس، شاهب، سپهر
جدول:patients (shares JSON)
🔬 کارشناس
🏥
روز عمل — tech_portal.html
ثبت ساعت شروع و پایان عمل، آپلود گزارش نورومانیتورینگ
op_status = pending
🏥 روز عمل
صفحه:tech_portal.html
عملیات:ثبت زمان شروع/پایان
آپلود:گزارش IONM
جدول:patients (op_start, op_end)
پایان عمل
🏁
ثبت نتیجه عمل
کارشناس وضعیت نهایی را ثبت می‌کند
done ✅ cancelled ❌
🏁 نتیجه نهایی
API:api/forms.php?action=set_op_status
done:op_status = 'done'
cancel:op_status = 'cancelled'
بعد:→ محاسبه سهام سیستم
جریان وضعیت‌ها (form_tokens.status → patients.op_status)
pending_fill pending_payment pending_approval approved (patients) ✅ done یا ❌ cancelled
💀 expired — بیمار فرم را رها کرد
راهنمای رنگ‌ها
🙍 بیمار
👤 ادمین / سیستم
🔬 کارشناس
✅ تکمیل / موفق
❌ رد / لغو
⚠️ نقطه تصمیم
💀 رها‌شده