-
Die
vorliegende Erfindung ist eine Non-Provisional Application der Provisional
Application mit der Nummer 60/604,168, eingereicht von Eric Martin
am 24. August 2004.
-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft allgemein Computerinformationssysteme.
Spezieller betrifft die vorliegende Erfindung ein umfassendes Abfrageverarbeitungs-
und Datenzugriffssystem, und eine Benutzerschnittstelle.
-
Hintergrund
der Erfindung
-
Bekannte
Computerinformationssysteme verwenden typischerweise eine fest programmierte
Logik, um das Sammeln von Daten und die Anzeige von Information
zu unterstützen.
Die bekannten Systeme sind typischerweise speziell für einen
Typ von Information, und oft für
eine Quelle der Information kodiert. Die spezielle Kodierung für einen
individuellen Typ von Information, die gesammelt wird, schränkt die
Entwicklung der Software und von Betriebsmodifikationen für Softwareausgabeschnittstellen
ein. Die Natur der speziellen Kodierung und das notwendige Testen
der speziellen Kodierung führen
oft zu langen Durchlaufzeiten für
einen Produktentwicklungszyklus. Die existierenden Systeme versagen
auch bei der Bereitstellung einer von Konsolidierung von Information
von mehreren Informationsquellen. Entsprechend besteht ein Bedürfnis für ein umfassendes
Abfrageverarbeitungs- und Datenzugriffssystem, und für eine Benutzerschnittstelle,
die diese und andere Nachteile der bekannten Systeme überwinden.
-
Zusammenfassung
der Erfindung
-
Ein
System zum Erfassen und zum Verarbeiten von Daten von mehreren verschiedenen
Quellen, enthält
eine erste Quelle, eine zweite Quelle und einen Abfrageprozessor.
Die erste Quelle vorbestimmter Konfigurationsinformation verknüpft eine
empfangene Abfrage für
Information in einem ersten Datenformat mit einem entsprechenden
speziell strukturierten Datenabfrageformat und mehreren unterschiedlichen
Datenquellen. Die zweite Quelle vorbestimmter Konfigurationsinformation
verknüpft
das speziell strukturierte Datenabfrageformat mit den mehreren unterschiedlichen
Datenquellen. Der Abfrageprozessor verwendet die erste und zweite
Quelle vorbestimmter Konfigurationsinformation, um die empfangene
Abfrage von Information in dem ersten Datenformat in mehrere Abfragen
in verschiedenen Datenformaten zur Kommunikation mit den mehreren
unterschiedlichen Datenquellen zu übersetzen.
-
Kurzbeschreibung
der Zeichnungen
-
1 verdeutlicht
ein System zum Erfassen und Verarbeiten von Daten von mehreren unterschiedlichen
Quellen gemäß den erfindungsgemäßen Prinzipien.
-
2 verdeutlicht
ein System, wie in 1 gezeigt, genauer, gemäß den erfindungsgemäßen Prinzipien.
-
3 zeigt
das System gemäß den 1 und 2 genauer
und ein entsprechendes Verfahren gemäß den erfindungsgemäßen Prinzipien.
-
4 zeigt
eine Class Responsibility Collaboration (CRC)-Karte für eine Datenquellenschnittstelle
gemäß den erfindungsgemäßen Prinzipien.
-
5 zeigt
eine Class Responsibility Collaboration (CRC)-Karte für eine Aktionsproviderschnittstelle gemäß den erfindungsgemäßen Prinzipien.
-
6 zeigt
eine Class Responsibility Collaboration (CRC)-Karte für ein Aktionsprovider
Plug-in gemäß den erfindungsgemäßen Prinzipien.
-
7 zeigt
eine Class Responsibility Collaboration (CRC)-Karte für einen
Daten-SOA-Adapter
gemäß den erfindungsgemäßen Prinzipien.
-
8 zeigt
eine Class Responsibility Collaboration (CRC)-Karte für einen
Ergebnissolidierer gemäß den erfindungsgemäßen Prinzipien.
-
9 zeigt
ein Benutzerschnittstellenfenster, das von einer generischen Anzeigenkonfiguration
erzeugt wird, gemäß den erfindungsgemäßen Prinzipien.
-
10 zeigt
ein Benutzerschnittstellenfenster gemäß 9, das in
eine andere generische Benutzerschnittstellenkonfiguration kombiniert
ist, um eine Anzeige höherer
Ebene bereitzustellen, gemäß den erfindungsgemäßen Prinzipien.
-
11 zeigt
eine Funktion des Benutzerschnittstellenfensters, wie in 10 gezeigt,
gemäß den erfindungsgemäßen Prinzipien.
-
12 zeigt
ein Verfahren, das von einem Ergebnissolidierer durchgeführt wird,
gemäß den erfindungsgemäßen Prinzipien.
-
13 zeigt
ein Verfahren zum Verarbeiten von Sub-Abfragen gemäß den erfindungsgemäßen Prinzipien.
-
14 zeigt
ein Browserfenster, das in die Benutzerschnittstellenfenster gemäß den 9 und 10 integriert
ist, gemäß den erfindungsgemäßen Prinzipien.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsbeispiele
-
1 zeigt
ein System 100 zum Erfassen und Verarbeiten von Daten von
mehreren unterschiedlichen Quellen. Das System 100 enthält einen
Client 102 und einen Server 104, die jeweils einem
Fachmann auf diesem Gebiet gut bekannt sind. Die Funktionen des
Clients 102 oder des Servers 104 enthalten ein
Bereitstellen von Benutzerschnittstelleninteraktionen 106 durch
eine Benutzerschnittstelle, ein Wiedergeben 108 durch einen
Abfragegenerator 150 (siehe 2 und 3)
und einen Anzeigengenerator 174 (siehe 2 und 3),
ein Datensammeln 110 durch einen Datensammler, und Service-orientierte
Architektur (SOA)-Adapter 112 (beispielsweise 1 bis n) über eine
Konfigurationsliste 153 von SOA-Adaptern (siehe 2 und 3).
Ein individueller SOA-Adapter 112 kommuniziert mit entsprechenden
Datenquellen 134 (beispielsweise 1 bis n) (in den 2 und 3 gezeigt).
Verschiedene Funktionen 106, 108, 110 und 112 kommunizieren
mit entsprechenden Funktionen über
einen Kommunikationsweg 114.
-
Das
System 100 gemäß 1 liefert
drei Beispiele 116, 118 und 120, wie
die Funktionen des Clients 102 oder des Servers 104 zwischen
dem Client 102 und dem Server 104 zugewiesen werden.
Jede Zuweisung von Funktionen zwischen dem Client 102 und
dem Server 104 kann durch das System 100 unterstützt werden. Ferner
kann das System 100 auch zusätzliche Funktionen, die nicht
gezeigt sind, unterstützen.
-
In
dem Beispiel 116 unterstützt der Client die Benutzerschnittstelleninteraktionen 106,
und der Server 104 unterstützt die Wiedergabe 108,
das Datensammeln 110 und die SOA 112. Wie durch
die variable Client-Server Folge oben in den Beispielen 116, 118 und 120 gezeigt,
ist das Beispiel 116 eine mehr Server-orientierte Zuweisung,
weil der Client 102 eine Funktion 106 unterstützt und
der Server 104 drei Funktionen 108, 110 und 112 unterstützt.
-
In
dem Beispiel 118 unterstützt der Client die Benutzerschnittstelleninteraktionen 106 und
die Wiedergabe 108, und der Server 104 unterstützt das
Datensammeln 110 und die SOA 112. Wie durch die
variable Client-Server Folge oben in den Beispielen 116, 118 und 120 gezeigt,
ist das Beispiel 118 eine symmetrische Client-Server orientierte
Zuweisung, da der Client 102 zwei Funktionen 106 und 102 unterstützt, und
der Server 104 zwei Funktionen 110 und 112 unterstützt.
-
In
dem Beispiel 120 unterstützt der Client die Benutzerschnittstelleninteraktionen 106,
die Wiedergabe 102 und das Datensammeln 110, und
der Server 104 unterstützt
SOA 112. Wie durch die variable Client-Server Folge oben
in den Beispielen 116, 118 und 120 gezeigt,
ist das Beispiel 120 eine mehr Client-orientierte Zuweisung,
da der Client 102 drei Funktionen 106, 108 und 112 unterstützt und
der Server 104 eine Funktion 112 unterstützt.
-
Das
System 100 kann von irgendeinem Typ von Unternehmen, Organisation
oder Abteilung verwendet werden, beispielsweise von Anbietern von
Gesundheitspflegeprodukten und/oder von Dienstleistungen, die verantwortlich
sind für
das Unterstützen
der Gesundheit und/oder des Wohlbefindens von Leuten in ihrer Obhut.
Das System 100 repräsentiert
beispielsweise ein Krankenhausinformationssystem. Ein Gesundheitspflegeanbietern
bietet Dienstleistungen an, die das mentale, emotionale oder physische
Wohlbefinden eines Patienten betreffen. Beispiele von Gesundheitspflegeanbietern
sind ein Krankenhaus, Pflegeheim, eine lebensunterstützende Einrichtung,
eine Heimpflegeeinrichtung, eine Hospizeinrichtung, eine Notaufnahmeeinrichtung,
eine Gesundheitspflegeklinik, eine physikalische Therapieklinik,
eine chiropraktische Klinik, ein medizinischer Anbieter, eine Pharmazie
und eine Zahnarztpraxis. Wenn eine Person gepflegt wird, diagnostiziert
ein Gesundheitspflegeanbieter einen Zustand oder eine Krankheit,
und empfiehlt eine Behandlung, um den Zustand zu heilen, falls eine
derartige Behandlung existiert oder stellt präventive Gesundheitspflegedienste
bereit. Beispiele von Leuten, die von einem Gesundheitspflegeanbieter
gepflegt werden, sind beispielsweise ein Patient, ein Bewohner,
ein Klient und ein Individuum.
-
Das
System 100 kann fest und/oder mobil (also transportabel)
sein, und kann in verschiedenen Formen implementiert werden, enthaltend,
jedoch nicht einschränkend,
eines oder mehreres von: Einen Personalcomputer (PC), einen Desktopcomputer,
einen Laptopcomputer, eine Arbeitsstation, einen Minicomputer, ein
Mainframe, einen Supercomputer, ein Netzwerkbasiertes Gerät, einen
PDA (Personal Digital Assistent), eine Smart Card, ein Mobiltelefon,
einen Pager und eine Armbanduhr. Das System 100 und/oder
Elemente, die darin enthalten sind, können auch in einer zentralen
oder dezentralen Konfiguration implementiert werden.
-
Der
Kommunikationsweg 114 (auch als Netz, Bus, Link, Verbindung,
Kanal, etc. bezeichnet) stellt irgendeinen Typ von Protokoll oder
eines Datenformats dar, enthaltend, jedoch nicht einschränkend, eines
oder mehrere der folgenden: Ein Internetprotokoll (IP), ein Transmission
Control Protokoll Internetprotokoll (TCPIP), ein Hyper Text Transmission
Protokoll (HTTP), ein RS232-Protokoll, ein Ethernetprotokoll, ein
Medical Interface Bus (MIB) kompatibles Protokoll, ein Local Area
Network (LAN) Protokoll, ein Wide Area Network (WAN) Protokoll,
ein Campus Area Network (CAN) Protokoll, ein Metropolitan Area Network
(MAN) Protokoll, ein Home Area Network (HAN) Protokoll, ein Institute
Of Electrical And Electronic Engineers (IEEE) Bus kompatibles Protokoll,
ein Digital and Imaging Communications (DICOM) Protokoll und ein
Health Level Seven (HL7) Protokoll.
-
Das
System 100 und/oder Elemente, die darin enthalten sind,
können
in Hardware, Software oder Kombinationen aus beidem implementiert
werden, und können
einen oder mehrere Prozessoren enthalten. Ein Prozessor ist eine
Vorrichtung und/oder ein Satz von maschinenlesbaren Anweisungen
zur Durchführung
einer Aufgabe. Der Prozessor enthält irgendeine Kombination aus
Hardware, Firmware und/oder Software. Der Prozessor agiert auf gespeicherter
und/oder empfangener Information durch Verarbeiten, Manipulieren,
Analysieren, Modifizieren, Umwandeln oder Übertragen von Information zur
Verwendung durch eine ausführbare
Anwendung oder Prozedur oder ein Informationsgerät und/oder durch Weiterleiten
der Information an eine Ausgabevorrichtung. Beispielsweise kann
der Prozessor die Fähigkeiten
einer Steuerung oder eines Mikroprozessors verwenden oder enthalten.
-
Die
ausführbare
Anwendung, die typischerweise in einer Speichervorrichtung gespeichert
ist, enthält Code
oder eine maschinenlesbare Anweisung zum Implementieren vorbestimmter
Funktionen, enthaltend beispielsweise die eines Betriebssystems,
eines Softwareanwendungsprogramms, eines Gesundheitspflegeinformationssystems
oder eines anderen Informationsverarbeitungssystems, beispielsweise
in Antwort auf einen Benutzerbefehl oder eine Eingabe. Eine ausführbare Prozedur
ist ein Codesegment (also eine maschinenlesbare Anweisung), Sub-Routine
oder ein anderer eindeutiger Codeabschnitt oder Bereich einer ausführbaren
Anwendung zur Durchführung
von einem oder von mehreren bestimmten Prozessen und kann ein Durchführen von
Operationen auf empfangene Eingabeparameter enthalten (oder in Antwort
auf empfangene Eingabeparameter) und resultierende Ausgabeparameter
bereitstellen. Eine aufrufende Prozedur ist eine Prozedur zur Ermöglichung
der Ausführung
einer anderen Prozedur in Antwort auf einen empfangenen Befehl oder eine
Anweisung. Ein Objekt enthält
eine Gruppierung von Daten und/oder ausführbare Anweisungen oder eine ausführbare Prozedur.
-
Die
Benutzerschnittstelle 106 erlaubt einen bidirektionalen
Austausch von Daten und enthält
typischerweise eine Dateneingabevorrichtung (nicht gezeigt) und
eine Datenausgabevorrichtung (nicht gezeigt).
-
Die
Dateneingabevorrichtung liefert typischerweise Daten an einen Prozessor
in Antwort auf entweder manuell von einem Benutzer oder automatisch
von einer elektronischen Vorrichtung, beispielsweise einem Computer
empfangene Eingabedaten. Für
die manuelle Eingabe ist die Dateneingabevorrichtung eine Tastatur oder
eine Maus, kann jedoch auch ein Touchscreen, oder beispielsweise
ein Mikrofon mit einer Spracherkennungsanwendung sein. Für die automatische
Eingabe ist die Dateneingabevorrichtung ein Datenmodem.
-
Die
Datenausgabevorrichtung liefert typischerweise Daten von einem Prozessor
zur Verwendung durch einen Benutzer oder eine elektronische Vorrichtung,
beispielsweise einen Computer. Zur Ausgabe an einen Benutzer ist
die Datenausgabevorrichtung eine Anzeige, die Anzeigenbilder erzeugt
in Antwort auf das Empfangen der Anzeigensignale von dem Prozessor,
kann jedoch auch ein Lautsprecher oder beispielsweise ein Drucker
sein. Zur elektronischen Ausgabe an eine elektronische Vorrichtung
ist die Datenausgabevorrichtung ein Datenmodem.
-
Das
System 100 liefert signifikante Vorteile gegenüber dem
fest kodierten Ansatz, in dem erlaubt wird, dass Beschreibungsdaten
durch die Konfiguration gesammelt werden. Im Allgemeinen liest das
System 100 von deskriptiven Konfigurationsdaten: Eine Beschreibung
verfügbarer
Datenquellen, die „Ansichtstypen", die eine individuelle
Datenquelle unterstützt,
und eine Beschreibung eines individuellen Datenansichtstyps. Das System 100 ruft
dann eine individuelle Datenquelle für einen Benutzer-ausgewählten Ansichtstyp
ab, holt die Information, die von einer individuellen abgefragten
Datenquelle 134 für
den Ansichtstyp zurückgegeben
wird, konsolidiert die Information, die von mehreren Datenquellen 134 gesammelt
wurde, und zeigt die Information in einem Format an, das durch die
Anzeigenkonfiguration gefordert ist. Ein Benutzer kann dann durch
eine externe Anwendung einen Vorgang für die ausgewählte Information
starten.
-
Das
System 100 liefert vorteilhafterweise die folgenden Merkmale:
- 1. Eine Beschreibung der Datenansichtstypen
zum Sammeln und zur Anzeige erlaubt die Erweiterung des Systems
durch eine Konfiguration ohne irgendeine Neukodierung oder Neukompilierung
von Programmen, die in traditionellen Programmiersprachen geschrieben
sind.
- 2. Die deskriptive Konfiguration enthält Information, die eine automatische
Konsolidierung von Daten von mehreren Datenquellen erlaubt.
- 3. Konfigurationsdaten erlauben dem System 100 auch
Endbenutzeranzeigen von Datenansichtstypen zu erzeugen und Vorgänge durch
externe Anwendungen mit dem Inhalt von Information von dem angezeigten Anzeigetyp
zu triggern, wie durch den Benutzer ausgewählt.
- 4. Die Konfiguration des Datenansichtstyps dient zur Beschreibung
von Daten, die eine interne hierarchische Struktur aufweisen. Die
Konfigurationsinformation erlaubt dem System 100 eine individuelle
Unter-Ebene des hierarchischen Systems unabhängig abzufragen, so dass große Sammlungen
von Information in einer vernünftigen
Art und Weise mit Sub-Abfragen gescannt werden können, die für den ausgewählten Bereich
des Datenbaums gestartet worden sind, wenn ein Benutzer inkrementell
durch eine Datenbaumstruktur navigiert.
-
2 zeigt
das System 100 gemäß 1 genauer.
Zusätzlich
zur 1 enthalten andere Komponenten des Systems 100 in 2 einen
Web Viewer 121, externe Anwendungen 122, einen
Server 123, SOA-Adapter 124 zwischen der Benutzerschnittstelle 106 und
den Anwendungen 122, Aktionsprovider (AP)-Schnittstellen 126,
Benutzerschnittstellenkomponenten 128 und eine andere Browserbenutzerschnittstelle
und Anwendungslogik 130 in der Benutzerschnittstelle 106,
eine Datenquellenschnittstelle 132 und Datenquellen 134.
-
Das
System 100 gemäß 2 ist
beispielsweise in einer Web-basierten standalone Konfiguration entwickelt.
Das System 100 gemäß 2 enthält SOA-Adapter 124,
die Aktionsschnittstellen 126 und Benutzerschnittstellenkomponenten 128 in
der Benutzerschnittstelle 106, einen Datenkollektor 110,
die Datenquellenschnittstelle 132 und die SOA-Adapter 112.
Der Web Viewer 121, die externen Anwendungen 122,
der Server 123, die andere Browserbenutzerschnittstelle
und Anwendungslogik 130, und die Datenquellen 134 sind
mit dem System 100 gekoppelt.
-
Die
Datenquellen 134 können
von irgendeinem Typ sein, enthaltend beispielsweise Compact Disc (CD),
Digital Video Disc (DVD), ein Anwendungsserver, eine Datenbank,
einen generischen DICOM-Knoten und ein digitaler Speicher (DM).
Die Datenquellen 134 können
irgendeinen Typ von Daten in irgendeinem Format speichern.
-
3 verdeutlicht
das System 100, wie in den 1 und 2 gezeigt,
genauer, zusammen mit einem entsprechenden Verfahren 138.
Zusätzlich
zu den 1 und 2 enthält das System 100 in 3 einen
Aktionsprovider (AP)-Plug-in und das Verfahren 138.
-
Ein
Benutzer loggt sich ein und hat eine Benutzersitzung 140,
die eine Sitzungsidentifikation (ID) 142 liefert, um das
Verfahren 138 zu starten 144. Zur Implementierung
des Verfahrens 138 kann das Verfahren 138 eine
ausführbare
Anwendung sein, die in einem Speichermedium (beispielsweise einer
Speichervorrichtung) eingebettet ist.
-
In
Schritt 146 wählt
ein Benutzer eine Benutzerschnittstellenkonfiguration (also ein
Layout) von der Benutzerschnittstelle 128. Alternativ verwendet
die Benutzerschnittstelle 128 eine standardmäßige Benutzerschnittstellenkonfiguration,
die auf einer Benutzerregel oder persönlichen Voreinstellung basiert.
-
In
Schritt 148 wählt
das System 100 oder der Benutzer einen Kriteriensatz über eine
Abfragekonfigurationsdatei 152, um Information von einer
oder von mehreren Datenquellen 134 abzufragen, und die
Abfrage wird an einen Meta-Abfragegenerator 150 gesendet.
Der Meta-Abfragegenerator 150 verarbeitet
die Abfrage und erzeugt eine Meta-Datenabfrage 154, anders
bezeichnet als ein bestimmtes strukturiertes Datenabfrageformat,
welches ein erstes Datenformat aufweist. Die Abfragekonfigurationsdatei 152 repräsentiert
eine erste Quelle von vorbestimmter Konfigurationsinformation, um
eine empfangene Abfrage 154 von Information in einem ersten
Datenformat mit einem entsprechenden bestimmten strukturierten Datenabfrageformat
und mehreren unterschiedlichen Datenquellen 134 zu verknüpfen.
-
Bei
der Initialisierung und wenn entweder durch die Benutzerschnittstelle 128 oder
eine externe Anwendung 122 oder 123 angefordert,
aktualisiert der Datenkollektorservice 110 eine Konfigurationsliste 153 von Information,
die verfügbare
SOA-Adapter 112 betrifft. Die Konfigurationsliste 153 von
verfügbaren
SOA-Adaptern 112 repräsentiert
eine zweite Quelle von vorbestimmter Konfigurationsinformation,
um das bestimmte strukturierte Datenabfrageformat mit mehreren unterschiedlichen
Datenquellen zu verknüpfen.
Die Konfigurationsliste 153 von verfügbaren SOA-Adaptern 112 enthält auch
entsprechende Übertragungsprotokolle
(beispielsweise Bezugszeichen 114), die verwendet werden,
um mehrere unterschiedliche Datenquellen 134 abzufragen.
Die erste 152 und die zweite 153 Quelle von vorbestimmter
Konfigurationsinformation können
gleiche oder unterschiedliche Quellen sein.
-
In
Schritt 156 übersetzt
ein Abfrageprozessor die Meta-Abfrage 154, die ein erstes
Datenformat aufweist, in mehrere Abfragen 158, die unterschiedliche
Datenformate haben, in Übereinstimmung
mit der Datenquellenschnittstelle 132. Spezieller verwendet
der Abfrageprozessor die erste 152 und die zweite 153 Quelle von
vorbestimmter Konfigurationsinformation zur Übersetzung der empfangenen
Abfrage 154 von Information in dem ersten Datenformat,
für mehrere
Abfragen 158 in unterschiedlichen Datenformaten zur Übertragung
an mehrere unterschiedliche Datenquellen 134, die die entsprechenden Übertragungsprotokolle
verwenden.
-
In
Schritt 160 validiert das System 100 die mehreren
Abfragen 158, die unterschiedliche Datenformate haben,
um CN U/I sicherzustellen, die eine semantisch korrekte Abfrage
bereitstellt. Das System 100 sendet die mehreren Abfragen 158,
die unterschiedliche Datenformate haben, zusammen mit der Benutzersitzungs-ID 142 an
die verschiedenen Datenquellen 134, über die Datenquellenschnittstelle 132,
und manchmal über
die SOA-Adapter 112, für
die abgefragte Information.
-
Die
Datenquellenschnittstelle 132 definiert vorteilhafterweise
eine Standardprozedur (also ein Protokoll) für die Datenquellenschnittstelle 132 und
die SOA-Adapter 112, um den Datenquellen 134 zu
erlauben, mit dem Datenkollektorservice 110 zu kommunizieren.
-
Das
bestimmte strukturierte Datenabfrageformat 154 enthält zugehörige Hilfsdaten
zur Verwendung in der Verarbeitung von Datenelementen, in Abfrageantwortnachrichten 164,
die in Antwort auf die mehreren Abfragen 158 empfangen
werden, die an die mehreren unterschiedlichen Datenquellen 134 durch
ein oder durch mehrere der folgenden Verfahren gesendet werden:
(a) Eliminieren von redundanten wiederholten Datenelementen durch
den Ergebniskonsolidierer 168 (siehe 8);
und (b) Substituieren eines ersten empfangenen Datenelements für ein zweites
empfangenes Datenelement durch den Abfrageprozessor 156.
-
Das
System 100 verwendet die Hilfsdaten, um die Datenelemente
für derartige
Zwecke zu verarbeiten und zu sortieren, beispielsweise für das Verarbeiten
von Sub-Abfragen (siehe 13), und
das Formatieren empfangener Information zur Anzeige. Beispiele von
Hilfsdaten sind in Beispielen am Ende dieser Beschreibung angegeben.
-
Das
speziell strukturierte Datenabfrageformat 154, welches
die Hilfsdaten enthält,
enthält
Meta-Daten des speziell strukturierten Datenabfrageformats 154.
-
Der
Abfrageprozessor 156 ersetzt das erste empfangene Datenelement
durch das zweite empfangene Datenelement in Antwort auf Information,
die eine vorbestimmte Priorität
der mehreren unterschiedlichen Datenquellen 134 angibt.
-
Das
speziell strukturierte Datenabfrageformat 154 enthält zugehörige Hilfsdaten
zur Verwendung bei dem Sortieren von Datenelementen, in Abfrageantwortnachrichten 164,
die in Antwort auf die mehreren Abfragen 158 empfangen
werden, die an die mehreren unterschiedlichen Datenquellen 134 übertragen
worden sind. Das System 100 sortiert (a) in Antwort auf
einen Benutzerbefehl, der über
ein angezeigtes Benutzerschnittstellenbild empfangen wird, und/oder
(b) automatisch basierend auf vorbestimmter Konfigurationsinformation.
-
Das
speziell strukturierte Datenabfrageformat 154 enthält zugehörige Hilfsdaten
zur Verwendung durch den Abfrageprozessor 156 beim Teilen
der empfangenen Abfrage in einer Mehrzahl von Sub-Abfragen (siehe 13)
zur Kommunikation mit den mehreren unterschiedlichen Datenquellen 134.
-
Der
Abfrageprozessor 156 übermittelt
auch in Antwort auf das speziell strukturierte Datenabfrageformat 154,
das die Hilfsdaten enthält,
einen ersten Satz von ausgewählten
Sub-Abfragen der mehreren Sub-Abfragen (siehe 13)
an eine erste Quelle von den mehreren unterschiedlichen Datenquellen 134,
und einen unterschiedlichen zweiten Satz von ausgewählten Sub-Abfragen (siehe 13)
der mehreren Sub-Quellen an eine zweite Quelle der mehreren unterschiedlichen
Datenquellen 134.
-
Der
Abfrageprozessor 156 übermittelt
auch in Antwort auf das speziell strukturierte Datenabfrageformat 154,
welches die Hilfsdaten enthält,
einen gemeinsamen Satz von ausgewählten Sub-Abfragen (siehe 13)
der mehreren Sub-Abfragen an die mehreren unterschiedlichen Datenquellen 134.
-
Das
speziell strukturierte Datenabfrageformat 154 enthält zugehörige Hilfsdaten
zur Verwendung beim Formatieren für die Anzeige 176,
Datenelemente, die in Abfrageantwortnachrichten 164 empfangen
worden sind, die in Antwort auf die mehreren Abfragen 158 empfangen
worden sind, die an die mehreren unterschiedlichen Datenquellen 134 übermittelt
worden sind.
-
Der
Abfrageprozessor 156 startet die Übertragung der mehreren Abfragen 158 in
unterschiedlichen Datenformaten zusammen mit der Sitzungsinformation 142.
Die Sitzungsinformation 142 identifiziert einen Benutzer,
der die empfangene Abfrage gestartet hat, und wird von einer Datenquelle 134 verwendet
bei der Bestimmung, ob der Benutzer autorisiert ist, abgefragte
Information zu empfangen.
-
Der
Abfrageprozessor 156 parsed und prüft die mehreren Abfragen 158 in
den unterschiedlichen Datenformaten, um zu bestimmen, ob individuelle
Abfragen kompatibel sind mit entsprechenden Zieldatenquellen 134.
Der Abfrageprozessor 156 macht diese Bestimmung beispielsweise
durch Bestimmen, ob die individuellen Abfragen semantisch korrekt
sind.
-
Der
Abfrageprozessor 156 übersetzt
die empfangene Abfrage 154 nach Information in dem ersten
Datenformat in die Mehrzahl von Abfragen 158 in unterschiedlichen
Datenformaten, indem die empfangene Abfrage 154 in ein
unterschiedliches Datenformat übersetzt
wird, welches eine Syntax aufweist, die kompatibel ist zu einer
Kommunikationsschnittstelle einer Datenquelle 134.
-
In
Schritt 164 empfängt
das System 100 asynchron Daten über die Datenquellen 143,
die Datenquellenschnittstelle 132 und die SOA-Adapter 112,
und übermittelt
empfangene Daten zur weiteren Verarbeitung an einen Datenprozessor 170.
-
In
Schritt 166 validiert der Datenprozessor 170 die
empfangenen Daten, um validierte Abfrageantwortdaten zu erzeugen.
Das Format der empfangenen Daten kann beispielsweise in XML (Extended
Hypertext Markup Language), SGML (Standard Generalized Markup Language)
oder HTML (Hypertext Markup Language) sein.
-
In
Schritt 168 konsolidiert der Datenprozessor 170 die
validierten Abfrageantwortdaten, indem ein Ergebniskonsolidierer
verwendet wird. Spezieller empfängt
der Datenprozessor 170 die Abfrageantwortnachrichten 164 in
Antwort auf die mehreren Abfragen, die an die mehreren unterschiedlichen
Datenquellen 134 übermittelt
wurden, und vergleicht die Daten in den Abfrageantwortnachrichten 164 in
einem gewünschten
Format in Antwort auf die empfangene Abfrage und/oder das speziell
strukturierte Datenabfrageformat.
-
Die
Abfrageantwortdaten werden konsolidiert basierend auf der Ansichtstypinformation
und die Konsolidierungsabfrage, die durch den Benutzer gestartet
wurde. Eine XML Schemadefinitions (XSD)-Datei eines individuellen
Ansichtstyps definiert Ebenen, bei denen die Daten konsolidiert
werden können,
und welche zu konsolidieren sind (siehe 12 für eine genauere
Beschreibung). Der Benutzer kann bis zu einer bestimmten Ebene von
Daten, die zu konsolidieren sind, abfragen, oder keine Konsolidierung
der Daten spezifizieren. Alternativ kann die Konfiguration des Konsolidierens
begrenzt sein auf ein Ein- und Ausschalten der Konsolidierung.
-
In
Schritt 172 gibt das System 100 asynchron einen
individuellen Ergebnissatz, wenn er konsolidiert ist, an die Benutzerschnittstelle 128 zur
Anzeige zurück.
-
In
Schritt 174 konfiguriert die Benutzerschnittstelle 128 die
Daten in ein bestimmtes konfiguriertes Ausgabeformat, wie durch
eine Anzeigeninformationsdatei 180 definiert, zur Anzeige
auf einem Benutzerschnittstellenschirm (also Fenster). Basierend
auf der Anzeigeninformationsdatei 180 konvertiert das System 100 die Abfrageantwortdaten
in eine leicht verständliche
Benutzerschnittstellenpräsentation
zur Interaktion mit dem Benutzer, indem die Anzeigeninformationsdatei 180 verwendet
wird.
-
In
Schritt 176 zeigt die Benutzerschnittstelle 128 die
Information dem Benutzer an.
-
In
Schritt 178 stellt die Benutzerschnittstelle 128 dem
System 100 oder Benutzer verschiedene verfügbare Aktionen
bereit, über
die in Schritt 176 angezeigte Information.
-
In
Schritt 182 antwortet die Benutzerschnittstelle 128 auf
eine durch den Benutzer oder durch das System 100 ausgewählte Aktion.
-
In
Schritt 184 liefert die Benutzerschnittstelle 128 die
ausgewählte
Information zusammen mit der Sitzungs-ID 142 an die Anwendung 122 und/oder
den Server 123, über
die AP-Schnittstelle 126 und
das entsprechende AP-Plugin 136. Als eine Alternative zu
der AP-Schnittstelle 126 ist
ein Benutzer in der Lage, die Benutzerschnittstelle 128 für das augenblicklich
ausgewählte
Element und Information innerhalb dieses Elements abzufragen. Die
Information innerhalb des Elements erlaubt der Anwendung 122 die
Durchführung
spezieller Aktionen, beispielsweise eine Kommunikation mit dem SOA-Adapter 124.
Der SOA-Adapter (Mediator) 124 führt eine Vermittlerfunktion
durch.
-
Das
System 100 hat eine offene Architektur, die einfach zu
erweitern ist. Der Datenservicekollektor 110 unterstützt einen
Satz von vordefinierten Ansichtstypen, enthaltend Hauptansichtstypen,
die am häufigsten verwendet
werden.
-
Alternativ
verwendet das System dynamische Ansichtstypen, so dass die Benutzer
einen kundenspezifischen Ansichtstyp erzeugen können. Das System 100 ermöglicht einem
Benutzer einen Ansichtstyp zu definieren. Nachdem ein Benutzer einen
neuen Ansichtstyp definiert hat, detektiert der Datenservicekollektor 110 dynamisch
Information über
den neuen Ansichtstyp, und beginnt damit diesen zu benutzen, ohne
irgendeine Modifikation des Datenservicekollektors 110.
-
Das
System 100 ermöglicht
einem Benutzer einen individuellen Ansichtstyp durch einen Satz
von beispielsweise XML Schemadefinitions(XSD) Dateien zu definieren.
Wenn XML als Datenabfrageformat ausgewählt ist, und die XML Schemadefinitions(XSD)
Sprache die Definition der Struktur und Datentypen von XML-Dokumenten
erlaubt, wird das XML-Schema verwendet, um einen individuellen Ansichtstyp
zu definieren, indem ein Masterkriteriensatz eines individuellen
Ansichtstyps und Masterabfrageantwortdaten-Abfrageantwortdaten spezifiziert werden.
In ähnlicher
Weise, wenn XML das Datenausgabeformat ist, verwendet das System 100 die
XSD-Sprache, so dass der gleiche Satz von XSD-Dateien sowohl auf
der Eingabeabfrage- als auch auf der Ausgabedatenseite verwendet
wird.
-
Das
System 100 erlaubt XML-Schemen, die einen Ansichtstyp definieren,
auf den von dem Datenkollektorservice 110 und irgendeinem
SOA-Adapter 112, der diesen Ansichtstyp unterstützt, zugegriffen
werden kann. In Schritt 166 muss der SOA-Adapter 112 die
eingegebene XML-Abfrage gegenüber
diesen XML-Schemen validieren, bevor tatsächlich die Abfrage ausgeführt wird,
und der Datenkollektorservice 110 muss die XML-Datenausgabe
gegenüber
den gleichen XML-Schemen validieren, bevor einer Weiterverarbeitung
durch den Ergebniskonsolidierer durch die Datenausgabe.
-
Damit
die Ansichtstypdefinitionen sich eine gemeinsame Struktur teilen
können,
um den Vorteil der erweiterbaren Natur von XSD zu genießen, gehen
die ansichtstypspezifischen XML-Schemen
von einem gemeinsamen XML-Basisschema aus. Beispielsweise beschreibt
das System 100 einen individuellen Ansichtstyp durch einen
Satz von drei oder vier XSD-Dateien. Ein Masterkriteriensatz besteht
aus zwei Teilen: Bevorzugte Kriterien und optionale Kriterien, wie
durch die folgenden Beispiele bereitgestellt.
- 1)
(bevorzugt) Basis-XSD, die den Ansichtstypen gemeinsam ist.
- 2) (bevorzugt) Erweiterungs-XSD, die die bevorzugten Kriterien
eines speziellen Ansichtstyps definiert.
- 3) (optional) Erweiterungs-XSD, die die optionalen Kriterien
eines speziellen Ansichtstyps definiert
- 4) (bevorzugt) Erweiterungs-XSD- die die Masterabfrageantwortdaten
t eines speziellen Ansichtstyps definiert.
-
Beispielsweise
kann ein vereinfachter Patientenlistenansichtstyp durch den folgenden
Satz von XSD-Dateien definiert werden:
- 1) CINBaseViewType.xsd
(Basis-XSD)
- 2) CINPatientListViewType-PreferredCriteria.xsd (bevorzugtes
Kriterium XSD)
- 3) CINPatientListViewType-ReturnFields.xsd (Masterabfrageantwortdaten
XSD)
-
Das
System 100 unterstützt
einen dynamischen Ansichtstyp, indem der Benutzerschnittstelle 128 eine dynamische
Benutzerschnittstellenerzeugungsfähigkeit gegeben wird, und durch
Standardisieren der SOA-Adapter 112.
-
Wenn
ein neuer Anzeigentyp dem System 100 hinzugefügt wird,
werden Entwicklungs- und Setupschritte durchgeführt. Da ein neuer oder existierender
SOA-Adapter 112 den neuen Ansichtstyp unterstützen kann,
muss der neue Adapter 112 dem System 100 hinzugefügt werden,
und existierende Adapter 112, die den neuen Ansichtstyp
unterstützen,
müssen
aktualisiert werden. Ferner muss der XML-Schemasatz, der den neuen
Ansichtstyp definiert, den Konfigurationssystemen von der Benutzerschnittstelle 128 und
dem entsprechenden SOA-Adapter(n) 112 hinzugefügt werden.
Ein Herunterfahren und ein Neustart der Benutzerschnittstelle 128 sollte
zusätzlich
für die
neuen Ansichtstypen nicht notwendig sein.
-
Das
System 100 verwendet die Anzeigeninformationsdatei 180,
um die Benutzerschnittstellenkonfiguration eines neuen Ansichtstyps
aufzubauen. Die Verwendung des neuen Ansichtstyps durch die Benutzerschnittstelle
enthält
ein Erzeugen einer neuen Abfragekonfiguration und Anzeigeninformation,
und ein Weitergeben der Information an die Benutzerschnittstelle 128.
-
Das
System 100 verwendet auch standardisierte SOA-Adapter 112.
Das System 100 verwendet SOA-Adapter 112, beispielsweise
als Webdienste (beispielsweise XML), die mit einer oder mit mehreren
der Datenquellen 134 kommunizieren. Die Webdienste, die
von dem SOA-Adapter 112 bereitgestellt werden, liefern
Webverfahren in Übereinstimmung
mit der Datenquellenschnittstelle 132, wodurch dem Datenkollektorservice 112 erlaubt
wird, unterstützte
Ansichtstypen zu holen und eine XML-Abfrage auszuführen. Ein
zusätzliches
Webverfahren erlaubt dem Datenkollektorservice 110 die
Datenquelle 134 geeignet zu identifizieren, und dem Benutzer
die Datenquellen 134, die abgefragt werden, mitzuteilen.
Drei Webverfahren enthalten drei Verfahren, die folgende Eigenschaften
haben.
- 1. [WebVerfahren(Beschreibung="Hole ein Array von
ViewType-Objekten, die durch diesen SOA-Service unterstützt werden.
Ein individuelles ViewType-Objekt enthält den Namen und die Versionsinformation
des Ansichtstyps")]
publicViewType[]GetSupportingViewTypes()
- 2. [Webverfahren(Beschreibung="Ausführen
einer XML-Abfrage und Ausgeben des Abfrageergebnisses in einem XML-String.")] public System.Xml.XmlDocument
ExecuteQuery(stringviewTypeName, stringview-Typeversion, stringxmlQuery, int maxReturnRows)
- 3. [WebVerfahren(Beschreibung= „Gebe den Namen, die Beschreibung
und die IP-Adresse
der Datenquelle zurück,
die mit dem SOA-Adapter verbunden ist. ")] publicSystem.Xml.XmlDocument GetDataSource()
-
Der
ExecuteQuery-Prozess, der die obigen Eigenschaften hat, nimmt die
Ansichtstypinformation und einen eingegebenen XML-Abfragestring 158,
validiert 160 den XML-Abfragestring gegenüber den
XML-Schemen, die von diesem Ansichtstyp erforderlich sind, ruft
die Datenquelle 134 ab 162, die die Kriterien
und die Abfrageantwortdaten gegeben hat, und packt die Ergebnisdaten
in einen XML-Ergebnisstring 164 zur Verarbeitung 170 und
Anzeige 174 und 176. Wenn irgendwelche Fehler
innerhalb des Datenkollektorservice 110 aufgetreten sind,
hat das XML-Ergebnisstring 164 einen Root-Knoten von <Fehler>, und die Information
bezüglich
des Fehlers erscheint in dem Knoten.
-
Die 4 – 8 verdeutlichen
verschiedene CRC (Class Responsibility Collaboration)-Karten für verschiedene
Klassen (also Elemente) des Systems 100. Die CRC-Karten
sind Brainstorming-Werkzeuge, die beim Design der objektorientierten
Software verwendet werden. Sie werden typischerweise verwendet,
wenn zuerst bestimmt wird, welche Klassen benötigt werden, und wie sie interagieren.
Die CRC-Karten werden normalerweise von Indexkarten erzeugt, auf
denen geschrieben ist: Der Klassenname, die Verantwortlichkeiten der
Klasse, und die Namen anderer Klassen, mit der die Klasse zusammenarbeitet,
um ihre Verantwortlichkeiten zu erfüllen.
-
Eine
Klasse repräsentiert
eine Sammlung von ähnlichen
Objekten. Ein Objekt ist eine Person, ein Ort, ein Ding, ein Ereignis
oder ein Konzept, das für
das System relevant ist. Eine Verantwortlichkeit ist irgendetwas,
das eine Klasse kennt oder tut. Manchmal hat eine Klasse eine Verantwortlichkeit
etwas zu erfüllen,
hat jedoch nicht genug Information, um dies zu tun, und folglich
muss sie mit anderen Klassen zusammenarbeiten.
-
Die
Verwendung einer kleinen Karte hält
die Komplexität
des Designs bei einem Minimum. Es konzentriert die Aufmerksamkeit
auf das Wesentliche der Klasse und verhindert ein Ablenken der Aufmerksamkeit
auf Details, wenn derartige Details möglicherweise kontraproduktiv
sind. Es verhindert auch, dass eine Klasse zuviel Verantwortlichkeiten
hat.
-
4 verdeutlicht
eine CRC-Karte für
eine Datenquellenschnittstelle 132. 5 verdeutlicht
eine CRC-Karte für
eine Aktionsproviderschnittstelle 126. 6 verdeutlicht
eine CRC-Karte für
ein Aktionsprovider-Plugin 136. 7 verdeutlicht
eine CRC-Karte für
SOA-Adapter 112. 8 verdeutlicht
eine CRC-Karte für
Ergebniskonsolidierer 168.
-
In 7 enthalten
die Komponenteneigenschaften folgendes:
- 1.
Dienste, die die funktionalen Fähigkeiten
der Datenquelle 134 reflektieren.
- 2. Dienste, die in einer abgespeckten Web-freundlichen Art und
Weise dargelegt sind.
- 3. Dienste sind feststellbar.
-
In 8 enthalten
die Komponenteneigenschaften folgendes:
- 1.
Ein einzigartiger Identifizierer (ein Satz von Feldern) wird für einen
individuellen Ansichtstyp bestimmt, um Duplikate zu eliminieren.
- 2. Der Satz von Feldern für
eine einzigartige Identifikation muss in den Rückgabefeldern XSD dieses speziellen
Ansichtstyps definiert werden.
- 3. Die konsolidierten Abfrageantwortdaten werden mit einem klaren
Indikator gesendet, um den Anzeigengenerator 174 zu informieren,
ob immer noch Ergebnisse ausstehen, oder Ergebnisse angekommen sind.
-
9 verdeutlicht
ein Benutzerschnittstellenfenster 900, welches von einer
generischen Anzeigenkonfiguration erzeugt wird. Das Fenster 900 enthält allgemein
vier Spalten, beispielsweise enthaltend eine Patientenidentifikation
(ID), den Patientennamen, das Geburtsdatum (DoB) des Patienten und
das Geschlecht des Patienten.
-
Ein
Benutzer kann die Information eines bestimmten Patienten erweitern
(beispielsweise durch Klicken auf ein Icon oder irgendwo in der
Reihe der Patienteninformation), um vier zusätzliche Spalten anzuzeigen,
beispielsweise enthaltend Studie-Datum, Studie-Zeit, Modalitäten und
Studie-Beschreibung.
-
Ein
Benutzer kann eine bestimmte Studie expandieren (beispielsweise
durch Klicken auf ein Icon oder irgendwo in der Reihe der Patienteninformation),
um vier zusätzliche
Spalten anzuzeigen, beispielsweise enthaltend Modalität, Körperteil,
Anzahl an Bildern und Reihen-Beschreibung.
-
Das
System 100 identifiziert eine Anfrage eines Benutzers zum
Expandieren von Information in dem Benutzerschnittstellenfenster 900 bei
einer oder bei mehreren Ebenen als Sub-Abfrage. Die High-Level Information,
die angezeigt wird, repräsentiert
die Ergebnisse für
die Abfrage des Benutzers.
-
Die
expandierte detaillierte Ebeneninformation, die angezeigt wird,
repräsentiert
die Ergebnisse für
die Sub-Abfrage des Benutzers. Irgendeine Anzahl von Sub-Abfragen
ist möglich,
kann jedoch durch die Verfügbarkeit
von entsprechendem Informationsinhalt begrenzt sein.
-
Die
Icons auf der rechten Seite der Reihen von Information liefern beispielsweise
Links zu detaillierten Berichten und Bildern.
-
10 verdeutlicht
ein Benutzerschnittstellenfenster 1000, wie in 9 gezeigt,
welches in eine andere generische Benutzerschnittstellenkonfiguration
kombiniert ist, um eine Anzeige höherer Ebene bereitzustellen.
Das Fenster 1000 enthält
beispielsweise eine hierarchische Liste von Patienten 1002,
die abgesucht werden kann, und nach Datum oder nach letztem Namen,
beispielsweise einer Liste von allen Studien 1003, einer
Liste von männlichen
Studien 1004, eine Liste von weiblichen Studien 1005,
und eine Liste von weiblichen „flat" Patienten 1006 angezeigt
werden. Die Listen der Patienten und/oder Studien 1002 – 1006 können auch
als Tab-Worklisten bezeichnet werden.
-
11 zeigt
eine Funktion der Tab-Worklist 1002 – 1006 in dem Benutzerschnittstellenfenster 1000, um
das Benutzerschnittstellenfenster 1000 zu konfigurieren,
wie in 10 gezeigt. 11 verdeutlicht
eine Interaktion der Abfragekonfigurationsdatei 152 und
der Anzeigenkonfigurationsdatei 180, die verwendet werden,
um die Ergebnisse der Abfrage 154 anzuzeigen, indem eine
generische Anzeigenliste verwendet wird, um das Benutzerschnittstellenfenster 1000 anzuzeigen,
wie beispielsweise in 10 gezeigt.
-
Das
System 100 speichert eine Masterkonfigurationsdatei 1102,
die eine Sammlung von Abfragekonfigurationsdateien 152 enthält (auch
in 3 gezeigt) und die Anzeigeninformationsdateien 180 (auch
in 3 gezeigt). 11 verdeutlicht
die Abfragekonfigurationsdateien 152 und die Anzeigeninformationsdateien 180 durch
das mit den Bezugszeichen 1104.
-
Die
Abfragekonfigurationsdateien 152 entsprechen der Natur
und dem Thema der gewünschten
Information (beispielsweise Kopfdateninformation, wie etwa Patientennamen,
ID, Geschlecht, Geburtsdatum, wie in 10 gezeigt).
Die gewünschte
Information repräsentiert
den Inhalt der Information, die von dem abfragenden Benutzer gewünscht wird.
Die Anzeigeninformationsdateien 180 entsprechen dem Anzeigenformat der
gewünschten
Information (beispielsweise Kopfdateninformation anordnen, wie etwa
Patientenname, ID, Geschlecht und Geburtsdatum in einer Reihe, die
in einem Benutzerschnittstellenfenster positioniert ist, wie in 10 gezeigt).
Folglich liefern die zwei Dateien 152 und 180 die
Natur und das Format der gewünschten
Information.
-
Das
System 100 sendet die Masterkonfigurationsdatei 1102 an
das Tab-Worklist-Element 106. Das Tab-Worklist-Element 106 empfängt die
Masterkonfigurationsdatei 1102 und verarbeitet die Masterkonfigurationsdatei 1102,
um mehrere generische Listen 1112 zu erzeugen. Eine generische
Liste 1112 repräsentiert
die Natur und das Format der gewünschten
Information, die durch die zwei Dateien 152 und 180 dargestellt
wird. Das System 100 verwendet die mehreren generischen
Listen 1112, um beispielsweise die Anzeige, das Layout und
die Abfrage zu konfigurieren. Als nächstes verdeutlichen die 12 und 13 ein
Verfahren zum Verarbeiten der empfangenen Abfragen 164,
um den Inhalt der gewünschten
Information zu bestimmen (beispielsweise Griswold, Ralph, 284557,
Male, und 2/2/2002, wie in 10 gezeigt).
-
12 verdeutlicht
ein Verfahren 1200, das von dem Ergebniskonsolidierer 168 durchgeführt wird,
um mehrere empfangene asynchrone Abfrageergebnisse 164 (also
den Inhalt der gewünschten
Information) zu verarbeiten zur Präsentation in dem Benutzerschnittstellenfenster 1000,
wie beispielsweise in 10 gezeigt.
-
In
Schritt 1202 startet das Verfahren 1200.
-
In
Schritt 1203 bestimmt der Ergebniskonsolidierer 168,
ob die Daten, die von der Datenquellenschnittstelle 132 empfangen
worden sind, die erste Instanz einer Rückgabe von Daten für die entsprechende
Abfrage sind. Wenn die Bestimmung in Schritt 1203 positiv
ist, wird das Verfahren 1200 in Schritt 1204 fortgesetzt; sonst,
wenn die Bestimmung in Schritt 1203 negativ ist, wird das
Verfahren 1200 in Schritt 1206 fortgesetzt.
-
In
Schritt 1204 fügt
der Ergebniskonsolidierer 168 die empfangenen Daten zu
einer Tabelle hinzu (beispielsweise „Hash Table"). Andere Verfahren
zur Konsolidierung und Aktualisierung des Inhalts der gewünschten
Daten können
ebenfalls verwendet werden.
-
Eine
Hash-Tabelle ist eine assoziative Arraydatenstruktur, die Schlüssel mit
Werten verknüpft.
Primär unterstützt sie
wirkungsvoll ein Nachschlagen, wenn ein Schlüssel gegeben ist, der ein Identifizierer
für die
zu findende Information ist, beispielsweise einen Namen der Person,
und den entsprechenden Wert finden soll. Die Hash-Tabelle arbeitet
durch Transformieren des Schlüssels
unter Verwendung einer Hash-Funktion, die in ein Hash transformiert
wird, was eine Nummer ist, die die Hash-Tabelle verwendet, um den
gewünschten
Wert zu lokalisieren.
-
Die
assoziative Arraydatenstruktur ist eine Karte, eine Nachschlagtabelle,
oder ein Inhaltsverzeichnis, ist ein abstrakter Datentyp, der sehr
eng in Bezug steht zu dem mathematischen Konzept einer Funktion
mit einem endlichen Bereich.
-
Die
Datenstruktur ist eine Art zum Speichern von Daten in einem Computer,
so dass sie wirkungsvoll verwendet werden können. Eine sorgfältig ausgewählte Datenstruktur
erlaubt oft einen wirkungsvolleren Algorithmus, der zu verwenden
ist. Beispiele von Datenstrukturen enthalten Bäume, die gut mit Datenbanken
funktionieren, wie in dem gegenwärtigen
System 100, und Routingtabellen, die auf Netzwerken von
Maschinen vertrauen, um zu funktionieren.
-
Eine
Hash-Funktion ist eine Funktion, die eine Eingabe von einem typischerweise
großen
Bereich in eine Ausgabe in einem typischerweise kleineren Bereich
konvertiert. Hash-Funktionen variieren im Bereich ihrer Eingaben
und im Bereich ihrer Ausgaben, und in der Weise wie Muster und Ähnlichkeiten
der Eingabedaten die Ausgabedaten beeinflussen.
-
In
Schritt 1205 formatiert der Ergebniskonsolidierer 168 die
empfangenen Daten beispielsweise in das XML-Format.
-
In
Schritt 1206 prüft
der Ergebniskonsolidierer 168 die letzten empfangenen Daten
beispielsweise bei zwei Ebenen des Baums, wenn die Daten, die von
der Datenquellenschnittstelle 132 empfangen worden sind, nicht
die erste Instanz seiner Rückgabe
von Daten für
die entsprechende Abfrage sind.
-
In
Schritt 1207 teilt der Ergebniskonsolidierer 168 die
letzten empfangenen Daten in mehrere Knoten des Baums, um eine wirkungsvolle
Verarbeitung der empfangenen Daten bereitzustellen.
-
In
Schritt 1208 bestimmt der Ergebniskonsolidierer 168 für einen
individuellen Knoten des Baums, ob das Konsolidiererfeld leer ist.
Wenn die Bestimmung in Schritt 1208 positiv ist, wird das
Verfahren 1200 in Schritt 1209 fortgesetzt; sonst,
wenn die Bestimmung in Schritt 1208 negativ ist, wird das
Verfahren 1200 in Schritt 1212 fortgesetzt. Eine
positive Bestimmung in Schritt 1208 gibt an, dass keine
weiteren Ebenen des Baums zu prüfen
sind. Eine negative Bestimmung in Schritt 1208 gibt an,
dass mehr Ebenen des Baums zu prüfen
sind.
-
In
Schritt 1209 hängt
der Ergebniskonsolidierer 168 die letzten empfangenen Daten
an die Tabelle an, wie in Schritt 1204 erwähnt.
-
In
Schritt 1210 formatiert der Ergebniskonsolidierer 168 die
letzten empfangenen Daten beispielsweise in das XML-Format. Das
Verfahren 1200 wird in Schritt 1211 fortgesetzt.
-
In
Schritt 1211 liefert der Ergebniskonsolidierer 168 die
letzten empfangenen Daten in dem XML-Format an den Anzeigengenerator 174,
um die Information 176 in einem Benutzerschnittstellenfenster 900 oder 1000,
wie beispielsweise in den 9 und 10 gezeigt,
anzuzeigen.
-
In
Schritt 1212 erzeugt der Ergebniskonsolidierer 168 einen
Hash-Schlüssel.
-
In
Schritt 1213 bestimmt der Ergebniskonsolidierer 168,
ob der Hash-Schlüssel
in der Tabelle ist, wie in Schritt 1204 erwähnt. Wenn
die Bestimmung in Schritt 1213 positiv ist, wird das Verfahren 1200 in
Schritt 1214 fortgesetzt; sonst, wenn die Bestimmung in
Schritt 1213 negativ ist, wird das Verfahren 1200 in
Schritt 1216 fortgesetzt. Eine positive Bestimmung in Schritt 1213 gibt
an, dass andere Ebenen der empfangenen Daten verarbeitet werden
müssen.
Eine negative Bestimmung in Schritt 1213 gibt an, dass
keine anderen Ebenen der empfangenen Daten verarbeitet werden müssen.
-
In
Schritt 1214 holt der Ergebniskonsolidierer 168 Daten,
die eine Datenquellenpriorität
angeben.
-
In
Schritt 1215 kopiert der Ergebniskonsolidierer 168 Blätter des
Baums von einer höheren
Priorität, und
kehrt zu Schritt 1206 zurück, um die nächste Ebene
der empfangenen Daten zu prüfen.
-
In
Schritt 1216 fügt
der Ergebniskonsolidierer 168 den Hash-Schlüssel zu
der Tabelle hinzu, wie in den Schritten 1204 und 1209 erwähnt.
-
In
Schritt 1217 hängt
der Ergebniskonsolidierer 168 die letzten empfangenen Daten
an die Tabelle an, wie in Schritt 1204 erwähnt.
-
In
Schritt 1218 formatiert der Ergebniskonsolidierer 168 die
letzten empfangenen Daten beispielsweise in das XML-Format. Das
Verfahren 1200 wird in Schritt 1211 fortgesetzt.
-
13 zeigt
ein Verfahren 1300 zum Verarbeiten von Sub-Abfragen. Das
System 100 kann flexibel erweitert und an Betriebsrealitäten angepasst
werden, ohne dass es erforderlich ist, den Code zu ändern oder neu
zu kompilieren. Dynamisch erzeugte Sub-Abfragen, die eine zusätzliche
Performance liefern, selbst wenn große Datensammlungen betrachtet
werden, sind ebenfalls in die Definition der Datenbetrachtungstypen
konfiguriert. 9 zeigt Beispiele von Sub-Abfragen. Andere
Verfahren zum Verarbeiten der Sub-Abfragen können in dem System 100 implementiert
werden.
-
In
Schritt 1302 präsentiert
das System 100 eine generische Liste 1112, wie
durch das Verfahren 1100 in 11 bereitgestellt,
enthaltend: Einen Paging-Balken (beispielsweise 1002 – 1006)
mit Kopfdateninformation für
Reihen von Information, die von den Datenquellen 134 erfasst
wurde, wie in den 9 und 10 gezeigt.
-
13 verdeutlicht
mehrere Gruppen von Schritten 1303 – 1310, wobei eine
individuelle Gruppe von Schritten durch das System 100 ausgeführt wird,
wenn ein Benutzer eine individuelle Reihe von Information auswählt, um
die Erzeugung einer Sub-Abfrage zu expandieren. Mit anderen Worten,
eine Sub-Abfrage ist auf die Gruppe von Information, die zu suchen
ist, begrenzt. Beispielsweise repräsentiert in 9 ein
mit Namen versehener Patient eine Gruppe von Information für diesen
Patienten, die weiter expandiert werden kann, in verschiedene Studien
für diesen
Patienten, und verschiedene Ergebnisse für individuelle Studien.
-
In
Schritt 1303 empfängt
das System 100 eine Angabe von einem Benutzer, dass ein
Benutzer eine Anfrage für
eine Sub-Abfrage gestartet hat. Ein Benutzer kann eine Angabe initiieren,
beispielsweise durch Klicken auf ein Icon oder eine Reihe von Information,
oder durch Eingeben eines Befehls.
-
In
Schritt 1304 liefert das System 100 den Benutzerfeedback
an den Benutzer der Angabe des Benutzers, dass der Benutzer eine
Anfrage für
eine Sub-Abfrage initiiert hat. Das System 100 liefert
den Benutzerfeedback beispielsweise durch Hervorhebung des Icons
oder der Reihe von Information, auf die der Benutzer geklickt hat.
-
In
Schritt 1305 startet das System 100 eine Anfrage
für die
Sub-Abfrage (beispielsweise „Squid
Query").
-
In
Schritt 1306 empfängt
das System 100 die Information entsprechend der angefragten
Sub-Abfrage, anders
auch als „Callback"-Funktion bezeichnet.
Ein Callback ist ein ausführbarer
Code, der als Parameter einem anderen Code geliefert wird. Ein Callback
erlaubt eine Softwareschicht niedrigen Levels, eine Funktion aufzurufen,
die in einer Schicht höheren
Levels auftritt. Üblicherweise
ruft der Code höheren
Levels zuerst eine Funktion innerhalb des Codes niedrigeren Levels,
um ihm einen Pointer oder einen Handle auf eine andere Funktion
zu übergeben.
Dann kann die Funktion niedrigeren Levels im Laufe der Ausführung die übergebene Funktion
beliebig oft aufrufen, um eine Unteraufgabe auszuführen.
-
In
Schritt 1307 aktualisiert das System 100 die Benutzerschnittstellenanzeige
mit Information entsprechend der angefragten Sub-Abfrage über den
Anzeigengenerator 174 und die Anzeige 176.
-
In
Schritt 1308 bestimmt das System 100, ob mehr
Information zur Anzeige vorliegt, die der angefragten Sub-Abfrage
entspricht. Wenn in Schritt 1308 die Bestimmung positiv
ist, wird das Verfahren 1300 in Schritt 1309 fortgesetzt,
sonst, wenn die Bestimmung in Schritt 1308 negativ ist,
wird das Verfahren 1300 in Schritt 1310 fortgesetzt.
-
Die
Daten können
in verschiedener Weise angezeigt werden, in Abhängigkeit von verschiedenen
Umständen,
beispielsweise Systemdesign, Benutzervoreinstellung, Ort der Datenquellen,
etc. Beispielsweise können
die Daten stückweise
angezeigt werden, entweder organisiert oder zufällig, wenn sie empfangen und verarbeitet
werden. Die Daten können
in einer Gruppe angezeigt werden, entweder organisiert oder zufällig, wenn
Gruppen von relevanten Daten empfangen und verarbeitet werden (beispielsweise
Daten von der gleichen Datenquelle). Die Daten können angezeigt werden, nachdem
alle Daten, die der Abfrage oder Sub-Abfrage entsprechen, empfangen
und verarbeitet worden sind.
-
In
Schritt 1309 ruft das System 100 zusätzlich Information
ab, entsprechend der angefragten Sub-Abfragen, die noch nicht angezeigt
wurde, so dass die Information angezeigt werden kann. Das Verfahren 1300 wird
in Schritt 1306 fortgesetzt, um zu prüfen, ob zusätzliche Daten empfangen worden
sind.
-
In
Schritt 1310 fährt
das System 100 mit einer anderen Verarbeitung fort, bis
zur Bestimmung, dass alle Information, die der angefragten Sub-Abfrage
entspricht, angezeigt worden ist.
-
In
Schritt 1311 startet das System 100 die Anfrage
für die
Sub-Abfrage.
-
In
Schritt 1312 startet das System 100 eine Sitzung
entsprechend der Anfrage für
die Sub-Abfrage.
-
In
Schritt 1313 führt
das System 100 die Sitzung aus entsprechend der Anfrage
für die
Sub-Abfrage.
-
In
Schritt 1314 reiht das System 100 die Anfragen
für die
Sub-Abfrage in eine Reihenfolge ein, beispielsweise wenn mehr als
eine Anfrage vorliegt, oder wenn das System 100 mehrere
Anfragen nicht schnell genug verarbeiten kann.
-
In
Schritt 1315 holt das System 100 ein Dokument
(beispielsweise in dem XML-Format), das Information enthält, die
den Anfragen für
die Sub-Abfrage entspricht. Das Dokument kann in dem System 100 sein oder
in einer oder in mehreren der Datenquellen 134.
-
In
Schritt 1316 erzeugt das System 100 einen Callback
für das
XML-Dokument mit Information, die den Anfragen für die Sub-Abfrage entspricht.
-
In
Schritt 1317 erfasst das System 100 die Information,
die den Anfragen für
die Sub-Abfrage entspricht, von dem XML-Dokument.
-
In
Schritt 1318 wartet das System 100 auf eine Pulsantwort,
die durch die Schritte 1319 – 1322 erzeugt wird.
Ein Zweck der Pulsantwort ist auf eine Konsolidierung der Information
zu warten, entsprechend den Anfragen für die Sub-Abfrage, bevor die
Anzeige mit zusätzlicher
Information aktualisiert wird. Andere Verfahren zur Konsolidierung
und Zeitgebung sind ebenfalls verfügbar und sollen für die vorliegende
Erfindung nicht einschränkend
sein.
-
In
Schritt 1319 sendet das System 100 eine Anfrage
nach Information, die den Anfragen für die Sub-Abfrage entspricht.
-
In
Schritt 1320 empfängt
das System 100 eine Antwort (beispielsweise Callback) von
den Datenquellen 134, die die zusätzlich angefragte Information
enthalten.
-
In
Schritt 1321 konsolidiert das System 100 die Antworten
von den Datenquellen 134.
-
In
Schritt 1322 erzeugt das System 100 die Pulsantwort
für den
Schritt 1318, um anzugeben, dass eine oder dass mehrere
Datenquellen 134 geantwortet haben.
-
14 zeigt
ein Browserfenster 1400, welches in das Benutzerschnittstellenfenster 900 und/oder 1000,
wie in den 9 und/oder 10 gezeigt,
integriert ist. Das System 100 beschreibt Datentypen, so
dass die Information in einer generischen Art und Weise gesammelt
werden kann, ohne irgendeine spezielle Codierung, und ist auf mehrere
Informationstechnologieanwendungen ausweitbar. Das System 100 beschreibt
Information, die zu sammeln ist, durch die Konfiguration der Datentypen
und die dynamische Sammlung von Konsolidierungen der Information.
Das System 100 integriert die Benutzerschnittstellenkomponenten 128 in eine
einzelne integrierte Browseranwendung, in welcher eine einzige Anwendung
eine Präsentation
der Daten von den Datenquellen 134 liefert. Der Benutzer
verwendet einen Browser als ein Portal, um die Daten zu finden,
mit denen er operieren will. Alternativ kann das System 100 die
Benutzerschnittstellenkomponenten 128 in einer alleinstehenden
Art und Weise, außerhalb
einer Browseranwendung verwenden.
-
Beispiel
-
Ein
vereinfachtes Beispiel des Betriebs des Systems 100 wird
als nächstes
beschrieben. Das Beispiel ist vereinfacht, da das Beispiel die tatsächlichen
Anzeigenkomponenten weglässt,
die Sub-Abfragen steuern, und tatsächliche Parse-Anzeigenkonfigurationsdateien,
um zu wissen, wie die Anzeigen zu erzeugen sind.
- 1.
Ein Benutzer erzeugt 150 eine Abfrage 154 in einem
ersten Datenformat eines bestimmten Ansichtstyps 146 mit
spezifizierten Kriterien 148 (siehe 3).
- 2. Der Datenkollektorservice 110 validiert 160 die
Anfrage basierend auf seiner Kenntnis des Anzeigentyps, die von
der Konfiguration des Anzeigentyps geliefert wird.
- 3. Der Datenkollektorservice 110 findet Datenquellen 134,
die den spezifizierten Ansichtstyp 146 unterstützen, und
fragt asynchron eine individuelle Datenquelle 134 mit den
gelieferten Kriterien 148 ab.
- 4. Der Datenkollektorservice 110 validiert 166 und
konsolidiert 168 die Ergebnisse und gibt konsolidierte Information
an den Anfrager asynchron zurück 164,
falls angefordert.
-
Das
System 100 reiht vorteilhafterweise dynamisch mehrere Datenquellen 134 auf,
für Information
eines gegebenen Formats, das in auswählbaren und umfangreicher Art
und Weise definiert ist.
-
Um
einen neuen Ansichtstyp zu unterstützen, verwendet das System 100 Folgendes:
- 1. Die Anzeigeninformationsdatei 180 (also
eine Ansichtstypkonfigurationsdatei) (beispielsweise unten in XML
gezeigt), die in das Verzeichnis gegeben wird, auf das der Datenkollektorservice 110 zugreifen
kann.
- 2. Das System 100 expandiert entweder den SOA-Adapter 112 oder
erzeugt einen neuen SOA-Adapter 112, der den neuen Ansichtstyp
unterstützt.
Wenn das System 100 einen neuen SOA-Adapter 112 erzeugt, dann
wird sein Vorhandensein dem Datenkollektorservice 110 bekanntgegeben
durch Hinzufügungen
zu einer Konfigurationsdatei, die „Kontakt"-Information für alle verfügbaren SOA-Adapter 112 speichert.
-
Das
System 100 liefert eine Anzeigeninformationsdatei 180 (in 3 gezeigt),
die beschreibt, wie der neue Ansichtstyp anzuzeigen ist, wie in
dem folgenden Beispiel gezeigt.
-
-
-
-
-
Das
System 100 liefert die Fähigkeit für den Datenkollektorservice 110 dynamisch
mehrere Datenquellen 134 für Information eines gegebenen
Formats, welches in einer Zusammenfassungsart und Weise definiert ist,
abzufragen. Diese Technik erlaubt dem Datenkollektorservice 110 und
der Datenquelle 134 den Austausch von Daten mit nur einer
abstrakten deskriptiven Metasprache, als ein vordefinierter Kontrakt
in einer bedeutungsvollen Art. Folglich wird In formation von potenziellen
mehreren Datenquellen 134 gesammelt, organisiert 168 und
dann einem Endbenutzer in einer bedeutungsvollen Art präsentiert 174 und 176.
Der Benutzer kann willkürlich
Aktionen für
die ausgewählte
Information starten und die Ergebnisse einer Aktion betrachten,
ohne dass eine kundenspezifische Programmierung speziell für den Typ
von Information, der angezeigt wird, erforderlich ist.
-
Obwohl
die Erfindung unter Bezugnahme auf verschiedene Ausführungsbeispiele
beschrieben wurde, soll die vorliegende Erfindung nicht auf diese
speziellen Ausführungsbeispiele
beschränkt
sein. Fachleute auf diesem Gebiet erkennen, dass verschiedene Abweichungen,
Modifikationen und Kombinationen der offenbarten Gegenstände vorgenommen
werden können,
ohne den Schutzbereich der Erfindung, wie in den beigefügten Ansprüchen definiert,
zu verlassen.