Skip to main content

Athena Health Adapter

A Source Custom node that polls the Athena Health platform on an interval and pushes every patient found downstream as JSON.

Part of the Linkiir Adapters package — see requesting the package.

What it does

On each interval the node obtains an access token with your client credentials, runs the configured patient search for a practice, and pushes one message per patient returned. The token is cached and reused until it nears expiry.

Athena Health platform → Athena Adapter → your next node

Unlike the FHIR adapters, this one searches through Athena's own REST API, so the practice identifier is part of the request path rather than a search parameter.

Before you start

Register an application at the Athena developer portal and collect:

  • The Client ID and Client Secret.
  • The Practice ID of the practice you are connecting to.
  • The Base URL for the environment you are targeting: the production platform host, or the preview host for sandbox work.

Set it up

  1. Open the Athena Health Adapter node in the Workflow Builder and click Edit.

  2. Fill in the connection fields:

    FieldValue
    Base URLThe Athena platform root. Use the preview host while testing
    Client IDFrom your registered application
    Client SecretFrom your registered application
    Practice IDThe practice you are connecting to
    ScopesThe scopes your application is granted, space-separated
  3. Set Search Query to the parameters you want, for example firstname=John.

  4. Set Live Mode off, then Save.

  5. Connect a downstream node and start the workflow. Authentication still runs, so this pass proves the client credentials.

  6. Turn Live Mode on. The log reports how many patients were pushed.

Configuration reference

FieldTypeDefaultPurpose
Intervalnumber60000Milliseconds between polls
Base URLstringAthena production platform rootRoot URL of the Athena API platform. Use the preview host for sandbox
Client IDstring(empty)OAuth client identifier
Client Secretpassword(empty)OAuth client secret
ScopesstringAthena service and patient read scopesOAuth scopes requested, space-separated
Practice IDstringAthena's sandbox practicePractice identifier used in the request path
Search Querystringfirstname=JohnSearch parameters as a URL query string
Live ModebooltrueOff simulates the API calls. Authentication is always live
Verify TLSbooltrueVerify the Athena server's TLS certificate
Change the practice before going live

Practice ID arrives set to Athena's sandbox practice so the node is runnable out of the box. Replace it with your own practice, and switch Base URL from the preview host to production, in the same edit.

Verify it worked

  • With Live Mode off, the node starts clean and logs that no request was sent.
  • With Live Mode on, the log reports a count of pushed patients.
  • Each message is a single patient record as JSON.

If it didn't work

Symptom in the logCauseFix
CONFIG_ERROR naming a fieldClient ID, Client Secret, or Practice ID is emptyFill the field named
AUTH_FAILEDWrong client credentials, or the application is not enabled on this environmentRe-copy both values from the developer portal
HTTP_403The application is not granted a requested scope, or not authorized for the practiceReduce Scopes; confirm practice access
HTTP_404Practice ID does not exist on this environment, or Base URL mixes production and previewMatch the practice to the environment
failed to decrypt fieldThe project was imported to a different installationRe-enter Client Secret on this installation
Live Mode is off and nothing is pushedWorking as configuredTurn Live Mode on
No error, but nothing pushedThe search matched nothingWiden the Search Query

Next