10.21.2026
Today’s release includes the following updates:
bugfix
- Fixed an issue where a prescriber who finished DrFirst EPCS enrollment could still have their first controlled-substance prescription rejected at the pharmacy, because their Surescripts directory entry was missing the controlled substance service level and their DEA number. Canvas now ensures the directory entry has both once their enrollment becomes active.
- Fixed an issue where approving a refill request for a controlled substance was rejected after EPCS signing when the original prescription wasn’t written in Canvas, leaving the prescription unsent with no error shown. These refills now go through.
- When a staff member approves a refill on another prescriber’s behalf, the response sent to the pharmacy now includes the staff member’s name.
- Fixed an issue where the patient portal could suddenly lose its styling, such as showing oversized icons, until the page was reloaded. The portal now keeps its styling.
- Fixed an issue where saving a change, such as collecting a payment, could show a connection error even though the change was saved. Collecting payments, FHIR API writes, signing notes, confirming appointments, and updating commands now complete normally, and plugin events such as
CLAIM_UPDATEDstill fire. - Fixed an issue where a command that a plugin added to a note from a chart application tab didn’t show in the note after returning to the Chart tab until the page was refreshed.
ui
- The global Messages panel has a new Assignee filter, which replaces the Recipient filter. It defaults to Me or my teams, and the unread badge includes messages assigned to your teams.
- Filter by Me, Me or my teams, All, Unassigned, or a specific staff member or team.
- Plugins assign patient messages to a team. When one team member reads a team message, it’s marked read for the whole team.
sdk
- Plugins can assign patient messages to a team:
create()andcreate_and_send()on theMessageeffect accept ateam_idto create a message already assigned to a team.- The new
AssignMessageTeameffect reassigns or unassigns an existing message. - The new
MESSAGE_TEAM_ASSIGNEDevent fires each time a message’s team is set, changed, or cleared. - The Message data model shows the team a message is assigned to, and Team lists its assigned messages.
- Plugins can read a provider’s Google Calendar busy time, Google Calendar connection status, and connected calendars through the Google Calendar data models, for providers using Google Calendar sync.
- Plugins can read which command types are turned on for an instance through the
CommandTypeSettingdata model.