Skip to main content

Fire Arrow Server 2.1.2

· 2 min read

Fire Arrow Server 2.1.2 has been released.

  • (bugfix) CarePlan activity.reference values that pin a historical resource version (…/_history/N) are now stored and used as sent

Bug Fixes

Versioned CarePlan activity references were stripped on storage

A CarePlan activity can pin a specific version of a referenced resource with a /_history/N suffix — for example MedicationRequest/123/_history/3. That pin is load-bearing for scheduling: Task materialization should use the dosage and timing from that exact version, and bumping the pin (for example from /_history/3 to /_history/4) should trigger rematerialization.

Before 2.1.2, a create or update that sent a versioned activity.reference was stored without the version. Subsequent reads returned only MedicationRequest/123. As a result:

  • Editing the CarePlan to bump the pinned version looked like no change, so rematerialization did not run.
  • When materialization did run, it read the latest version of the referenced resource instead of the pinned one, so Tasks could follow the wrong dosage or timing.

Starting with 2.1.2, CarePlan.activity.reference keeps the /_history/N suffix through storage. A version bump is recognized as a scheduling change and rematerializes against the pinned version. Unversioned references behave as before.

Task.basedOn continues to use the unversioned resource id by design: Tasks still schedule from the CarePlan's pinned version, but carrying the version on every Task would force unnecessary Task refreshes when only the pin changes and the dosage window does not.

No configuration change is required. Clients that already send versioned references in activity.reference (including raw JSON) get the correct stored form automatically. CarePlans written before the upgrade that already lost their version pin must be updated again with the intended /_history/N reference.