Перейти к содержимому
Работы
Healthcare operationsПубличное

Middlelink

Software ArchitectureBackend EngineeringIntegrations

Healthcare operations: booking, patients, ERP, CRM

Product and domain architecture

Контекст

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.

A clinic operations platform where booking, patient flow, CRM, and back-office ERP share identifiers instead of living as four products.
  1. Location
  2. Booking
  3. Patient
  4. Visit
  5. CRM
  6. ERP
  • Hub is the owning domain
  • CRM/ERP are views, not calendars
Опубликованная последовательность
  1. Location
  2. Booking
  3. Patient
  4. Visit
  5. CRM
  6. ERP
Этапы в каждом ряду
  • Ряд 13Booking · Patient · Visit
  • Ряд 22CRM · ERP
Роли на схеме
  • сервис2
  • процесс1
  • хранилище1
  • интерфейс2

Счётчики из опубликованной записи. Они описывают структуру, а не измеренный результат.

Как связаны домены системы?

domain

  • сервисLocation

operations

  • сервисBooking
  • хранилищеPatient
  • процессVisit

consumers

  • интерфейсCRM
  • интерфейсERP
  1. LocationBooking
  2. LocationVisit
  3. BookingPatient
  4. PatientVisit
  5. VisitCRM
  6. VisitERP

Критические потоки

  1. A booking is created against a location and practitioner

  2. patient record is bound

  3. visit workflow runs

  4. CRM sees the relationship

  5. ERP sees the commercial consequence.

Этапы

  • Multi-location
  • Booking
  • Patient workflow
  • CRM
  • ERP

Решения

01

One appointment object

CRM and ERP do not own calendars. They subscribe to operational facts.

02

Patient is not a contact

A CRM person and a clinical patient can relate, but collapsing them loses consent and record boundaries.

03

Location is a first-class node

Multi-clinic operations fail if “the clinic” is a label on a user.

Когда что-то ломается

УсловиеОбнаружениеРеакция
Double-bookSlot uniquenessReject write; show conflict
Orphan visit without patient bindWorkflow invariantBlock status change to arrived
ERP posting without visit closeEvent completenessQueue 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.