Skip to main content

Medplum Monthly Update - March 2026

· 8 min read
Everett Williams
Deployment Strategist, Medplum

March was yet another busy month for Medplum. Three patch releases — v5.1.2, v5.1.3, and v5.1.4 — arrived alongside over 100 commits from 20+ contributors, and the work underneath the surface was just as significant as the new features. Spaces gained richer AI tooling. The communications documentation received a full suite of guides covering everything from the data model to automations. Worker infrastructure got a substantial rethink, and WebSocket subscriptions were hardened across the board. All of it continues to advance our 2026 roadmap priorities.

Features

Provider App: Spaces and AI

David Yanez David Yanez

Spaces continues to advance our AI roadmap initiative and the Provider Application roadmap goal:

  • System prompts on Communication resources — Spaces stores system prompts as Communication resources for clearer modeling and reuse
  • Component preview, code, and FHIR resources — Previews and visibility into generated UI, code, and underlying resources in the Spaces chat experience
  • Translator tool looping — The translator can iterate until the user's request is satisfied for more reliable multi-step workflows
  • Updated default language model — Newer model defaults for improved quality and consistency
  • Spaces demo bots — Demo bots for Spaces are easier to discover in development environments
  • Tab navigation — Standardized tabs across high-traffic screens (Kevin Wadeshaw)

Provider App: Messaging, Scheduling, and Billing

David Yanez David Yanez

The Provider app gained messaging, calendar, and billing improvements:

  • Communications payload and eFax — A dedicated payload tab on Communications, eFax integration, and ThreadChat updates (subject on communications, clearer file metadata for uploads and search)
  • Calendar scheduling — Switch practitioner schedules from the calendar; more robust Find pane when service types omit a system; visit setup right after $book; schedule pickers resolve actors via Schedule:actor
  • Candid billing — Claim status in the Provider app and use of external identifiers when a Candid encounter id is absent
  • SMART App LaunchfhirContext support and respect for an existing login query parameter on launch
  • Project-scoped Provider access — Project membership aligns with who can open the Provider experience (Cody Ebberson)
  • Domain rules for external appsDomainConfiguration can target apps hosted outside the core deployment (Cody Ebberson)
  • Charting and sample data — Controlled-substance documentation updates (Maddy Li) and CPT handling fixes on sample data

Scheduling Operations

Noah Silas Noah Silas

Server-side scheduling advances the Scheduling roadmap initiative:

  • $find service type matching — More accurate matching when resolving available slots
  • Wildcard availability removed — Clearer availability semantics and fewer ambiguous slot definitions
  • FooMedical scheduling demo — Updated patient-facing scheduling showcase
  • Demo schedules — Refreshed demo schedule content and calendar examples (Reshma Khilnani)

Platform and Infrastructure

Cody Ebberson Cody Ebberson and Matt Long Matt Long

This work advances Enterprise Scale & Infrastructure:

  • Workers — Dispatch worker path, configurable background workers, CDK support for worker-only services, and conditional worker deployment
  • auth/me project features — Clients read enabled project features from the authenticated session
  • Marketplace definitions — Foundation resources for marketplace packages (package resource)
  • Bot $init operation — Initializes Bot content for repeatable deployments (Bots overview)
  • Auth UI extraction — Shared React components for sign-in and session flows

Matt Willer Matt Willer

  • Presigned Binary uploads — Secure, efficient client-side uploads without routing through the server
  • Rate-limit caching — In-memory tracking of heavily rate-limited IPs for faster enforcement
  • Database tuning — PostgreSQL transaction idle timeouts and faster login flow
  • Observability — Broader FHIR interaction metrics from the system repository; transaction consistency fixes in database reads

Derrick Farris Derrick Farris

  • WebSocket subscription hardening — Subscription token lifecycle, stale subscription detection against user limits, and FHIRcast topic key refresh
  • HL7 client resilience — Clients now warn instead of error on unknown message control IDs

Developer Experience

  • ThreadInbox / ThreadChat — Optional allowPatientSelection for patient-facing apps; prop type exports; QuestionnaireForm fixes for repeated multiple-choice items; questionnaire signature stories (David Yanez, Noah Silas)
  • useSearch typing — Results use WithId<T> for safer access to server-assigned ids (Noah Silas)
  • SMART launch — Opens in a new tab by default; respects an existing login query parameter on launch (Maddy Li)
  • Reference display fallback — UUID fallback when a reference has no display string (Maddy Li)
  • ValueSetAutocomplete — Configurable count behavior (Aditya Suri)
  • MedplumClient retry options — Configurable maximum retry time and default maxRetries (Cody Ebberson, Aditya Suri)
  • CLI healthcheck validation — Custom base URLs are validated against the server healthcheck when configuring profiles (Medplum CLI, Rahul Agarwal)
  • SMART on FHIR demo app — New example app for SMART launch and patient context (Alex Lin)
  • Why Open Source — New page on Medplum's open-source philosophy

Documentation

March's documentation push emphasizes communications, clinical and scheduling workflows, and platform operations — supporting builders who ship workflow-heavy provider experiences.

Communications and messaging

Everett Williams Everett Williams

Additional communications documentation pages are in the works beyond what shipped in March, so expect the communications section to keep growing.

Clinical charting and scheduling

Darren Eam Darren Eam

Platform and operations

Bug Fixes

Server

  • Return HTTP 400 when PostgreSQL rejects date/time values that overflow field bounds, instead of a generic database error (contributed by Léandre Chamberland-Dozois)
  • Improved patch behavior when JSON patch operations implicitly create arrays
  • Hardened ProjectMembership.invitedBy population for consistent invite attribution
  • Additional edge cases for subscription token expiry and rebinding
  • Fixed basic authentication handling for inactive project memberships

Clinical and UI

  • Fixed mapReferenceRange so numeric reference ranges map cleanly into FHIR Range for observations (contributed by Amanda McGivern)

Releases

Looking Ahead

March deepened the Provider app's Spaces, messaging, and scheduling story, while worker and subscription work strengthened the platform's operational backbone. Communications documentation now gives teams a clearer map from threads and tasks to automation — supporting the next wave of patient and clinician-facing workflows.

Join us on Discord to share feedback or follow along on GitHub.