> **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 MEDITECH

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

**Authentication:** SMART On FHIR
**Categories:** Healthcare
**Tools:** 61: 59 read, 2 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=MEDITECH)

## 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 MEDITECH connection

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

   **Console steps with screenshots:**

   MEDITECH connections use SMART on FHIR and act as the signed-in clinician, through MEDITECH Expanse's provider-facing FHIR API. Every hospital runs its own MEDITECH API host, so each connection carries that host's authorization endpoint, token endpoint, audience (`aud`) and FHIR server domain, plus the client ID and secret the hospital issues for your 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 **MEDITECH** and click **Create**. Copy the **Redirect URI**.

   2. ### Get a client from the hospital

      Each hospital approves your app and onboards it with MEDITECH. The hospital's MEDITECH system administrator issues the client ID and client secret:

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

      For development, MEDITECH's Greenfield Workspace provides a sandbox with test clinicians.

   3. ### Find the hospital's endpoints

      The FHIR base is `https://<hospital-api-host>/v2/uscore/STU6`. MEDITECH lists hospital API hosts at `https://fhir-apis.meditech.com/v1/brands`; that list shows each host's `v1/uscore/R4` base, so replace that path with `v2/uscore/STU6`. Which versions a hospital enables is confirmed at onboarding.

      Open `https://<hospital-api-host>/.well-known/smart-configuration` and copy `authorization_endpoint` and `token_endpoint`.

   4. ### Enter the values on the connection

      Back on the MEDITECH connection, enter:

      - **Client ID** and **Client Secret**: from the hospital.
      - **Authorization Endpoint** and **Token Endpoint**: from `.well-known/smart-configuration`.
      - **Audience (aud)**: the full FHIR base URL, ending in `/v2/uscore/STU6`.
      - **FHIR Server Domain**: the FHIR base without `https://`, including its path, such as `<hospital-api-host>/v2/uscore/STU6`.

      Select `openid`, `fhirUser` and `offline_access`, plus the resource scopes your agent needs. Click **Save**.

      To test against the Greenfield Workspace sandbox, use these values:

      | Field                  | Sandbox value                                         |
      | ---------------------- | ----------------------------------------------------- |
      | Authorization Endpoint | `https://greenfield-apis.meditech.com/oauth/authorize` |
      | Token Endpoint         | `https://greenfield-apis.meditech.com/oauth/token`     |
      | Audience (aud)         | `https://greenfield-apis.meditech.com/v2/uscore/STU6`  |
      | FHIR Server Domain     | `greenfield-apis.meditech.com/v2/uscore/STU6`          |

## 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: 'meditech_allergy_intolerance_read',
  toolInput: {
    allergy_intolerance_id: '<allergy_intolerance_id>',
  },
  connector: 'meditech',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="meditech_allergy_intolerance_read",
    tool_input={
        "allergy_intolerance_id": "<allergy_intolerance_id>",
    },
    connection_name="meditech",
    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.

### `meditech_allergy_intolerance_read`

Get Allergy Intolerance · Read-only

Get one allergy from MEDITECH by its FHIR ID.
Returns a FHIR AllergyIntolerance resource with substance code, clinical and verification status, criticality, reactions, and recorded date.
Use meditech_allergy_intolerance_read to fetch one known ID. Use meditech_allergy_intolerance_search to find allergies.

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

Inputs:

- `allergy_intolerance_id` (`string`, required): FHIR logical ID of the allergy, without the 'AllergyIntolerance/' prefix. Example: 12345

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

### `meditech_allergy_intolerance_search`

Search Allergy Intolerances · Read-only

Search a patient's allergies and intolerances in MEDITECH.
Returns a FHIR Bundle of AllergyIntolerance resources (substance code, clinical and verification status, criticality, reactions, and recorded date). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_allergy_intolerance_search to find or list records. Use meditech_allergy_intolerance_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of a single allergy to return. Use it on its own, without the other filters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose allergies to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345

Example input: `{}`

### `meditech_appointment_read`

Get Appointment · Read-only

Get one appointment from MEDITECH by its FHIR ID.
Returns a FHIR Appointment resource with status, start and end time, appointment type, participants (patient, practitioner, location), and reason.
Use meditech_appointment_read to fetch one known ID. Use meditech_appointment_search to find appointments.

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

Inputs:

- `appointment_id` (`string`, required): FHIR logical ID of the appointment, without the 'Appointment/' prefix. Example: 12345

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

### `meditech_appointment_search`

Search Appointments · Read-only

Search appointments in MEDITECH by patient, practitioner, location, date, or status.
Returns a FHIR Bundle of Appointment resources (status, start and end time, appointment type, participants (patient, practitioner, location), and reason). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_appointment_search to find or list records. Use meditech_appointment_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of appointments to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single appointment to return. Use it on its own, without the other filters. Example: 12345
- `date` (`array`, optional): Filter appointments by appointment date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `location` (`string`, optional): FHIR logical ID of the location where the appointments take place. Example: 24680
- `patient` (`string`, optional): FHIR logical ID of the patient whose appointments to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `practitioner` (`string`, optional): FHIR logical ID of a practitioner taking part in the appointments. Example: 67890
- `status` (`string`, optional): Appointment status to filter by. Example: booked. One of: `proposed`, `pending`, `booked`, `arrived`, `fulfilled`, `cancelled`, `noshow`, `entered-in-error`, `checked-in`, `waitlist`.

Example input: `{}`

### `meditech_binary_read`

Get Binary · Read-only

Get one binary file from MEDITECH by its FHIR ID.
Returns a FHIR Binary resource with the content type and base64-encoded data of a document attachment.
Use meditech_binary_read to download an attachment that a document or report links to as Binary/<id>. Use meditech_document_reference_search to find documents first.

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

Inputs:

- `binary_id` (`string`, required): FHIR logical ID of the binary file, without the 'Binary/' prefix. Example: 12345

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

### `meditech_care_plan_read`

Get Care Plan · Read-only

Get one care plan from MEDITECH by its FHIR ID.
Returns a FHIR CarePlan resource with category, status, intent, narrative text, period, and linked goals and activities.
Use meditech_care_plan_read to fetch one known ID. Use meditech_care_plan_search to find care plans.

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

Inputs:

- `care_plan_id` (`string`, required): FHIR logical ID of the care plan, without the 'CarePlan/' prefix. Example: 12345

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

### `meditech_care_plan_search`

Search Care Plans · Read-only

Search a patient's care plans in MEDITECH, optionally by category or status.
Returns a FHIR Bundle of CarePlan resources (category, status, intent, narrative text, period, and linked goals and activities). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_care_plan_search to find or list records. Use meditech_care_plan_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of care plans to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single care plan to return. Use it on its own, without the other filters. Example: 12345
- `category` (`string`, optional): Care plan category code. US Core care plans use assess-plan. Example: assess-plan
- `patient` (`string`, optional): FHIR logical ID of the patient whose care plans to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Care plan status to filter by. Example: active. One of: `draft`, `active`, `on-hold`, `revoked`, `completed`, `entered-in-error`, `unknown`.

Example input: `{}`

### `meditech_care_team_read`

Get Care Team · Read-only

Get one care team from MEDITECH by its FHIR ID.
Returns a FHIR CareTeam resource with status, the patient, and participants with their roles.
Use meditech_care_team_read to fetch one known ID. Use meditech_care_team_search to find care teams.

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

Inputs:

- `care_team_id` (`string`, required): FHIR logical ID of the care team, without the 'CareTeam/' prefix. Example: 12345

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

### `meditech_care_team_search`

Search Care Teams · Read-only

Search a patient's care teams in MEDITECH, optionally by status.
Returns a FHIR Bundle of CareTeam resources (status, the patient, and participants with their roles). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_care_team_search to find or list records. Use meditech_care_team_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of care teams to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single care team to return. Use it on its own, without the other filters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose care teams to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Care team status to filter by. Example: active. One of: `proposed`, `active`, `suspended`, `inactive`, `entered-in-error`.

Example input: `{}`

### `meditech_communication_read`

Get Communication · Read-only

Get one message from MEDITECH by its FHIR ID.
Returns a FHIR Communication resource with status, sender, recipients, sent time, subject patient, topic, thread links, and the message payload.
Use meditech_communication_read to fetch one known ID. Use meditech_communication_search to find messages.

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

Inputs:

- `communication_id` (`string`, required): FHIR logical ID of the message, without the 'Communication/' prefix. Example: 12345

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

### `meditech_communication_search`

Search Communications · Read-only

Search clinical messages in MEDITECH by patient, sender, recipient, sent date, or thread.
Returns a FHIR Bundle of Communication resources (status, sender, recipients, sent time, subject patient, topic, thread links, and the message payload). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_communication_search to find or list records. Use meditech_communication_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of messages to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single message to return. Use it on its own, without the other filters. Example: 12345
- `in_response_to` (`string`, optional): Reference to a message; returns only its direct replies. Example: Communication/11111
- `in_response_to_below` (`string`, optional): Reference to a message; returns every reply below it in the thread. Example: Communication/11111
- `in_response_to_missing` (`boolean`, optional): Set true to return only top-level messages (thread starters), or false to return only replies. Example: true
- `part_of` (`string`, optional): Reference to the root message of a thread; returns every message in that thread. Example: Communication/11111
- `patient` (`string`, optional): FHIR logical ID of the patient the messages are about. Example: 12345
- `recipient` (`string`, optional): Reference to a patient or practitioner who is one of the recipients. Example: Practitioner/67890
- `sender` (`string`, optional): Reference to the message sender: a Patient, Practitioner or RelatedPerson reference or ID. Example: Practitioner/67890
- `sent` (`array`, optional): Filter messages by the date and time they were sent. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `subject` (`string`, optional): Reference to the patient the messages are about, as an ID or Patient/<id>. Use patient or subject, not both. Example: Patient/12345

Example input: `{}`

### `meditech_condition_read`

Get Condition · Read-only

Get one condition from MEDITECH by its FHIR ID.
Returns a FHIR Condition resource with condition code, category (problem list item, encounter diagnosis or health concern), clinical and verification status, onset, and recorded date.
Use meditech_condition_read to fetch one known ID. Use meditech_condition_search to find conditions.

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

Inputs:

- `condition_id` (`string`, required): FHIR logical ID of the condition, without the 'Condition/' prefix. Example: 12345

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

### `meditech_condition_search`

Search Conditions · Read-only

Search a patient's conditions in MEDITECH (problem list, encounter diagnoses, health concerns), optionally by category, clinical status, code, or date.
Returns a FHIR Bundle of Condition resources (condition code, category (problem list item, encounter diagnosis or health concern), clinical and verification status, onset, and recorded date). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_condition_search to find or list records. Use meditech_condition_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of conditions to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single condition to return. Use it on its own, without the other filters. Example: 12345
- `category` (`string`, optional): Condition category code. Example: problem-list-item. One of: `problem-list-item`, `encounter-diagnosis`, `health-concern`.
- `clinical_status` (`string`, optional): Clinical status to filter by. Example: active. One of: `active`, `recurrence`, `relapse`, `inactive`, `remission`, `resolved`.
- `code` (`string`, optional): Condition code as system|code or a bare code (SNOMED CT or ICD-10-CM). Example: http://snomed.info/sct|44054006
- `onset_date` (`array`, optional): Filter conditions by onset date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose conditions to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `recorded_date` (`array`, optional): Filter conditions by the date they were recorded. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]

Example input: `{}`

### `meditech_coverage_read`

Get Coverage · Read-only

Get one insurance coverage from MEDITECH by its FHIR ID.
Returns a FHIR Coverage resource with status, payer, subscriber and beneficiary, relationship, plan identifiers, and coverage period.
Use meditech_coverage_read to fetch one known ID. Use meditech_coverage_search to find insurance coverages.

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

Inputs:

- `coverage_id` (`string`, required): FHIR logical ID of the insurance coverage, without the 'Coverage/' prefix. Example: 12345

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

### `meditech_coverage_search`

Search Coverages · Read-only

Search a patient's insurance coverage in MEDITECH.
Returns a FHIR Bundle of Coverage resources (status, payer, subscriber and beneficiary, relationship, plan identifiers, and coverage period). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_coverage_search to find or list records. Use meditech_coverage_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of a single insurance coverage to return. Use it on its own, without the other filters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose insurance coverages to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345

Example input: `{}`

### `meditech_device_read`

Get Device · Read-only

Get one implantable device from MEDITECH by its FHIR ID.
Returns a FHIR Device resource with device type, UDI carrier, status, expiration and manufacture dates, and the patient.
Use meditech_device_read to fetch one known ID. Use meditech_device_search to find implantable devices.

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

Inputs:

- `device_id` (`string`, required): FHIR logical ID of the implantable device, without the 'Device/' prefix. Example: 12345

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

### `meditech_device_search`

Search Devices · Read-only

Search a patient's implantable devices in MEDITECH, optionally by device type.
Returns a FHIR Bundle of Device resources (device type, UDI carrier, status, expiration and manufacture dates, and the patient). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_device_search to find or list records. Use meditech_device_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of a single implantable device to return. Use it on its own, without the other filters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose implantable devices to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `type` (`string`, optional): Device type code as system|code or a bare SNOMED CT code. Example: http://snomed.info/sct|14106009

Example input: `{}`

### `meditech_diagnostic_report_read`

Get Diagnostic Report · Read-only

Get one diagnostic report from MEDITECH by its FHIR ID.
Returns a FHIR DiagnosticReport resource with category, report code, status, effective and issued times, results references, and presented report content.
Use meditech_diagnostic_report_read to fetch one known ID. Use meditech_diagnostic_report_search to find diagnostic reports.

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

Inputs:

- `diagnostic_report_id` (`string`, required): FHIR logical ID of the diagnostic report, without the 'DiagnosticReport/' prefix. Example: 12345

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

### `meditech_diagnostic_report_search`

Search Diagnostic Reports · Read-only

Search a patient's diagnostic reports in MEDITECH (lab, radiology, cardiology, pathology), optionally by category, code, or date.
Returns a FHIR Bundle of DiagnosticReport resources (category, report code, status, effective and issued times, results references, and presented report content). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_diagnostic_report_search to find or list records. Use meditech_diagnostic_report_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of diagnostic reports to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single diagnostic report to return. Use it on its own, without the other filters. Example: 12345
- `category` (`string`, optional): Report category as system|code or a bare code: LAB for laboratory, or the LOINC codes LP29684-5 (radiology), LP29708-2 (cardiology) or LP7839-6 (pathology). Example: LAB
- `code` (`string`, optional): Report code as system|code or a bare LOINC code. Example: http://loinc.org|58410-2
- `date` (`array`, optional): Filter diagnostic reports by clinically relevant date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose diagnostic reports to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345

Example input: `{}`

### `meditech_document_reference_docref`

Generate Patient Summary Document · Read-only

Ask MEDITECH for a patient's C-CDA summary document, such as a Continuity of Care Document, for a date range or encounter (US Core DocumentReference $docref).
Returns a FHIR Bundle of DocumentReference resources whose attachments link to the generated C-CDA XML; fetch it with meditech_binary_read.
Use meditech_document_reference_docref to get a summary of care. Use meditech_document_reference_search to list notes and documents already on file.

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

Inputs:

- `patient` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with meditech_patient_search. Example: 12345
- `encounter` (`string`, optional): FHIR logical ID of the encounter, for the visit-specific document types 18842-5 and 57133-1. Example: 67890
- `end` (`string`, optional): End of the date range the document covers (YYYY-MM-DD). Example: 2024-12-31
- `on_demand` (`boolean`, optional): Set true to ask MEDITECH to assemble a new document now; leave empty to also get documents it already stored. Example: true
- `start` (`string`, optional): Start of the date range the document covers (YYYY-MM-DD). Example: 2024-01-01
- `type` (`string`, optional): LOINC code of the document to generate. Leave empty for the default Continuity of Care Document (34133-9). The visit-specific types 18842-5 (discharge summary) and 57133-1 (referral note) also need encounter. Example: 34133-9

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

### `meditech_document_reference_read`

Get Document Reference · Read-only

Get one clinical document from MEDITECH by its FHIR ID.
Returns a FHIR DocumentReference resource with document type and category, status, author, date, encounter context, and attachment content (inline data or a Binary URL).
Use meditech_document_reference_read to fetch one known ID. Use meditech_document_reference_search to find clinical documents.

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

Inputs:

- `document_reference_id` (`string`, required): FHIR logical ID of the clinical document, without the 'DocumentReference/' prefix. Example: 12345

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

### `meditech_document_reference_search`

Search Document References · Read-only

Search a patient's clinical documents and notes in MEDITECH by category, type, date, status, or encounter.
Returns a FHIR Bundle of DocumentReference resources (document type and category, status, author, date, encounter context, and attachment content (inline data or a Binary URL)). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_document_reference_search to find or list records. Use meditech_document_reference_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of a single clinical document to return. Use it on its own, without the other filters. Example: 12345
- `category` (`string`, optional): Document category code. US Core clinical notes use clinical-note. Example: clinical-note
- `date` (`array`, optional): Filter clinical documents by the date they were created. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `encounter` (`string`, optional): FHIR logical ID of the encounter the documents belong to. Example: 67890
- `end` (`string`, optional): Return documents whose clinical period ends on or before this date (YYYY-MM-DD). Example: 2024-12-31
- `patient` (`string`, optional): FHIR logical ID of the patient whose clinical documents to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `period` (`array`, optional): Filter clinical documents by the clinical period they cover. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `start` (`string`, optional): Return documents whose clinical period starts on or after this date (YYYY-MM-DD). Example: 2024-01-01
- `status` (`string`, optional): Document status to filter by. Example: current. One of: `current`, `superseded`, `entered-in-error`.
- `type` (`string`, optional): Document type as system|code or a bare LOINC code. Example: http://loinc.org|11506-3

Example input: `{}`

### `meditech_encounter_read`

Get Encounter · Read-only

Get one encounter from MEDITECH by its FHIR ID.
Returns a FHIR Encounter resource with status, class, type, period, participants, location, reason, and discharge disposition.
Use meditech_encounter_read to fetch one known ID. Use meditech_encounter_search to find encounters.

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

Inputs:

- `encounter_id` (`string`, required): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Example: 12345

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

### `meditech_encounter_search`

Search Encounters · Read-only

Search a patient's encounters (visits and admissions) in MEDITECH by date, class, type, status, or identifier.
Returns a FHIR Bundle of Encounter resources (status, class, type, period, participants, location, reason, and discharge disposition). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_encounter_search to find or list records. Use meditech_encounter_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of encounters to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single encounter to return. Use it on its own, without the other filters. Example: 12345
- `class` (`string`, optional): Encounter class code such as AMB (ambulatory), IMP (inpatient) or EMER (emergency). Example: IMP
- `date` (`array`, optional): Filter encounters by encounter date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `identifier` (`string`, optional): Encounter identifier such as a visit or account number, as system|value or a bare value. Example: 12345678
- `patient` (`string`, optional): FHIR logical ID of the patient whose encounters to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Encounter status to filter by. Example: finished. One of: `planned`, `arrived`, `triaged`, `in-progress`, `onleave`, `finished`, `cancelled`, `entered-in-error`, `unknown`.
- `type` (`string`, optional): Encounter type as system|code or a bare code. Example: http://snomed.info/sct|185349003

Example input: `{}`

### `meditech_goal_read`

Get Goal · Read-only

Get one goal from MEDITECH by its FHIR ID.
Returns a FHIR Goal resource with lifecycle status, description, target dates and measures, and the patient.
Use meditech_goal_read to fetch one known ID. Use meditech_goal_search to find goals.

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

Inputs:

- `goal_id` (`string`, required): FHIR logical ID of the goal, without the 'Goal/' prefix. Example: 12345

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

### `meditech_goal_search`

Search Goals · Read-only

Search a patient's goals in MEDITECH, optionally by lifecycle status or target date.
Returns a FHIR Bundle of Goal resources (lifecycle status, description, target dates and measures, and the patient). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_goal_search to find or list records. Use meditech_goal_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of goals to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single goal to return. Use it on its own, without the other filters. Example: 12345
- `lifecycle_status` (`string`, optional): Goal lifecycle status to filter by. Example: active. One of: `proposed`, `planned`, `accepted`, `active`, `on-hold`, `completed`, `cancelled`, `entered-in-error`, `rejected`.
- `patient` (`string`, optional): FHIR logical ID of the patient whose goals to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `target_date` (`array`, optional): Filter goals by target date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]

Example input: `{}`

### `meditech_immunization_read`

Get Immunization · Read-only

Get one immunization from MEDITECH by its FHIR ID.
Returns a FHIR Immunization resource with vaccine code, status, occurrence date, lot number, performer, and location.
Use meditech_immunization_read to fetch one known ID. Use meditech_immunization_search to find immunizations.

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

Inputs:

- `immunization_id` (`string`, required): FHIR logical ID of the immunization, without the 'Immunization/' prefix. Example: 12345

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

### `meditech_immunization_search`

Search Immunizations · Read-only

Search a patient's immunizations in MEDITECH, optionally by status or date.
Returns a FHIR Bundle of Immunization resources (vaccine code, status, occurrence date, lot number, performer, and location). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_immunization_search to find or list records. Use meditech_immunization_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of a single immunization to return. Use it on its own, without the other filters. Example: 12345
- `date` (`array`, optional): Filter immunizations by administration date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose immunizations to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Immunization status to filter by. Example: completed. One of: `completed`, `entered-in-error`, `not-done`.

Example input: `{}`

### `meditech_location_read`

Get Location · Read-only

Get one location from MEDITECH by its FHIR ID.
Returns a FHIR Location resource with name, status, type, address, telecom, and managing organization.
Use meditech_location_read to fetch one known ID. Use meditech_location_search to find locations.

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

Inputs:

- `location_id` (`string`, required): FHIR logical ID of the location, without the 'Location/' prefix. Example: 12345

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

### `meditech_location_search`

Search Locations · Read-only

Search locations in MEDITECH by name or address.
Returns a FHIR Bundle of Location resources (name, status, type, address, telecom, and managing organization). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_location_search to find or list records. Use meditech_location_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of locations to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single location to return. Use it on its own, without the other filters. Example: 12345
- `address` (`string`, optional): Text that matches any part of the location address. Example: 7 Main Street
- `address_city` (`string`, optional): City of the location. Example: Boston
- `address_postalcode` (`string`, optional): Postal code of the location. Example: 02021
- `address_state` (`string`, optional): State of the location, usually a two-letter code. Example: MA
- `name` (`string`, optional): Text that matches the location name. Example: Main Campus

Example input: `{}`

### `meditech_media_read`

Get Media · Read-only

Get one media item from MEDITECH by its FHIR ID.
Returns a FHIR Media resource with media type, status, content attachment, and the patient.
Use meditech_media_read to fetch one known ID; MEDITECH offers no search for media items, so take the ID from a reference in another resource.

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

Inputs:

- `media_id` (`string`, required): FHIR logical ID of the media item, without the 'Media/' prefix. Example: 12345

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

### `meditech_medication_dispense_read`

Get Medication Dispense · Read-only

Get one medication dispense from MEDITECH by its FHIR ID.
Returns a FHIR MedicationDispense resource with medication, status, type, quantity, days supply, dosage instructions, and handed-over time.
Use meditech_medication_dispense_read to fetch one known ID. Use meditech_medication_dispense_search to find medication dispenses.

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

Inputs:

- `medication_dispense_id` (`string`, required): FHIR logical ID of the medication dispense, without the 'MedicationDispense/' prefix. Example: 12345

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

### `meditech_medication_dispense_search`

Search Medication Dispenses · Read-only

Search a patient's medication dispenses in MEDITECH, optionally by status or type.
Returns a FHIR Bundle of MedicationDispense resources (medication, status, type, quantity, days supply, dosage instructions, and handed-over time). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_medication_dispense_search to find or list records. Use meditech_medication_dispense_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of medication dispenses to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single medication dispense to return. Use it on its own, without the other filters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose medication dispenses to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Dispense status to filter by. Example: completed
- `type` (`string`, optional): Dispense type code, for example DF (daily fill) or EM (emergency supply). Example: DF

Example input: `{}`

### `meditech_medication_read`

Get Medication · Read-only

Get one medication from MEDITECH by its FHIR ID.
Returns a FHIR Medication resource with medication code, form, ingredients, and manufacturer.
Use meditech_medication_read to fetch one known ID; MEDITECH offers no search for medications, so take the ID from a reference in another resource.

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

Inputs:

- `medication_id` (`string`, required): FHIR logical ID of the medication, without the 'Medication/' prefix. Example: 12345

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

### `meditech_medication_request_read`

Get Medication Request · Read-only

Get one medication order from MEDITECH by its FHIR ID.
Returns a FHIR MedicationRequest resource with medication, status, intent, category, authored date, requester, dosage instructions, and dispense request.
Use meditech_medication_request_read to fetch one known ID. Use meditech_medication_request_search to find medication orders.

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

Inputs:

- `medication_request_id` (`string`, required): FHIR logical ID of the medication order, without the 'MedicationRequest/' prefix. Example: 12345

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

### `meditech_medication_request_search`

Search Medication Requests · Read-only

Search a patient's medication orders in MEDITECH, optionally by intent, status, encounter, or date written.
Returns a FHIR Bundle of MedicationRequest resources (medication, status, intent, category, authored date, requester, dosage instructions, and dispense request). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_medication_request_search to find or list records. Use meditech_medication_request_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of medication orders to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single medication order to return. Use it on its own, without the other filters. Example: 12345
- `authoredon` (`array`, optional): Filter medication orders by the date they were written. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `encounter` (`string`, optional): FHIR logical ID of the encounter the orders were placed in. MEDITECH accepts it only together with intent. Example: 67890
- `intent` (`string`, optional): Order intent to filter by. Example: order. One of: `proposal`, `plan`, `order`, `original-order`, `reflex-order`, `filler-order`, `instance-order`, `option`.
- `patient` (`string`, optional): FHIR logical ID of the patient whose medication orders to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Order status to filter by. Example: active. One of: `active`, `on-hold`, `cancelled`, `completed`, `entered-in-error`, `stopped`, `draft`, `unknown`.

Example input: `{}`

### `meditech_next_page`

Get Next Page of Search Results · Read-only

Fetch the next page of results from a previous MEDITECH search tool by following its Bundle's next link.
Returns a FHIR Bundle of the same resource type; when that Bundle has no next link, it is the last page.
Use meditech_next_page only to continue a search. Start a new search with the matching meditech_*_search tool.

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 (the Bundle link with relation "next") that comes after the connection's FHIR base, which ends in /v2/uscore/STU6/. Start with the resource type, with no leading slash, and copy the rest exactly, including MEDITECH's continue paging token; don't decode, rebuild, or edit it. Example: for the next link https://greenfield-apis.meditech.com/v2/uscore/STU6/Observation?patient=12345&category=laboratory&continue=abc123 pass Observation?patient=12345&category=laboratory&continue=abc123

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

### `meditech_observation_read`

Get Observation · Read-only

Get one observation from MEDITECH by its FHIR ID.
Returns a FHIR Observation resource with category, code, status, effective time, value with units, interpretation, reference ranges, and components such as blood pressure parts.
Use meditech_observation_read to fetch one known ID. Use meditech_observation_search to find observations.

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

Inputs:

- `observation_id` (`string`, required): FHIR logical ID of the observation, without the 'Observation/' prefix. Example: 12345

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

### `meditech_observation_search`

Search Observations · Read-only

Search a patient's observations in MEDITECH, such as vital signs, lab results, and social history, by category, code, or date.
Returns a FHIR Bundle of Observation resources (category, code, status, effective time, value with units, interpretation, reference ranges, and components such as blood pressure parts). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_observation_search to find or list records. Use meditech_observation_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of observations to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single observation to return. Use it on its own, without the other filters. Example: 12345
- `category` (`string`, optional): Observation category code. Example: vital-signs
- `code` (`string`, optional): Observation code as system|code or a bare LOINC code; separate several with commas. Example: http://loinc.org|8867-4
- `date` (`array`, optional): Filter observations by effective date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose observations to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345

Example input: `{}`

### `meditech_organization_read`

Get Organization · Read-only

Get one organization from MEDITECH by its FHIR ID.
Returns a FHIR Organization resource with name, identifiers (such as NPI), type, address, and telecom.
Use meditech_organization_read to fetch one known ID. Use meditech_organization_search to find organizations.

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

Inputs:

- `organization_id` (`string`, required): FHIR logical ID of the organization, without the 'Organization/' prefix. Example: 12345

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

### `meditech_organization_search`

Search Organizations · Read-only

Search organizations in MEDITECH by name or address.
Returns a FHIR Bundle of Organization resources (name, identifiers (such as NPI), type, address, and telecom). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_organization_search to find or list records. Use meditech_organization_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of organizations to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single organization to return. Use it on its own, without the other filters. Example: 12345
- `address` (`string`, optional): Text that matches any part of the organization address. Example: Boston
- `name` (`string`, optional): Text that matches the organization name. Example: Community Hospital

Example input: `{}`

### `meditech_patient_everything`

Get Patient Everything · Read-only

Get a patient's whole record from MEDITECH in one call (FHIR Patient $everything), optionally limited to some resource types or a date range.
Returns a FHIR Bundle with the Patient and the clinical resources that reference them. If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_patient_everything for a full chart summary. Use the resource search tools, such as meditech_condition_search, for one kind of record.

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

Inputs:

- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with meditech_patient_search. Example: 12345
- `_type` (`string`, optional): Comma-separated FHIR resource types to include; leave empty for every type the server returns. Example: Condition,MedicationRequest,AllergyIntolerance
- `end` (`string`, optional): Only include care records dated on or before this date (YYYY-MM-DD). Example: 2024-12-31
- `start` (`string`, optional): Only include care records dated on or after this date (YYYY-MM-DD). Example: 2024-01-01

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

### `meditech_patient_read`

Get Patient · Read-only

Get one patient from MEDITECH by its FHIR ID.
Returns a FHIR Patient resource with identifiers such as the MRN, name, birth date, gender, address, telecom, race and ethnicity extensions, and communication language.
Use meditech_patient_read to fetch one known ID. Use meditech_patient_search to find patients.

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

Inputs:

- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Example: 12345

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

### `meditech_patient_search`

Search Patients · Read-only

Search patients in MEDITECH by identifier (such as MRN), name, birth date, gender, email, or phone.
Returns a FHIR Bundle of Patient resources (identifiers such as the MRN, name, birth date, gender, address, telecom, race and ethnicity extensions, and communication language). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_patient_search to find or list records. Use meditech_patient_read to fetch one known ID.
Use the patient's FHIR ID from this result as the patient input of the other meditech search tools.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of patients to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single patient to return. Use it on its own, without the other filters. Example: 12345
- `birthdate` (`string`, optional): Patient date of birth (YYYY-MM-DD). Example: 1980-01-01
- `email` (`string`, optional): Patient email address. Example: patient@example.com
- `family` (`string`, optional): Patient last name. Example: Doe
- `gender` (`string`, optional): Administrative gender. Example: female. One of: `male`, `female`, `other`, `unknown`.
- `identifier` (`string`, optional): Patient identifier such as the medical record number, as system|value or a bare value. Example: 1234567
- `name` (`string`, optional): Patient name as "Last,First" (MEDITECH's format). Example: Doe,Jane
- `phone` (`string`, optional): Patient phone number. Example: 555-555-0100

Example input: `{}`

### `meditech_practitioner_read`

Get Practitioner · Read-only

Get one practitioner from MEDITECH by its FHIR ID.
Returns a FHIR Practitioner resource with identifiers such as the NPI, name, telecom, address, and qualifications.
Use meditech_practitioner_read to fetch one known ID. Use meditech_practitioner_search to find practitioners.

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

Inputs:

- `practitioner_id` (`string`, required): FHIR logical ID of the practitioner, without the 'Practitioner/' prefix. Example: 12345

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

### `meditech_practitioner_role_read`

Get Practitioner Role · Read-only

Get one practitioner role from MEDITECH by its FHIR ID.
Returns a FHIR PractitionerRole resource with practitioner, organization, role code, specialty, locations, and telecom.
Use meditech_practitioner_role_read to fetch one known ID. Use meditech_practitioner_role_search to find practitioner roles.

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

Inputs:

- `practitioner_role_id` (`string`, required): FHIR logical ID of the practitioner role, without the 'PractitionerRole/' prefix. Example: 12345

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

### `meditech_practitioner_role_search`

Search Practitioner Roles · Read-only

Search practitioner roles in MEDITECH by specialty or practitioner.
Returns a FHIR Bundle of PractitionerRole resources (practitioner, organization, role code, specialty, locations, and telecom). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_practitioner_role_search to find or list records. Use meditech_practitioner_role_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of practitioner roles to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single practitioner role to return. Use it on its own, without the other filters. Example: 12345
- `practitioner` (`string`, optional): The practitioner: a reference (Practitioner/<id>), an identifier (system|value) or a name. Example: Practitioner/67890
- `specialty` (`string`, optional): Specialty code as system|code or a bare code (NUCC taxonomy). Example: http://nucc.org/provider-taxonomy|207Q00000X

Example input: `{}`

### `meditech_practitioner_search`

Search Practitioners · Read-only

Search practitioners in MEDITECH by name, identifier (NPI, license or DEA number), or active state.
Returns a FHIR Bundle of Practitioner resources (identifiers such as the NPI, name, telecom, address, and qualifications). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_practitioner_search to find or list records. Use meditech_practitioner_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of practitioners to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single practitioner to return. Use it on its own, without the other filters. Example: 12345
- `active` (`string`, optional): Set true for active practitioners only, or false for inactive ones. Example: true
- `family` (`string`, optional): Practitioner last name. Don't combine with given. Example: Smith
- `given` (`string`, optional): Practitioner first name. Don't combine with family or identifier. Example: Alex
- `identifier` (`string`, optional): Practitioner identifier: NPI, license number or DEA number, as system|value or a bare value. Example: http://hl7.org/fhir/sid/us-npi|1234567893
- `name` (`string`, optional): Text that matches the practitioner's last or first name. Example: Smith

Example input: `{}`

### `meditech_procedure_read`

Get Procedure · Read-only

Get one procedure from MEDITECH by its FHIR ID.
Returns a FHIR Procedure resource with procedure code, status, performed date or period, performer, and reason.
Use meditech_procedure_read to fetch one known ID. Use meditech_procedure_search to find procedures.

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

Inputs:

- `procedure_id` (`string`, required): FHIR logical ID of the procedure, without the 'Procedure/' prefix. Example: 12345

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

### `meditech_procedure_search`

Search Procedures · Read-only

Search a patient's procedures in MEDITECH, optionally by date, code, or status.
Returns a FHIR Bundle of Procedure resources (procedure code, status, performed date or period, performer, and reason). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_procedure_search to find or list records. Use meditech_procedure_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of procedures to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single procedure to return. Use it on its own, without the other filters. Example: 12345
- `code` (`string`, optional): Procedure code as system|code or a bare code (SNOMED CT, CPT or ICD-10-PCS). Example: http://snomed.info/sct|80146002
- `date` (`array`, optional): Filter procedures by performed date. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose procedures to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Procedure status to filter by. Example: completed. One of: `preparation`, `in-progress`, `not-done`, `on-hold`, `stopped`, `completed`, `entered-in-error`, `unknown`.

Example input: `{}`

### `meditech_provenance_read`

Get Provenance · Read-only

Get one provenance record from MEDITECH by its FHIR ID.
Returns a FHIR Provenance resource with the target resources, recorded time, and agents (author and transmitter) with their organizations.
Use meditech_provenance_read to fetch one known ID; MEDITECH offers no search for provenance records, so take the ID from a reference in another resource.

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

Inputs:

- `provenance_id` (`string`, required): FHIR logical ID of the provenance record, without the 'Provenance/' prefix. Example: 12345

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

### `meditech_questionnaire_response_read`

Get Questionnaire Response · Read-only

Get one questionnaire response from MEDITECH by its FHIR ID.
Returns a FHIR QuestionnaireResponse resource with questionnaire canonical URL, status, subject, authored time, author, and the answered items.
Use meditech_questionnaire_response_read to fetch one known ID. Use meditech_questionnaire_response_search to find questionnaire responses.

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

Inputs:

- `questionnaire_response_id` (`string`, required): FHIR logical ID of the questionnaire response, without the 'QuestionnaireResponse/' prefix. Example: 12345

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

### `meditech_questionnaire_response_search`

Search Questionnaire Responses · Read-only

Search questionnaire responses (completed forms) in MEDITECH by patient, questionnaire, status, date, or context.
Returns a FHIR Bundle of QuestionnaireResponse resources (questionnaire canonical URL, status, subject, authored time, author, and the answered items). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_questionnaire_response_search to find or list records. Use meditech_questionnaire_response_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of questionnaire responses to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single questionnaire response to return. Use it on its own, without the other filters. Example: 12345
- `authored` (`array`, optional): Filter questionnaire responses by the date the answers were gathered. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `context` (`string`, optional): Reference to the resource the responses are associated with, such as an encounter. Example: Encounter/67890
- `patient` (`string`, optional): FHIR logical ID of the patient whose questionnaire responses to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `questionnaire` (`string`, optional): Canonical URL of the questionnaire that was answered. Example: http://example.org/Questionnaire/phq-9
- `status` (`string`, optional): Response status to filter by. Example: completed. One of: `in-progress`, `completed`, `amended`, `entered-in-error`, `stopped`.

Example input: `{}`

### `meditech_related_person_read`

Get Related Person · Read-only

Get one related person from MEDITECH by its FHIR ID.
Returns a FHIR RelatedPerson resource with name, relationship to the patient, telecom, and address.
Use meditech_related_person_read to fetch one known ID. Use meditech_related_person_search to find related persons.

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

Inputs:

- `related_person_id` (`string`, required): FHIR logical ID of the related person, without the 'RelatedPerson/' prefix. Example: 12345

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

### `meditech_related_person_search`

Search Related Persons · Read-only

Search a patient's related persons in MEDITECH, such as family members and caregivers.
Returns a FHIR Bundle of RelatedPerson resources (name, relationship to the patient, telecom, and address). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_related_person_search to find or list records. Use meditech_related_person_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of related persons to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single related person to return. Use it on its own, without the other filters. Example: 12345
- `name` (`string`, optional): Text that matches the related person's name. MEDITECH accepts it only together with patient. Example: Doe
- `patient` (`string`, optional): FHIR logical ID of the patient whose related persons to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345

Example input: `{}`

### `meditech_service_request_read`

Get Service Request · Read-only

Get one service request from MEDITECH by its FHIR ID.
Returns a FHIR ServiceRequest resource with status, intent, category, order code, authored date, requester, and the encounter.
Use meditech_service_request_read to fetch one known ID. Use meditech_service_request_search to find service requests.

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

Inputs:

- `service_request_id` (`string`, required): FHIR logical ID of the service request, without the 'ServiceRequest/' prefix. Example: 12345

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

### `meditech_service_request_search`

Search Service Requests · Read-only

Search a patient's service requests (lab, imaging and other orders) in MEDITECH by category, code, status, date, or encounter.
Returns a FHIR Bundle of ServiceRequest resources (status, intent, category, order code, authored date, requester, and the encounter). If the result has a `next` link, use `meditech_next_page` to get more.
Use meditech_service_request_search to find or list records. Use meditech_service_request_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of service requests to return on one page. MEDITECH sets the default page size. Example: 20
- `_id` (`string`, optional): Logical ID of a single service request to return. Use it on its own, without the other filters. Example: 12345
- `authored` (`array`, optional): Filter service requests by the date they were written. Pass one or two values as a JSON array; each value can start with a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Use ge and le together for a range. Example: ["ge2024-01-01", "le2024-12-31"]
- `category` (`string`, optional): Service request category as system|code or a bare code, for example the SNOMED CT codes 108252007 (laboratory) or 363679005 (imaging). Example: http://snomed.info/sct|108252007
- `code` (`string`, optional): Order code as system|code or a bare code. Example: http://loinc.org|24323-8
- `encounter` (`string`, optional): FHIR logical ID of the encounter the requests belong to. Example: 67890
- `patient` (`string`, optional): FHIR logical ID of the patient whose service requests to return, without the 'Patient/' prefix. Required unless _id is given. Find it with meditech_patient_search. Example: 12345
- `status` (`string`, optional): Request status to filter by. Example: active. One of: `draft`, `active`, `on-hold`, `revoked`, `completed`, `entered-in-error`, `unknown`.

Example input: `{}`

### `meditech_specimen_read`

Get Specimen · Read-only

Get one specimen from MEDITECH by its FHIR ID.
Returns a FHIR Specimen resource with specimen type, collection time and method, and the patient.
Use meditech_specimen_read to fetch one known ID; MEDITECH offers no search for specimens, so take the ID from a reference in another resource.

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

Inputs:

- `specimen_id` (`string`, required): FHIR logical ID of the specimen, without the 'Specimen/' prefix. Example: 12345

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

### `meditech_task_read`

Get Task · Read-only

Get one task from MEDITECH by its FHIR ID.
Returns a FHIR Task resource with status, intent, code, description, focus, owner, and the patient it is for.
Use meditech_task_read to fetch one known ID; MEDITECH offers no search for tasks, so take the ID from a reference in another resource.

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

Inputs:

- `task_id` (`string`, required): FHIR logical ID of the task, without the 'Task/' prefix. Example: 12345

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

### `meditech_questionnaire_response_create`

Create Questionnaire Response · Write

Save a completed or in-progress form (questionnaire response) for a patient in MEDITECH.
Returns the stored QuestionnaireResponse with its new FHIR ID (HTTP 201; the Location header points to it). Needs QuestionnaireResponse write scope.
Use meditech_questionnaire_response_create for a new response. Use meditech_questionnaire_response_update to change one that exists.

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

Inputs:

- `resource` (`object`, required): The QuestionnaireResponse resource as JSON, following the US Core QuestionnaireResponse profile: questionnaire (canonical URL), status (in-progress or completed), subject (the patient reference), authored (date-time), author, and item (the answers, each with linkId and answer values). resourceType is set by the tool. Example: {"questionnaire": "http://example.org/Questionnaire/phq-9", "status": "completed", "subject": {"reference": "Patient/12345"}, "authored": "2024-05-01T10:00:00Z", "item": [{"linkId": "1", "answer": [{"valueInteger": 2}]}]}

Example input: `{"resource":{}}`

### `meditech_questionnaire_response_update`

Update Questionnaire Response · Write

Replace an existing questionnaire response in MEDITECH with an edited copy (FHIR update), for example to complete or amend a form.
Returns the stored QuestionnaireResponse. Needs QuestionnaireResponse write scope.
Use it after meditech_questionnaire_response_read: change the fields you need and send the whole resource back. Use meditech_questionnaire_response_create for a new response.

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

Inputs:

- `questionnaire_response_id` (`string`, required): FHIR logical ID of the questionnaire response to update. Example: 12345
- `resource` (`object`, required): The complete QuestionnaireResponse resource as JSON, usually the output of meditech_questionnaire_response_read with your changes applied. The server replaces the whole record, so any field you leave out is cleared. resourceType and id are set by the tool. Example: {"questionnaire": "http://example.org/Questionnaire/phq-9", "status": "amended", "subject": {"reference": "Patient/12345"}, "item": [{"linkId": "1", "answer": [{"valueInteger": 3}]}]}

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

## 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 |
