Release notes

Keep up with latest product news

4297 notes
smart-discharge-navigator
Version 1.2.2

Release Notes

v1.2.2 — FHIR Installation Stability & ObjectScript Compatibility Fixes (2026-06-02)

Branch: main

This release resolves all issues identified during Open Exchange review and subsequent clean-environment validation. It includes fixes for the FHIR installation race condition, restoration of the runtime installation approach, and ObjectScript syntax compatibility improvements for non-interactive execution.


Issues Addressed

1. FHIR Installation Race Condition

The original installation process executed:

HS.Util.Installer.Foundation.Install("FHIRSERVER")

followed immediately by:

HS.FHIRServer.Installer.InstallInstance(...)

Although Foundation.Install() starts the namespace/database creation process, it completes asynchronously through background jobs. On clean environments, the FHIR installer could execute before the FHIRSERVER namespace became available.

Fix:

Added an explicit polling loop to wait until the namespace exists before proceeding:

for {
    quit:##class(%SYS.Namespace).Exists("FHIRSERVER")
    hang 2
}

This guarantees that InstallInstance() only runs after the FHIR infrastructure is fully initialized.


2. Runtime Installation Restored

An initial attempt to solve the race condition moved FHIR installation to Docker image build time.

During validation it was discovered that IRIS registers parts of the FHIR web application using the hostname present during image creation (buildkitsandbox). When containers later started with a different hostname, the /fhir/r4 endpoint became inaccessible and returned HTTP 404 responses.

Resolution:

The project returned to the runtime installation model while retaining the namespace readiness polling logic.

Changes:

  • docker-compose.yml

    • Reverted to the official IRIS Health Community image.
  • start.sh

    • Restored runtime FHIR installation.
    • Removed mandatory image build workflow.
  • README.md

    • Updated installation instructions accordingly.
  • config/iris/Dockerfile

    • Retained only as a reference for future CI/CD scenarios.

3. ObjectScript Pipe Execution Compatibility

Validation uncovered <SYNTAX> errors in:

config/iris/setup_fhir_post_install.sh

when ObjectScript was executed through:

iris session IRIS << 'EOF'

The original implementation used multi-line block syntax:

if condition {
    ...
} else {
    ...
}

This syntax is not reliably supported when commands are executed through stdin piping.

Fix:

Replaced block-style conditionals with equivalent single-line statements:

set fhirAppExists = ##class(Security.Applications).Exists("/fhir")

if 'fhirAppExists do ##class(Security.Applications).Create("/fhir", .props)
if 'fhirAppExists write "CSP application /fhir created",!

if fhirAppExists do ##class(Security.Applications).Modify("/fhir", .props)
if fhirAppExists write "CSP application /fhir already exists — updated.",!

This ensures compatibility across automated installation environments.


Files Modified

config/iris/install_fhir.txt

  • Added namespace readiness polling loop.
  • Improved installation logging.

config/iris/setup_fhir_post_install.sh

  • Added idempotent CSP application configuration.
  • Replaced multi-line conditionals with pipe-compatible syntax.

docker-compose.yml

  • Restored runtime installation strategy.

start.sh

  • Restored runtime FHIR installation workflow.
  • Simplified startup validation.

README.md

  • Updated installation and verification instructions.

config/iris/Dockerfile

  • Retained for reference and future CI/CD usage.

Validation

Validated from a completely clean environment:

docker-compose down -v
./start.sh

Results:

  • ✅ IRIS starts successfully
  • ✅ FHIRSERVER namespace created correctly
  • ✅ FHIR R4 endpoint installed
  • ✅ CSP gateway configured
  • ✅ No <SYNTAX> errors during installation
  • ✅ Sample patient data loaded
  • GET /fhir/r4/metadata returns HTTP 200
  • ✅ Frontend dashboard available at http://localhost:3000

Upgrade Notes

No manual migration steps are required.

For existing installations:

docker-compose down
docker-compose up -d

For a completely clean installation:

docker-compose down -v
./start.sh
01 Jun, 2026 John Murray
Server Manager for VS Code
Version 3.12.3
  • Web Applications: use a different icon for the namespace default app (#328).
  • Update dependencies.
14 Apr, 2026 John Murray
Server Manager for VS Code
Version 3.12.2
  • Update dependencies
smart-discharge-navigator
Version 1.1.0

Release Notes

v1.1.0 — Bug Fix Release (2026-06-01)

Commit: 9899826
Branch: main

This release addresses all issues reported during the InterSystems Programming Contest reviewer evaluation.


Bug Fixes

1. IRIS Healthcheck — template: map does not contain key "Health"

Problem: docker-compose.yml had healthcheck: disable: true, so .State.Health never existed at runtime. The start.sh wait loop used docker inspect --format='{{.State.Health.Status}}', which crashed with a template parse error on every iteration — causing 60 failed attempts before timeout.

Fix:

  • docker-compose.yml: Added a real healthcheck (iris status IRIS 2>&1 | grep -qi running, interval: 10s, retries: 30, start_period: 90s).
  • start.sh: Replaced the broken template with a conditional Go template {{if .State.Health}}{{.State.Health.Status}}{{else}}no-healthcheck{{end}} that never crashes, plus an HTTP fallback probe against port 52773 — so the loop exits as soon as IRIS is reachable regardless of healthcheck state.

2. FHIR Database Not Installed Automatically

Problem: start.sh ran iris session IRIS -U HSSYS — the HSSYS namespace does not exist in IRIS for Health Community Edition. The FHIR installation command silently failed and was never executed.

Additionally, the success check used grep "EndpointExists:1" — a string that never appears in the installation output — so even if the install ran, the script would always report failure.

Fix:

  • start.sh: Changed namespace flag to -U %SYS (the correct system namespace where FHIR installer classes reside).
  • start.sh: Changed success detection to grep "FHIR Server Installation Complete" (the actual string printed by install_fhir.txt), with an HTTP double-check (curl /fhir/r4/metadata) as a secondary verification.
  • install_fhir.txt: Replaced ObjectScript block-style if { } else { } with single-line syntax (if condition do ...) — block style causes <SYNTAX> errors when the script is fed via stdin pipe.
  • start.sh: Added idempotency check — if /fhir/r4/metadata already returns HTTP 200, the entire installation is skipped without re-running.

3. AI Agent Returns "No Data" — Sample Patients Never Loaded

Problem: start.sh contained an interactive read -r LOAD_DATA prompt asking whether to load sample data. In non-interactive environments (CI, Docker exec, automated runs) this prompt received no input and execution was blocked or skipped, resulting in an empty FHIR database. The AI agent had no patient records to reason about.

Fix:

  • start.sh: Removed the interactive prompt entirely. Sample data loading is now fully automatic — 8 synthetic patients (3 HIGH, 3 MODERATE, 2 LOW risk) are always created on first start.
  • The script runs the loader inside the smart-discharge-backend container with FHIR_BASE_URL=http://iris:52773/fhir/r4, ensuring correct Docker network resolution.

4. ObjectScript Compatibility in Piped Mode (setup_fhir_post_install.sh)

Problem: Security.Users.Open("SuperUser") is not a valid method — the correct API is Security.Users.%OpenId("SuperUser"). Block-style if $IsObject(user) { ... } and try { ... } catch { ... } statements cause <SYNTAX> errors when ObjectScript is executed line-by-line via stdin pipe.

The RestartHTTPd() call referenced %SYS.HSDFHIR.Utils, a class absent in IRIS for Health Community Edition, causing a <CLASS DOES NOT EXIST> error.

Fix:

  • Changed Security.Users.Open()Security.Users.%OpenId().
  • Converted all block-style conditionals to single-line ObjectScript compatible with piped execution.
  • Removed the RestartHTTPd() call — confirmed unnecessary, the FHIR endpoint is accessible without it.

Documentation Updates (README.md)

  • Step 4: Replaced broken docker inspect --format='{{.State.Health.Status}}' with curl -s -o /dev/null -w "%{http_code}" http://localhost:52773/csp/sys/UtilHome.csp.
  • Step 5: Clarified that -U %SYS is required and explained why.
  • Step 6: Corrected description of what the CSP script actually does; noted that /fhir/r4/metadata is accessible before this step.
  • Step 7: Updated docker cp path from /app/ to /tmp/; removed the unnecessary pip install requests line.
  • Troubleshooting: All iris session IRIS commands updated to include -U %SYS.
  • Troubleshooting — IRIS memory: Replaced broken docker inspect command with the safe conditional template + HTTP probe.
  • Demo Video: Added YouTube link.

Files Changed

File Change
docker-compose.yml Real healthcheck replacing disable: true
start.sh Fixed wait loop, FHIR install namespace, success detection, automatic data loading; removed ~80 lines of orphaned code
config/iris/install_fhir.txt Single-line ObjectScript for piped-mode compatibility
config/iris/setup_fhir_post_install.sh Correct %OpenId(), single-line syntax, removed unavailable class call
README.md All commands corrected to match fixed code; troubleshooting updated

v1.0.0 — Initial Release

Initial submission to InterSystems Programming Contest: AI Agents for FHIR 2026 (Task #9 — Hospital Readmission Risk Workbench).

Features:

  • Hybrid AI Agent (GPT-4o) + rule-based risk scoring engine
  • FHIR R4 read/write via InterSystems IRIS for Health
  • FHIR SQL Builder analytics (population queries, polypharmacy detection)
  • Conversational AI chat with FHIR patient context
  • AI-powered discharge plan generation (CarePlan + Task resources)
  • Multi-patient triage with AI prioritization rationale
  • Graceful degradation to rule-based mode without API key
  • React dashboard with tabbed navigation (Dashboard, AI Chat, Analytics)
  • 8 synthetic sample patients across 3 risk categories
27 May, 2026 GGil Tavassy
patient-friendly-lab-explainer
Version 1.0.0

for contest:
Patient-facing lab explanation engine with deterministic output and grounded educational snippets. It includes a retrieval contract with pluggable vector support, a deterministic local fallback, panel-based FHIR observation retrieval, lab normalization, trend analysis, and a rule-based narrative composer for patient-friendly lab summaries. It also includes synthetic and live demos, quality checks, and generated demo artifacts for A1c, lipids, and CMP panels.

smart-discharge-navigator
Version 1.0.0

Initial Release

26 May, 2026 GGil Tavassy
medication-safety-and-interaction-assistant
Version 1.0.0

Medication Safety and Interaction Assistant is an AI-enabled, explainable FHIR application built on InterSystems IRIS AI Hub.
It analyzes patient context from standard FHIR resources (including MedicationRequest, MedicationStatement, AllergyIntolerance, Condition, and Observation) and produces clinically useful safety guidance in two tiers: strict warnings first, then conservative warnings with additional context.

Key capabilities include:

Drug interaction and duplicate therapy detection
Allergy and contraindication checks
Risk-category findings (including black-box and population-relevant risks)
Lab-threshold safety checks
QT-risk analysis, including amplification when potassium is low
Anticholinergic burden scoring
Explainable reasoning for every finding (clear “why this was flagged”)
Structured recommended actions with urgency metadata (actionType, priority, slaHours, sourceRisk)
The project includes reproducible synthetic test profiles and consolidated per-patient case artifacts demonstrating input resources and assistant output, enabling transparent validation and easy review for contest judging.

26 May, 2026 GGil Tavassy
smart-patient-summary-generator
Version 1.0.0

Initial ReleaseSmart Patient Summary Generator is a clinician-focused application that converts fragmented FHIR R4 patient data into clear, role-aware narrative summaries for rapid clinical decision support.

It ingests key clinical resources (Patient, Observation, Condition, MedicationRequest, AllergyIntolerance, Encounter, and CarePlan) and produces concise summaries tailored to different audiences such as ED physicians, care managers, patients, and caregivers. The output emphasizes actionable clinical content rather than technical metadata, helping users quickly identify what matters now.

Core capabilities include:

Role-based narrative generation (ED, care manager, patient, caregiver views).
Deterministic extraction of current issues from structured data.
Detection and highlighting of unusual/abnormal observations (for example low oxygen saturation) using interpretation flags, reference ranges, and rule-based thresholds.
Safety-aware context such as allergy constraints and recent acute utilization.
Clean, shareable narrative output written directly to file (without terminal/session noise).
The project is designed for explainable, practical use in healthcare workflows, where clarity, traceability to FHIR evidence, and immediate clinical relevance are essential.

iris-terminology-server
Version 1.0.0

Initial Release

26 May, 2026 Anton Gnibeda
DeepSeeWeb
Version 4.0.32
  • filter text search now respects related filters (cross-filters)
  • preserve selected filter values between search requests in filter popup
  • added clear selection control to reset pinned filter values without applying
  • show hint of related filters affecting current filter value list
  • highlight related filters on dashboard toolbar while filter popup is open

4.0.31

  • fixed left table header resize after drilldown and drillthrough (#477)
  • removed console warnings in map widget and namespace service
19 May, 2026 John Murray
IRIS REST API Explorer for VS Code
Version 1.0.4
  • Update dependencies in response to GitHub security alerts (no functional change).
17 May, 2026 Yuri Marx
iris-redoc
Version 1.0.0

Initial Release

13 May, 2026 GGuillaume Rongier
iris-persistence
Version 1.0.0

Initial Release

11 May, 2026 JJoshua Brandt
iris-session-agent
Version 1.0.4

What's new in v1.0.4
Documentation-only release. No code changes; same 28 tools and 509/509 regression sweep as v1.0.3.

README improvements
UI-label corrections — README operator-facing prose now references the Agent Configuration form's actual labels instead of internal Config.Agent property names:
EnvVarName -> Environment Variable Name
CredentialName -> Ens.Config.Credentials Entry
EndpointUrl -> Endpoint URL (OpenAI-Compatible only)
Enabled -> Enable this agent
SystemPromptOverride -> System Prompt Override (optional)
new: Credential Source radio with Environment Variable / Ens.Config.Credentials options
Bookmark URLs section now lists the Agent Configuration form alongside the MessageViewer and VisualTrace entries (both HealthShare and plain IRIS URL variants).
Low-level SQL verification probes still use the internal table/column names; those are intentionally diagnostic, not form-driven.
Upgrade from v1.0.3
No schema changes. Run zpm "update iris-session-agent" or zpm "load /path/to/iris-session-agent" to refresh the module metadata. No operator configuration changes required.

What's new in v1.0.3
Epic 13: Tool Catalog Expansion — 6 new tools bringing the total to 28 (17 Inspection + 11 Search), with 509/509 regression sweep.
New tools
Session Inspection Agent (4 new tools):
get_rule_source — Read the raw RuleDefinition XML from a compiled Ensemble rule class
get_class_source — Read the full ObjectScript source of any compiled class
get_queue_state — Return the depth and oldest-message age of a named Ensemble queue
get_production_config_item — Read adapter class, pool size, enabled flag, and configured settings of any named production config item
Message Search Agent (1 new tool, plus 1 moved from Inspection):
find_sessions_using_class — Find sessions referencing a given class name in SourceConfigName, TargetConfigName, or MessageBodyClassName (4-layer SQL injection defense; match_field filter; strip-last-segment fallback)
Other changes
README: full tool catalog (all 28 tools described), sample URLs for MessageViewer / VisualTrace / AgentConfig pages, corrected tool counts throughout
FR59 cross-matrix gate updated: 28 tools x 4 providers = 112 combinations
Regression sweep: 509/509/0
Upgrade from v1.0.2
No schema changes. Run zpm "update iris-session-agent" or zpm "load /path/to/iris-session-agent" in your target namespace. No operator configuration changes required.

11 May, 2026 Yuri Marx
msg-banking-sample
Version 1.0.0

Initial Release

11 May, 2026 Dmitrij Vladimirov
Calendar-dataset
Version 1.0.0

Initial Release

11 May, 2026 PPietro Di Leo
iris-mcp-blueprint
Version 1.0.0

Initial Release

11 May, 2026 José Pereira
pii-detection
Version 1.0.0

Initial Release

11 May, 2026 GGuillaume Rongier
iris-embedded-python-wrapper
Version 1.0.0

Initial Release

11 May, 2026 DDavid Hockenbroch
sqljsonadaptor
Version 1.0.1

Return types for the methods have been corrected.

09 May, 2026 Olga Verevkina
ClinoveraModernizeOnForme
Version 1.0.0

Initial Release

08 May, 2026 JJoshua Brandt
iris-session-agent
Version 1.0.2

Initial Release

07 May, 2026 GGabriel Ing
ai-hub-dev-template
Version 1.0.0

Initial Release

07 May, 2026 AAlberto Fuentes
iris-azure-servicebus-interop
Version 1.0.0

Initial Release

05 May, 2026 GGuillaume Rongier
iris-global-reference
Version 1.0.0

Initial Release

29 Apr, 2026 JJoshua Brandt
READY 2026 LoanDemo
Version 1.0.0

Initial Release

26 Apr, 2026 NNetanel Frankel
iris-keycloak-fhir-demo
Version 1.0.0

Initial Release

25 Apr, 2026 Ron Sweeney
iris-certified-agents
Version 1.0.0

Initial Release

23 Apr, 2026 GGabriel Ing
iris-synthetic-data-gen
Version 1.0.1

Re-releasing to get IPM upload to work

23 Apr, 2026 GGabriel Ing
iris-synthetic-data-gen
Version 1.0.0

Initial Release