> ## Documentation Index
> Fetch the complete documentation index at: https://help.elationhealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Notable changes to Elation API 2.0, organized by release date. Covering both changes to individual resources and changes impacting the behavior of the API in general.

<div class="apiv2-changelog">
  ## 2026-07-20

  ### Orders API

  #### Lab Vendors

  * **Breaking change:** `POST /api/2.0/lab_vendors/` now rejects requests where `practice_created` is null or omitted. Previously, the API accepted these requests and created global lab vendors visible to all practices. Set `practice_created` to your practice ID to create a practice-scoped vendor. Requests with a null `practice_created` return `400` with `{"practice_created": "This field is required and cannot be null."}`.

  ## 2026-06-23

  ### Practice API

  #### Office Staff

  * Added `user_id` field to the Office Staff object. This read-only field returns the Django auth user ID, which can be passed directly to the `user` field of a `ThreadMember` object when creating message threads.

  ## 2026-05-19

  ### Patient Document

  #### Medication

  * The `is_doc_med` field on the Medication object now has documented behavior: setting `is_doc_med: true` automatically signs the order on creation (populating `signed_date` and `signed_by`), while `is_doc_med: false` saves it as an unsigned draft.

  #### Discontinued Medication

  * Changed: Medication threads that contain only unsigned draft orders can no longer be discontinued. Attempting to discontinue such a thread now returns a `400` error: `{"med_order": "No signed medication order found to discontinue."}`. Only threads with at least one signed medication order can be discontinued.

  ## 2026-05-06

  ### Webhooks

  * Added `event_uuid` field to the webhook event payload. This UUID7 identifier is being introduced as part of a future migration and will eventually replace `event_id`.
  * Added `resource_url` field to the webhook event payload. This optional field will be provided in the future for resources with very large payloads, offering an alternative URL to retrieve the full resource instead of embedding it in `data`.

  ## 2026-04-22

  ### Pagination

  * Changed the default pagination method from offset-based to cursor-based. Requests that do not specify `cursor` or `offset` now return cursor-based responses. Clients that still require offset-based pagination should include an `offset` parameter in their initial list requests.

  ## 2026-03-26

  ### Patient Profile

  #### Immunization

  * Removed `Publicly funded vaccine stock - VFC` and `Publicly funded vaccine stock - Non-VFC` enum values from the `funding_source` field on the Immunization object. These values are no longer valid or supported when creating immunizations via POST. Existing immunizations retrieved via GET may still return these values.

  ## 2026-03-14

  ### Patient Profile

  #### Immunization

  * Removed `HI Adult Insured`, `HI Adult Not Insured`, and `HI Birthing Hospital Hepatitis B` enum values from the `vfc_eligibility` field on the Immunization object. These values are no longer valid or supported when creating immunizations via POST. Existing immunizations retrieved via GET may still return these values.

  ## 2025-11-17

  ### Ancillary Order Tests

  * Added DELETE endpoints for Cardiac Order Tests, Imaging Order Tests, Pulmonary Order Tests, and Sleep Order Tests. These endpoints allow soft deletion of practice-created order tests and return validation errors when attempting to delete global/system-created tests.

  ## 2025-10-27

  ### Patient Document

  #### Report

  * Added `routed_document_delegates` field to the Report object. This read-only field returns delegation information for users and groups assigned to review the report.

  ## 2025-10-20

  ### Patient Document

  #### Report

  * Added `is_urgent` field to the Report object.

  ## 2025-09-12

  ### Pagination

  * Added cursor-based pagination to all `Find` endpoints. Requests can opt in by including a `cursor` query parameter; responses include `next` and `previous` URLs for traversing the result set. Offset-based pagination remains supported.

  ## 2025-08-29

  ### Message Thread

  * Added `sign_date` and `signed_by` fields to the message thread resource to track when and by whom it was signed.
  * Added the ability sign message threads using the added fields and by PATCH or PUT
  * Added the ability to update other fields on the message thread by PATCH and PUT

  ### Patient

  * Added the `verified` boolean to know if a patient was auto-created and has not yet been verified by a user or to verify via the API

  ## 2025-05-30

  ### Report

  * Added `reports/<report_id>/files` to list files in a report
  * Added `reports/<report_id>/files/<file_id>` to download file in a report by file\_id

  ## 2025-04-15

  ### Referral Orders

  * Added `sign_date` and `signed_by` fields to the referral order object to track when and by whom a referral order was signed.

  ## 2025-04-04

  ### Letter Attachments

  * Added the ability to add attachments to letters when creating them via POST.

  ## 2025-03-18

  ### Pharmacy

  #### The Pharmacy Object

  * Added `id` field to the pharmacy object.

  ## 2025-03-05

  ### Patient Profile

  #### Patient

  * Added optional `preferred_contact` field to patient. Accepted values are "sms", "email", "phone", and "passport".

  ## 2025-02-16

  ### JSON Serialization

  * Removed escaping of non-ASCII characters in JSON/UTF-8 serialized responses. This change aligns with the JSON specification and improves compatibility with other systems.
    * The character `å` will be returned as `å` instead of `\u00e5`.
    * The character `👍` will be returned as `👍` instead of `\ud83d\udc4d`.
    * `{"text":"Norwegian Bokm\u00e5l \ud83d\udc4d"}` -> `{"text":"Norwegian Bokmål 👍"}`
  * Removed unnecessary whitespace characters from JSON responses after the colon (`:`) and the comma (`,`) in key-value pairs.
    * `{"key1": "value2", "key2": "value2"}` -> `{"key1":"value1","key2":"value2"}`
  * Some changes may be observed in JSON responses with very small or very large floating point numbers. They may be returned in the scientific notation at different thresholds.
    * `{"tiny":1e-11,"small": 1e-05,"large":1e+16}` -> `{"tiny":1e-11,"small":0.00001,"large":1e16}` (note the change in the `small` value)

  ## 2024-10-09

  ### Discontinued Medications

  * Removed non-functional PATCH for discontinued medications (use\
    DELETE and POST instead)
  * Fixed issue that prevented discontinuing medication threads with\
    prescribers outside the practice
  * Added webhook for medication discontinues

  ### Medications

  * Fixed issue where only providers were able to be used as\
    `documenting_personnel`; can use staff as well now

  ## 2024-09-13

  ### Patient Profile

  #### Patient

  * Added `email` field to patient insurance guarantor.

  ## 2024-09-13

  ### User Management

  #### User

  * Documented maximum length constraints for `first_name` (50 characters) and `last_name` (60 characters) fields.

  ### Practice

  #### Physician

  * Documented maximum length constraints for `first_name` (50 characters) and `last_name` (60 characters) fields.

  #### Office Staff

  * Documented maximum length constraints for `first_name` (50 characters), `middle_name` (50 characters), and `last_name` (60 characters) fields.

  #### Contacts

  * Documented maximum length constraints for `first_name` (50 characters), `middle_name` (50 characters), and `last_name` (60 characters) fields.

  These constraints were previously enforced but not explicitly documented.

  ## 2024-07-22

  ### Medication Order Templates

  * Added specific\_ndc to support having the template indicate an NDC\
    when the user selects it.
  * Fixed bug where qty\_units were using the surescripts quantity code\
    instead of the plain language equivalent.

  ### Medication

  * Added active\_ndcs field to indicate which ndcs Elation believes to\
    be non-obsolete for a given medication

  ## 2024-07-11

  ### Patient Document

  #### Patient Form

  * Moved Patient Form documentation from Patient Profile to Patient Document
  * Added documentation for get and find patient forms

  #### Patient Form Request

  * Added documentation for Patient Form Request

  #### Patient Form Submission

  * Added documentation for get and find patient form submissions

  ## 2024-06-25

  ### Patient Profile

  #### Patient

  * Added a new `sms_opt_in_status` read-only attribute to the patient object. Attribute will return `true` if the patient is opted in to SMS messaging and `false` otherwise.

  ## 2024-06-11

  ### Scheduling

  #### Appointment

  * `telehealth_details` is deprecated. Use `instructions` instead
  * Updating `mode` to `VIDEO` will update `instructions` with a physician's default virtual visit instructions

  ## 2024-05-26

  ### Patient Profile

  #### Patient Form

  * Added documentation for the patient form object and the patient form request

  ## 2024-04-10

  ### Patient Profile

  #### AllergyDocumentation

  * Added the AllergyDocumentation resource which allows integrators to specify NKDA as a structured concept in patient charts

  ## 2024-03-05

  ### Scheduling

  #### Appointment

  * Added a new `status_detail` field to `status`. This field is specifically used for appointments in `Not Seen` status.

  ## 2024-01-30

  ### Patient Document

  #### Document Tag

  * The Find Document Tags endpoint now supports searching for tags by code, value and practice.

  #### Medication

  * Fixed: the Create Medication endpoint creates a draft prescription rather than a documented medication when `is_doc_med` is `true` and `documenting_personnel` is a physician.

  #### Report

  * The Create Report endpoint now allows lab reports to be posted without specifying a reference range (`reference_min` and `reference_max` can be missing or empty).

  ### Patient Profile

  #### Drug Intolerance

  * Fixed: the Find Drug Intolerances endpoint returns data for all patients rather than just for the patients requested.

  #### Problem

  * Fixed: the Create/Update Problem endpoints require a `synopsis` to be specified.

  ### Webhooks

  * Fixed: updating a patient photo triggers a `patients` webhook request that contains only patient photo properties.

  * Added a new `patient_photos` subscription type. Updating a patient photo now triggers a `patient_photos` webhook request.

  ## 2023-12-05

  ### OAuth API

  * The Get Token endpoint no longer supports Resource Owner Password Credentials Flow. It now supports only Client Credentials Flow, where you exchange your client id and client secret for a bearer token.
</div>
