السياق
Clinics ran scheduling, patient records, and billing as adjacent tools. Handoffs were people. A missed booking did not update the operational picture.
حدود النظام
ضمن النطاق
- locations
- booking
- patient workflows
- CRM
- ERP views
خارج النطاق
- clinical decision support
- device integration
البنية
Domains are explicit: location, appointment, patient, commercial account. ERP and CRM read the same operational events; they do not keep a second booking calendar.
- Location
- Booking
- Patient
- Visit
- CRM
- ERP
- Hub is the owning domain
- CRM/ERP are views, not calendars
- Location
- Booking
- Patient
- Visit
- CRM
- ERP
أعداد من السجل المنشور. تصف البنية، وليست نتيجة مقاسة.
كيف ترتبط مجالات النظام؟
domain
- خدمةLocation
operations
- خدمةBooking
- مخزنPatient
- عمليةVisit
consumers
- واجهةCRM
- واجهةERP
- LocationBooking
- LocationVisit
- BookingPatient
- PatientVisit
- VisitCRM
- VisitERP
التدفقات الحرجة
A booking is created against a location and practitioner
patient record is bound
visit workflow runs
CRM sees the relationship
ERP sees the commercial consequence.
المراحل
القرارات
One appointment object
CRM and ERP do not own calendars. They subscribe to operational facts.
Patient is not a contact
A CRM person and a clinical patient can relate, but collapsing them loses consent and record boundaries.
Location is a first-class node
Multi-clinic operations fail if “the clinic” is a label on a user.
عندما يتعطل
| الحالة | الكشف | الاستجابة |
|---|---|---|
| Double-book | Slot uniqueness | Reject write; show conflict |
| Orphan visit without patient bind | Workflow invariant | Block status change to arrived |
| ERP posting without visit close | Event completeness | Queue posting; do not invent line items |
البنية التحتية
- Laravel
- MySQL/Postgres
- queues for notifications
- backups
- role-based access per location
النتيجة
Clinics operate from one booking and patient core. CRM and ERP are views on that core.
الحالة الحالية
In production across clinic operations. New locations attach to the same domain map.