Old-school Edifact bij huisarts-ICT-systeem Medicom in de fout

old-schoolDe huisartsen die gebruik maken van het huisartsinformatiesysteem(HIS) Medicom kregen op 18 juni 2024 een dringend bericht van hun leverancier PharmaPartners. Uitslagen van (o.a. laboratorium)onderzoeken en berichten van andere huisartsen kwamen niet goed digitaal over in het ontvangende Medicom-systeem. Het ging om berichten die gebruik maken van de zogenaamde Edifact-standaard. Onbedoeld kwamen berichten dan niet binnen en als ik het goed begrijp ook terecht bij een onjuiste geadresseerde. Het blijkt te liggen aan een softwarematige fout die bij het opmaken van berichten problemen veroorzaakt bij het uitlezen van een dergelijk bericht. De Edifact-standaard is een old-school oplossing voor het transporteren van elektronische berichten tussen ICT-systemen. Edifact is een internationale standaard voor elektronisch gegevensuitwisseling (electronic data interchange, EDI). Het is opgezet door de Verenigde Naties en is een afkorting van (United Nations) Elec­tronic Data Interchange for Administration, Commerce and Transport. Men publiceerde het voor het eerst in maart 1987.

Wat meldt PharmaPartners?

Het ICT-bedrijf PharmaPartners meldt op 18 juni 2024 onder kop “Mogelijk missende berichten:

“Gedurende de periode van 26 januari 2024 tot en met 17 juni 2024, zijn EDIFACT-berichten van derde partijen (bijvoorbeeld laboratoria en andere huisartsinformatiesystemen), onbedoeld niet juist bij de geadresseerde afgeleverd. Derden kunnen berichten aan Medicom sturen via EDIFACT-verkeer. Als het hele bericht op één regel werd verstuurd zonder een “harde enter”, werd het eerstvolgende bericht niet goed verwerkt. Dit onjuist verwerkte bericht werd vervolgens niet afgeleverd in de ‘postverwerking”.

Syntax-error

Wat hier staat, betekent het probleem veroorzaakt wordt door manier waarop het verzendende systeem tekst en stuursignalen in een Edifact-bericht zet. Dat heet de ”syntax”. Daarbij is ook van belang dat het ontvangende systeem, in dit geval Medicom, uit de voeten kan met de vorm waarin men het bericht goot. En daardoor een bericht dat een verkeerde opbouw heeft weigert en terug stuurt naar de verzender. In dit geval ging het om het ontbreken van de “harde enter” in de syntax van het bericht. Voor een “harde enter” bestaat een zogeheten stuurcode die je bij de opmaak van een Edifact-bericht kan invoeren. De codes die men voor een Edifact-bericht gebruikt komen uit de ASCII-code-tabel. Daarin staan een groot aantal zichtbare tekens.

ASCII-tabel

De standaard ASCII-tabel bestaat uit de 94 zichtbare tekens (hoofdletters en kleine letters, cijfers, leestekens en enkele andere symbolen), de spatie, en 33 stuurcodes. De stuurcodes representeren geen zichtbare tekens, maar zijn opdrachten aan uitvoerapparaten of geven informatie over de gegevens die verstuurd worden. Zo bestaat er ook een stuurcode voor een “harde return”. Dat is het teken dat er voor zorgt dat een regel afgebroken wordt en een nieuwe alinea met één regel witruimte ertussen verschijnt. Of voor “Line feed’. Dat zorgt ervoor dat na afbreken van een regel op de volgende regel het bericht verder gaat. Het ontbreken van een harde return kan dus zoals we hierboven zagen leiden tot het niet goed overkomen van een bericht dan wel in het ontvangende systeem leiden tot inadequate actie.

Waar eerder gezien?

Een soortgelijk probleem beschreef ik op deze website op 10 november 2020. Toen ging het in Noord-Holland in Noord-Kennemerland mis. Edifact-berichten kwamen toen verminkt over door te lange regels in de berichten. Als er meer dan 70 tekens op een berichtregel staan dan gaat het één en zeventigste teken gewoon door op de volgende regel. Omdat de regel niet met een code voor een regeleinde afgesloten was begreep het ontvangende systeem niets van die doorlopende tekens op de volgende regel.

Moraal van het verhaal

Dat je goed op moet letten bij Edifact-berichten op de syntax, dus welke opdrachten, tekens en stuurcodes je gebruikt is van groot belang. Daarbij is het niet zichtbaar zijn van die stuurcodes in een print van de Edifact-berichtopbouw ook een rol. Toen ik tussen 2000 en 2007 meehielp om het lokale berichtenverkeer tussen ziekenhuislaboratorium en huisartsenvorm te geven liepen we meerdere keren tegen dat probleem aan.

Vervanging  

Het Edifact-bericht is echt old-school. Het is wat je tegenwoordig noemt een legacy-oplossing voor medisch berichtenverkeer. XML wordt steeds meer gebruikt als alternatief voor Edifact. Hoewel de XML-bestanden groter zijn, zijn ze door hun structuur duidelijker om te lezen. Edifact is wijd verspreid en wordt dus veel ingezet, waardoor de vervanging van Edifact door XML niet of pas op de lange duur plaatsvindt. Ook in de zorg gaat die vervanging tamelijk langzaam. Vooralsnog maakt de berichtgeving van ziekenhuizen en laboratoria in veel gevallen nog gebruik van de Edifact-standaard.

Dat schreef ik in november 2020 maar geldt nu nog steeds.

W.J. Jongejan, 20 juni 2024

Afbeelding van Gerd Altmann via Pixabay