# Changelog

A dated history of updates, improvements, and releases for the JondaX API and developer platform.

## October 2026

### Added

- **Streamlined FHIR R4 Bundle Architecture**:
  - Restructured FHIR JSON and FHIR XML output to standard `collection` Bundles containing `Organization`, `Patient`, `DiagnosticReport`, and `Observation` resources.
  - Eliminated placeholder `Encounter` and `ServiceRequest` records for outpatient and scanned diagnostic lab reports, preventing spurious encounter reconciliation errors in downstream EHRs.
  - Implemented deterministic UUIDv5 resource identifiers (`urn:uuid:<uuidv5>`) based on permanent record and observation IDs, ensuring complete idempotency and eliminating duplicate resource creation across multiple fetches or retries.
  - Added official Organization identifier (`https://jonda.health/identifiers/orgs`) and persistent observation business identifiers (`https://jonda.health/identifiers/observations`).
  - Added universal LOINC code `11502-2` ("Laboratory report") to `DiagnosticReport.code` and standard `laboratory` category across all `Observation` resources.
  - Dynamically populated `Organization.name` and `DiagnosticReport.performer.display` with the extracted laboratory name when detected on the diagnostic report (falling back to `"Jonda Health"`).
  - Omitted unvalidated UCUM `system` and `code` attributes from `valueQuantity` and `referenceRange`, retaining human-readable `unit` to prevent strict terminology validation rejections in downstream EHRs.
- **Biomarker LOINC Code Support Across All Formats**:
  - Added standard `LOINC-Code` column/key across JSON, CSV, and Apache Parquet export formats.
  - Harmonized HL7 `OBX-3` observation identifiers to follow the standard `Code^Text^LN` format.
  - Standard LOINC codes under `http://loinc.org` are populated for template-matched analytes while leaving the code field blank for unmapped biomarkers without dropping test rows.


## September 2026

### Added

- **Two-Stage Callback Delivery**: Results that pass automated QA verification are delivered immediately in an early webhook callback (`qaPassed`), followed by a secondary callback for any biomarkers requiring human review (`manualReview`), eliminating unnecessary wait times for downstream clinical systems.
- **Parquet & CSV Export Support**: Added support for Apache Parquet (`.parquet`) and Tabular CSV (`.csv`) output formats alongside standard JSON, HL7 v2, and FHIR (JSON/XML).
- **Direct Result Retrieval Endpoint**: Added `GET /api/v1/results/{uploadId}` to fetch transformed clinical results directly via API within 30 days of processing, eliminating the strict requirement for a webhook callback URL.
- **Model Context Protocol (MCP) Server**: Official JondaX MCP server released, allowing AI assistants (Claude Desktop, Cursor, etc.) to securely trigger pathology uploads and query extraction results directly.


### Improved

- **HL7 v2 Message Mapping**: Optimized OBX segment formatting and harmonization across routine chemistry and hematology panels.
- **Performance**: Reduced asynchronous processing latencies for multi-page PDF pathology documents.


## August 2026

### Added

- **Interactive Upload Widget**: Zero-code embeddable file uploader available directly in the client portal integration tab and for web embedding.
- **Multi-File Batch Uploads**: Support for uploading up to 10 files in a single multipart request with independent `uploadId` tracking.


### Improved

- **Callback Delivery**: Added automatic webhook retries with exponential backoff on network failures.
- **Error Reporting**: Standardized RFC-7807 compliant error responses across all upload and status endpoints.


## July 2026

### Added

- **Multi-Language Biomarker Output**: Configurable output language localization supporting English (`EN`), German (`DE`), Spanish (`ES`), and Simplified Chinese (`ZH`).
- **Status Polling API**: Dedicated endpoint (`GET /api/master?uploadId=...`) to check processing progress for asynchronous pathology jobs.