Contact Us

Contact Us

Athena Integration

athenahealth logo

Integration with AthenaHealth® API

Overview

Technosoft has integrated several healthcare applications with Athena using their API to Create patients, Get providers information, Schedule appointments for providers, Upload documents and Fetch specific types of orders. Our customer’s applications were integrated with Athena API using the provided ClientID and ClientSecret from Athena. Athena users were also able to login to the application from Athena EHR portal. Please find below details about two selected Athena integration scenarios that we have worked on.

Phyzit

Technosoft integrated Phyzit application with Athena to fulfill the following requirements.

  1. Schedule Patient’s appointment with Provider in Athena using Phyzit.
  2. Upload the Patient’s documents to Athena from Phyzit.
  3. Login to Phyzit via SSO from Athena using PingOne.

Each facility was linked to Athena using Practice Id and Department Id and we linked Athena patients with Phyzit patients using Athena patient id in Phyzit database. Users were able to create new patients to link with Athena or link existing Phyzit patients if one did not exist.

1. Schedule Patient’s appointment with Provider in Athena Integration using Phyzit

Users were able to create patient appointments with doctors in Phyzit application and the same appointment was being created/synced in Athena as well. The same patients and providers existed in both systems and were linked. To achieve this functionality, we used the following Athena API endpoints:

  1. Get Athena Providers to get provider information
    • https://api.athenahealth.com/apiversion/practiceid/providers
  2. Get Athena booked appointments, so that we can have information about already booked appointments
    • https://api.athenahealth.com/apiversion/practiceid/patients/appointments
  3. Get Athena open appointments to have open appointments slot information
    • https://api.athenahealth.com/apiversion/practiceid/appointments/open
  4. Get Athena appointment types to select the type of meeting between patient and doctor
    • https://api.athenahealth.com/apiversion/practiceid/appointmenttypes
  5. Create an appointment slot for patient and doctor in Athena
    • https://api.athenahealth.com/apiversion/practiceid/appointments/appointmentid

Using the above-mentioned steps and Athena API endpoints we were able to create a patient’s appointment with a doctor in Athena.

2. Upload Patient’s documents to Athena Integration from Phyzit

Users were able to upload patient’s clinical documents in pdf to Athena from Phyzit interface. We used the following Athena API endpoint to achieve this functionality.

  • https://api.athenahealth.com/apiversion/practiceid/patients/patientid/documents/clinicaldocument

We needed to send the base64 encoded pdf document in bytes, document subclass, and type of the document to Athena.

3. Login to Phyzit via SSO from Athena using PingOne

Users were able to redirect to Phyzit application from Athena Portal by clicking on Phyzit application name along with patient names. We used a third-party single sign-on service named PingOne.

Athena users were able to see patient details in Phyzit and if a patient did not exist then they were able to create a new patient or link an existing patient.  All this was done without users entering the user name and password in other systems due to SSO.

Technology Used

ASP.NET MVC 4, Razor, C#, Entity Framework, Identity Framework, MSSQL, Foundation Framework, Jquery, Javascript.

Another Technosoft Customer

Technosoft integrated this application with Athena to fulfill the following requirements

  1. Fetch specific types of orders from Athena.
  2. Get patient and provider information from Athena Orders and Create/Update them within our system.
  3. Get Patient Diagnosis information from Athena and store it in our database.
  4. Upload PDF reports to Athena from our system.

Each Practice using our system was linked to Athena Practice via Athena Practice id and Department id

Fetch specific type of orders from Athena

Our customer’s requirement was to fetch signed orders of a specific type so that they can grab patient, provider and patient’s diagnosis information and store them in their database. In order to fetch orders from Athena, we need to follow the steps below.

  1. Practice subscription to signed orders
    • https://api.athenahealth.com/apiversion/orders/singedoff/subscription
  2. Get signed orders information
    • https://api.athenahealth.com/apiversion/orders/singedoff
  3. Get Encounter information to get patient diagnosis information
    • https://api.athenahealth.com/apiversion/chart/encounter
  4. Get Patient information
    • https://api.athenahealth.com/apiversion/patients
  5. Get Providers information
    • https://api.athenahealth.com/apiversion/providers

Using the above-mentioned steps and Athena API endpoints we were able to subscribe to each practice to orders subscription and take all of the orders information.

Athena API Limitations

Athena has certain limits to use their API which are

  1. 5 API calls per second.
  2. 50,000 API calls per day.

We hit this limit and had to scaleback API calls to stay within this limit.

Technology Used

Python, Flask, Alembic, sqlAlchemy, Rollbar.

*AthenaHealth logo is a trademark of AthenaHealth

Starting any Healthcare Integration Project? Get Your questions answered in a Free 30 minutes consultancy!