„Laufen meine Mirth-Skripte?“ — jetzt eine ehrliche Antwort
Jeder Mirth-Ersatz verspricht, dass die alten Skripte weiterlaufen. Brio-IO hat mit dem Versprechen gewartet, bis es wahr war: echtes Rhino, echtes E4X, positionale Pfade wie in Mirth (msg['PID']['PID.5']['PID.5.1']), createSegment über alle Engines. Und die Grenzen sagen wir dir auch.
„Laufen meine Mirth-Skripte?” — jetzt eine ehrliche Antwort
Es ist die erste Frage, die jeder stellt, der über einen Wechsel von Mirth Connect nachdenkt: Laufen meine Transformer weiter? Und es ist die Frage, bei der die meisten Migrations-Versprechen leise werden — weil „läuft unverändert” ein Satz ist, den die Zielgruppe am ersten Tag überprüft. Ein Mirth-Praktiker tippt seinen gewohnten Pfad, drückt Deploy und sieht in zehn Sekunden, ob das Versprechen hält.
Diesen Artikel gibt es, weil wir ihn einmal nicht geschrieben haben. Eine
frühere Fassung des Brio-IO-Serializers benannte HL7-Komponenten nach ihrem
Datentyp, nicht nach ihrer Position — msg['PID']['PID.5']['PID.5.1'] lieferte
gegen eine echte Nachricht einen leeren String. Also haben wir den Artikel
zurückgestellt, statt ein Versprechen zu drucken, das beim ersten Versuch
bricht. Mit der Serializer-Modernisierung (ADR-022) stimmt der Satz jetzt — und
hier steht, wie weit genau.
Was 1:1 trägt
Echtes Rhino, echtes E4X
Brio-IO führt js-legacy-Skripte in Mozilla Rhino aus — der Engine, für die
deine Mirth-Skripte geschrieben sind, nicht in einem Nachbau. E4X (die
XML-Erweiterung von JavaScript, die Mirth-Skripte durchzieht) kommt aus dem
rhino-xml-Modul auf dem Classpath.
msg ist dabei schon ein E4X-XML-Objekt, kein String. Das früher übliche
new XML(msg) am Skript-Anfang brauchst du nicht mehr — du greifst direkt zu:
// Rhino (js-legacy): msg ist bereits E4X — Zugriff wie in Mirth
var nachname = msg['PID']['PID.5']['PID.5.1'].toString();
Die Komponenten-Pfade — unverändert
Das ist der Teil, der lange nicht stimmte und jetzt stimmt. Brio-IO nummeriert HL7-Komponenten positional, genau wie Mirth: PID-5.1 ist der Nachname, PID-5.2 der Vorname, PID-3.1 die ID. Dein Mirth-Idiom läuft damit wörtlich:
// Läuft in Brio-IO js-legacy unverändert — dieselbe Nachricht, dieselben Pfade
var nachname = msg['PID']['PID.5']['PID.5.1'].toString(); // "Schmidt"
var patId = msg['PID']['PID.3']['PID.3.1'].toString(); // "12345"
Segment-, Feld- und Komponenten-Ebene bleiben, wie du sie kennst. Kein Suchen-und-Ersetzen, kein Umlernen der Pfade.
Mutieren und zurückgeben
Auch die Schreib-Mechanik ist Mirth-vertraut: Feld setzen, msg am Ende
zurückgeben. Die Engine serialisiert das E4X-Objekt an ihrer Grenze automatisch
zurück nach HL7 — du musst nichts von Hand serialisieren:
// Feld setzen, msg als letzter Ausdruck zurückgeben
msg['PID']['PID.5']['PID.5.1'] = 'Mueller';
msg;
Z-Segmente anlegen — das tägliche Handwerk
Ein Transformer, der ein Z-Segment erzeugt, ist Mirth-Alltag. In Brio-IO geht
das mit createSegment — über alle drei Engines:
// Rhino (js-legacy): createSegment liefert eine Referenz, die du befüllst
var zbr = createSegment('ZBR', msg);
zbr['ZBR.1'] = 'freigegeben';
msg;
Das Segment landet in korrekter Position im ausgehenden HL7. Auf der öffentlichen Demo kannst du genau das live sehen: beide Beispiel-Transformer legen ein ZBR an und befüllen es.
Was du wissen solltest — die ehrlichen Grenzen
Ein Migrations-Versprechen ist nur so viel wert wie seine Fußnoten. Hier sind sie, ohne Kleingedrucktes:
- Rhino ist bewusst deprecated. Es existiert für die Mirth-Kompatibilität, nicht als Zukunft. Bei jedem Deploy eines Channels mit Rhino-Skript warnt Brio-IO — im Log und in der API-Antwort — und der Sunset-Pfad ist fest (Entfernung mit Brio-IO 4.0, ~2029). Du hast Jahre Vorlauf, um Skript für Skript auf Groovy oder modernes JavaScript umzustellen — kein Big-Bang.
router.routeMessage()ist noch nicht verfügbar. Channel-zu-Channel- Verkettung bildest du heute über einen HTTP-Sender auf einen HTTP-Listener ab; das nativerouter-Objekt kommt später.- Mirth-spezifische Java-Aufrufe (
Packages.com.mirth.*und Verwandtes) laufen nicht — Brio-IO ist ein anderer Server, kein Mirth mit neuem Anstrich.
Wir schreiben das nicht ins Kleingedruckte, sondern in die Überschrift, weil genau das der Unterschied ist zwischen „läuft unverändert” als Verkaufssatz und als überprüfbarer Aussage.
Der beste Weg, es zu glauben: selbst ausprobieren
Auf der öffentlichen Demo laufen Channels mit echten Transformern, und der Message-Browser zeigt dir die kanonische XML jeder Nachricht — genau die Struktur, gegen die deine Pfade laufen. Tippe dein gewohntes Mirth-Idiom in einen Transformer und sieh in zehn Sekunden, ob es hält. Genau die zehn Sekunden, in denen die meisten Versprechen fallen.
Und wenn du deine echten Mirth-Channels übersetzen lassen willst — frag uns nach einem Early-Access-Zugang. Schreib uns einfach, welche Schnittstellen du integrieren willst.