What can be integrated?
APIs make it easy to take data from the EHR and use it in a wide range of diagnostic, treatment and clinical decision support tools. Here are some common scenarios that involve API connections:
- A clinical researcher developing a decision-support application for physicians
- A UCSF faculty doing a QI project creating a custom dashboard for your clinic
- A trainee creating a clinical calculator
- A UCSF faculty looking to solve a clinical problem by working with a commercial software company and looking to integrate the tool with our EHR
What are APIs?
Application Programming Interfaces (APIs) are an easy way to move data out of or into a given program (in this case, the EHR) using a standard programming language. Similar to the way various electronic appliances can connect to the power grid because of standard plugs and sockets, APIs connect novel diagnostic or treatment software to the EHR.
In recent years, standards have been established specifically for the electronic exchange of healthcare data. These Fast Healthcare Interoperability Resources, also known as FHIR, have helped to transform the way data is exchanged with EHRs everywhere, opening up ample opportunity for innovation.
How are APIs different from what we've done before?
Healthcare has traditionally used EHR integration methods that take months to build, are clunky, and require tremendous resources to maintain. In contrast, APIs are much more nimble, enabling connections more quickly than before. In addition, APIs work on demand, providing real-time data to the user at the click of a mouse.
APIs are typically used for small sets of data, such as a patient’s latest lab results or a physician’s current patient list. They are not particularly useful for retrieving large sets of data, e.g. all patients seen at UCSF Cardiology in the last 10 years.
What APIs are NOT
The EHR API’s are for data exchange "on demand" versus being event-driven. For example, if you need to know when a patient has been admitted, you wouldn't use an API - you’d have to poll the EHR and ask it every few minutes if the patient has been admitted. Instead, you would use a traditional HL7 interface, e.g. the ADT interface, which sends outbound messages to subscribed recipients regarding which patients have been admitted, discharged, or transferred. Once the message that a patient has been admitted has been received however, an API could then be used to query further details about that patient. For more information on HL7 interfaces, please contact the Clinical Systems Integration Team.