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

# API

> Changelog of Junction Lab Testing API updates including custom requisition comments, report parsing, and order management enhancements.

### Lab account delegation status enforced (May 2026)

We will soon be enforcing that at least one physician is supplied on order creation for Labcorp, Quest, and Sonora Quest labs *if your order is configured to use a delegated lab account*. Up until now, even if the order should be delegated, we would allow a fallback to using Junction physicians if a physician wasn't provided in the order. Going forward, non-delegated orders will use Junction physicians, but delegated orders must supply a physician.

There will be a grace period to give you time to ensure your integration is always supplying a physician for delegated orders. Details of how to check your delegation status are below. Please contact your customer success manager with any questions.

<Accordion title="Details" defaultOpen icon="pencil" iconType="duotone">
  You can view the lab account for a given team using the [team-level Get Lab Accounts endpoint](/api-reference/lab-testing/lab_accounts), or all lab accounts for an org using the [org-level Get Lab Accounts endpoint](/api-reference/org-management/lab-accounts/get-lab-accounts). Each will include the `delegated_flow` for each lab account in the response body.

  Delegated flow values of either `order_delegated` or `fully_delegated` mean that we expect you to be supplying your own physicians in order requests. This only applies when you're using your own lab account or a Junction subaccount. If you only order with Junction platform accounts, these are non-delegated and orders will continue to use our physicians.

  Whenever possible, we recommend specifying the lab account ID in requests.

  Here are some example scenarios.

  #### You haven't created any client lab accounts and you place a Labcorp order

  This order will use Junction's Labcorp account and Junction physicians. You don't need to specify the lab account ID or include physicians in the request.

  #### You are using a non-delegated Junction subaccount and place a Quest order

  This order will use the Junction subaccount. Please provide the lab account ID. Since the lab account isn't delegated, you don't need to supply physicians in the request.

  ```json theme={null}
  {
    "order" {
      ...
      "lab_account_id": "<UUID of the subaccount you want to use>"
      ...
    }
  }
  ```

  #### You are using your own delegated Quest account

  This order will use your own account. Please provide the lab account ID. Since the lab account is delegated, you must supply physician information in the request.

  ```json theme={null}
  {
    "order" {
      ...
      "lab_account_id": "<UUID of the lab account you want to use>",
      "physician": {
        "first_name": "<physician's first name>",
        "last_name": "<physician's last name>",
        "npi": "<physician's NPI>",
      }
      ...
    }
  }
  ```
</Accordion>

### PSC Appointment Scheduling API Improvements (April 2026)

We have introduced three opt-in features to the PSC Appointment Scheduling API to help improve the availability and reliability of the end patient experience.

<Accordion title="Details" defaultOpen icon="pencil" iconType="duotone">
  You can now:

  * [Query PSC availability through our minutely-updated cache](/lab/walk-in/psc-appointment-scheduling-opt-ins#availability-cache) to improve your slot searching and selection experience.
  * [Specify an Idempotency Key](/lab/walk-in/psc-appointment-scheduling-opt-ins#idempotency-key) to ensure that your booking CTA is resilient against any network connectivity issues.
  * [Adopt the Async Confirmation flow](/lab/walk-in/psc-appointment-scheduling-opt-ins#async-confirmation) to buffer your booking experience from any instability and unavailability of the underlying PSC Provider API.

  Check out the [PSC Appointment Scheduling: Opt-in Features](/lab/walk-in/psc-appointment-scheduling-opt-ins) for details.
</Accordion>

### Status details for order events and top-level `last_event` field (Mar 2026)

Each order event in API responses and webhook bodies now has a nullable `status_detail` field. If populated, it will contain more granular information about the status.

The latest event for an order is now available on the order body. It holds the same data as the last item in the `events` list.

### Access Notes & Appointment Notes for At-Home Phlebotomy (Mar 2026)

You can now provide instructions for phlebotomists through two new optional fields on at-home phlebotomy appointments.

<Accordion title="Details" defaultOpen icon="notes" iconType="duotone">
  ## New Fields

  * **`access_notes`** (on patient address) – Set at order creation. Provides location access instructions such as gate codes, parking details, or entrance directions. Automatically forwarded to the phlebotomy provider on every booking and reschedule.
  * **`appointment_notes`** (on appointment) – Set at booking, request, or reschedule time. Provides per-appointment special instructions such as "Please bring photo ID" or "Patient prefers left arm". Can be updated on each reschedule.

  ## Updated Endpoints

  * **POST /v3/order** – `patient_address` now accepts an optional `access_notes` field.
  * **POST /v3/order/{order_id}/phlebotomy/appointment/book** – Request body now accepts an optional `appointment_notes` field.
  * **POST /v3/order/{order_id}/phlebotomy/appointment/request** – Request body now accepts an optional `appointment_notes` field.
  * **PATCH /v3/order/{order_id}/phlebotomy/appointment/reschedule** – Request body now accepts an optional `appointment_notes` field.

  Both fields are returned in the appointment response. See the [At-Home Phlebotomy overview](/lab/at-home-phlebotomy/overview#access-notes-and-appointment-notes) for details.
</Accordion>

### Custom Comments on Requisitions (Mar 2026)

You can now add clinical comments during order creation that are forwarded to the lab requisition. Comments can also be configured as defaults on a per-lab-account basis.

<Accordion title="Details" defaultOpen icon="comment-medical" iconType="duotone">
  ## How It Works

  * **Order-level comments** – Provide free-text clinical context (up to 1,000 characters) when creating an order through the Dashboard or the API.
  * **Lab-account defaults** – Configure default clinical notes on a lab account. These are automatically included on every order placed under that account.
  * **Merging behavior** – When both order-level and lab-account-level comments are present, they are concatenated on the requisition.

  ## Supported Labs

  * Quest
  * Sonora Quest
  * Labcorp
  * BioReference
</Accordion>

### Lab Report Parsing API (Feb 2026)

Introducing the Lab Report Parsing API – extract structured biomarker data from lab report files and match results to standardized LOINC codes.

<Accordion title="Details" defaultOpen icon="file-medical" iconType="duotone">
  ## Overview

  The Lab Report Parsing API enables you to digitize lab results from any source. Upload a PDF, JPEG, or PNG lab report, and Junction extracts structured data with LOINC standardization.

  ## New Endpoints

  * **POST /lab\_report/v1/parser/job** – Upload a lab report to create a parsing job
  * **GET /lab\_report/v1/parser/job/{job_id}** – Retrieve job status and extracted results

  ## Key Features

  * **Multi-format support** – Parse PDF, JPEG, and PNG lab reports up to 10 MB
  * **LOINC matching** – Extracted biomarkers are matched to standardized LOINC codes for cross-lab comparability
  * **Human review option** – Flag jobs for manual verification before completion
  * **Structured output** – Get biomarker name, value, unit, reference range, and interpretation

  ## Webhook Events

  * **lab\_report.parsing\_job.created** – Triggered when a new parsing job is submitted
  * **lab\_report.parsing\_job.updated** – Triggered when a parsing job status changes (completed, failed, pending review)

  ## Use Cases

  * **Patient uploads** – Allow patients to submit lab reports from other providers
  * **Historical data import** – Digitize paper records and legacy PDFs
  * **Multi-source aggregation** – Combine results from various labs using LOINC standardization

  <Info>
    This feature is currently in beta. Contact your account manager to enable it.
  </Info>

  Check out the [Lab Report Parsing documentation](/lab/report-parsing/overview) to get started.
</Accordion>

### Lab Account Selection in Ordering Flow (Feb 2026)

You can now scope orders to a specific lab account during creation.
A new team-level lab accounts endpoint lets you list available accounts,
and a new `lab_account_id` parameter on the order creation endpoint lets you specify which account to use.

<Accordion title="Details" defaultOpen icon="building" iconType="duotone">
  ## New Endpoint

  * **GET /v3/lab\_test/lab\_account** – List lab accounts accessible to your team. Supports optional `lab_account_id` and `status` query parameters.

  ## Updated Endpoints

  * **POST /v3/order/create** – New optional `lab_account_id` parameter to specify which lab account to use. If omitted, the backend resolves the appropriate account automatically.
  * **POST /v3/order/import** – Now accepts lab accounts in `PENDING` status, enabling order imports while accounts are still being set up.
  * **GET /v3/lab\_tests/markers** – New optional `lab_slug` query parameter to filter markers by lab. When a lab account is selected, you can use this to retrieve only the markers available under that lab.

  ## Behavior

  * When `lab_account_id` is provided, available panels and markers are filtered to those supported by the selected account's lab.
  * When recreating an order with `update_reason=INCORRECT_LAB`, the backend now resolves a fresh lab account rather than carrying forward the incorrect one.
</Accordion>

### Idempotency of Ordering (Sep 2025)

We've added idempotency behavior on the order endpoint, to prevent duplicate orders.

<Accordion title="Details" icon="magnifying-glass" iconType="regular">
  Check out the [documentation](/lab/overview/idempotency).
</Accordion>

### Enhanced Lab Order Management with Result Interpretation Filtering (June 2025)

We've enhanced the Orders page with new filtering and visualization capabilities for lab test result interpretations, making it easier to identify and prioritize critical patient results.

<Accordion title="Details" defaultOpen icon="filter" iconType="duotone">
  ## What's New

  * **Interpretation Filter** – Filter orders by clinical result interpretation using the new "Interpretation" dropdown filter
  * **Critical Value Indicators** – The orders table now displays visual indicators for orders with critical results
  * **Enhanced Order Details** – Order detail views now include interpretation badges highlighting critical findings

  ## Filter Options

  The new Interpretation filter allows you to quickly locate orders based on their clinical assessment:

  * **Normal** – Orders with results within normal reference ranges
  * **Abnormal** – Orders with results outside normal ranges but not critically urgent
  * **Critical** – Orders with results requiring immediate clinical attention

  ## Visual Enhancements

  ### Orders Table

  * Critical value indicators help you quickly spot high-priority results that need immediate attention
  * Clear visual distinction between normal, abnormal, and critical interpretations

  ### Order Details View

  * Prominent badges display the interpretation status for easy identification
  * Critical results are highlighted with distinctive styling to ensure they don't go unnoticed

  <Info>
    You can combine the Interpretation filter with existing filters like Order Status, Date Range, and Order Type for more precise result filtering.
  </Info>

  This enhancement improves clinical workflow efficiency by enabling healthcare teams to quickly identify and prioritize orders requiring immediate attention.
</Accordion>

### Introducing Panel Renaming & Archiving (May 2025)

We've added more control to how you manage test panels.

<Accordion title="Details" icon="magnifying-glass" iconType="regular">
  Now you can skip the support email and work directly in the Test Catalog to:

  * Rename panels
  * Archive outdated or unused panels to keep things clean
  * View archived panels using the "Status" filter and "unarchive" to make panels active again

  Existing orders tied to archived panels will remain active and processable.

  [Full product guide →](https://support.tryvital.com/articles/1278554980-managing-lab-panels)
</Accordion>

### Problem in Transit Order Statuses (Mar 2025)

Testkit orders now support two new statuses representing problems in transit. Refer to the [lab test lifecycle documentation](/lab/workflow/lab-test-lifecycle).

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  We're introducing two new statuses for the `OrderLowLevelStatus` enum (`problem_in_transit_lab` and `problem_in_transit_customer`) and two for the `OrderStatus` enum (`collecting_sample.testkit.problem_in_transit_customer` and `collecting_sample.testkit.problem_in_transit_lab`)—and we may make further changes in the future. To ensure future compatibility, we ask that you avoid exhaustive matching on enum values. Code that assumes all current values are exhaustive could break or fail to compile with SDK upgrades.

  Here's how to verify and ensure you benefit from future enhancements:

  1. Look for areas in your code where you take an action based on the values of a Junction-defined enum. For example, you might have Python code like this:

  ```python Python theme={null}
  match status:
      case OrderStatus.TESTKIT_ORDERED:
          handle_ordered()
      case OrderStatus.TESTKIT_AWAITING_REGISTRATION:
          handle_awaiting_registration()
          # other cases...
  ```

  2. Check that unknown values in your code paths are handled gracefully—for example, by using default cases. Logging unknown values can help you stay informed.

  ```python Python theme={null}
  match status:
      # previous cases...
      case unknown_status:
          logger.warning(f"Unknown status received: {repr(unknown_status)}")
  ```

  3. Make sure you're running the latest version of our SDK.
  4. You're good to go. Once you've checked the code paths won't break if Junction-defined enums start including new values, no further action is needed.
</Accordion>

### Source Marker Identification for Results (Nov 2024)

Results now feature the source orderable marker from which they originated.
Refer to the [documentation](/lab/results/result-formats).

### PSC Appointment Scheduling API (Oct 2024)

Walk-in Phlebotomy orders now allow for appointment booking directly with Junction.
Refer to the [documentation](/lab/walk-in/order-lifecycle).

### Phlebotomy Availability API - Start Date Query (Sep 2024)

You can now supply a `start_date` to the [Appointment Availability API](/api-reference/lab-testing/at-home-phlebotomy/appointment-availability).
The API always responds with 14 days' worth of slots.

### À La Carte Ordering (Sep 2024)

Junction now supports ordering à la carte, as well as a revamped ordering flow.

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  Check out the [Ordering](/lab/workflow/ordering) documentation.
</Accordion>

### Partial Results Webhook (Jul 2024)

Junction now supports sending webhooks for partial results, on a team-by-team configuration.

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  Check out the [Partial Results Notifications](/lab/workflow/partials) documentation.
</Accordion>

### Patient Service Center (PSC) Availability API (Jul 2024)

It is now possible to verify lab PSC availability in regard to a zip code, radius or order.

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  Check out the [Patient Service Center](/lab/overview/locations) documentation.
</Accordion>

### Create Lab Tests With Provider IDs (Jun 2024)

It is now possible to create lab tests using the Laboratory's unique provider ID.
This allows payloads to be shared across sandbox and production.

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  Check out the [Create a Lab Test](/lab/workflow/create-test) documentation.
</Accordion>

### Ask on Order Entry (AOE) (Jun 2024)

You can now order panels with AOE requirements via the API.

<Accordion title="Details" defaultOpen icon="billboard" iconType="duotone">
  Check out the [AOE](/lab/workflow/aoe) documentation.
</Accordion>
