You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 12
Next »
Need help? Contact us:
The Athenahealth adapter is designed to provide a template for getting started with Athenahealth API integrations, including:
Authenticating with the Athenahealth API Server via OAuth2.0
Demo AthenaOne APIs Integration: searchPatient and createPatient
Demo FHIR APIs Integration: searchPatientsFhir
This component can be customized and adapted according to your workflow needs.
How to use it:
STEP 1: Login or sign up for Athenahealth Developer Portal to access the Testing Sandbox and create a Client App called "IguanaXApp"
Refer to Setup Athenahealth Sandbox for the sign up process, creating and client and gathering the authentication details needed for the Athenahealth Adapter.
STEP 2: Import the Athenahealth Adapter component in Iguana
See Create a Component if this is your first time!
STEP 3: Double click on this component and edit the required component configurations
Component Configurations
ClientId: the Athenahealth application client ID
ClientSecret: the Athenahealth application client secret
Scopes: the space-delimited string that lists the scopes of access that the application has. By default, this example component will include the scopes you need to access the AthenaOne and FHIR Patient API endpoints (ex. athena/service/Athenanet.MDP.* system/Patient.read
)
Prod: boolean value to indicate whether to use the Preview or Production AthenaHealth environment
PracticeId: AthenaHealth practice ID. By default, this will contain the sandbox practice ID (ex. 1128700).
You can get ClientId, Client Secret, and Scopes from App Setup: Setup Athenahealth Sandbox
Upon start up, the component will take the provided credentials to retrieve an access token from Athenahealth and store it in an encrypted file for use on subsequent API requests.
STEP 4: Verify the connection is successful by checking the Translator annotations or running the component
Click Edit > Make a Copy and Edit to open the Translator.
You can verify the connection from the Translator by clicking on the results of the patient searches in the annotations.
You can also verify the created patient by starting the component, checking the logs for the newly created patient’s ID, and checking the Athenahealth sandbox How to use Athenahealth Sandbox or the updated search results in the Translator.
How the ATHENA Library works:
ATHENAclient - sets up the adapter framework
Sets up the ATHENA adapter framework, adding the various method modules to a metatable and storing the configurations added to the custom fields. It also loads the key and key_expiry configurations from the encrypted file via ATHENAencrypt if available.
ATHENAauth - authenticates with the Athenahealth server
The ATHENAauth function builds and makes the HTTP POST token request to obtain the access token required for interacting with the AthenaHealth API.
If the token request is successful (HTTP 200 response), the token and token expiry returned are stored in the adapter object (key and key_expiry) and saved in an encrypted file via ATHENAencrypt.
ATHENAencrypt - stores and encrypts the API token and token expiry
ATHENAencrypt provides save and load functions to encrypt and decrypt the provided API token and expiry time in an external file. This allows the token to be reused for subsequent API calls.
ATHENAcustom - makes API requests and returns the response
ATHENAcustom takes in any API requests and parameters to make the API call and return the response.
First the function checks if the token key exists or if the key_expiry time has passed and performs the OAuth2.0 authentication workflow to obtain the token to be used in subsequent requests.
Uses the passed configurations API request parameters - the method (ex. post), API (ex. v1/1128700/patients), headers (ex. Content-Type), and parameters for the call (ex. the patient details to be created) - to build and carry out the appropriate HTTP request.
This function is used as the fundamental API operation function in the provided wrapper methods and can also be independently called for a custom operation. An example of how ATHENAcustom can be used to directly query the same endpoint as ATHENAsearchPatients is shown below:
ATHENAcreatePatient - prepares arguments for ATHENAcustom to create a patient
ATHENAcreatePatient prepares the arguments, including populating the path parameters (ex. practice ID) in the API string and loading the required header. It then calls ATHENAcustom to create a patient in Athenahealth via HTTP POST request.
ATHENAsearchPatients - prepares arguments for ATHENAcustom to search for a patient based on the provided query parameters
ATHENAsearchPatients prepares the arguments, including populating the path parameters (ex. practice ID) in the API string. It then calls ATHENAcustom to search for a patient in Athenahealth.
ATHENAsearchPatientsFhir - prepares arguments for ATHENAcustom to search for a FHIR patient based on the provided query parameters
ATHENAsearchPatientsFhir prepares the arguments, including the FHIR-specific API string, and calls ATHENAcustom to search for a FHIR patient in Athenahealth.