Healthcare · Beta
eClinicalWorks
API integration
Ship Healthcare features without building the integration. Full eClinicalWorks API access via Proxy and 40+ 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 eClinicalWorks
Common scenarios for SaaS companies building eClinicalWorks integrations for their customers.
Launch an AI pre-visit co-pilot for ambulatory clinics
Offer eClinicalWorks customers an AI assistant that reads tomorrow's schedule and synthesizes patient history into a one-page brief. Truto handles FHIR auth and pagination so you can focus on the summarization logic, not EHR plumbing.
Power chronic care management and population health programs
Help practices identify Medicare CCM-eligible patients by continuously syncing conditions, care plans, and coverage data from eCW. This unlocks net-new revenue for your clinic customers and justifies premium pricing tiers.
Build a patient reactivation CRM on top of EHR data
Trigger SMS and email outreach based on real clinical signals — uncompleted procedures, missed follow-ups, or overdue screenings — pulled directly from eCW. Your SaaS becomes the growth engine for ambulatory practices.
Enable referral and chart extraction workflows
Pull structured problem lists, medications, and C-CDA documents from eCW to power referral platforms, prior auth tools, or AI chart summarization. Truto exposes DocumentReference and Binary endpoints so you can retrieve raw clinical notes without wrestling with FHIR semantics.
Deliver remote patient monitoring with structured EHR writeback context
RPM and device SaaS vendors can pull observations and diagnostic reports from eCW to track vitals and chronic condition trends in context. Give clinicians a longitudinal view that blends in-clinic labs with at-home device data.
What You Can Build
Ship these features with Truto + eClinicalWorks
Concrete product features your team can ship faster by leveraging Truto’s eClinicalWorks integration instead of building from scratch.
Automated pre-visit chart summarization
Pull upcoming encounters, then fan out to conditions, medication requests, allergies, and diagnostic reports for each patient to generate a physician-ready brief.
Chronic condition registry sync
Continuously list conditions and filter by chronic categories, cross-referenced with active care plans and coverage records to flag CCM-eligible patients.
Clinical document and C-CDA ingestion pipeline
Search document references by patient or type, then fetch the raw base64 payload via the Binary endpoint for downstream parsing or AI summarization.
Provider and location directory sync
Mirror the clinic's practitioner roster, practitioner roles, organizations, and locations to route tasks, assign messages, and map schedules in your product.
Longitudinal vitals and labs timeline
Aggregate observations and diagnostic reports per patient to render a time-series view of vitals, A1C trends, lipid panels, and other chronic condition markers.
Procedure-based patient reactivation campaigns
List procedures and encounters to detect patients with ordered-but-uncompleted procedures and no upcoming visits, then trigger drip outreach from your CRM.
SuperAI
eClinicalWorks 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_e_clinical_works_patient_by_id
Get a single Patient from an eClinicalWorks practice by id. Returns the FHIR R4 Patient resource. Returns: resourceType, id, identifier, active, name, telecom, gender, and more. Required: id.
list_all_e_clinical_works_patients
Search Patients in an eClinicalWorks practice. Returns matching FHIR R4 Patient resources. Returns: resourceType, id, identifier, active, name, telecom, gender, and more. No parameters are required.
get_single_e_clinical_works_practitioner_by_id
Get a single Practitioner from an eClinicalWorks practice by id. Returns the FHIR R4 Practitioner resource. Returns: resourceType, id, identifier, active, name, telecom, address, and more. Required: id.
list_all_e_clinical_works_practitioners
Search Practitioners in an eClinicalWorks practice. Returns matching FHIR R4 Practitioner resources. Returns: resourceType, id, identifier, active, name, telecom, address, and more. No parameters are required.
get_single_e_clinical_works_practitioner_role_by_id
Get a single PractitionerRole from an eClinicalWorks practice by id. Returns the FHIR R4 PractitionerRole resource. Returns: resourceType, id, identifier, active, period, practitioner, organization, and more. Required: id.
list_all_e_clinical_works_practitioner_roles
Search PractitionerRoles in an eClinicalWorks practice. Returns matching FHIR R4 PractitionerRole resources. Returns: resourceType, id, identifier, active, period, practitioner, organization, and more. No parameters are required.
get_single_e_clinical_works_organization_by_id
Get a single Organization from an eClinicalWorks practice by id. Returns the FHIR R4 Organization resource. Returns: resourceType, id, identifier, active, type, name, alias, and more. Required: id.
list_all_e_clinical_works_organizations
Search Organizations in an eClinicalWorks practice. Returns matching FHIR R4 Organization resources. Includes EMR, lab, payor and pharmacy organizations. Returns: resourceType, id, identifier, active, type, name, alias, and more. No parameters are required.
get_single_e_clinical_works_location_by_id
Get a single Location from an eClinicalWorks practice by id. Returns the FHIR R4 Location resource. Returns: resourceType, id, identifier, status, name, alias, description, and more. Required: id.
list_all_e_clinical_works_locations
Search Locations in an eClinicalWorks practice. Returns matching FHIR R4 Location resources. Returns: resourceType, id, identifier, status, name, alias, description, and more. No parameters are required.
get_single_e_clinical_works_related_person_by_id
Get a single RelatedPerson from an eClinicalWorks practice by id. Returns the FHIR R4 RelatedPerson resource. Returns: resourceType, id, identifier, active, patient, relationship, name, and more. Required: id.
list_all_e_clinical_works_related_persons
Search RelatedPersons in an eClinicalWorks practice. Returns matching FHIR R4 RelatedPerson resources. Returns: resourceType, id, identifier, active, patient, relationship, name, and more. Required: patient.
get_single_e_clinical_works_allergy_intolerance_by_id
Get a single AllergyIntolerance from an eClinicalWorks practice by id. Returns the FHIR R4 AllergyIntolerance resource. Returns: resourceType, id, identifier, clinicalStatus, verificationStatus, type, category, and more. Required: id.
list_all_e_clinical_works_allergy_intolerances
Search AllergyIntolerances in an eClinicalWorks practice. Returns matching FHIR R4 AllergyIntolerance resources. Returns: resourceType, id, identifier, clinicalStatus, verificationStatus, type, category, and more. Required: patient.
get_single_e_clinical_works_condition_by_id
Get a single Condition from an eClinicalWorks practice by id. Returns the FHIR R4 Condition resource. Returns: resourceType, id, identifier, clinicalStatus, verificationStatus, category, severity, and more. Required: id.
list_all_e_clinical_works_conditions
Search Conditions in an eClinicalWorks practice. Returns matching FHIR R4 Condition resources. Filter by category for problems, encounter diagnoses or health concerns. Returns: resourceType, id, identifier, clinicalStatus, verificationStatus, category, severity, and more. Required: patient.
get_single_e_clinical_works_encounter_by_id
Get a single Encounter from an eClinicalWorks practice by id. Returns the FHIR R4 Encounter resource. Returns: resourceType, id, identifier, status, class, type, serviceType, and more. Required: id.
list_all_e_clinical_works_encounters
Search Encounters in an eClinicalWorks practice. Returns matching FHIR R4 Encounter resources. Returns: resourceType, id, identifier, status, class, type, serviceType, and more. Required: patient.
get_single_e_clinical_works_immunization_by_id
Get a single Immunization from an eClinicalWorks practice by id. Returns the FHIR R4 Immunization resource. Returns: resourceType, id, identifier, status, statusReason, vaccineCode, patient, and more. Required: id.
list_all_e_clinical_works_immunizations
Search Immunizations in an eClinicalWorks practice. Returns matching FHIR R4 Immunization resources. Returns: resourceType, id, identifier, status, statusReason, vaccineCode, patient, and more. Required: patient.
get_single_e_clinical_works_medication_by_id
Get a single Medication from an eClinicalWorks practice by id. Returns the FHIR R4 Medication resource. Returns: resourceType, id, identifier, code, status, form, amount, and more. Medication ids come from the medicationReference of a MedicationRequest or MedicationAdministration. Required: id.
get_single_e_clinical_works_medication_request_by_id
Get a single MedicationRequest from an eClinicalWorks practice by id. Returns the FHIR R4 MedicationRequest resource. Returns: resourceType, id, identifier, status, intent, category, priority, and more. Required: id.
list_all_e_clinical_works_medication_requests
Search MedicationRequests (orders) in an eClinicalWorks practice. Returns matching FHIR R4 MedicationRequest resources. Returns: resourceType, id, identifier, status, intent, category, priority, and more. Required: patient.
get_single_e_clinical_works_medication_administration_by_id
Get a single MedicationAdministration from an eClinicalWorks practice by id. Returns the FHIR R4 MedicationAdministration resource. Returns: resourceType, id, identifier, status, category, medicationCodeableConcept, medicationReference, and more. Required: id.
list_all_e_clinical_works_medication_administrations
Search MedicationAdministrations in an eClinicalWorks practice. Returns matching FHIR R4 MedicationAdministration resources. Returns: resourceType, id, identifier, status, category, medicationCodeableConcept, medicationReference, and more. Required: patient.
get_single_e_clinical_works_observation_by_id
Get a single Observation from an eClinicalWorks practice by id. Returns the FHIR R4 Observation resource. Returns: resourceType, id, identifier, basedOn, status, category, code, and more. Required: id.
list_all_e_clinical_works_observations
Search Observations in an eClinicalWorks practice. Returns matching FHIR R4 Observation resources. Filter by category for vitals, labs or social history. Returns: resourceType, id, identifier, basedOn, status, category, code, and more. Required: patient.
get_single_e_clinical_works_procedure_by_id
Get a single Procedure from an eClinicalWorks practice by id. Returns the FHIR R4 Procedure resource. Returns: resourceType, id, identifier, basedOn, status, statusReason, category, and more. Required: id.
list_all_e_clinical_works_procedures
Search Procedures (orders) in an eClinicalWorks practice. Returns matching FHIR R4 Procedure resources. Returns: resourceType, id, identifier, basedOn, status, statusReason, category, and more. Required: patient.
get_single_e_clinical_works_diagnostic_report_by_id
Get a single DiagnosticReport from an eClinicalWorks practice by id. Returns the FHIR R4 DiagnosticReport resource. Returns: resourceType, id, identifier, basedOn, status, category, code, and more. Required: id.
list_all_e_clinical_works_diagnostic_reports
Search DiagnosticReports in an eClinicalWorks practice. Returns matching FHIR R4 DiagnosticReport resources. Includes lab results and notes. Returns: resourceType, id, identifier, basedOn, status, category, code, and more. Required: patient.
get_single_e_clinical_works_document_reference_by_id
Get a single DocumentReference from an eClinicalWorks practice by id. Returns the FHIR R4 DocumentReference resource. Returns: resourceType, id, identifier, status, docStatus, type, category, and more. Required: id.
list_all_e_clinical_works_document_references
Search DocumentReferences in an eClinicalWorks practice. Returns matching FHIR R4 DocumentReference resources. Includes clinical notes and C-CDAs. Returns: resourceType, id, identifier, status, docStatus, type, category, and more. Required: patient.
get_single_e_clinical_works_binary_by_id
Get a single Binary from an eClinicalWorks practice by id. Returns the FHIR R4 Binary resource. Returns: resourceType, id, contentType, securityContext, data, and more. Binary carries a C-CDA clinical document as base64 content; the id comes from a DocumentReference content attachment. Required: id.
get_single_e_clinical_works_care_plan_by_id
Get a single CarePlan from an eClinicalWorks practice by id. Returns the FHIR R4 CarePlan resource. Returns: resourceType, id, identifier, status, intent, category, title, and more. Required: id.
list_all_e_clinical_works_care_plans
Search CarePlans in an eClinicalWorks practice. Returns matching FHIR R4 CarePlan resources. Returns: resourceType, id, identifier, status, intent, category, title, and more. Required: patient.
get_single_e_clinical_works_care_team_by_id
Get a single CareTeam from an eClinicalWorks practice by id. Returns the FHIR R4 CareTeam resource. Returns: resourceType, id, identifier, status, category, name, subject, and more. Required: id.
list_all_e_clinical_works_care_teams
Search CareTeams in an eClinicalWorks practice. Returns matching FHIR R4 CareTeam resources. Returns: resourceType, id, identifier, status, category, name, subject, and more. Required: patient.
get_single_e_clinical_works_goal_by_id
Get a single Goal from an eClinicalWorks practice by id. Returns the FHIR R4 Goal resource. Returns: resourceType, id, identifier, lifecycleStatus, achievementStatus, category, description, and more. Required: id.
list_all_e_clinical_works_goals
Search Goals in an eClinicalWorks practice. Returns matching FHIR R4 Goal resources. Returns: resourceType, id, identifier, lifecycleStatus, achievementStatus, category, description, and more. Required: patient.
get_single_e_clinical_works_device_by_id
Get a single Device from an eClinicalWorks practice by id. Returns the FHIR R4 Device resource. Returns: resourceType, id, identifier, udiCarrier, status, type, deviceName, and more. Required: id.
list_all_e_clinical_works_devices
Search Devices (implants) in an eClinicalWorks practice. Returns matching FHIR R4 Device resources. Returns: resourceType, id, identifier, udiCarrier, status, type, deviceName, and more. Required: patient.
get_single_e_clinical_works_coverage_by_id
Get a single Coverage from an eClinicalWorks practice by id. Returns the FHIR R4 Coverage resource. Returns: resourceType, id, identifier, status, type, policyHolder, subscriber, and more. Required: id.
list_all_e_clinical_works_coverages
Search Coverages in an eClinicalWorks practice. Returns matching FHIR R4 Coverage resources. Returns: resourceType, id, identifier, status, type, policyHolder, subscriber, and more. Required: patient.
get_single_e_clinical_works_provenance_by_id
Get a single Provenance from an eClinicalWorks practice by id. Returns the FHIR R4 Provenance resource. Returns: resourceType, id, target, occurredDateTime, occurredPeriod, recorded, policy, and more. Provenance ids come from Provenance references on other resources. Required: id.
Why Truto
Why use Truto’s MCP server for eClinicalWorks
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 eClinicalWorks in under an hour. No boilerplate, no maintenance burden.
Link your customer’s eClinicalWorks account
Use Truto’s frontend SDK to connect your customer’s eClinicalWorks 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 eClinicalWorks
Truto’s Proxy API is a 1-to-1 mapping of the eClinicalWorks API. You call us, we call eClinicalWorks, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate eClinicalWorks’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about eClinicalWorks on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What eClinicalWorks API does Truto connect to?
Truto connects to the eClinicalWorks FHIR R4 API, which is the standard interface eCW exposes for third-party clinical data access. All available resources — Patient, Encounter, Condition, Observation, DocumentReference, Binary, and more — follow FHIR R4 semantics.
How does authentication work for end users connecting their eCW account?
eClinicalWorks uses SMART-on-FHIR OAuth 2.0 for authorization. Truto handles the full OAuth handshake, token refresh, and tenant-specific endpoint routing, so your end users just complete a standard consent flow and your product receives a connected account.
What clinical data can I read from eClinicalWorks today?
Truto exposes read and list access to Patients, Practitioners, PractitionerRoles, Organizations, Locations, RelatedPersons, AllergyIntolerances, Conditions, Encounters, Immunizations, Medications, MedicationRequests, MedicationAdministrations, Observations, Procedures, DiagnosticReports, DocumentReferences, Binaries, CarePlans, CareTeams, Goals, Devices, Coverages, and Provenance records.
Can I write data back into eClinicalWorks?
The current eCW integration is read-oriented, which reflects what eClinicalWorks' FHIR API primarily supports for third-party apps. If you need specific write operations for your workflow, reach out and Truto can scope writeback endpoints on request.
How do I retrieve the actual content of a clinical note or C-CDA document?
List document references to find the note you need, then call the Binary endpoint with the referenced ID to retrieve the base64-encoded payload. This is the standard FHIR pattern for extracting clinical note content and C-CDA bundles from eCW.
How fresh is the data I get back from eClinicalWorks?
Truto reads directly from the eCW FHIR API in real time, so every list or get call returns the latest state at the moment of the request. For continuous sync use cases, you can schedule polling jobs on the resources you care about using Truto's sync primitives.
From the Blog
eClinicalWorks integration guides
Deep dives, architecture guides, and practical tutorials for building eClinicalWorks integrations.
eClinicalWorks
Get eClinicalWorks integrated into your app
Our team understands what it takes to make a eClinicalWorks integration successful. A short, crisp 30 minute call with folks who understand the problem.