Medplum v5 is Released | Medplum

Release of Medplum v5

We are pleased to announce the Release of Medplum v5, the next major version of the open source healthcare developer platform.

As outlined in our preparatory post in May, Medplum v5 represents a comprehensive and necessary modernization of our core stack. This release ensures our platform maintains the highest standards of performance, security, and developer experience by aligning with the latest stable versions of our critical runtime and tooling dependencies.

As with all major releases, our goal is to provide a stable, predictable, and future-proof platform for building healthcare solutions.

Core Platform Modernization

The bulk of the work in v5 involved essential dependency upgrades and technical debt reduction.

Runtime and Infrastructure

Medplum v5 now requires and is rigorously tested against modern runtime environments:

New Capabilities

We are excited to release several major new features in Medplum v5:

  1. Full FHIR Terminology Validation. Medplum now includes comprehensive, built-in terminology support covering major code systems like SNOMED, ICD, CPT, and others. Crucially, this functionality also includes hierarchy support (e.g., "descendant of"). This advanced validation logic contributes directly to better data hygiene, improves data quality, and increases confidence in the integrity of the data managed by the Medplum platform.
  2. FHIR GraphQL Patch support. The Medplum GraphQL API now supports FHIR Patch operations, enabling more efficient and flexible updates to FHIR resources via GraphQL mutations. This enhancement allows developers to perform partial updates, reducing payload sizes and improving performance for applications that require frequent resource modifications.

Frontend and Developer Tooling

We have streamlined the frontend stack to improve build times, component quality, and overall developer experience:

Strategic Update: ESM by Default

A key architectural shift in v5 is the move to ES Modules (ESM) by default.

This aligns Medplum with the modern JavaScript module standard, offering benefits like improved tree-shaking and better future compatibility. For a smooth transition, we will dual-publish certain SDK packages as CJS+ESM. We strongly recommend that all custom applications migrate to ESM for optimal compatibility and performance moving forward.

Planning Your Migration (Breaking Changes)

Medplum v5 includes a few minor breaking changes, primarily involving the deprecation of long-standing features and updates to API signatures for better consistency and modern patterns.

API and SDK Changes

Old Feature/Component New Feature/Component Note
Non-standard usage of ?param:in=... and ?param:not-in=... Strict FHIR compliance Invalid usage of the :in and :not-in search modifiers now throws an error. For simple inclusion checks, remove the modifier: Patient?_id=uuid1,uuid2.
PasswordChangeRequest resource UserSecurityRequest resource PasswordChangeRequest was deprecated for over a year; UserSecurityRequest is a superset of its functionality.
Hl7Server.start and Hl7Server.stop methods Same methods, now async These methods must now be used with await or promise chains.
ProjectSecret type definition ProjectSetting type Use the ProjectSetting type instead.
MemoizedSearchControl React component SearchControl React component Use the standard component directly.

Infrastructure Changes

The Value of Upgrading

While a major version upgrade requires planning, Medplum v5 delivers concrete benefits that justify the effort:

Next Steps for Self-Hosted Customers

We encourage self-hosted customers to begin planning their upgrade immediately.

For technical questions or feedback, please join the conversation on Discord or submit issues on GitHub.

Medplum v5 is ready to power your next generation of healthcare applications.