> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Elation Health

The Elation Health connector lets your AI agent act in each user's Elation Health account. Each user signs in to Elation Health once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 52 tools.

**Authentication:** SMART On FHIR
**Categories:** Healthcare
**Tools:** 52: 52 read, 0 write, 0 destructive
**Users sign in with:** SMART on FHIR
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=ELATION)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Elation Health connection

   In **AgentKit > Connections**, create an Elation Health connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

   **Console steps with screenshots:**

   Elation Health connections use SMART on FHIR and act as the signed-in clinician, through Elation's FHIR R4 API. The tools read data only. The connection already has Elation's production authorization and token endpoints, which are the same for every practice; you add the audience (`aud`), the FHIR server domain, and the client ID and secret of your Elation app.

   1. ### Create the connection and copy the redirect URI

      In the [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**, find **Elation** and click **Create**. Copy the **Redirect URI**.

   2. ### Register an app with Elation

      Register a confidential app with Elation for clinician sign-in, and note its client ID and client secret:

      - Add the redirect URI you copied.
      - Request refresh tokens (`offline_access`).

   3. ### Enter the values on the connection

      Back on the Elation connection, enter:

      - **Client ID** and **Client Secret**: from your Elation app.
      - **Audience (aud)**: `https://fhir.elationemr.com/fhir`
      - **FHIR Server Domain**: `fhir.elationemr.com/fhir`

      Select `openid` (Elation requires it), `fhirUser` and `offline_access`, plus `user/*.read` or the resource scopes your agent needs, such as `user/Patient.read`. Elation uses SMART v1 scopes. Click **Save**.

      To test in Elation's sandbox, replace the production values with these:

      | Field                  | Sandbox value                                         |
      | ---------------------- | ----------------------------------------------------- |
      | Authorization Endpoint | `https://sandbox.fhir.elationemr.com/smart/authorize` |
      | Token Endpoint         | `https://sandbox.fhir.elationemr.com/smart/token`     |
      | Audience (aud)         | `https://sandbox.fhir.elationemr.com/fhir`            |
      | FHIR Server Domain     | `sandbox.fhir.elationemr.com/fhir`                    |

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'elation_allergy_intolerance_read',
  toolInput: {
    allergy_intolerance_id: '<allergy_intolerance_id>',
  },
  connector: 'elation',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="elation_allergy_intolerance_read",
    tool_input={
        "allergy_intolerance_id": "<allergy_intolerance_id>",
    },
    connection_name="elation",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `elation_allergy_intolerance_read`

Get Allergy Or Intolerance · Read-only

Get one AllergyIntolerance resource from Elation by its ID.
Returns the AllergyIntolerance with code (RxNorm or SNOMED CT substance), clinicalStatus, verificationStatus, category, criticality, reaction (manifestation and severity), onsetDateTime, recordedDate and patient reference.
Use this to open one allergy by ID. Use elation_allergy_intolerance_search to list a patient's allergies.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `allergy_intolerance_id` (`string`, required): Elation logical ID of the AllergyIntolerance resource (the id element, without the 'AllergyIntolerance/' prefix). Example: 12345.

Example input: `{"allergy_intolerance_id":"<allergy_intolerance_id>"}`

### `elation_allergy_intolerance_search`

Search Allergies And Intolerances · Read-only

Search a patient's allergies and intolerances in Elation, optionally filtered by clinical status.
Returns a FHIR searchset Bundle whose entry array holds matching AllergyIntolerance resources (code, clinicalStatus, verificationStatus, reaction and recordedDate) and a 'next' link when more pages exist.
Use this to review a patient's allergy list. Use elation_allergy_intolerance_read for one allergy by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose allergies to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `clinical_status` (`string`, optional): Filter by clinical status, as a FHIR token: code or system|code. Valid codes: active, inactive, resolved (system http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical). Example: active.

Example input: `{"patient":"<patient>"}`

### `elation_binary_read`

Get Binary Resource · Read-only

Get one Binary resource from Elation by its ID.
Returns the Binary with contentType and base64-encoded data (for example a note or report document).
Use this to fetch the content behind a DocumentReference or DiagnosticReport attachment url that points to Binary/<id>.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `binary_id` (`string`, required): Elation logical ID of the Binary resource (the id element, without the 'Binary/' prefix). Example: 12345.

Example input: `{"binary_id":"<binary_id>"}`

### `elation_care_plan_read`

Get Care Plan · Read-only

Get one CarePlan resource from Elation by its ID.
Returns the CarePlan with category (assess-plan), status, intent, text narrative (the assessment and plan), period and patient reference.
Use this to open one care plan by ID. Use elation_care_plan_search to list a patient's care plans.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `care_plan_id` (`string`, required): Elation logical ID of the CarePlan resource (the id element, without the 'CarePlan/' prefix). Example: 12345.

Example input: `{"care_plan_id":"<care_plan_id>"}`

### `elation_care_plan_search`

Search Care Plans · Read-only

Search a patient's care plans (assessment and plan of treatment) in Elation by date or status.
Returns a FHIR searchset Bundle whose entry array holds matching CarePlan resources (category, status, intent, text narrative and period) and a 'next' link when more pages exist.
Use this to read the assessment and plan of treatment. Use elation_goal_search for the patient's goals. Use elation_care_plan_read for one care plan by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `category` (`string`, required): Care plan category. Every search Elation documents sends the US Core assess-plan category; use http://hl7.org/fhir/us/core/CodeSystem/careplan-category|assess-plan.
- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose care plans to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `date` (`string`, optional): Filter by care plan period. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: draft, active, on-hold, revoked, completed, entered-in-error, unknown. Example: active.

Example input: `{"category":"<category>","patient":"<patient>"}`

### `elation_care_team_read`

Get Care Team · Read-only

Get one CareTeam resource from Elation by its ID.
Returns the CareTeam with status, name, participant (role and member references to Practitioner, PractitionerRole, RelatedPerson or Patient) and patient reference.
Use this to open one care team by ID. Use elation_care_team_search to list a patient's care teams.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `care_team_id` (`string`, required): Elation logical ID of the CareTeam resource (the id element, without the 'CareTeam/' prefix). Example: 12345.

Example input: `{"care_team_id":"<care_team_id>"}`

### `elation_care_team_search`

Search Care Teams · Read-only

Search a patient's care teams in Elation by status or participant role.
Returns a FHIR searchset Bundle whose entry array holds matching CareTeam resources (status, name and participants with their roles) and a 'next' link when more pages exist.
Use this to see who is involved in a patient's care. Use elation_practitioner_read to resolve a participant. Use elation_care_team_read for one care team by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose care teams to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `role` (`string`, optional): Filter by participant role, as a FHIR token: code or system|code. Example: http://snomed.info/sct|446050000.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: proposed, active, suspended, inactive, entered-in-error. Example: active.

Example input: `{"patient":"<patient>"}`

### `elation_condition_read`

Get Condition · Read-only

Get one Condition resource from Elation by its ID.
Returns the Condition with code (SNOMED CT or ICD-10), category (problem-list-item, health-concern or encounter-diagnosis), clinicalStatus, verificationStatus, onset and abatement dates, recordedDate, encounter and patient references.
Use this to open one problem or diagnosis by ID. Use elation_condition_search to list a patient's problems, health concerns or encounter diagnoses.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `condition_id` (`string`, required): Elation logical ID of the Condition resource (the id element, without the 'Condition/' prefix). Example: 12345.

Example input: `{"condition_id":"<condition_id>"}`

### `elation_condition_search`

Search Conditions · Read-only

Search a patient's conditions in Elation: problem list items, health concerns and encounter diagnoses, filtered by category, status, code, encounter or date.
Returns a FHIR searchset Bundle whose entry array holds matching Condition resources (code, category, clinicalStatus, onsetDateTime, recordedDate and encounter) and a 'next' link when more pages exist.
Use category problem-list-item for the problem list, health-concern for health concerns, or encounter-diagnosis with an encounter ID for one visit's diagnoses. Use elation_condition_read for one condition by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose conditions to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `abatement_date` (`string`, optional): Filter by abatement (resolution) date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `asserted_date` (`string`, optional): Filter by asserted date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `category` (`string`, optional): Filter by condition category, as a FHIR token: code or system|code. Valid codes: problem-list-item, health-concern, encounter-diagnosis. Example: problem-list-item.
- `clinical_status` (`string`, optional): Filter by clinical status, as a FHIR token: code or system|code. Valid codes: active, recurrence, relapse, inactive, remission, resolved (system http://terminology.hl7.org/CodeSystem/condition-clinical). Separate several with commas. Example: active.
- `code` (`string`, optional): Filter by condition code (SNOMED CT or ICD-10-CM), as a FHIR token: code or system|code. Example: http://snomed.info/sct|44054006.
- `encounter` (`string`, optional): Return only diagnoses recorded for this Elation encounter ID. Elation documents it combined with category encounter-diagnosis. Example: 67890.
- `onset_date` (`string`, optional): Filter by onset date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `recorded_date` (`string`, optional): Filter by date the condition was recorded. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.

Example input: `{"patient":"<patient>"}`

### `elation_coverage_read`

Get Coverage · Read-only

Get one Coverage resource from Elation by its ID.
Returns the Coverage with status, type, subscriberId, relationship, period, payor reference and class (group and plan).
Use this to open one insurance coverage by ID. Use elation_coverage_search to list a patient's coverage.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `coverage_id` (`string`, required): Elation logical ID of the Coverage resource (the id element, without the 'Coverage/' prefix). Example: 12345.

Example input: `{"coverage_id":"<coverage_id>"}`

### `elation_coverage_search`

List Coverage · Read-only

List a patient's insurance coverage in Elation.
Returns a FHIR searchset Bundle whose entry array holds matching Coverage resources (status, type, subscriberId, relationship, period, payor and class) and a 'next' link when more pages exist.
Use this to check a patient's insurance. Use elation_organization_read to resolve the payor. Use elation_coverage_read for one coverage by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose insurance coverage to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.

Example input: `{"patient":"<patient>"}`

### `elation_device_read`

Get Device · Read-only

Get one Device resource from Elation by its ID.
Returns the Device with udiCarrier, deviceName, type, status, expirationDate, lotNumber and patient reference.
Use this to open one implantable device by ID. Use elation_device_search to list a patient's implantable devices.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `device_id` (`string`, required): Elation logical ID of the Device resource (the id element, without the 'Device/' prefix). Example: 12345.

Example input: `{"device_id":"<device_id>"}`

### `elation_device_search`

Search Devices · Read-only

Search a patient's implantable devices in Elation by type or status.
Returns a FHIR searchset Bundle whose entry array holds matching Device resources (udiCarrier, type, status, deviceName and expirationDate) and a 'next' link when more pages exist.
Use this to review implanted devices and their UDIs. Use elation_device_read for one device by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose devices to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: active, inactive, entered-in-error, unknown. Example: active.
- `type` (`string`, optional): Filter by device type, as a FHIR token: code or system|code. Example: http://snomed.info/sct|468063009.

Example input: `{"patient":"<patient>"}`

### `elation_diagnostic_report_read`

Get Diagnostic Report · Read-only

Get one DiagnosticReport resource from Elation by its ID.
Returns the DiagnosticReport with code (LOINC), category (for example LAB), status, effectiveDateTime, issued, result references to Observations, presentedForm and patient reference.
Use this to open one lab or imaging report by ID. Use elation_diagnostic_report_search to list a patient's reports.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `diagnostic_report_id` (`string`, required): Elation logical ID of the DiagnosticReport resource (the id element, without the 'DiagnosticReport/' prefix). Example: 12345.

Example input: `{"diagnostic_report_id":"<diagnostic_report_id>"}`

### `elation_diagnostic_report_search`

Search Diagnostic Reports · Read-only

Search a patient's diagnostic reports in Elation (lab and imaging reports) by category, code, date or status.
Returns a FHIR searchset Bundle whose entry array holds matching DiagnosticReport resources (code, category, status, effectiveDateTime, issued and result references) and a 'next' link when more pages exist.
Use this for whole reports. Use elation_observation_search for individual result values. Use elation_diagnostic_report_read for one report by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose diagnostic reports to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `category` (`string`, optional): Filter by report category, as a FHIR token: code or system|code. Example: http://terminology.hl7.org/CodeSystem/v2-0074|LAB.
- `code` (`string`, optional): Filter by report code (LOINC). Separate several with commas, as a FHIR token: code or system|code. Example: http://loinc.org|58410-2.
- `date` (`string`, optional): Filter by report effective date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: registered, partial, preliminary, final, amended, corrected, appended, cancelled, entered-in-error, unknown. Example: final.

Example input: `{"patient":"<patient>"}`

### `elation_document_reference_read`

Get Document Reference · Read-only

Get one DocumentReference resource from Elation by its ID.
Returns the DocumentReference with type (LOINC note type), category, status, date, author, context (encounter and period) and content attachments (contentType and url or base64 data).
Use this to open one clinical note or document by ID. Use elation_document_reference_search to list a patient's notes. Use elation_binary_read to fetch content behind an attachment url that points to a Binary resource.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `document_reference_id` (`string`, required): Elation logical ID of the DocumentReference resource (the id element, without the 'DocumentReference/' prefix). Example: 12345.

Example input: `{"document_reference_id":"<document_reference_id>"}`

### `elation_document_reference_search`

Search Document References · Read-only

Search a patient's clinical notes and documents in Elation by category, type, date, period or status.
Returns a FHIR searchset Bundle whose entry array holds matching DocumentReference resources (type, category, date, author, status and content attachments) and a 'next' link when more pages exist.
Use category clinical-note for clinical notes. Use elation_diagnostic_report_search for lab and imaging reports. Use elation_document_reference_read for one document by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose documents to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.
- `category` (`string`, optional): Filter by document category, as a FHIR token: code or system|code. Elation documents clinical-note (system http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category). Example: clinical-note.
- `date` (`string`, optional): Filter by date the document was created. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `period` (`string`, optional): Filter by time of service covered by the document. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: current, superseded, entered-in-error. Example: current.
- `type` (`string`, optional): Filter by document type (LOINC note type), as a FHIR token: code or system|code. Example: http://loinc.org|11506-3.

Example input: `{"patient":"<patient>"}`

### `elation_encounter_read`

Get Encounter · Read-only

Get one Encounter resource from Elation by its ID.
Returns the Encounter with status, class, type, period, participant (practitioners), location, reasonCode, serviceProvider and patient reference.
Use this to open one visit by ID. Use elation_encounter_search to list a patient's visits.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `encounter_id` (`string`, required): Elation logical ID of the Encounter resource (the id element, without the 'Encounter/' prefix). Example: 12345.

Example input: `{"encounter_id":"<encounter_id>"}`

### `elation_encounter_search`

Search Encounters · Read-only

Search Elation encounters (visits) for a patient by date, class, type, status or location, or look one up by identifier.
Returns a FHIR searchset Bundle whose entry array holds matching Encounter resources (status, class, type, period, participant and location) and a 'next' link when more pages exist.
Use this to list a patient's visits. Pass an encounter ID to elation_condition_search (category encounter-diagnosis) or elation_medication_request_search to see what happened at a visit. Use elation_encounter_read for one encounter by ID.
Requires an Elation patient ID (run elation_patient_search first) unless you search by Identifier or Resource ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.
- `class` (`string`, optional): Filter by encounter class, as a FHIR token: code or system|code. Codes come from http://terminology.hl7.org/CodeSystem/v3-ActCode, e.g. AMB (ambulatory), VR (virtual). Example: AMB.
- `date` (`string`, optional): Filter by encounter date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `identifier` (`string`, optional): Filter by an encounter identifier, as a FHIR token: code or system|code. Example: 67890.
- `location` (`string`, optional): Return only encounters at this Elation Location ID. Example: 2468.
- `patient` (`string`, optional): Elation patient ID (the Patient resource id) whose encounters to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: planned, arrived, triaged, in-progress, onleave, finished, cancelled, entered-in-error, unknown. Example: finished.
- `type` (`string`, optional): Filter by encounter type, as a FHIR token: code or system|code. Example: http://snomed.info/sct|185349003.

Example input: `{}`

### `elation_goal_read`

Get Goal · Read-only

Get one Goal resource from Elation by its ID.
Returns the Goal with lifecycleStatus, achievementStatus, description, target (measure, detail and due date), startDate and patient reference.
Use this to open one goal by ID. Use elation_goal_search to list a patient's goals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `goal_id` (`string`, required): Elation logical ID of the Goal resource (the id element, without the 'Goal/' prefix). Example: 12345.

Example input: `{"goal_id":"<goal_id>"}`

### `elation_goal_search`

Search Goals · Read-only

Search a patient's goals in Elation by lifecycle status, target date or description.
Returns a FHIR searchset Bundle whose entry array holds matching Goal resources (description, lifecycleStatus, target and startDate) and a 'next' link when more pages exist.
Use this to review care goals. Use elation_care_plan_search for the assessment and plan. Use elation_goal_read for one goal by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose goals to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `description` (`string`, optional): Filter by goal description code, as a FHIR token: code or system|code. Example: http://snomed.info/sct|289169006.
- `lifecycle_status` (`string`, optional): Filter by lifecycle status. Valid values: proposed, planned, accepted, active, on-hold, completed, cancelled, entered-in-error, rejected. Example: active.
- `target_date` (`string`, optional): Filter by goal target date. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.

Example input: `{"patient":"<patient>"}`

### `elation_immunization_read`

Get Immunization · Read-only

Get one Immunization resource from Elation by its ID.
Returns the Immunization with vaccineCode (CVX), status, occurrenceDateTime, lotNumber, site, route, performer and patient reference.
Use this to open one immunization by ID. Use elation_immunization_search to list a patient's immunizations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `immunization_id` (`string`, required): Elation logical ID of the Immunization resource (the id element, without the 'Immunization/' prefix). Example: 12345.

Example input: `{"immunization_id":"<immunization_id>"}`

### `elation_immunization_search`

Search Immunizations · Read-only

Search a patient's immunizations in Elation by date or status.
Returns a FHIR searchset Bundle whose entry array holds matching Immunization resources (vaccineCode, status, occurrenceDateTime and lotNumber) and a 'next' link when more pages exist.
Use this to review a patient's vaccine history. Use elation_immunization_read for one immunization by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose immunizations to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `date` (`string`, optional): Filter by date the vaccine was given. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: completed, entered-in-error, not-done. Example: completed.

Example input: `{"patient":"<patient>"}`

### `elation_location_read`

Get Location · Read-only

Get one Location resource from Elation by its ID.
Returns the Location with name, status, address, telecom, type and managingOrganization reference.
Use this to resolve a location reference on an encounter. Use elation_location_search to find locations by name or address.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `location_id` (`string`, required): Elation logical ID of the Location resource (the id element, without the 'Location/' prefix). Example: 12345.

Example input: `{"location_id":"<location_id>"}`

### `elation_location_search`

Search Locations · Read-only

Search Elation locations (practice sites and service locations) by name, address, city, state or postal code.
Returns a FHIR searchset Bundle whose entry array holds matching Location resources (name, status, address, telecom and managingOrganization) and a 'next' link when more pages exist.
Use this to find a practice site. Pass its ID to elation_encounter_search to list visits there. Use elation_location_read when you already have the ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `address` (`string`, optional): Filter by any part of the location's address. Matches values that start with the text, case-insensitive. Example: Arbor.
- `address_city` (`string`, optional): Filter by city. Matches values that start with the text, case-insensitive. Example: Ann Arbor.
- `address_postalcode` (`string`, optional): Filter by postal code. Matches values that start with the text, case-insensitive. Example: 48104.
- `address_state` (`string`, optional): Filter by state (two-letter code). Matches values that start with the text, case-insensitive. Example: MI.
- `name` (`string`, optional): Filter by location name. Matches values that start with the text, case-insensitive. Example: Health.

Example input: `{}`

### `elation_medication_dispense_read`

Get Medication Dispense · Read-only

Get one MedicationDispense resource from Elation by its ID.
Returns the MedicationDispense with status, medication, quantity, daysSupply, whenHandedOver, dosageInstruction and authorizingPrescription reference.
Use this to open one pharmacy fill by ID. Use elation_medication_dispense_search to list a patient's fills.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `medication_dispense_id` (`string`, required): Elation logical ID of the MedicationDispense resource (the id element, without the 'MedicationDispense/' prefix). Example: 12345.

Example input: `{"medication_dispense_id":"<medication_dispense_id>"}`

### `elation_medication_dispense_search`

Search Medication Dispenses · Read-only

Search a patient's medication dispenses (pharmacy fills) in Elation by status or type.
Returns a FHIR searchset Bundle whose entry array holds matching MedicationDispense resources (medication, status, quantity, daysSupply and whenHandedOver) and a 'next' link when more pages exist.
Use this to check whether prescriptions were filled. Use elation_medication_request_search for what was prescribed. Use elation_medication_dispense_read for one dispense by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose medication dispenses to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: preparation, in-progress, cancelled, on-hold, completed, entered-in-error, stopped, declined, unknown. Example: completed.
- `type` (`string`, optional): Filter by dispense type, as a FHIR token: code or system|code. Example: http://terminology.hl7.org/CodeSystem/v3-ActCode|FF.

Example input: `{"patient":"<patient>"}`

### `elation_medication_read`

Get Medication · Read-only

Get one Medication resource from Elation by its ID.
Returns the Medication with code (RxNorm), form, ingredient and status.
Use this to resolve the medicationReference on a MedicationRequest or MedicationDispense into drug details.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `medication_id` (`string`, required): Elation logical ID of the Medication resource (the id element, without the 'Medication/' prefix). Example: 12345.

Example input: `{"medication_id":"<medication_id>"}`

### `elation_medication_request_read`

Get Medication Request · Read-only

Get one MedicationRequest resource from Elation by its ID.
Returns the MedicationRequest with status, intent, medicationCodeableConcept or medicationReference, dosageInstruction, dispenseRequest, authoredOn, requester and patient reference.
Use this to open one prescription or medication order by ID. Use elation_medication_request_search to list a patient's medications.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `medication_request_id` (`string`, required): Elation logical ID of the MedicationRequest resource (the id element, without the 'MedicationRequest/' prefix). Example: 12345.

Example input: `{"medication_request_id":"<medication_request_id>"}`

### `elation_medication_request_search`

Search Medication Requests · Read-only

Search a patient's medication requests (prescriptions and medication list entries) in Elation by intent, status, date or encounter.
Returns a FHIR searchset Bundle whose entry array holds matching MedicationRequest resources (medication, status, intent, dosageInstruction, authoredOn and requester) and a 'next' link when more pages exist.
Use this to review a patient's current or past medications. Use elation_medication_read to resolve a medicationReference. Use elation_medication_dispense_search for pharmacy fills.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `intent` (`string`, required): Request intent. Every search Elation documents sends intent, normally order,plan to get both orders and medication-list entries. Valid values: proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option. Example: order,plan.
- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose medication requests to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `authoredon` (`string`, optional): Filter by date the request was written. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `encounter` (`string`, optional): Return only requests written during this Elation encounter ID. Example: 67890.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: active, on-hold, cancelled, completed, entered-in-error, stopped, draft, unknown. Example: active.

Example input: `{"intent":"<intent>","patient":"<patient>"}`

### `elation_next_page`

Get Next Page of Search Results · Read-only

Get the next page of results from an Elation search tool by following the 'next' link in its result Bundle.
Returns a FHIR searchset Bundle like the original search; when it has no 'next' link, it is the last page.
Use this after any elation_*_search tool when its result has a 'next' link.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `next_page_path` (`string`, required): The part of the search result's 'next' link url that comes after /fhir/, starting with the resource type and keeping the whole query string exactly as returned; no leading slash. Example: for the next link https://fhir.elationemr.com/fhir/Observation?patient=12345&_count=20&<page token> pass Observation?patient=12345&_count=20&<page token>, copying the page token parameters unchanged.

Example input: `{"next_page_path":"<next_page_path>"}`

### `elation_observation_read`

Get Observation · Read-only

Get one Observation resource from Elation by its ID.
Returns the Observation with code (LOINC), category, status, effectiveDateTime, valueQuantity or other value, interpretation, referenceRange and patient reference.
Use this to open one observation by ID. Use elation_observation_search to list a patient's vitals, lab results or assessments.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `observation_id` (`string`, required): Elation logical ID of the Observation resource (the id element, without the 'Observation/' prefix). Example: 12345.

Example input: `{"observation_id":"<observation_id>"}`

### `elation_observation_search`

Search Observations · Read-only

Search a patient's observations in Elation: vital signs, lab results, smoking status, social history, SDOH and other assessments, by category, code, date or status.
Returns a FHIR searchset Bundle whose entry array holds matching Observation resources (code, category, value, effectiveDateTime, status and interpretation) and a 'next' link when more pages exist.
Use category vital-signs, laboratory, social-history, survey or imaging to narrow, or a LOINC code for one measurement. Use elation_diagnostic_report_search for whole lab or imaging reports. Use elation_observation_read for one observation by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose observations to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `category` (`string`, optional): Filter by observation category, as a FHIR token: code or system|code. Common codes: vital-signs, laboratory, social-history, survey, imaging, sdoh (system http://terminology.hl7.org/CodeSystem/observation-category). Example: vital-signs.
- `code` (`string`, optional): Filter by observation code (LOINC). Separate several with commas, as a FHIR token: code or system|code. Example: http://loinc.org|8867-4.
- `date` (`string`, optional): Filter by date the observation was made. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: registered, preliminary, final, amended, corrected, cancelled, entered-in-error, unknown. Example: final.

Example input: `{"patient":"<patient>"}`

### `elation_organization_read`

Get Organization · Read-only

Get one Organization resource from Elation by its ID.
Returns the Organization with name, identifier (including NPI and TIN), type, telecom and address.
Use this to resolve an organization reference, for example a payor or service provider. Use elation_organization_search to find organizations by name or address.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `organization_id` (`string`, required): Elation logical ID of the Organization resource (the id element, without the 'Organization/' prefix). Example: 12345.

Example input: `{"organization_id":"<organization_id>"}`

### `elation_organization_search`

Search Organizations · Read-only

Search Elation organizations (practices, payers and other organizations) by name or address.
Returns a FHIR searchset Bundle whose entry array holds matching Organization resources (name, identifier, type, telecom and address) and a 'next' link when more pages exist.
Use this to find an organization by name. Use elation_organization_read when you already have the ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `address` (`string`, optional): Filter by any part of the organization's address. Matches values that start with the text, case-insensitive. Example: Arbor.
- `name` (`string`, optional): Filter by organization name. Matches values that start with the text, case-insensitive. Example: Health.

Example input: `{}`

### `elation_patient_read`

Get Patient · Read-only

Get one Patient resource from Elation by its ID.
Returns the Patient with id, identifier (for example an MRN), name, gender, birthDate, telecom, address, communication and US Core race, ethnicity and gender identity extensions.
Use this when you already have the patient ID. Use elation_patient_search to find a patient by name, birth date or identifier.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient_id` (`string`, required): Elation logical ID of the Patient resource (the id element, without the 'Patient/' prefix). Example: 12345.

Example input: `{"patient_id":"<patient_id>"}`

### `elation_patient_search`

Search Patients · Read-only

Search Elation patients by demographics such as name, birth date, gender or identifier.
Returns a FHIR searchset Bundle whose entry array holds matching Patient resources (id, name, gender, birthDate, identifier, telecom and address) and a 'next' link when more pages exist.
Use this to find candidate patients and let the clinician pick one. Use elation_patient_read when you already have the ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.
- `birthdate` (`string`, optional): Patient's date of birth as YYYY-MM-DD. Elation documents it combined with family or name. Example: 1980-01-01.
- `death_date` (`string`, optional): Patient's date of death as YYYY-MM-DD. Elation documents it combined with family. Example: 2024-01-01.
- `family` (`string`, optional): Filter by family (last) name. Matches values that start with the text, case-insensitive. Example: Smith.
- `gender` (`string`, optional): Administrative gender. Elation documents it combined with name or family. Valid values: male, female, other, unknown. One of: `male`, `female`, `other`, `unknown`.
- `given` (`string`, optional): Filter by given (first) name. Matches values that start with the text, case-insensitive. Example: Jane.
- `identifier` (`string`, optional): Filter by a patient identifier such as an MRN, as a FHIR token: code or system|code. Example: 12345.
- `name` (`string`, optional): Filter by any part of the patient's name (given or family). Matches values that start with the text, case-insensitive. Example: Jane Smith.

Example input: `{}`

### `elation_practitioner_read`

Get Practitioner · Read-only

Get one Practitioner resource from Elation by its ID.
Returns the Practitioner with name, identifier (including NPI), telecom, address, gender and qualification.
Use this to resolve a practitioner reference (for example a requester, performer or author) into a name and NPI. Use elation_practitioner_search to find practitioners by name or identifier.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `practitioner_id` (`string`, required): Elation logical ID of the Practitioner resource (the id element, without the 'Practitioner/' prefix). Example: 12345.

Example input: `{"practitioner_id":"<practitioner_id>"}`

### `elation_practitioner_role_read`

Get Practitioner Role · Read-only

Get one PractitionerRole resource from Elation by its ID.
Returns the PractitionerRole with practitioner and organization references, code (role), specialty, location and telecom.
Use this to open one practitioner role by ID. Use elation_practitioner_role_search to find roles by practitioner or specialty.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `practitioner_role_id` (`string`, required): Elation logical ID of the PractitionerRole resource (the id element, without the 'PractitionerRole/' prefix). Example: 12345.

Example input: `{"practitioner_role_id":"<practitioner_role_id>"}`

### `elation_practitioner_role_search`

Search Practitioner Roles · Read-only

Search Elation practitioner roles by practitioner, practitioner name or identifier, or specialty.
Returns a FHIR searchset Bundle whose entry array holds matching PractitionerRole resources (practitioner, organization, code, specialty, location and telecom) and a 'next' link when more pages exist.
Use this to find which practice and specialty a clinician belongs to. Use elation_practitioner_search to find the clinician first. Use elation_practitioner_role_read for one role by ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `practitioner` (`string`, optional): Return roles for this Elation Practitioner ID. Example: 13579.
- `practitioner_identifier` (`string`, optional): Return roles whose practitioner has this identifier, such as an NPI, as code or system|code. Example: http://hl7.org/fhir/sid/us-npi|1234567890.
- `practitioner_name` (`string`, optional): Return roles whose practitioner's name contains this text. Example: Smith.
- `specialty` (`string`, optional): Filter by specialty (NUCC taxonomy), as a FHIR token: code or system|code. Example: http://nucc.org/provider-taxonomy|207Q00000X.

Example input: `{}`

### `elation_practitioner_search`

Search Practitioners · Read-only

Search Elation practitioners (physicians, nurses and other clinicians) by name or identifier such as NPI.
Returns a FHIR searchset Bundle whose entry array holds matching Practitioner resources (name, identifier including NPI, telecom and qualification) and a 'next' link when more pages exist.
Use this to find a clinician by name or NPI. Use elation_practitioner_role_search for a practitioner's roles and specialties. Use elation_practitioner_read for one practitioner by ID.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.
- `identifier` (`string`, optional): Filter by practitioner identifier, such as an NPI, as a FHIR token: code or system|code. Example: http://hl7.org/fhir/sid/us-npi|1234567890.
- `name` (`string`, optional): Filter by any part of the practitioner's name. Matches values that start with the text, case-insensitive. Example: Smith.

Example input: `{}`

### `elation_procedure_read`

Get Procedure · Read-only

Get one Procedure resource from Elation by its ID.
Returns the Procedure with code (CPT, SNOMED CT or similar), status, performedDateTime or performedPeriod, performer, reasonCode and patient reference.
Use this to open one procedure by ID. Use elation_procedure_search to list a patient's procedures.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `procedure_id` (`string`, required): Elation logical ID of the Procedure resource (the id element, without the 'Procedure/' prefix). Example: 12345.

Example input: `{"procedure_id":"<procedure_id>"}`

### `elation_procedure_search`

Search Procedures · Read-only

Search a patient's procedures in Elation by code, date or status.
Returns a FHIR searchset Bundle whose entry array holds matching Procedure resources (code, status, performedDateTime or performedPeriod and performer) and a 'next' link when more pages exist.
Use this to review procedures done to the patient. Use elation_service_request_search for ordered procedures and referrals. Use elation_procedure_read for one procedure by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose procedures to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `code` (`string`, optional): Filter by procedure code, as a FHIR token: code or system|code. Example: http://www.ama-assn.org/go/cpt|99213.
- `date` (`string`, optional): Filter by date the procedure was performed. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: preparation, in-progress, not-done, on-hold, stopped, completed, entered-in-error, unknown. Example: completed.

Example input: `{"patient":"<patient>"}`

### `elation_provenance_read`

Get Provenance Record · Read-only

Get one Provenance resource from Elation by its ID.
Returns the Provenance with target references, recorded time, agent (author and organization) and activity.
Use this to see who created or last changed a record and when, given a Provenance ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `provenance_id` (`string`, required): Elation logical ID of the Provenance resource (the id element, without the 'Provenance/' prefix). Example: 12345.

Example input: `{"provenance_id":"<provenance_id>"}`

### `elation_questionnaire_response_read`

Get Questionnaire Response · Read-only

Get one QuestionnaireResponse resource from Elation by its ID.
Returns the QuestionnaireResponse with questionnaire (canonical), status, authored, author and item answers.
Use this to open one completed questionnaire by ID. Use elation_questionnaire_response_search to list a patient's questionnaire responses.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `questionnaire_response_id` (`string`, required): Elation logical ID of the QuestionnaireResponse resource (the id element, without the 'QuestionnaireResponse/' prefix). Example: 12345.

Example input: `{"questionnaire_response_id":"<questionnaire_response_id>"}`

### `elation_questionnaire_response_search`

Search Questionnaire Responses · Read-only

Search a patient's questionnaire responses in Elation (screenings and SDOH assessments) by status, authored date, questionnaire or tag.
Returns a FHIR searchset Bundle whose entry array holds matching QuestionnaireResponse resources (questionnaire, status, authored and item answers) and a 'next' link when more pages exist.
Use tag sdoh for SDOH assessments. Use elation_observation_search with category survey for scored results. Use elation_questionnaire_response_read for one response by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose questionnaire responses to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_tag` (`string`, optional): Filter by resource tag. Elation documents sdoh for social determinants of health assessments. Example: sdoh.
- `authored` (`string`, optional): Filter by date the response was authored. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `questionnaire` (`string`, optional): Return only responses to this Questionnaire (id or canonical URL). Example: 13579.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: in-progress, completed, amended, entered-in-error, stopped. Example: completed.

Example input: `{"patient":"<patient>"}`

### `elation_related_person_read`

Get Related Person · Read-only

Get one RelatedPerson resource from Elation by its ID.
Returns the RelatedPerson with name, relationship to the patient, telecom, address and patient reference.
Use this to resolve a RelatedPerson reference, for example a care team member. Use elation_related_person_search to list a patient's related persons.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `related_person_id` (`string`, required): Elation logical ID of the RelatedPerson resource (the id element, without the 'RelatedPerson/' prefix). Example: 12345.

Example input: `{"related_person_id":"<related_person_id>"}`

### `elation_related_person_search`

Search Related Persons · Read-only

Search a patient's related persons in Elation (family members, caregivers and other contacts), optionally by name.
Returns a FHIR searchset Bundle whose entry array holds matching RelatedPerson resources (name, relationship, telecom and address) and a 'next' link when more pages exist.
Use this to find a patient's caregivers or contacts. Use elation_related_person_read for one related person by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose related persons to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `name` (`string`, optional): Filter by any part of the related person's name. Matches values that start with the text, case-insensitive. Example: Smith.

Example input: `{"patient":"<patient>"}`

### `elation_service_request_read`

Get Service Request · Read-only

Get one ServiceRequest resource from Elation by its ID.
Returns the ServiceRequest with code, category, status, intent, authoredOn, requester, performer, reasonCode and patient reference.
Use this to open one order or referral by ID. Use elation_service_request_search to list a patient's orders and referrals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `service_request_id` (`string`, required): Elation logical ID of the ServiceRequest resource (the id element, without the 'ServiceRequest/' prefix). Example: 12345.

Example input: `{"service_request_id":"<service_request_id>"}`

### `elation_service_request_search`

Search Service Requests · Read-only

Search a patient's service requests in Elation (lab, imaging and procedure orders and referrals) by category, code, date or status.
Returns a FHIR searchset Bundle whose entry array holds matching ServiceRequest resources (code, category, status, intent, authoredOn and requester) and a 'next' link when more pages exist.
Use this for ordered work. Use elation_procedure_search for procedures already performed. Use elation_service_request_read for one request by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose service requests to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.
- `authored` (`string`, optional): Filter by date the request was written. Use YYYY-MM-DD (or a full date-time), optionally prefixed with a comparator: ge (on or after), le (on or before), gt, lt. Example: ge2024-01-01.
- `category` (`string`, optional): Filter by service request category, as a FHIR token: code or system|code. Example: http://snomed.info/sct|108252007.
- `code` (`string`, optional): Filter by requested service code, as a FHIR token: code or system|code. Example: http://loinc.org|24323-8.
- `status` (`string`, optional): Filter by status. One value or a comma-separated list. Valid values: draft, active, on-hold, revoked, completed, entered-in-error, unknown. Example: active.

Example input: `{"patient":"<patient>"}`

### `elation_specimen_read`

Get Specimen · Read-only

Get one Specimen resource from Elation by its ID.
Returns the Specimen with type, status, collection (collectedDateTime, bodySite and method), accessionIdentifier and subject reference.
Use this to open one specimen by ID, for example from an Observation's specimen reference. Use elation_specimen_search to list a patient's specimens.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `specimen_id` (`string`, required): Elation logical ID of the Specimen resource (the id element, without the 'Specimen/' prefix). Example: 12345.

Example input: `{"specimen_id":"<specimen_id>"}`

### `elation_specimen_search`

List Specimens · Read-only

List a patient's specimens in Elation.
Returns a FHIR searchset Bundle whose entry array holds matching Specimen resources (type, status, collection and accessionIdentifier) and a 'next' link when more pages exist.
Use this to see specimens collected for lab work. Use elation_specimen_read for one specimen by ID.
Requires an Elation patient ID: run elation_patient_search first.
If the result has a 'next' link, use elation_next_page to get more.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `patient` (`string`, required): Elation patient ID (the Patient resource id) whose specimens to return. Accepts the bare id or the reference form Patient/<id>. Example: 12345.
- `_count` (`integer`, optional): Maximum number of resources to return in one page. The server picks a default when omitted. Example: 20.
- `_id` (`string`, optional): Return only the resource with this logical id, wrapped in a searchset Bundle. Example: 12345.

Example input: `{"patient":"<patient>"}`

## Related

Other Healthcare & life sciences connectors ([all 16](/agentkit/connectors/?category=healthcare)):

- [Synapse MCP server](/agentkit/connectors/synapsemcp/): Vendor MCP, OAuth, 48 tools
- [Availity](/agentkit/connectors/availity/): Scalekit connector, Service account, 11 tools
- [Healthie](/agentkit/connectors/healthie/): Scalekit connector, API key, 44 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
