Skip to content

Infinity LIS – Project Overview & Development Roadmap

Infinity LIS Logo

Core Architect: Krishna Reddy Domain SME: Prabhakar Ashwin - CRMC Lab Director Operational Lead: Dawn Webber Product Owner: Sana Healthcare Systems Version: v1.0 Date: June 2025


1. Vision Statement

Infinity LIS (Laboratory Information System) is a next-generation, enterprise-grade, web-based LIS platform designed to unify all laboratory workflows—clinical chemistry, hematology, microbiology, blood bank, pathology, and molecular genetics—into a single, modular ecosystem.

The system replaces the existing LIS System environment used across CRMC network hospitals, addressing long-standing challenges such as fragmented modules, lack of interoperability, and limited scalability.

Infinity LIS aims to:

  • Provide a single source of truth for all lab data across hospitals.
  • Support real-time interoperability with EHR, HIS, and instruments.
  • Deliver modular yet unified workflows for diverse specialties.
  • Enable AI-readiness for analytics, quality control, and predictive diagnostics.

2. Core Objectives

  1. Unify all lab operations (Core Lab, Microbilogy, Blood Bank, Pathology equivalents) under one shared platform and data model.
  2. Enable seamless integration with all analyzers and instruments via HL7, ASTM E1381/E1394 and other middleware interfaces.
  3. Implement a rules-based automation engine for reflex testing, autoverification, and delta checks.
  4. Support advanced QC management with statistical algorithms (SMA, EWMA, BMA).
  5. Modernize the user interface through Angular web dashboards, with role-based configurable layouts.
  6. Ensure HIPAA-compliant data security, auditability, and traceability for all result edits and communications.
  7. Achieve complete interoperability with CRMC’s EMR, PACS, and billing ecosystems.
  8. Lay the groundwork for AI-assisted workflows, such as result prediction, QC anomaly detection, and clinician alerts.

3. Architecture Overview

3.1 System Design

Layer Technology Description
Frontend Angular 18 Web-based, modular UI for lab users and admins. Supports dashboard, task lists, and dynamic forms.
Backend Spring Boot 4.0.2 (Java 25) Core business logic, REST APIs, Message Queue services, HL7 and ASTM Message Parsing, and Rule Engines for Test Routing, Reflex Testing, Auto Verification, Delta Checks, QC Management, and AI-ready workflows.
Database MS SQL 2019 Central unified data repository for all modules and master data.
Integration Engines Mirth HL7, ASTM (custom Java Socket Server) Handles inbound/outbound interfaces with EMR, HIS, and analyzers.
Message Queue RabbitMQ Handles message queuing for HL7 and ASTM messages.
CI/CD GitLab -> Jenkins -> Nginx -> Tomcat 11 Continuous integration/deployment pipelines, internal GitLab versioning.
Observability Spring Boot OpenTelemetry + LGTM Stack For monitoring, logs, metrics, and audit trails.

3.2 Master Data Model -- Need to Modify

Table Description
Middleware Defines integration platforms like RALS or Data Innovations.
TestCategory Categorizes tests (Chemistry, Hematology, Immunology, etc.).
TestCatalog Maintains LIS test codes, LOINC, CPT, specimen types, etc.
TestPanels / Components Defines logical groupings (e.g., LFT, CBC) and component mappings. Recursive parsing for (G) panels.
LabInstruments Stores analyzer info, IPs, ports, connection type, test mappings.
InstrumentTestMappings Connects LIS tests to instrument test codes.
ExternalSystem / Mappings Manages HIS/EMR test code interoperability.
TestRanges Defines normal/critical ranges by age, gender, or specimen type.

4. Major Development Phases

Phase 0: Foundational Architecture

Goal: Build the technical and governance foundation for LIS development.

Key Deliverables:

  • Unified DB schema for all modules.
  • Authentication, RBAC, tenant/location structure.
  • Master Data Configuration
  • API specifications for external system connectivity.
  • HIPAA-compliant security and audit trail design.

Phase I: Pre-Analytical Workflow

Goal: Covers registration, order entry, collection, and logistics.

Key Deliverables:

  • Patient Registration in LIS (with MRN, visit, payor linkage) and Merge with EMR.
  • Order Entry (CPOE) and requisition capture.
  • Test selection with ICD code mapping and diagnosis input.
  • Specimen ID generation, draw list, and collection workflow.
  • Label printing and collection tracking.
  • Courier manifest and specimen transport tracking.
  • Outreach portal for physician offices (SoftWebPlus-equivalent).

Phase II: Analytical Workflow

Goal: Handles analyzer interfacing, result capture, QC, and validation.

Key Deliverables:

  • Bi-directional instrument integration (ASTM E1381/E1394).
  • Autoverification rules (delta check, result thresholds, QC flagging).
  • QC Management (L/J Charts, moving averages).
  • Result entry and audit history view.
  • Scattergram and image integration.
  • Auto-alerts and push notifications for critical results.

Phase III: Post-Analytical Workflow

Goal: Focuses on review, reporting, and interoperability.

Key Deliverables:

  • Results dashboard with filters (new, partial, completed).
  • Electronic sign-off and multi-user review workflow.
  • Consolidated patient history reports.
  • Graphical trends and data visualization.
  • HL7 outbound reporting to EMR/HIS.
  • Public Health ELR (LOINC/SNOMED codes).
  • PDF/Excel export and document management integration.

Phase IV: Specialized Modules

Goal: Custom workflows for high-complexity labs.

Key Deliverables:

Module Key Features
Microbiology (SoftMic) Organism isolation, culture tracking, antibiogram, epidemiology reports.
Pathology (SoftPathDx) Block/slide tracking, synoptic reporting (CAP eCC).
Blood Bank (SoftBank) Crossmatching, inventory tracking, bedside barcode verification.
Donor Management (SoftDonor) Donor registration, infectious screening, inventory distribution.
Genomics (SoftGenomics) NGS pipeline integration, variant annotation, and reporting.
Outreach/RCM Courier management, billing integration, client access portals.

5. Development Roadmap (Tentative Timeline)

Phase Timeline Key Milestones
Phase 0 – System Design July - Oct 2025 DB schema, Role/Permission engine, Security setup
Phase I – Pre-Analytical Nov - Dec 2025 Patient Reg., Order Entry, Collection, Labeling
Phase II – Analytical Jan - Mar 2026 Instrument interfacing, QC, Auto-verification
Phase III – Post-Analytical Apr - Jun 2026 Reporting, Sign-off, HL7 Integration
Phase IV – Specialized Modules Jul - Oct 2026 Micro, Pathology, Blood Bank, Genomics
Phase V – Optimization & AI Add-ons Nov - Dec 2026 AI-based QC insights, predictive alerting, analytics dashboard

6. Technical Innovations & Differentiators

  • Dynamic Rules Engine: Customizable test routing, reflex logic, and verification triggers.
  • Unified Patient Record: Single longitudinal record across all lab departments.
  • Instrument Simulators: Built-in simulators for ASTM message testing and interface validation.
  • QC Intelligence: Statistical evaluation, multi-level control visualization, automated flagging.
  • RAG-ready Design: Future plan to integrate AI models for clinical insight extraction.
  • Cross-System Federation: Designed to plug into CRMC HL7 Hub, EHR, and Data Lake.

7. Risk and Mitigation Plan

Risk Description Mitigation
Incomplete LIS functional parity Some features in legacy modules (SoftMIC, SoftBank) may be overlooked. Conduct workflow demos with current users before design finalization.
Instrument message mismatches ASTM message parsing errors during early testing. Maintain simulator logs and validation matrix per instrument.
Master data inconsistency Differences between SME datasets and live data. Implement data reconciliation and audit dashboards.
Interoperability issues HL7 mapping variations per site. Build flexible mapping tables and interface adapters.

8. Governance & Collaboration

Stakeholders:

  • Krishna Reddy (Architect, Development Lead)
  • Ashwin (Lab Director, Domain SME)
  • Dawn (Operational Workflow Owner)
  • CRMC Management Team (Steering Committee)

Documentation Cadence:

  • Weekly sprint updates
  • Monthly milestone review
  • Interface test reports and validation logs
  • Master data audit logs

9. Future Roadmap (2027–2028)

  • AI-Powered Lab Advisor: Predictive alerts for abnormal QC, outlier detection, and result correction suggestions.
  • Voice Command Integration: Lab staff can query results or print reports hands-free.
  • Clinara Link: Integration with CRMC’s AI documentation assistant for lab note summarization.
  • Analytics Portal: Real-time dashboards for lab performance, TAT, and test volume trends.

10. Appendix

References:

  • SoftLab / SoftWebPlus functional analysis
  • ASTM E1381/E1394 message specifications
  • HL7 v2.5 result reporting guides
  • LOINC and SNOMED CT vocabularies
  • LIS_Features_checklist.md (v1.0)

Workflows

LIS Workflow


flowchart TB
  subgraph Pre-Analytical
    A[Order HIS/LIS] --> B[Specimen Collection at Location]
    B --> C[Accessioning @ Dept + WS]
    C --> D[Label/Tube Routing]
  end

  subgraph Analytical
    D --> E{Routing Engine}
    E -->|Instrument-backed WS| F[Workstation Queue]
    F --> G[Middleware ASTM/TCP]
    G --> H[Instrument]
    H --> I[Results ASTM -> Middleware]
    I --> J[Workstation Result Inbox]
    J --> K[Delta/Autoverify Rules @ Dept]
  end

  subgraph Post-Analytical
    K --> L[Tech/Path Review & Release @ WS]
    L --> M[Report Formatting Letterhead/Template by Location/Tenant]
    M --> N[Distribution HIS HL7 ORU, Portal, Fax, Email, HIE]
    N --> O[Billing / Send-outs / QC / Analytics]
  end

  classDef site fill:#e8f3ff,stroke:#8ab6ff;
  class B,A,D,M,N site;
Hold "Alt" / "Option" to enable pan & zoom

Full Lifecycle

sequenceDiagram
  participant HIS as HIS/EMR (per site)
  participant Mirth as HL7 Middleware
  participant LIS as Infinity LIS Core
  participant WS as Workstation (Dept)
  participant MW as HL7/ASTM Middleware
  participant INST as Instrument

  HIS->>Mirth: ORM^O01 (Order) [SiteCode]
  Mirth->>LIS: ORM^O01 (site-routed)
  LIS->>WS: Create Work Item(s)
  WS->>MW: Order to Instrument (HL7/ASTM/TCP/API)
  MW->>INST: HL7 ORU or ASTM O,R frames
  INST-->>MW: Results (HL7 ORM / ASTM R frames)
  MW-->>WS: Parsed Results + Flags
  WS->>LIS: Verification / Release
  LIS->>Mirth: ORU^R01 (Final)
  Mirth->>HIS: ORU^R01 (site-routed)
Hold "Alt" / "Option" to enable pan & zoom

Grok

graph TD
    subgraph "Central LIS Single Instance"
        LIS[Core LIS System<br>Epic Beaker / Cerner / Orchard]
        DB[(Shared Database<br>Patient Index, Users, Audit)]
        MW[Middleware<br>Instrument Manager / HL7 Engine]
        ADMIN[Central Admin<br>IT, Updates, Monitoring]
    end

    subgraph "Hospital A Large Core Lab"
        A_LOC[Location: HOSP-A]
        A_DEPT1[Hematology Dept]
        A_DEPT2[Chemistry Dept]
        A_WS1[Workstation WS-01]
        A_WS2[Workstation WS-02]
        A_INST1[Sysmex XN-1000<br>Bidirectional ASTM]
        A_INST2[Roche Cobas 8000<br>HL7 Results]
        A_REF[Ref Lab: ARUP<br>HL7 Send/Receive]
    end

    subgraph "Hospital B Medium Lab"
        B_LOC[Location: HOSP-B]
        B_DEPT1[Hematology Dept]
        B_DEPT2[Chemistry Dept]
        B_WS1[Workstation WS-10]
        B_WS2[Workstation WS-11]
        B_INST1[Beckman DxH<br>ASTM]
        B_INST2[Vitros 5600<br>HL7]
        B_REF[Ref Lab: Quest<br>Portal + HL7]
    end

    subgraph "Clinic C Point-of-Care / Send-Out"
        C_LOC[Location: CLINIC-C]
        C_DEPT[Draw Station Only]
        C_WS[Workstation WS-20<br>Phlebotomy & Send-Out]
        C_REF[Ref Lab: Quest<br>Auto-Routing]
    end

    %% Data Flows
    LIS -->|HL7 Orders| A_LOC
    LIS -->|HL7 Orders| B_LOC
    LIS -->|HL7 Orders| C_LOC

    A_LOC --> A_DEPT1 & A_DEPT2
    B_LOC --> B_DEPT1 & B_DEPT2
    C_LOC --> C_DEPT

    A_DEPT1 --> A_WS1 --> A_INST1
    A_DEPT2 --> A_WS2 --> A_INST2
    B_DEPT1 --> B_WS1 --> B_INST1
    B_DEPT2 --> B_WS2 --> B_INST2
    C_DEPT --> C_WS

    %% Instrument to LIS
    A_INST1 -->|Results| MW
    A_INST2 -->|Results| MW
    B_INST1 -->|Results| MW
    B_INST2 -->|Results| MW

    %% Ref Lab Integration
    A_WS2 -->|Esoteric Orders| A_REF
    B_WS2 -->|Esoteric Orders| B_REF
    C_WS -->|All Non-POC| C_REF

    A_REF -->|Results| MW
    B_REF -->|Results| MW
    C_REF -->|Results| MW

    MW -->|Validated Results| LIS
    LIS -->|Final Report| A_LOC & B_LOC & C_LOC

    %% Central Oversight
    ADMIN -->|Config, Rules, QC| LIS
    ADMIN -->|Dashboards, TAT| DB

    %% Styling
    classDef location fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000;
    classDef dept fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px;
    classDef ws fill:#fff3e0,stroke:#f57c00,stroke-width:1px;
    classDef inst fill:#e8f5e9,stroke:#388e3c,stroke-width:2px;
    classDef ref fill:#ffebee,stroke:#c62817,stroke-width:2px;
    classDef central fill:#f5f5f5,stroke:#424242,stroke-width:3px;

    class A_LOC,B_LOC,C_LOC location
    class A_DEPT1,A_DEPT2,B_DEPT1,B_DEPT2,C_DEPT dept
    class A_WS1,A_WS2,B_WS1,B_WS2,C_WS ws
    class A_INST1,A_INST2,B_INST1,B_INST2 inst
    class A_REF,B_REF,C_REF ref
    class LIS,DB,MW,ADMIN central
Hold "Alt" / "Option" to enable pan & zoom

Minimal

erDiagram
  CLIENT ||--o{ SITE : has
  CLIENT ||--o{ USER : employs
  USER ||--o{ USER_ROLE_BINDING : binds
  ROLE_TEMPLATE ||--o{ ROLE_PERMISSION : grants
  MODULE ||--o{ PERMISSION : defines

  SITE ||--o{ LOCATION : contains
  LOCATION ||--o{ DEPARTMENT : groups
  SITE ||--o{ WORKSTATION : hosts

  TEST_CATALOG ||--o{ TEST_SPECIMEN_MAP : accepts
  SPECIMEN ||--o{ TEST_SPECIMEN_MAP : provides

  TEST_CATALOG ||--o{ TEST_CONTAINER_MAP : needs
  CONTAINER ||--o{ TEST_CONTAINER_MAP : provides

  PANEL ||--o{ PANEL_COMPONENT : includes
  TEST_CATALOG ||--o{ PANEL_COMPONENT : is_component

  TEST_CATALOG ||--o{ REF_RANGE : ranges
  SITE ||--o{ REF_RANGE : overrides

  SITE ||--o{ ORDERING_LOCATION : sources
  SITE ||--o{ TEST_WORKSTATION_MAP : routes
  WORKSTATION ||--o{ TEST_WORKSTATION_MAP : targets
  TEST_CATALOG ||--o{ TEST_WORKSTATION_MAP : applies

  MIDDLEWARE_ENDPOINT ||--o{ INSTRUMENT_PROFILE : serves
  WORKSTATION ||--o{ WORKSTATION_INSTRUMENT_MAP : connects
  INSTRUMENT_PROFILE ||--o{ WORKSTATION_INSTRUMENT_MAP : connects

  REF_LAB_PROFILE ||--o{ WORKSTATION_REFLAB_MAP : connects
  WORKSTATION ||--o{ WORKSTATION_REFLAB_MAP : connects

  ORDER ||--o{ ORDER_ITEM : has
  ORDER_ITEM }o--|| PANEL : optional_panel
  ORDER_ITEM }o--|| TEST_CATALOG : atomic_test
  ORDER_ITEM ||--o{ RESULT : yields
  ORDER ||--|| ORDERING_LOCATION : placed_from
  ORDER_ITEM }o--|| WORKSTATION : performed_on
Hold "Alt" / "Option" to enable pan & zoom

Conceptual

graph LR
  subgraph Tenant Context
    Client[(Client)]
    Site[(Site)]
    Client -->|has| Site
  end

  subgraph Operations
    OrderingLocation[(OrderingLocation)]
    Location[(Performing Location)]
    Department[(Department)]
    Workstation[(Workstation)]
    InstrumentProfile[(InstrumentProfile)]
    Middleware[(Middleware Endpoint)]
    RefLab[(Reference Lab Profile)]
  end

  subgraph Catalog
    Test[(TestCatalog)]
    Panel[(Panel)]
    PanelComp[(PanelComponent)]
    Specimen[(Specimen)]
    Container[(Container)]
    RefRange[(ReferenceRange)]
  end

  subgraph Security
    User[(User)]
    Role[(RoleTemplate)]
    Perm[(Permission)]
  end

  subgraph Orders & Results
    Order[(Order)]
    Item[(OrderItem)]
    Result[(Result)]
    QC[(QC Control/Rule)]
    AutoV[(Autoverification Rule)]
    Routing[(Routing Rule)]
    Report[(Report Template)]
  end

  %% Hierarchy
  Site -->|contains| Location
  Site --> Department
  Site --> Workstation
  Workstation -->|connects via| Middleware
  Workstation -->|routes to| InstrumentProfile
  Workstation -->|or send-out| RefLab

  %% Catalog links
  Panel -->|includes| PanelComp
  PanelComp --> Test
  Test --> Specimen
  Test --> Container
  Test --> RefRange
  Test -->|routed to| Workstation

  %% Orders
  OrderingLocation -->|places| Order
  Order -->|has| Item
  Item -->|is for| Test
  Item -->|or| Panel
  Item -->|performed at| Workstation
  Item --> Result
  Result --> Report

  %% Rules
  Routing -->|selects| Workstation
  AutoV -->|evaluates| Result
  QC -->|governs| InstrumentProfile
  QC -->|flags| Result

  %% Security
  User -->|bound at site| Role
  Role --> Perm
  User -->|acts in| Department
  User -->|works on| Workstation
Hold "Alt" / "Option" to enable pan & zoom

Key Attributes Snapshot (Nouns → Attributes)

classDiagram
  class Client {
    +client_id
    +client_code
    +name
  }
  class Site {
    +site_id
    +client_id
    +site_code
    +timezone
    +inherit_from_client: bool
  }
  class Test {
    +client_id
    +test_code
    +name
    +method
    +unit(UCUM)
    +is_calculated: bool
    +version
    +active
  }
  class Panel {
    +panel_id
    +client_id
    +panel_code
    +version
    +bill_as_panel: bool
  }
  class ReferenceRange {
    +ref_range_id
    +test_code
    +unit
    +age_min_days/age_max_days
    +sex_at_birth
    +critical_low/high
    +effective_start/end
  }
  class Workstation {
    +workstation_id
    +site_id
    +ws_code
    +is_manual: bool
    +department_id
  }
  class InstrumentProfile {
    +instrument_profile_id
    +site_id
    +vendor
    +model
    +endpoint_id
    +status
  }
  class RoutingRule {
    +rule_id
    +site_id
    +applies_to
    +criteria_json
    +action_json
    +priority
  }
  class AutoverRule {
    +autover_rule_id
    +site_id
    +criteria_json
    +action
  }
  class Order {
    +order_id
    +site_id
    +ordering_location_id
    +priority
    +status
  }
  class OrderItem {
    +order_item_id
    +order_id
    +test_code/panel_id
    +workstation_id
    +status
  }
  class Result {
    +result_id
    +order_item_id
    +value
    +unit
    +flags
    +status
  }

  Client "1" --> "many" Site
  Site "1" --> "many" Workstation
  Test "1" --> "many" ReferenceRange
  Panel "1" --> "many" Test : via PanelComponent
  Workstation "1" --> "many" InstrumentProfile
  RoutingRule --> Workstation
  Order "1" --> "many" OrderItem
  OrderItem "1" --> "many" Result
  AutoverRule --> Result
Hold "Alt" / "Option" to enable pan & zoom

Activities & Interactions (Order → Result → Report)

sequenceDiagram
  participant EMR as EMR / OrderingLocation
  participant LIS as Infinity LIS
  participant Route as Routing Engine
  participant WS as Workstation
  participant MW as Middleware
  participant INST as Instrument
  participant QC as QC Engine
  participant AV as Autoverification
  participant RPT as Reporting

  EMR->>LIS: Place Order (tests/panel, patient, priority)
  LIS->>Route: Resolve performer (site, test_code, time, availability)
  Route-->>LIS: Workstation selected (+fallbacks)
  LIS->>WS: Queue OrderItem(s)

  WS->>MW: Send Order to Instrument (ASTM/HL7)
  MW->>INST: Order download
  INST-->>MW: Results (raw values + flags)
  MW-->>LIS: Result message

  LIS->>QC: Evaluate control status / Westgard rules
  QC-->>LIS: In-control? (yes/no, flags)

  LIS->>AV: Apply autover rules (delta, critical, ranges)
  AV-->>LIS: Action = AutoRelease / Hold / Flag

  alt AutoRelease
    LIS->>RPT: Render report (template + letterhead)
    RPT-->>LIS: PDF/HTML
    LIS-->>EMR: ORU result (HL7) + Archive
  else Hold
    LIS-->>WS: Tech review queue with reasons
  end
Hold "Alt" / "Option" to enable pan & zoom

Catalog Resolution Logic (Panel → Component Tests)

flowchart TD
  A[Order Panel] --> B{Get Panel Version}
  B --> C[Expand Components]
  C --> D{Specimen/Container\nUnion + Conflicts?}
  D -- No --> E[Assign Required Specimen/Container]
  D -- Yes --> F[Prompt rules: priority, site override]
  E --> G[Create OrderItems per Test]
  F --> G
  G --> H[Route each Test → Workstation]
  H --> I[Queue for Instrument/Ref Lab]
Hold "Alt" / "Option" to enable pan & zoom

User Role Administration