Skip to content

Releases: aehrc/sof-mssql

v2.1.0

22 Jan 00:14
v2.1.0
4a5ea73

Choose a tag to compare

This release adds support for the repeat directive in ViewDefinitions, enabling recursive traversal of tree structures such as QuestionnaireResponse.item hierarchies.

New features

Repeat directive

Implements the SQL on FHIR v2 repeat directive which enables recursive traversal of nested structures using T-SQL recursive Common Table Expressions (CTEs).

  • Single-path repeat (e.g., repeat: ["item"])
  • Multi-path repeat (e.g., repeat: ["item", "answer.item"])
  • Nested forEach/forEachOrNull inside repeat
  • Combined with unionAll (CTEs consolidated into single WITH clause)
  • Uses SQL Server default MAXRECURSION (100)

Configurable request timeout

Adds --request-timeout CLI flag to configure the mssql request timeout when loading NDJSON files, with a default of 300000ms (5 minutes). This allows large NDJSON files to be loaded without timing out during bulk insert operations.

Also supports MSSQL_REQUEST_TIMEOUT environment variable.

v2.0.0

12 Oct 02:37
v2.0.0
ee8eeea

Choose a tag to compare

New Features

Type tag support:

  • Added tag array to ViewDefinitionColumn for type hints
  • Two tag types supported:
    • tsql/type - Direct T-SQL type specification (e.g., DATE, VARCHAR(50))
    • ansi/type - ANSI/ISO SQL standard types, auto-converted to T-SQL (e.g., INTEGERINT, BOOLEANBIT)
  • Type precedence: tsql/type > ansi/type > FHIR defaults

Example:

{
  "name": "birthDate",
  "path": "birthDate",
  "tag": [{ "name": "tsql/type", "value": "DATE" }]
}

Improvements

  • Enhanced SQL injection protection with comprehensive validation
  • Better identifier validation for resource types and column names

Breaking Changes

⚠️ Default column type mappings have changed significantly:

  • Temporal types (date, datetime, instant, time) now use VARCHAR instead of native SQL types to preserve FHIR semantics (partial dates, timezone precision)
  • decimal now uses VARCHAR(MAX) instead of DECIMAL(18,6) to support arbitrary precision
  • id, uuid, oid now use VARCHAR with size constraints instead of NVARCHAR(MAX)

v1.0.1

10 Oct 09:06
v1.0.1
b6667cd

Choose a tag to compare

Fixed problem with missing production dependency for load script.

v1.0.0

08 Oct 07:11
v1.0.0
4778431

Choose a tag to compare

v1.0.0