08.24.2026
Today’s release includes the following updates:
bugfix
- Fixed an issue where committing a Point of Care Lab Test did not add the CPT charge configured on the test’s template to the billing footer of the note, so the visit could be under-billed. The charge is now added when the command is committed, whether that happens in the chart or from a plugin.
sdk
- The SDK data module now reaches a patient’s signed consent documents, where previously only the blank template was available. PatientConsent gains:
documents— the signed PatientAdministrativeDocument records.active_document— the current signed document.document_references— the DocumentReference records behind them.
- The SDK data module now reaches a goal’s update history alongside the goal itself. UpdateGoal is the record behind the Update Goal and Close Goal commands, and three accessors list them:
canvas validateandcanvas installnow catch two more constructs the sandbox rejects. Both used to pass validation on your machine and then fail once the plugin reached the instance; the error now names the alternative that works. (requires Canvas CLI 0.198.1 or newer)- Any call to
type(), not just the three-argument form used for dynamic class creation — useisinstance(x, SomeClass)to test a type, orx.__class__.__name__to read its name. - Augmented assignment to an attribute (
obj.attr += v), which is rejected even on classes your plugin defines itself — writeobj.attr = obj.attr + vinstead.
- Any call to
- The Change Medication command now validates
medication_idwhen you edit an existing command, not only when you originate a new one. An id that isn’t a valid UUID, or that matches no active medication on the patient’s chart, fails validation. - Some commands now validate their string fields against the maximum length the chart accepts, and raise a validation error when a value exceeds it. The error names the field, so an over-long value is caught in your plugin instead of being accepted and then rejected later, away from the plugin that sent it.
- The Allergy command’s
narrativeaccepts up to 512 characters. - The Family History command’s
noteaccepts up to 512 characters. - The Imaging Order command’s
additional_detailsandcommentaccept up to 1024 characters. - The Immunization Statement command’s
commentsaccepts up to 255 characters. - The Medication Statement command’s
sigaccepts up to 1000 characters.
- The Allergy command’s