Skip to content

Implement incremental Ignixa SDK adoption and FHIRPath seam - #5776

Draft
Brendan Kowitz (brendankowitz) wants to merge 27 commits into
personal/bkowitz/ignixa-fhirpath-seamfrom
brendankowitz-implement-ignixa-fhirpath-seam
Draft

Implement incremental Ignixa SDK adoption and FHIRPath seam#5776
Brendan Kowitz (brendankowitz) wants to merge 27 commits into
personal/bkowitz/ignixa-fhirpath-seamfrom
brendankowitz-implement-ignixa-fhirpath-seam

Conversation

@brendankowitz

@brendankowitz Brendan Kowitz (brendankowitz) commented Aug 30, 2026

Copy link
Copy Markdown
Member

Summary

  • establish one high-level architectural decision for incrementally adopting the Ignixa SDK through narrow, independently selectable capability seams
  • introduce a provider seam for FHIRPath evaluation with Firely as the default and Ignixa 0.6.73 as an opt-in implementation
  • migrate evaluating call sites and search indexing while preserving Firely-backed FHIRPath Patch node selection
  • add cross-version characterization, generated-expression, search-index, resolver, and failure-metric parity coverage

Architecture

The migration is governed by a single ADR: docs/arch/adr-2608-ignixa-sdk-migration.md.

The decision is to migrate capability by capability, retain Firely as the default for unmigrated or unapproved behavior, avoid silent runtime fallback, and require semantic parity plus production-shaped performance evidence before enabling an Ignixa seam.

Configuration

"FhirSdkProvider": {
  "Default": "Firely",
  "Import": "Firely",
  "FhirPath": "Ignixa"
}

Import and FhirPath remain independently selectable so each capability can be evaluated and rolled back separately.

Validation

  • targeted FHIRPath/indexer tests across STU3, R4, R4B, and R5
  • API module composition tests across all supported versions
  • R4 resource-parser build
  • generated and composite search-parameter expression parity
  • non-vacuous resource and search-index parity corpus
  • mixed-model reviews using Claude Opus, GPT Sol, and Gemini

Review notes

  • Firely remains the default provider
  • indexing and reindexing share the same selected provider
  • $patch node selection remains Firely-backed until its element-model behavior can migrate without losing node identity
  • ABTestRunner performance-workload changes were removed from this pull request

Copilot AI added 13 commits August 24, 2026 22:58
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Keep TRX comparison and detailed CSV labels short and stable while retaining verbose image and provider descriptions for ingestion reports.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Redact persisted probe values and isolate credential-free self-test artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
@brendankowitz Brendan Kowitz (brendankowitz) changed the title Implement Ignixa FHIRPath seam and ingestion performance comparison Implement Ignixa FHIRPath seam and ingestion performance Aug 31, 2026
Copilot AI added 2 commits August 31, 2026 10:53
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
@brendankowitz Brendan Kowitz (brendankowitz) changed the title Implement Ignixa FHIRPath seam and ingestion performance Implement incremental Ignixa SDK adoption and FHIRPath seam Aug 31, 2026
Copilot AI added 11 commits September 1, 2026 11:58
Use lock-free concurrent lookups for compiled expressions while serializing only cache misses and FIFO eviction. Add a bounded cold-cache concurrency test across shared FHIR versions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
Use non-resetting path joins, remove test-only generic catches, and assert the SMART access contract instead of a stale aggregate count.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1bbbbddc-baea-4d84-8111-55fe485c5485
Assert the newly indexed Patient A Immunization and deterministic total, and document that compile and evaluation failures are intentionally contained for observable write availability.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1bbbbddc-baea-4d84-8111-55fe485c5485
Record the measured provider-versus-legacy index difference and cancellation behavior at the FHIRPath failure boundary.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
Consume the compiled FHIRPath correctness fixes, recursive schema resolution, and element-model performance improvements released in Ignixa 0.6.73.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c56feff-ca9b-48b2-a23a-739fbfc6e7dd
Add isolated STU3 and R4 SQL canaries using Ignixa, shared deployment defaults, provider assertions, and deployed-app E2E coverage in PR and main CI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Provision persistent main canaries and isolated small vNext pools, preserve configured SDK providers, and validate the complete deployment flow in PR and main CI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Propagate optional topology expectations through shared E2E templates and fail vNext jobs before execution when the deployed Key Vault, SQL database, server, or elastic pool differs from the intended lane.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Resolve cloud-specific Key Vault and SQL DNS suffixes from the active Azure environment, reject lookalike hosts, and mask emitted Key Vault pipeline variables.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Wrap Azure environment resolution failures with actionable service-connection guidance while preserving the original exception. Cover null, missing, blank, thrown, and leading-dot suffix metadata behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Raise only the isolated vNext pool, compile-time gate integration jobs, and make credential-free plan prerequisites explicit. Clarify that E2E Key Vault variables are secret and masked while preserving legacy provisioning behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (personal/bkowitz/ignixa-fhirpath-seam@223ab44). Learn more about missing BASE report.

Additional details and impacted files

Impacted file tree graph

@@                           Coverage Diff                            @@
##             personal/bkowitz/ignixa-fhirpath-seam    #5776   +/-   ##
========================================================================
  Coverage                                         ?   77.81%           
========================================================================
  Files                                            ?     1019           
  Lines                                            ?    37400           
  Branches                                         ?     5708           
========================================================================
  Hits                                             ?    29104           
  Misses                                           ?     6910           
  Partials                                         ?     1386           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Allow the persistent CI environment to deploy existing images without compiling version or Docker stages, while preserving the default image-build flow. Validate both compiled plans and reject blank recovery tags before provisioning.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4dc0f8fb-a736-41f8-a238-98a5ced56336
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants