Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Oracle Health (Cerner)

Scalekit connector
Open markdown

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.

Tools
82
What they doRead · write · destructive
66 · 16 · 066 read16 write0 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

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

    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, 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:

      FieldSandbox value
      Authorization Endpointhttps://authorization.cerner.com/tenants/ec2458f2-1e24-41c8-b71b-0e701af7583d/protocols/oauth2/profiles/smart-v1/personas/provider/authorize
      Token Endpointhttps://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 Domainfhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • oraclehealth_allergy_intolerance_readGet one allergy or intolerance from Oracle Health by its FHIR logical ID.Read-only

    Get Allergy Intolerance

    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.

    Inputs

    allergy_intolerance_idstringrequired
    FHIR logical ID of the allergy or intolerance, from a search result or a reference such as AllergyIntolerance/<id>. Example: 12345
  • oraclehealth_appointment_readGet one appointment from Oracle Health by its FHIR logical ID.Read-only

    Get Appointment

    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.

    Inputs

    appointment_idstringrequired
    FHIR logical ID of the appointment, from a search result or a reference such as Appointment/<id>. Example: 12345
  • oraclehealth_binary_autogen_ccdGenerate a Continuity of Care Document (CCD) for a patient, optionally for one encounter or a date range.Read-only

    Generate Patient CCD

    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.

    Inputs

    patientstringrequired
    FHIR logical ID of the patient the CCD is about. Example: 12345
    encounterstring
    FHIR logical ID of an encounter to limit the CCD to. Example: 67890
    endstring
    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
    startstring
    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
  • oraclehealth_binary_readGet the content of a clinical document, report, or message from Oracle Health by its Binary ID.Read-only

    Get Binary Document

    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.

    Inputs

    binary_idstringrequired
    FHIR logical ID of the Binary, taken from the attachment URL (the part after Binary/) in a DocumentReference, DiagnosticReport, or Communication. Example: TR-12345
  • oraclehealth_care_plan_readGet one care plan from Oracle Health by its FHIR logical ID.Read-only

    Get Care Plan

    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).

    Inputs

    care_plan_idstringrequired
    FHIR logical ID of the care plan, from a search result or a reference such as CarePlan/<id>. Example: 12345