> **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 Oracle Health (Cerner)

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

**Authentication:** SMART On FHIR
**Categories:** Healthcare
**Tools:** 82: 66 read, 16 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=ORACLEHEALTH)

## 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 Oracle Health (Cerner) connection

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

   **Console steps with screenshots:**

   Oracle Health (Cerner Millennium) connections use SMART on FHIR and act as the signed-in clinician through Oracle Health's provider persona. Each Oracle Health tenant has its own tenant ID, and that ID is part of the authorization endpoint, the token endpoint and the FHIR base URL. Each connection carries those values plus the client ID and secret of your Oracle Health 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 **Oracle Health** and click **Create**. Copy the **Redirect URI**.

   2. ### Register a provider app with Oracle Health

      In the Oracle Health code console, register a confidential app for the **provider** persona that uses user-context scopes, and note its client ID and client secret:

      - Add the redirect URI you copied.
      - Request refresh tokens (`offline_access`).
      - Choose SMART v1 scopes, and enable the user-level scope for every resource your agent reads or writes. Oracle Health grants only the resources enabled on the app.

      For a production tenant, get the customer's tenant ID. The customer also files a service request with Oracle Health to provision your app for their tenant.

   3. ### Find the tenant's endpoints

      The FHIR R4 base for a tenant is `https://<fhir-host>/r4/<tenant-id>`. Open `<FHIR base>/.well-known/smart-configuration` and copy `authorization_endpoint` and `token_endpoint`. Both include the tenant ID, and the authorization endpoint ends in `/personas/provider/authorize`.

   4. ### Enter the values on the connection

      Back on the Oracle Health connection, enter:

      - **Client ID** and **Client Secret**: from your Oracle Health app.
      - **Authorization Endpoint** and **Token Endpoint**: from `.well-known/smart-configuration`.
      - **Audience (aud)**: the full FHIR base URL, including the tenant ID.
      - **FHIR Server Domain**: the FHIR base without `https://`, including its path, such as `<fhir-host>/r4/<tenant-id>`.

      Select `openid`, `fhirUser` and `offline_access`, plus the SMART v1 resource scopes your agent needs, such as `user/Patient.read` and `user/Condition.write`. Leave SMART v2 scopes (such as `user/Patient.rs`) unselected: if a request includes any v2 scope, Oracle Health returns a token that can't read any data. Click **Save**.

      To test against Oracle Health's sandbox tenant, use these values:

      | Field                  | Sandbox value                                                                                                                                  |
      | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
      | Authorization Endpoint | `https://authorization.cerner.com/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/protocols/oauth2/profiles/smart-v1/personas/provider/authorize` |
      | Token Endpoint         | `https://authorization.cerner.com/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/hosts/fhir-ehr-code.cerner.com/protocols/oauth2/profiles/smart-v1/token` |
      | Audience (aud)         | `https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d`                                                                     |
      | FHIR Server Domain     | `fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d`                                                                             |

   > note: Updates replace the whole record
   >
   > Oracle Health clears any field an update leaves out. Read the record first, edit it and send the whole record back with its version ID.

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

**Python**

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

### `oraclehealth_allergy_intolerance_read`

Get Allergy Intolerance · Read-only

Get one allergy or intolerance from Oracle Health by its FHIR logical ID.
Returns the FHIR AllergyIntolerance resource: substance code, clinical and verification status, criticality, reactions, and notes, plus meta.versionId.
Use oraclehealth_allergy_intolerance_read when you have the ID. Use oraclehealth_allergy_intolerance_search to find allergies and intolerances for a patient, optionally by clinical status or last update.

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

Inputs:

- `allergy_intolerance_id` (`string`, required): FHIR logical ID of the allergy or intolerance, from a search result or a reference such as AllergyIntolerance/<id>. Example: 12345

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

### `oraclehealth_allergy_intolerance_search`

Search Allergy Intolerances · Read-only

Search allergies and intolerances in Oracle Health for a patient, optionally by clinical status or last update.
Returns a FHIR Bundle of AllergyIntolerance resources (substance code, clinical and verification status, criticality, reactions, and notes) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_allergy_intolerance_search to find or list records. Use oraclehealth_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 the allergy record to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter allergy records by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `clinical_status` (`string`, optional): Clinical status to filter by: active, inactive, or resolved. Example: active. One of: `active`, `inactive`, `resolved`.
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_appointment_read`

Get Appointment · Read-only

Get one appointment from Oracle Health by its FHIR logical ID.
Returns the FHIR Appointment resource: status, service type, start and end, slot, participants (patient, practitioner, location), reason, and comment, plus meta.versionId.
Use oraclehealth_appointment_read when you have the ID. Use oraclehealth_appointment_search to find appointments for one patient, practitioner, or location in a date range.

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

Inputs:

- `appointment_id` (`string`, required): FHIR logical ID of the appointment, from a search result or a reference such as Appointment/<id>. Example: 12345

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

### `oraclehealth_appointment_search`

Search Appointments · Read-only

Search appointments in Oracle Health for one patient, practitioner, or location in a date range.
Returns a FHIR Bundle of Appointment resources (status, service type, start and end, slot, participants (patient, practitioner, location), reason, and comment) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_appointment_search to find or list records. Use oraclehealth_appointment_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the appointment to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `date` (`array`, optional): Appointment start/end range (excludes proposed appointments). Required with patient, practitioner, or location unless date_or_requested_period is set; values need a time and offset. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `date_or_requested_period` (`array`, optional): Like date, but also returns proposed appointments whose requested period falls in the range. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `location` (`string`, optional): FHIR logical ID of the location; several may be comma-separated. Use exactly one of patient, practitioner, or location, together with a date range. Example: 34567
- `patient` (`string`, optional): FHIR logical ID of the patient; several may be comma-separated. Use exactly one of patient, practitioner, or location, together with date or date_or_requested_period. Example: 12345
- `practitioner` (`string`, optional): FHIR logical ID of the practitioner; several may be comma-separated. Use exactly one of patient, practitioner, or location, together with a date range. Example: 23456
- `status` (`string`, optional): Appointment status; several may be comma-separated: proposed, pending, booked, arrived, fulfilled, cancelled, noshow, entered-in-error, checked-in, waitlist. Example: booked

Example input: `{}`

### `oraclehealth_binary_autogen_ccd`

Generate Patient CCD · Read-only

Generate a Continuity of Care Document (CCD) for a patient, optionally for one encounter or a date range.
Returns a FHIR Binary resource whose base64 data is the C-CDA XML document.
Use it to get a full clinical summary in one call. Use the individual search tools (conditions, medications, allergies, results) for structured data.

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

Inputs:

- `patient` (`string`, required): FHIR logical ID of the patient the CCD is about. Example: 12345
- `encounter` (`string`, optional): FHIR logical ID of an encounter to limit the CCD to. Example: 67890
- `end` (`string`, optional): End of the date range, as a date-time with time component and no prefix. Omit to include records up to now. Example: 2024-12-31T23:59:59Z
- `start` (`string`, optional): Start of the date range, as a date-time with time component and no prefix. Omit to include everything before end. Example: 2024-01-01T00:00:00Z

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

### `oraclehealth_binary_read`

Get Binary Document · Read-only

Get the content of a clinical document, report, or message from Oracle Health by its Binary ID.
Returns a FHIR Binary resource with contentType and base64-encoded data (for example the text, HTML, RTF, or PDF of a note).
Use it to read the attachment that a document reference, diagnostic report (presentedForm), or communication payload links to. Use oraclehealth_document_reference_search to find the documents first.
Needs the Binary read scope plus read access to the referring DocumentReference, DiagnosticReport, or Communication.

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

Inputs:

- `binary_id` (`string`, required): FHIR logical ID of the Binary, taken from the attachment URL (the part after Binary/) in a DocumentReference, DiagnosticReport, or Communication. Example: TR-12345

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

### `oraclehealth_care_plan_read`

Get Care Plan · Read-only

Get one care plan from Oracle Health by its FHIR logical ID.
Returns the FHIR CarePlan resource: plan category, status, intent, period, and narrative description (activity details are not returned by Oracle Health), plus meta.versionId.
Use oraclehealth_care_plan_read when you have the ID. Use oraclehealth_care_plan_search to find care plans for a patient (category assess-plan).

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

Inputs:

- `care_plan_id` (`string`, required): FHIR logical ID of the care plan, from a search result or a reference such as CarePlan/<id>. Example: 12345

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

### `oraclehealth_care_plan_search`

Search Care Plans · Read-only

Search care plans in Oracle Health for a patient (category assess-plan).
Returns a FHIR Bundle of CarePlan resources (plan category, status, intent, period, and narrative description (activity details are not returned by Oracle Health)) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_care_plan_search to find or list records. Use oraclehealth_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 results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the care plan to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `category` (`string`, optional): Care plan category. Oracle Health supports only assess-plan, and it is required with patient. Example: assess-plan. One of: `assess-plan`.
- `date` (`array`, optional): Filter by the period the plan covers. Must have two values: one ge and one le, with the same precision. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose care plans to return, without the 'Patient/' prefix. Required unless _id is given; send with category. Find it with oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_care_team_read`

Get Care Team · Read-only

Get one care team from Oracle Health by its FHIR logical ID.
Returns the FHIR CareTeam resource: team category, status, participants with their roles, and the patient or encounter it serves, plus meta.versionId.
Use oraclehealth_care_team_read when you have the ID. Use oraclehealth_care_team_search to find care teams for a patient or encounter.

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

Inputs:

- `care_team_id` (`string`, required): FHIR logical ID of the care team, from a search result or a reference such as CareTeam/<id>. Example: 12345

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

### `oraclehealth_care_team_search`

Search Care Teams · Read-only

Search care teams in Oracle Health for a patient or encounter.
Returns a FHIR Bundle of CareTeam resources (team category, status, participants with their roles, and the patient or encounter it serves) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_care_team_search to find or list records. Use oraclehealth_care_team_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the care team to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `category` (`string`, optional): Care team category: longitudinal or encounter. Use only with patient. Example: longitudinal. One of: `longitudinal`, `encounter`.
- `encounter` (`string`, optional): FHIR logical ID of an encounter to return its care team. Required unless _id or patient is given; can't be combined with category or status. Example: 67890
- `patient` (`string`, optional): FHIR logical ID of the patient whose care teams to return, without the 'Patient/' prefix. Required unless _id or encounter is given. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, optional): Care team status to filter by, for example active. Use with patient. Example: active

Example input: `{}`

### `oraclehealth_communication_read`

Get Communication · Read-only

Get one message (Communication) from Oracle Health by its FHIR logical ID.
Returns the FHIR Communication resource: category, status, sender, recipients, topic, sent and received times, and a payload link whose text is fetched with oraclehealth_binary_read, plus meta.versionId.
Use oraclehealth_communication_read when you have the ID. Use oraclehealth_communication_search to find inbox messages for a recipient by category, received date, and email status.

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

Inputs:

- `communication_id` (`string`, required): FHIR logical ID of the message (Communication), from a search result or a reference such as Communication/<id>. Example: 12345

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

### `oraclehealth_communication_search`

Search Communications · Read-only

Search inbox messages in Oracle Health for a recipient by category, received date, and email status.
Returns a FHIR Bundle of Communication resources (category, status, sender, recipients, topic, sent and received times, and a payload link whose text is fetched with oraclehealth_binary_read) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_communication_search to find or list records. Use oraclehealth_communication_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the communication to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `category` (`string`, optional): Communication category as system|code. Required with recipient, received, and email_status unless _id is given. Example: http://terminology.hl7.org/CodeSystem/communication-category|notification
- `email_status` (`string`, optional): Email status as system|code. Required with category, recipient, and received unless _id is given. Example: http://hl7.org/fhir/task-status|in-progress
- `received` (`array`, optional): Received date range; values need a time component. One value uses ge; two values use ge and le. Required with category, recipient, and email_status unless _id is given. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `recipient` (`string`, optional): Recipient practitioner or group, for example Practitioner/23456. Required with category, received, and email_status unless _id is given. Example: Practitioner/23456

Example input: `{}`

### `oraclehealth_condition_read`

Get Condition · Read-only

Get one condition (problem or diagnosis) from Oracle Health by its FHIR logical ID.
Returns the FHIR Condition resource: condition code, category (problem list or encounter diagnosis), clinical and verification status, onset, and notes, plus meta.versionId.
Use oraclehealth_condition_read when you have the ID. Use oraclehealth_condition_search to find conditions for a patient, optionally by category, clinical status, encounter, or last update.

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

Inputs:

- `condition_id` (`string`, required): FHIR logical ID of the condition (problem or diagnosis), from a search result or a reference such as Condition/<id>. Example: 12345

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

### `oraclehealth_condition_search`

Search Conditions · Read-only

Search conditions in Oracle Health for a patient, optionally by category, clinical status, encounter, or last update.
Returns a FHIR Bundle of Condition resources (condition code, category (problem list or encounter diagnosis), clinical and verification status, onset, and notes) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_condition_search to find or list records. Use oraclehealth_condition_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the condition to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter conditions by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `category` (`string`, optional): Condition category: problem-list-item, encounter-diagnosis, health-concern, or sdoh. Example: problem-list-item. One of: `problem-list-item`, `encounter-diagnosis`, `health-concern`, `sdoh`.
- `clinical_status` (`string`, optional): Clinical status to filter by, for example active, inactive, or resolved. Example: active
- `encounter` (`string`, optional): FHIR logical ID of an encounter. Returns that encounter's encounter-diagnosis conditions plus all of the patient's problem-list items. Example: 67890
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_coverage_read`

Get Coverage · Read-only

Get one insurance coverage from Oracle Health by its FHIR logical ID.
Returns the FHIR Coverage resource: payor, plan, subscriber, beneficiary relationship, period, and order of coverage, plus meta.versionId.
Use oraclehealth_coverage_read when you have the ID. Use oraclehealth_coverage_search to find insurance coverages for a patient or encounter.

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

Inputs:

- `coverage_id` (`string`, required): FHIR logical ID of the insurance coverage, from a search result or a reference such as Coverage/<id>. Example: 12345

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

### `oraclehealth_coverage_search`

Search Coverages · Read-only

Search insurance coverages in Oracle Health for a patient or encounter.
Returns a FHIR Bundle of Coverage resources (payor, plan, subscriber, beneficiary relationship, period, and order of coverage) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_coverage_search to find or list records. Use oraclehealth_coverage_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the coverage to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `encounter` (`string`, optional): FHIR logical ID of an encounter to return its encounter-level coverages. Example: 67890
- `patient` (`string`, optional): Patient whose coverages to return, as Patient/<id> (the vendor's documented form). Required unless _id or encounter is given. Example: Patient/12345

Example input: `{}`

### `oraclehealth_device_read`

Get Device · Read-only

Get one implantable device from Oracle Health by its FHIR logical ID.
Returns the FHIR Device resource: device type, UDI, status, manufacturer details, and the patient, plus meta.versionId.
Use oraclehealth_device_read when you have the ID. Use oraclehealth_device_search to find devices for a patient.

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

Inputs:

- `device_id` (`string`, required): FHIR logical ID of the implantable device, from a search result or a reference such as Device/<id>. Example: 12345

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

### `oraclehealth_device_search`

Search Devices · Read-only

Search devices in Oracle Health for a patient.
Returns a FHIR Bundle of Device resources (device type, UDI, status, manufacturer details, and the patient) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_device_search to find or list records. Use oraclehealth_device_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the device to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose devices to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_diagnostic_report_read`

Get Diagnostic Report · Read-only

Get one diagnostic report from Oracle Health by its FHIR logical ID.
Returns the FHIR DiagnosticReport resource: report code, category, status, effective time, result references, conclusion, and links to the report document (presentedForm), plus meta.versionId.
Use oraclehealth_diagnostic_report_read when you have the ID. Use oraclehealth_diagnostic_report_search to find diagnostic reports for a patient by category, code, encounter, or date.

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

Inputs:

- `diagnostic_report_id` (`string`, required): FHIR logical ID of the diagnostic report, from a search result or a reference such as DiagnosticReport/<id>. Example: 12345

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

### `oraclehealth_diagnostic_report_search`

Search Diagnostic Reports · Read-only

Search diagnostic reports in Oracle Health for a patient by category, code, encounter, or date.
Returns a FHIR Bundle of DiagnosticReport resources (report code, category, status, effective time, result references, conclusion, and links to the report document (presentedForm)) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_diagnostic_report_search to find or list records. Use oraclehealth_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 results per page. Default 10, maximum 100. Example: 20
- `_id` (`string`, optional): Logical ID of the diagnostic report to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter diagnostic reports by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `category` (`string`, optional): Report category as system|code. Example: http://terminology.hl7.org/CodeSystem/v2-0074|LAB
- `code` (`string`, optional): Report code as system|code. Example: http://loinc.org|24323-8
- `date` (`array`, optional): Filter by the report's effective date-time. Can't be combined with _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `encounter` (`string`, optional): FHIR logical ID of the encounter to filter diagnostic reports by, without the 'Encounter/' prefix. Several IDs may be comma-separated. Example: 67890
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_document_reference_docref`

Find Patient Documents ($docref) · Read-only

Run the $docref operation to list a patient's documents of given types in an optional date range.
Returns a FHIR Bundle of DocumentReference resources; fetch each document's content with oraclehealth_binary_read.
Use it for a type-driven lookup such as the patient's summary of care (CCD). Use oraclehealth_document_reference_search for general filtering by encounter, category, or date.

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

Inputs:

- `patient` (`string`, required): FHIR logical ID of the patient. Example: 12345
- `type` (`string`, required): Document type(s) as system|code; both are required, several may be comma-separated. Example: http://loinc.org|34133-9 (summary of episode note / CCD)
- `end` (`string`, optional): End of the date range, as a date-time with time component and no prefix. Example: 2024-12-31T23:59:59Z
- `start` (`string`, optional): Start of the date range, as a date-time with time component and no prefix. Example: 2024-01-01T00:00:00Z

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

### `oraclehealth_document_reference_read`

Get Document Reference · Read-only

Get one clinical document reference from Oracle Health by its FHIR logical ID.
Returns the FHIR DocumentReference resource: document type, category, status, author, encounter context, and attachment links whose content is fetched with oraclehealth_binary_read, plus meta.versionId.
Use oraclehealth_document_reference_read when you have the ID. Use oraclehealth_document_reference_search to find clinical documents for a patient by type, category, encounter, or date.

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

Inputs:

- `document_reference_id` (`string`, required): FHIR logical ID of the clinical document reference, from a search result or a reference such as DocumentReference/<id>. Example: 12345

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

### `oraclehealth_document_reference_search`

Search Document References · Read-only

Search clinical documents in Oracle Health for a patient by type, category, encounter, or date.
Returns a FHIR Bundle of DocumentReference resources (document type, category, status, author, encounter context, and attachment links whose content is fetched with oraclehealth_binary_read) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_document_reference_search to find or list records. Use oraclehealth_document_reference_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Default 10, maximum 100. Example: 20
- `_id` (`string`, optional): Logical ID of the document reference to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter documents by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `category` (`string`, optional): Document category as system|code. Example: http://hl7.org/fhir/us/core/CodeSystem/us-core-documentreference-category|clinical-note
- `date` (`array`, optional): Filter by when the document reference was created. Use only one of date, period, or _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `encounter` (`string`, optional): FHIR logical ID of the encounter to filter documents by, without the 'Encounter/' prefix. Several IDs may be comma-separated. Example: 67890
- `patient` (`string`, optional): FHIR logical ID of the patient whose documents to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345
- `period` (`array`, optional): Filter by the time of service documented. Must have two values: one ge and one lt. Use only one of date, period, or _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `type` (`string`, optional): Document type as system|code; several may be comma-separated. Example: http://loinc.org|11506-3

Example input: `{}`

### `oraclehealth_encounter_read`

Get Encounter · Read-only

Get one encounter (visit or admission) from Oracle Health by its FHIR logical ID.
Returns the FHIR Encounter resource: encounter class, type, status, period, location, participants, and reason, plus meta.versionId.
Use oraclehealth_encounter_read when you have the ID. Use oraclehealth_encounter_search to find encounters for a patient, account, or identifier, optionally by status and date.

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

Inputs:

- `encounter_id` (`string`, required): FHIR logical ID of the encounter (visit or admission), from a search result or a reference such as Encounter/<id>. Example: 12345

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

### `oraclehealth_encounter_search`

Search Encounters · Read-only

Search encounters in Oracle Health for a patient, account, or identifier, optionally by status and date.
Returns a FHIR Bundle of Encounter resources (encounter class, type, status, period, location, participants, and reason) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_encounter_search to find or list records. Use oraclehealth_encounter_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the encounter to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter encounters by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `account` (`string`, optional): Financial account ID to return encounters for (provider persona only). Example: F000000
- `date` (`array`, optional): Filter by encounter period. Each value must use ge, gt, le, or lt. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `identifier` (`string`, optional): Encounter identifier as system|value, or the value alone (for example a financial number). Example: urn:oid:1.2.3.4|000000
- `patient` (`string`, optional): FHIR logical ID of the patient whose encounters to return. Required unless _id, account, or identifier is given. Oracle Health's docs say _count and status should be sent with patient. Find the ID with oraclehealth_patient_search. Example: 12345
- `status` (`string`, optional): Encounter status: planned, in-progress, finished, or cancelled. Example: finished. One of: `planned`, `in-progress`, `finished`, `cancelled`.

Example input: `{}`

### `oraclehealth_family_member_history_read`

Get Family Member History · Read-only

Get one family member history from Oracle Health by its FHIR logical ID.
Returns the FHIR FamilyMemberHistory resource: the relative's relationship, sex, conditions with onset, and status, plus meta.versionId.
Use oraclehealth_family_member_history_read when you have the ID. Use oraclehealth_family_member_history_search to find family member histories for a patient.

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

Inputs:

- `family_member_history_id` (`string`, required): FHIR logical ID of the family member history, from a search result or a reference such as FamilyMemberHistory/<id>. Example: 12345

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

### `oraclehealth_family_member_history_search`

Search Family Member Histories · Read-only

Search family member histories in Oracle Health for a patient.
Returns a FHIR Bundle of FamilyMemberHistory resources (the relative's relationship, sex, conditions with onset, and status) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_family_member_history_search to find or list records. Use oraclehealth_family_member_history_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the family member history to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `patient` (`string`, optional): FHIR logical ID of the patient whose family member histories to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, optional): Record status to filter by (patient searches only), for example completed. Example: completed

Example input: `{}`

### `oraclehealth_goal_read`

Get Goal · Read-only

Get one goal from Oracle Health by its FHIR logical ID.
Returns the FHIR Goal resource: goal description, lifecycle status, targets with due dates, and the patient, plus meta.versionId.
Use oraclehealth_goal_read when you have the ID. Use oraclehealth_goal_search to find goals for a patient, optionally by target date.

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

Inputs:

- `goal_id` (`string`, required): FHIR logical ID of the goal, from a search result or a reference such as Goal/<id>. Example: 12345

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

### `oraclehealth_goal_search`

Search Goals · Read-only

Search goals in Oracle Health for a patient, optionally by target date.
Returns a FHIR Bundle of Goal resources (goal description, lifecycle status, targets with due dates, and the patient) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_goal_search to find or list records. Use oraclehealth_goal_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the goal to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `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 oraclehealth_patient_search. Example: 12345
- `target_date` (`array`, optional): Filter by goal target date. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]

Example input: `{}`

### `oraclehealth_immunization_read`

Get Immunization · Read-only

Get one immunization from Oracle Health by its FHIR logical ID.
Returns the FHIR Immunization resource: vaccine code, status, occurrence date, lot number, site, route, dose, and performer, plus meta.versionId.
Use oraclehealth_immunization_read when you have the ID. Use oraclehealth_immunization_search to find immunizations for a patient, optionally by date or target disease.

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

Inputs:

- `immunization_id` (`string`, required): FHIR logical ID of the immunization, from a search result or a reference such as Immunization/<id>. Example: 12345

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

### `oraclehealth_immunization_search`

Search Immunizations · Read-only

Search immunizations in Oracle Health for a patient, optionally by date or target disease.
Returns a FHIR Bundle of Immunization resources (vaccine code, status, occurrence date, lot number, site, route, dose, and performer) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_immunization_search to find or list records. Use oraclehealth_immunization_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the immunization to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`string`, optional): Return immunizations updated after this date or date-time. One value only, with the gt or ge prefix. Example: ge2024-01-01T00:00:00Z
- `date` (`array`, optional): Filter by administration date; a single value must use le or ge. Can't be combined with _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `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 oraclehealth_patient_search. Example: 12345
- `target_disease` (`string`, optional): Disease the dose protects against, as system|code (standard codes only). Example: http://hl7.org/fhir/sid/cvx|213

Example input: `{}`

### `oraclehealth_location_read`

Get Location · Read-only

Get one location from Oracle Health by its FHIR logical ID.
Returns the FHIR Location resource: name, status, type, physical type, address, and managing organization, plus meta.versionId.
Use oraclehealth_location_read when you have the ID. Use oraclehealth_location_search to find locations by physical type, identifier, address, or name.

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

Inputs:

- `location_id` (`string`, required): FHIR logical ID of the location, from a search result or a reference such as Location/<id>. Example: 12345

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

### `oraclehealth_location_search`

Search Locations · Read-only

Search locations in Oracle Health by physical type, identifier, address, or name.
Returns a FHIR Bundle of Location resources (name, status, type, physical type, address, and managing organization) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_location_search to find or list records. Use oraclehealth_location_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the location to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `address` (`string`, optional): Part of the location's address. Example: 100 Example St
- `address_city` (`string`, optional): City in the address; also send address_state or address_postalcode. Example: Exampleville
- `address_postalcode` (`string`, optional): Postal code in the address. Example: 00000
- `address_state` (`string`, optional): State in the address. Example: MO
- `identifier` (`string`, optional): Location identifier. Example: 000000
- `name` (`string`, optional): Part of the location's name or alias; send with physical_type, identifier, or an address filter. Example: Main
- `organization` (`string`, optional): FHIR logical ID of the managing organization; send with physical_type, identifier, or an address filter. Example: 45678
- `physical_type` (`string`, optional): Physical type as system|code (standard codes only). Required unless _id is given. Example: http://terminology.hl7.org/CodeSystem/location-physical-type|ro

Example input: `{}`

### `oraclehealth_media_read`

Get Media · Read-only

Get one media item from Oracle Health by its FHIR logical ID.
Returns the FHIR Media resource: media type, content attachment, and the report it belongs to; read it from the link in a diagnostic report.
Use oraclehealth_media_read with an ID taken from a reference in another resource; Oracle Health offers no useful search for Media.

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

Inputs:

- `media_id` (`string`, required): FHIR logical ID of the media item, from a reference such as Media/<id>. Example: 12345

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

### `oraclehealth_medication_administration_read`

Get Medication Administration · Read-only

Get one medication administration from Oracle Health by its FHIR logical ID.
Returns the FHIR MedicationAdministration resource: medication, status, effective time, dose, route, performer, and the related order, plus meta.versionId.
Use oraclehealth_medication_administration_read when you have the ID. Use oraclehealth_medication_administration_search to find medication administrations for a patient, optionally by status, performer, or administration time.

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

Inputs:

- `medication_administration_id` (`string`, required): FHIR logical ID of the medication administration, from a search result or a reference such as MedicationAdministration/<id>. Example: 12345

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

### `oraclehealth_medication_administration_search`

Search Medication Administrations · Read-only

Search medication administrations in Oracle Health for a patient, optionally by status, performer, or administration time.
Returns a FHIR Bundle of MedicationAdministration resources (medication, status, effective time, dose, route, performer, and the related order) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_medication_administration_search to find or list records. Use oraclehealth_medication_administration_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the medication administration to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `effective_time` (`array`, optional): Filter by administration time; each value needs a time component. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose medication administrations to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345
- `performer` (`string`, optional): FHIR logical ID of the practitioner who gave the medication; several may be comma-separated. Example: 23456
- `status` (`string`, optional): Status; several may be comma-separated: completed, not-done, entered-in-error. Example: completed

Example input: `{}`

### `oraclehealth_medication_dispense_read`

Get Medication Dispense · Read-only

Get one medication dispense from Oracle Health by its FHIR logical ID.
Returns the FHIR MedicationDispense resource: medication, quantity, days supply, handover time, status, and the authorizing prescription, plus meta.versionId.
Use oraclehealth_medication_dispense_read when you have the ID. Use oraclehealth_medication_dispense_search to find medication dispenses for a patient, optionally by handover date.

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

Inputs:

- `medication_dispense_id` (`string`, required): FHIR logical ID of the medication dispense, from a search result or a reference such as MedicationDispense/<id>. Example: 12345

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

### `oraclehealth_medication_dispense_search`

Search Medication Dispenses · Read-only

Search medication dispenses in Oracle Health for a patient, optionally by handover date.
Returns a FHIR Bundle of MedicationDispense resources (medication, quantity, days supply, handover time, status, and the authorizing prescription) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_medication_dispense_search to find or list records. Use oraclehealth_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 results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the medication dispense to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`string`, optional): Return dispenses updated on or after this date-time. One value with ge or gt. Takes priority over date. Example: ge2024-01-01T00:00:00Z
- `date` (`string`, optional): Return dispenses handed over on or after this date-time. One value with the ge or gt prefix. Example: ge2024-01-01T00:00:00Z
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_medication_request_read`

Get Medication Request · Read-only

Get one medication request (order or reported medication) from Oracle Health by its FHIR logical ID.
Returns the FHIR MedicationRequest resource: medication code, status, intent, dosage instructions, requester, and dispense details, plus meta.versionId.
Use oraclehealth_medication_request_read when you have the ID. Use oraclehealth_medication_request_search to find medication requests for a patient, optionally by status, intent, or date.

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

Inputs:

- `medication_request_id` (`string`, required): FHIR logical ID of the medication request (order or reported medication), from a search result or a reference such as MedicationRequest/<id>. Example: 12345

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

### `oraclehealth_medication_request_search`

Search Medication Requests · Read-only

Search medication requests in Oracle Health for a patient, optionally by status, intent, or date.
Returns a FHIR Bundle of MedicationRequest resources (medication code, status, intent, dosage instructions, requester, and dispense details) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_medication_request_search to find or list records. Use oraclehealth_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 results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the medication request to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter medication requests by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `intent` (`string`, optional): Intent to filter by; several may be comma-separated: order (authorizations) or plan (reported medications). Example: order,plan
- `patient` (`string`, optional): FHIR logical ID of the patient whose medication requests to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, optional): Status to filter by; several may be comma-separated, for example active,completed. Example: active
- `timing_bounds_period` (`string`, optional): Return medications whose dosage timing period includes or follows this date-time. Must use the ge prefix. Example: ge2024-01-01T00:00:00Z

Example input: `{}`

### `oraclehealth_next_page`

Get Next Page of Search Results · Read-only

Fetch the next page of results from a previous Oracle Health 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 oraclehealth_next_page only to continue a search. Start a new search with the matching oraclehealth_*_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 /r4/<tenant-id>/, starting with the resource type, with no leading slash. Copy it exactly as it appears in the link, including the -pageContext and -pageDirection parameters; don't decode, rebuild, or edit it. Example: for the next link https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationDispense?patient=12621984&-pageContext=a7824f7f-3471-4609-ae68-d794969f9878&-pageDirection=NEXT pass MedicationDispense?patient=12621984&-pageContext=a7824f7f-3471-4609-ae68-d794969f9878&-pageDirection=NEXT

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

### `oraclehealth_nutrition_order_read`

Get Nutrition Order · Read-only

Get one nutrition order from Oracle Health by its FHIR logical ID.
Returns the FHIR NutritionOrder resource: diet, supplement, and feeding instructions, status, orderer, and timing, plus meta.versionId.
Use oraclehealth_nutrition_order_read when you have the ID. Use oraclehealth_nutrition_order_search to find nutrition orders for a patient, optionally by status or last update.

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

Inputs:

- `nutrition_order_id` (`string`, required): FHIR logical ID of the nutrition order, from a search result or a reference such as NutritionOrder/<id>. Example: 12345

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

### `oraclehealth_nutrition_order_search`

Search Nutrition Orders · Read-only

Search nutrition orders in Oracle Health for a patient, optionally by status or last update.
Returns a FHIR Bundle of NutritionOrder resources (diet, supplement, and feeding instructions, status, orderer, and timing) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_nutrition_order_search to find or list records. Use oraclehealth_nutrition_order_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the nutrition order to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter nutrition orders by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `patient` (`string`, optional): FHIR logical ID of the patient whose nutrition orders to return, without the 'Patient/' prefix. Required unless _id is given. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, optional): Order status to filter by, for example active. Example: active

Example input: `{}`

### `oraclehealth_observation_read`

Get Observation · Read-only

Get one observation from Oracle Health by its FHIR logical ID.
Returns the FHIR Observation resource: the observation code, category, value with units, effective time, interpretation, and reference range, plus meta.versionId.
Use oraclehealth_observation_read when you have the ID. Use oraclehealth_observation_search to find observations for a patient by category (laboratory, vital-signs, social-history, and so on), code, or date.

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

Inputs:

- `observation_id` (`string`, required): FHIR logical ID of the observation, from a search result or a reference such as Observation/<id>. Example: 12345

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

### `oraclehealth_observation_search`

Search Observations · Read-only

Search observations in Oracle Health for a patient by category (laboratory, vital-signs, social-history, and so on), code, or date.
Returns a FHIR Bundle of Observation resources (the observation code, category, value with units, effective time, interpretation, and reference range) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_observation_search to find or list records. Use oraclehealth_observation_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Default 50, maximum 200. Example: 20
- `_id` (`string`, optional): Logical ID of the observation to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter observations by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `category` (`string`, optional): Observation category, for example laboratory, vital-signs, social-history, imaging, survey, or exam. Example: laboratory
- `code` (`string`, optional): Observation code to filter by, as system|code or code; several may be comma-separated. Ignored when category is set. Example: http://loinc.org|8867-4
- `date` (`array`, optional): Filter by when the observation was made (effective time). Can't be combined with _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_organization_read`

Get Organization · Read-only

Get one organization from Oracle Health by its FHIR logical ID.
Returns the FHIR Organization resource: name, type, identifiers (NPI, tax ID), address, and contact details, plus meta.versionId.
Use oraclehealth_organization_read when you have the ID. Use oraclehealth_organization_search to find organizations by name, identifier, type, or address.

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

Inputs:

- `organization_id` (`string`, required): FHIR logical ID of the organization, from a search result or a reference such as Organization/<id>. Example: 12345

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

### `oraclehealth_organization_search`

Search Organizations · Read-only

Search organizations in Oracle Health by name, identifier, type, or address.
Returns a FHIR Bundle of Organization resources (name, type, identifiers (NPI, tax ID), address, and contact details) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_organization_search to find or list records. Use oraclehealth_organization_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Default 100. Example: 20
- `_id` (`string`, optional): Logical ID of the organization to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `address` (`string`, optional): Start of the organization's street, city, state, or postal code. Example: 100
- `identifier` (`string`, optional): Organization identifier such as NPI or tax ID, as system|value or value. Example: http://hl7.org/fhir/sid/us-npi|0000000000
- `name` (`string`, optional): Organization name. Example: Example Clinic
- `type` (`string`, optional): Organization type as system|code (standard codes only). Example: http://terminology.hl7.org/CodeSystem/organization-type|prov

Example input: `{}`

### `oraclehealth_patient_read`

Get Patient · Read-only

Get one patient from Oracle Health by its FHIR logical ID.
Returns the FHIR Patient resource: demographics, identifiers (such as MRN), contact details, and links to related people, plus meta.versionId.
Use oraclehealth_patient_read when you have the ID. Use oraclehealth_patient_search to find patients by name, birth date, identifier, phone, email, postal code, or gender.

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

Inputs:

- `patient_id` (`string`, required): FHIR logical ID of the patient, from a search result or a reference such as Patient/<id>. Example: 12345

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

### `oraclehealth_patient_search`

Search Patients · Read-only

Search patients in Oracle Health by name, birth date, identifier, phone, email, postal code, or gender.
Returns a FHIR Bundle of Patient resources (demographics, identifiers (such as MRN), contact details, and links to related people) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_patient_search to find or list records. Use oraclehealth_patient_read to fetch one known ID.
Oracle Health returns a 422 error when more than 1000 patients match a search, so narrow name searches with birthdate or gender.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the patient to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `address_postalcode` (`string`, optional): Postal code of the patient's address. Example: 00000
- `birthdate` (`array`, optional): Filter by date of birth (date only, no time). Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example of an exact date: ["eq2000-01-01"]. Example: ["ge1990-01-01", "le1990-12-31"]
- `email` (`string`, optional): Patient email address. Example: patient@example.com
- `family` (`string`, optional): Start of the patient's family (last) name. Example: Testpatient
- `gender` (`string`, optional): Administrative gender: male, female, other, or unknown. One of: `male`, `female`, `other`, `unknown`.
- `given` (`string`, optional): Start of the patient's given (first) name. Requires family. Example: Testname
- `identifier` (`string`, optional): Patient identifier as system|value, or just the value to search every identifier system (for example an MRN). Example: urn:oid:1.2.3.4|0000000
- `name` (`string`, optional): Start of any part of the patient's name (given or family). At least 2 characters. Don't combine with family or given. Example: Testp
- `phone` (`string`, optional): Patient phone number. Example: 5550100000

Example input: `{}`

### `oraclehealth_practitioner_read`

Get Practitioner · Read-only

Get one practitioner from Oracle Health by its FHIR logical ID.
Returns the FHIR Practitioner resource: name, identifiers (such as NPI), contact details, and active flag, plus meta.versionId.
Use oraclehealth_practitioner_read when you have the ID. Use oraclehealth_practitioner_search to find practitioners by name, identifier (such as NPI), or active flag.

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

Inputs:

- `practitioner_id` (`string`, required): FHIR logical ID of the practitioner, from a search result or a reference such as Practitioner/<id>. Example: 12345

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

### `oraclehealth_practitioner_search`

Search Practitioners · Read-only

Search practitioners in Oracle Health by name, identifier (such as NPI), or active flag.
Returns a FHIR Bundle of Practitioner resources (name, identifiers (such as NPI), contact details, and active flag) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_practitioner_search to find or list records. Use oraclehealth_practitioner_read to fetch one known ID.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the practitioner to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `active` (`boolean`, optional): Whether the practitioner record is active (true or false). Example: true
- `family` (`string`, optional): Start of the practitioner's family name. Example: Testdoctor
- `given` (`string`, optional): Start of the practitioner's given name. Requires family. Example: Testname
- `identifier` (`string`, optional): Practitioner identifier as system|value; both are required. Example: http://hl7.org/fhir/sid/us-npi|0000000000
- `name` (`string`, optional): Start of any part of the practitioner's name. Example: Testd

Example input: `{}`

### `oraclehealth_procedure_read`

Get Procedure · Read-only

Get one procedure from Oracle Health by its FHIR logical ID.
Returns the FHIR Procedure resource: procedure code, status, performed date or period, performers, location, and notes, plus meta.versionId.
Use oraclehealth_procedure_read when you have the ID. Use oraclehealth_procedure_search to find procedures for a patient, optionally by date or last update.

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

Inputs:

- `procedure_id` (`string`, required): FHIR logical ID of the procedure, from a search result or a reference such as Procedure/<id>. Example: 12345

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

### `oraclehealth_procedure_search`

Search Procedures · Read-only

Search procedures in Oracle Health for a patient, optionally by date or last update.
Returns a FHIR Bundle of Procedure resources (procedure code, status, performed date or period, performers, location, and notes) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_procedure_search to find or list records. Use oraclehealth_procedure_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the procedure to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter procedures by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `date` (`array`, optional): Filter by when the procedure was performed; each value needs a time component. Can't be combined with _lastUpdated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_provenance_read`

Get Provenance · Read-only

Get one provenance record from Oracle Health by its FHIR logical ID.
Returns the FHIR Provenance resource: who created or changed the target record, when, and on whose behalf, plus meta.versionId.
Use oraclehealth_provenance_read when you have the ID. Use oraclehealth_provenance_search to find provenance records for one or more target records.

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

Inputs:

- `provenance_id` (`string`, required): FHIR logical ID of the provenance record, from a search result or a reference such as Provenance/<id>. Example: 12345

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

### `oraclehealth_provenance_search`

Search Provenances · Read-only

Search provenance records in Oracle Health for one or more target records.
Returns a FHIR Bundle of Provenance resources (who created or changed the target record, when, and on whose behalf) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_provenance_search to find or list records. Use oraclehealth_provenance_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the provenance record to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `target` (`string`, optional): Record(s) to return provenance for, as ResourceType/id; several may be comma-separated. Required unless _id is given. Example: Condition/12345

Example input: `{}`

### `oraclehealth_questionnaire_read`

Get Questionnaire · Read-only

Get one questionnaire from Oracle Health by its FHIR logical ID.
Returns the FHIR Questionnaire resource: the questionnaire's title, status, and items (questions).
Use oraclehealth_questionnaire_read with an ID taken from a reference in another resource; Oracle Health offers no useful search for Questionnaire.

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

Inputs:

- `questionnaire_id` (`string`, required): FHIR logical ID of the questionnaire, from a reference such as Questionnaire/<id>. Example: 12345

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

### `oraclehealth_questionnaire_response_read`

Get Questionnaire Response · Read-only

Get one questionnaire response from Oracle Health by its FHIR logical ID.
Returns the FHIR QuestionnaireResponse resource: the questionnaire answered, status, author, authored time, and the answers, plus meta.versionId.
Use oraclehealth_questionnaire_response_read when you have the ID. Use oraclehealth_questionnaire_response_search to find questionnaire responses for a patient.

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

Inputs:

- `questionnaire_response_id` (`string`, required): FHIR logical ID of the questionnaire response, from a search result or a reference such as QuestionnaireResponse/<id>. Example: 12345

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

### `oraclehealth_questionnaire_response_search`

Search Questionnaire Responses · Read-only

Search questionnaire responses in Oracle Health for a patient.
Returns a FHIR Bundle of QuestionnaireResponse resources (the questionnaire answered, status, author, authored time, and the answers) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_questionnaire_response_search to find or list records. Use oraclehealth_questionnaire_response_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the questionnaire response to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_related_person_read`

Get Related Person · Read-only

Get one related person from Oracle Health by its FHIR logical ID.
Returns the FHIR RelatedPerson resource: relationship to the patient, name, contact details, and period, plus meta.versionId.
Use oraclehealth_related_person_read when you have the ID. Use oraclehealth_related_person_search to find related persons for a patient, encounter, or identifier.

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

Inputs:

- `related_person_id` (`string`, required): FHIR logical ID of the related person, from a search result or a reference such as RelatedPerson/<id>. Example: 12345

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

### `oraclehealth_related_person_search`

Search Related Persons · Read-only

Search related persons in Oracle Health for a patient, encounter, or identifier.
Returns a FHIR Bundle of RelatedPerson resources (relationship to the patient, name, contact details, and period) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_related_person_search to find or list records. Use oraclehealth_related_person_read to fetch one known ID.

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

Inputs:

- `_id` (`string`, optional): Logical ID of the related person to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `encounter` (`string`, optional): FHIR logical ID of an encounter whose related persons to return; send relationship_level with it. Example: 67890
- `identifier` (`string`, optional): Related person identifier as system|value; both are required. Example: urn:oid:1.2.3.4|000000
- `patient` (`string`, optional): FHIR logical ID of the patient whose related persons to return, without the 'Patient/' prefix. Required unless _id, identifier, or encounter is given; send relationship_level with it. Find it with oraclehealth_patient_search. Example: 12345
- `relationship_level` (`string`, optional): Relationship level. Required with patient, identifier, or encounter, and its only allowed value is http://hl7.org/fhir/resource-types|Patient. One of: `http://hl7.org/fhir/resource-types|Patient`.

Example input: `{}`

### `oraclehealth_schedule_read`

Get Schedule · Read-only

Get one schedule from Oracle Health by its FHIR logical ID.
Returns the FHIR Schedule resource: the schedule's actors (practitioner or location), service types, and planning horizon.
Use oraclehealth_schedule_read with an ID taken from a reference in another resource; Oracle Health offers no useful search for Schedule.

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

Inputs:

- `schedule_id` (`string`, required): FHIR logical ID of the schedule, from a reference such as Schedule/<id>. Example: 12345

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

### `oraclehealth_service_request_read`

Get Service Request · Read-only

Get one service request (order or referral) from Oracle Health by its FHIR logical ID.
Returns the FHIR ServiceRequest resource: order or referral code, status, intent, priority, requester, reason, and occurrence, plus meta.versionId.
Use oraclehealth_service_request_read when you have the ID. Use oraclehealth_service_request_search to find service requests for a patient, optionally by code or last update.

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

Inputs:

- `service_request_id` (`string`, required): FHIR logical ID of the service request (order or referral), from a search result or a reference such as ServiceRequest/<id>. Example: 12345

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

### `oraclehealth_service_request_search`

Search Service Requests · Read-only

Search service requests in Oracle Health for a patient, optionally by code or last update.
Returns a FHIR Bundle of ServiceRequest resources (order or referral code, status, intent, priority, requester, reason, and occurrence) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_service_request_search to find or list records. Use oraclehealth_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 results per page. Default 50. Example: 20
- `_id` (`string`, optional): Logical ID of the service request to return. Several IDs may be comma-separated. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `_lastUpdated` (`array`, optional): Filter service requests by when they were last updated. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z"]
- `code` (`string`, optional): What was ordered, as system|code or code (SNOMED CT, LOINC, or the tenant's Millennium code sets). Example: http://loinc.org|24323-8
- `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 oraclehealth_patient_search. Example: 12345

Example input: `{}`

### `oraclehealth_slot_read`

Get Slot · Read-only

Get one schedulable slot from Oracle Health by its FHIR logical ID.
Returns the FHIR Slot resource: start and end time, status (free or busy), schedule, and the appointment types it accepts, plus meta.versionId.
Use oraclehealth_slot_read when you have the ID. Use oraclehealth_slot_search to find open appointment slots by appointment type, practitioner, or location in a start-time range.

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

Inputs:

- `slot_id` (`string`, required): FHIR logical ID of the schedulable slot, from a search result or a reference such as Slot/<id>. Example: 12345

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

### `oraclehealth_slot_search`

Search Slots · Read-only

Search open appointment slots in Oracle Health by appointment type, practitioner, or location in a start-time range.
Returns a FHIR Bundle of Slot resources (start and end time, status (free or busy), schedule, and the appointment types it accepts) with a next link when more pages exist. If the result has a `next` link, use `oraclehealth_next_page` to get more.
Use oraclehealth_slot_search to find or list records. Use oraclehealth_slot_read to fetch one known ID.
Book a returned slot with oraclehealth_appointment_create.

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

Inputs:

- `_count` (`integer`, optional): Maximum number of results per page. Example: 20
- `_id` (`string`, optional): Logical ID of the slot to return. Use instead of the other filters; Oracle Health rejects _id combined with most other parameters. Example: 12345
- `location` (`string`, optional): FHIR logical ID of the location the slot belongs to. Example: 34567
- `schedule_actor` (`string`, optional): Practitioner whose schedule to search, as Practitioner/<id>. Example: Practitioner/23456
- `service_type` (`string`, optional): Appointment type(s) the slot accepts, as system|code; several may be comma-separated. Required unless _id, location, or schedule_actor is given. Example: https://fhir.cerner.com/<tenant>/codeSet/14249|000000
- `start` (`array`, optional): Slot start range. Required with service_type, location, or schedule_actor; must have two values, one ge and one lt. Pass one or two values as a JSON array; each value carries a FHIR prefix (eq, ge, gt, le, lt) and is sent as a repeated query parameter. Two values must form a range: the lower one with ge or gt, the upper one with le or lt. Example: ["ge2024-01-01T00:00:00Z", "lt2024-02-01T00:00:00Z"]

Example input: `{}`

### `oraclehealth_specimen_read`

Get Specimen · Read-only

Get one specimen from Oracle Health by its FHIR logical ID.
Returns the FHIR Specimen resource: specimen type, collection details, status, and the patient.
Use oraclehealth_specimen_read with an ID taken from a reference in another resource; Oracle Health offers no useful search for Specimen.

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

Inputs:

- `specimen_id` (`string`, required): FHIR logical ID of the specimen, from a reference such as Specimen/<id>. Example: 12345

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

### `oraclehealth_allergy_intolerance_create`

Create Allergy Intolerance · Write

Record a new allergy or intolerance on a patient's chart in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to add an allergy. Use oraclehealth_allergy_intolerance_update to change an existing one, and oraclehealth_allergy_intolerance_search to check for duplicates first.

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

Inputs:

- `clinical_status` (`string`, required): Clinical status of the allergy: active, inactive, or resolved. Example: active. One of: `active`, `inactive`, `resolved`.
- `code` (`string`, required): Code of the allergen substance in code_system. Use a substance code, not a finding or disorder code: Oracle Health returns a 500 error for findings such as SNOMED 91936005 (allergy to penicillin). Example: 227493005 (cashew nut, SNOMED substance)
- `code_system` (`string`, required): Code system of the allergen. Example: http://snomed.info/sct (RxNorm http://www.nlm.nih.gov/research/umls/rxnorm is also common)
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `category` (`string`, optional): Category of the allergen: food, medication, or environment (biologic is not supported). Example: medication. One of: `food`, `medication`, `environment`.
- `code_text` (`string`, optional): Human-readable name of the allergen. Example: Cashew nuts
- `criticality` (`string`, optional): Potential harm of a future reaction: low, high, or unable-to-assess. Example: high. One of: `low`, `high`, `unable-to-assess`.
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Encounter in which the allergy was recorded. Example: 67890
- `note` (`string`, optional): Free-text note about the allergy. Example: Reported by patient at intake.
- `onset_date_time` (`string`, optional): When the allergy began. Oracle Health stores only the date (GMT). ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `reaction_manifestation_code` (`string`, optional): Code of the reaction symptom (one manifestation only). Set with reaction_manifestation_system. Example: 271807003 (rash)
- `reaction_manifestation_system` (`string`, optional): Code system of the reaction symptom. Example: http://snomed.info/sct
- `reaction_manifestation_text` (`string`, optional): Text of the reaction symptom; enough on its own when no code is known. Example: Rash
- `reaction_severity` (`string`, optional): Severity of the reaction: mild, moderate, or severe. Needs a reaction manifestation. Example: moderate. One of: `mild`, `moderate`, `severe`.
- `type` (`string`, optional): Underlying mechanism: allergy or intolerance. Example: allergy. One of: `allergy`, `intolerance`.
- `verification_status` (`string`, optional): Verification status: unconfirmed or confirmed (refuted and entered-in-error are not allowed on create). Example: confirmed. One of: `unconfirmed`, `confirmed`.

Example input: `{"clinical_status":"active","code":"<code>","code_system":"<code_system>","patient_id":"<patient_id>"}`

### `oraclehealth_allergy_intolerance_update`

Update Allergy Intolerance · Write

Replace an existing allergy or intolerance in Oracle Health with an edited copy (FHIR update).
Returns an empty body on success; the new version is in the ETag response header.
Use it after oraclehealth_allergy_intolerance_read: change the fields you need and send the whole resource back. Use oraclehealth_allergy_intolerance_create for a new record.

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

Inputs:

- `allergy_intolerance_id` (`string`, required): FHIR logical ID of the allergy or intolerance to update. Example: 12345
- `resource` (`object`, required): The complete AllergyIntolerance resource as JSON, usually the output of oraclehealth_allergy_intolerance_read with your changes applied. Oracle Health replaces the whole record: any field you leave out is cleared. resourceType and id are set by the tool. Example: {"resourceType": "AllergyIntolerance", "id": "12345", ...}
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_allergy_intolerance_read; sent as If-Match: W/"<version>". A stale version is rejected. Example: 3

Example input: `{"allergy_intolerance_id":"<allergy_intolerance_id>","resource":{},"version_id":"<version_id>"}`

### `oraclehealth_appointment_cancel`

Cancel Appointment · Write

Cancel an appointment in Oracle Health with a JSON Patch, optionally with a cancellation reason.
Returns an empty body on success; the new version is in the ETag response header.
Use it to cancel a booked appointment. Get version_id from oraclehealth_appointment_read; a stale version returns 409 Conflict.

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

Inputs:

- `appointment_id` (`string`, required): FHIR logical ID of the appointment. Example: 12345
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_appointment_read; sent as If-Match: W/"<version>". Example: 3
- `cancelation_reason_code` (`string`, optional): FHIR appointment-cancellation-reason code, for example pat (patient), prov (provider), or oth-err (error). Example: pat

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

### `oraclehealth_appointment_create`

Book Appointment · Write

Book an appointment for a patient into an open scheduling slot in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it after oraclehealth_slot_search returns a free slot; the slot sets the practitioner, location, and time. Use oraclehealth_appointment_cancel to cancel it.

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

Inputs:

- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `slot_id` (`string`, required): FHIR logical ID of a free Slot from oraclehealth_slot_search. Example: 00000-11111-22222-0
- `comment` (`string`, optional): Additional text to help with the appointment. Example: Patient prefers morning.
- `reason_text` (`string`, optional): Reason for the visit, as text. Example: Follow-up visit

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

### `oraclehealth_communication_create`

Send Inbox Message · Write

Send a message to practitioners' or pools' Oracle Health inboxes as a Communication, optionally about a patient.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to notify colleagues in the EHR. Use oraclehealth_communication_search to list messages a practitioner received.

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

Inputs:

- `category` (`string`, required): Message category: notification or reminder. Example: notification. One of: `notification`, `reminder`.
- `message_text` (`string`, required): Plain-text body of the message; the tool base64-encodes it with contentType text/plain. Example: Please review the latest results.
- `sender_practitioner_id` (`string`, required): FHIR logical ID of the sending Practitioner (usually the signed-in clinician). Example: 23456
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Needs patient_id. Example: 67890
- `patient_id` (`string`, optional): FHIR logical ID of the patient the message is about. Required when encounter_id is set. Example: 12345
- `priority` (`string`, optional): Priority: routine or urgent. Example: routine. One of: `routine`, `urgent`.
- `recipient_group_ids` (`array`, optional): Group (pool) FHIR IDs to receive the message. Example: ["56789"]
- `recipient_practitioner_ids` (`array`, optional): Practitioner FHIR IDs to receive the message. Set this, recipient_group_ids, or both. Example: ["23456"]
- `topic` (`string`, optional): Subject line of the message. Example: Lab follow-up

Example input: `{"category":"notification","message_text":"<message_text>","sender_practitioner_id":"<sender_practitioner_id>"}`

### `oraclehealth_condition_create`

Create Condition · Write

Add a problem-list item or an encounter diagnosis to a patient's chart in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to record a new problem or diagnosis. Use oraclehealth_condition_update to change an existing one, and oraclehealth_condition_search to check for duplicates first.

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

Inputs:

- `category` (`string`, required): Condition category: problem-list-item or encounter-diagnosis (the only two Oracle Health accepts on create). An encounter-diagnosis needs encounter_id. Example: problem-list-item. One of: `problem-list-item`, `encounter-diagnosis`.
- `clinical_status` (`string`, required): Clinical status: active, recurrence, relapse, inactive, remission, or resolved. Only active is allowed for encounter-diagnosis. Example: active. One of: `active`, `recurrence`, `relapse`, `inactive`, `remission`, `resolved`.
- `code` (`string`, required): Condition code in code_system. Example: 44054006 (type 2 diabetes mellitus)
- `code_system` (`string`, required): Code system of the condition. Example: http://snomed.info/sct (ICD-10-CM is http://hl7.org/fhir/sid/icd-10-cm)
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `abatement_date_time` (`string`, optional): When the condition resolved. Not allowed for encounter-diagnosis. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `code_display` (`string`, optional): Display name for the code. Example: Type 2 diabetes mellitus
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Required when category is encounter-diagnosis. Example: 67890
- `note` (`string`, optional): Free-text note about the condition. Can't be changed later. Example: Diet-controlled.
- `onset_date_time` (`string`, optional): When the condition began. Stored as a GMT date. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `verification_status` (`string`, optional): Verification status: unconfirmed, provisional, differential, or confirmed. Example: confirmed. One of: `unconfirmed`, `provisional`, `differential`, `confirmed`.

Example input: `{"category":"problem-list-item","clinical_status":"active","code":"<code>","code_system":"<code_system>","patient_id":"<patient_id>"}`

### `oraclehealth_condition_update`

Update Condition · Write

Replace an existing condition (problem or diagnosis) in Oracle Health with an edited copy (FHIR update).
Returns an empty body on success; the new version is in the ETag response header.
Use it after oraclehealth_condition_read: change the fields you need and send the whole resource back. Only problem-list-item and encounter-diagnosis conditions can be updated. Use oraclehealth_condition_create for a new record.

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

Inputs:

- `condition_id` (`string`, required): FHIR logical ID of the condition (problem or diagnosis) to update. Example: 12345
- `resource` (`object`, required): The complete Condition resource as JSON, usually the output of oraclehealth_condition_read with your changes applied. Oracle Health replaces the whole record: any field you leave out is cleared. resourceType and id are set by the tool. Example: {"resourceType": "Condition", "id": "12345", ...}
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_condition_read; sent as If-Match: W/"<version>". A stale version is rejected. Example: 3

Example input: `{"condition_id":"<condition_id>","resource":{},"version_id":"<version_id>"}`

### `oraclehealth_document_reference_create`

Create Clinical Note · Write

Write a final clinical note (DocumentReference) to a patient's chart in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to file a note written by the signed-in clinician. Pass plain text in note_text, or other supported formats as base64 in content_base64. Use oraclehealth_document_reference_update to amend a note.

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

Inputs:

- `author_practitioner_id` (`string`, required): FHIR logical ID of the signed-in clinician's Practitioner record (the fhirUser). Oracle Health accepts only the authorized provider as author. Example: 23456
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `period_end` (`string`, required): End of the time of service the note documents. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `period_start` (`string`, required): Start of the time of service the note documents. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `type_code` (`string`, required): Note type code. Example: 11506-3 (progress note)
- `type_system` (`string`, required): Code system of the note type: LOINC (http://loinc.org) or the tenant's Millennium code set 72 (https://fhir.cerner.com/<tenant id>/codeSet/72), not both. Example: http://loinc.org
- `content_base64` (`string`, optional): Base64-encoded document for non-plain-text formats; used instead of note_text. Example: PGh0bWw+PC9odG1sPg==
- `content_type` (`string`, optional): MIME type of content_base64: application/pdf, text/plain, text/richtext, text/rtf, text/html, application/xml, or application/xhtml+xml. Required with content_base64. Example: text/html. One of: `application/pdf`, `text/plain`, `text/richtext`, `text/rtf`, `text/html`, `application/xml`, `application/xhtml+xml`.
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Encounter the note belongs to. Example: 67890
- `note_text` (`string`, optional): Plain-text body of the note; the tool base64-encodes it and sends contentType text/plain. Set this or content_base64. Example: Patient seen for follow-up. Stable.
- `title` (`string`, optional): Title of the attachment. Example: Follow-up visit note
- `type_display` (`string`, optional): Display name of the note type. Example: Progress note

Example input: `{"author_practitioner_id":"<author_practitioner_id>","patient_id":"<patient_id>","period_end":"<period_end>","period_start":"<period_start>","type_code":"<type_code>","type_system":"<type_system>"}`

### `oraclehealth_document_reference_update`

Update Document Reference · Write

Replace an existing clinical document reference in Oracle Health with an edited copy (FHIR update).
Returns an empty body on success; the new version is in the ETag response header.
Use it after oraclehealth_document_reference_read: change the fields you need and send the whole resource back. To amend a note, set docStatus to amended (system access) or replace the content; setting entered-in-error keeps the original content. Use oraclehealth_document_reference_create for a new record.

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

Inputs:

- `document_reference_id` (`string`, required): FHIR logical ID of the clinical document reference to update. Example: 12345
- `resource` (`object`, required): The complete DocumentReference resource as JSON, usually the output of oraclehealth_document_reference_read with your changes applied. Oracle Health replaces the whole record: any field you leave out is cleared. resourceType and id are set by the tool. Example: {"resourceType": "DocumentReference", "id": "12345", ...}
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_document_reference_read; sent as If-Match: W/"<version>". A stale version is rejected. Example: 3

Example input: `{"document_reference_id":"<document_reference_id>","resource":{},"version_id":"<version_id>"}`

### `oraclehealth_immunization_create`

Create Immunization · Write

Record a vaccine administration (or one not given) for a patient in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to chart an immunization. Use oraclehealth_immunization_search to check the history first and oraclehealth_immunization_update to correct a record.

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

Inputs:

- `occurrence_date_time` (`string`, required): When the vaccine was given. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, required): Event status: completed or not-done. Example: completed. One of: `completed`, `not-done`.
- `vaccine_code` (`string`, required): Vaccine code from Oracle Health's code set 72 (vaccine_code_system), not a CVX code. Example: 2820755 (influenza virus vaccine, inactivated)
- `vaccine_code_system` (`string`, required): Code system of the vaccine. Oracle Health requires its own Millennium vaccine code set 72, https://fhir.cerner.com/<tenant id>/codeSet/72; it rejects standard CVX codes (http://hl7.org/fhir/sid/cvx) with "Vaccine Code is missing." Example: https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/72
- `dose_unit` (`string`, optional): UCUM unit of the dose; required with dose_value. Example: mL
- `dose_value` (`number`, optional): Amount of vaccine given. Example: 0.5
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Required to chart the immunization (optional only for staged records). Example: 67890
- `expiration_date` (`string`, optional): Expiration date of the vaccine lot (YYYY-MM-DD). Example: 2026-12-31
- `lot_number` (`string`, optional): Vaccine lot number. Example: AB1234
- `note` (`string`, optional): Extra information about the immunization. Example: Patient tolerated well.
- `performer_practitioner_id` (`string`, optional): Who administered the vaccine (sent with the Administering Provider role). FHIR logical ID of a Practitioner, without the 'Practitioner/' prefix. Example: 23456
- `primary_source` (`boolean`, optional): true when the record comes from the person who gave the vaccine (the default); false for a historical record. Example: true
- `vaccine_display` (`string`, optional): Vaccine name. Example: influenza virus vaccine, inactivated

Example input: `{"occurrence_date_time":"<occurrence_date_time>","patient_id":"<patient_id>","status":"completed","vaccine_code":"<vaccine_code>","vaccine_code_system":"<vaccine_code_system>"}`

### `oraclehealth_immunization_update`

Update Immunization · Write

Replace an existing immunization in Oracle Health with an edited copy (FHIR update).
Returns an empty body on success; the new version is in the ETag response header.
Use it after oraclehealth_immunization_read: change the fields you need and send the whole resource back. Use oraclehealth_immunization_create for a new record.

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

Inputs:

- `immunization_id` (`string`, required): FHIR logical ID of the immunization to update. Example: 12345
- `resource` (`object`, required): The complete Immunization resource as JSON, usually the output of oraclehealth_immunization_read with your changes applied. Oracle Health replaces the whole record: any field you leave out is cleared. resourceType and id are set by the tool. Example: {"resourceType": "Immunization", "id": "12345", ...}
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_immunization_read; sent as If-Match: W/"<version>". A stale version is rejected. Example: 3

Example input: `{"immunization_id":"<immunization_id>","resource":{},"version_id":"<version_id>"}`

### `oraclehealth_medication_request_create`

Create Medication Request · Write

Document a medication the patient takes (a reported or historical medication) in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to add a home or outside medication to the medication list; Oracle Health creates it with reportedBoolean true and status active, and it is not an e-prescription. Use oraclehealth_medication_request_update_status to stop or cancel it later.

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

Inputs:

- `intent` (`string`, required): Intent: order or plan. Example: plan. One of: `order`, `plan`.
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `additional_instruction` (`string`, optional): Extra instruction or warning for the patient. Example: Take with food.
- `dosage_text` (`string`, optional): Free-text dosage instructions. Example: 1 tablet by mouth twice daily
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Example: 67890
- `end_date_time` (`string`, optional): When the medication ends (dosage timing bounds end). ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `medication_code` (`string`, optional): Medication code in medication_system. Example: 000000
- `medication_system` (`string`, optional): Code system of the medication. Set with medication_code, or use medication_text alone. Example: http://www.nlm.nih.gov/research/umls/rxnorm
- `medication_text` (`string`, optional): Medication name as text. Required when no code is given. Example: Acetaminophen 500 mg tablet
- `note` (`string`, optional): Note about the medication. Example: Patient has taken this medication before.
- `start_date_time` (`string`, optional): When the patient started the medication (dosage timing bounds start). ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z

Example input: `{"intent":"order","patient_id":"<patient_id>"}`

### `oraclehealth_medication_request_update_status`

Stop or Cancel Medication Request · Write

Stop or cancel a documented (reported) medication in Oracle Health with a JSON Patch on its status.
Returns an empty body on success; the new version is in the ETag response header.
Use stopped when the medication's start date is in the past and cancelled when it never started. Only historical documented medications (intent order, reported) can change; get version_id from oraclehealth_medication_request_read.

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

Inputs:

- `medication_request_id` (`string`, required): FHIR logical ID of the medication request. Example: 12345
- `status` (`string`, required): New status: stopped or cancelled. Example: stopped. One of: `stopped`, `cancelled`.
- `version_id` (`string`, required): Current version of the resource, from meta.versionId of oraclehealth_medication_request_read; sent as If-Match: W/"<version>". Example: 3

Example input: `{"medication_request_id":"<medication_request_id>","status":"stopped","version_id":"<version_id>"}`

### `oraclehealth_observation_create`

Create Observation · Write

Record a vital sign or laboratory result for a patient in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it for single-value vitals (temperature, heart rate, weight, height) and lab values. Blood pressure and pulse oximetry need components and are not supported by this tool. Use oraclehealth_observation_update to correct an existing result.

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

Inputs:

- `category` (`string`, required): Observation category: vital-signs or laboratory. Example: vital-signs. One of: `vital-signs`, `laboratory`.
- `code` (`string`, required): Code of what was observed. Example: 8310-5 (body temperature)
- `code_system` (`string`, required): Code system of what was observed. Example: http://loinc.org
- `effective_date_time` (`string`, required): When the observation was made. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `status` (`string`, required): Result status: final, amended, or corrected. Example: final. One of: `final`, `amended`, `corrected`.
- `code_text` (`string`, optional): Human-readable name of the observation. Example: Temperature
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Example: 67890
- `note` (`string`, optional): Comment about the observation. Example: Taken after exercise.
- `performer_practitioner_id` (`string`, optional): Required for vital signs. Who made the observation; sent with the legal-authenticator (LA) role. FHIR logical ID of a Practitioner, without the 'Practitioner/' prefix. Example: 23456
- `value_quantity` (`number`, optional): Numeric value. Set this or value_string. Vital signs accept only numeric values. Example: 37.2
- `value_string` (`string`, optional): Text value, for laboratory results only. Set this or value_quantity. Example: Negative
- `value_unit` (`string`, optional): Unit shown with value_quantity. Example: degC
- `value_unit_code` (`string`, optional): UCUM code for the unit; when set, the system http://unitsofmeasure.org is sent. Example: Cel

Example input: `{"category":"vital-signs","code":"<code>","code_system":"<code_system>","effective_date_time":"<effective_date_time>","patient_id":"<patient_id>","status":"final"}`

### `oraclehealth_observation_update`

Update Observation · Write

Replace an existing observation in Oracle Health with an edited copy (FHIR update).
Returns an empty body on success; the new version is in the ETag response header. Needs both Observation read and write scopes.
Use it after oraclehealth_observation_read: change the fields you need and send the whole resource back. Only laboratory, imaging, and vital-signs observations can be updated, and patient and category can't change. Use oraclehealth_observation_create for a new record.

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

Inputs:

- `observation_id` (`string`, required): FHIR logical ID of the observation to update. Example: 12345
- `resource` (`object`, required): The complete Observation resource as JSON, usually the output of oraclehealth_observation_read with your changes applied. Oracle Health replaces the whole record: any field you leave out is cleared. resourceType and id are set by the tool. Example: {"resourceType": "Observation", "id": "12345", ...}
- `version_id` (`string`, required): Current version, from meta.versionId of oraclehealth_observation_read; sent as If-Match: W/"<version>". A stale version is rejected. Example: 3

Example input: `{"observation_id":"<observation_id>","resource":{},"version_id":"<version_id>"}`

### `oraclehealth_procedure_create`

Create Procedure · Write

Document a completed procedure for a patient in Oracle Health.
Returns an empty body with HTTP 201 on success; Oracle Health puts the new resource's URL in the Location header and its version in the ETag header.
Use it to record a procedure that was performed (status is always completed). Use oraclehealth_procedure_search to review existing procedures.

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

Inputs:

- `code` (`string`, required): Procedure code in code_system. Example: 80146002 (appendectomy)
- `code_system` (`string`, required): Code system of the procedure. Example: http://snomed.info/sct
- `patient_id` (`string`, required): FHIR logical ID of the patient, without the 'Patient/' prefix. Find it with oraclehealth_patient_search. Example: 12345
- `code_display` (`string`, optional): Display name of the procedure. Example: Appendectomy
- `encounter_id` (`string`, optional): FHIR logical ID of the encounter, without the 'Encounter/' prefix. Encounter in which the procedure was performed. Example: 67890
- `location_id` (`string`, optional): FHIR logical ID of the Location where the procedure happened. Example: 34567
- `note` (`string`, optional): Comment about the procedure. Example: No complications.
- `performed_date_time` (`string`, optional): When the procedure was performed. Stored as a GMT date. ISO 8601 date-time with a time component and offset. Example: 2024-01-15T09:30:00Z
- `performer_practitioner_id` (`string`, optional): Who performed the procedure. FHIR logical ID of a Practitioner, without the 'Practitioner/' prefix. Example: 23456

Example input: `{"code":"<code>","code_system":"<code_system>","patient_id":"<patient_id>"}`

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