Canvas Medical is an API-first, programmable EHR — a “decoupled EHR” whose entire clinical record is reachable through a FHIR R4 API and extensible through a developer SDK and plugins. Where a legacy EHR is a closed application you log into, Canvas is a clinical-data platform a team can either use through its full point-of-care interface or build custom experiences on top of, while still leaning on Canvas’s compliance and clinical foundations. That posture is exactly why a tech-enabled, value-based-care operator chooses it: the data is meant to flow in and out as a first-class capability.
Spelling note: the vendor is Canvas Medical — one s, “Canvas,” not “Canvass.”
| Founded | 2015 |
|---|---|
| Founder | Andrew Hines (Founder / CEO·CTO) — built Canvas after watching his wife, a family nurse practitioner, struggle with bad EHR software |
| President & COO | Adam Farren |
| Headquarters | San Francisco, California |
| Category | API-first / “programmable” / “decoupled” EHR for tech-enabled and value-based care |
| Developer surface | FHIR R4 API (“Fumage”), Workflow SDK, plugins — first public developer tools 2021, expanded 2024 |
Canvas’s defining architectural choice is the FHIR API as facade. The API (“Fumage”) sits in front of each customer’s EHR server container and translates between the FHIR R4 representation and Canvas’s internal data models. Everything a team reads or writes — clinically, financially, operationally — passes through one unified data architecture with built-in validation.
CCDA, Letter, and Note — for document-shaped exchange on top of the resource-level FHIR API.This is the central question for FHG, and Canvas answers it through the EHI Export capability, which implements the FHIR Bulk Data Access pattern. The export is standard FHIR R4 resources in newline-delimited JSON (NDJSON) — so the raw payload is the actual clinical record, resource by resource, not a flattened report.
In admin settings, open Fhir bulk data exports → ADD FHIR BULK DATA EXPORT, pick the OAuth application (created during implementation), leave Export type as Patient, search the patient, and Start Export. Canvas generates per-resource output-file links. The capability is permission-gated — a user without the permission has their internal admins coordinate with Canvas support.
GET https://fumage-<instance-name>.canvasmedical.com/Patient/<id>/$export
<instance-name> is the customer’s Canvas instance; $export is the standard FHIR bulk-data operation.
For a group of patients or the entire instance, the requester contacts Canvas support with: instance name (URL), username, role, the patient group (or “all patients”), and the purpose. Canvas initiates the bulk export; output lands back in the same export table. Population exports can take significant time depending on instance data volume.
The EHI export scopes to the patient resource plus every resource associated with that patient — roughly 28 FHIR R4 resource types:
AllergyIntolerance · Appointment · CarePlan · CareTeam · Claim · Communication · Condition · Consent · Coverage · CoverageEligibilityResponse · Device · DiagnosticReport · DocumentReference · Encounter · Goal · Immunization · Media · MedicationDispense · MedicationRequest · MedicationStatement · Observation · Patient · Procedure · Provenance · QuestionnaireResponse · RelatedPerson · ServiceRequest · Specimen · Task
Michael’s steer: “We need to navigate smartly to yield richer Canvas data.” Canvas exposes the same underlying record at three very different levels of fidelity. Knowing which tier you’re pulling is the whole game.
| Tier 1 — Interop floor | FHIR R4 EHI Bulk Export ($export → NDJSON). ~28 standardized FHIR resources, lossy-but-portable. Thin. |
|---|---|
| Tier 2 — Native record | SDK Data Module over the Deep Unified Architecture. ~60 native models — the complete clinical + operational + financial record, ontology-linked. Rich. |
| Tier 3 — Linked semantics | Deep Unified Architecture + Custom Data + ontology graph. Cross-domain, real-time navigability (condition → lab → procedure → provider → bill), HCC/RAF linkage. Richest. |
$export.The patient record is one normalized, versioned, referentially-intact model — with standard ontologies linked natively into the data, not bolted on after: LOINC (labs), ICD-10 (diagnoses), CPT (procedures), SNOMED-CT (clinical terminology), HCC / RAF (risk adjustment). A single query can move across conditions, labs, procedures, encounters, clinicians, and billing — native and real-time, where a legacy EHR needs an overnight report against stitched-together tables. This is precisely FHG’s wheelhouse — the ontology linkage is health-care-data domain knowledge.
| Tier 1 — FHIR EHI export | Tier 2 — SDK Data Module | |
| Models / resources | ~28 | ~60 |
| Financial / RCM detail | ✗ (Claim only, thin) | ✓ BillingLineItem, ChargeDescriptionMaster, PayorSpecificCharge, Posting, EligibilitySummary |
| ADT / external events | ✗ | ✓ ExternalEvent |
| Live protocol / care-gap state | ✗ | ✓ ProtocolCurrent / ProtocolOverride |
| Command-level documentation | ✗ | ✓ Command |
| HCC/RAF linkage | partial | ✓ native |
| Access mechanism | one $export call | a plugin querying the Data Module |
The entire financial/RCM layer, the ADT feed, live care-gap state, reasons-for-visit, assessments, the inbound-document queue, and Command-level documentation (the native building blocks of nearly every Canvas workflow, captured as structured fields rather than free text) are Tier-2-only. For a value-based-care operator, that’s most of the value.
The Data Module is read-only at plugin runtime, designed for in-instance compute, not a one-click bulk dump. To turn Tier-2 richness into an extract, someone builds a Canvas SDK plugin that queries the Data Module and emits the data on a schedule. Hence the division of labor:
Canvas Medical and Zus have a strategic product partnership, and Zus ships a pre-built “Zus for Canvas” EHR integration. In a stack that runs both, Canvas is the system of record the clinicians work in, and Zus is the aggregation layer that pulls outside history (other EHRs, pharmacy, ADT, labs) around the patient. Complementary, not competing. See the Zus overview →
Captured 2026-06-09. Re-validated quarterly against docs.canvasmedical.com. Cross-link target: the FHG Academy data-source track.