Healthcare · Beta
Canvas Medical
API integration
Ship Healthcare features without building the integration. Full Canvas Medical API access via Proxy and 160+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Canvas Medical
Common scenarios for SaaS companies building Canvas Medical integrations for their customers.
Embed AI scribe output directly into Canvas charts
Ambient dictation and AI documentation tools can push structured notes back into the correct patient encounter without clinicians copy-pasting between apps. Truto handles the Canvas FHIR auth and resource mapping so you ship the integration in days, not quarters.
Power RPM and connected-device data pipelines
Remote patient monitoring platforms can stream vitals, glucose readings, and device telemetry into Canvas as Observations and trigger follow-up Tasks when thresholds are breached. This lets your SaaS become the system of record for device data while Canvas remains the clinical source of truth.
Run a digital front door on top of Canvas scheduling
Patient booking, intake, and engagement platforms can read live Slots and Schedules, create Appointments and Patients, and sync insurance Coverage back to Canvas. Your users get a modern booking experience without their practice replacing its EHR.
Fuel value-based care and RCM analytics with bulk exports
Analytics and risk-adjustment platforms can trigger Canvas Bulk Export jobs to ingest Conditions, Claims, and Encounters at scale, then write back DetectedIssues to flag HCC gaps and coding opportunities. Truto manages the long-running export jobs so your pipeline just consumes NDJSON.
Enable async messaging and specialty telehealth workflows
Asynchronous care and specialty telehealth portals can log patient-clinician messages as Communications in Canvas and sync replies back to the patient-facing app. This keeps the clinical record complete without forcing providers out of their Canvas workflow.
What You Can Build
Ship these features with Truto + Canvas Medical
Concrete product features your team can ship faster by leveraging Truto’s Canvas Medical integration instead of building from scratch.
Bi-directional patient and appointment sync
Keep patient demographics and appointments aligned between your product and Canvas using create, update, and search operations on Patient and Appointment resources.
Clinical note write-back as DocumentReference
Push AI-generated SOAP notes, PDFs, or narrative summaries into Canvas as DocumentReferences linked to the right patient and encounter.
Device and lab Observation ingestion
Stream vitals, RPM readings, and lab values into Canvas as Observation resources so clinicians see them in the native chart view.
Task-based clinician inbox automation
Create and update Canvas Tasks to route follow-ups, critical alerts, and review requests directly into the clinician's work queue.
Dynamic intake and assessment capture
Map digital intake forms and clinical assessments (PHQ-9, GAD-7, custom screeners) into Canvas as QuestionnaireResponses tied to the patient record.
Bulk export pipelines for analytics and AI
Kick off patient-, group-, or system-level Bulk Export jobs, monitor job status, and ingest NDJSON output for population health, RCM, or model training.
SuperAI
Canvas Medical AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
get_single_canvas_medical_allergen_by_id
Get a single Allergen from Canvas by its id. Returns the FHIR R4 Allergen resource. Returns: resourceType, id, code. Required: id.
list_all_canvas_medical_allergens
Search Allergen resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Allergen resources, one page at a time. Needs either code or _text. Returns: resourceType, id, code. Required: one of code or _text.
get_single_canvas_medical_allergy_intolerance_by_id
Get a single AllergyIntolerance from Canvas by its id. Returns the FHIR R4 AllergyIntolerance resource. Returns: resourceType, id, clinicalStatus, verificationStatus, type. Required: id.
list_all_canvas_medical_allergy_intolerances
Search AllergyIntolerance resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 AllergyIntolerance resources, one page at a time. Returns: resourceType, id, clinicalStatus, verificationStatus, type. No parameters are required.
canvas_medical_allergy_intolerances_search
Search AllergyIntolerance resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 AllergyIntolerance resources, one page at a time. Returns: resourceType, id, clinicalStatus, verificationStatus, type. No parameters are required.
create_a_canvas_medical_allergy_intolerance
Create a AllergyIntolerance in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: clinicalStatus, verificationStatus, type, code, patient.
update_a_canvas_medical_allergy_intolerance_by_id
Replace a AllergyIntolerance in Canvas by sending the full FHIR AllergyIntolerance resource (PUT). Canvas answers 200 OK with an empty body. Required: id, clinicalStatus, verificationStatus, type, code, patient.
get_single_canvas_medical_appointment_by_id
Get a single Appointment from Canvas by its id. Returns the FHIR R4 Appointment resource. Returns: resourceType, id, status, appointmentType, reasonCode. Required: id.
list_all_canvas_medical_appointments
Search Appointment resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Appointment resources, one page at a time. The status filter takes one value per request. Returns: resourceType, id, status, appointmentType, reasonCode. No parameters are required.
canvas_medical_appointments_search
Search Appointment resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Appointment resources, one page at a time. The status filter takes one value per request. Returns: resourceType, id, status, appointmentType, reasonCode. No parameters are required.
create_a_canvas_medical_appointment
Create a Appointment in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, supportingInformation, start, end, participant.
update_a_canvas_medical_appointment_by_id
Replace a Appointment in Canvas by sending the full FHIR Appointment resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, supportingInformation, start, end, participant.
get_single_canvas_medical_care_plan_by_id
Get a single CarePlan from Canvas by its id. Returns the FHIR R4 CarePlan resource. Returns: resourceType, id, status, intent, category. Required: id.
list_all_canvas_medical_care_plans
Search CarePlan resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 CarePlan resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
canvas_medical_care_plans_search
Search CarePlan resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 CarePlan resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
get_single_canvas_medical_care_team_by_id
Get a single CareTeam from Canvas by its id. Returns the FHIR R4 CareTeam resource. Returns: resourceType, id, status, name, subject. Required: id.
list_all_canvas_medical_care_teams
Search CareTeam resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 CareTeam resources, one page at a time. Returns: resourceType, id, status, name, subject. No parameters are required.
canvas_medical_care_teams_search
Search CareTeam resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 CareTeam resources, one page at a time. Returns: resourceType, id, status, name, subject. No parameters are required.
update_a_canvas_medical_care_team_by_id
Replace a CareTeam in Canvas by sending the full FHIR CareTeam resource (PUT). Canvas answers 200 OK with an empty body. Required: id.
get_single_canvas_medical_claim_by_id
Get a single Claim from Canvas by its id. Returns the FHIR R4 Claim resource. Returns: resourceType, id, status, type, use. Required: id.
list_all_canvas_medical_claims
Search Claim resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Claim resources, one page at a time. Returns: resourceType, id, status, type, use. No parameters are required.
canvas_medical_claims_search
Search Claim resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Claim resources, one page at a time. Returns: resourceType, id, status, type, use. No parameters are required.
create_a_canvas_medical_claim
Create a Claim in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, type, use, patient, created, provider, priority, diagnosis, insurance, item.
update_a_canvas_medical_claim_by_id
Replace a Claim in Canvas by sending the full FHIR Claim resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, type, use, patient, created, provider, priority, insurance.
get_single_canvas_medical_communication_by_id
Get a single Communication from Canvas by its id. Returns the FHIR R4 Communication resource. Returns: resourceType, id, status, subject, sent. Required: id.
list_all_canvas_medical_communications
Search Communication resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Communication resources, one page at a time. Returns only messages between a practitioner and a patient. Returns: resourceType, id, status, subject, sent. No parameters are required.
canvas_medical_communications_search
Search Communication resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Communication resources, one page at a time. Returns only messages between a practitioner and a patient. Returns: resourceType, id, status, subject, sent. No parameters are required.
create_a_canvas_medical_communication
Create a Communication in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, recipient, sender, payload.
get_single_canvas_medical_condition_by_id
Get a single Condition from Canvas by its id. Returns the FHIR R4 Condition resource. Returns: resourceType, id, clinicalStatus, verificationStatus, category. Required: id.
list_all_canvas_medical_conditions
Search Condition resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Condition resources, one page at a time. Returns: resourceType, id, clinicalStatus, verificationStatus, category. No parameters are required.
canvas_medical_conditions_search
Search Condition resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Condition resources, one page at a time. Returns: resourceType, id, clinicalStatus, verificationStatus, category. No parameters are required.
create_a_canvas_medical_condition
Create a Condition in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: clinicalStatus, category, code, subject.
update_a_canvas_medical_condition_by_id
Replace a Condition in Canvas by sending the full FHIR Condition resource (PUT). Canvas answers 200 OK with an empty body. Required: id, clinicalStatus, category, code, subject.
get_single_canvas_medical_consent_by_id
Get a single Consent from Canvas by its id. Returns the FHIR R4 Consent resource. Returns: resourceType, id, status, scope, category. Required: id.
list_all_canvas_medical_consents
Search Consent resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Consent resources, one page at a time. Returns: resourceType, id, status, scope, category. No parameters are required.
canvas_medical_consents_search
Search Consent resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Consent resources, one page at a time. Returns: resourceType, id, status, scope, category. No parameters are required.
create_a_canvas_medical_consent
Create a Consent in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, scope, category, patient, sourceAttachment, provision.
get_single_canvas_medical_coverage_by_id
Get a single Coverage from Canvas by its id. Returns the FHIR R4 Coverage resource. Returns: resourceType, id, status, type, subscriber. Required: id.
list_all_canvas_medical_coverages
Search Coverage resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Coverage resources, one page at a time. Does not filter by date; each Coverage carries period.start and period.end. Returns: resourceType, id, status, type, subscriber. No parameters are required.
canvas_medical_coverages_search
Search Coverage resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Coverage resources, one page at a time. Does not filter by date; each Coverage carries period.start and period.end. Returns: resourceType, id, status, type, subscriber. No parameters are required.
create_a_canvas_medical_coverage
Create a Coverage in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: identifier, status, subscriber, beneficiary, relationship, payor, order.
update_a_canvas_medical_coverage_by_id
Replace a Coverage in Canvas by sending the full FHIR Coverage resource (PUT). Canvas answers 200 OK with an empty body. Required: id, identifier, status, subscriber, beneficiary, relationship, payor, order.
get_single_canvas_medical_coverage_eligibility_response_by_id
Get a single CoverageEligibilityResponse from Canvas by its id. Returns the FHIR R4 CoverageEligibilityResponse resource. Returns: resourceType, id, status, purpose, patient. Required: id.
list_all_canvas_medical_coverage_eligibility_responses
Search CoverageEligibilityResponse resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 CoverageEligibilityResponse resources, one page at a time. Returns: resourceType, id, status, purpose, patient. No parameters are required.
canvas_medical_coverage_eligibility_responses_search
Search CoverageEligibilityResponse resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 CoverageEligibilityResponse resources, one page at a time. Returns: resourceType, id, status, purpose, patient. No parameters are required.
get_single_canvas_medical_detected_issue_by_id
Get a single DetectedIssue from Canvas by its id. Returns the FHIR R4 DetectedIssue resource. Returns: resourceType, id, status, code, severity. Required: id.
list_all_canvas_medical_detected_issues
Search DetectedIssue resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 DetectedIssue resources, one page at a time. Returns: resourceType, id, status, code, severity. No parameters are required.
canvas_medical_detected_issues_search
Search DetectedIssue resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 DetectedIssue resources, one page at a time. Returns: resourceType, id, status, code, severity. No parameters are required.
create_a_canvas_medical_detected_issue
Create a DetectedIssue in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, code, patient, identifiedDateTime, author, evidence.
update_a_canvas_medical_detected_issue_by_id
Replace a DetectedIssue in Canvas by sending the full FHIR DetectedIssue resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, code, patient, identifiedDateTime, author, evidence.
get_single_canvas_medical_device_by_id
Get a single Device from Canvas by its id. Returns the FHIR R4 Device resource. Returns: resourceType, id, udiCarrier, status, distinctIdentifier. Required: id.
list_all_canvas_medical_devices
Search Device resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Device resources, one page at a time. Returns: resourceType, id, udiCarrier, status, distinctIdentifier. No parameters are required.
canvas_medical_devices_search
Search Device resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Device resources, one page at a time. Returns: resourceType, id, udiCarrier, status, distinctIdentifier. No parameters are required.
get_single_canvas_medical_diagnostic_report_by_id
Get a single DiagnosticReport from Canvas by its id. Returns the FHIR R4 DiagnosticReport resource. Returns: resourceType, id, status, category, code. Required: id.
list_all_canvas_medical_diagnostic_reports
Search DiagnosticReport resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 DiagnosticReport resources, one page at a time. Returns: resourceType, id, status, category, code. No parameters are required.
canvas_medical_diagnostic_reports_search
Search DiagnosticReport resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 DiagnosticReport resources, one page at a time. Returns: resourceType, id, status, category, code. No parameters are required.
get_single_canvas_medical_document_reference_by_id
Get a single DocumentReference from Canvas by its id. Returns the FHIR R4 DocumentReference resource. Returns: resourceType, id, status, type, category. Required: id.
list_all_canvas_medical_document_references
Search DocumentReference resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 DocumentReference resources, one page at a time. Returns: resourceType, id, status, type, category. No parameters are required.
canvas_medical_document_references_search
Search DocumentReference resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 DocumentReference resources, one page at a time. Returns: resourceType, id, status, type, category. No parameters are required.
create_a_canvas_medical_document_reference
Create a DocumentReference in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: extension, status, type, category, subject, content.
get_single_canvas_medical_encounter_by_id
Get a single Encounter from Canvas by its id. Returns the FHIR R4 Encounter resource. Returns: resourceType, id, status, class, type. Required: id.
list_all_canvas_medical_encounters
Search Encounter resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Encounter resources, one page at a time. Returns: resourceType, id, status, class, type. No parameters are required.
canvas_medical_encounters_search
Search Encounter resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Encounter resources, one page at a time. Returns: resourceType, id, status, class, type. No parameters are required.
get_single_canvas_medical_goal_by_id
Get a single Goal from Canvas by its id. Returns the FHIR R4 Goal resource. Returns: resourceType, id, lifecycleStatus, achievementStatus, priority. Required: id.
list_all_canvas_medical_goals
Search Goal resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Goal resources, one page at a time. Returns: resourceType, id, lifecycleStatus, achievementStatus, priority. No parameters are required.
canvas_medical_goals_search
Search Goal resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Goal resources, one page at a time. Returns: resourceType, id, lifecycleStatus, achievementStatus, priority. No parameters are required.
get_single_canvas_medical_group_by_id
Get a single Group from Canvas by its id. Returns the FHIR R4 Group resource. Returns: resourceType, id, type, actual, name. Required: id.
list_all_canvas_medical_groups
Search Group resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Group resources, one page at a time. Returns: resourceType, id, type, actual, name. No parameters are required.
canvas_medical_groups_search
Search Group resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Group resources, one page at a time. Returns: resourceType, id, type, actual, name. No parameters are required.
create_a_canvas_medical_group
Create a Group in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: type, actual, name.
update_a_canvas_medical_group_by_id
Replace a Group in Canvas by sending the full FHIR Group resource (PUT). Canvas answers 200 OK with an empty body. Required: id, type, actual, name.
get_single_canvas_medical_immunization_by_id
Get a single Immunization from Canvas by its id. Returns the FHIR R4 Immunization resource. Returns: resourceType, id, status, statusReason, vaccineCode. Required: id.
list_all_canvas_medical_immunizations
Search Immunization resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Immunization resources, one page at a time. Returns: resourceType, id, status, statusReason, vaccineCode. No parameters are required.
canvas_medical_immunizations_search
Search Immunization resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Immunization resources, one page at a time. Returns: resourceType, id, status, statusReason, vaccineCode. No parameters are required.
create_a_canvas_medical_immunization
Create a Immunization in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, vaccineCode, patient, occurrenceDateTime, primarySource.
update_a_canvas_medical_immunization_by_id
Replace a Immunization in Canvas by sending the full FHIR Immunization resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, vaccineCode, patient, occurrenceDateTime, primarySource.
get_single_canvas_medical_location_by_id
Get a single Location from Canvas by its id. Returns the FHIR R4 Location resource. Returns: resourceType, id, status, name, alias. Required: id.
list_all_canvas_medical_locations
Search Location resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Location resources, one page at a time. Returns: resourceType, id, status, name, alias. No parameters are required.
canvas_medical_locations_search
Search Location resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Location resources, one page at a time. Returns: resourceType, id, status, name, alias. No parameters are required.
get_single_canvas_medical_media_by_id
Get a single Media from Canvas by its id. Returns the FHIR R4 Media resource. Returns: resourceType, id, status, subject, encounter. Required: id.
list_all_canvas_medical_media
Search Media resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Media resources, one page at a time. Returns: resourceType, id, status, subject, encounter. No parameters are required.
canvas_medical_media_search
Search Media resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Media resources, one page at a time. Returns: resourceType, id, status, subject, encounter. No parameters are required.
create_a_canvas_medical_media
Create a Media in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, subject, content.
get_single_canvas_medical_medication_by_id
Get a single Medication from Canvas by its id. Returns the FHIR R4 Medication resource. Returns: resourceType, id, code. Required: id.
list_all_canvas_medical_medications
Search Medication resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Medication resources, one page at a time. Needs either code or _text. Returns: resourceType, id, code. Required: one of code or _text.
canvas_medical_medications_search
Search Medication resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Medication resources, one page at a time. Needs either code or _text. Returns: resourceType, id, code. Required: one of code or _text.
get_single_canvas_medical_medication_dispense_by_id
Get a single MedicationDispense from Canvas by its id. Returns the FHIR R4 MedicationDispense resource. Returns: resourceType, id, status, medicationCodeableConcept, subject. Required: id.
list_all_canvas_medical_medication_dispenses
Search MedicationDispense resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 MedicationDispense resources, one page at a time. Returns: resourceType, id, status, medicationCodeableConcept, subject. No parameters are required.
canvas_medical_medication_dispenses_search
Search MedicationDispense resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 MedicationDispense resources, one page at a time. Returns: resourceType, id, status, medicationCodeableConcept, subject. No parameters are required.
get_single_canvas_medical_medication_request_by_id
Get a single MedicationRequest from Canvas by its id. Returns the FHIR R4 MedicationRequest resource. Returns: resourceType, id, status, intent, category. Required: id.
list_all_canvas_medical_medication_requests
Search MedicationRequest resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 MedicationRequest resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
canvas_medical_medication_requests_search
Search MedicationRequest resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 MedicationRequest resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
get_single_canvas_medical_medication_statement_by_id
Get a single MedicationStatement from Canvas by its id. Returns the FHIR R4 MedicationStatement resource. Returns: id, status, medicationCodeableConcept, subject, effectivePeriod. Required: id.
list_all_canvas_medical_medication_statements
Search MedicationStatement resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 MedicationStatement resources, one page at a time. Returns: id, status, medicationCodeableConcept, subject, effectivePeriod. No parameters are required.
canvas_medical_medication_statements_search
Search MedicationStatement resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 MedicationStatement resources, one page at a time. Returns: id, status, medicationCodeableConcept, subject, effectivePeriod. No parameters are required.
create_a_canvas_medical_medication_statement
Create a MedicationStatement in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, subject.
update_a_canvas_medical_medication_statement_by_id
Replace a MedicationStatement in Canvas by sending the full FHIR MedicationStatement resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, subject.
get_single_canvas_medical_observation_by_id
Get a single Observation from Canvas by its id. Returns the FHIR R4 Observation resource. Returns: resourceType, id, status, category, code. Required: id.
list_all_canvas_medical_observations
Search Observation resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Observation resources, one page at a time. Returns: resourceType, id, status, category, code. No parameters are required.
canvas_medical_observations_search
Search Observation resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Observation resources, one page at a time. Returns: resourceType, id, status, category, code. No parameters are required.
create_a_canvas_medical_observation
Create a Observation in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Send a full vital panel as one request per observation set; see the Canvas vitals guide. Required: status, code, subject.
get_single_canvas_medical_organization_by_id
Get a single Organization from Canvas by its id. Returns the FHIR R4 Organization resource. Returns: resourceType, id, type, active, name. Required: id.
list_all_canvas_medical_organizations
Search Organization resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Organization resources, one page at a time. Returns: resourceType, id, type, active, name. No parameters are required.
canvas_medical_organizations_search
Search Organization resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Organization resources, one page at a time. Returns: resourceType, id, type, active, name. No parameters are required.
get_single_canvas_medical_patient_by_id
Get a single Patient from Canvas by its id. Returns the FHIR R4 Patient resource. The birthsex extension carries sex assigned at birth. Returns: resourceType, id, active, name, telecom. Required: id.
list_all_canvas_medical_patients
Search Patient resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Patient resources, one page at a time. Inactive patients are included unless you pass active=true. Returns: resourceType, id, active, name, telecom. No parameters are required.
canvas_medical_patients_search
Search Patient resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Patient resources, one page at a time. Inactive patients are included unless you pass active=true. Returns: resourceType, id, active, name, telecom. No parameters are required.
create_a_canvas_medical_patient
Create a Patient in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. The birthsex extension is required. Required: resourceType, extension, name, gender, birthDate.
update_a_canvas_medical_patient_by_id
Replace a Patient in Canvas by sending the full FHIR Patient resource (PUT). Canvas answers 200 OK with an empty body. The birthsex extension is required. Required: id, resourceType, extension, name, gender, birthDate.
get_single_canvas_medical_payment_notice_by_id
Get a single PaymentNotice from Canvas by its id. Returns the FHIR R4 PaymentNotice resource. Returns: id, status, request, created, payment. Required: id.
list_all_canvas_medical_payment_notices
Search PaymentNotice resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 PaymentNotice resources, one page at a time. Returns: id, status, request, created, payment. No parameters are required.
canvas_medical_payment_notices_search
Search PaymentNotice resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 PaymentNotice resources, one page at a time. Returns: id, status, request, created, payment. No parameters are required.
create_a_canvas_medical_payment_notice
Create a PaymentNotice in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, request, created, payment, recipient, amount.
get_single_canvas_medical_practitioner_by_id
Get a single Practitioner from Canvas by its id. Returns the FHIR R4 Practitioner resource. Returns: id, active, name, telecom, address. Required: id.
list_all_canvas_medical_practitioners
Search Practitioner resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Practitioner resources, one page at a time. Only schedulable, active practitioners come back by default; set include-non-schedulable-practitioners=true or active=false to widen the search. Returns: id, active, name, telecom, address. No parameters are required.
canvas_medical_practitioners_search
Search Practitioner resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Practitioner resources, one page at a time. Only schedulable, active practitioners come back by default; set include-non-schedulable-practitioners=true or active=false to widen the search. Returns: id, active, name, telecom, address. No parameters are required.
create_a_canvas_medical_practitioner
Create a Practitioner in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: name, telecom, birthDate.
update_a_canvas_medical_practitioner_by_id
Replace a Practitioner in Canvas by sending the full FHIR Practitioner resource (PUT). Canvas answers 200 OK with an empty body. Required: id, name, telecom, birthDate.
get_single_canvas_medical_procedure_by_id
Get a single Procedure from Canvas by its id. Returns the FHIR R4 Procedure resource. Returns: resourceType, id, basedOn, status, code. Required: id.
list_all_canvas_medical_procedures
Search Procedure resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Procedure resources, one page at a time. Returns: resourceType, id, basedOn, status, code. No parameters are required.
canvas_medical_procedures_search
Search Procedure resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Procedure resources, one page at a time. Returns: resourceType, id, basedOn, status, code. No parameters are required.
get_single_canvas_medical_provenance_by_id
Get a single Provenance from Canvas by its id. Returns the FHIR R4 Provenance resource. Returns: resourceType, id, target, recorded, location. Required: id.
list_all_canvas_medical_provenances
Search Provenance resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Provenance resources, one page at a time. Returns: resourceType, id, target, recorded, location. No parameters are required.
canvas_medical_provenances_search
Search Provenance resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Provenance resources, one page at a time. Returns: resourceType, id, target, recorded, location. No parameters are required.
get_single_canvas_medical_questionnaire_by_id
Get a single Questionnaire from Canvas by its id. Returns the FHIR R4 Questionnaire resource. Returns: resourceType, id, name, status, description. Required: id.
list_all_canvas_medical_questionnaires
Search Questionnaire resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Questionnaire resources, one page at a time. Returns: resourceType, id, name, status, description. No parameters are required.
canvas_medical_questionnaires_search
Search Questionnaire resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Questionnaire resources, one page at a time. Returns: resourceType, id, name, status, description. No parameters are required.
get_single_canvas_medical_questionnaire_response_by_id
Get a single QuestionnaireResponse from Canvas by its id. Returns the FHIR R4 QuestionnaireResponse resource. Returns: resourceType, id, questionnaire, _questionnaire, status. Required: id.
list_all_canvas_medical_questionnaire_responses
Search QuestionnaireResponse resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 QuestionnaireResponse resources, one page at a time. Returns: resourceType, id, questionnaire, _questionnaire, status. No parameters are required.
canvas_medical_questionnaire_responses_search
Search QuestionnaireResponse resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 QuestionnaireResponse resources, one page at a time. Returns: resourceType, id, questionnaire, _questionnaire, status. No parameters are required.
create_a_canvas_medical_questionnaire_response
Create a QuestionnaireResponse in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, subject.
update_a_canvas_medical_questionnaire_response_by_id
Replace a QuestionnaireResponse in Canvas by sending the full FHIR QuestionnaireResponse resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, subject.
get_single_canvas_medical_related_person_by_id
Get a single RelatedPerson from Canvas by its id. Returns the FHIR R4 RelatedPerson resource. Returns: resourceType, id, active, patient, relationship. Required: id.
list_all_canvas_medical_related_persons
Search RelatedPerson resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 RelatedPerson resources, one page at a time. Returns: resourceType, id, active, patient, relationship. No parameters are required.
canvas_medical_related_persons_search
Search RelatedPerson resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 RelatedPerson resources, one page at a time. Returns: resourceType, id, active, patient, relationship. No parameters are required.
get_single_canvas_medical_service_request_by_id
Get a single ServiceRequest from Canvas by its id. Returns the FHIR R4 ServiceRequest resource. Returns: resourceType, id, status, intent, category. Required: id.
list_all_canvas_medical_service_requests
Search ServiceRequest resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 ServiceRequest resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
canvas_medical_service_requests_search
Search ServiceRequest resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 ServiceRequest resources, one page at a time. Returns: resourceType, id, status, intent, category. No parameters are required.
get_single_canvas_medical_specimen_by_id
Get a single Specimen from Canvas by its id. Returns the FHIR R4 Specimen resource. Returns: resourceType, id, type, subject. Required: id.
list_all_canvas_medical_specimens
Search Specimen resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Specimen resources, one page at a time. Returns: resourceType, id, type, subject. No parameters are required.
canvas_medical_specimens_search
Search Specimen resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Specimen resources, one page at a time. Returns: resourceType, id, type, subject. No parameters are required.
get_single_canvas_medical_task_by_id
Get a single Task from Canvas by its id. Returns the FHIR R4 Task resource. Returns: id, status, priority, description, for. Required: id.
list_all_canvas_medical_tasks
Search Task resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Task resources, one page at a time. Returns: id, status, priority, description, for. No parameters are required.
canvas_medical_tasks_search
Search Task resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Task resources, one page at a time. Returns: id, status, priority, description, for. No parameters are required.
create_a_canvas_medical_task
Create a Task in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, description, requester, intent.
update_a_canvas_medical_task_by_id
Replace a Task in Canvas by sending the full FHIR Task resource (PUT). Canvas answers 200 OK with an empty body. Required: id, status, description, requester, intent.
create_a_canvas_medical_coverage_eligibility_request
Create a CoverageEligibilityRequest in Canvas. Canvas answers 201 Created with an empty body and puts the new id in the Location response header. Required: status, purpose, patient, created, insurer, insurance.
list_all_canvas_medical_schedules
Search Schedule resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Schedule resources, one page at a time. Use a returned id as the schedule parameter of the Slot search. Returns: resourceType, id, actor, comment. No parameters are required.
canvas_medical_schedules_search
Search Schedule resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Schedule resources, one page at a time. Use a returned id as the schedule parameter of the Slot search. Returns: resourceType, id, actor, comment. No parameters are required.
list_all_canvas_medical_slots
Search Slot resources in Canvas with FHIR search parameters. Returns the matching FHIR R4 Slot resources, one page at a time. Defaults: duration 20 minutes, start today (UTC), end 7 days after start. Returns: resourceType, schedule, status, start, end. Required: schedule.
canvas_medical_slots_search
Search Slot resources with a form-encoded POST so search values stay out of the URL. Takes the same search parameters as the list method and returns the matching FHIR R4 Slot resources, one page at a time. Defaults: duration 20 minutes, start today (UTC), end 7 days after start. Returns: resourceType, schedule, status, start, end. Required: schedule.
list_all_canvas_medical_capability_statements
Get the FHIR CapabilityStatement that Canvas publishes for its FHIR R4 server. Returns one CapabilityStatement object that lists the supported resource types and interactions. Returns: resourceType, status, fhirVersion, format, rest. No parameters are required.
create_a_canvas_medical_claim_activity_log_item
Add an activity log item (a comment) to a Claim. Send a FHIR Parameters resource with exactly one parameter named comment, whose valueString is the text. The token needs the Claim.add-activity-log-item scope. Canvas does not document the response body. Returns: resourceType, parameter. Required: claim_id, resourceType, parameter.
create_a_canvas_medical_practitioner_reset_password_email
Send a reset password email to a Canvas Practitioner. Send a FHIR Parameters resource with no parameters. The token needs the Practitioner.send-reset-password-email scope. Canvas does not document the response body. Returns: resourceType, parameter. Required: practitioner_id, resourceType.
create_a_canvas_medical_diagnostic_report_lab_report
Create a lab report, its lab tests and values, and a stored PDF in one request. Send a FHIR Parameters resource with one labReport parameter and one labTestCollection parameter per test. The token needs the DiagnosticReport.create-lab-report scope. Canvas answers 201 Created with a Parameters resource that points to the new DiagnosticReport. Lab tests are visible in Canvas but cannot be read back through the FHIR API; only lab values can (Observation). Returns: resourceType, parameter. Required: resourceType, parameter.
create_a_canvas_medical_bulk_export
Start a FHIR Bulk Data export of the electronic health information of all patients. The export runs as a background job and writes NDJSON files; poll the job with the bulk_export_jobs resource. The token needs a system or user read scope such as system/*.read. Returns: the empty kick-off response. No parameters are required.
create_a_canvas_medical_patient_export
Start a FHIR Bulk Data export of the electronic health information of one patient. The export runs as a background job and writes NDJSON files; poll the job with the bulk_export_jobs resource. The token needs a system or user read scope such as system/*.read. Returns: the empty kick-off response. Required: patient_id.
create_a_canvas_medical_group_export
Start a FHIR Bulk Data export of the electronic health information of the patients in one Group. The export runs as a background job and writes NDJSON files; poll the job with the bulk_export_jobs resource. The token needs a system or user read scope such as system/*.read. Returns: the empty kick-off response. Required: group_id.
get_single_canvas_medical_bulk_export_job_by_id
Get the status of a FHIR Bulk Data export job. While the job runs the answer is an in-progress status; when it finishes it lists the output file URLs. Returns: transactionTime, request, requiresAccessToken, output, error. Required: id.
delete_a_canvas_medical_bulk_export_job_by_id
Cancel a FHIR Bulk Data export job. Canvas documents no response body. Returns: nothing on success. Required: id.
Why Truto
Why use Truto’s MCP server for Canvas Medical
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Canvas Medical in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Canvas Medical account
Use Truto’s frontend SDK to connect your customer’s Canvas Medical account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Canvas Medical
Truto’s Proxy API is a 1-to-1 mapping of the Canvas Medical API. You call us, we call Canvas Medical, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Canvas Medical’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Canvas Medical on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to Canvas Medical work through Truto?
Canvas uses OAuth 2.0 client credentials against each customer's Canvas instance (subdomain). Truto handles token exchange, refresh, and secure credential storage per end-user connection, so your product only needs to initiate the connect flow.
Which Canvas FHIR resources are supported?
Truto exposes the Canvas FHIR R4 surface, including Patient, Practitioner, Appointment, Schedule, Slot, Encounter, Condition, Observation, MedicationRequest, MedicationStatement, DiagnosticReport, DocumentReference, Media, Task, Questionnaire, QuestionnaireResponse, Coverage, Claim, PaymentNotice, AllergyIntolerance, Immunization, CarePlan, CareTeam, Communication, Consent, Goal, DetectedIssue, and more — with list, search, get, and (where Canvas allows) create and update operations.
Can I run bulk data exports for analytics or AI training?
Yes. Truto supports Canvas's Bulk Export operations at the system, Group, and Patient level. You can create an export job, poll its status, and delete it when complete — the output is NDJSON suitable for population health, RCM, or model training pipelines.
How fresh is the data — does Truto cache or proxy requests?
Truto proxies calls to Canvas in real time, so reads reflect the current state of the Canvas instance. For high-volume ingestion, use the Bulk Export tools instead of looping over list endpoints.
Can my integration write back to Canvas, or is it read-only?
Writes are fully supported for the resources Canvas permits, including creating Patients, Appointments, Conditions, Observations, DocumentReferences, Tasks, QuestionnaireResponses, Communications, Coverages, Claims, MedicationStatements, Immunizations, and more, plus updates on most of these resources.
How are search and pagination handled across Canvas endpoints?
Each supported resource has a dedicated search tool that accepts FHIR search parameters, and Truto normalizes pagination across list endpoints so you can iterate large result sets without handling Canvas's cursor tokens directly.
Canvas Medical
Get Canvas Medical integrated into your app
Our team understands what it takes to make a Canvas Medical integration successful. A short, crisp 30 minute call with folks who understand the problem.