09.01.2026
Today’s release includes the following updates:
ui
- Questionnaires now support a Date question type, alongside single select, multi select and free text.
- When building a questionnaire, choose Date for a question in the Questionnaire Builder, or set the question’s
responses_typetoDATEin the Google Sheets import. - When filling one out in a note, the question renders as a date picker in the Questionnaire, Review of Systems, Structured Assessment and Physical Exam commands.
- The captured date carries through charting and carry-forward.
- When building a questionnaire, choose Date for a question in the Questionnaire Builder, or set the question’s
bugfix
- Fixed an issue in the Canvas Remote app where capturing insurance card images failed when adding a new coverage. The front and back capture steps now load for a coverage that has just been started.
- Discharging an inpatient note now records one discharge and one lock in the note’s state history, plus a signature for note types that require one. Previously the lock was written three times, so the state history showed duplicates and plugins subscribed to
NOTE_STATE_CHANGE_EVENT_CREATEDwere notified of the same lock three times.
api
- The FHIR API now carries Date questions.
- A Questionnaire declares one as
"type": "date". - A QuestionnaireResponse answers it with a
valueDate, an ISO 8601 calendar date, on both read and create.
- A Questionnaire declares one as
sdk
- A questionnaire can declare a
DATEquestion, and a plugin can answer one.- Set
responses_type: DATEon the question in the questionnaire’s YAML template, the one your plugin’sCANVAS_MANIFEST.jsonpoints at. See Questionnaires. - Answer it from the Questionnaire command. An
answersentry takes the date as an ISO 8601YYYY-MM-DDstring, while the question’s ownadd_response(date=...)also accepts adatetime.date.
- Set
- Five more records are now readable through the SDK data module, each of them the record behind a command:
- Plan: what the Plan command records, with its narrative.
- FollowUp: what the Follow Up command records, including the requested appointment date and type, the reason for the visit, and the comments to the patient and to staff.
- ReasonForVisit: what the Reason for Visit command records, with its narrative and codings, alongside the configured codings an instance offers.
- RemoveAllergyEvent: what the Remove Allergy command records, with the allergy removed, the patient, the note and the rationale.
- ResolveConditionEvent: what the Resolve Condition command records, with the condition resolved, the patient, the note and the rationale.
- Fixed an issue where calling
find()with a value set on FamilyHistory or ImmunizationStatement records raised an error instead of returning results. These value-set lookups now work.