We will be changing how the questionnaire attribute is handled by the FHIR QuestionnaireResponse endpoints on 02/02/2026. Read more.
Changelog
Stay up to date with the latest features, fixes, and breaking changes in Canvas.
Today’s release includes the following updates:
api
- Fixes a bug where care team membership organization ids were incorrect for external providers.
ui
- Removed character limit for
backgroundfield in both Diagnose and Assess Condition commands.
sdk
- Adds
sumto the allowed imports. Read more. - Adds
Prefetchto the django.db and django.db.models.query allowed imports. Read more. - Adds
Sum,Avg,Min,Maxto the django.db.models allowed imports. Read more. - Adds
Exists,OuterRef,Subqueryto django.db.models and django.db.models.expressions allowed imports. Read more. - Adds events for Imaging Review Command. Read more.
- Adds events for Lab Review Command. Read more.
- Adds events for Referral Review Command. Read more.
- Adds events for Uncategorized Document Review Command. Read more.
- Fixes appointment update to no longer create a note state change.
Today’s release includes the following updates:
api
- Prevents the change of patient when updating an appointment via FHIR API. Suggested workflow if patient needs correcting is to cancel the existing appointment and create a new appointment on the correct patient.
ui
- Fixes an issue where the triple dot menu in an appointment card on the schedule view that allows the appointment to be rescheduled, no-showed, or cancelled from appearing if the appointment has already been checked-in.
sdk
- Fixes a bug that was preventing annotations when using the SDK Events: ASSESS__CONDITION__POST_SEARCH and UPDATE_GOAL__GOAL_STATEMENT__POST_SEARCH.
Today’s release includes the following FHIR API updates for USCDI v3 compliance:
api
- Adds ServiceRequest read and search endpoints
- Adds support to Condition and Observation endpoints for FHIR granular scopes
- Adds
basedOnattribute to Procedure resource - Adds
clinical-notecoding to DocumentReference category for clinical notes - Adds
specimenattribute to Observation - Updates CapabilityStatement so that the deprecated security extension is no longer included, and the
supportedProfileattribute is present for US Core resources - Updates Provenance documentation and adds Provenance request examples
Today’s release includes the following updates:
sdk
bugfix
- Fixes appointment cards being visible even if the user does not have access to the patient
- Fixes appointment effects failing validation due to deprecated note types
Today’s release includes the following updates:
sdk
- Adds OrganizationAddress data model.
- Adds OrganizationContactPoint data model.
- Adds PracticeLocationContactPoint data model.
bugfix
- Fixes bug related to extracting the OAuth authenticated user for SimpleAPI requests that use form media types.
Today’s release includes the following updates:
api
- Released the planned and previously-announced breaking changes to the FHIR Condition endpoints. Read more.
Today’s release includes the following updates:
sdk
- Adds PostClaimPayment effect for posting an insurance or patient payment to a claim.
- Adds ClaimSubmission data model to assist in identifying claims from external 835 or remit documentation.
- Adds CreateCalendar effect for creating calendars for a provider.
- Adds Event effect for creating, updating, and deleting calendar events.
- Adds Calendar and Event data models to the data module.
Today’s release includes the following updates:
sdk
bugfix
- Updates Candid integration to exclude Canvas COPAY workflow.
- Fixes an issue that prevented recurring appointments to be rescheduled.
- Fixes an issue that prevented deprecated note types from being accessed in the SDK.
Today’s release includes the following updates:
api
- Updated the FHIR Observation
categoryfield to comply with new USCDI v3 requirements. Previously, Observations could only have a single category value, but now they can have multiple. This requirement stems from the US Core Observation Screening Assessment Profile. - Added
performerto the FHIR Observation resource. - Read more.
sdk
- The
categoryfield on the Observation model in the SDK data module now contains a comma-separated string which can contain multiple categories. There are currently no application workflows that can create Observations like this, but plugins that access thecategoryfield should account for this to prevent future breakage.
Today’s release includes the following updates:
ui
- Adds an icon to indicate when a contact is linked to a patient chart.
sdk
- Historical plugin logs are now available through both the UI and the CLI. Read more.
- Improved plugin logging.
Today’s release includes the following updates:
ui
- New letter template variables related to staff, appointments, patient email, patient balance, and parent/guardian are now available. Read more.
config
- Developers can optionally add users to view and manage individual plugins within admin. When managing users are assigned to a plugin, only those specific users have permission to view and modify sensitive plugin information such as plugin secrets and the package file download link. Non-managing users can still view plugin non-sensitive information and they are allowed to enable/disable the plugin. Read more.
- Enhance the plugin admin experience by allowing users to search plugins by name, filter plugins by is_enabled, and allowing bulk actions to enable/disable multiple plugins at once from the action dropdown.
sdk
- Adds
PracticeLocationAddressto the data module. Read more. - Adds
fromstringfromdefusedxml.ElementTreeto allowed imports. Read more.
bugfix
- Fixed duplicate referral contacts from appearing when searching for contacts
- If a reason for visit is changed while rescheduling or scheduling a follow-up, only the updated reason will appear in the appointment note’s RFV command.
portal
- Ensure format validation entry for username, phone number, and email when registering for a new patient portal account. Read more.
Today’s release includes the following updates:
api
- Faster searches for the following resources:
- Conditions
- QuestionnaireResponses
- Patients
- Appointments
- Encounters
- Faster creations of QuestionnaireResponses
Today’s release includes the following updates:
sdk
- Adds Actor to events. Read more.
Today’s release includes the following updates:
api
- Prevents changing the patient when updating an appointment via FHIR API. Read more.
ui
- Fixes providers unable to prescriber due to special characters in their name.
- When generating full chart PDF, the practice location information in the note header will be populated using the following logic:
- Care team lead’s practice location.
- If no care team lead assigned, use practice location of most recent encounter.
- If neither exist, then default to the main location set in organization settings.
- For labs, imaging, consult, and medical documents in the patient chart, the sort order priority is as follows:
- Document needs review and the reviewer assigned is the logged in user
- Document needs review and the reviewer assigned is a team the logged in user is a part of
- All other documents by descending occurred on date.
- Questionnaire Builder Improvements
- The Questionnaire Builder supports scrolling in the question and response sections.
- Fixed the preview Questionnaire Builder interaction logic to accurately represent the “has no value” condition
- Updates the logic for any autogenerated internal codes to follow a pattern. For question codes, it will use the pattern
{questionnaire_code}_Q{random_5_character_string}and for any response codes,{questionnaire_code}_{question_code}_A{random_5_character_string}.
config
- For system managed note types of Letter, Chart review, Data import, Inpatient visit, CCDA, and Message, the users will only be allowed to edit Rank and Is active.
portal
- Patients will be prompted to review any expired consent forms. Read more.
- Consent codes are are not longer required in order to display the correct consent form in the portal.
- Updates timestamp of the patient’s last login to the Portal to display in user’s timezone. Read more.
We will be changing how the category attribute is handled by the FHIR Condition endpoints on 12/2/2025. Read more.
Today’s release includes the following updates:
api
- Adds read and search endpoints for FHIR MedicationDispense. Read more.
- Adds read and search endpoints for FHIR Specimen Read more.
- Exposes
related_patientas contacts in the FHIR Patient endpoint.
Today’s release includes the following update:
sdk
- Adds BatchOriginateCommandEffect to allow batch insertion of commands. Read more.
- Adds
REVIEW_PRESCRIBE_COMMAND,REVIEW_REFILL_COMMAND,REVIEW_ADJUST_PRESCRIPTION_COMMANDeffects to set prescription commands in review. Read more.
ui
- Adds review action to command audit history
- Adds application iframe communication to allow applications and modals to be able to close themselves without explicit user interaction. Read more.
bugfix
- Fixes an issue preventing “Other events” from being edited.
- Fixes an issue preventing prescription commands review layout from being persisted.
Today’s release includes the following update:
sdk
- Prevents users from updating scheduling form fields as they are being updated by plugins to ensure users only select from the plugin driven field options.
Today’s release includes the following updates:
api
- Reduced latency in FHIR requests for Questionnaires and QuestionnaireResponses
ui
- Improved load time when viewing patient charts with significant volume of vitals and interviews.
Tonight’s release includes the following update:
sdk
- Adds user context to command pre and post search events.
Today’s release includes the following update:
sdk
- Adds the CLAIM_UPDATED and CLAIM_CREATED SDK events Read more.
- Adds the MoveClaimToQueue effect that moves a claim to a queue Read more.
- Adds ClaimProvider to the data module Read more.
- Adds ClaimComment to the data module Read more.
- Adds ClaimLabel to the data module Read more.
Today’s release includes the following update:
sdk
- Introduces the SDK Imaging Review Command for beta testing
- Introduces the SDK Referral Review Command for beta testing
- Introduces the SDK Uncategorized Document Review Command for beta testing
- Fixes adjust prescription command wrongfully duplicating the selected patient’s medication
- Fixes an issue that was causing linked observations and billing line items update events to not be fired when entering questionnaires in error
ui
- Fixes an issue with Patient Portal redirect URLs
- Fixes an issue with Populations view not loading due to external care teams.
Today’s release includes the following update:
sdk
- Adds a new effect to the Note effect model, allowing users to push charges from a Note to its associated Claim via the SDK Read more.
- Adds new effects for adding and removing labels for a claim Read more and more
- Adds a new effect for updating a claim line item’s charge amount Read more.
Today’s release includes the following updates:
- Extends task data model to support task metadata. Read more.
- Adds
TaskMetadataeffect for creating and updating custom key-value metadata on task records. Read more. - Adds
FaxNoteEffecteffect for faxing notes. Read more. - Adds prescriber field events for Prescribe, Refill and AdjustPrescription commands.
PRESCRIBE__PRESCRIBER__PRE_SEARCHPRESCRIBE__PRESCRIBER__POST_SEARCHREFILL__PRESCRIBER__PRE_SEARCHREFILL__PRESCRIBER__POST_SEARCHADJUST_PRESCRIPTION__PRESCRIBER__PRE_SEARCHADJUST_PRESCRIPTION__PRESCRIBER__POST_SEARCH
- Updates patient portal menu applications so that links are sharable.
- Fixes patient portal menu applications not being highlighted when selected
Today’s release includes the following updates:
api
- Reduced latency in FHIR requests for Questionnaires, QuestionnaireResponses, and Conditions.
- Increased the maximum length of values for Lab test CPT and LOINC codes, and discrete values.
ui
- Improved load time when viewing patient charts with significant volume of conditions and interviews.
Today’s release includes the following updates:
api
- Released the planned and previously-announced breaking changes to the FHIR Coverage endpoints. Read more.
ui
- Updated the coverage modal to capture subscriber ID.
Today’s release includes the following update:
sdk ui
- Updates the Prescribe, Refill, and AdjustPrescription commands to auto-populate the clinical quantity field when a medication is chosen that has exactly one clinical quantity option.
Today’s release includes the following update:
ui
- Adds the ability to link related patient charts within the patient contacts section. Read more.
Today’s release includes the following updates:
sdk
- Introduces the SDK Lab Review Command for beta testing
- Updates
FamilyHistoryCommand,PastSurgicalHistoryCommand,MedicationStatementCommand,PerformCommand, andImmunizationStatementCommandcommand classes to accept both str and Coding types for key fields with custom validation logic to enforce allowed coding systems. Read more. - Expands messaging capabilities in the SDK. Read more.
- Adds
MessageTransmissionevents - Allows sending messages to staff
- Allows marking messages as read
- Adds
- Expands patient summary customization capabilities (annotations and grouping) to coding gaps.
- Adds support for django’s template inheritance when using the
render_to_stringutil.
ui
- Adds carry forward option to HPI command.
- Adds fee schedule status to CPT search in vaccine admin.
bugfix
- Fixes various validtion issues with the Questionnaire builder.
Tonight’s release includes the following update:
bugfix
- Fixes a bug where the Refill and AdjustPrescription commands displayed compound medications as free-text.
Today’s release includes the following updates:
ui
- Increase sig to 1000 characters
The sig field character limit has been increased to 1000 for Prescribe, Refill, Adjust, and Medication Statement commands. Medication sigs in the Patient Summary will show up to 140 characters before indicating overflow. - Select multiple assignees in task filter
In the global task list, users can search and select multiple assigners in the task filter. - Update patient zip code validations
New constance config settingALLOW_PATIENT_ADDRESS_ZIP4_INTERNATIONALwhich enables UI validation for patient address zip code to support zip+4 for US addresses and any string for international. - Deprecate Response Code Description in Questionnaire builder
Code description for responses has been deprecated and no longer available in the Questionnaire Builder interface. - Add timestamp to Activity log
In Revenue, the activity log for claims will show the date and time for each activity entry. The queue movement icon has also been updated.
bugfix
- Save questionnaire prologue and field rules after publishing
When using the Questionnaire Builder, the questionnaire prologue and enabled_behavior will now save after publishing. - Task and claims labels in filter limited by module
The Label filter dropdown in the Task Dashboard and Revenue Queues now displays only labels relevant to each respective module. - Carry forward appointment labels when rescheduling
Appointment labels added from the scheduling card will carry forward when rescheduling the appointment. - Conditionally show link to Canvas patient portal in claim statement
When generating a patient claim statement, only show a link to the Canvas patient portal when the patient portal is enabled.
sdk
- SDK commands for Follow Up, Refer, and Structured Assessment in enabled for all customers
The SDK Follow Up, Refer, Structured Assessment commands have been released to all customers (GA). Current status of commands can be found here.
config
- Deprecate NADEAN number
NADEAN number in the staff profile has been deprecated.
Today’s release includes the following updates:
- Improves page load times for patient charts, revenue queues, and claims
- Includes a stability improvement for SDK database connections.
We are updating the FHIR Coverage breaking change notice originally posted on September 26. As a result, we are pushing the date back for all changes listed in that notice to October 21.
In addition to the previously described changes, we are going to make corrections to code systems that appear in codings in FHIR Coverage resources. The corrections are described in the breaking change notice.
Today’s release includes the following updates:
sdk
- Updates UPDATE_APPOINTMENT / UPDATE_SCHEDULE_EVENT to now update existing records without creating a new appointment.
- Introduces new effects, RESCHEDULE_APPOINTMENT / RESCHEDULE_SCHEDULE_EVENT, that create new records with updated values and cancels originals (per existing behavior). Read more.
- Adds support for returning multiple effects from SDK Application handlers. Read more.
- Adds events and effects to control provider calendar slot availability.
- Adds support for additional fields on the “Other Events” scheduling tab.
Today’s release includes the following updates:
bugfix
- Fixes a bug where the
TASK_LABELS_ADJUSTEDevent did not fire when a task label was added to or removed from a task. - Fixes an issue where appointments in the future (> 14d) did not open when navigated via a permalink.
sdk
- Adds the EligilibitySummary model to the SDK Data Module, which includes copay and coinsurance information for a given Coverage. Read more.
- Adds user and patient context to the
PATIENT_METADATA__GET_ADDITIONAL_FIELDSSDK event. - Adds a new SendContactVerification effect for sending verifications to patient contact points. Read more.
- Adds patient metadata to the PatientCreateEffect. Read more.
ui
- Commands will now have the “Record” button disabled until they finish saving their state.
- Moves the recurring reschedule confirmation modal to appear before the appointment schedule modal.
Today’s release includes the following updates:
sdk
- Adds timestamp tracking for creation and modification of plugins.
- Prevents PrescribeCommand.edit() from incorrectly unsetting medication and type_to_dispense.
- Prevents patient metadata update effect from firing when metadata keys have not changed.
- Adds MedicationHistory to SDK data model. Read more.
- Adds TypingGuard to allowed imports.
ui
- Updates commands to clear input when not explicitly selecting an option.
- Updates schedule view to show both the local and the provider’s
Last known timezoneset on their staff profile. - Updates Physical Exam command print template to better show selected options.
Today’s release includes the following updates:
api
- Removes support for
Prefer: note-appendheader in the task update endpoint. All associated comments must be included in the payload for Task updates.Read more. - Removes support for free-text
contact[].relationship[].textin favor of expanded contact categories. Read more. - Removes support for emergency contact and authorized release-of-information extensions within the FHIR patient endpoint. Read more.
- Adds read/search endpoints for FHIR RelatedPerson. Read more.
ui
- Removes the free text relationship field for patient contacts. Existing records have been migrated to the comments field associated with each contact. Relationships cam now be captured using preset coded contact categories added to each instance. Admins can deactivate these Canvas managed categories if desired. Please reach out to support if assistance is needed.
This afternoon’s release includes the following update:
config
- Simplify form inactivation logic
TheStatusfield will be the only field that determines whether a questionnaire is available for users in UI. Users will no longer need to do the additional step of uncheckingCan originate in chartingto prevent forms from showing up in the questionnaire command dropdown. Read more
ui
- Questionnaire builder (Beta)
On October 14, the subscriberId field in the FHIR Coverage resource will change meaning:
- Member IDs are now stored in the
identifierattribute (live as of 9/25/25) - The
subscriberIdattribute will represent the subscriber’s ID instead, and will be an optional field in Canvas. If theThe patient is the subsciberradial button is selected theidentifier(member ID) will equal thesubscriberId(subscriber ID). - The
subscriberIdsearch parameter will return subscriber IDs. - The new
identifiersearch parameter will return member IDs.

Action required: Update your API client code to use identifier for member IDs before the release date to avoid disruption.
Keep track of upcoming breaking changes here.
Today’s release includes the following updates:
- Adds automated creation of observations for associated imaging reports.
- Enhances the observation page in admn.
- Adds support for “identifier” in the FHIR coverage endpoints. Read more.
Today’s release includes the following updates:
sdk
- Adds MedicationStatement, StopMedicationEvent, Encounter, and ClaimDiagnoses to the SDK data module Read more.
- Adds the field
cultural_ethnicity_codesto the SDK Patient data model Read more.
Today’s release includes the following update:
- Fixes the FHIR Observation create endpoint so that it returns a 4XX response with a descriptive error message when the
effectiveDateTimeattribute is not a valid datetime.
Today’s release includes the following updates:
bugfix
- Fixes two bugs with the SDK UpdateGoalCommand: (1) copies over due_date and priority fields from the original Goal command if either field is not provided in the UpdateGoal command, and (2) correctly processes the due_date so that the command is committable.
ui
- Fixes an issue where blank buttons show on Protocol Cards when no command or button was specified.
Today’s release includes the following updates:
sdk
- Extends appointment data model to support appointment metadata. Read more.
- Adds AppointmentMetadata effect for creating and updating custom key-value metadata on appointment records. Read more.
- Adds support for plugins to define custom form fields when scheduling appointments, stored as appointment metadata. Read more.
- Enables developers to embed custom logic into the scheduling form using new
APPOINTMENT__FORM__PROVIDERS__PRE_SEARCHandAPPOINTMENT__FORM__PROVIDERS__POST_SEARCHeffects. Read more. - Adds support for creating and managing recurring appointments via plugins by introducing the parent_appointment field on the appointment model. Read more.
- Adds support for applications to react to context changes within the revenue module via the
on_context_change()method, providing URL, patient, user, and resource-specific context, allowing apps to update as you navigate through claims. Read more. - Adds immunizations to the data module. Read more.
ui
- Removes provider requirement in scheduling form, allowing staff to search for availability across all providers Read more.
- Hides future appointments in chart through a new constance config that sets the default number of days of upcoming appointments shown in the patient timeline
api breaking change
- Changes the FHIR Task update endpoint default note behavior from note-append to note-replace (phase 1); Developers must send all notes in update requests or update the header to note-append to avoid note loss. Support for the prefer header will be removed on 9/30/25. Read more.
To comply with USCDI v3, Canvas is adding FHIR read and search endpoints for the RelatedPerson resource. To achieve this, we will use FHIR RelatedPerson to represent patient contacts, an already-existing feature in Canvas. To meet requirements, we must make several breaking changes to the user interface, data model, and existing FHIR Patient endpoints. These changes will take effect on Tuesday September 30, 2025.
ui
We will be deprecating the free text Relationship field on the contacts section of the patient profile page. This field will no longer be seen in the user interface. To preserve the data in the Relationship field, we will be performing a one-time data migration where the text present in the Relationship field will be appended to the Comments field in the following format Relationship: value
api
Patient contacts are also read and written using the FHIR Patient CRUS endpoints. The Relationship field is currently mapped to contact[].relationship[].text. We will be discontinuing inclusion of this value in read and search response bodies, and we will be discontinuing consumption of this value by create and update endpoints. FHIR clients that depend on this field must be updated.
While the data in the Relationship field will be preserved for archival purposes, the ability to store a relationship value using FHIR Patient create/update is going to be replaced by expanding the use of Contact Categories. In addition to the existing contact categories present on Canvas and custom categories that may have been added, we will also be adding categories from this ValueSet
Additionally, we will be removing the extension that specifies contacts as an emergency contact or authorized for release of information. Contacts can still be set as emergency contacts or authorized for release of information by providing relationship codings, as seen below. FHIR clients will need to be updated to write this information without using the extensions:
{
"resourceType": "Patient",
"contact":
[
{
"relationship":
[
{
"system": "http://schemas.canvasmedical.com/fhir/contact-category",
"code": "EMC"
},
{
"system": "http://schemas.canvasmedical.com/fhir/contact-category",
"code": "ARI"
}
]
}
]
}
Keep track of upcoming breaking changes here.
Today’s release includes the following updates:
ui
- Appointment labels
Appointments support label functionality, which allow users to create custom labels to associate with appointments. Configure labels for the Appointment module in Settings > Task labels. Add and manage labels in the when appointment is created or in the appointment card on the Schedule view. Appointments can support up to 3 labels. Read more - Display incoming fax number in Data Integration
Added incoming fax number to the document header in Data Integration to provide increased visibility and triage. Read more
bugfix
- Only allow active RFV in commands
For structured reason for visits, users can only select active reason for visits in the Reason for Visit and Follow Up commands. - Bug fix when scheduling appointments with unstructured reason for visits
For users that use unstructured reason for visits, they will no longer encounter a non-descriptive error when completing scheduling fields in any order.
This afternoon’s release includes the following update:
- Expands
canvas logslog streaming capability to include exception messages at the interpreter level. This work is a precursor to (optionally) shipping these logs to a developer-specified endpoint.
Today’s release includes the following updates:
- Fixes a bug that prevented users from originating commands as recommendations from protocol cards
- Adds ability to originate a note with a UUID Read More.
- Adds an example plugin demonstrating use of OpenAI to tailor the contents of a Note Read More.
Today’s release includes the following updates:
sdk
- Adds Facility, ProtocolCurrent, PatientFacilityAddress, and StaffLicense to the SDK data module Read more.
- Adds
CREATE_PATIENT_PREFERRED_PHARMACIESeffect. Read more. - Enhances the ability to update patients using patient_id, adding support for managing contact points, addresses (line1, line2, city, state, postal code, country, use type), and external identifiers. Read more.
ui
- Adds the ability to create, update, link, and remove authorizations from patient profiles or claims. Updates ensure authorization details remain accurate and aligned with claim activity. Read more.
- Removes the validation preventing previously asessed conditions from being diagnosed within the assess coding gap command.
The FHIR Task update endpoint is moving from appending notes to replacing them, to align with RESTful behavior. To support the transition, we introduced a note header with a default of note-append. The default will change to note-replace on 9/16/25.
Action required: Prior to 9/16/25 client code must be updated to send all task notes, or ensure the header is set to note-append to avoid accidental deletion. The note-append option will be available until 9/30, at which time support for this behavior will be removed.
Read more about this change and keep track of upcoming breaking changes here.
Today’s release includes the following updates:
- Adds the Goal model to the SDK data module. Read more
- Increases allowed characters for meeting_link column in appointments (to 1024 characters)
- Adds “converted” state to Note object editable method. Read more
- Fixes a bug where message created event was not firing from the UI
- Fixes Lab Order real-time updates when the command is updated via the SDK
- Fixes an issue with uploading documents for a patient with external care teams
Today’s release includes the following updates:
- Update staff profile license entry
In admin, the following new fields were added to staff profile licenses: license type, state, and primary. The new staff license fields are available in FHIR Practitioner. This change is backwards compatible. Read more.
Today’s release includes the following updates:
- Introduces CLI-based secret management, enabling secrets to be created and updated via the command line. Read more.
- Adds new data module resources including Referral, Referral Reports, Service Provider, and Staff Roles. Read more.
- Expands attributes for ImagingOrder and LabReport to include new fields such as note, ordering_provider, service_provider, imaging_center, and task_ids. Read more.
- Expands Task Effects
- Allows a UUID to be passed to a task, allowing developers to create a task and associate comments upon creation. Read more.
- Enables linking of Referrals or Imaging Orders to a task. Read more.
- Adds author_id support to change the creator of a task or comment (defaults to canvas-bot if None is passed). Read more.
- Enhances the Canvas SDK with a simplified testing environment and local database support to help developers test their plugins Read more.
Today’s release includes the following updates:
- Update appointment card permalink user experience
The appointment card permalink will direct users to the note in the patient chart in the same window instead of a new tab.
Today’s release includes the following updates:
api
- Breaking Change: Updates patient API to return deceasedDateTime by default (when available); falls back to deceasedBoolean if not.
- Adds support for external care teams in FHIR Read more
- Adds support for filtering slots by allowed appointment type in the Slot search endpoint. Read more.
ui
- Adds support for adding external providers to patient care teams, allowing patients’ care relationships to be tracked beyond internal team members. Read more.
bugfix
- Fixes a bug that prevented users from recording credit card payments without leveraging an integrated credit card processor.
Today’s release includes the following updates:
- Introduces a “show in panel” attribute for applications and enables sorting applications by priority.
- Adds
PANEL_SECTIONS_CONFIGURATIONevent andPanelConfigurationeffect, enabling customization of panel (both global and patient) withPanelPatientSectionandPanelGlobalSectioncomponents. Read more. - Adds support for creating custom groupings in the medication and condition lists with the patient summary via plugins.
- Adds
ConfigDictto the allowed PyDantic imports. Read more.
Today’s release includes the following updates:
Condition modal enhancements
The Condition modal will show related lab and imaging orders. The Assessments timeline in the modal will display Resolved commands in addition to permalinks to the respective command in the note that originated the timeline entry. Read More.Create new task from Global Task Panel
Create tasks from the Global Task Panel with the option to assign tasks to a team, an individual or patient and include a due date, and task labels. Read more.Update note filtering behavior for new and existing notes
With sticky note filters, when a user inserts a command or note that is not part of the current filter view, the filter will be reset. If the user is adding a new note or documenting in a note that is part of the current filter view, the filter will remain applied. Read more.Update Uncategorized Reports and allow for searching
In Data Integration, when a clinical document type is selected, there is optional field to enter a Report Name. In the UI, Uncategorized Reports has been renamed to Medical Documents. Users will now be able to search by Report Name in the Medical Documents. Read more.Reschedule, No Show, and Cancel Appointments and Permalink to Note from Appointment Card
For appointments in the schedule view, use the triple dot menu to reschedule, no show, or cancel appointments. Appointments marked as No Show from the appointment card will automatically lock the note. The appointment is also a permalink, so users will automatically be directed to the note on the patient chart. Read more.Limit editing of Canvas defaults for non-encounter note types
For the following non-encounter note types - Letter, Chart review, Data import, Inpatient visit, and Message - users will not be to change the default settings for “Is Schedulable”, “Is Billable”, or “Is Telehealth”. Read More.Inactive care team member cannot be assignees or reviewers
Filter inactive care team members as options in the task assignee or reports reviewers dropdowns.Fix Date in Create and Validate Coding Gap Commands
The create and validate coding gap commands previously did not always populate the current date. Both commands now consistently set the date field to today’s date when executed. Read more.Fixed provider display in after visit summary for future appointments.
Accurately displays the provider of the future appointment in AVS.
Today’s release includes the following update:
- Optimizes the load time of plugins on install/reinstall/uninstall.
Today’s release includes the following update:
- We fixed a bug that caused the
PrescribeCommandto not work when originating with an FDB code.
Today’s release includes the following updates:
- Support ellipsis use in SDK sandbox environment
- Resolved an issue where staff could not reassign documents for review if their staff and user database IDs did not match
Today’s release includes the following updates:
- Updates the actions available on the SDK lab order, prescribe, refill, and adjust prescription (beta) commands to differentiate between signing the order and electronically sending it. A dual action to “sign and send” has replaced the current default of send for electronic orders. Users can choose to only sign an order and send it at a later time, if desired. Read more.
- Adds support for commmiting the lab order command via plugins Read more.
- Adds support for sending electronic orders (labs & prescriptions) via plugins post commit. Read more.
- Adds support for customizing actions available to the end user within commands. All actions except
enter in errorcan be hidden or reordered based on the patient or user. Read more. - Adds support for compound medications in the SDK. Developers can now originate the prescribe commmand and reference a compound ID, or pass in the necessary details to create a compound in Canvas. Read more.
To meet USCDI v3 requirements, Canvas will begin populating the deceasedDateTime field in the FHIR Patient resource starting August 22, 2025.
- If
deceasedDateTimeis available, it will be returned. - If not, the existing
deceasedBooleanfield will continue to be returned. - Per the FHIR specification, only one of these fields will be present at a time.
Action required: Clients should ensure their systems can consume either deceasedDateTime or deceasedBoolean.
Keep track of upcoming breaking changes here.
Today’s release includes the following updates:
- Add additional jwt and pydantic libraries to allowed plugins. Read more.
- Update plugin installation language to better communicate success/error messaging
Today’s release includes the following updates:
- Adds a plugin example of using SimpleAPI to create an API endpoint for patient creation and listening to a patient creation event to keep the patient in sync with a partner system. Read more
- Adds a plugin example of an interactive visualization interface accessible through a “Visualize” button in the patient chart summary vitals section. Read more
- Fix a bug where UpdateGoalCommand was not working correctly from the SDK
- Support arbitrary values in launch context of EHR-launched SMART apps. Read more
- Added launch context to token instrospection response body of responses from /auth/introspect/
- Fixed bug in POST version of /auth/authorize/ endpoint that was preventing SMART app launches
Today’s release includes the following updates:
- Added the Immunization Statement Command to the SDK. Read more
- Added support for setting the
narrativefield in the Remove Allergy Command via plugins. - Added support for the
matchoperator. - Added
Optionalto SDK imports. - Added
ChargeDescriptionMasterto the data module. Read more - Added support for the following event types. Read more
DOCUMENT_REFERENCE_CREATEDDOCUMENT_REFERENCE_UPDATEDDOCUMENT_REFERENCE_DELETEDCONSENT_DELETEDPATIENT_EXTERNAL_IDENTIFIER_CREATEDPATIENT_EXTERNAL_IDENTIFIER_UPDATEDPATIENT_EXTERNAL_IDENTIFIER_DELETEDPATIENT_ADDRESS_DELETEDPATIENT_METADATA_CREATEDPATIENT_METADATA_UPDATEDSTAFF_CREATEDSTAFF_UPDATEDSTAFF_ACTIVATEDSTAFF_DEACTIVATEDTASK_COMMENT_DELETED
- Reduced plugin runner memory usage.
- Fixed an issue where the SDK could not control Physical Exam and ROS toggles. Read more
- Fixed an issue in the snooze protocol workflow where
snooze_untildates in the past were not handled correctly. - Fixed an issue where the
systemfield could not be set when using theCreatePatientExternalIdentifiereffect.
Today’s release includes the following updates:
- Reduces memory consumption when ingesting PDFs via FHIR by decoding files in chunks rather than all at once.
- Enhances search_commands functionality with dynamic SDK command handling, optimized query logic, and improved integration of search_sdk_commands.
- Aligns react-router and react-router-dom versions with their corresponding TypeScript types to ensure accurate typing during development.
- Adds NoteStateChangeEvent to the data module for improved note event tracking. Read more.
- Allows empty pharmacy search terms by defaulting to a space, ensuring search execution without affecting results.
- Adds support for excluding files from build packaging using the build_ignore_patterns property in CANVAS_MANIFEST.json.
- Fixes a bug that previously prevented metadata values from being cleared as expected.
- Improves type safety and structure of autocomplete plugin search results by parsing payloads into typed Result objects.
Today’s release includes the following updates:
Increase character limit for Coding Gaps commands
The character limit for Assess Coding Gaps “Today’s assessment”, Create Coding Gaps “Note”, and the Validate Coding Gaps “Note” has been increased from 500 characters to 2048 characters.Fix ordered by date display for POC lab tests
POC lab test ordered by date and reported on date will be the same as the note date of service. Previously, ordered by date would display “Invalid date”. Read more.Support military addresses in the UI
The address state dropdown field in the UI now supports military “states” for AE (Armed Forces Europe), AP (Armed Forces Pacific), and AA (Armed Forces Americas).Filter patient activity from Staff Activity Report
The Staff Activity Report will exclude patient actions in Canvas.Allow custom document titles via FHIR DocumentReference
FHIR DocumentReference.description will support for any string to be set for the document title. Users were previously restricted to match the associated LOINC code description.Bug fix for pharmacy search utility
Fixed a bug where users were receiving a 500 error when using the pharmacy search utility.Patient portal slot search updates
Updates slot search in portal to only surface filtered providersFixed error when adding coverage without an image in Canvas Remote
Resolved a bug that caused Canvas Remote to display an invalid QR code error or a blank screen when a coverage was added and saved to a patient chart without an image.
Today’s release includes the following updates:
- Adds effects to update appointments and notes. Read more.
- Adds last_invite_date_time to user in data module. Read more.
- Fixes a bug that surfaced contents of the private notes commands within the audit modal.
- Removes “Welcome Patient Name” from portal landing page to allow for full customization.
- Adds patient key as target for pre and post appointment requests in patient app.
- Adds business lines, payor specific charge, patient consents, patient consent codings, and patient consent rejection codings to the data module.
- Fixes a bug that caused inactive care team members to show when searching the FHIR Patient Search endpoint using
_has:CareTeam:participant:member. - Fixes a bug where PreCommandUpdate was not fired before command updates, and ensures the command instance is refreshed after PostCommandUpdate.
- Beta: Adds Allowed Note Types to Calendar Events in admin to support visit type specific availability. Read more.
Today’s release includes the following updates:
- Adds an effect that allows plugins to create a PatientExternalIdentifier for an existing patient. Requires patient_id, system (the external partner’s URL), and value (the external ID). Read more.
- Adds claims and transactions to the data module. Read more.
- Enables protocol cards created via plugins to be snoozed. Read more.
- Fixes a bug that prevented plugins from setting a medication sig.
- Adds an effect to automatically create a PatientExternalIdentifier when a new patient is created. Read more.
- Exposes pharmacy search functionality to plugins. Read more.
Today’s release includes the following updates:
Global task filtering updates
On the global task view, the default filter is “Me or my team unassigned”. The filter logic will display any tasks assigned to you or to your teams without an individual assignee. Read more.Login to Patient Portal via username, email, or phone number
Patients can login into the portal using their username, email, or phone associated with their portal account. Read more.Update patient portal consent mapping
Correctly maps consent status in FHIR when consents are accepted via the patient portal to avoid errors when searching the consent endpoint.Fix FHIR DiagnosticReport valueQuantity validation
Added check to FHIR DiagnosticReport valueQuantity validation when value equals None.FHIR Patient Update to respect business lines
Updating Patients via FHIR will respect business line configuration.Allow patient sessions to be used to authenticate plugin-provided endpoints
Fixed an issue where SimpleAPI was not authenticating via the Patient Portal. The fix allows patient sessions to be used to authenticate plugin-provided endpointsSupport for new FHIR v2 granular scopes
Read more.Fix contact lookup for incoming faxes with Documo
Fixed incoming fax number format mismatch with Documo that prevented the lookup for the correct contact to appear in Data Integration.Resolve Canvas Chat notifications
Restores the ability for Canvas Chat notifications to clear after being viewed
Today’s release includes the following update:
- Enabled support for initiating OAuth authorization code flow with an HTTP POST request
- Added
issandsubto OAuth token introspection response body
Today’s release includes the following update:
- Adds UPSERT_PATIENT_METADATA effect, allowing developers to create and edit patient metadata via plugins. Read more
Today’s release includes the following updates:
- Includes fixes that improve system performance, memory handling, and infrastructure stability to enhance application responsiveness.
- Fixes a caching issue that caused billing footer conditions to sometime not update when navigating between multiple notes in sequence.
- Exposes the SDK version to plugins, enabling plugin modules to programmatically access and respond to the current SDK version.
- Fixes an issue where the cache module could not be imported from a module that was imported from a plugin module.
Today’s release includes the following updates:
Configuration option to submit SSN with claims
In Settings, Insurers records will have the option to submit claims with SSN. By default, the checkbox is not selected and SSN will not be added to submitted claims. Read more.Ability to assign teams to Labs, Imaging, Consults, and Uncategorized Reports
Users will be able to assign teams in addition to individuals in Data Integration and for Labs, Imaging, Consults, and Uncategorized reports. The filter for “Me or my teams” will show all reports that are assigned to an individual or to the person’s teams, even if assigned to a different individual. A red badge icon displays on any reports that are assigned to the logged in individual or their team, if no individual is assigned. Read more. Team assignments are now supported via FHIR DocumentReference endpoints.New appointment icons to show visit/note type
To make it easier for users to know what the visit type is prior to checking, appointments on the patient chart will also display the visit or note type icon. Read more.Allow support of comparator in FHIR Diagnostic Report Create
For lab values with a valueQuantity, there is now support for the comparator values of <, >, <=, >= to be passed. Read more.Bug fixes
- Fix a bug where signatures were not saving when annotating PDFs.
- Improved the UI responsiveness for smaller screen sizes when documenting notes in the patient timeline.
- Fixes the note printout when an assess coding gap command is entered in error and causes all the commands in the printout to have an incorrect strikethrough
Today’s release includes the following updates:
- Adds the ability to minimize applications so that users can retain their session while navigating to other sections within the chart. A new property has been added so that developers can specify a title for the minimized tab. Read more.
- Allows developers and administrators to specify whether applications should open by default on page load, or chart load.
- Adds support for
RIGHT_CHART_PANEandRIGHT_CHART_PANE_LARGEtargets for applications that have context set to global. These options were previously only functional in the patient chart. - Updates URLs to reflect open applications to support link sharing and improve navigation.
- Enables the addition of custom form fields within the patient profile demographics section. Read more.
- Adds interpreter to create and/or update patient messages Read more.
- Adds patient messages to the data module. Read more.
- Adds events for
PATIENT_EXTERNAL_IDENTIFIER_CREATED,PATIENT_EXTERNAL_IDENTIFIER_UPDATED, andPATIENT_EXTERNAL_IDENTIFIER_DELETED
Today’s release includes the following updates:
- Adds subscriptions to the calendar so that changes to appointments are reflected without a refresh.
- Adds staff addresses and phone numbers to the data module. Read more
- Fixes a bug that prevented contact verification messages from being sent without the portal enabled.
- Removes the
patient_keyfield on the CanvasOauthApplication model.
Add Supervising Provider Dropdown to Prescribe/Refill/Adjust Commands
Users can add Supervising Provider to Prescribe, Refill, and Adjust commands. Supervising provider is an optional field that will add the prescriber’s default supervising provider that is configured in Settings, if one exists. Read more
SDK changes include ability to set the supervising provider using the commands module and in a prescribe protocol recommendation or react to events PRE/POST Search on the dropdown in the UI command.Sticky filter for Patient Timeline
When users apply a filter to the patient timeline view, their settings will be carried over when they navigate with in the patient chart (e.g. between Chart and Profile), to different patient charts, and when they log in and out. When navigating to different patient charts or in login sessions, note type and staff settings are persisted, while date range will be reset. Read morePermalink to Lab, Imaging, Consult Reports, and Uncategorized Clinical Documents result card
On Imaging, Lab, Consult Reports, and Uncategorized Clinical Document results cards, users can see the review date time and reviewer name. Users have a permalink to navigate directly to the specific command in the note.Allow Patient to Upload Documents via Patient Portal (Beta)
Adds permissions to users to support document uploads via the patient portal. Read more about out beta program here and to learn more about managing your patient portal read more here.Business Line Custom Text Now Displays in Appointment Reminders
Fixed an issue where custom reminder text set at the business line level was not appearing in outgoing appointment reminders.Allow use of Collections imports within the SDK
The release allows plugins built in the SDK to import defaultdict and Count from the collections moduleFixed Google Calendar Syncing Issue when Parent Events were Not Found
Once a google calendar event is deleted, the google API will only allow the event to be fetched for a short period of time. This release will properly sync calendar exceptions with an unfound parent event.Fixed updating the current queue in FHIR Claim Update
This release fixes a bug in the FHIR Claim endpoints that was preventing the claim from moving queues when the claim-queue extension was the second item in the extensions list.Fixed Clipboard Command causing Note Crashes
Fixed a bug that caused the note to crash when trying to paste content using the clipboard command if free text characters had already been added to that line within the note.
- Added caching capabilities to the SDK for short-term data storage and retrieval within plugins. Read more.
- Released the SDK Chart Review Command for beta testing. Read more.
- Added
ALLOW_SAME_ORIGINpermission to enable pop-up functionality within applications. - Enabled plugins to expose WebSocket subscriptions and publish to them. Read more.
- Added support for creating full pages within the provider application and patient portal. Read more.
- Fixed a bug that could corrupt a command’s data when carrying forward previously emptied fields.
This release includes improvements to overall application stability, including:
- More reliable
DocumentReferenceuploads via FHIR - Infrastructure optimizations to reduce restarts and minimize deployment impact
- Nightly batch processing improvements for reduced application load
- Web application firewall updates to avoid false positives on valid FHIR requests
Action button events now include the user who triggered them, specifying both their type (staff or patient) and ID (key) in the event context. Additionally, when determining whether to show an action button, the event context now includes the user loading the page.
Fixed an issue where prescribe automations failed to trigger correctly when a compound medication was included.
Plugin effect interpreters have been added for patient, allowing plugins to create and update patient records. Read more.
Plugin effect interpreters have been added for notes, appointments, and schedule events. Read more.
Added the Message model to the Canvas SDK, allowing retrieval and filtering of patient messages.
Plugin events are now fired when a CareTeam member, Patient Contact Point, or related Person is removed.
Fixed an issue where updating a delegated Task via FHIR could delete internal comments.
Delete interpreters have been added for commands. A command can now be deleted if it is not committed, not marked as entered in error, and its note is not locked.
The SDK adjust prescription and change medication commands are now available for beta testing. We split the current adjust prescription commands into two separate workflows so that users can update a medication without creating a prescription record. Read more.
Fixed an issue where BillingLineItemEffect did not trigger a UI update after execution. The effect now correctly reflects changes to billing line items in the billing footer.
Users can now search the Help Center, chat with Herbert AI, or create a support ticket directly from within Canvas. Read more here
Patient portal username and emails for login will be case insensitive and automatically trim whitespace.
Users can “Select all/Clear” on Staff and to include a specific date range to make it easier to configure and filter for specific notes on the Patient Timeline view. Users must now click “Apply” for the filter for all filter preferences to be applied to the timeline view. See more in our help center here.
Users can now transfer uncommitted commands to a new note, making it easier to preserve precharting work. Read more in our help center here.
Various FHIR endpoints allow for searching by a coding. This release ensures when searching by these codings, it follows the correct FHIR token logic. This includes the following endpoint search parameters: Appointment.appointment_type, CarePlan.category, DiagnosticReport.category, DiagnosticReport.code, DocumentReference.category, DocumentReference.type, Observation.category, Observation.code, QuestionnaireResponse.questionnaire.code, and QuestionnaireResponse.questionnaire.item.code.
FHIR Appointment API added a query parameter to allow users to search by external identifiers. See here for more information.
Users can view the Fax Event History for documents faxed from Data Integration and in the Letter footer. See more in our help center here.
In Settings > Secure faxes, users can search by fax ID. “Success” column is replaced by “Delivered by fax” column so users filter and view faxes that were successfully delivered or had errors in delivery.
Users can upload insurance card images from their desktop directly in the Coverage modal in addition to the Canvas Remote App. Users can also delete the front and back images. In Constance config, the variable name was changed from COVERAGE_CREATE_WITH_QR to COVERAGE_DEFAULT_QR_SCAN_MODAL. See more in our help center here.
We have implemented a function that converts legacy commands to SDK commands as users scroll through the timeline and load historical notes. Only commands enabled within an instance will be converted. This will allow plugin developers to interact with these historical commands. We intend to do a full migration in the future.
We have added the ability to add lab reports and associated values via our FHIR DiagnosticReport endpoint. Read More
The SDK refill, vitals, change diagnosis, snooze protocol, immunization statement, physical exam, and review of systems commands have been released to all customers (GA). Current status of commands can be found here.
Patients must now log in to the portal via username and password. A new section has been added to the profile to manage portal users (if you leverage the Canvas Patient Portal). Read more
Fixes an issue where content added to a toggled-on section would disappear after toggling the section off and back on. The behavior now matches legacy functionality.
Fixes a bug that prevented original appointment details from carrying over when rescheduling an appointment in the portal.
Resolves an issue where command edits made in response to an origination event were incorrectly handled.
When serving HTTP requests from your SimpleAPI handler, you can now use Canvas session information to authenticate your endpoints.
This allows you to restrict requests to only logged in users, or be even more specific in your authorization by limiting certain requests to just patients, just staff, or based on any information specific to that logged in user.
Using this will allow you to create and serve responses that are aware of who the logged in user is.
See SimpleAPI Authentication Options for more details.
If you launch iframes from a plugin, you can now request the camera browser permission in your CANVAS_MANIFEST.json via the url_permissions structure.
See Additional Configuration to the LaunchModalEffect for more details.
Plugins can now know which instance they are being executed on via the self.environment dictionary available in event handlers. As an example, if a plugin is being executed on the canvas-test.canvasmedical.com instance, self.environment would look like:
{
"CUSTOMER_IDENTIFIER": "canvas-test"
}
But if the same plugin was executed on the canvas-staging.canvasmedical.com instance, self.environment would look like:
{
"CUSTOMER_IDENTIFIER": "canvas-staging"
}
Previously when creating a FHIR Appointment using a scheduled event type, if a patient was supplied it was creating a note on the patient’s timeline. This fix will make the scheduled events created via FHIR behave similarly to events created directly in the Canvas UI and not create a timeline note.
SFax restricts the recipient name of the fax to only 75 characters. This fix will ensure the user will get a helpful error message when max length is reached.
Previously, when Assess Coding Gaps were EIE, the downstream actions were not rolled back. With this fix, when a Assess Coding Gap is EIE, the associated condition created from the coding gap will be removed from the patient summary and the billing footer as long as the associated condition itself has not been assessed.
When users upload and manually associate a Lab, Imaging, Consult, Uncategorized Clincial reports in Data Integration (DI), users enter in a date for Clinical Date. However, on the patient chart, these reports were displaying this information as a datetime, with the time always showing as midnight. This change will now show the information as a date. Reports that are electronically ordered or do not pass through DI and POC tests are not impacted by this change and will continue showing as datetime.
For claims with a copay, this release will fix an error users were seeing when trying to change the coverages associated to the claim.
A new constance config ENABLE_CANVAS_CHAT allows organizations to enable or disable Canvas Chat for their EMR instance. By default, the setting is set to TRUE.
The Assess Conditions Command supports the option to “Carry Forward” the last recorded response from the command triple dot menu.
Refer and image commands will now update with a completed status once the associated task is marked as complete without refreshing the chart.
This work fixes a bug that prevented SDK image and refer commands, added via workflow kit protocols, from including all specified fields.
The following updates have been made to patient portal scheduling flow:
- Improves mobile responsiveness.
- Ensures original appointment details carry into rescheduling flow.
- Allows patient to navigate through weeks when looking for available slots.
- Highlights search button when required fields are fulfilled.
Fixes a bug that caused conditions to be duplicated in the My Health section of the patient portal.
Previously, the edit effect incorrectly set the pharmacy field to the ncpdp_id instead of the full pharmacy structure from the pharmacy service, causing a command error on reload. This has been fixed.
Endpoints can now use path patterns with <> syntax to define dynamic parameters. Matching requests are routed based on definition order within the same handler class, preventing conflicts with exact match routes. Read more
Active conditions will now appear first in the indications search within the SDK refer, prescribe, and image commands.
Users will now be able to add and edit patient suffix in the patient profile demographics, which was only previously available via FHIR API.
Fixes a bug that created multiple Coverages on the Patient profile when a user clicked Done multiple times in succession.
Users with Printing Access are no longer required to have “add patient” permissions to generate the chart PDF.
PDFTron was upgraded to v11. This upgrade updates the view and menus when adding PDF annotations.
When annotating a PDF, users can use the keyboard shortcut d to quickly add a date. The shortcut will default to today’s date, with a date picker option to select another day.
Claims will respect the payer specific fee schedule when payer specific charges are added to CPT codes.
FHIR Observation API will no longer throw an error when no code exists due to an incomplete questionnaire scoring result.
Users can “Select all / Clear” on Note Types to make it easier to configure and filter for specific notes on the Patient Timeline view.
Fax event histories event are only surfaced for customers using Documo. To prevent confusion, this modal will be hidden for customers using sFax.
From the Patient Summary, when as user clicks Assess for a specific coding gap, the command header will now default select that coding gap. Previously, users needed to select from a dropdown of available coding gaps.
To better accommodate organization specific billing and revenue workflows, users can now create custom queues in Settings. Furthermore, users can move claim between custom queues using the FHIR Claims API.
When a condition was resolved, the printout was incorrectly displaying the modified date as the the conditioned resolved date for the assessed diagnoses. The fix will now show the modified date oof the first time the conditioned was assessed.
FHIR Claim API will no longer throw an error for No Show codes in the note footer that do not contain a description.
The SDK change diagnosis command has been updated to match existing behavior:
- Search by ICD-10 code
- The collapsed layout includes completed fields
The note header and footer now support multiple action buttons. The note header action button has also been updated to appear more visually like a button. Read more.
Lab order recommendations now correctly display the Send button in the new SDK command when the lab partner has electronic ordering enabled.
The following SDK commands will no longer include ICD-10 codes with historical end dates:
- Image
- Refer
- Lab Order
- Diagnose
- Change Diagnosis
- Create Coding Gap
- Assess Coding Gap
Plugins now have access to Banner Alerts through the SDK Data Module. Read more.
The developer API framework, SimpleAPI, now has helper methods on the request object to parse request bodies with content types of application/x-www-form-urlencoded and multipart/form-data. Read more.
Customers can now configure payment routing directly to specific accounts when using Stripe Connect. This feature is ideal for managing multiple business entities or payment workflows, ensuring funds are directed correctly and securely. For more information, reach out to Canvas Support for further assistance.
Added the StaffContactPoint model to the Canvas SDK, allowing retrieval and filtering of staff by an contact points such as email and phone numbers. Read more.
Fixed an issue where report jobs were failing with “Excel does not support timezones in datetimes”
This fix ensures that all users with print access can successfully print the schedule.
For those with Coding Gaps enabled, clicking on a validate coding gap from the patient summary will launch an information modal that will display the coding gap ICD-10 description and code, validated date and time, user that committed the command, note, and any linked resources (if present). Read more in our knowledge center
For customers using an integrated Stripe connection, we’re pleased to introduce the Saved Payment Methods feature. Patients can now securely store a card on file (with their consent), enabling faster and more convenient payment collection. All card data is safeguarded by Stripe’s PCI-compliant infrastructure, ensuring a safe and efficient billing workflow. For setup details or questions, please refer to our documentation or contact Support for further assistance. Read more in our knowledge center
Added the AppointmentExternalIdentifier model to the Canvas SDK, allowing retrieval and filtering of appointments by an external identifier. This allows for seamless integration in and out of canvas while managing appointments. Read more.
We’ve updated the commit button on the SDK lab order, prescribe, and refill, and adjust prescription commands to a split button. Now, there are two disctinct clickable areas. Clicking the main button will commit the command instantly (sending or saving the order), while the dropdown lets you choose alternative actions. The action will always default to send if an electronic lab or pharmacy is chosen.
We’ve reduced unnecessary model update events by suppressing cases where the only detected change is a modified timestamp. This prevents updates from being triggered when no meaningful data has changed
We’ve resolved a deadlock and race condition that occurred when deleting plugins in admin. Previously, a timing issue caused the system to attempt reloading a deleted plugin, leading to installation failures and an indefinite wait state. This fix ensures plugin deletions occur without conflicts.
We’ve added a developer API framework to plugins, which allows developers to define HTTP APIs on their Canvas instance. Read more.
We’ve added a default landing page to the patient portal. It can include an appointment section for beta participants and a quicklink to messaging. The page will also be customizable via Plugins.
We now support plugins that embed URLs via iframes to request microphone access and the allow-same-origin sandbox permission, enabling iframed content to access browser cookies associated with the iframe’s URL. Read more.
We fixed a bug that prevented users from moving uncommitted sdk commands, specifically the new commands which were not migrated from our previous framework.
Fixed an issue where we were failing to emit the NOTE_STATE_CHANGE_EVENT_CREATED event. These events now fire with the note_id, patient_id, and new note state in the event context.
Fixes an issue where some tasks were not showing up on their expected due date because of the timezone difference between data entry and database store.
Resolved a bug where recurring events in Google Calendar were not syncing correctly with Canvas
Canvas has implemented a new faxing integration with Documo, which will enhance the reliability and tracking of outbound faxes. This integration includes:
- Improved transmission speeds
- Enhanced reporting and audit tracking
Status Audit Modal for Commands and Notes (Documo Only)
We’ve introduced a new fax status audit modal for:
- Command-based faxes (e.g., refer, imaging, and lab orders)
- Note-based faxes
This enhancement provides greater visibility into fax transmission statuses, making it easier to track the progress and troubleshoot issues.
Current Sfax customers will be gradually transitioned to Documo
Expect direct contact from the Canvas Customer Experience team to coordinate your migration. There will be no immediate impact on your faxing operations during this transition.
If you have any questions or need assistance, please reach out to Canvas Support.
Instruct commands can now be originated using SNOMED or unstructured codes. This work includes a breaking change. The instruction field has been renamed to coding. Please update implementations accordingly. Read more.
Resolved an issue that prevented the refill command from being originated through plugins.
Resolved an issue that prevented setting a lab partner by name or as None when originating a LabOrder command via plugins.
Added support for the Image Order, Refer, Resolve Condition and Adjust Prescription commands in the Canvas SDK. These commands can now be originated and updated via plugins. Read more.
Added the BillingLineItem model to the Canvas SDK, allowing retrieval and filtering of billable codes linked to patient notes. This update enables users to access billing line items, retrieve associated modifiers, and filter by attributes like status and charge amount. Read more.
Introduced new effect classes— AddBillingLineItem, UpdateBillingLineItem, and RemoveBillingLineItem —to support creating, modifying, and removing billing line items programmatically.
This release includes performance improvements for users of the EMR UI, the Fumage FHIR API, and the SDK:
- Eliminates extraneous database queries slowing down Fumage GET requests for QuestionnaireResponses
- Optimizes detection of data changes which trigger plugin events
- Speeds load time of automations, which will result in a faster initial page load time, especially for heavy users of automations
- Improves runtime performance of automations, which will result in faster execution of automations
Fixed a bug that prevented prescribe’s “Type to Dispense” field from being updated via plugins.
Added a new target RIGHT_CHART_PANE_LARGE to LaunchModalEffect, allowing the use of a wider right chart pane.
Improved ICD-10 code search by automatically removing periods and whitespace when searching via plugins.
The SDK Follow Up and Resolve Condition commands are now available for beta testing. Read more.
Fixed an issue that was causing edits made via plugins to remove already set values within commands. Updates will now only impact the fields added or changed.
Implemented a feature that allows setting lab vendors and lab tests when editing a Lab Order via plugins.
When documenting a historical medication using the Medication Statement Command, Canvas will perform and display the drug to drug and drug to allergy checks within the command.
Fixed an issue where the StopMedication command origination was not working when originated from the SDK.
Developers can now create and install questionnaires using plugins and no longer have to rely on using the pre-existing questionnaire loaded in admin. Read more
We have updated ReasonForVisitSettingCoding to be externally identifiable and added it to the Data Module. We have also updated the RFV effect and interpreter to allow the usage of ReasonForVisitSettingCoding within the command and added validations to ensure the values passed to the coding field are valid.
Fixed an issue where the Diagnose command was not accepting valid ICD-10 codes when originated from the SDK.
The SDK follow up command is now available for beta testing. Read more.
Your cursor will now autofocus to the first field within a command when adding non SDK commands to the note. It will not jump if added by plugins or automations.
Updates to the Uncategorized Document Review command display include: better document name view and selection, using document clinical date, and enforcing 2048 character limit on for comments.
When booking a new appointment, the Book button will be disabled while the appointment request is being created so that only one appointment will be scheduled. Previously, the Book button remained active, allowing the user to create duplicate appointments.
Users can more easily search, view, and assign labels with long text to tasks and claims.
Note and Encounter IDs are available for FHIR Claim Read and Search endpoints. See FHIR Claim
Fixed a bug where some users were erroneously receiving the error Some values might be missing or incomplete when adding a new Data integration document.
Improved the display when viewing or adding long, free-text comments to Coverage.
Document cards in both the panel view and chart now show:
- Created By: Who originally created the document.
- Assigned By: Who last assigned the document.
- View History: Click the “View History” link on a document card to see detailed information about its creation and assignment.
The Data Module now includes Teams, allowing access to team-related information within the SDK. Additionally, a new argument has been added to support assigning a team to a task. Read more.
The SDK refer command is now available for beta testing. Read more.
Real-time updates have been added for originate, update, commit, delete, and enter in error events across the following commands:
- Allergy
- Cancel Prescription
- Educational Material
- Imaging Order
- Immunization Statement
- Immunize
- Refill
- Remove Allergy
- Snooze Protocol
- Task
- Update Diagnosis
- Update Goal
- Vitals
Missing events for the CANCEL_PRESCRIPTION, SNOOZE_PROTOCOL, and UPDATE_DIAGNOSIS commands have been added. Read more.
Fixed a bug that caused automations with Health Gorilla Connected Labs to default to save rather than send when using the SDK lab order command.
The Http utility in canvas-plugins now includes a new method that enables executing HTTP requests in parallel, improving efficiency and performance. Read more.
A new --force option has been added to the Canvas CLI uninstall command. This allows users to forcibly uninstall a plugin regardless of its current status.
Plugin effect interpreters have been added for all Edit command effects, enabling plugins to process and respond to these effects consistently.
When a plugin is created or updated, we emit the PLUGIN_CREATED and PLUGIN_UPDATED events. These events were firing immediately, which means the plugin likely wasn’t installed at the time the event was emitted. This change introduces a delay before emitting these specific events, which should make this problem appear less frequently. A more durable fix will be implemented in the future.
Fixed a bug that caused the cursor to jump above an SDK command if a blank line was not present between commands.
The SDK task command has been released to all customers (GA). Current status of commands can be found here.
Values within automations are now being passed correctly to the Surescripts message when using the SDK prescribe or refill commands.
The event context now includes the patient key for models related to a patient. The context follows the existing command format: {"patient": {"id": "thisisapatientkey"}}, ensuring consistency across the SDK.
Your cursor focus will no longer auto advance as new commands are added to the note, via automations, or plugins. This prevents possible disruption when documenting. Non SDK commands will now require users to click or tab into the first field to begin documenting within them.
Fixed an issue that prevented plugins from filtering models using ValueSets.
Resolved an issue where UpdateGoal commands were not originating correctly from plugins.
Plugins can now listen for and handle patient portal appointment request events, enabling scheduling rules. Scheduling via the portal is currently in beta.
Fixed a bug that caused plugin reloads to yield outdated versions, ensuring plugins now reflect the latest updates immediately.
Plugins now support the usage of custom html (with template support) when using the LaunchModalEffect. Read more.
Plugin developers can now use events related to DetectedIssueEvidence, expanding the capabilities of issue tracking and decision support.
Updated the relationship between Command and Note in the plugins data module, and added an id field to the plugin event context for better tracking.
New data models related to Care Teams, Coverage, Patient contacts, addresses, and settings are now available in the plugins data module.Read more.
The plugins data module now includes the Assessment model and additional HCC ValueSet data, enhancing support for clinical documentation workflows. Read more.
Plugins can now create custom action buttons within the patient summary, allowing for expanded functionality directly within the patient view. Read more.
We resolved an issue in the SDK Imaging Order command that prevented the imaging center’s fax number and name from populating in the fax modal.
We’ve fixed an issue with the FHIR Patient create and update endpoints so that they are now able to set the preferred language for a patient.
We’ve fixed a recent change that caused FHIR DiagnosticReport resources to have a URL in presentedForm even when there is no document available.
We’ve added a new Effect to the Canvas SDK that enables creating a questionnaire result for an interview. This enables the creation of extensions that perform custom questionnaire scoring.
We’ve fixed a recent change that made some SDK commands incompatible with workflow kit protocol cards.
The patient portal menu has been relocated from the top of the page to the left side to support future additions.
Plugins can now be used to place custom buttons within the header or footer of the note. Clicking the button can then drive any of the existing supported events. Read More.
Plugin developers can now install applications within Canvas. Once installed, the application will be added to an app launcher within the panel filters or patient filters (or both). The target URL can be opened in a new tab, or as an iframe within Canvas. We currently support two iframe placement options: centered overlay on the page or within the right hand side of the patient chart. Read more.
Plugins can now use the Data Module in the SDK to compute on Organization and Practice Location data.
Plugins can now commit commands using the COMMIT_XXX_COMMAND effects. We’ve added support for all migrated SDK command except Lab Order, Prescribe, and Refill. Read more.
Plugin Developers should now use self.event.target.id and self.event.context instead of self.target and self.context . Those methods are deprecated and they will be removed in a future major release. self.event.target now allows to access the targeted instance via self.event.target.instance if the model is already supported in the SDK
Providers’ credentials are now included in the Provider column in the revenue queues.
Line breaks added to “background” within the condition, assess, change diagnosis, and assess coding gap commands will now show within the condition modal.
This work fixes a bug that caused tasks assigned to care team roles added via automations to fail to commit using the new commands.
The rendering provider drop down on the claim form now includes all schedulable staff.
We have introduced improved error handling when installing plugins, including a new error for duplicated plugins. You will need to update your CLI to the latest version, otherwise you may not be able to reinstall existing plugins without uninstalling them first.
You can now commit the SDK HPI command using the Commands API.
All fields within the newly added coding gap command will now wrap.
This work fixes a bug that prevented users from adding the SDK diagnose command using the + button from patient summary
Users can now search “Team” or “Role” to filter assignee results within the SDK task command.
Users will no longer be able to enter in error a diagnose or assess coding gap command if the condition has been assessed at a later date. The option will be removed from the triple dot menu if so.
We have added the ability to move uncommitted commands from one open note to another. Please reach out to product@canvasmedical.com if you would like to test this feature.
Remove pharmacies from the preferred pharmacy search in the profile using the PATIENT_PROFILE__ADD_PHARMACY__POST_SEARCH event and PATIENT_PROFILE__ADD_PHARMACY__POST_SEARCH_RESULTS effect.
This work fixes a bug that prevented the occurrence date added via FHIR Immunization Create from displaying in the command
Rearrange and hide sections of the patient profile using plugins. Read more.
HPI commands can now be committed. Commands added prior to this update will continue to show as committed in the data model and uncommitted in the notes. Commands added after this release will only show as committed after the command is recorded.
Only the diagnosis fields within the assess coding gap command will show in print templates
Commands fields that are tied to ICD-10 or CPT codes (Diagnose, Past Medical History, Coding Gaps, Immunize, etc) will now continue to display the associated codes upon commit
Updated all knowledge center links from Zendesk to Pylon, ensuring they point to our new resource for improved accessibility and accuracy.
When a note is locked via the Note API, a PDF documenting the note state change is now automatically generated, aligning with the UI functionality. The PDF is also accessible through the DocumentReference FHIR endpoint.
Fixed a bug that prevented ID cards added through Canvas Remote from being deleted or updated from the patient profile.
We have extended the ability to see cancelled and rescheduled appointments to the week view.
The FHIR spec does not allow expiring pre-signed URLs for resource attachments. Going forward, HTTP clients that request resource attachment files will need to provide a bearer token in the request. The affected resources are Consent, DocumentReference, DiagnosticReport, Media, Patient, and Practitioner. Unless otherwise specified, the responses for these requests will be a temporary redirect to the pre-signed URLs. We have added a temporary extension to the Attachment attribute in each resource that includes the pre-signed URLs to support the transition. Stay up to date on breaking changes.
We’ve added the ability to print a combined educational material resource from the note triple dot menu, using the updated command.
We’ve fixed a bug that prevented users from faxing the new imaging order command.
Replaced “Appointment Type” with “Event Type” in Admin for clarity when configuring event types that do not have an associated note.
Implemented CRUS (Create, Read, Update, Search) support for the FHIR DetectedIssue resource, enabling identification of patient-specific clinical concerns such as potential drug interactions, inappropriate therapies, duplicate treatments, and missing conditions. Read More.
Resolved a recently introduced bug that prevented updated questionnaires from displaying in automations and caused unintended values to surface in automations with questionnaires and prescribe commands
Users can now configure their calendars to see cancelled and rescheduled appointments. A checkbox has been added to the configuration modal. The cancelled appointments will now appear grayed out on the calendar. Hyperlinks to the rescheduled appointments are visible in the appointment card.
The FHIR task search interaction nows support filtering by due dates (today or overdue) and last modified date (including comments) Read more.
Lab results received via Health Gorilla now have a preliminary tag to help differentiate between preliminary and final results in both the panel view and chart.
Committed new commands (private notes & clipboard) were not correctly flagged as committed in the billing footer validation. This has been corrected.
Automations will now include content within the private notes command when saved.
The SDK physical exam command is now available for beta testing. Read more.
Plugins can now use the Data Module in the SDK to compute on lab order and imaging report data.
When implementing plugins, the ClinicalQualityMeasures base class is what determines what gets registered in the protocols, protocoluploads, protocoluploadversions, and protocolsused tables. We added a new attribute that can be set when using this class that allows developers to indicate that a protocol contains predictive decision support interventions.
Fixes an issue where coverages created via FHIR were always displaying the claim coverage type as commercial in revenue.
We are excited to announce the new feature that allows users to create compound medications and electronically send prescriptions to pharmacies partnered with Surescripts. This feature supports both controlled and non-controlled substances, enhancing your prescribing capabilities. This new functionality requires our Prescribe and Refill SDK command to be enabled. Please reach out to Canvas Support if you’d like to utilize this new feature.
Users now have the ability to create custom labels for claims. This feature supports multiple workflows represented across various customers and allows for sorting and filtering by label within revenue queues.
Fixes an issue where deleted or inactive ICD-10 codes could be referenced in the billing footer, which inadvertently associated them with CPT codes and prevented modifications.
Plugins can now use the Data Module in the SDK to compute on Command and Observation data.
Fixes an issue that caused imaging orders to show with today’s date, rather than the date ordered, when linking to results.
We added validation to the quantity field in the new prescribe and refill commands to prevent trailing zeros. Automations created with trailing zeros were causing errors. This update ensures that these errors no longer occur.
Our patient portal was previously optimized for mobile use. We have updated it to be responsive to screen size.
Plugins can now leverage the following events:
- CARE_TEAM_MEMBERSHIP_CREATED
- CARE_TEAM_MEMBERSHIP_UPDATED
- CARE_TEAM_MEMBERSHIP_DELETED
- NOTE_STATE_CHANGE_EVENT_CREATED
- NOTE_STATE_CHANGE_EVENT_UPDATED
- PATIENT_ADDRESS_CREATED
- PATIENT_ADDRESS_UPDATED
- PATIENT_ADDRESS_DELETED
- PATIENT_CONTACT_PERSON_CREATED
- PATIENT_CONTACT_PERSON_UPDATED
- PATIENT_CONTACT_PERSON_DELETED
- PATIENT_CONTACT_POINT_CREATED
- PATIENT_CONTACT_POINT_UPDATED
- PATIENT_CONTACT_POINT_DELETED
- PROTOCOL_OVERRIDE_CREATED
- PROTOCOL_OVERRIDE_UPDATED
- PROTOCOL_OVERRIDE_DELETED
- TASK_COMMENT_UPDATED
- TASK_COMMENT_DELETED
Users can now link image results to orders from the panel view, or from within the chart.
Plugins can now use the Data Module in the SDK to compute on Questionnaire data.
Health Gorilla may send preliminary results, which are versioned in Canvas as updates are received. We previously displayed all versions when attaching lab reports to letters. We now will only show the latest, ensuring the user can easily find and attach the most recent version.
The SDK review of systems and structured assessment commands are now available for beta testing. Read more.
We removed the validation preventing users from adding a duplicate condition via the diagnose command and added a warning in its place.
This work fixes a bug that prevented developers from working with patient authored commands (added via FHIR) in the commands API.
We’ve added the ability to originate the following SDK commands via plugins:
- Perform
- Instruct
- Lab Order
- Family History
- Allergy
- Remove Allergy
- Surgical History
- Medical History
- Task
- Prescribe
- Refill
- Vitals
- Change Diagnosis
- Close Goal
This work fixes a bug that caused batched claim queue movements to not respect filters. Snoozed claims will also not be moved.
The SDK immunize and immunization statement commands are now available for beta testing. Read more.
The SDK Snooze Protocol and Image commands are now available for beta testing. Read more.
We’ve added new pre/post search and lifecycle events for all SDK commands. These new events allow plugin authors to extend and customize workflows by reacting to search activities and command lifecycles within Canvas.
The audit modal associated with migrated commands will now show all edits for committed commands. The revert option will only be availble for uncommitted commands.
The SDK allergy, remove allergy, family history, surgical history medical history, close goal, and educational material commands have been released to all customers (GA). Current status of commands can be found here.
The Canvas Note API now fully supports actions for checking in and locking notes.
Check-In Action: Transition a note from BKD (Booked), NSW (No-showed), or RVT (Reverted) to CVD (Converted), mirroring the note check-in process in the UI.
Lock Action: When transitioning a note to LKD (Locked) all associated actions related to the encounter and claim now behave as they do when locking a note through the UI
This update introduces the ability to create and read comments/notes through the Immunization endpoint in our FHIR API.
You can now mark task labels as inactive. Doing so will prevent users from adding the label to newly created tasks. Existing tasks will still show the inactive labels and you will still be able to filter based on inactive labels, if they are present.
We have updated the populations module to allow users to filter patients based on care team membership. We’ve also moved Campaigns to a standalone page. Please reach out to support if you would like the populations module enabled in your environment.
We’ve added a new event CLAIM__CONDITIONS and a new effect ANNOTATE_CLAIM_CONDITION_RESULTS. This combination can be used to add tags to conditions within the claim.
You can now indicate mark that a note was a no show by setting the stateChange to NSW. Read More.
The SDK diagnose command was updated to exclude inactive codes based on the date of service of the note.
The calculated BMI will now appear in the SDK vitals command within the note, after commit.
The SDK Educational Material is now available for beta testing. Read more.
The reference command (used to add lab results from the diagnostic theater to the note) will now follow the same command insertion logic as other commands. This will allow users to better specify which note the results should be added to.
Updates made via the Note API can now be reflected in the timeline without refreshing the page. Users will see newly added notes appear if they are within their view and note state change events will result in the note collapsing (ULK” → “LKD) or expanding (LKD” → “ULK). Please reach out to product@canvasmedical.com if you would like to enable this feature.
We’ve added a new event PATIENT_CHART__CONDITIONS and a new effect ANNOTATE_PATIENT_CHART_CONDITION_RESULTS. This combination can be used to add tags to conditions within the patient summary.
This release includes performance improvements for the Vitals and Questionnaire commands. Saving individual vital signs now takes about a third of the time it used to. Originating questionnaires when many exist within the system is faster, as is saving responses for very large questionnaires.
We’ve created logic within automations to update commands based on patient details. If an automation that includes diagnose is used on a patient who has been previously diagnosed with the same condition, it will automatically update to assess instead. Please reach out to product@canvasmedical.com if you are interested in testing this new automation logic.
We’ve fixed a bug that caused some users to see the following error when processing documents classified as Patient Administrative Intake: “Some values might be missing or incomplete”.
After scheduling appointments via the follow up command workflow, the reason for visit would be duplicated in the note. We now only add two commands if the note is updated in the scheduling workflow.
We’ve created a new command called the clipboard command. If enabled, pasting text within the note body will automatically generate a command to house the pasted text. This will enable plugins to respond to the creation of the command and ultimately use the content to trigger various effects. Please reach out to support to enable this command in your instances.
The audit modal associated with migrated commands will now show all edits. Users can also revert to previous versions of the commmand prior to being committed. Each line item in the history can be expanded to view the edits made in the saved version and selecting revert will update the command to that previous version. The view of questionnaire edits is currently limited to the user and timestamp. Future work will ensure details are present for all commands.
Our FHIR Appointment Create interaction will now trigger the creation of the associated claim when an appointment is added. Previously the claim would generate at check-in.
The Claim page in admin has been updated for improved usability.
We have created a new command to capture private notes. The contents of this command are only visible to the creator of the command. It is an internal command and therefore not represented in our print templates. Please reach out to product@canvasmedical.com if you are interested in enabling the command in your instance.
Commands are currently classified and color coded based on their placmenent within a SOAP note (subjective, objective, assessment, plan, procedures, history). We have added a new category for internal commands. These commands are red and will not be visible in printed notes.
There is a new admin section: Command type settings that allows admins and super users to enable or disable commands in order to contol which commands are available to users when charting. Permissions must be assigned in order to access this setting. Please reach out to support to have the permission added to the appropriate users or role in your instance.
We have added scoring logic with recommendations for the following questionnaires:
- Geriatric Depression Scale
- Columbia Suicide Severity Risk Screener
- Short IQCODE
Reach out to Canvas support if you’d like to utilize these questionnaires with scoring in your EMR.
We have added an extension to the FHIR PaymentNotice endpoint that references the claim to which the payment is or should be applied. When using this reference in the create interaction, you can now bring a balance below zero, supporting prepayment workflows such as copays and coinsurance. Without a reference to a specific claim, the paymentnotice amount cannot exceed the patient’s account balance. Read more.
Procedure codes and charges can be linked to the following commands:
- Perform
- Immunize
- Questionnaires (Questionnaire, Structured Assessment, ROS, PE)
Modifiers included in the fee schedule or linked to the CPT in the questionnaire loader will now be added to the billing footer and associated claim. Use the following format to ensure the modifier is recognized:99215-25
Eligibility requests currently use your organization’s details (name and npi); however, eligibility and benefits may be tied to regional or provider specific enrollment data. You can now set patient defaults that will be used for eligibility purposes from both the patient profile or using the API. Read more.
- Eligibility requests will use the organization’s information by default
- If a default location is set, the request will use the location’s information
- Some payers require the provider’s NPI be sent. You can now update the insurer in admin to use the default provider’s information. If the insurer has this setting enabled, and a default provider is not set, you will receive an error when trying to run the eligibility request.
Surescripts messages for new prescriptions (NEWRX) now include the default supervising provider, if specified in the prescriber’s staff profile.
Tasks within a patient chart are, by default, sorted by due date in ascending order. To help users navigate both open and closed tasks more easily, we have added the ability to change the sorting order and sort by either the creation date or the last modified date. The ‘last modified’ option currently applies only to updates made to the task model, which does not reflect changes to task comments.
The timestamp of the last lock event is now included with the date on the note print template.
We’ve added insertion logic to prevent conflicts when adding commands through the API.
You can now add commands to appointment notes using the Commands API.
You can now write historical vaccines to patient charts using the FHIR immunization create interaction. Vaccines can be added by CPT or CVX code and will appear in the record as an immunization statement. Read more.
The following updates have been made to the FHIR DocumentReference Create interaction:
- Added support for the Uncategorized Clinical Document
type(34109-9). - Added logic to default the priority extenstion to false, if not explicitly set.
- Fixed a bug that caused the review workflow to not be triggered in Canvas when review mode was set to review required (
rr).
The SDK Close Goal and Change Diagnosis commands are now available for beta testing. Read more.
The condition modal previously grouped assessments by diagnosis. If the change diagnosis command was used to update a condition, the assessments associated with the new code would fall to the bottom of the timeline. We have made an update to sort all assessments by date (newest to oldest) in order to better track the progression of the problem.
ProtocolSetting.value previously had a character limit of 1,000. We have updated this field to a TextField to support more characters.
We have added pharmacyName, pharmacyAddress, pharmacyPhoneNumber, and pharmacyFaxNumber to the preferred-pharmacy extension on the patient resource.
When writing or updating patients via FHIR, we were previously setting a patient’s country to United States, which did not map to the dropdown in the patient’s registration. We have changed the behavior to default to US to match our UI.
When using the Commands API, there is validation to ensure that commands are only added to unlocked notes. We fixed a bug that caused the incorrect state to be returned when multiple note state change events had occured (locking & unlocking).
The SDK Task, Refill, and Vitals commands are now available for beta testing. Read more.
We recently introduced a tooltip that displays the full content of command fields that are truncated. We fixed a bug that caused the tooltip to stay present as users scolled through a note.
The recent update to the Apryse webveiwer (used for annotating documents) resulted in intermittent errors that prevented users from leveraging the feature. We have reverted this update.
Historically, our integration with gCal required us to pull from Google,loading availability every time the page loaded. To improve reliablity and load times, we are transitioning to storing availability from Google directly in Canvas. The Google API does expect some failures with their notifications, resulting in events in Google not being represented in Canvas. When this occurs, Canvas Support can now manually sync calendars in admin to capture any missed events.
The SDK Medical History and Surgical History commands are now available for beta testing. Read more.
We recently introduced a tooltip that displays the full content of command fields that are truncated. We have added a slight delay on the hover interaction to prevent it from populating as users navigate through the note.
You can now write PDF documents to Canvas using the FHIR DocumentReference create endpoint. The endpoint supports writing clinical and administrative documents. Developers can select from a list of supported document types (mapped to unique LOINC codes) and set whether the document needs review. Once added, documents can also be reclassified within Canvas if necessary. Read more.
The author of activity log line items on claims will now show as Canvas Bot when updated using the FHIR API. We were previously displaying the creator of the claim.
We have added a constance config that allows admin to restrict free text within notes, forcing all documentation to exist within commands. Users will be able to search for commands and automations and must select from them. Please reach out to our Customer Experience team if you would like to enable this restriction.
This release fixes a bug that caused background not to pull forward within the assess command.
We leverage the Apryse library for document annnotations. This work updates the Apryse WebViewer to 10.10.1.
There is a now a prompt in notes to make adding commands and automations more intuitive. Start typing or press / for commands space for automations. Pressing / or space will pull up the full library of commands or automations for users to browse through and select from.
When viewing claims for patients with many coverage eligibility responses, the user may experience a delay. We have optimized the claim scrubber to load faster for patients with many coverage eligibility responses.
- The ordering provider dropdown is now searchable
- The compendium will not load until a lab is selected
- Autocomplete fields within command headers of SDK commands (instruct, immunization statement, etc.) now have a character limit of 1000. The limit is enforced when adding free text without causing an error.
Commentwithin the instruct command now has a character limit of 4000 characters.MedicationandSigwithin medication statement has been limited to 255 characters to prevent downstream errors in refills.
Administrators can now set a default supervising provider on the staff page. These providers will only be members that have a prescribing role.
Responses to single select questions are no longer truncated.
Any observations created from a custom questionnaire score will have a coding associated with it to meet required FHIR standards.
The Note page in admin has been updated for improved usability.
When using the QuestionnaireResponse Create endpoint, the command will be inserted into the Patient’s note based on what the use case in charting of the questionnaire is: Questionnaire, Physical Exam, Structured Assessments, Review of Systems
When inserting a command into a billable encounter, if the questionnaire responses include the selection of an answer that has a cpt code included in the Fee schedule, the code will appear in the Note’s billing footer
We addressed a bug where the task card in the patient chart incorrectly displayed the last comment date.
We’ve update the FHIR Provenance resounce to allow for the ability to search provenance records by the patient associated to the record and the agent who made the provenance record.
We addressed an issue to allow a prefix or suffix to be added the the FHIR Patient.name attribute.
If an active condition is created via FHIR Condition Create endpoint, an assessment will be associated to the condition. If the diagnosis command is inserted into a billable note, the ICD-10 codes will appear in the note’s billing footer.
We updated how diagnoses are ordered on the claim and note footer to ensure the claim matches the order the commands are entered into the associated note.
- The goal command now requires a start date.
- The previously recorded dates and priority pull forward in the update goal command.
The SDK Allergy, Remove Allergy, and Family History commands are now available for beta testing. Read more.
Resolves error when a protocol card inserts a command on a questionnaire that is not enabled.
FHIR DocumentReference search by date accepts a datetime format.
Includes provider credentials after signature when printing a note.
Resolves error on Goal Priority, now when a Goal is closed the priority will remain the same from initial input.
Includes the date of when a user was Assigned to a clinical review document.
The SDK Lab Order Command is now available for beta testing. Read more.
This release implements the following changes outlined here and previously communicated via email:
- For DiagnosticReport read/search, the FHIR API previously returned
entered_in_errorfor status. Per the FHIR spec, we now returnentered-in-error. - The FHIR API previously returned the string
nullin the response body for successful create and update interactions. Create and update endpoints now return empty response bodies on successful interactions. - The FHIR API previously included the version number in the location header of create interaction responses. The version number should only be included by servers that support versioning, which our API does not.The location header now only includes the base URL, the resource type, and the identifier, i.e.
[base]/[type]/[id]. The/_history/[vid]suffix on the location header value is no longer included.
Allows users to update Clinical Review Document(s) attributes such as report name, link order, requires signature, date, comment, and priority. These attributes can be updated on lab, imaging, consult, and uncategorized clinical reports from each specific panel view or on patient chart.
Prevents admin users from adding same responsibilities to more than one team within settings.
Resolves issue to correctly display letter template variable .
Improves Admin experience on the following pages: Patient Consent Codings, Patient Consent Rejecting Codings, Groups, Teams, Patient Groups, Patient Group Members, and Patient Group Member Exclusions.
Fixes display issue in FHIR when updating team staff members in Settings.
Updates Appointment note title to standardize indication of no-show in note header.
Enhances PDF Annotation functionality by allowing users to delete or split specific pages to multiple document types within Data Integration intake workflow.
The Letter API endpoint allows customers to post letters to the patient timeline. You can stage the letter to the timeline, setting the provider, location and content. HTML and CSS are supported within the body of the letter. Read more.
The default search results order for FHIR DiagnosticReport is now based on date.
The SDK medication statement, stop medication, instruct, and perform commands have been released to all customers (GA). Current status of commands can be found here.
We’ve added a $create-lab-report endpoint to FHIR DiagnosticReport that supports creating lab reports, with their associated lab tests, lab values, and stored PDFs in Canvas. This FHIR operation was developed as a convenience method in order to post all data associated with a lab report in a single request. Read more.
An in-network indicator of n within a 271 response will now correctly map to out of network in our FHIR EligibilityResponse endpoint.
The diagnose command has been migrated and is available for beta testing.
The billing footer now updates as soon as an SDK command (e.g. assess) is committed. There was previously a dependency on saving the note.
The audit modal will now show the correct information when the patient is added as the author of a questionnaire through the FHIR API.
Ensures all billing line items have the appropriate POS based on the configuration set within event and note types.
CategoryCoding objects for diagnostic reports were being created on every save, causing duplication apparent within the FHIR DiagnosticReport search interaction. This has been fixed.
The following admin pages were updated for improved usability:
- Organizations
- Roles
- Care Team Memberships
The instruct and perform commands are migrated and available for beta testing.
This work fixes a bug that prevents individual task commands from being printed.
Requests within the chart related to Conditions, Interviews, Diagnostic Views, and PatientDocuments have been optimized. Usage of these endpoints should now be faster.
This work addresses an issue that delayed and/or sporadically prevented the creation of a documentreference resource when adding lab reports via Data Integration beginning in April. We will backfill the missing documents over the next week to ensure all lab reports are available via the FHIR API.
Our saving indicator, currently shown in the note header, no longer updates when content within SDK commands is updated. To address this, we include a saving indicator within the migrated SDK commands to notify users that their changes are saved.
Resolves error that prevented users from exiting or cancelling Undo action within Data Integration when editing a submitted a document.
The following admin pages were updated for improved usability:
- Vaccine
- Fee Schedule
- Insurer
- Payor Specific Charges
We’ve made some performance enhancements to the way lab results and notes load within the application. These changes will speed up the initial load time for lab results and notes, allowing users to review labs and start charting faster.
We’ve update how commands load within notes on the timeline. Rather than preloading commands for all open and visible notes, we now load them as the user scrolls through the timeline. This speeds up initial chart load and allows users to start charting much faster. Malformed commands will also now show an error in the note body, whereas they previously were presented as loading gray boxes.
You can now manage staff profiles using the FHIR Practitioner Create and Update endpoints. You can also fully automate account creation using the send-reset-password-email operation. Read more.
Resolves bug that incorrectly ranked ICD-10 codes on claims. ICD-10 codes are now ranked on claim based on time of insertion within a note or claim, newer codes will be ranked below previously placed codes to reflect the correct order for accurate billing.
This release fixes a bug that caused patient messages to fail to send via text or email when initiating them through the lab review modal and using Canvas’ messaging capabilities.
Updates user Password Reset Email subject and content.
Adds FHIR MedicationRequest Search Parameter for Requester.
Adds status parameter to FHIR Coverage Search for filtering by active or cancelled coverages.
Enhances our Claim.MD integration allowing for more frequent payer list updates to instances.
The SDK Prescribe Command is now available for beta testing. Read more.
Required fields within SDK commands will now be red on command origination, ensuring that users know which fields need to be completed before recording the command.
Resolves 500 Error on PDF generation within patient chart when attempting to print, preview, or fax documents.
Fixes FHIR Practitioner Search param typo to be include-non-schedulable-practitioners.
Enables ability to Read and Update CareTeam Lead through an extension, and allows for switching CareTeam member roles via API.
You can now search for FHIR DocumentReference by date.
We have added a temporary extension to the Attachment attributes for the following resources: Consent, DocumentReference, DiagnosticReport, Media, Patient, and Practitioner. The url attribute on Attachments will require bearer authentication in the near future. The temporary extension is meant to support the transition. We encourage you to update your workflow to use the temporary extension as soon as possible. We will then release the change to the existing attribute and give a window of time to move off of the temporary extension. Read more
The PDF view functionality on a patient’s chart has been reinstated, for which a new tab opens for viewing labs, imaging, specialist consult, and uncategorized clinical documents. The Review and View buttons have been added for seamless review of these documents as a pop-up on the patient chart.
Appointments will now reference co-scheduled appointment IDs via API, to easily identify which appointments were scheduled together.
This work fixes a bug that caused certain fields to not show in the collapsed view of committed SDK commands.
You can now see access an audit history of SDK commands in the command triple dot menu. We have chosen to move away from the existing tooltip (available on hover) for SDK commands in order to have more space to display additional data. We have added timestamps for some actions now and have plans to continue to expand on the level of detail within the audit trail in the future.
The default appointment note type set in admin now automatically populates the scheduling modal.
Administrators now have visibility as to which Note Type is the default Appointment Type within each Note Type configuration page. We’ve also added validation to prevent users from setting a none schedulable Note Type as the default Appointment Type.
FHIR Medication Request Search/Read will now exclude prescription records without a patient. These are created via Surecripts as refill requests for patients who are not registered.
We’ve made the following changes to the FHIR Observation resource.
- Observations are now created for all questionnaire responses that have been coded with LOINC or SNOMED as the code system. This includes all responses across all questionnaire types (questionnaires, ROS, PE, structured assessments) We previoulsy only created observations if
Use in Social Determinantswas set to true for responses of questionnaires. Derived-fromwas added as a search param.- Additional display names were added to various attributes.
- All vitals signs are now supported in FHIR V2. Read More.
We have resolved an issue in our logic that would update appointmentType and RFV to the associated instance’s default values if these values were omitted from the FHIR update payload. Now, if appointmentType or RFV is omitted from the FHIR Update payload, they are ignored in the message consumer to keep the appointment values as is.
An issue has been resolved that displayed incorrect error of CCD - Patient not matched despite a patient match.
Within Data Integration, users can now Forward by Fax documents that have been annotated and saved.
Fixes a bug that caused automations to load with old questionnaire versions due to caching.
Our carry forward logic pulls in the most recent committed response. Since the HPI command is never committed, carry forward cannot be used. We removed the option from the triple dot menu.
We’ve optimized our notes query by splitting it into two separate queries: one for retrieving static command schema data and another for dynamic commands. This enhancement allows us to cache the static data, resulting in faster load times.
Resolved issue that added 15 blank text lines above API inserted commands.
The internal comment on tasks will automatically be truncated, users can expand internal comments to view the full text.
The Staff Admin Contact Point data now matches the corresponding information within the associated input fields.
The SDK reason for visit, assess, goal, and update goal commands have been released to all customers (GA). Current status of commands can be found here.
Users can now scroll on the providers list within calendar configuration modal.
We have resolved an issue that prevented certain automated tasks from being created when there was a lab error from Health Gorilla. Lab error responses from Health Gorilla will now create a task with further information on the error.
We have made updates to several SDK commands to address various bugs. The fixes include:
Questionnaire
- The most recent version of the questionnaire will now be used in automations.
- Keyboard navigation improvements.
- Values entered in the questionnaire loader are now accurately represented in the command upon origination.
- Blank free text responses will no longer print with the question name (i.e ~TXT~).
- The click target on multiline single select and free text responses has been expanded.
- Automations created before the carry forward setting is enabled now respect the setting after its enabled.
Reason for Visit
- The SDK Reason for Visit Command is now compatible with FHIR Appointment Create/Update.
Assess
- The background field will carry forward as it should when originating the assess command within a note.
Document titles can now be accessed through the FHIR DocumentReference endpoint under the ‘description’ attribute. Additionally, document comments are accessible via an extension.
Users can now access review documents from a patient’s chart as a pop-up modal with the associated review command. Review documents can also be annotated by users within this modal and placed directly on a patient’s chart. These documents include Lab, Imaging, Specialist Consult, and any Uncategorized Clinical Document Reports. To learn more about enabling PDF Annotation functionality, please email product@canvasmedical.com.
Users can now filter tasks from a patient’s chart or the task panel based on task due date.
We have made changes to make searching for patients and loading charts faster, especially for patients with many appointments and encounters.
Resolved Load More issue on task lists from patient chart and task panel.
Resolved Business Line error that prevented users, based on permissions, from accessing feature from admin settings.
Users can filter a patient’s timeline by Inactive staff.
We have improved performance for contact search within the faxing modal.
- We have added an extension (active-health-benefit-plan-coverage-description) to FHIR CoverageEligibilityResponse that pulls the plan name from the parsed X12 response.
- The status of eligibility checks that have failed in ClaimMD with a 400+ error will now be accurately reflected in the UI and API. The outcome in the FHIR CoverageEligibilityRepsponse endpoint will now return
error. - We have implemented improved handling when processing eligibility responses from ClaimMD that contain empty quantity fields.
An issue has been fixed on tasks where selecting or unselecting filtering checkboxes did not result in the expected behavior. Now users should expect task filtering actions to display appropriate results.
Users can now utilize the Select All option on the task labels filter dropdown.
Users can now utilize the Clinicians checkbox option on the schedule view configuration modal to select or unselect all listed providers at once.
We have resolved an issue that resulted in duplicative conditions on a patient’s summary when a claim was created with an associated ICD-10 code via API. Now, we will only include the ICD-10 code in the patient’s condition list if the code is not already listed within the condition list as “active”.
We’ve made changes to make the FHIR Patient read and search endpoints faster.
Fixes a bug that blocked users from configuring an authenticator app for Multi-Factor Authentication (MFA).
The fields endpoint surfaces the specific schema fields associated with each command, including autocomplete fields that are necessary to know what values are valid (e.g. active conditions that can be assessed).
This release fixes a bug that prevented scheduling appointments via the FHIR API when the new reason for visit command was enabled.
The SDK HPI and questionnaire commands have been released to all customers (GA). Current status of commands can be found here.
This work fixes a bug that prevented developers from updating claims that had no coverage associated.
SDK commands have the option to carry forward past responses using the triple dot menu. Questionnaires can also be set to carry forward responses automatically using the carry forward all encounters setting. We are deprecating the carry forward same encounter functionality. The setting will no longer be honored.
We have added the ability to add lab reports and associated values via our FHIR DiagnosticReport endpoint. This functionality is being beta tested. Documentation will be updated soon.
We have added create and update interactions, support for new search filters, and new attributes to read and search for FHIR Practitioner. This new functionality is currently being beta tested. Documentation will be updated soon.
We have made changes to FHIR Task Search to improve performance
We fixed a bug that prevented the patient summary from updating in real time when adding goal and update goal commands to a note.
Medication statement, goal, and update goal have been migrated and are availble for beta testing.
An issue has been resolved that was impacted Unassigned review reports (lab, imaging, special consult, and uncategorized clinical documents) when attempting to access through the Unassigned filter functionality. This issue was impacting reports that became unassigned when an assigned staff member was marked as inactive.
Resolved issue when activating or inactivating a Staff in the Action dropdown in Admin to ensure the Canvas User’s status is also synced.
The ImagingRecommendation Type in SDK protocols now allows the context object to pass a priority that can be set to either Routine or Urgent. This value will be autofilled on the Image Command in the patient’s chart.
We have improved the usabilty of the medication history functionality within admin settings.
The SDK questionnaire command is currently in beta. We fixed an issue with this command where free-text responses in the questionnaire were not being wrapped.
A previous update inadvertently caused the plan command only to display the first line of text when it was committed and in collapsed form. Now users will always be able to see the entire narrative of the plan command.
We have made an update to the cache_google_calendar_events by clearing cache keys before re-fetching google calendars, so that calendar events can update within Canvas scheduling.
When ENABLE_REQUIRES_SIGNATURE constance configuration is enabled, the Requires Signature label will automatically be removed once a document (lab, imaging, consult report, and uncategorized report) have been marked as signed through the corresponding command.
We have made an performance enhancement to the reload_compendium when it reaches out to Health Gorilla (HG) for an updated Lab’s compendium. We have also reduced the job to run on a weekly basis as compared to a daily basis due to HG’s compendium update cadency. Canvas Support will still have the ability to run this sync manually if HG updates the compendium more often.
Users can filter note search commands, within the patient chart, based on the status of the command (committed or uncommitted). There is also the ability to view both committed and uncommitted commands within the note search, which includes a label on the status of the command. Additionally, the command results will now have permalink navigation to the corresponding note or command.
We fixed a bug that was causing the link to the diagnostic theater to be off screen when navigating to a patient’s chart from their lab results.
The search now waits for a pause rather than searching on each keypress. This reduces the randomness in the search responses as they load.
Observation read & search will now surface lab names in the display attribute.
- We added additional tags to our web worker metrics to give us visibility into uneven usage caused by (for example) session stickiness at the load balancer level.
- We added additional metadata to error reports when individual commands or notes crash to improve our ability to stay on top of those errors.
- We improved release notation within our internal systems, allowing support staff and engineers to better see if regressions are caused by a release in the time immediately following that release.
- We increased the accuracy of our request/response durations by accounting for time spent doing request logging.
- We added the ability to track the request backlog for all web workers, allowing us to track the size of the request queue over time.
The text attribute of DiagnosticReport will now reflect the report name for all lab reports.
Users can now filter claims on any of the revenue queue tables through note type selection(s).
Fixed issue that prevented user from adding CPT codes to certain note types based on patient chart URL.
Fixed issue that limited where users could click within migrated commands.
The fax modal, used when faxing notes, letters, and lab orders, now includes a dropdown to pull in the contact details from directory listings. Users can still update the To and Fax number fields manually as needed.
Users can now fax lab requisitions after they have been saved or sent electronically via Health. Selecting Fax lab requisition from the triple dot menu on the command will bring up our faxing modal, which allows users to specify where the order should be sent and complete the cover sheet fields if covers sheets are enabled in your instance. The status of the outbound fax can be tracked in your Sfax portal.
Migrated commands now support the following:
- Carry forward the last committed response. This option will pull in the latest record from the database across all users. This functionality is compatible moving forward. You may not be able to pull in responses from our legacy commands.
- Add partially completed commands to automations.
- Committed commands may be truncated to preserve space in the note. Click on the command header to expand the full content.
Users can access these workflows using the triple dot menu associated with the command, which is now present before clicking record. Currently, the only command available GA is plan. These enhancements will be available for the newly released commands moving forward (when appropriate).
The Commands API allows you to read, search, create, and update (including the ability to commit or enter in error) commands via the API. This will only be possible for the commands that have been migrated to the commands module of the SDK. Read more.
We’ve updated how the timeline loads to address a bug that was causing the top of the timeline to get cut off by the header.
Additional commands have been migrated and are availble for beta testing.
Stripe added a new attribute to their Card Payment API response payload. We updated our data validation to account for the new attribute.
The Place of Service (POS) logic for the add charge tab within claims has been updated to default manually added charges on a claim to the POS that is set at note type admin or practice location level.
You can now change team and individual assignment of tasks to unassigned.
We haved added filtering on provider_key to the Note search.
Some of our endpoints allow you to insert commands into notes by including an encounter reference; however, some of our note types do not create encounters (e.g. data import). A note object reference, surfaced by the new Note API, has been added to those same endpoints to facilitate adding the commands to additional note types. The reference has also been added to support capturing the associated note ID for encounters, appointments, documents associated with notes, and resources that have been added to a note.
The Snooze Protocol command dropdown will only show active protocols. After a protocol has been snoozed, the Snooze Protocol command dropdown will no longer display those protocols that are snoozed.
In order to remove user confusion when reviewing displayed time on the patient chart and within tasks, we have adjusted how time is displayed for user.
- On letters, messages, and note headers: Users will now see the following format
Day of week, MM/DD/YY HH:MM AM user-time-zone. This should provide clarity on when a letter, message, and note were created on a patient chart. - On task created header and task activities: Users will now see the following format
Day of week, MM/DD/YY HH:MM AM user-time-zone. This should provide clarity on when tasks were created and when activities took place within a task. The same will be true on the task panel . - On task due dates: Users will now see the following format
Day of week, MM/DD/YY. This should provide clarity on what day a task is due.
When the push charges button is utilized on a billable note, the associated patient and provider data to that claim will be automatically updated so that the latest version of an unlocked note will have the updated information for the patient and provider. This information includes patient demographics, coverage data, and provider admin staff page values. Additionally, if users want a locked note to reflect updated patient and provider information, a user needs to unlock and re-lock the note to automatically update this information on the claim. Claims associated to a locked note will not have patient and provider information automatically update, to prevent unwanted changes to these claims.
- Corresponding provider and appointment details have been updated on after visit summary printouts to display correct information.
- Internal comments added within the
Review Noteautomated task have been removed from note printouts.
Admin will now have the ability to view and delete a patient’s profile and chart photo through Patient admin settings.
Users will be able to inactivate practice locations through admin settings. Once a practice location has been marked as inactive it will be removed from UI selection drop downs such as note headers, letter templates, message templates, appointment scheduling, and schedule view. If an inactive practice location had been used in past notes, appointments letter, and messages, it will be displayed with an (inactive) label after the practice location name. Practice locations cannot be saved as inactive if there are any future appointments for those locations, appointments must first be updated or removed.
The Add Service Provider button and modal have been removed from the Data Integration page.
In order for a provider or practice location value to be updated on appointments, users need to follow the rescheduling workflow to ensure that the provider has appropriate availability and the practice location is active for the associated provider.
Our recent work to migrate the plan command introduced an issue where the models relating to the command were out of sync. To end users, this looked like a gray loading box in the note that never rendered. We have included a fix we expect to prevent these issues going forward.
When searching for a task via API, the response includes the permalink to that resource. If a user is logged out, the API permalink will now navigate into the right page in Canvas through the login process, including SSO.
Many customers use the Canvas API to integrate the Canvas scheduling model with other systems. We have added the ability to tag Canvas appointments with external IDs in order to support these 2nd and 3rd party workflows (similar to how we have long supported external IDs for patients). External IDs will not appear in the UI. Read more.
This work fixes a bug that was affecting the order in which conditions are displayed in the patient summary. Now, by default, conditions will be sorted by last assessed to first assessed. This way users can quickly identify which conditions may be stale or need to be addressed (those at the bottom). Users can temporarily change the sort to be alphabetical using the slider icon.
We fixed a bug in the FHIR Coverage Search when trying to display coverages with a Subscriber relationship of parent or common.
Added a search parameter for status on communications. Developers can now search for messages, filtering to those that are sent or drafts.
We have updated the following admin pages to improve the experience, add functionality, and allow more flexibility when managing your instance settings.
- Protocol Upload
- Protocol Upload Version
- Protocol Override Snooze Reason
- Google Planned Delivered Reports
- Constance Config
The FHIR Appointment endpoint now uses a reference from the Location Read/Search endpoint for the Location in supportingInformation. We will continue to support using the integer value when creating or updating appointment for a set period before the current functionality is deprecated. Updates on the end of life for the existing functionality can be tracked here.
Our FHIR Claim endpoint now supports read, search, and update interactions. The update endpoint is limited to updating the queue of the claim. This allows third-party RCM vendors to keep claims in Canvas in sync with their operations. Read more.
Canvas offers a config RESTRICT_SIGNING_NOTE_WITH_UNCOMMITTED_COMMANDS, which will prevent users from locking notes with uncommitted commands. We have fixed a bug that blocked users from locking notes with the message “To lock this note please commit all uncommitted commands”, in the absence of any visible uncommitted commands in the note. This was caused by a recent update to the logic checking for uncommitted commands in the note. That update is now being rolled back.
There was previously a limit on the number of appointments that could be displayed on the daily schedule view. This release ensures that there is no limit so that all appointments are displayed.
The Note API now includes improved performance, pagination, additional error handling, updated logic for displaying the note title, and the ability to update the note from CVD to LKD.
In the patient chart, there is a chart tab that can be accessed from the top right which shows active protocols. There is a badge on that chart tab which shows the number of active protocols. Previously, this badge count only counted the number of active protocols with recommendations. Now it will show the count of all active protocols with a protocol card, even if there is no recommendation. This is more intuitive - the user should expect the number displayed to be equal to the number of protocol cards they see when they click on the tab.
Letters created in the patient timeline are now included in DocumentReference read and search.
We fixed a bug that prevented patient group creation via the API.
You can now export EHI for a single patient in your admin settings. EHI is exported as standard FHIR R4 resources in Newline Delimited JSON format, as outlined by the FHIR Bulk Data Access pattern. To export data for a population in the same format, please contact support. Read more.
Updated the chart summary pdf template to display conditions in order of clinical status and in alphabetical order for a more structured display.
Validation for US postal codes has been incorporated into the Organization, Practice Location, and Staff address forms when the country is set to US. This validation ensures that the entered US Postal code follows the correct format: either 12345 or 12345-1234. If the user specifies any country other than the United States, the validation process will be bypassed.
We have added a new HIDE_PUSH_CHARGES_BUTTON constance configuration within settings. When the configuration is enabled, the Push Charges button in the footer of all notes will be removed. Signing or locking a note will automatically push charges to the associated claim.
This work improves the speed at which the note body loads when a note is added to a chart. Previously, the header would load first and the body would be slightly delayed. Now the user will see the body load with the header, so that they can begin documenting asap.
Previously, for lab reports and imaging reports, there was a DocumentReference resource which contained the PDF, and separately a DiagnosticReport resource which contained other information including codings. There was no way to link the two together. This made it difficult for developers to identify what a given DocumentReference PDF contained. Now, we have added the PDF for the report to the DiagnosticReport in the presentedForm attribute. The PDF will also continue to be surfaced as a DocumentReference per FHIR guidance. Read more.
Earlier this year, Canvas deployed permalinks. These are direct links to Canvas objects (notes, commands, PDFs and more) that can be added to tasks. We received feedback from users that these links were useful, and that it would be helpful to be able to get a permalink outside of the context of a task. One use case is to share a link to a specific note with a colleague, via Canvas chat or another chat application like Slack. As a result we have added an option “copy link” to the kebab (triple dot) menu of the note. This option will add a permalink to the note to the user’s clipboard.
Canvas has a mapping from prescribed medications like “Amoxicillin 500mg tablet” to an NDC code. This NDC code is sent to the pharmacy with prescriptions. In some cases, the NDC code was not respecting brand vs generic distinctions. Now the mapping has been updated so that, wherever, possible, the NDC will correctly reflect whether the selected medication was brand or generic. Note that in some cases this is not possible, for example if a the generic medication name is selected but the medication is still on patent and there is no generic NDC yet.
Customers have expressed a need to access more PDFs from Canvas via API, in order to share these with external parties or in patient-facing experience. As a result we have significantly expanded the scope of DocumentReference, to include the following documents:
- All PDFs added via Data Integration that have been parsed (“parsed” means they have been attached to a patient and tagged with required metadata like document type). Some examples of these PDFs include “Uncategorized clinical documents”, “Consult report, “Advanced directive” and more.
- PDFs of chart notes. A version of the note PDF is saved every time a note is locked, and all versions are available via the API.