03.26.2026
Today’s release includes the following updates:
sdk
Today Canvas Medical is releasing the Custom Data SDK feature. Plugins now have two techniques available to store information within the Canvas EMR durably and securely with minimal setup.
- Fully normalized relational database schemas via CustomModels, with or without integration to core SDK models.
- Zero configuration key/value and document storage via AttributeHubs
To start experimenting, see the Quick Start guide, and update the
canvasCLI tool for latest functionality.- Various Note Application improvements: Read more.
- Adds support for Note Applications to open automatically when a note is viewed, via the new
open_by_default()method. Read more. - The
handle()method is now deprecated in favor ofon_open(), which can return a singleEffector alist[Effect]. Existing plugins usinghandle()will continue to work. - Tabs now support a
PRIORITYclass attribute to control tab ordering — lower values appear first. Read more. - The context now includes a
notekey containing the note’s external UUID. - The “Note” tab can now be relabeled via the
NOTE_BODY_TAB_LABELConstance Config setting in the UI to avoid duplication when a charting application is also named “Note”. - Tabs have moved from the note body into the sticky note header, keeping them visible while scrolling through long notes.
- Adds support for Note Applications to open automatically when a note is viewed, via the new
- Expanded the plugin sandbox allowed imports to include
re.findall,requests.Session,functools.wraps,typing.Callable,typing.ClassVar,typing.Pattern, anddjango.db.IntegrityError. Read more.
ui
- The assessed/diagnosed conditions summary that previously appeared in the note header has been removed.
- Fixed an issue where uploading fillable PDFs with invalid form field references caused a 500 error when previewing, printing, or faxing documents.