Vashlabs: from the dental report to Italy’s Electronic Health Record.

Generation, signature and delivery of CDA2 reports to Italy’s Electronic Health Record, plus private e-prescriptions, for software used by dental practices.

The software produces validated, signed CDA2 reports and delivers them to the Electronic Health Record through two channels: the national middleware and Sicily Region’s INI.

Client
Vashlabs
Industry
Healthcare software for dental practices
Year
2025–2026
Flow diagram: from the practice software to the CDA2 document, validation, signed PDF, delivery through the REST middleware or the INI Sicily SOAP services, outcome returned to the software
Simplified report flow to the Electronic Health Record (labels in Italian).

Context

Vashlabs develops software for dental practices in Sicily. The product had to connect to Italy’s Electronic Health Record (FSE) and handle private e-prescriptions: two obligations with national and regional specifications, little room for interpretation and many systems involved.

I worked on the product’s Java backend between March 2025 and August 2026, coordinating with the software company’s team on their existing codebase. My role was development only: hosting and operations are handled by Vashlabs.

Problem

A report for the FSE is not a plain XML file. It must follow the HL7 CDA2 standard with the outpatient specialist report profile, pass XSD and Schematron checks, be embedded in a PDF and be digitally signed before delivery.

Delivery takes two different routes: a national REST middleware and the SOAP services of the National Interoperability Infrastructure (INI) acting on behalf of Sicily Region, with authentication through the CNS health card. Each system replies with its own identifiers, codes and states, which the software has to understand.

Solution

I built the module that takes a report from the software all the way to the delivery outcome. Each step is exposed as a separate operation, so it can be run and verified on its own during support.

  • CDA2 generator for the outpatient specialist report (RSA 1.1): data mapping, semantic checks, document model and XML serialisation, with document versioning.
  • Local validation with XSD and Schematron (ART-DECOR, XSLT/SVRL), keeping errors and warnings apart.
  • CDA embedding into the PDF and PAdES signature with a smart card (PKCS#11, Windows) or a remote signing service.
  • REST middleware channel: server validation, publication, transaction status and deletion, with HMAC authentication.
  • INI Sicily SOAP channel: metadata submission, upload outcome, search and deletion, with a CNS session and a proxy gateway.
  • A single response model for the software: success, or an error with category, code, details and whether a retry makes sense.
  • Private e-prescriptions, built on both backend and frontend: prescription submission, lookup and cancellation, two-factor authentication, drug and diagnosis search, PDF reminders and a React interface launched from the software.

Result

The software can produce, sign and deliver compliant reports without the practice dealing with formats, signatures and system-to-system communication. Errors reach the software with a clear meaning instead of a raw provider response.

The APIs are documented with OpenAPI and every step of the flow can be isolated, which helps diagnose a failed delivery without starting over.

Technical details

Java 8 backend with Spring Boot and MySQL. SOAP clients generated from WSDL with JAX-WS, EU DSS for PAdES signatures, PDFBox for the PDF, Saxon for Schematron transformations. E-prescription frontend in React, served by the same backend.

  • Java
  • Spring Boot
  • HL7 CDA2
  • Schematron
  • PAdES / EU DSS
  • SOAP / JAX-WS
  • REST
  • MySQL
  • React

Do you need to bring a complex integration into your product?

I can support your team with analysis and development.