All projects

Development beta · test data

Spona

Data mapping you can trace.

A Windows development beta for visually mapping complex HL7 and JSON flows: repeated groups, separate rules for each direction and an optional LLM step with selected input.

WindowsHL7 ↔ JSONVisual mapping
Discuss an application

An interactive example illustrating data mapping in Spona.

SponaHL7 ↔ JSON

Complex formats · synthetic example

1patient2orders4results

Repeated segments become nested arrays. Each result retains its order and source.

Explore the data flow

A complex message. Clear rules.

Choose a transformation direction, trace connected fields or see how an invalid LLM output stops mapping.

SponaInteractive demonstration · synthetic data

Repeated segments into a nested structure.

  1. HL7 2.5.1
  2. Versioned profile
  3. LLMnot needed
  4. Local validation
  5. Nested JSON
Demo profile ORU-JSON · rev. 21 patient · 2 orders · 4 results

Source HL7 2.5.1

Destination Nested JSON

R03Transformation trace

OBR[1] / OBX[1..3]patients[0].orders[0].results[0..2]

The each(OBR) / each(OBX) rule keeps all three results within the first order. Numeric values remain numbers.

Inspect the complete input and output

HL7 2.5.1

MSH|^~\&|TEST-LAB|TEST-SITE|TEST-APP|TEST-SITE|20261024104500+0200||ORU^R01|TEST-M001|P|2.5.1
PID|1||TEST-P001
ZSP|TEST-JIL|TEST-B03
OBR|1||TEST-O001|TEST-PANEL-A|||20261024103000+0200
OBX|1|NM|TEST-A||1.20|TEST-UNIT|||||F
OBX|2|NM|TEST-B||2.50|TEST-UNIT|||||F
OBX|3|NM|TEST-C||0|TEST-UNIT|||||F
OBR|2||TEST-O002|TEST-PANEL-B|||20261024104000+0200
OBX|1|NM|TEST-D||3.40|TEST-UNIT|||||F

Nested JSON

{
  "message": {
    "type": "ORU^R01",
    "version": "2.5.1",
    "controlId": "TEST-M001"
  },
  "patients": [
    {
      "id": "TEST-P001",
      "location": {
        "ward": "TEST-JIL",
        "bed": "TEST-B03"
      },
      "orders": [
        {
          "id": "TEST-O001",
          "observedAt": "20261024103000+0200",
          "results": [
            {
              "code": "TEST-A",
              "value": 1.2,
              "unit": "TEST-UNIT"
            },
            {
              "code": "TEST-B",
              "value": 2.5,
              "unit": "TEST-UNIT"
            },
            {
              "code": "TEST-C",
              "value": 0,
              "unit": "TEST-UNIT"
            }
          ]
        },
        {
          "id": "TEST-O002",
          "observedAt": "20261024104000+0200",
          "results": [
            {
              "code": "TEST-D",
              "value": 3.4,
              "unit": "TEST-UNIT"
            }
          ]
        }
      ]
    }
  ]
}

The examples explain development-beta capabilities. This is not a running Spona editor or a full HL7 conformance check.

What the development beta includes

Mapping, validation and control of AI steps.

HL7 and JSON in both directions

HL7→JSON, JSON→HL7 and same-format transformations use separate rules. Nested loops retain patient and order scope, while configuration records exact profile revisions and digests.

  • A visual graph of processing steps
  • Versioned mapping profiles
From the result back to the source

The source and output views help verify which field produced a value. Output validation and provenance highlighting support review of a specific profile and test message.

  • Source-content highlighting
  • Result and validation-message review
AI only in the selected step

Each case allows one optional model call. It receives only selected values, and text or structured JSON output is validated locally before mapping into allowed fields. Identities and routing remain controlled by rules.

  • Selected data passed to the model
  • Validation of the expected output shape

Example test flow

A laboratory message into a structured record.

Using a synthetic HL7 message, fields are selected for sample identifiers, observations, units and time. A profile transforms them into agreed JSON, with the origin of each value visible in the review.

Current stage

Spona is a functional development beta for local testing, not a deployed hospital integration. Broader FHIR support in the main editor and full HL7 conformance checking are part of further development.

How we approach integrations

Our own development

Related projects.

Available online

Zdravko.ai

An AI platform for patients and physicians: conversation, search and specialist sources.

Active development

Sonima

Voice and text AI conversations, with personal instructions and user-controlled memory.

Concept development

DTS Assistant

Planned coding suggestions with source highlights and professional review.

Let’s connect

Working with HL7 messages or JSON records?

Describe the input format, desired output and rules the transformation needs to follow.

Let’s talk