Skip to main content

Lyrebird OpenAPI - Secure Launch

Updated this week

Lyrebird Health is introducing an open API, allowing electronic medical records (EMRs) to integrate with Lyrebird’s AI scribe, pull and push information to and from Lyrebird and improve the clinician’s experience while using the software.

Today we release the first such feature, secure launch allowing any EMR to launch lyrebird in patient context, with patient name and sex securely, using our open API interface.

This makes it far easier to open a consultation for a patient, by just clicking the Lyrebird button in your EMR.

Setup / Testing Instructions

Secure launch can be setup by first configuring it in api settings:

  1. Go to user settings:


  2. Go to API page:

3. Click ‘Set Up’ next to Secure Launch:

4. Save the encryption key somewhere secure, do not commit this to your codebase.

5. Click ‘Finish Setup’

6. Confirm Secure Launch is setup:

7. Click ‘Generate Test URL’

8. When pasting the url into your browser Lyrebird will launch with the test patient:

Code Example:

Example code can be found in the secure launch example repository https://github.com/lyrebird-health/secure-launch which includes an example site. Note - the encryption key should be stored and handled securely on the server side. It should not be exposed to the front end.

Technical Details:

The patient data object contains the following fields:

interface PatientData {

PAT_FIRST_NAME: string; // Patient's first name (required)

PAT_LAST_NAME: string; // Patient's last name (required)

PAT_GENDER: string; // Patient's gender (required)

PAT_DOB: string; // Patient's date of birth (required)

PAT_ACCT: string; // Patient account number (required)

PAT_MRN?: string; // Medical Record Number (optional)

USER: string; // User identifier (required)

USER_NAME?: string; // User's full name (optional)

USER_EMAIL?: string; // User's email address (optional)

}

The following fields must be present in every secure launch request:

- `PAT_FIRST_NAME`

-`PAT_LAST_NAME`

- `PAT_GENDER`

- `PAT_ACCT`

- `USER`

Patient data is serialized into a URL-encoded form string format:

key1=value1&key2=value2&key3=value3...

For example:

PAT_FIRST_NAME=John&PAT_LAST_NAME=Doe&PAT_GENDER=M&PAT_DOB=1980-01-15&PAT_ACCT=12345&USER=dr_smith

The payload is then encrypted using AES CBC and appended to the payload as shown in the demo code.

Did this answer your question?