DE102005040096A1 - Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle - Google Patents

Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle Download PDF

Info

Publication number
DE102005040096A1
DE102005040096A1 DE102005040096A DE102005040096A DE102005040096A1 DE 102005040096 A1 DE102005040096 A1 DE 102005040096A1 DE 102005040096 A DE102005040096 A DE 102005040096A DE 102005040096 A DE102005040096 A DE 102005040096A DE 102005040096 A1 DE102005040096 A1 DE 102005040096A1
Authority
DE
Germany
Prior art keywords
data
query
information
received
queries
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
DE102005040096A
Other languages
English (en)
Inventor
Eric Martin
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.)
Siemens Medical Solutions USA Inc
Original Assignee
Siemens Medical Solutions Health Services Corp
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 Siemens Medical Solutions Health Services Corp filed Critical Siemens Medical Solutions Health Services Corp
Publication of DE102005040096A1 publication Critical patent/DE102005040096A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Abstract

Ein System zum Erfassen und Verarbeiten von Daten von mehreren unterschiedlichen Datenquellen enthält eine erste Quelle, eine zweite Quelle und einen Abfrageprozessor. Die erste Quelle von vorbestimmter Konfigurationsinformation verknüpft eine empfangene Abfrageinformation in einem ersten Datenformat mit einem entsprechenden speziell strukturierten Datenabfrageformat und mehreren unterschiedlichen Datenquellen. Die zweite Quelle von vorbestimmter Konfigurationsinformation verknüpft das speziell strukturierte Datenanfrageformat mit mehreren unterschiedlichen Datenquellen. Der Abfrageprozessor verwendet die erste und zweite Quelle vorbestimmter Konfigurationsinformation zur Übersetzung der empfangenen Abfrageinformation in dem ersten Datenformat in mehrere Abfragen in verschiedenen Datenformaten zur Übertragung an die mehreren unterschiedlichen Datenquellen.

Description

  • 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 48 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 10021006 können auch als Tab-Worklisten bezeichnet werden.
  • 11 zeigt eine Funktion der Tab-Worklist 10021006 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 10021006) 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 13031310, 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 13191322 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.
      Figure 00280001
      Figure 00290001
    • 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.
  • Figure 00300001
  • Figure 00310001
  • Figure 00320001
  • Figure 00330001
  • 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.

Claims (16)

  1. System zum Erfassen und Verarbeiten von Daten von einer Mehrzahl von unterschiedlichen Datenquellen, enthaltend: eine erste Quelle von vorbestimmter Konfigurationsinformation zum Verknüpfen einer empfangenen Informationsabfrage in einem ersten Datenformat mit einem entsprechenden speziell strukturierten Datenanfrageformat und einer Mehrzahl von unterschiedlichen Datenquellen; eine zweite Quelle von vorbestimmter Konfigurationsinformation zum Verknüpfen des speziell strukturierten Datenanfrageformats mit einer Mehrzahl von unterschiedlichen Datenquellen; und einen Abfrageprozessor zum Verwenden der ersten und zweiten Quelle von vorbestimmter Konfigurationsinformation zum Übersetzen der empfangenen Abfrage von Information in dem ersten Datenformat in eine Mehrzahl von Abfragen in unterschiedlichen Datenformaten zur Übertragung an die Mehrzahl der unterschiedlichen Datenquellen.
  2. System nach Anspruch 1, wobei das speziell strukturierte Datenanfrageformat zugehörige Hilfsdaten enthält zur Verwendung bei der Verarbeitung von Datenelementen in Abfrageantwortnachrichten, die empfangen werden in Antwort auf die Mehrzahl von Abfragen, die an die Mehrzahl der unterschiedlichen Datenquellen übermittelt worden sind, durch mindestens (a) Eliminieren von redundanten doppelten Datenelementen und/oder (b) Ersetzen eines ersten empfangenen Datenelements durch ein zweites empfangenes Datenelement, und der Abfrageprozessor das erste empfangene Datenelement durch das zweite empfangene Datenelement in Antwort auf Information ersetzt, die eine vorbestimmte Priorität der Mehrzahl der unterschiedlichen Datenquellen angibt.
  3. System nach Anspruch 1 oder 2, wobei das speziell strukturierte Datenabfrageformat zugehörige Hilfsdaten enthält zur Verwendung beim Sortieren der Datenelemente in Abfrageantwortnachrichten, die in Antwort auf die Mehrzahl von Abfragen empfangen wurden, die an die Mehrzahl der unterschiedlichen Datenquellen übertragen worden sind, wobei das Sortieren durchgeführt wird in Antwort auf mindestens (a) einen Benutzerbefehl, der über ein angezeigtes Benutzerschnittstellenbild empfangen wird und/oder (b) automatisch basierend auf einer vorbestimmten Konfigurationsinformation.
  4. System nach einem der Ansprüche 1 bis 3, wobei das speziell strukturierte Datenanfrageformat zugehörige Hilfsdaten enthält zur Verwendung durch den Abfrageprozessor beim Teilen der empfangenen Abfrage in eine Mehrzahl von Sub-Abfragen zur Übertragung an die mehreren unterschiedlichen Datenquellen, und der Abfrageprozessor in Antwort auf die Hilfsdaten einen ersten Satz von ausgewählten Sub-Abfragen der Mehrzahl von Sub-Abfragen an eine erste Quelle der Mehrzahl von unterschiedlichen Datenquellen übermittelt, und einen zweiten Satz von ausgewählten Sub-Abfragen der Mehrzahl von Sub-Abfragen an eine zweite Quelle der Mehrzahl von unterschiedlichen Datenquellen.
  5. System nach einem der Ansprüche 1 bis 4, wobei der Abfrageprozessor in Antwort auf die Hilfsdaten einen gemeinsamen Satz von ausgewählten Sub-Abfragen der Mehrzahl der Sub-Abfragen an die Mehrzahl der unterschiedlichen Datenquellen übermittelt.
  6. System nach einem der Ansprüche 1 bis 5, wobei das speziell strukturier te Datenanfrageformat zugehörige Hilfsdaten enthält zur Verwendung beim Formatieren zur Anzeige von Datenelementen, die in Abfrageantwortnachrichten empfangen werden, die in Antwort auf die Mehrzahl der Abfragen empfangen wurden, die an die Mehrzahl der unterschiedlichen Datenquellen übertragen wurden, und der Abfrageprozessor die Übertragung der Mehrzahl von Abfragen in verschiedenen Datenformaten zusammen mit Sitzungsinformation startet, wobei die Sitzungsinformation einen Benutzer angibt, der die empfangene Abfrage gestartet hat, und die von einer Datenquelle verwendbar ist bei der Bestimmung, ob der Benutzer autorisiert ist, die angefragte Information zu empfangen.
  7. System zum Erfassen und Verarbeiten von Daten von einer Mehrzahl von unterschiedlichen Datenquellen, enthaltend: eine erste Quelle von vorbestimmter Konfigurationsinformation zum Verknüpfen einer empfangenen Informationsabfrage in einem ersten Datenformat mit einem entsprechenden speziell strukturierten Datenanfrageformat und einer Mehrzahl von unterschiedlichen Datenquellen; eine zweite Quelle vorbestimmter Konfigurationsinformation zum Verknüpfen des speziell strukturierten Datenanfrageformats mit einer Mehrzahl von unterschiedlichen Datenquellen und entsprechenden Übertragungsprotokollen, die zur Abfrage der Mehrzahl der unterschiedlichen Datenquellen verwendet werden; und einen Abfrageprozessor zur Verwendung der ersten und zweiten Quelle vorbestimmter Konfigurationsinformation zum Übersetzen der empfangenen Abfrage von Information in dem ersten Datenformat in einer Mehrzahl von Abfragen in unterschiedlichen Datenformaten zur Übertragung unter Verwendung der entsprechenden Übertragungsprotokolle an die Mehrzahl der unterschiedlichen Datenquellen.
  8. System nach einem der Ansprüche 1 bis 7, wobei das speziell strukturierte Datenanfrageformat strukturiert ist, um kompatibel zu sein zu einer strukturierten Programmiersprache enthaltend mindestens eine von (a) XML, (b) SGML und (c) HTML.
  9. System nach einem der Ansprüche 1 bis 8, enthaltend einen Datenprozessor zum Empfangen von Abfrageantwortnachrichten in Antwort auf die Mehrzahl von Abfragen, die an die Mehrzahl von unterschiedlichen Datenquellen übertragen worden sind, und zum Vergleichen von Daten in den Abfrageantwortnachrichten in einem gewünschten Format in Antwort auf die empfangene Abfrage.
  10. System nach einem der Ansprüche 1 bis 9, wobei der Abfrageprozessor die Mehrzahl von Abfragen in den unterschiedlichen Datenformaten parsed und prüft, um zu bestimmen, ob individuelle Abfragen kompatibel sind mit entsprechenden Zieldatenquellen, und der Abfrageprozessor bestimmt, ob individuelle Abfragen kompatibel sind zu entsprechenden Zieldatenquellen, indem bestimmt wird, ob individuelle Abfragen semantisch korrekt sind.
  11. System nach einem der Ansprüche 1 bis 10, wobei der Abfrageprozessor die empfangene Informationsabfrage in dem ersten Datenformat in die Mehrzahl von Abfragen in den unterschiedlichen Datenformaten übersetzt, indem die empfangene Abfrage in ein anderes Datenformat übersetzt wird, welches eine Syntax aufweist, die kompatibel zu einer Kommunikationsschnittstelle einer Datenquelle ist.
  12. System nach einem der Ansprüche 1 bis 11, wobei die erste und zweite Quelle vorbestimmter Konfigurationsinformation die gleiche Quelle sind.
  13. System zum Erfassen und Verarbeiten von Daten von einer Mehrzahl von unterschiedlichen Datenquellen, enthaltend: eine erste Quelle vorbestimmter Konfigurationsinformation zum Verknüpfen einer empfangenen Informationsabfrage in einem ersten Datenformat mit einem entsprechenden speziell strukturierten Datenanfrageformat, welches zugehörige Hilfsdaten enthält, und einer Mehrzahl von unterschiedlichen Datenquellen; eine zweite Quelle von vorbestimmter Konfigurationsinformation zum Verknüpfen des speziell strukturierten Datenanfrageformats mit einer Mehrzahl von unterschiedlichen Datenquellen, und entsprechenden Übertragungsprotokollen, die für eine Abfrage der unterschiedlichen Datenquellen verwendet werden; und einen Abfrageprozessor zum Verwenden der ersten und zweiten Quelle vorbestimmter Konfigurationsinformation zum Übersetzen der empfangenen Abfrageinformation in dem ersten Datenformat in eine Mehrzahl von Abfragen in verschiedenen Datenformaten zur Übertragung, unter Verwendung der entsprechenden Übertragungsprotokolle, an die Mehrzahl der unterschiedlichen Datenquellen, und zum Verwenden der Hilfsdaten bei der Verarbeitung der Datenelemente in Abfrageantwortnachrichten, die in Antwort auf die Mehrzahl von Abfragen empfangen wurden, die an die Mehrzahl der unterschiedlichen Datenquellen übermittelt worden sind.
  14. System zum Erfassen und Verarbeiten von Daten von einer Mehrzahl von unterschiedlichen Datenquellen, enthaltend eine erste Quelle von vorbestimmter Konfigurationsinformation zum Verknüpfen einer empfangenen Abfrageinformation in einem ersten Datenformat mit einem entsprechenden speziell strukturierten Datenanfrageformat, enthaltend zugehörige Hilfsdaten und einer Mehrzahl von unterschiedlichen Datenquellen; eine zweite Quelle vorbestimmter Konfigurationsinformation zum Verknüpfen des speziell strukturierten Datenanfrageformats mit einer Mehrzahl von unterschiedlichen Datenquellen; einen Abfrageprozessor zur Verwendung der ersten und zweiten Quelle vorbestimmter Konfigurationsinformation zum Übersetzen der empfangenen Abfrage für Information in dem ersten Datenformat in einer Mehrzahl von Abfragen in verschiedenen Datenformaten zur Übertragung an die Mehrzahl von unterschiedlichen Datenquellen; und einen Datenprozessor zum Empfangen von Abfrageantwortnachrichten in Antwort auf die Mehrzahl von Abfragen, die an die Mehrzahl der unterschiedlichen Datenquellen übertragen worden sind, und zum Vergleichen der Daten in den Abfrageantwortnachrichten in einem gewünschten Format in Antwort auf die Hilfsdaten.
  15. System nach Anspruch 13 oder 14, wobei der Abfrageprozessor die Hilfsdaten bei der Verarbeitung von Datenelementen in den Abfrageantwortnachrichten verwendet, durch mindestens (a) Eliminieren von redundanten doppelten Datenelementen und/oder (b) Substituieren eines ersten empfangenen Datenelements durch ein zweites empfangenes Datenelement.
  16. System nach einem der Ansprüche 13 bis 15, wobei die Hilfsdaten Metadaten des speziell strukturierten Datenanfrageformats enthalten.
DE102005040096A 2004-08-24 2005-08-24 Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle Withdrawn DE102005040096A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US60416804P 2004-08-24 2004-08-24
US60/604,168 2004-08-24
US11/203,767 US20060047648A1 (en) 2004-08-24 2005-08-15 Comprehensive query processing and data access system and user interface
US11/203,767 2005-08-15

Publications (1)

Publication Number Publication Date
DE102005040096A1 true DE102005040096A1 (de) 2006-03-16

Family

ID=35853756

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005040096A Withdrawn DE102005040096A1 (de) 2004-08-24 2005-08-24 Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle

Country Status (2)

Country Link
US (1) US20060047648A1 (de)
DE (1) DE102005040096A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996558B2 (en) 2002-02-26 2006-02-07 International Business Machines Corporation Application portability and extensibility through database schema and query abstraction
US7900133B2 (en) 2003-12-09 2011-03-01 International Business Machines Corporation Annotation structure type determination
US8321441B2 (en) * 2005-09-14 2012-11-27 International Business Machines Corporation Disabling subsets of query conditions in an abstract query environment
US8386469B2 (en) * 2006-02-16 2013-02-26 Mobile Content Networks, Inc. Method and system for determining relevant sources, querying and merging results from multiple content sources
US20080109285A1 (en) * 2006-10-26 2008-05-08 Mobile Content Networks, Inc. Techniques for determining relevant advertisements in response to queries
US11392595B2 (en) 2006-10-26 2022-07-19 EMB Partners, LLC Techniques for determining relevant electronic content in response to queries
US20080162420A1 (en) * 2006-10-31 2008-07-03 Ahrens Mark H Methods and systems to retrieve information from data sources
US8370399B2 (en) * 2006-12-04 2013-02-05 Microsoft Corporation Building, viewing, and manipulating schema sets
WO2008101022A2 (en) * 2007-02-13 2008-08-21 The Nielsen Company (Us), Llc Methods and apparatus to reach through to business logic services
US9536009B2 (en) * 2007-08-08 2017-01-03 Microsoft Technology Licensing, Llc Embedding a representation of an item in a host
WO2010036983A1 (en) * 2008-09-25 2010-04-01 Rockliffe Systems, Inc. (Dba Mailsite) Personal information management data synchronization
US20100161344A1 (en) * 2008-12-12 2010-06-24 Dyson David S Methods and apparatus to prepare report requests
US9727935B2 (en) * 2009-01-29 2017-08-08 Pacs Harmony, Llc Equitably assigning medical images for examination
US8316045B1 (en) * 2009-02-10 2012-11-20 Sprint Communications Company L.P. Database linking system
JP2011048438A (ja) * 2009-08-25 2011-03-10 Olympus Corp 病理診断処理装置および病理診断処理システム
US8266170B2 (en) 2010-04-26 2012-09-11 International Business Machines Corporation Peer to peer (P2P) missing fields and field valuation feedback
GB2500537A (en) * 2010-12-03 2013-09-25 Titus Inc Method and system of hierarchical metadata management and application
EP2728494A1 (de) * 2012-11-05 2014-05-07 Software AG System und Verfahren zum grafischen Erzeugen von Anfragen zu Modelldaten
CN103984713B (zh) * 2014-05-07 2017-05-31 珠海横琴跨境说网络科技有限公司 一种基于云计算的财务数据查询方法
CN104765952B (zh) * 2015-03-11 2017-12-26 杭州易江信息技术有限公司 一种刷牙姿态检测与评价系统
CN110032593A (zh) * 2019-03-12 2019-07-19 平安城市建设科技(深圳)有限公司 房屋信息查询方法、装置、设备及计算机可读存储介质
US11256709B2 (en) 2019-08-15 2022-02-22 Clinicomp International, Inc. Method and system for adapting programs for interoperability and adapters therefor
CN110855481B (zh) * 2019-11-04 2021-11-02 中盈优创资讯科技有限公司 数据采集系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
WO2002023463A1 (en) * 2000-09-11 2002-03-21 David Edgar System, method, and computer program product for optimization and acceleration of data transport and processing
US6799184B2 (en) * 2001-06-21 2004-09-28 Sybase, Inc. Relational database system providing XML query support
US6928431B2 (en) * 2002-04-25 2005-08-09 International Business Machines Corporation Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer
US7275024B2 (en) * 2003-03-12 2007-09-25 Microsoft Corporation Automatic generation of a dimensional model for business analytics from an object model for online transaction processing

Also Published As

Publication number Publication date
US20060047648A1 (en) 2006-03-02

Similar Documents

Publication Publication Date Title
DE102005040096A1 (de) Umfassendes Abfrageverarbeitungs- und Datenzugriffssystem, und eine Benutzerschnittstelle
US8195647B2 (en) Abstract records
US7756728B2 (en) Healthcare system and user interface for consolidating patient related information from different sources
Skevakis et al. Metadata management, interoperability and Linked Data publishing support for Natural History Museums
DE10042601B4 (de) Sprache für XML-Server-Seiten
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
US6904439B2 (en) System and method for aggregating user project information in a multi-server system
US8122012B2 (en) Abstract record timeline rendering/display
DE112007001196T5 (de) System zur adaptiven Abfrage eines Datenspeicherlagers
US20090019000A1 (en) Query based rule sets
US8458200B2 (en) Processing query conditions having filtered fields within a data abstraction environment
DE102004004583A1 (de) System und Benutzerschnittstelle zur Verwaltung und Verarbeitung von Formularinformation zur Verwendung durch tragbare Verarbeitungsgeräte und andere Geräte
DE202014010938U1 (de) Omega-Namen: Namenserzeugung und -ableitung
EP2188742A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
WO2009155558A1 (en) System and method for interacting with clinical trial operational data
DE202013012490U1 (de) Effiziente hierarchisch geprägte Top-Down Verbindung geclusterter Datenstrom
Baumgartner et al. Web data extraction for business intelligence: the lixto approach
US20080319969A1 (en) Query conditions having filtered fields within a data abstraction environment
US20080168042A1 (en) Generating summaries for query results based on field definitions
KR100961813B1 (ko) 포커스 데이터에 근거한 동적 인증
EP2193457A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
Weigl et al. Combine or connect: Practical experiences querying library linked data
KR20040077535A (ko) 선택된 객체에 관한 정보에 대한 요구를 생성하는 시스템및 방법
Bhagdev et al. Creating and using organisational semantic webs in large networked organisations
Sarinder et al. Biodiversity information retrieval across networked data sets

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: SIEMENS MEDICAL SOLUTIONS USA,INC.(N.D.GES.D.S, US

8139 Disposal/non-payment of the annual fee