Skip to content

v0.6.0

Latest

Choose a tag to compare

@edward-miller-lcg edward-miller-lcg released this 13 May 18:29
Immutable release. Only release title and notes can be modified.
4d8d93f

Overview

The v0.6.0 release of NHSNLink focuses on expanding data acquisition capabilities, enhancing system reliability, and improving the user experience for administrative workflows. Key highlights include the introduction of SFTP-based census acquisition to support Cerner EHR environments, implementation of OAuth2 and custom header authentication for FHIR servers, and significant performance optimizations in Data Acquisition processing. This release also addresses critical bugs related to scheduled reporting and log processing to ensure a more stable production-ready product.

Data Acquisition & Connectivity

SFTP Census Acquisition: Introduced the ability to retrieve patient census lists via SFTP, specifically supporting Cerner Command Language (CCL) script exports.

Enhanced Authentication Support: Added support for OAuth2 and Custom Header authentication methods for FHIR servers, enabling broader EHR integration.

SFTP Configuration & Logging: Implemented a dedicated configuration API and historical logging for SFTP acquisition activities, including secure credential management via Azure Key Vault.

Connectivity Testing: Developed a new REST API endpoint allowing administrators to verify SFTP endpoint connectivity directly from the system.

System Reliability & Performance

Deadlock Mitigation: Optimized Data Acquisition jobs by implementing retry mechanisms and non-tracking queries to prevent SQL deadlocks during high-volume processing.

Improved Log Status Handling: Introduced a new "Configuration Missing" status for Data Acquisition logs to accurately distinguish between misconfiguration and transient retry failures.

Infinite Loop Prevention: Resolved an issue where missing FHIR configurations caused infinite retry loops, which previously blocked processing for other facilities.

Resource Dependency Management: Enhanced the query engine to ensure queries dependent on specific resource IDs (e.g., Encounters) wait for those dependencies to complete before executing.

Reporting & Census

Scheduled Reporting Stability: Fixed critical bugs in the Report Service related to Quartz scheduler startup and UTC date handling, ensuring scheduled reports execute consistently.

Patient Event Integration: Updated the Census and Report services to utilize a unified PatientEvent workflow for tracking admitted and discharged patients across different acquisition methods.

Report Resource Optimization: Temporarily disabled high-volume writes to the ReportResource table to improve overall system write performance during large-scale reporting runs.

Manifest Generation Fix: Corrected an issue where manifest files were not correctly generated for patients with an initial population count of zero.

Administrative UI

SFTP Management: Added new UI components for managing SFTP configurations and viewing SFTP-specific acquisition logs.

Log Execution Controls: Restricted the "Execute" and "Cancel" actions on Data Acquisition logs to appropriate scenarios to prevent accidental re-execution of completed tasks.

Vendor Configuration: Integrated EHR vendor selection into the Tenant configuration workflow to streamline downstream authentication and normalization settings.

UI Bug Fixes: Resolved various display errors on the Report Detail page and corrected pagination logic across multiple administrative screens.

Deployment

  • Kafka topic "ResourceAcquired" is updated to increase max.message.bytes to 10 MB. No need to recreate topic manually if automated tooling is used, but verify topic config update.

  • Automation.UI service requires new configuration (appsettings.json) with detailed settings for logging, authentication, service URLs, database, Kafka, and MongoDB. Ensure these config values are set appropriately in deployment environments.

  • DataAcquisition.Domain service has new database migrations and entities; apply migrations. Also update configuration:

    • Increase TimeBudgetPerRunSeconds to 60 seconds in AcquisitionWorkerProcessorSettings.
    • Add new stalled processing thresholds.
    • Add TailMessageRecoveryJobSettings section with scheduling and limits.
    • MaxBulkIds constant added (likely used internally).
  • Report service has new database migrations; apply these.

  • Validation service (Java) has updated initial schema migrations; apply these changes to the validation database.

No other services have database or config changes.

Ensure all new migrations are applied in the correct order and configuration values are set for Automation.UI and DataAcquisition.Domain services before deployment.

Full Changelog: v0.5.1...v0.6.0