Product architecture

How MediSlate works under the hood

A calm, deterministic system that turns front-desk actions into scheduled care — with rules for reminders, no-shows, and staff workload built in.

System layers
UI Layer
React 19, TanStack Router, design tokens, WCAG-AA.
Domain
Patients, Appointments, Practitioners, Rules.
Data
Encrypted store with append-only audit log.
Integrations
SMS, Email, Calendar, EHR (planned).
Appointment booking flow
STEP 1
Patient identified
Search or register.
STEP 2
Slot selected
Practitioner + time.
STEP 3
Rules engine
Conflict + eligibility checks.
STEP 4
Reminders queued
SMS/Email at T-24h.
STEP 5
Outcome logged
Completed / no-show.
Rules engine
IF appointment is within 24h AND status = booked
THEN send email + SMS reminder
IF practitioner has 6+ appointments in a day
THEN block additional bookings
IF patient has 2 consecutive no-shows
THEN require confirmation call before next booking
IF appointment reason = 'follow-up'
THEN suggest same practitioner as previous visit
IF slot conflicts with staff leave
THEN reject and propose next 3 slots
Access control matrix
CapabilityStaffPractitionerAdmin
View patients✓✓✓
Create / edit patients✓—✓
Book appointments✓—✓
Update appointment status✓✓✓
Manage staff & roles——✓
Run backups——✓
Core entities
Patient
  • — id
  • — name
  • — phone
  • — dob
  • — gender
  • — address
  • — notes
  • — allergies
  • — bloodGroup
  • — createdAt
Appointment
  • — id
  • — patientId →
  • — practitionerId →
  • — dateTime
  • — duration
  • — reason
  • — status
  • — notes
User (Staff)
  • — id
  • — name
  • — email
  • — role
  • — specialty
  • — phone
  • — bio
  • — avatar
Relationships: Appointment.patientId → Patient.id · Appointment.practitionerId → User.id
Non-functional guarantees
Encryption
AES-256 at rest, TLS 1.3 in transit.
Availability
99.95% uptime SLA target.
Latency
P95 page load under 800ms.
Backups
Hourly incremental, nightly full.