Brio-IO Communication Server

Connector-Referenz

Alle Connector-Protokolle, die Brio-IO heute mitbringt — Source und Destination, mit ihren Konfigurations-Properties und den Stellen, an denen ein Secret referenziert statt eingetragen wird.

Stand: Beispiele geprüft gegen brio-server fa237ec7ad

Ein Connector ist ein eigenständiges Objekt mit einem Protokoll und einem Satz typisierter Properties. Er wird getrennt vom Channel angelegt und dort referenziert. Diese Seite listet die Protokolle, die heute im Server enthalten sind.

Überblick

BereichSource (Eingang)Destination (Ausgang)
Dateifile-readerfile-writer
SFTPsftp-readersftp-writer
HTTPhttp-listenerhttp-sender
HL7-Netzwerk (MLLP)mllp-listenermllp-sender
Datenbankjdbc-readerjdbc-writer
Messaging (JMS)jms-listenerjms-sender
KIM (TI)kim-receiverkim-sender
E-Mailsmtp-sender

Acht Eingangs- und sieben Ausgangs-Protokolle. Was nicht in dieser Liste steht, gibt es nicht — dazu unten mehr.

Gemeinsame Muster

Secrets werden referenziert, nicht eingetragen. Überall, wo ein Passwort oder ein Schlüssel nötig ist, heißt die Property …Ref (passwordRef, privateKeyRef, signingCertificateRef). Der Wert ist ein Verweis auf ein hinterlegtes Secret bzw. Zertifikat, nicht das Geheimnis selbst — die Channel-Konfiguration liegt in Git, und dort hat ein Klartext-Passwort nichts verloren.

Polling vs. Listener. file-reader, sftp-reader, jdbc-reader und kim-receiver pollen in einem Intervall (pollingInterval, in Millisekunden). http-listener, mllp-listener und jms-listener warten auf eingehende Verbindungen.

Datei

file-reader

Liest Dateien aus einem Verzeichnis.

PropertyBedeutung
directoryüberwachtes Verzeichnis
filePatternGlob-Filter, z. B. *.hl7
pollingIntervalAbfrage-Intervall in ms
recursiveauch Unterverzeichnisse (Standard: aus)
sortByReihenfolge der Poll-Charge: name, date oder size
charsetZeichensatz (Standard: UTF-8)
postProcessingwas mit einer erfolgreich verarbeiteten Datei passiert: delete, move oder keep
moveToAfterProcessZielverzeichnis bei postProcessing: move
moveToOnErrorZielverzeichnis für gescheiterte Dateien
deleteAfterProcessältere Schreibweise; postProcessing hat Vorrang

postProcessing ist die eindeutige Variante und sollte für neue Connectoren gesetzt werden. keep lässt die Datei ausdrücklich liegen — sonst sammelt der Datei-Transport still Kopien in einem Unterverzeichnis an.

file-writer

PropertyBedeutung
directoryZielverzeichnis
fileNameDateiname (Ausdrücke möglich)
fileExistVerhalten bei vorhandener Datei
charsetZeichensatz
eolZeilenende

SFTP

sftp-reader und sftp-writer haben dieselben Properties wie ihre Datei-Pendants, plus die Verbindung:

PropertyBedeutung
host, port, usernameVerbindung
passwordRefVerweis auf das Passwort-Secret
privateKeyRefVerweis auf den privaten Schlüssel (Alternative zum Passwort)
knownHostsFilePfad zur known_hosts
strictHostKeyCheckingHost-Key-Prüfung

strictHostKeyChecking auszuschalten heißt, einen Man-in-the-Middle nicht mehr bemerken zu können. In Produktion gehört ein gepflegtes knownHostsFile dazu.

HTTP

http-listener

PropertyBedeutung
portPort, auf dem gelauscht wird
bindAddressNetzwerk-Interface
basePathPfad-Präfix des Endpunkts
httpMethodRestricterlaubte HTTP-Methoden

http-sender

PropertyBedeutung
targetUrlZiel-URL
methodHTTP-Methode
timeoutMsZeitlimit
retryCountAnzahl Wiederholversuche

MLLP (HL7 über TCP)

mllp-listener

PropertyBedeutung
port, bindAddressVerbindung
backlogWarteschlange offener Verbindungen
maxConcurrentConsumersparallele Verarbeitung
receiveTimeoutMs, idleTimeoutMsZeitlimits
autoAckautomatische ACK-Antwort

mllp-sender

PropertyBedeutung
host, portZiel
connectTimeoutMs, receiveTimeoutMsZeitlimits
keepAliveVerbindung offen halten

Datenbank

jdbc-reader

PropertyBedeutung
dataSourceUrl, driverClassNameVerbindung
username, passwordRefAnmeldung
queryAbfrage, die die Nachrichten liefert
onProcessedUpdateAnweisung, die nach erfolgreicher Verarbeitung läuft (Zeilen als erledigt markieren)
pollingIntervalAbfrage-Intervall in ms
maxRowsObergrenze je Durchlauf
maxPoolSize, connectionTimeoutMsVerbindungs-Pool

jdbc-writer

PropertyBedeutung
dataSourceUrl, driverClassNameVerbindung
username, passwordRefAnmeldung
statementSchreib-Anweisung
batchSizeStapelgröße
maxPoolSize, connectionTimeoutMsVerbindungs-Pool

JMS

jms-listener

PropertyBedeutung
connectionFactoryUrlBroker-Verbindung
destinationName, destinationTypeQueue oder Topic
username, passwordRefAnmeldung
concurrentConsumers, maxConcurrentConsumersParallelität
acknowledgementModeBestätigungsmodus
durableSubscriptionName, clientIddauerhafte Topic-Abonnements
messageSelectorSelektor-Ausdruck

jms-sender

PropertyBedeutung
connectionFactoryUrlBroker-Verbindung
destinationName, destinationTypeZiel
username, passwordRefAnmeldung
deliveryPersistentpersistente Zustellung
timeToLive, priorityLebensdauer und Priorität

KIM (Kommunikation im Medizinwesen)

kim-receiver

PropertyBedeutung
kimFachdienstUrl, kimPort, kimProtocolFachdienst-Verbindung
kimUsername, kimPasswordRefAnmeldung
pollingIntervalAbruf-Intervall
deleteAfterFetchNachricht nach Abruf löschen
decryptionCertificateRefVerweis auf das Entschlüsselungs-Zertifikat
senderCertificateRefVerweis auf das Absender-Zertifikat (Signaturprüfung)
decryptionProviderKrypto-Provider

kim-sender

PropertyBedeutung
kimFachdienstUrl, kimPort, kimUseSslFachdienst-Verbindung
kimUsername, kimPasswordRefAnmeldung
senderAddress, recipientAddressKIM-Adressen
subject, payloadContentTypeBetreff und Inhaltstyp
signingCertificateRef, recipientCertificateRefSignatur und Verschlüsselung
vzdUrl, vzdBaseDn, vzdMailAttribute, vzdCertificateAttributeVerzeichnisdienst-Abfrage
signatureProviderKrypto-Provider

E-Mail

smtp-sender

PropertyBedeutung
host, portMailserver
username, passwordRefAnmeldung
useTLS, useSSLTransportverschlüsselung
from, to, cc, bccAdressen
subject, contentTypeBetreff und Inhaltstyp
attachmentFileNameDateiname des Anhangs

Es gibt bewusst keinen SMTP-Reader: Ein Postfach als Nachrichtenquelle ist in der klinischen Integration selten die richtige Antwort — für den TI-Anwendungsfall gibt es kim-receiver.

Was es (noch) nicht gibt

Diese Liste ist der ehrliche Teil dieser Seite:

  • Kein TCP-Connector jenseits von MLLP. Für rohes TCP gibt es heute nichts.
  • Kein Script-Connector (ein Connector, dessen Transport ein Skript ist).
  • Kein Channel-Connector — also kein direkter Channel-zu-Channel-Transport. Wer heute von Channel zu Channel routen will, verbindet einen http-sender mit einem http-listener. Aus demselben Grund gibt es router.routeMessage() im Skript nicht.
  • Kein DICOM. Der Mirth-Importer erkennt einen „DICOM Listener” als Source-Transport, kann ihn aber nicht abbilden und meldet ihn als nicht unterstützt.

Für die Module tcp, script und channel existieren im Server bereits Platzhalter — sie enthalten aber noch keine Implementierung. Sie tauchen deshalb weder in der UI noch in einer gültigen Konfiguration auf.

Diese Seite gibt es bisher auf Deutsch und Englisch. Die spanische Fassung folgt.