Change Types

Change types tell the system when to recompute this protocol. You can specify specific types of data you would like the protocol to be triggered. Include only the types that are used to compute whether the protocol is used to
ensure the system processes data in an optimized manner.

For example the below example would try to recalculate the protocol for a patient if any condition or lab reports were added/updated. It would also recompute if any patient demographic information info was changed.

from canvas_workflow_sdk.constants import CHANGE_TYPE

class ClinicalQualityMeasure122v6(ClinicalQualityMeasure):


    compute_on_change_types = [

Here is a list of all the change types that are currently supported in Canvas:

ALLERGY_INTOLERANCERecompute a protocol after any Allergy Intolerance information has been added or changed through our allergy command
APPOINTMENTRecompute a protocol after any Appointments have been made or changed via our UI or via our Appointment Create or Appointment Update FHIR endpoints. This includes changes to our NoteStateChangeEvents as you click the Book, Reschedule, Cancel, No Show, Check In, Restore buttons related to an appointment. See Appointment Notification for an example
BILLING_LINE_ITEMRecompute a protocol after additions/changes to the Billing Footer or via Charges
CONDITIONRecompute a protocol after any new conditions or updates to existing conditions are made via our commands diagnosis, assess condition, resolve condition, or surgical history
CONSENTRecompute a protocol after a Patient’s consent is added, updated, or deleted.
COVERAGERecompute a protocol after adding or updating a patient’s coverages via UI or Coverage Create / Coverage Update
ENCOUNTERRecompute a protocol after an encounter was added or updated
EXTERNAL_EVENTSRecompute a protocol after an external event for a patient was created via ADT integration messages
IMAGING_REPORTRecompute a protocol after an Imaging Report was linked to a patient via Data Integrations or an Imaging Review
IMMUNIZATIONRecompute a protocol after updates to a Patient’s immunization records via immunize or immunization statement
INSTRUCTIONRecompute a protocol after instructions have been added or updated via instruct command
INTERVIEWRecompute a protocol after filling out the commands questionnaire, structured assessment or physical exam. You can also update these using QuestionnaireResponse Create
LAB_ORDERRecompute a protocol after filling out a Lab Order command
LAB_REPORTRecompute a protocol after linking a Lab Report via Data Integrations or using Lab Review. It will also recompute after the POC Lab Test Command is used.
MEDICATIONRecompute a protocol after adding or updating medication information via prescribe, refill, medication statement, or stop medication
MESSAGERecompute a protocol after any new messages have been communicated. This will also be triggered after Communication Create
PATIENTRecompute a protocol after patient information has been updated on the Registration Page left side. This includes patient demographics, care team, addresses, contacts, phone numbers, or addresses. This also will be triggered after a FHIR Patient Create and Patient Update. This change type will also recompute a protocol after a deletion of patient’s care team members, addresses, phone numbers, or contact.
PRESCRIPTIONRecompute a protocol after adding or updating prescription information via prescribe, refill, adjust prescription
PROTOCOL_OVERRIDERecompute a protocol after using snooze protocol
REFERRAL_REPORTRecompute a protocol after uploading a Specialty Consult Report
SUSPECT_HCCRecompute a protocol after any SuspectHCC data for a patient has changed
TASKRecompute a protocol after a Task is created or updated for a patient. This includes when a new comment was added to a task. This also will be triggered after a FHIR Task Create and Task Update
VITAL_SIGNRecompute a protocol after using the vitals command. This includes when a vital observation is created via FHIR Observation Create
Useful guides
Asynchronous Care