-
Hintergrund
der Erfindung
-
Die vorliegende Offenbarung betrifft
im allgemeinen ein Verfahren für
die Untergliederung in syntaktische Bestandteile, nachstehend "Parsing" genannt, von Daten,
und insbesondere ein Verfahren zum Parsing von binären Daten.
-
Krankenhäuser verwenden üblicherweise Computersysteme
für die
Verwaltung der verschiedenen Abteilungen innerhalb des Krankenhauses.
Daten über
jeden Patienten werden von einer Vielzahl von Computersystemen gesammelt.
Beispielsweise kann ein Patient für die Überwachung von Vitalfunktionen
aufgenommen werden. Information über
den Patienten (z.B. demographische und versicherungstechnische)
könnten
von dem Krankenhausinformationssystem (HIS – Hospital Information System)
erhalten und in einem Patientendatensatz gespeichert werden. Diese
Information könnte
dann an ein spezielles Abteilungsinformationssystem (DIS - Department
Information System) weitergeleitet werden. Typischerweise ist das
DIS ein Produkt einer Firma, während
das HIS das Produkt einer anderen Firma ist. Demzufolge unterscheiden
sich die Datenbänke zwischen
diesen beiden. Ferner werden sie unterschiedliche Auflösungsebenen
in den Daten erfassen/speichern und senden. Sobald die Patienteninformation
von dem DIS aufgenommen ist, kann der Patient für eine parametrische Untersuchung
(ein Parameter einer parametischen Untersuchung ist eine Gruppierung
von Vitalfunktionen) eingeplant werden. Anschließend wird die parametrische
Untersuchung von einem Arzt durchgeführt. Bilder und Meßwerte werden
aufgenommen und an den DIS-Server gesendet. Der lesende Arzt (z.B.
ein medizinischer Spezialist) sitzt in einer Überwachungsstation und zieht die
parametrische Untersuchung des Patienten. Der medizinische Spezialist
beginnt dann mit der Überprüfung der
Bilder und Meßwerte
und erzeugt einen vollständigen
medizinischen Bericht über
die Untersuchung. Der medizinische Bericht kann dann als ein strukturiertes
Berichts-(SR)-Dokument codiert werden, das klinische Datencodes
enthält,
welche die Inhalte des Berichtes beschreiben. Wenn der medizinische
Spezialist den medizinischen Bericht abschließt, wird der Bericht an den
DIS-Server gesendet, wo er gespeichert und dem Patienten über Patienten-Kennungsdaten
zugeordnet wird. Der abgeschlossene medizinische Bericht mit klinischen
Datencodes ist ein Beispiel einer Art eines Berichtes, welcher über ein
Netzwerk an ein Datenlagerungszentrum als ein binärer Datenstrom
gesendet werden könnte.
-
Üblicherweise
enthalten diese binären
Datenstrukturen Datenwerte die definieren, wie binäre Unterstrukturen
zu interpretieren sind, die in dem Datenstrom folgen. Diese binären Unterstrukturen
können
wiederum zusätzliche
Typfelder enthalten. Wenn sich der Prozeß unter Ausbildung eines hierarchischen
Satzes von Strukturen fortsetzt, kann sich eine große und komplexe
Datenstruktur entwickeln, welche zu einer langsamen Datenübertragung über Kommunikationsleitungen
mit niedriger Bandbreite führt.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
In einer Ausführungsform umfaßt ein Verfahren
zum Parsing binärer
Daten das Empfangen binärer
Daten und einer Parse-Anforderung, wobei die Parse-Anforderung entweder
ein nicht-differenziertes Parsing-Verfahren oder ein differenziertes
Parsing-Verfahren verlangt, das Aufrufen eines Parse-Baumes und
das Empfangen einer Parse-Definition, zum Parsing der binären Daten,
das Parsing der binären
Daten, um einen Wert gemäß der Parse-Definition
zu definieren, das Aufrufen eines Datenaufbauprogramms oder sogenannten
Daten-Builders zum Verwalten des durch Parsing gewonnenen Wertes,
Einfügen
des Wertes in einen Datenbaum, und das Zurückgeben eines Objektes an den
Parse-Anforderer.
-
In einer weiteren Ausführungsform
umfaßt ein
Verfahren zum Parsing medizinischer binärer Daten für die Übertragung über eine Kommunikationsleitung
das Empfangen binärer
Daten und einer Parse-Anforderung, wobei die Parse-Anforderung entweder
ein nicht-differenziertes Parsing-Verfahren oder ein differenziertes
Parsing-Verfahren
verlangt, das Speichern eines letzten bekannten Datenbaums in einem
Speicher, das Aufrufen eines Parse-Baumes und Empfangen einer Parse-Definition
zum Parsing der binären
Daten, das Parsing der binären
Daten zum Definieren eines Wertes gemäß der Parse-Definition, das
Aufrufen eines Daten-Builders zum Verwalten des durch Parsing gewonnenen
Wertes, das Einfügen
des Wertes in einen aktualisierten Datenbaum, das Zurückholen
des letzten bekannten Datenbaums aus dem Speicher, wenn ein differenziertes
Parsing-Verfahren verlangt war, das Vergleichen des aktualisierten
Datenbaumes mit dem letzten bekannten Datenbaum, wenn ein differenziertes Parsing-Verfahren
verlangt war, das Erzeugen eines differenzierten Baums, welcher
die Veränderungen von
dem letzten bekannten Datenbaum zu dem aktualisierten Datenbaum
enthält,
wenn ein differenziertes Parsing-Verfahren verlangt war, und das
Zurückgeben
entweder des aktualisierten Datenbaumes oder des differenzierten
Baumes an den Parse-Anforderer.
-
In einer weiteren Ausführungsform
umfaßt ein
System zum Parsing von binären
Daten ein Krankenhauscomputersystem mit Software zum Implementieren
eines Verfahrens zum Parsing medizinischer binärer Daten für die Übertragung über eine Kommunikationsleitung.
Das Krankenhauscomputersystem steht mit einem Netzwerk in Verbindung,
und die Software enthält
Instruktionen für
das Empfangen binärer
Daten und einer Parse-Anforderung, die Parse-Anforderung verlangt
entweder ein nicht-differenziertes Parsing-Verfahren oder ein differenziertes Parsing-Verfahren,
speichert einen letzten bekannten Datenbaum in einem Speicher, ruft
einen Parse-Baum
auf und empfängt
eine Parse-Definition zum Parsing der binären Daten, führt ein
Parsing der binären
Daten durch, um einen Wert gemäß der Parse-Definition
zu definieren, und ruft einen Daten-Builder zum Verwalten des durch
das Parsing erhaltenen Wertes auf, fügt den Wert in einen aktualisierten
Datenbaum ein, holt den letzten bekannten Datenbaum aus dem Speicher
zurück,
wenn ein differenziertes Parsing-Verfahren verlangt war, vergleicht
den aktualisierten Datenbaum mit dem letzten bekannten Datenbaum,
wenn ein differenziertes Parsing-Verfahren verlangt war, erzeugt
einen differenzierten Baum, der die Änderungen von dem letzten bekannten
Datenbaum zu dem aktualisierten Datenbaum enthält, wenn ein differenziertes
Parsing-Verfahren verlangt war, und gibt entweder den aktualisierten
Datenbaum oder den differenzierten Baum an den Parse-Anforderer
zurück.
-
In einer weiteren Ausführungsform
umfaßt ein
Verfahren zum Parsing binärer
Daten die Initialisierung eines Wert-Parsers, durch Lesen einer
Parse-Definitionsdatei und Erzeugen eines die Parse-Definition repräsentierenden
Parse-Baums, welcher, das Annehmen einer binären Dateneingabe mit entweder
einem primitiven Datenelement oder einem nicht-primitiven Datenelement,
das Aufrufen eines Daten-Builders
als Reaktion auf das primitive Datenelement und das Einfügen des
primitiven Datenelementes in einen Datenbaum bei einem primitiven Parse-Knoten,
das Aufrufen eines Daten-Builders als Reaktion auf das nicht-primitive
Datenelement und das Einfügen
des nicht-primitiven Datenelementes in den Datenbaum bei einem nicht-primitiven
Parse-Knoten, und das Aufbauen und Zurückgeben entweder einer nicht-differenzierten
Datenbaums oder eines differenzierten Baums.
-
In einer weiteren Ausführungsform
umfaßt ein
Computerprogrammprodukt zum Parsing binärer Daten ein von einer Verarbeitungsschaltung
lesbares Speichermedium zum Speichern von Instruktionen für die Ausführung durch
die Verarbeitungsschaltung um binäre Daten und eine Parse-Anforderung
zu empfangen, wobei die Parse-Anforderung entweder ein nicht-differenziertes
Parsing-Verfahren oder ein differenziertes Parsing-Verfahren verlangt,
zum Speichern eines letzten bekannten Datenbaums in einem Speicher,
Aufrufen eines Parse-Baumes und Empfangen einer Parse-Definition
zum Parsing der empfangenen binären
Daten, zum Parsing der binären Daten
zum Definieren eines Wertes gemäß der Parse-Definition,
Aufrufen eines Daten-Builders zum Verwalten des durch Parsing gewonnenen
Wertes, Einfügen
des Wertes in einen aktualisierten Datenbaum, Zurückholen
des letzten bekannten Datenbaums aus dem Speicher, wenn ein differenziertes Parsing-Verfahren
verlangt war, Vergleichen des aktualisierten Datenbaumes mit dem
letzten bekannten Datenbaum, wenn ein differenziertes Parsing-Verfahren
verlangt war, Erzeugen eines differenzierten Baums, welcher die
Veränderungen
von dem letzten bekannten Datenbaum zu dem aktualisierten Datenbaum
enthält,
wenn ein differenziertes Parsing-Verfahren
verlangt war, und zum Zurückgeben
entweder des aktualisierten Datenbaumes oder des differenzierten
Baumes an den Parse-Anforderer.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Bezugnehmend auf die exemplarischen Zeichnungen,
in welchen gleiche Elemente in gleicher Weise in den verschiedenen
Figuren nummeriert sind, ist:
-
1 ein
exemplarisches System zum Parsing medizinischer binärer Daten;
-
2 ein
exemplarisches Prozeßflußdiagramm
zum Parsing medizinischer binärer
Daten auf dem System von 1;
-
3 eine
exemplarische Prozeß-Blockdarstellung
zum Parsing medizinischer binärer
Daten in dem System von 1;
-
4 eine
exemplarische Prozeßdarstellung
für das
Aufbauen eines Parse-Baums
gemäß einer
Ausführungsform
der Erfindung;
-
5 eine
exemplarische Blockdarstellung eines Initialisierungsprozesses gemäß einer
Ausführungsform
der Erfindung;
-
6 eine
exemplarische Blockdarstellung eines Ausführungs- bzw. sogenannten Runtime-Prozesses
gemäß einer
Ausführungsform
der Erfindung;
-
7 eine
exemplarische Blockdarstellung zum Parsing eines Parse-Baumknotens gemäß einer Ausführungsform
der Erfindung;
-
8 eine
exemplarische Veranschaulichung einer binären Folge zur Verwendung in
einer Ausführungsform
der Erfindung;
-
9 eine
exemplarische XML-Parse-Definitionsdatei zur Verwendung in einer
Ausführungsform
der Erfindung; und
-
10 eine
exemplarische aufgelöste XML-Datei
zur Verwendung in einer Ausführungsform
der Erfindung.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Eine Ausführungsform der Erfindung stellt eine
Infrastruktur und einen Prozeß zum
Parsing medizinischer binärer
Datenstrukturen bereit, welche zur Übertragung von einem Patienten
zugeordneten Rohdaten oder zur Aktualisierung medizinischer Geräteschnittstellen
und Driver über
ein Computernetzwerk verwendet werden. 1 ist ein exemplarisches System zum Parsing
medizinischer binärer Daten.
Bei verschiedenen Krankenhäusern
lokalisierte Krankenhauscomputersysteme 110 sind mit einem
Netzwerk 120 verbunden. Die Krankenhauscomputersysteme 110 senden
medizinische Daten an ein Host-System 130, das eine Datenaufbewahrungseinrichtung
enthält,
die auf einer Host-Datenaufbewahrungseinrichtung 132 und
einem Host-Computer 134 lokalisiert ist. Die Krankenhauscomputersysteme 110 enthalten
typischerweise Anwendungssoftware, um ein codiertes medizinisches Berichtswesen
und eine Netzwerkanbindung zusammen mit einem oder mehreren Krankenhausspeichervorrichtungen 112 zum
Speichern der codierten medizinischen Daten durchzuführen. Zusätzlich enthalten
die Krankenhauscomputersysteme 110 Anwendungssoftware zum
Parsing der als binäre
Datenstrukturen angeordneten medizinischen Daten, die in ein geeignetes
Format für
eine leichte Übertragung über Kommunikati onsleitungen,
und um diese ohne Einbeziehung einer in dem Datenstrom eingebetteten
Protokollinformation auszuführen,
um dadurch eine komprimierte Kommunikation über existierende Kommunikationsleitungen,
welche eine geringe Bandbreite besitzen können, zu ermöglichen, ohne
Leitungsaufrüstungen
zu erfordern. Die durch Parsing erhaltenen Datenobjekte, einschließlich Parse-Bäumen und
Datenbäumen
werden auf der Host-Speichervorrichtung 132 für einen
Zugriff über mehrere
Krankenhauscomputersysteme 110 gespeichert.
-
Im allgemeinen ist ein Parse-Baum
ein Informationsbaum, welcher die Struktur der eingelesenen binären Daten
repräsentiert,
und eine Hierarchie von Parse-Knoten (Zweigen und Blättern des
Baums) enthält.
Der Parse-Baum wird durch einen Wert-Parser gespeichert und wiederholt während der
Ablaufzeit aufgerufen, sobald binäre Daten empfangen werden.
Ein Datenbaum ist ein Informationsbaum, welcher die durch Parsing
erhaltenen Datenwerte der empfangenen binären Daten in einer hierarchischen Form
repräsentiert,
welche für
die Verarbeitung durch ein Programm geeignet ist. Ein Daten-Builder ist
eine Softwareklasse, welche den Datenbaum aufbaut und das Format
definiert, das der Datenbaum aufweisen wird. Die nachstehend beschriebene 3 veranschaulicht ein exemplarisches
Verfahren zum Parsing medizinischer binärer Daten.
-
Das System 100 von 1 enthält eines oder mehrere Benutzersysteme 140, über welche
ein Endbenutzer oder Teilnehmer eine Anforderung an ein Anwendungsprogramm
auf dem Host-Computer 134 für einen Zugriff auf spezielle
Information, die in der an der Host-Speichervorrichtung 132 lokalisierten
Datenaufbewahrungseinrichtung gespeichert ist, durchführen kann.
In einer exemplarischen Ausführungsform
führt der
Host-Computer 134 Programme aus, welche einen Zugriff auf
Daten bereitstellen, die in der bei der Speichervorrichtung 132 lokalisierten Datenaufbewahrungseinrichtung
enthalten sind. Die Benutzersysteme 140 können direkt
mit dem Host-Computer 134 verbunden sein oder könnten mit dem
Host-Computer 134 über
das Netzwerk 120 verbunden sein. Jedes Benutzersystem 140 kann
unter Verwendung eines Allzweck-Computers, welcher ein Computerprogramm
für die
Ausführung
der hierin nachstehend beschriebenen Prozesse ausführt, implementiert
sein. Die Benutzersysteme 140 können Personal-Computer oder
am Host angeschlossene Terminals sein. Wenn die Benutzersysteme 140 Personal-Computer
sind, kann die hierin nachstehend beschriebene Verarbeitung gemeinsam
von einem Benutzersystem 140 und dem Host-Computer 134 genutzt
werden, indem ein kleines spezielles Programm oder sogenanntes Applet
an das Benutzersystem 140 geliefert wird.
-
Das Netzwerk 120 kann jeder
Typ eines bekannten Netzwerkes, einschließlich eines Lokalbereichsnetzwerkes
(LAN), eines Weitbereichsnetzwerkes (WAN), eines Intranets, oder
eines globalen Netzwerkes (z.B. Internet) sein. Ein Benutzersystem 140 kann
mit dem Host-Computer 134 über mehrere Netzwerke (z.B.
Intranet und Internet) so verbunden sein, daß nicht alle Benutzersysteme 140 mit
dem Host-Computer 134 über dasselbe
Netzwerk verbunden sein müssen.
Eines oder mehrere von den Benutzersystemen 140 und der
Host-Computer 134 können
mit dem Netzwerk 120 in einer drahtlosen Weise verbunden
sein, und das Netzwerk 120 kann ein drahtloses Netzwerk
sein. In einer exemplarischen Ausführungsform ist das Netzwerk 120 das
Internet und jedes Benutzersystem 140 führt eine Benutzerschnittstellenanwendung
aus, um eine direkte Verbindung zu dem Host-Computer 134 herzustellen. In
einer weiteren Ausführungsform
kann ein Benutzersystem 140 einen Web-Browser ausführen, um den Host-Computer 134 über das
Netzwerk 120 zu kontaktieren. Alternativ kann ein Benutzersystem 104 unter
Verwendung einer Vorrichtung implementiert werden, welche hauptsächlich für den Zugriff
auf das Netzwerk 120 programmiert ist.
-
Der Host-Computer 134 kann
unter Verwendung eines Servers implementiert sein, welcher gemäß einem
Computerprogramm arbeitet, das in einem dem Server zugänglichen
Speichermedium gespeichert ist. Der Host-Computer 134 kann
als ein Netzwerkserver (oft auch als Web-Server bezeichnet) arbeiten,
um mit den Benutzersystemen 140 zu kommunizieren. Der Host-Computer 134 wickelt
das Senden und Empfangen von Information zu und von den Benutzersystemen 140 und
den Krankenhauscomputersystemen 110 ab und kann zugewiesene Aufgaben
durchführen.
Der Host-Computer 134 kann auch eine Firewall zur Verhinderung
eines nicht autorisierten Zugriffs auf den Host-Computer 134 enthalten
und sämtliche
Einschränkungen
eines autorisierten Zugriffs erzwingen. Beispielsweise kann ein
Systemverwalter Zugriff auf das gesamte System und die Autorisierung
haben, Teile des Systems zu modifizieren, und ein Teilnehmer kann
lediglich Zugriff haben, einen Untersatz der Datenaufbewahrungseinrichtungsdatensätzen für spezielle
Produkte zu betrachten. In einer exemplarischen Ausführungsform
hat der Systemverwalter die Fä higkeit,
neue Benutzer hinzuzufügen,
Benutzer zu löschen,
und Benutzerprivilegien zu editieren. Die Firewall kann mittels
herkömmlicher
Hardware und/oder Software wie im Fachgebiet bekannt implementiert
sein.
-
Der Host-Computer 134 arbeitet
auch als ein Anwendungs-Server. Der Host-Computer 134 führt eines
oder mehrere Anwendungsprogramme aus, um einen Zugang zu der auf
der Host-Speichervorrichtung 132 lokalisierten Datenaufbewahrungseinrichtung
bereitzustellen, sowie Anwendungsprogramme, um ein Parsing medizinischer
binärer
Daten durchzuführen,
und um Parse-Bäume
und Datenbäume
für eine
effiziente Übertragung
der medizinischen Information aufzubauen. Die Verarbeitung kann
gemeinsam von dem Benutzersystem 140 und dem Host-Computer 134 durch Übertragen
einer Anwendung (z.B. ein Java-Applet) an das Benutzersystem 140 ausgeführt werden.
Alternativ kann das Benutzersystem 140 eine unabhängige, oder
sogenannte Stand-Alone Softwareanwendung für die Durchführung eines
hierin beschriebenen Abschnittes der Verarbeitung enthalten. In ähnlicher
Weise kann die Verarbeitung gemeinsam von den Krankenhauscomputersystemen 110 und
dem Host-Computer 134 durch Bereitstellen einer Anwendung
bei den Krankenhauscomputersystemen 110 ausgeführt werden,
und alternativ können
die Krankenhauscomputersysteme 110 eine Stand-Alone Software-Anwendung
für die Durchführung eines
Teils der hierin beschriebenen Verarbeitung enthalten. Es dürfte sich
verstehen, daß getrennte
Server verwendet werden können,
um die Netzwerkserver-Funktionen
und die Anwendungsserver-Funktionen zu implementieren. Alternativ
können
der Netzwerkserver, der Firewall- und Anwendungsserver von einem
einzigen Server implementiert werden, welcher Computerprogramme
ausführt, um
die erforderlichen Funktionen zu erzielen.
-
Die Host-Speichervorrichtung 132 kann
unter Anwendung einer Vielzahl von Vorrichtungen für die Speicherung
elektronischer Information, wie z.B. einen Dateiübertragungsprotokoll- (FTP-
File Transfer Protocol)-Server implementiert werden. Es dürfte sich
verstehen, daß die
Host-Speichervorrichtung 132 unter Verwendung eines in
dem Host-Computer 134 enthaltenen Speichers implementiert
werden kann, oder diese ein getrenntes physikalisches Gerät sein kann.
Die Host-Speichervorrichtung 132 enthält eine Vielfalt von eine Datenaufbewahrung
enthaltender Information, welche medizinische Berichte von einem
oder mehreren Krankenhäusern
in einem gemeinsamen Format (z.B. unter Verwendung derselben klinischen
Codes) enthält, und
ein Schema, welches das gemeinsame Format und das Datenbank-Layout
beschreibt. Der Host-Computer 134 kann auch als ein Datenbankserver
arbeiten und den Zugriff auf Anwendungsdaten koordinieren, welche Daten
enthalten, die in der Host-Speichervorrichtung 132 gespeichert
sind. Das Datenaufbewahrungssystem kann physikalisch als eine einzige
Datenbank mit eingeschränktem
Zugriff auf der Basis von Benutzereigenschaften gespeichert sein,
oder kann physikalisch in einer Vielfalt von Datenbanken einschließlich Abschnitten
der Datenbank auf den Benutzersystemen 140 oder der Host-Computer 134 gespeichert sein.
In einer exemplarischen Ausführungsform
ist das Datenaufbewahrungssystem unter Verwendung eines relationalen
Datenbanksystems implementiert, und das Datenbanksystem liefert
unterschiedliche Sichten der Daten an unterschiedliche Teilnehmer auf
der Basis der Teilnehmerkennungen.
-
In einer exemplarischen Ausführungsform der
Erfindung werden unter Verwendung unterschiedlicher Wissensbasen
codierte medizinische Daten in eine gemeinsame/kanonische Darstellung übersetzt.
Krankenhäuser
und Ärzte
verwenden Werkzeuge für
die Erzeugung klinischer Berichte, welche das Ergebnis eines Patientenbesuches
darstellen. Diese Werkzeuge verwenden klinische Codes zur Darstellung
von klinischer Terminologie, und die klinischen Codes können sich
von einem Werkzeug zum nächsten
und von einem Krankenhaus zum nächsten
unterscheiden. Zusätzlich
kann sich der Typ des strukturierten Berichtsobjektes (SR), das zum
Speichern der klinischen Daten verwendet wird, von einem Werkzeug
zum nächsten
und von einem Krankenhaus zum nächsten
unterscheiden. Eine exemplarische Ausführungsform der Erfindung kann zum
Parsing veränderter
klinischer Berichte in eine komprimierte Darstellung (z.B. aktualisierte
Vitalfunktionen in Zuordnung zu einem speziellen Patienten) verwendet
werden. Dieses kann die Fähigkeit
bereitstellen, schnell aktualisierte Patientendaten an unterschiedliche
Kliniken und Krankenhäuser über eine Übertragungsleitung
für eine
rechtzeitige Nutzung durch Teilnehmer, wie z.B. Ärzte und Doktoren, bereitstellen.
-
Unter Bezugnahme auf 2 wird nun ein allgemeines Prozeßflußdiagramm
eines exemplarischen Prozesses 150 zum Parsing von binären Daten,
die Initialisierungs- 151, und Ablaufphasen 152 enthalten,
dargestellt. Die nachstehend diskutierte 3 stellt den Prozeß 150 in einer detaillierteren Blockdarstellungsform
dar.
-
Beginnend bei dem Block 155 initialisiert
der Prozeß 150 die
Kommunikation zwischen einem Wert-Parser und einer Parse-Definitonsdatei,
wobei sich der Wert-Parser
dort befindet, wo das Parsing der Parse-Definitionsdatei durchgeführt wird.
-
Bei dem Block 160 wird der
Parse-Baum bei einem Wert-Parse-Hantierer bzw. -Handler aufgebaut,
welcher detaillierter unter Bezugnahme auf 4 diskutiert wird.
-
Bei dem Block 165 werden
binäre
Daten und eine Parse-Anforderung bei dem Wert-Parser empfangen,
wobei die Parse-Anforderung entweder ein nicht-differenziertes Parsing-Verfahren oder
ein differenziertes Parsing-Verfahren verlangt.
-
Bei dem Block 170 wird ein
Parse-Baum aufgerufen, und eine Parse-Definition zur Vorbereitung des
Parsing der binären
Daten empfangen.
-
Bei dem Block 175 wird ein
Parsing der binären
Daten an dem Parse-Baum durchgeführt,
und dadurch ein Wert gemäß der Parse-Definition
definiert. Ein Daten-Builder
wird aufgerufen, um den durch Parsing erhaltenen Wert zu Verwalten
und einen Datenbaum aufzubauen.
-
Bei dem Block 180 wird der
durch das Parsing gewonnene Wert in den Datenbaum eingefügt, und
dadurch der Datenbaum aktualisiert.
-
Bei dem Block 185 wird ein
Objekt, wie z.B. ein aktualisierter Datenbaum oder ein differenzierter Baum,
welche nachstehend detaillierter diskutiert werden, an den Parse-Anforderer
zurückgegeben.
-
3 stellt
eine Blockdarstellung eines exemplarischen Prozessors 200 zum Parsing
binärer Daten
dar, das Initialisierungs- und Ablaufzeitphasen enthält, wobei
die Ablaufzeitphase nicht-differenzierte und differenzierte Parsing-Verfahren
enthält,
wie es nachstehend detaillierter diskutiert wird.
-
Der Prozeß 200 startet mit
einer Initialisierungsprozedur, in welcher der Wert-Parser 205 eine Kommunikation 210 mit
einer Parse-Definitionsdatei 215 initialisiert, um die
Parse-Konfiguration zu lesen. Der Wert-Parser 205 verwendet
diese Information zur Kommunikation mit einem Wert-Parse-Handler 225 und
einem Daten-Builder 265, wobei die Aufgabe in dem Aufbau
eines Parse-Baums 235 zum Parsing von binären Daten 245 besteht.
Ein Wert-Parser ist eine Softwareklasse, die einen Daten-Parsing-Algorithmus
zum Parsing von binären
Daten in Datenwerte implementiert: Eine exemplarische Parse-Definitionsdatei
liegt in einem XML-Schema vor, wobei je doch die Parsing-Regeln nicht
als ein XML-Schema ausgedrückt
sein müssen,
sondern in jeder im Fachgebiet bekannten Weise beschrieben sein
könnten. Ein
XML-Schemaist ein
Dateiformat, das die zulässigen
Elemente, Attribute und Werte für
eine XML-Datei beschreibt, und welches von einem Validierungs-Parser
verwendet werden kann, um die Korrektheit der XML-Eingabe zu verifizieren.
Das XML-Schema erlaubt eine deutlich umfangreichere Kontrolle des
Formates der XML-Daten. In einer exemplarischen Ausführungsform
erfolgen die Schemadefinitionen in XML. Die Parse-Definition in
der Definitionsdatei 215 ist eine XML, welche definiert, wie
das Parsing des binären
Eingangsdatenstroms durchzuführen
ist. Ein Wert-Parse-Handler ist eine Softwareklasse, die XML-Elemente
in einer Parse-Definitionsdatei zu Knoten in einem Parse-Baum zuordnet.
-
Der Wert-Parser 205 verwendet
SAX, eine einfache Anwendungsschnittstelle für XML, welche einem Programm
ermöglicht,
XML zu interpretieren, um ein Parsing der Parse-Definition in der
Definitionsdatei 215 durch Senden 220 von SAX-Rückaufrufen
an den Wert-Parse-Handler 225 auszuführen. Nach dem Empfang der
SAX-Rückrufe baut 230 der Wert-Parse-Handler 225 einen
Parse-Baum 235 auf, welcher im allgemeinen eine Sammlung
verschachtelter Parse-Knoten ist, welche das Format der einzulesenden
Daten definieren, und welcher sobald er erzeugt ist, in einem Speicher
durch den Wert-Parser 205 gespeichert und wiederholt für jedes
aufgerufene Parsing-Verfahren verwendet wird. Ein Parse-Knoten ist
ein individuelles Element in einem Parse-Baum und kann eines von
zwei Typen sein: Ein primitiver Knoten oder ein Behälterknoten
(Container). Primitive Parse-Knoten repräsentieren "primitive" Werte wie z.B. Integers, Strings, Bool'sche Strings oder
irgendwelche anderen nativen Daten des Java-Typs und sind immer "Blätter" des Parse-Baums.
Containerknoten enthalten weitere Parse-Knoten und werden beispielsweise
zum Gruppieren, Wiederholen und bedingtem Umschalten verwendet.
Der Aufbau eines Parse-Baums wird nachstehend detaillierter unter Bezugnahme
auf 4 diskutiert.
-
Sobald die vollständige XML-Parse-Definition
durch den Wert-Parser 205 eingelesen ist, ist der Parse-Baum 235 bereit,
Daten einem Parsing zu unterwerfen.
-
Der vorstehende Prozeß, die Schritte
210, 220, 230, beschreiben eine Initialisierungsphase, die einen
Parse-Baum aus der Parse-Definition erzeugt. Der Prozeß, der nachfolgt,
beschreibt eine Ablaufzeitphase, welche den Parse-Baum verwendet, um die
mit einer Parse-Anforderung empfangenen Daten einem Parsing zu unterwerfen.
-
Zum Ablaufzeitpunkt empfängt 240 der Wert-Parser 205 binäre Daten 245 und
eine Parse-Anforderung 250. In der Parse-Anforderung 250 ist
eine Anforderung entweder für
ein nicht-differenziertes Parsing oder ein differenziertes Parsing
enthalten, was nachstehend detaillierter diskutiert wird, wobei
jedoch im allgemeinen ein nicht-differenziertes Parsing einen vollständigen (aktualisierten)
Datenbaum mit Information an den Parse-Anforderer bei 250 zurückgibt,
während
ein differenziertes Parsing einen differenzierten Baum zurückgibt,
welcher nur Information enthält,
die sich verändert
hat, seitdem der letzte bekannte Datensatz gespeichert wurde.
-
Nach dem Empfang 240 von
binären
Daten 245 und einer Parse-Anforderung 250, ruft 255 der Wert-Parser 205 den
gemäß der vorstehenden
Diskussion erzeugten Parse-Baum 235 auf, um ein Parsing
der binären
Daten 245 durchzuführen.
-
Das Parsing der binären Daten 245 bei
dem Parse-Baum 235 wird gemäß der empfangenen Parse-Definition 215 durchgeführt und
beginnt bei der Wurzel des Parse-Baums. Der Empfang der Parse-Anforderung 250 initialisiert
einen rekursiven Satz von Aufrufen, wobei jeder betroffene Parse-Knoten
in dem Parse-Baum 235 eine Parse-Anforderung bei all seinen
Kindern ausführt,
bis ein primitiver Parse-Knoten gefunden wird. Wenn ein primitiver
Parsknoten gefunden wird, wird ein Hole-Wert-Verfahren aufgerufen, um den Wert von
der aktuellen Position in dem Datenstrom zu definieren und ein Parsing
für die
Zuweisung zu diesem Parse-Knoten durchzuführen.
-
Für
jedes aus dem Datenstrom ausgelesene Element ruft 260 der
Parse-Baum 235 ein Werteinfüge-Verfahren bei dem Daten-Builder 265 auf,
welcher wiederum einen Datenbaum 275 durch Verwalten und
Einfügen
des durch Parsing gewonnenen Wertes in den Datenbaum 275 aufbaut 270.
Ein Element der Parse-Definition beschreibt ein gegebenes Teil der Daten
in dem binären
Datenstrom innerhalb des Parse-Baums, während ein Wert der numerische
Wert ist, der sich nach dem Verarbeiten des Elementes ergibt. Rückaufrufe
von dem Wert-Parser 205 werden bei dem Daten-Builder 265 über den
Wert-Parse-Handler 225 und den Parse-Baum 235 empfangen,
wenn ein neues Datenteil aus dem binären Datenstrom durch das Parsing
erhalten wurde.
-
Nachdem alle Daten gelesen worden
sind, ruft 280 der Wert-Parser 205 den Datenbaum 275 auf,
um ihm zu ermöglichen,
jede zusätzliche
Verarbeitung seiner Daten auszuführen,
bevor der Datenbaum 275 (ein an den Parse-Anforderer zurückgegebener
Objekttyp) an den Parse-Anforderer bei 250 zurückgibt 285,
wenn ein nicht-differenziertes Parsing ursprünglich angefordert wurde, oder
bevor er ein differenziertes Verfahren aufruft 290, wenn
ein differenziertes Parsing ursprünglich aufgerufen wurde.
-
Wenn ein differenziertes Parsing
aufgerufen wurde, holt der Wert-Parser 205 den letzen bekannten
Datenbaum aus seinem Cache-Speicher, welcher zuvor gespeichert wurde,
wenn er zuerst erzeugt wurde, und führt eine Vergleichsanalyse
zwischen dem letzten bekannten Datenbaum und dem neuen (aktualisierten)
Datenbaum aus, und übergibt 295 nur
die Differenzen an einen differenzierten Baum 300, die
nur die Information enthalten, die sich verändert hat, seitdem der letzte
bekannte Datenbaum gespeichert wurde.
-
Nach der Erzeugung des differenzierten Baumes 300 wird
der differenzierte Baum 300 (ein weiterer Objekttyp, der
an den Parse-Anforderer zurückgegeben
wird) an den Parse-Aufrufer bei 250 zurückgegeben 305.
-
Gemäß 4, welche eine Prozeß für den Aufbau eines Parse-Baums 235 darstellt,
baut der Wert-Parse-Handler 225 den Parse-Baum 235 auf, nachdem
er einen Rückaufruf 220 von
dem Wert-Parser-205 erhalten hat, welcher Start- und Ende-Elemente innerhalb
des binären
Datenstroms enthält.
Die Start- und Ende-Elemente der Parse-Definition beschreiben die
zugeordneten Daten in dem Datenstrom gemäß verschiedenen Parametern.
wie z.B. Adresse, lokaler Name (der lokale Name eines XML-Elementes
ist der Name des Elementes minus irgendwelche Namensraum-Berücksichtigungen), qualifizierter
Name und Attribute für
das Startelement, und Adresse, lokaler Name und qualifizierter Name
für das
Endeelement. Nach dem Empfang einer Parse-Anforderung bei dem Wert-Parser 205 führt der
Wert-Parser 205 ein Parsing der Parse-Definitionsdatei 215 aus,
um die Parse-Argumente einzulesen und sendet 220 einen
Rückaufruf,
welcher die Parse-Argumente enthält,
an den Wert-Parse-Handler 225.
-
Der Wert-Parse-Handler 225 liest
das von dem Wert-Parser 205 weitergebenen XML-Element und
stellt, wenn das Element ein Startelement ist, fest 350,
ob der Parse-Baumstapel 355 leer ist.
-
Wenn der Stapel 355 leer
ist, erzeugt 360 der Wert-Parse-Handler 225 einen
Parse-Baum-Wurzelknoten und schiebt 385 den neu erzeugten
Knoten auf den Parse-Baum 225. Der Parse-Baum-Wurzelknoten
wird auch als ein Datenbaumwurzelknoten bezeichnet und ist die Stelle
in dem Baum, an der der Wert-Parser 205 die Verarbeitung
der binären
Daten 245 startet.
-
Wenn der Stapel 355 nicht
leer ist, identifiziert der Parser-Händler 225 den zugeordneten
Eltern-Parse-Knoten durch Absuchen 365 des Stapels 355 und
versucht dann, den XML-Elementnamen mit einem Satz bekannter Elementnamen
zu vergleichen, die in dem Wert-Parser 205 in einer Wert-Parser-Identifizierungsdatei
gespeichert sind. Jeder bekannte Elementname wird dann bei dem Wert-Parser 205 einem
spezifischen Parse-Baumknoten zugeordnet. Wenn ein übereinstimmender
Elementnamen gefunden wird, erzeugt 370 der Wert-Parse-Handler 225 einen
Standard-Parse-Baumknoten,
fügt 375 den
Standard-Knoten dem Parse-Baum 235 beginnend bei dem Elternknoten
hinzu, ordnet das bekannte Element dem Standard-Knoten zu, und schiebt 385 den
Standard-Knoten auf die aktuellen Ebene des Parse-Baums 235.
Wenn kein übereinstimmender
Elementname gefunden wird, erzeugt 380 der Wert-Parse-Handler 225 einen
spezifischen Parse-Baumknoten, mittels eines Hole-Ennieiterung-Knoten-Verfahrens,
fügt 375 den
speziellen Knoten dem Parse-Baum 235 beginnend bei dem
Eltern-Parse-Knoten zu, ordnet das nicht-übereinstimmende Element dem
speziellen Knoten zu, und schiebt 385 den speziellen Knoten
auf die aktuelle Ebene des Parse-Baums 235.
-
Der Prozeß der Erzeugung und Hinzufügung von
Knoten zu dem Parse-Baum 235 setzt sich fort, bis ein Endelement
bei dem Wert-Parser 205 auftritt. Ein Endelement zeigt
die Fertigstellung des Parse-Baums für diese spezielle binäre Datenstruktur an.
-
Unter einem allgemeinerem Gesichtspunkt und
unter Bezugnahme auf 5 und 6 wird der Wert-Parser 205 durch
Lesen 210 einer XML-Parse-Definitonsdatei 215 initialisiert,
um einen für
die Parse-Definition repräsentativen
und durch diese definierten Parse-Baum 235 aufzubauen 230.
Die Parse-Definitionsdatei 215 spezifi ziert das Format
der binären
Daten 245, die von dem Wert-Parser 205 akzeptiert
und verarbeitet werden. Zur Ablaufzeit akzeptiert der Parse-Baum 235 binäre Daten 245,
welche primitive und nicht-primitive Datenelemente enthalten. Wenn
ein primitives Datenelement aus dem binären Datenstrom gelesen wird,
ruft 260 der Parse-Baum 235 die Daten-Builder 265 auf,
um das Datenelement in einen Datenbaum 275 bei einem primitiven
Parse-Knoten einzufügen 270.
Wenn ein nicht-primitives Datenelement aus dem binären Strom
ausgelesen wird, ruft 260 der Parse-Baum 235 den
Daten-Builder 265 auf, um das Datenelement in den Datenbaum 275 bei
einem nicht-primitiven Parse-Knoten einzufügen 270. Der Datenbaum
ist ein Produkt des Wert-Parsersystems, welcher die binären Daten
in einer sinnvollen Datenstruktur enthält. Unter Anwendung von differenzierender
Logik und Umwandlungstechniken kann die XML diesen Baum weiter verarbeiten.
Der sich ergebende Datenbaum oder differenzierte Baum wird an den
Parse-Anforderer zurückgegeben.
-
Ein detaillierter Prozeß 400 zum
Parsing eines Parse-Baumknotens ist in 7 dargestellt, welcher bei einem Verfahrenseinsprung 45 beginnt
und zu einem Block 410 übergeht,
in welchem Kindknoten gesucht werden. Bei dem Block 415 werden
die Kindknoten wiederholt, wenn mehr als nur ein Kindknoten vorhanden
ist. Wenn der Block 415 wahr ist, wird festgestellt 420,
ob der Knoten ein Containerknoten ist. Wenn der Block 420 wahr
ist, wird ein Parsing des Kindcontainerknotens durchgeführt 425. Nach
dem Block 425 geht die Prozeßlogik zu dem Block 430 über, in
welchem ein fortlaufender Summenindex der bereits dem Parsing unterzogenen Knoten
aktualisiert wird. Wenn der Block 420 falsch ist, wird
ermittelt 435, ob ein "Überspringen"-Attribut zum Überspringen
binärer
Daten, die nicht zu interpretieren sind, gesetzt ist. Wenn der Block 435 wahr ist,
geht die Prozeßlogik
zum Block 430 über.
Wenn der Block 435 falsch ist, geht die Prozeßlogik zum Block 440 über, wo
der Wert des Kindknotens über
einen Hole-Wert-Algörithmus
ermittelt wird. Nach dem Block 440 geht die Prozeßlogik zu
dem Block 445 über,
wo ermittelt wird, ob das Kind umschaltbar ist. Ein umschaltbarer
Knoten definiert einen zu vergleichenden Wert, wenn er eingeschaltet
ist, d.h., der umschaltbar auf Wahr gesetzt ist. Falls er umschaltbar
ist, wird der Wert des Knoten temporär in einem Speicher für eine anschließende Bezugnahme
durch eine Konfigurationsdatei oder den Datenbaum 275 gespeichert.
Wenn der Block 445 wahr ist, wird der Wert als 440 in
einen Ablaufzeit-Cache
eingefügt 450.
Nachdem der Block 450 oder der Block 445 falsch
ist, geht die Prozeßlogik
zum Block 455 über, wo
ermittelt wird, ob das Überspringen-Attribut
gesetzt ist. Wenn der Block 455 wahr ist, wird bei 460 ermittelt,
ob das "Nicht-Weiterzählen"-Attribut gesetzt ist,
was dazu führt,
daß der
Leseindex nicht weitergezählt
wird. Für
einen aus dem Datenstrom ausgelesenen gegebenen Wert wird der Wert
gelesen, aber der Lesezeiger nicht weitergezählt. Das Nicht-Weiterzählen-Attribut wird typischerweise
bei primitiven Elementen innerhalb von Bitfeldelementen verwendet (d.h.,
ein Bitfeld ist ein Satz von Bytes, die zusammen betrachtet werden
sollten), um das Hochzählen
des Lesezeigers zu verhindern. Wenn der Block 445 falsch
ist, geht die Prozeßlogik
zum Block 465 über, in
welchem der Daten-Builder 265 aufgerufen wird, um den Wert
aus dem Block 440 in den Datenbaum 275 einzufügen.
-
Wenn der Block 460 wahr
ist, geht die Prozeßlogik
zum Block 415 über.
Wenn der Block 460 falsch ist, geht die Prozeßlogik zum
Block 430 über. Nach
dem Block 430 geht die Prozeßlogik zu dem Block 415 über. Wenn
der Block 415 falsch ist, geht die Prozeßlogik zu
dem Block 470 über,
wo die Größe des Rückgabeindex
ermittelt wird. Wenn die laufende Summe zurückgegeben werden soll (wenn
das "Nicht-Weiterzählen"-Attribut nicht gesetzt
ist) geht dann die Prozeßlogik
zum Block 475 über,
wo die laufende Summe für
den Rückgabeindex
zurückgegeben
wird. Wenn die definierte Vorwärtszählgröße zurückzugeben
ist, (wenn das "Nicht-Weiterzählen-Attribut" gesetzt ist) geht
dann die Prozeßlogik
zum Block 480 über,
in welchem die definierte Größe für den Rückgabeindex
zurückgegeben
wird. Nach den Blöcken 475 und 480 geht
die Prozeßlogik
zu dem Block 485 über,
wo der Prozeß 400 endet.
-
Ein exemplarischer Prozeß für Wert-Parsing wird
nachstehend unter Verwendung eines einfachen Beispiels einer Verarbeitung
einer Verzeichnis-Anfrageantwort aus Trends beschrieben. Der Prozeß folgt im
allgemeinen dem unter Bezugnahme auf 3 vorstehend
diskutierten Prozeß..
-
Zu Beginn identifiziert der Benutzer
das binäre
Format der Daten 245, das einem Parsing zu unterwerfen
ist, und wenn die Daten 245 sektionaler Natur sind, identifiziert
der Benutzer die Sektionen. Eine Sektionsidentifikation wird durchgeführt, wenn die
Daten immer mit einer gemeinsamen Vorspannsektion oder Protokollidentifikator
starten. Beispielsweise beginnt eine ETFTP-Trendantwort immer mit einer "Bed message"-Struktur (welche üblicherweise Unitiy
1 Code ist), gefolgt von einer ETFTP-Anforderungsstruktur (welche
unter ETFTP-Anforderungen stellenden Codes üblich ist), gefolgt von den
Trenddaten selbst. Diese diskreten Sektionen werden in getrennte
XML-Dateien aufgesplittet, und die Master-Parse-Definition verwendet
Entitätsreferenzen, um
auf diese Bezug zu nehmen. Eine Entitätsreferenz ist eine Referenz
innerhalb einer XML-Datei, die als ein Verweis auf eine weitere
XML-Datei dient.
-
Der Benutzer identifiziert dann,
ob sich das binäre
Datenformat wiederholt, oder eine zukünftige Sektion in dem Strom
hat, der von einem vorher eingelesenen Wert abhängt. In dieser Situation hat
das Antwortformat drei binäre
Sektionen:
- a. einen "ETFTP-Request"-Vorspann (36 Bytes) (siehe 9), welcher eine gemeinsame
Sektion zwischen allen ETFTP-Anforderungen ist,
- b. einen "DataTrendMenu"-Block (7 Bytes)
(siehe 9), und
- c. einen "TrendEntry"-Block (siehe 9), welcher eine Anzahl
von 6 Byteeinträgen
enthält,
wovon jeder einen Trendeintrag repräsentiert, welcher eine Gruppenkategorie
ist, die dazu dient, Gruppenelemente unter einem gegebenen Namen
zusammenzugruppieren.
-
Ein Beispiel einer binären Trendverzeichnisantwort
kann aussehen, wie die in 8 dargestellte
binäre
Folge.
-
Anschließend erzeugt der Benutzer die
Parse-Definitionsdatei 215. Wenn die binären Daten
sektional sind, wird die Parse-Definitionsdatei in Sektionen definiert
und externe Referenzen werden verwendet, um die Sektionen miteinander
zu "verkleben". Die Parse-Definitions-XML-Datei,
ist in 9 dargestellt.
In 9 sind die einzigen
Wert-Parser-Begrenzungssymbole in der exemplarischen Datei die für Trendeinträge spezifischen,
und wenn der SAX-Parser die Datei einliest, löst der Parser die Entitätsreferenzen
auf. Die aufgelöste
XML-Datei ist in 10 dargestellt.
Wenn alle externen Referenzen aufgelöst sind, was zur Betrachtung
ausgeführt
werden kann, indem die XML-Datei in einen Web-Browser (wie z.B.
Internet ExplorerTM 5,0 oder höher) gezogen
wird, ist die Parse-Definition lesbar.
-
Dann erzeugt der Benutzer einen Daten-Builder 265,
welche Rückaufrufe
aus dem Parse-Baum 235 empfängt, wenn er die binären Daten 245 verarbeitet.
Der Daten-Builder 265 baut einen Datenbaum 275 in
jeder vom Benutzer gewünschten Art
auf. Dieser Baum 275 kann dann zum Unterstützen der
Differenzierung verwendet werden, wenn Daten an weitere Verfahren
weitergegeben werden oder in andere Formate (wie z.B. XML) zur Übertragung umgewandelt
werden. Ein exemplarischer Daten-Builder 265 für den exemplarischen
binären Strom
von 8 ist die "com.ge.med.rsvp.server.rsvpserver.unity.trend.Trend.DirBuilder"-Klasse. Der Parse-Baum 235 ruft
ein Setze-Wert-260-ein-Verfahren bezüglich dieser Klasse auf, wenn
ein Datenwert gelesen wird. Der Daten-Builder 265 baut
ein "com.ge.med.rsvp.server.rsvpserver.unity.trend.TrendDirecton"-Objekt als sein
Datenobjekt auf (Datenbaum 275).
-
Zur Ablaufzeit ruft eine Datensenke
einen Wert-Parser 205 auf, wenn Daten 245 empfangen werden.
Eine Datensenke ist eine Klasse, die Daten von einer Quelle, wie
z.B. einem Netzwerk oder einer Datei, empfängt. Die Datensenkenklasse
ruft den Wert-Parser 205 auf, um ein Parsing der geholten Daten
durchzuführen,
und gibt den Datenbaum 275 an den Anforderer weiter. Der
zurückgegebene
Datenbaum 275 wird dann an jeden weitergeleitet, der ihn
benötigt.
Eine Trendsteuerung wie z.B. "com.ge.med.rsvp.server.rsvpserver.unity.trend.UnityTrendController" ruft einen Wert-Parser 205 mit dem
aus ihrer ETFTP-Anforderung empfangenen Daten auf. Das zurückgegebene
TrendDirectory-Objekt wird als ein Ergebnis an den get.Directory-Prozeßaufruf
zurückgegeben.
-
Es sollte im Auge behalten werden,
daß das binäre Stromformat
und die Parse-Baumsyntax
sich unabhängig
von dem Parsing-Algorithmus ändern können, und
da der binäre
Strom nicht fest codiert ist, dieser sich mit einer neuen XML-Parsing-Datei
verändern
kann. Es ist die Struktur und die dynamische Verarbeitung und nicht
die tatsächlichen
Eingabe/Ausgabe-Ströme,
welche Merkmale der Ausführungsformen
der Erfindung sind.
-
Die Verwendung einer Parse-Definitionsdatei
befreit den Schreiber des binären
Verarbeitungscodes von der Verwendung langer "Case-type"-Anweisungen (Fallunterscheidungs-Anweisungen),
um Datenelemente umzuschalten. Stattdessen baut das Wert-Parsersystem
einen Parse-Baum für
die Daten auf, welcher wiederholt für jeden empfangenen binären Datensatz
aufgerufen wird. Somit muß der
externe Verarbeitungscode nur den Datenbaum aus dem Parser verarbeiten.
Da Parse-Definitionen in XML geschrieben werden, können Entitätsreferenzen
zu externen XML- Dateien
verwendet werden, um die gesamte Definition zusammenzufügen, was
es ermöglicht,
daß eine
gemeinsame Verarbeitung von Blöcken
gemeinsam zwischen unterschiedlichen Parse-Definitionen genutzt
wird. Dieser Ansatz kann in Protokollen genutzt werden, in welchen
gemeinsame Vorspanne, gefolgt von Typen spezifischer Information
vorhanden sind, und kann insbesondere zum Parsing und die Verteilung
medizinischer binärer
Daten genutzt werden, ohne daß Protokollinformation
in die Systemarchitektur eingebettet werden muß. Die Verwendung eines Parse-Baums
und einen differenzierten Baumes für die Übertragung medizinischer binärer Daten über Übertragungsleitungen,
welche Leitungen mit niedriger Bandbreite sein können, ermöglicht eine effiziente Codierung,
Kompression und Übertragung
binärer
medizinischer Daten.
-
Die Implementation einer Parse-Definitionsdatei
und eines Parse-Baums vermeidet ebenfalls die Notwendigkeit Bitmasken
auf die binären
Daten anzuwenden, oder verschachtelte Case-Anweisungen in dem Code
zu verwenden, was wiederum die Notwendigkeit vermeidet, Software
neu zu kompilieren und zu verteilen, wenn die Rohdaten für unterschiedliche
Anwendungen neu interpretiert werden.
-
Wie vorstehend beschrieben, können Ausführungsformen
der Endung in der Form Computer-implementierter Prozesse und Vorrichtungen
für die
Ausführung
dieser Prozesse verkörpert
sein. Ausführungsformen
der Erfindung können
auch in der Form eines Computerprogrammcode verkörpert sein, der Anweisungen
enthält,
die in berührbaren Medien,
wie z.B. Floppy-Disketten, CD-ROMs, Festplatten, oder anderen Computer-lesbaren
Speichermedien eingebracht sind, wobei, wenn der Computerprogrammcode
in einen Computer geladen und darin ausgeführt wird, der Computer zu einer
Vorrichtung für
die Ausführung
der Erfindung wird. Eine Ausführungsform
der Erfindung kann beispielsweise auch in der Form eines Computerprogrammcodes unabhängig davon
verkörpert
sein, ob er in einem Speichermedium gespeichert ist, in einen Computer geladen
und/oder durch diesen ausgeführt
wird, oder über
irgendein Übertragungsmedium,
wie z.B. über eine
elektrische Verdrahtung oder Verkabelung, über Faseroptik oder über elektromagnetische
Strahlung übertragen
wird, wobei, wenn das Computerprogramm in einen Computer geladen
und durch diesen ausgeführt
wird, der Computer zu einer Vorrichtung für die Ausführung der Erfindung wird. Implementiert in
einem Allzweck-Mikroprozessor konfigurieren die Computerprogrammcodesegmente
den Mikroprozessor zum Erzeugen spezifischer logischer Schaltungen.
-
Nachdem die Erfindung unter Bezugnahme auf
exemplarische Ausführungsformen
beschrieben wurde, dürfte
es für
den Fachmann auf diesem Gebiet ersichtlich sein, daß verschiedene Änderungen durchgeführt werden
können
und Äquivalente
Elemente davon ersetzen können,
ohne von dem Schutzumfang der Erfindung abzuweichen. Zusätzlich können verschiedene
Modifikationen durchgeführt
werden, um eine spezielle Situation oder Material an die Lehren
der Erfindung ohne Abweichung von deren wesentlichem Schutzumfang
anzupassen. Daher soll die Erfindung nicht auf die für die beste
gehaltene Ausführungsart
dieser Erfindung offenbarte spezielle Ausführungsform beschränkt sein,
sondern die Erfindung alle Ausführungsformen
umfassen, welche in den Schutzumfang der beigefügten Ansprüche fallen. Ferner bezeichnet
die Verwendung von Begriffen "erstes,
zweites" usw. keinerlei
Reihenfolge oder Wichtigkeiten, sondern die Begriffe "erstes, zweites" usw. werden nur
zur Unterscheidung eines Elementes von einem anderen verwendet.