DE10358834A1 - Verfahren, Einrichtung und Computer-Produkt zum Analysieren von Binärdaten - Google Patents

Verfahren, Einrichtung und Computer-Produkt zum Analysieren von Binärdaten Download PDF

Info

Publication number
DE10358834A1
DE10358834A1 DE10358834A DE10358834A DE10358834A1 DE 10358834 A1 DE10358834 A1 DE 10358834A1 DE 10358834 A DE10358834 A DE 10358834A DE 10358834 A DE10358834 A DE 10358834A DE 10358834 A1 DE10358834 A1 DE 10358834A1
Authority
DE
Germany
Prior art keywords
tree
parse
data
parsing
differentiated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10358834A
Other languages
English (en)
Inventor
Stuart Lyle Brooklyn Park Schrader
Robert J. Wauwatosa Laferriere
James Steven New Berlin Cincotta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GE Medical Systems Information Technologies Inc
Original Assignee
GE Medical Systems Information Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GE Medical Systems Information Technologies Inc filed Critical GE Medical Systems Information Technologies Inc
Publication of DE10358834A1 publication Critical patent/DE10358834A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

Es wird ein Verfahren zum Parsing binärer Daten offenbart. Das Verfahren umfaßt 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-Baums und Empfangen einer Parse-Definition, um die empfangenen binären Daten einem Parsing zu unterwerfen, das Parsing der binären Daten, um einen Wert gemäß der Parse-Definition zu definieren, und das Aufrufen eines Daten-Builders, zum Verwalten des durch das Parsing erhaltenen Wertes. Der durch das Parsing erhaltene Wert wird in einen aktualisierten Datenbaum eingefügt, und ein Objekt wird an den Parse-Anforderer zurückgegeben.

Description

  • 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.

Claims (25)

  1. Verfahren (150, 200) zum Parsing binärer Daten (245), enthaltend: Empfangen (165) binärer Daten (245) und einer Parse-Anforderung (250) bei einem Wert-Parser (205), wobei die Parse-Anforderung (250) wenigstens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren verlangt; Aufrufen (170) eines Parse-Baums (235) und Empfangen einer Parse-Definition (215), um ein Parsing der empfangenen binären Daten (245) durchzuführen; Parsing (175) der binären Daten (245) bei dem Parse-Baum (235), um einen Wert gemäß der Parse-Definition (215) zu definieren, und Aufrufen (260) eines Daten-Builders (265) zum Verwalten des durch Parsing erhaltenen Wertes; Einfügen (180) des Wertes in einen aktualisierten Datenbaum (275); und Zurückgeben (285, 305) eines Objektes (275, 300) an den Parse-Anforderer (250).
  2. Verfahren (150, 200) nach Anspruch 1, ferner enthaltend: Initiieren (210) einer Kommunikation zwischen einem Wert-Parser (205) und einer Parse-Definitionsdatei (215) und Parsing der Parse-Definitionsdatei (215); und Aufbauen (230) eines Parse-Baums (235) bei einem Wert-Parse-Handler (225).
  3. Verfahren (150, 200) nach Anspruch 1, wobei: das Aufrufen mindestens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren das Aufrufen eines nicht-differenzierten Parsing-Verfahrens umfaßt; und das Zurückgeben (285, 305) eines Objektes (275, 300) an den Parse-Anforderer (250) das Zurückgeben (285, 305) des aktualisierten Datenbaumes (275) an den Parse-Anforderer (250) umfaßt.
  4. Verfahren (150, 200) nach Anspruch 1, wobei: das Aufrufen mindestens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren das Aufrufen eines differenzierten Parsing-Verfahrens umfaßt, und ferner enthältt: Speichern eines letzten bekannten Datenbaums (275) in einem Speicher bei dem Wert-Parser (205); Zurückholen des letzten bekannten Datenbaums (275) aus dem Speicher bei dem Wert-Parser (205); Erzeugen (295) eines differenzierten Baumes (300), der die Veränderungen in dem Datenbaum (275) von dem letzten bekannten Datenbaum (275) enthält; und wobei die Rückgabe (285, 385) eines Objektes (275, 300) an den Parse-Anforderer (250) das Zurückgeben des differenzierten Baumes (300) an den Parse-Anforderer (250) umfaßt.
  5. Verfahren (150, 200) nach Anspruch 2, wobei das Aufbauen (230) eines Parse-Baumes (235) enthält: Einlesen eines Elementes in den Wert-Parse-Handler (225) und Ermitteln (350), ob ein Parse-Baumstapel (355) leer ist; Erzeugen einer Parse-Baumwurzel (360), wenn der Stapel (355) leer ist; Durchsuchen (365) des Stapels (355) nach einem übereinstimmenden bekannten Elementnamen; Identifizieren eines Eltern-Parse-Knotens, Erzeugen eines Standard-Knotens (370), Hinzufügen (375) des Standard-Knotens zu dem Eltern-Parse-Knoten, und Zuordnen des Elementes zu dem Standard-Knoten, wenn der übereinstimmende bekannte Elementnamen gefunden wird; Identifizieren eines Eltern-Parse-Knotens, Erzeugen eines speziellen Knotens (370), Hinzufügen (375) des speziellen Knotens zu dem Eltern-Parse- Knoten, und Zuordnen des Elementes zu dem speziellen Knoten, wenn der übereinstimmende bekannte Elementnamen nicht gefunden wird;
  6. Verfahren (150, 200) nach Anspruch 1, wobei das Parsing (175) der binären Daten (245) umfaßt: Parsing einer Wurzel des Parse-Baums (235), wobei der Parse-Baum (235) die Struktur der binären Daten (245) repräsentiert; Parsing eines Kindes von jedem Parse-Knoten, welcher von der Wurzel abstammt, bis ein primitiver Parse-Knoten identifiziert wird; Definieren und Parsing eines Wertes an der aktuellen Position in den binären Daten (245) zur Zuordnung zu dem primitiven Parse-Knoten; und Aufrufen (260) eines Daten-Builders (265), um den durch Parsing erhaltenen Wert in einen Datenbaum (275) einzufügen.
  7. Verfahren (150, 200) nach Anspruch 4, wobei das Erzeugen eines differenzierten Baumes (300) umfaßt: Vergleichen (290) des aktualisierten Datenbaums mit dem letzten bekannten Datenbaum (275); und Erzeugen (295) eines differenzierten Baums (300), der die Änderungen von dem letzten bekannten Datenbaum (275) zu dem aktualisierten Datenbaum (275) enthält.
  8. Verfahren (150, 200) zum Parsing medizinischer binärer Daten (245) zwecks Übertragung über eine Kommunikationsleitung, enthalten: Empfangen (165) binärer Daten (245) und einer Parse-Anforderung (250) bei einem Wert-Parser (205), wobei die Parse-Anforderung (250) wenigstens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren verlangt; Speichern eines letzten bekannten Datenbaums (275) in einem Speicher bei dem Wert-Parser (205); Aufrufen (170) eines Parse-Baums (235) und Empfangen einer Parse-Definition (215), um ein Parsing der empfangenen binären Daten (245) durchzuführen; Parsing (175) der binären Daten (245) bei dem Parse-Baum (235), um einen Wert gemäß der Parse-Definition (215) zu definieren, und Aufrufen (260) eines Daten-Builders (265) zum Verwalten des durch Parsing erhaltenen Wertes; Einfügen (180) des Wertes in einen aktualisierten Datenbaum (275); und Zurückholen des letzten bekannten Datenbaums (275) aus dem Speicher bei dem Wert-Parser (205), wenn ein differenziertes Parsing-Verfahren verlangt war; Vergleichen (290) des aktualisierten Datenbaums (275) mit dem letzten bekannten Datenbaum (275), wenn ein differenziertes Parsing-Verfahren verlangt war; Erzeugen (295) eines differenzierten Baumes (300), der die Änderungen von dem letzten bekannten Datenbaum (275) zu dem aktualisierten Datenbaum (275) enthält, wenn ein differenziertes Parsing-Verfahren verlangt war; und Zurückgeben (185) wenigstens eines von dem aktualisierten Datenbaum (275) oder dem differenzierten Baum (300) an den Parse-Anforderer (250).
  9. Verfahren (150, 200) nach Anspruch 8, wobei: das Einfügen des Wertes ferner das Einfügen des Wertes in einen aktualisierten Datenbaum (275) ohne eine eingebettete Protokollinformation umfaßt; und wobei das Erzeugen (295) eines differenzierten Baumes (300) ferner das Erzeugen eines differenzierten Baumes (300) ohne eine eingebettete Protokollinformation umfaßt.
  10. System (100) zum Parsing binärer Daten (245), enthaltend: ein Krankenhaus-Computersystem (110) in Verbindung mit einem Netzwerk (120), wobei das Krankenhauscomputersystem (110) Software zum Implementieren eines Verfahrens (150, 200) zum Parsing medizinischer binärer Daten (245) für die Übertragung über eine Kommunikationsleitung enthält, wobei das Verfahren (150, 200) umfaßt: Empfangen (165) binärer Daten (245) und einer Parse-Anforderung (250) bei einem Wert-Parser (205), wobei die Parse-Anforderung (250) wenigstens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren verlangt; Speichern eines letzten bekannten Datenbaums (275) in einem Speicher bei dem Wert-Parser (205); Aufrufen (170) eines Parse-Baums (235) und Empfangen einer Parse-Definition (215), um ein Parsing der empfangenen binären Daten (245) durchzuführen; Parsing (175) der binären Daten (245) bei dem Parse-Baum (235), um einen Wert gemäß der Parse-Definition (215) zu definieren, und Aufrufen (260) eines Daten-Builders (265) zum Verwalten des durch Parsing erhaltenen Wertes; Einfügen (180) des Wertes in einen aktualisierten Datenbaum (275); und Zurückholen des letzten bekannten Datenbaums (275) aus dem Speicher bei dem Wert-Parser (205), wenn ein differenziertes Parsing-Verfahren verlangt war; Vergleichen (290) des aktualisierten Datenbaums (275) mit dem letzten bekannten Datenbaum (275), wenn ein differenziertes Parsing-Verfahren verlangt war; Erzeugen (295) eines differenzierten Baumes (300), der die Änderungen von dem letzten bekannten Datenbaum (275) zu dem aktualisierten Datenbaum enthält, wenn ein differenziertes Parsing-Verfahren verlangt war; und Zurückgeben (185) wenigstens eines von dem aktualisierten Datenbaum (275) oder dem differenzierten Baum (300) an den Parse-Anforderer (250).
  11. System (100) nach Anspruch 10, ferner enthaltend: ein Netzwerk (120), und wobei das Krankenhauscomputersystem (110) mit dem Netzwerk (120) in Verbindung steht.
  12. System (100) nach Anspruch 11, wobei das Netzwerk (120) ein Internet ist.
  13. System (100) nach Anspruch 11, wobei das Netzwerk (120) ein Intranet ist.
  14. System (100) nach Anspruch 11, wobei das Netzwerk (120) drahtlos ist.
  15. System (100) nach Anspruch 10, wobei: das Einfügen des Wertes (180) ferner das Einfügen des Wertes in einen aktualisierten Datenbaum (275) ohne eine eingebettete Protokollinformation umfaßt; und wobei das Erzeugen (295) eines differenzierten Baumes (300) ferner das Erzeugen eines differenzierten Baumes (300) ohne eine eingebettete Protokollinformation umfaßt.
  16. System (100) nach Anspruch 15, ferner umfassend: ein Netzwerk (120), und wobei das Krankenhauscomputersystem (110) mit dem Netzwerk (120) in Verbindung steht.
  17. System (100) nach Anspruch 16, wobei das Netzwerk (120) ein Internet ist.
  18. System (100) nach Anspruch 16, wobei das Netzwerk (120) ein Intranet ist.
  19. System (100) nach Anspruch 16, wobei das Netzwerk (120) drahtlos ist.
  20. Verfahren (200) zum Parsing von binären Daten (245), umfassend: Initialisieren (210) eines Wert-Parsers (205) durch Lesen einer Parse-Definitionsdatei (215) und Erzeugen eines die Parse-Definition (215) repräsentierenden Parse-Baums (235); Akzeptieren (240) einer Eingabe binärer Daten (245) mit wenigstens einem primitiven Datenelement oder einem nicht-primitiven Datenelement bei dem Wert-Parser (205) und dem Parse-Baum (235); Aufrufen (260) eines Daten-Builders (265) als Reaktion auf das primitive Datenelement und Einfügen des primitiven Datenelementes in einen Datenbaum (275) bei einem primitiven Parse-Knoten; Aufrufen (260) eines Daten-Builders (265) als Reaktion auf das nicht-primitive Datenelement und Einfügen des nicht-primitiven Datenelementes in einen Datenbaum (275) bei einem nicht-primitiven Parse-Knoten; und Aufbauen und Zurückgeben (285, 305) wenigstens eines von einem nicht-differenzierten Datenbaum (275) oder einem differenzierten Baum (300).
  21. Verfahren (200) nach Anspruch 20, wobei das Aufbauen und Zurückgeben (285, 305) wenigstens eines von einem nicht-differenzierten Datenbaum (275) oder einem differenzierten Baum (300) umfaßt: Vergleichen (290) des Datenbaums mit einem in Cache gespeicherten letzten bekannten Datenbaum (275); Erzeugen eines differenzierten Baums (300); und Zurückgeben (305) des differenzierten Baums (300).
  22. Verfahren (200) nach Anspruch 21, wobei die Rückgabe (305) des differenzierten Baumes (300) umfaßt: Zurückgeben (305) des differenzierten Baumes (300) bei fehlender eingebetteter Protokollinformation.
  23. Computerprogrammprodukt zum Parsing von binären Daten (245), wobei das Produkt umfaßt: ein von einer Verarbeitungsschaltung lesbares Speichermedium, das Instruktionen zur Ausführung durch die Verarbeitungsschaltung speichert, für das: Empfangen (240) binärer Daten (245) und einer Parse-Anforderung (250) bei einem Wert-Parser (205), wobei die Parse-Anforderung (250) wenigstens eines von einem nicht-differenzierten Parsing-Verfahren oder einem differenzierten Parsing-Verfahren verlangt; Speichern eines letzten bekannten Datenbaums (275) in einem Speicher bei dem Wert-Parser (205); Aufrufen (170) eines Parse-Baums (235) und Empfangen einer Parse-Definition (215), um ein Parsing der empfangenen binären Daten (245) durchzuführen; Parsing (175) der binären Daten (245) bei dem Parse-Baum (235), um einen Wert gemäß der Parse-Definition (215) zu definieren, und Aufrufen (260) eines Daten-Builders (265) zum Verwalten des durch Parsing erhaltenen Wertes; Einfügen (180) des Wertes in einen aktualisierten Datenbaum (275); und Zurückholen des letzten bekannten Datenbaums (275) aus dem Speicher bei dem Wert-Parser (205), wenn ein differenziertes Parsing-Verfahren verlangt war; Vergleichen (290) des aktualisierten Datenbaums (275) mit dem letzten bekannten Datenbaum (275), wenn ein differenziertes Parsing-Verfahren verlangt war; Erzeugen (295) eines differenzierten Baumes (300), der die Änderungen von dem letzten bekannten Datenbaum (275) zu dem aktualisierten Datenbaum (275) enthält, wenn ein differenziertes Parsing-Verfahren verlangt war; und Zurückgeben (185) wenigstens eines von dem aktualisierten Datenbaum (275) oder dem differenzierten Baum (300) an den Parse-Anforderer (250).
  24. Computerprogramm nach Anspruch 23, wobei: das Einfügen des Wertes ferner das Einfügen des Wertes in einen aktualisierten Datenbaum (275) ohne eine eingebettete Protokollinformation umfaßt; und wobei das Erzeugen (295) eines differenzierten Baumes (300) ferner das Erzeugen eines differenzierten Baumes (300) ohne eine eingebettete Protokollinformation umfaßt.
  25. Verfahren (150, 200) nach Anspruch 23, wobei die Instruktionen XML-Instruktionen sind.
DE10358834A 2002-12-18 2003-12-16 Verfahren, Einrichtung und Computer-Produkt zum Analysieren von Binärdaten Withdrawn DE10358834A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/248,097 US7111286B2 (en) 2002-12-18 2002-12-18 Method, system and computer product for parsing binary data
US10/248097 2002-12-18

Publications (1)

Publication Number Publication Date
DE10358834A1 true DE10358834A1 (de) 2004-07-29

Family

ID=30770690

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10358834A Withdrawn DE10358834A1 (de) 2002-12-18 2003-12-16 Verfahren, Einrichtung und Computer-Produkt zum Analysieren von Binärdaten

Country Status (5)

Country Link
US (1) US7111286B2 (de)
JP (1) JP5268220B2 (de)
CN (1) CN100367702C (de)
DE (1) DE10358834A1 (de)
GB (1) GB2396933A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281224B2 (en) 2005-11-05 2016-03-08 Semikron Elektronik Gmbh & Co., Kg Apparatus for positioning power semiconductor modules and method for surface treatment thereof

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7409440B1 (en) 2002-12-12 2008-08-05 F5 Net Works, Inc. User defined data items
US7296263B1 (en) * 2002-12-12 2007-11-13 F5 Networks, Inc. Method and system for performing operations on data using XML streams
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7210137B1 (en) * 2003-05-13 2007-04-24 Microsoft Corporation Memory mapping and parsing application data
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7953769B1 (en) * 2004-01-21 2011-05-31 Computer Associates Think, Inc. XML data packaging system and method
US7970801B1 (en) * 2004-01-21 2011-06-28 Computer Associates Think, Inc. Data packaging system and method
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7949545B1 (en) 2004-05-03 2011-05-24 The Medical RecordBank, Inc. Method and apparatus for providing a centralized medical record system
US7539982B2 (en) * 2004-05-07 2009-05-26 International Business Machines Corporation XML based scripting language
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7108433B2 (en) * 2004-06-24 2006-09-19 Eastman Kodak Company Thermal processor employing varying roller spacing
US8000452B2 (en) * 2004-07-26 2011-08-16 General Motors Llc Method and system for predictive interactive voice recognition
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7516399B2 (en) * 2004-09-30 2009-04-07 Microsoft Corporation Structured-document path-language expression methods and systems
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8266188B2 (en) * 2005-03-08 2012-09-11 Ca, Inc. Method and system for extracting structural information from a data file
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8015236B2 (en) * 2005-10-25 2011-09-06 Waratek Pty. Ltd. Replication of objects having non-primitive fields, especially addresses
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7779343B2 (en) * 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US8745486B2 (en) * 2007-01-25 2014-06-03 Microsoft Corporation Streamable interactive rendering-independent page layout
US7949826B2 (en) * 2007-07-05 2011-05-24 International Business Machines Corporation Runtime machine supported method level caching
US8132162B2 (en) * 2007-07-05 2012-03-06 International Business Machines Corporation Runtime machine analysis of applications to select methods suitable for method level caching
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US8234626B2 (en) * 2008-06-04 2012-07-31 Dell Products L.P. Modular ASL component
US9191397B2 (en) * 2008-06-27 2015-11-17 Microsoft Technology Licensing, Llc Extension model for improved parsing and describing protocols
CN101620593B (zh) * 2008-06-30 2011-07-06 国际商业机器公司 解析电子表单的内容的方法及电子表单服务器
US9558164B1 (en) 2008-12-31 2017-01-31 F5 Networks, Inc. Methods and system for converting WSDL documents into XML schema
US8239842B2 (en) * 2009-02-24 2012-08-07 Microsoft Corporation Implicit line continuation
KR101667415B1 (ko) 2009-04-02 2016-10-18 삼성전자주식회사 휴대단말기의 인맥관리 서비스 장치 및 방법
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8806056B1 (en) 2009-11-20 2014-08-12 F5 Networks, Inc. Method for optimizing remote file saves in a failsafe way
US11140178B1 (en) 2009-11-23 2021-10-05 F5 Networks, Inc. Methods and system for client side analysis of responses for server purposes
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US10296653B2 (en) 2010-09-07 2019-05-21 F5 Networks, Inc. Systems and methods for accelerating web page loading
WO2012158854A1 (en) 2011-05-16 2012-11-22 F5 Networks, Inc. A method for load balancing of requests' processing of diameter servers
US8924974B1 (en) * 2011-06-08 2014-12-30 Workday, Inc. System for error checking of process definitions for batch processes
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
EP2853074B1 (de) 2012-04-27 2021-03-24 F5 Networks, Inc Verfahren zur optimierung von inhaltsdienstanfragen und vorrichtungen dafür
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10198583B2 (en) * 2013-11-26 2019-02-05 Sap Se Data field mapping and data anonymization
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US10476992B1 (en) 2015-07-06 2019-11-12 F5 Networks, Inc. Methods for providing MPTCP proxy options and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
CN111656453A (zh) * 2017-12-25 2020-09-11 皇家飞利浦有限公司 用于信息提取的层次实体识别和语义建模框架
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
CN111090417B (zh) * 2019-11-14 2023-11-28 杭州中恒电气股份有限公司 二进制文件解析方法、装置、设备及介质
CN111123888B (zh) * 2019-12-19 2022-03-15 江苏中天互联科技有限公司 一种工控协议测试方法、系统及电子设备和存储介质
CN112328001B (zh) * 2020-11-04 2023-11-21 西京学院 一种机械式二进制计算装置
KR102265937B1 (ko) * 2020-12-21 2021-06-17 주식회사 모비젠 시퀀스데이터의 분석 방법 및 그 장치
CN113760372B (zh) * 2021-11-10 2022-02-08 航天宏图信息技术股份有限公司 一种二进制数据包的解析方法及系统
CN115203132B (zh) * 2022-09-15 2022-12-06 上海波客实业有限公司 一种用于按需求快速提取op2文件架构的设计方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4787035A (en) * 1985-10-17 1988-11-22 Westinghouse Electric Corp. Meta-interpreter
US5680622A (en) * 1994-06-30 1997-10-21 Borland International, Inc. System and methods for quickly detecting shareability of symbol and type information in header files
US5671416A (en) * 1995-02-24 1997-09-23 Elson; David Apparatus and a method for searching and modifying source code of a computer program
US6085186A (en) * 1996-09-20 2000-07-04 Netbot, Inc. Method and system using information written in a wrapper description language to execute query on a network
JPH11249987A (ja) 1998-03-05 1999-09-17 Nec Corp メッセージ処理装置およびその方法ならびにメッセージ処理制御プログラムを格納した記憶媒体
US6389425B1 (en) 1998-07-09 2002-05-14 International Business Machines Corporation Embedded storage mechanism for structured data types
US6377957B1 (en) * 1998-12-29 2002-04-23 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured date
US6611844B1 (en) * 1999-02-19 2003-08-26 Sun Microsystems, Inc. Method and system for java program storing database object entries in an intermediate form between textual form and an object-oriented form
US6446256B1 (en) * 1999-06-30 2002-09-03 Microsoft Corporation Extension of parsable structures
US6353925B1 (en) * 1999-09-22 2002-03-05 Compaq Computer Corporation System and method for lexing and parsing program annotations
GB2385158A (en) 2002-02-07 2003-08-13 Guang Yang A system for inserting hierarchical data into an existing document

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281224B2 (en) 2005-11-05 2016-03-08 Semikron Elektronik Gmbh & Co., Kg Apparatus for positioning power semiconductor modules and method for surface treatment thereof

Also Published As

Publication number Publication date
CN1509007A (zh) 2004-06-30
CN100367702C (zh) 2008-02-06
JP5268220B2 (ja) 2013-08-21
GB0329147D0 (en) 2004-01-21
US20040123277A1 (en) 2004-06-24
JP2004206708A (ja) 2004-07-22
GB2396933A (en) 2004-07-07
US7111286B2 (en) 2006-09-19

Similar Documents

Publication Publication Date Title
DE10358834A1 (de) Verfahren, Einrichtung und Computer-Produkt zum Analysieren von Binärdaten
DE69530595T2 (de) System und verfahren für die x.500-datenbanknorm
EP1258812B1 (de) Virtuelle Datenbank heterogener Datenstrukturen
DE60025778T2 (de) Verfahren zum Speichern und Verwalten von Daten
DE10351317B4 (de) Zugriffsverfahren für ein Bildretrievalsystem in einem nach dem Client/Server-Prinzip organisierten Datenübertragungsnetz, sowie Bildretrievalsystem
EP0910829B1 (de) Datenbanksystem
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69636887T2 (de) System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen
DE69724356T2 (de) Verfahren und Apparat für die Darstellung von Information im Bezug auf jeden einzelnen von mehreren Hyperlinks
DE60224926T2 (de) Verfahren und Rechnersystem zur Behandlung von inkrementalen Daten in Klient-Server Kommunikation.
EP1088280B1 (de) Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten
EP1311989B1 (de) Verfahren zur automatischen recherche
DE19835647A1 (de) Computersystem und Verfahren zum Lesen von HID-Dateneinheiten
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE19617381A1 (de) Objektumwandlungsverfahren von einem flachen Objektraum in einen Klassen - strukturierten Raum
DE112007001196T5 (de) System zur adaptiven Abfrage eines Datenspeicherlagers
DE60107964T2 (de) Vorrichtung zur kodierung und dekodierung von strukturierten dokumenten
DE19959758A1 (de) Bestimmung der Art und der Genauigkeit von lokalen Variablen bei vorhandenen Subroutinen
DE60214926T2 (de) System zur Verwaltung von Fabrikinformationen
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE10031716A1 (de) Abonnement und Benachrichtigung bei Datenbanktechnik
DE102005028675A1 (de) Aktualisierungs- und Transformationssystem für strukturierte Daten
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
DE102005025401A1 (de) Datentransformationssystem
EP1030254B1 (de) Verfahren und System zum Verwalten von Dokumenten

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140701