-
Querverweis zu verwandten
Anmeldungen
-
Die
vorliegende Anmeldung ist eine nicht provisorische Anmeldung der
am 25. Juni 2003 von Wildes et al. eingereichten vorläufigen Anmeldung mit
der laufenden Nummer 60/482,330.
-
Erfindungsgebiet
-
Die
vorliegende Erfindung betrifft allgemein Computerinformationssysteme.
Insbesondere betrifft die vorliegende Erfindung ein Datenmigrations-
und Formattransformationssystem.
-
Allgemeiner Stand der
Technik
-
Bei
Computerinformationssystemen für
Unternehmen aus dem Gesundheitswesen und andere Unternehmen müssen manchmal
als erstes Datenformat zur Verwendung in einem ersten Computersystem
gespeicherte Daten in ein von dem ersten Datenformat verschiedenes
zweites Datenformat migriert und konvertiert werden, um durch ein
von dem ersten Computersystem verschiedenes zweites Computersystem
verwendet zu werden. In der Regel wird kundenspezifischer Konvertierungssoftwarecode
erzeugt, um Daten von dem ersten Computersystem zu dem zweiten Computersystem
zu bewegen und zu konvertieren.
-
Existierende
Softwareanwendungen und Softwaretools bewegen und konvertieren Daten
von einem Computersystem zu einem anderen. Diese existierenden Anwendungen
und Tools bewegen jedoch üblicherweise
Daten von Arbeitsdatenbanken zu Datenwarenhäusern und liefern üblicherweise nicht
die gewünschte
Flexibilität
und kundenspezifische Anpassung.
-
Um
Daten so zu bewegen und zu konvertieren, daß sie mit einem anderen Computersystem kompatibel
sind, wird üblicherweise
für jedes
individuelle Umzugs- und Konvertierungsprojekt Softwarecode erstellt
und getestet. Außerdem
ist der erstellte, eine Konvertierung durchführende Code üblicherweise
für den Einsatzdurch
Programmierer bestimmt und nicht benutzerfreundlich. Der erstellte
Code stellt üblicherweise
außerdem
keine Benutzerschnittstelle bereit, die es einem Benutzer ermöglicht,
den Fortschritt einer Konvertierung einzuschätzen oder die Konvertierung
nach dem Testen des erstellten Codes kundenspezifisch anzupassen.
Dementsprechend besteht ein Bedarf an einem Datenmigrations- und Formattransformationssystem,
das diese und andere Nachteile der Systeme nach dem Stand der Technik überwindet.
-
Kurze Darstellung der
Erfindung
-
Gemäß einem
Aspekt der vorliegenden Erfindung transformiert ein System Daten
mit einer ersten Datenstruktur in Daten mit einer anderen zweiten Datenstruktur,
die mit einer ausführbaren
Anwendung kompatibel ist. Das System enthält eine Konvertierungsvorlage
und einen Konvertierungsprozessor. Die Konvertierungsvorlage enthält vorbestimmte ausführbare Anweisungen
zum Steuern der Konvertierung von Datenquellensätzen mit einem ersten Datenformat
in Datenzielsätzen
mit einem anderen zweiten Datenformat. Der Konvertierungsprozessor bildet
Datenelemente in Datenfeldern der Datenquellensätzen in Datenelemente in entsprechenden
Datenfeldern der Datenzielsätzen
ab und konvertiert sie durch Manipulieren von Datenelementwerten
und Datenfeldcharakteristiken als Reaktion auf die Konvertierungsvorlage.
-
Kurze Beschreibung der
Zeichnungen
-
1 veranschaulicht
ein Datenmigrations- und Formattransformationssystem gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung.
-
2 veranschaulicht
ein Funktionsblockdiagramm einer Konvertierungsmaschine für das in 1 gezeigte
System gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
3 veranschaulicht
ein Leserprozessorverfahren für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
4 veranschaulicht
ein Mapper-Prozessorverfahren für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
5 veranschaulicht
ein Schreiberprozessorverfahren für das System und die Maschine,
die in 1 bzw. 2 gezeigt sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
6 veranschaulicht
ein Log-Schreiberprozessorverfahren für das System und die Maschine, die
in 1 bzw. 2 gezeigt sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
7 veranschaulicht
ein Konvertierungsplanfenster für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
8 veranschaulicht
ein Konvertierungsplanausführungsressourcenfenster für das System
und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
9 veranschaulicht
ein Felddefinitionsfenster für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
10 veranschaulicht
ein Feldattributsfenster für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
11 veranschaulicht
ein Datensatzeigenschaftendialogfenster für das System und die Maschine,
die in 1 bzw. 2 gezeigt sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
12 veranschaulicht
ein Prozessorlistenfenster für
das System und die Maschine, die in 1 bzw. 2 gezeigt
sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
13 veranschaulicht
ein Prozessoreigenschaftenfenster für das System und die Maschine, die
in 1 bzw. 2 gezeigt sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
14 veranschaulicht
ein Datenquelleneigenschaftenfenster für das System und die Maschine,
die in 1 bzw. 2 gezeigt sind, gemäß der bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsformen
-
1 veranschaulicht
ein Datenmigrations- und Formattransformationssystem 100 (im
weiteren als „das
System 100" bezeichnet).
Das System 100 enthält
allgemein ein erstes Computersystem 102, eine Konvertierungsmaschine 104 und
ein zweites Computersystem 106. Das erste Computersystem 102 enthält eine
erste zentrale Datenbank 108 zum Speichern von Datenquellensätzen mit
Datenelementen in Datenfeldern in einem ersten Datenformat. Das
zweite Computersystem 106 enthält eine zweite zentrale Datenbank 110 zum
Speichern von Datenzielsätzen
mit Datenelementen in Datenfeldern in einem zweiten Datenformat.
Bei jeder der ersten und zweiten zentralen Datenbank kann es sich
um eine beliebige Art von Datenspeicherungseinrichtung handeln und
kann ansonsten als Speicherbauelemente oder Datenbanken bezeichnet
werden. Sowohl das erste Computersystem 102 mit der ersten
zentralen Datenbank 108 als auch das zweite Computersystem 106 mit
der zweiten zentralen Datenbank 110 sind zusammen mit anderen
computerbezogenen Schaltungen und assoziierter Software dem Fachmann wohlbekannt.
-
Die
Konvertierungsmaschine 104 enthält eine Konvertierungsvorlage 112,
eine Benutzerschnittstelle 114, einen Vorprozessor 116,
einen Zuordnungsprozessor 118 und einen Konvertierungsprozessor 120.
Die Konvertierungsvorlage enthält ausführbare Anweisungen 113.
Die Benutzerschnittstelle 114 enthält eine Dateneingabeeinrichtung 126, einen
Benutzerschnittstellengenerator 128 und eine Datenausgabeeinrichtung 130.
Der Konvertierungsprozessor enthält
einen abbildenden Prozessor 122 und einen konvertierenden
Prozessor 124.
-
Das
System 100 ist für
den Einsatz durch einen Healthcare-Provider gedacht, der dafür verantwortlich
ist, sich um die Gesundheit und/oder das Wohlergehen von ihm anvertrauten
Menschen zu kümmern.
Ein Healthcare-Provider kann Dienste bereitstellen, die auf das
mentale, emotionelle oder physische Wohlergehen eines Patienten
ausgerichtet sind. Zu Beispielen für Healthcare-Provider zählen u.a.
ein Krankenhaus, ein Pflegeheim, eine Pflegeeinrichtung für betreutes
Wohnen, eine Einrichtung für
die Gesundheitspflege zu Hause, eine Hospizeinrichtung, eine Einrichtung
für kritische
Pflege, eine Gesundheitspflegeklinik, eine Klinik zur physikalischen
Therapie, eine chiropraktische Klinik und eine Zahnarztpraxis. Bevorzugt
ist der Healthcare-Provider
ein Krankenhaus. Wenn ein Healthcare-Provider eine ihm anvertraute
Person betreut, diagnostiziert er einen Zustand oder eine Krankheit
und empfiehlt zur Heilung des Zustands einen Behandlungsablauf,
falls eine derartige Behandlung existiert, oder liefert vorbeugende
Gesundheitsdienste. Zu Beispielen für die Menschen, die von einem
Healthcare-Provider betreut werden, zählen u.a. ein Patient, ein
Bewohner, ein Klient, ein Benutzer und eine individuelle Person.
-
Die
Computersysteme 102 und 106 stellen jeweils einen
elektronischen Mechanismus bereit, damit ein Healthcare-Provider
(ansonsten als „Mitarbeiter
im Gesundheitswesen" bezeichnet)
auf Gesundheitsdaten zugreifen kann. Jedes der Computersysteme 102 und 106 kann
stationär
oder mobil (d.h. tragbar) sein und kann in einer Vielfalt von Formen implementiert
sein, einschließlich
u.a. ein Desktop-Computer, ein Laptop-Computer, eine Workstation,
eine netzbasierte Einrichtung, ein PDA (Personal Digital Assistant),
eine Smartcard, ein Mobiltelephon, ein Pager und eine Armbanduhr.
Jedes der Computersysteme 102 und 106 kann in
einer zentralisierten oder dezentralisierten Konfiguration implementiert
sein.
-
Die
Benutzerschnittstelle 114 enthält die Dateneingabeeinrichtung 126,
die es einem Benutzer gestattet, Informationen in die Konvertierungsmaschine 104 einzugeben,
und die Datenausgabeeinrichtung 130, über die ein Benutzer Informationen von
der Konvertierungsmaschine 104 erhalten kann. Bevorzugt
ist die Dateneingabeeinrichtung 126 eine Tastatur, es kann
sich dabei aber auch um einen Berührungsschirm oder ein Mikrophon
mit Spracherkennungsprogramm handeln (als Beispiel). Bevorzugt ist
die Datenausgabeeinrichtung 130 ein Display, sie kann aber
auch ein Lautsprecher sein (als Beispiel). Die Datenausgabeeinrichtung 130 liefert dem
Benutzer Informationen als Reaktion darauf, daß die Dateneingabeeinrichtung 126 Informationen von
einem Benutzer erhält,
oder als Reaktion auf eine andere Aktivität durch die Konvertierungsmaschine 104.
Beispielsweise präsentiert
das Display Informationen als Reaktion darauf, daß ein Benutzer über die
Tastatur Informationen in die Konvertierungsmaschine 104 eingibt.
-
Der
Benutzerschnittstellengenerator 128 erzeugt Informationen,
bevorzugt in Form von Displaybildern, für die Datenausgabeeinrichtung 130.
Ein Benutzerschnittstellenprozessor oder Benutzerschnittstellengenerator
ist ein bekanntes Element, das elektronische Schaltungen oder Software
oder eine Kombination aus beidem enthält, um Displaybilder oder Teile
davon zu erzeugen. Eine Benutzerschnittstelle umfaßt ein oder
mehrere Displaybilder, die eine Benutzerinteraktion mit einem Prozessor oder
einer anderen Einrichtung ermöglichen.
Zudem kann jede der von dem System 100 und der Maschine 104 der 1 bzw. 2 bereitgestellten
Funktionen in Hardware, Software oder einer Kombination aus beidem
implementiert sein.
-
Die
Benutzerschnittstelle 114 stellt bevorzugt eine graphische
Benutzeroberfläche
(GUI) bereit, wobei zumindest Teile der Dateneingabeeinrichtung 126 und
zumindest Teile der Datenausgabeeinrichtung 130 miteinander
integriert sind, damit man eine benutzerfreundliche Schnittstelle
erhält.
Beispielsweise bildet ein Web-Browser einen Teil jeder der Eingabeeinrichtung
und der Ausgabeeinrichtung, indem er gestattet, daß Informationen
in den Web-Browser eingegeben werden, und indem er gestattet, daß Informationen
durch den Web-Browser angezeigt werden.
-
Die
Konvertierungsmaschine 104 kommuniziert mit jedem der Computersysteme 102 und 106 über einen
verdrahteten oder drahtlosen Kommunikationsweg. Der Ausdruck „Weg" kann ansonsten auch
als ein Netz, eine Strecke, ein Kanal oder als eine Verbindung bezeichnet
werden. Der Kommunikationsweg kann jede Art von Protokoll verwenden, ansonsten
als Datenformat bezeichnet, einschließlich u.a. ein Internetprotokoll
(IP), ein Transmission-Control-Protocol-Internet-Protokoll
(TCP/IP), ein Hyper Text Transmission Protocol (HTTP), ein RS232-Protokoll,
ein Ethernet-Protokoll,
ein mit dem Medical Interface Bus (MIB) kompatibles Protokoll, ein
LAN- (Local Area Network)-Protokoll, ein WAN(Wide Area Network)-Protokoll,
ein mit dem IEEE (Institute Of Electrical And Electronic Engineers)-Bus
kompatibles Protokoll, ein DICOM- (Digital and Imaging Communications)-Protokoll
und ein HL7- (Health Level Seven)-Protokoll.
-
Die
Gesundheitsweseninformationen werden von einer oder mehreren verschiedenen
Abteilungen erzeugt, die ansonsten als Gesundheitswesenquellen innerhalb
eines oder beider Computersysteme 102 und 106 bezeichnet
sind. Beispiele für die
Gesundheitswesenquellen beinhalten u.a. ein Krankenhaussystem, ein
Medizinsystem und ein Arztsystem, ein Datensatzsystem, ein Radiologiesystem,
ein Buchhaltungssystem, ein Fakturierungssystem und jedes beliebige
andere System, das in dem System 100 erforderlich ist oder
gewünscht
wird. Das Krankenhaussystem enthält
weiterhin u.a. ein Laborsystem, ein Pharmaziesystem, ein Finanzsystem
und ein Pflegesystem. Das Medizinsystem, ansonsten als Unternehmen
bezeichnet, stellt eine Gesundheitsklinik oder ein anderes Krankenhaussystem
dar. Das Arztsystem stellt eine Arztpraxis dar. Die Gesundheitsweseninformationen
können
in einer Vielfalt von Dateiformaten repräsentiert werden, einschließlich u.a.
und in einer beliebigen Kombination: numerische Dateien, Textdateien,
Graphikdateien, Videodateien, Audiodateien und visuelle Dateien.
Die Graphikdateien enthalten eine graphische Spur, einschließlich beispielsweise
eine Elektrokardiogramm- (EKG)-Spur und eine Elektroencephalogramm- (EEG)-Spur.
Die Videodateien enthalten ein Videoeinzelbild oder eine Videobildsequenz.
Die Audiodateien beinhalten einen Audioton oder ein Audiosegment.
Die visuellen Dateien beinhalten ein Diagnosebild, einschließlich beispielsweise
eine Magnetresonanz-tomographieaufnahme (MRI – Magnetic Resonance Image),
ein Röntgenbild,
einen Positronenemissionstomographie- (PET)-Scan oder ein Sonogramm.
-
In
der Konvertierungsmaschine 104 können ein oder mehrere Elemente,
wie hier gezeigt und beschrieben, einen oder mehrere Prozessoren
enthalten, wie etwa den Vorprozessor 116, den Zuordnungsprozessor 118 und
den Konvertierungsprozessor 124. Der Ausdruck Prozessor,
wie er hier verwendet wird, umfaßt ein beliebiges Element oder
eine Kombination der Elemente Hardware, Firmware und/oder Software.
Ein Prozessor wirkt auf gespeicherte und/oder empfangene Informationen
durch Manipulieren, Analysieren, Modifizieren, Konvertieren oder Übertragen
von Informationen zur Verwendung durch eine ausführbare Prozedur oder eine Informationseinrichtung
und/oder durch Lenken der Informationen an eine Ausgabeeinrichtung.
Ein Prozessor kann die Fähigkeiten
eines Controllers oder Mikroprozessors verwenden oder umfassen (als
Beispiel).
-
Ein
Prozessor führt
als Reaktion auf die Verarbeitung eines Objekts Aufgaben aus. Ein
Objekt, wie es hier verwendet wird, umfaßt eine Gruppierung von Daten
und/oder ausführbaren
Anweisungen, eine ausführbare
Prozedur oder eine ausführbare Anwendung.
Eine ausführbare
Anwendung, wie hier verwendet, umfaßt Code oder maschinenlesbare
Anweisung zum Implementieren vorbestimmter Funktionen einschließlich jener
eines Betriebssystems, eines Gesundheitsweseninformationssystems
oder eines anderen Informationsverarbeitungssystems (als Beispiel)
als Reaktion auf Benutzerbefehl oder -eingabe. Eine ausführbare Prozedur,
wie hier verwendet, ist ein Segment aus Code (maschinenlesbare Anweisung),
Subroutine oder eine andere eigenständige Sektion von Code oder
einen anderen eigenständigen
Abschnitt einer ausführbaren
Anwendung zum Ausführen
eines oder mehrerer bestimmter Prozesse und kann das Ausführen von
Operationen an empfangenen Eingabeparametern (oder als Reaktion
auf empfangene Eingabeparameter) beinhalten und resultierende Ausgabeparameter
bereitstellen.
-
Das
System 100 stellt vorteilhafterweise eine flexible und
kundenspezifisch anpaßbare
Weise bereit, um komplexe Daten von einer Stelle (z. B. Computersystem 102 und/oder
zentrale Datenbank 108) zu einer anderen (z. B. Computersystem 106 und/oder
zentrale Datenbank 110) zu migrieren. Das System 100 gestattet,
daß Benutzer über die
graphische Benutzeroberfläche 114 Konvertierungsvorlagen
erzeugen und definieren, die spezifizieren, wie komplexe Daten von
einer Stelle zu einer anderen bewegt werden. Bevorzugt erleichtert
das System 100 die Migration von Daten von klinischen elektronischen
medizinischen Datensatzsystemen zu einer anderen klinischen ausführbaren
Anwendung.
-
Die
Konvertierungsmaschine 104 ermöglicht die Erzeugung von Modellkonvertierungsvorlagen (ansonsten
als „Pläne" bezeichnet), die übliche Konvertierungsaufgaben
unterstützen.
Die Konvertierungsvorlagen 112 lassen sich über die
graphische Benutzeroberfläche 114 kundenspezifisch
anpassen, damit sie spezifische Anforderungen handhaben können. Als
Reaktion auf das Testen einer Konvertierungsvorlage 112 verwendet
ein Benutzer die graphische Benutzeroberfläche 114, um die Konvertierungsvorlage 112 zu
modifizieren, damit identifizierte Probleme gelöst werden, ohne daß die Erstellung ausführbaren
Softwarecodes erforderlich ist. Die Konvertierungsvorlage 112 umfaßt eine
vorbestimmte Anweisung 113, die einen Konvertierungsprozeß steuert
und in XML oder einer anderen Softwareprogrammcodesprache implementiert
ist (als Beispiel).
-
Die
Prozessoren 116, 118 und 120 empfangen
eine Konvertierungsvorlage 112, die die Quellendaten, Zieldaten
und die Abbildung definiert, und verwenden diese Konvertierungsvorlage 112,
um Daten von einer Stelle zu einer anderen zu bewegen. Die graphische
Benutzeroberfläche 114 gestattet,
daß Endbenutzer
Konvertierungsvorlagen 112 erstellen, modifizieren und
ausführen.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung transformiert das System 100 Daten einer
ersten Datenstruktur in eine mit einer ausführbaren Anwendung kompatible
andere zweite Datenstruktur. Die Konvertierungsvorlage 112 enthält eine oder
mehrere vorbestimmte ausführbare
Anweisungen 113 zum Steuern der Konvertierung von in einer ersten
zentralen Datenbank 108 gespeicherten Datenquellensätzen von
einem ersten Datenformat zu in einer zweiten zentralen Datenbank 110 gespeicherten
Datenzielsätzen
mit einem anderen zweiten Datenformat. Von dem Konvertierungsprozessor 120 werden
Datenelemente in Datenfeldern der Quellensätze in Datenelemente in entsprechenden
Datenfeldern der Zielsätze
abgebildet 122 und konvertiert 124 durch Manipulieren
von Datenelementwerten und Datenfeldcharakteristiken als Reaktion
auf die Konvertierungsvorlage 112.
-
Die
Konvertierungsvorlage 112 assoziiert eine ausführbare Prozedur
mit einem individuellen Datensatz. Die ausführbare Prozedur wird von dem Konvertierungsprozessor 120 beim
Abbilden und Konvertieren von Datenelementen des individuellen Datensatzes
zur Speicherung in entsprechenden Datenfeldern eines Zieldatensatzes
ausgeführt.
-
Der
Vorprozessor 116, der die Konvertierungsvorlage 112 validiert,
stellt einen gültigen
Transformationsprozeß bereit
und initiiert als Reaktion auf einen Validierungsfehler eine Meldung,
die einen ungültigen
Zustand identifiziert.
-
Von
dem Konvertierungsprozessor 120 werden Datenelemente in
Datenfeldern der Quellendatensätze
in Datenelemente in entsprechenden Datenfeldern der Zieldatensätze abgebildet
und konvertiert, wobei mindestens eines der folgenden verwendet
wird: (a) ein Attribut, das ein Quellendatensatzfeld-Datenelement
identifiziert, soll auf ein identifiziertes Zieldatensatz-Datenfeld abgebildet
werden und (b) ein Quellendatensatz-Datenfeldattribut, das ein Quellendatensatz-Datenfeld-Datenelement identifiziert,
soll einem Datentyp zugeordnet werden, der von einem Typ des Quellendatensatz-Datenfeld-Datenelements verschieden
ist.
-
Der
Abbildungsprozessor 122 identifiziert ein Bestimmungsortdatenfeld
eines Zieldatensatzes zum Aufnehmen eines Datenelements des zweiten
Datenformats, bereitgestellt durch Konvertierung eines Datenelements
des ersten Datenformats des Quellendatensatzes durch den Konvertierungsprozessor 120.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung transformiert das System 100 Daten einer
ersten Datenstruktur in eine mit einer ausführbaren Anwendung kompatible
andere zweite Datenstruktur. Das System 100 enthält einen
Zuordnungsprozessor 118 und den Konvertierungsprozessor 120.
Der Zuordnungsprozessor 118 assoziiert eine ausführbare Prozedur
mit mindestens einem der folgenden: (a) eines Datensatzes und (b)
eines Datenfelds eines Datensatzes von mehreren Datenquellensätzen. Von
dem Konvertierungsprozessor 120 werden Datenelemente in
Datenfelder der Quellendatensätze
mit einem ersten Datenformat in Datenelemente in Datenfeldern von
Zieldatensätzen
mit einem anderen zweiten Datenformat unter Verwendung der assoziierten
ausführbaren
Prozedur abgebildet 122 und konvertiert 124.
-
Die
Konvertierungsvorlage 112 umfaßt eine vorbestimmte ausführbare Anweisung 113 zum
Steuern des Abbildens und Konvertierens der Datenelemente.
-
Das
System 100 steuert die ausführbare Prozedur zur Ausführung mindestens
eines der folgenden: (a) vor dem Konvertierungsprozessor 120 Ausführen der
Abbildung und (b) nachdem der Konvertierungsprozessor 120 die
Abbildung ausführt.
-
Der
Benutzerschnittstellengenerator 128 initiiert eine Anzeige
eines Bilds, das es einem Benutzer ermöglicht, eine ausführbare Prozedur
auszuwählen
zur Assoziierung mit mindestens einem der folgenden: (a) einem Datensatz
und (b) einem Datenfeld eines Datensatzes von mehreren Datenquellensätzen. Der
Benutzerschnittstellengenerator 128 initiiert eine Anzeige
eines Bilds, das es einem Benutzer ermöglicht, Eigenschaften einer
ausführbaren Prozedur
auszuwählen
zur Assoziierung mit mindestens einem der folgenden: (a) einem Datensatz
und (b) einem Datenfeld eines Datensatzes von mehreren Datenquellensätzen. Der
Benutzerschnittstellengenerator 128 initiiert weiterhin
ein Anzeige eines Bilds, die es einem Benutzer ermöglicht,
eine individuelle ausführbare
Prozedur auszuwählen
zur Assoziierung mit einem Datensegment umfassend mindestens eines
der folgenden: (a) einen individuellen Datensatz und (b) ein individuelles
Datenfeld eines Satzes von mehreren Datenquellensätzen, und
die ausführbare
Prozedur wird verwendet zum Konvertieren von Daten des Datensegments
eines ersten Datenformats in ein anderes zweites Datenformat. Die
ausführbare
Prozedur wird auch verwendet beim Abbilden von Daten des Quellendatensatz-Datensegments
auf ein Zieldatensatz-Datensegment. Der Zuordnungsprozessor 118 repliziert
die ausführbare Prozedur
und assoziiert die replizierte ausführbare Prozedur mit mindestens
einem der folgenden: (a) einem Datensatz und (b) einem Datenfeld
eines Datensatzes von mehreren Datenquellensätzen.
-
Vom
Konvertierungsprozessor 120 werden Datenelemente in Datenfeldern
der Quellendatensätze
in Datenelemente in entsprechenden Datenfeldern der Zieldatensätze abgebildet 122 und
konvertiert 124 unter Verwendung von einem oder mehreren der
folgenden: (a) ein Attribut, das ein Quellendatensatzfeld identifiziert,
(b) ein Zieldatensatz-Datenfeld, (c) eine vor der Abbildung auszuführende Funktion, (d)
eine nach der Abbildung auszuführende
Funktion, (e) ein Quellendatensatztyp, (f) ein Zieldatensatztyp und
(g) eine durchzuführende
Aktion als Reaktion auf die Detektion eines während der Konvertierung auftretenden
Fehlers. Vom Konvertierungsprozessor 120 werden die Datenelemente
durch Manipulieren von Datenelementwerten und Datenfeldcharakteristiken
abgebildet 122 und konvertiert 124 unter Verwendung
einer assoziierten ausführbaren
Prozedur.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung transformiert das System 100 Daten einer
ersten Datenstruktur in eine mit einer ausführbaren Anwendung kompatible
andere zweite Datenstruktur. Das System 100 enthält den Benutzerschnittstellengenerator 128 und
den Konvertierungsprozessor 120. Der Benutzerschnittstellengenerator 128 initiiert
eine Anzeige eines Bilds, das einem Benutzer ermöglicht, eine individuelle ausführbare Prozedur
auszuwählen
zur Assoziierung mit einem Datensegment umfassend eines oder mehrere
der folgenden: (a) einen individuellen Datensatz und (b) ein individuelles
Datenfeld eines Satzes von mehreren Datenquellensätzen. Vom
Konvertierungsprozessor 120 werden Datenelemente in dem
Datensegment mit einem ersten Datenformat in Datenelemente in einem
Datensegment von Zieldatensätzen
mit einem anderen zweiten Datenformat unter Verwendung der assoziierten
ausführbaren
Prozedur abgebildet 122 und konvertiert 124.
-
2 veranschaulicht
ein Funktionsblockdiagramm der Konvertierungsmaschine 104 für das in 1 gezeigte
System. Die Funktionsblöcke
der Konvertierungsmaschine 104 in 2 führen die gleichen
Funktionen aus wie die konzeptuellen Blöcke der Konvertierungsmaschine 104 in 1.
-
Die
Konvertierungsmaschine 104 verarbeitet Konvertierungsvorlagen 112 in
vier Phasen:
- 1. Validierung – Stellt
sicher, daß die
Konvertierungsvorlage 112 eine gültige Datenbewegungsspezifikation
definiert.
- 2. Vorverarbeitung – Initialisiert
Datenstrukturen und Datenquellenverbindungen.
- 3. Ausführung – Bewegt
Daten von einer Stelle zu einer anderen.
- 4. Nachverarbeitung – Bereinigt
Datenstrukturen und Datenquellenverbindungen.
-
Die
in 2 detaillierte Ausführungsphase ist der Ort, wo
die Hauptarbeit erfolgt, und ist in die folgenden Funktionen unterteilt:
- 1. Lesen – Ein
oder mehrere Maschinenleser 202 bringen Daten von einem
Quellensystem 102 (1) in die
maschineninternen Warteschlangen.
- 2. Abbildung – Ein
oder mehrere Maschinenmapper 206 erzeugen einen oder mehrere
Ausgabedatensätze
von jedem von dem Leser populierten Datensatz.
- 3. Schreiben – Ein
oder mehrere Maschinenschreiber 209 bewegen Daten von den
maschineninternen Warteschlangen zum Zielsystem 106 (1).
- 4. Protokollschreiber – Ein
oder mehrere Maschinenprotokollschreiber protokollieren Datenfehler/Warnungen
von verarbeiteten Datensätzen.
-
Die
Maschinenprozessoren führen
die obigen Maschinenfunktionen aus. Ein Maschinenprozessor ist ein
Modul, der eine spezifische Konvertierungsmaschinenschnittstelle
implementiert und eine spezifische Funktion ausführt. Die folgende Liste umreißt die Prozessortypen:
- 1. Leser – Liest
Daten von einer Datenquelle und bewegt sie in die maschineninternen
Warteschlangen.
- 2. Mapper – Erstellt
Ausgabedatensätze
aus Eingabedatensätzen.
- 3. Schreiber – Bewegt
Daten von maschineninternen Warteschlangen zu Zieldatenquellen.
- 4. Feldwertegeber – Validiert
und manipuliert Feldwerte.
- 5. Datensatzwertegeber – Validiert
und manipuliert innerhalb eines Datensatzes enthaltene Felder.
- 6. Protokollschreiber – Aufzeichnen
und Schreiben von Datenfehlern und/oder Warnungen für einen
von der Konvertierungsmaschine 104 verarbeiteten Datensatz.
Dieser Prozessor ist optional, wenn eine Konvertierung keine Fehler/Warnungen
verarbeiten muß.
-
Eine
Hauptkomponente der Konvertierungsmaschine 104 ist der
Controller 204. Der Controller 204 lenkt Datensätze von
der Ausgabewarteschlange eines Prozessors zur Eingabewarteschlange
eines anderen Prozessors. Ein sequentieller Fluß des Funktionsblockdiagramms
der Konvertierungsmaschine 104 beginnt mit der/den externen
Eingabedatenquelle(n) 201, weiter zu dem/den Leser(n) 202,
zu der/den lesenden Ausgabewarteschlange(n) 203, zum Controller 204,
zu der/den abbildenden Eingabewarteschlange(n) 205, zu
dem/den Mapper(n) 206, zu der/den abbildenden Ausgabewarteschlange(n) 207,
zurück
zum Controller 204, zu der/den schreibenden Eingabewarteschlange(n) 208,
zu dem/den Lesern 209 und zu der/den externen Ausgabedatenquelle(n) 210.
Der Controller 204 schreibt durch eine Verarbeitung eines
Datensatzes erzeugte Fehler/Warnungen zu dem Protokollschreiber 211.
-
3 veranschaulicht
ein Leserprozessorverfahren 300 für das System 100 und
die Maschine 104, in 1 bzw. 2 gezeigt. 3 zeigt
ein Flußdiagramm,
das den Logikfluß des
Leserprozessors 202 umreißt, wie in 3 gezeigt.
Die linke Hälfte
des Flußdiagramms
(als Schritte 301–307 gezeigt) umreißt die Logik, die
der Leserprozessor 202 durchführt, um Datensätze aus
seinen zugewiesenen Datenquellen zu lesen, die Daten in die Datensatzobjekte
der Maschinen zu laden und dann die Datensätze in seine Ausgangsschlange
einzufügen.
Die rechte Hälfte
des Flußdiagramms
(als Schritte 308-315 gezeigt) umreißt die Logik,
die von dem Controller 204 ergriffen wird, wenn er die
von dem Leserprozessor 202 in den Speicher geladenen Datensätze verarbeitet.
Somit stellt jede Seite des Flußdiagramms
einen separaten Ausführungsfaden
dar.
-
Bei
Schritt 301 beginnt das Verfahren die linke Hälfte des
Flußdiagramms.
-
Bei
Schritt 302 liest das Verfahren 300 einen Datensatz
aus der/den externen Eingabedatenquelle(n) 201 wie etwa
der ersten zentralen Datenbank 108 (1).
-
Bei
Schritt 304 validiert das Verfahren 300 den Datensatz.
-
Bei
Schritt 305 fügt
das Verfahren den Datensatz in die Ausgabewarteschlange ein.
-
Bei
Schritt 306 bestimmt das Verfahren 300, ob die
entsprechenden Datensätze
gelesen worden sind. Wenn die Bestimmung bei Schritt 302 positiv
ist, dann geht das Verfahren 300 weiter zu Schritt 307; wenn
ansonsten die Bestimmung bei Schritt 302 negativ ist, dann
kehrt das Verfahren 300 zurück zu Schritt 302.
Bei Schritt 307 beendet das Verfahren 300 die
linke Hälfte
des Flußdiagramms
als Reaktion auf Schritt 306. Bei Schritt 308 beginnt
das Verfahren 300 die rechte Hälfte des Flußdiagramms.
Bei Schritt 309 liest das Verfahren 300 einen
Datensatz aus der Ausgabewarteschlange. Bei Schritt 310 bestimmt das
Verfahren 300, ob in dem Datensatz irgendwelche Fehler
vorliegen. Wenn die Bestimmung bei Schritt 310 positiv
ist, dann geht das Verfahren 300 weiter zu Schritt 311;
wenn ansonsten die Bestimmung negativ ist, dann geht das Verfahren 300 weiter zu
Schritt 312. Bei Schritt 311 sendet das Verfahren 300 als
Reaktion auf Schritt 310 eine Fehlermeldung an den Protokollschreiber 211 (2).
Bei Schritt 312 bestimmt das Verfahren 300, ob
es irgendwelche Warnungen hinsichtlich des Datensatzes als Reaktion
auf Schritt 310 gibt. Wenn die Bestimmung bei Schritt 312 positiv
ist, dann geht das Verfahren 300 weiter zu Schritt 313;
wenn ansonsten die Bestimmung bei Schritt 312 negativ ist,
dann geht das Verfahren 300 weiter zu Schritt 314.
Bei Schritt 313 sendet das Verfahren 300 den Datensatz
an den Mapper 206 und sendet die Warnung als Reaktion auf
Schritt 312 an den Protokollschreiber 211. Bei
Schritt 314 sendet das Verfahren 300 den Datensatz
als Reaktion auf Schritt 312 an den Mapper 206.
Bei Schritt 315 endet das Verfahren 300 die rechte
Hälfte
des Flußdiagramms
als Reaktion auf einen der Schritte 311, 313 und 314. 4 veranschaulicht
ein Mapper-Prozessorverfahren 400 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt. 4 zeigt
ein Flußdiagramm,
das den Logikfluß des
Mapper-Prozessors 206 umreißt, wie in 2 gezeigt. Die
linke Hälfte
des Flußdiagramms
(als Schritte 401–408 gezeigt)
umreißt
die Logik, die der Mapper 206 ausführt, um Datensätze aus
seiner zugeordneten Eingabewarteschlange zu lesen, neue Ausgabedatensätze zu erstellen
und dann die Datensätze
in seine Ausgabewarteschlange einzufügen. Die rechte Hälfte des
Flußdiagramms
(als Schritte 409–417 gezeigt)
umreißt
die Logik, die von dem Controller 204 ergriffen wird, während er
die von dem Mapper 206 erstellten Datensätze verarbeitet.
Somit stellt jede Seite des Flußdiagramms
separate Ausführungsfäden dar.
-
Bei
Schritt 401 beginnt das Verfahren 400 die linke
Hälfte
des Flußdiagramms.
Bei Schritt 402 liest das Verfahren 400 einen
Datensatz aus der Eingabewarteschlange. Bei Schritt 403 führt das
Verfahren 400 eine Vorabbildungsverarbeitung durch. Bei Schritt 404 bildet
das Verfahren 400 Datensätze in neu erstellte Ausgabedatensätze ab.
Bei Schritt 405 führt
das Verfahren 400 eine Nachabbildungsverarbeitung durch.
Bei Schritt 406 fügt
das Verfahren 400 den Datensatz in die Ausgabewarteschlange
ein. Bei Schritt 407 bestimmt das Verfahren 400,
ob der Mapper-Prozessor 206 das Ende der Eingabewarteschlange
erreicht hat (d.h. die entsprechenden Datensätze gelesen hat). Wenn die
Bestimmung bei Schritt 407 positiv ist, dann geht das Verfahren 400 weiter
zu Schritt 408; wenn ansonsten die Bestimmung bei Schritt 407 negativ
ist, dann kehrt das Verfahren 400 zu Schritt 402 zurück. Bei
Schritt 408 beendet das Verfahren 400 die linke
Hälfte
des Flußdiagramms
als Reaktion auf Schritt 407. Bei Schritt 409 beginnt
das Verfahren 400 die rechte Hälfte des Flußdiagramms.
Bei Schritt 410 liest das Verfahren 400 einen
Datensatz aus der Ausgabewarteschlange. Bei Schritt 411 bestimmt
das Verfahren 400, ob der Datensatz Fehler aufweist. Wenn
die Bestimmung bei Schritt 411 positiv ist, dann geht das
Verfahren 400 weiter zu Schritt 412; wenn ansonsten
die Bestimmung bei Schritt 411 negativ ist, dann geht das
Verfahren 400 weiter zu Schritt 413. Bei Schritt 412 sendet
das Verfahren 400 die Fehler in dem Datensatz an den Protokollschreiber 211 als
Reaktion auf Schritt 411. Bei Schritt 413 bestimmt
das Verfahren 400 als Reaktion auf Schritt 411,
ob es Warnungen hinsichtlich des aus der Eingabewarteschlange gelesenen
oder der Ausgabewarteschlange gelieferten Datensatzes gibt. Wenn
die Bestimmung bei Schritt 413 lautet, daß es etwaige
Warnungen hinsichtlich des aus der Eingabewarteschlange gelesenen
Datensatzes gibt, dann geht das Verfahren 400 weiter zu
Schritt 412. Wenn die Bestimmung bei Schritt 413 lautet,
daß es
etwaige Warnungen hinsichtlich des aus der Ausgabewarteschlange
gelesenen Datensatzes gibt, dann geht das Verfahren 400 weiter
zu Schritt 414. Wenn die Bestimmung bei Schritt 413 lautet,
daß es
keine Warnungen hinsichtlich des aus der Ausgabewarteschlange gelesenen
Datensatzes gibt, dann geht das Verfahren 400 weiter zu
Schritt 415. Bei Schritt 414 sendet das Verfahren 400 als Reaktion
auf Schritt 413 den Datensatz an den Schreiber 209 und
den Protokollschreiber 211. Bei Schritt 415 sendet
das Verfahren 400 als Reaktion auf Schritt 413 den
Datensatz an den Schreiber 209. Bei Schritt 416 beendet
das Verfahren 400 als Reaktion auf einen der Schritte 412, 414 und 415 die
rechte Hälfte
des Flußdiagramms. 5 veranschaulicht ein Schreiberprozessorverfahren 500 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt. 5 zeigt
ein Flußdiagramm,
das den Logikfluß des
Schreiberprozessors 209 umreißt. Die linke Hälfte des
Flußdiagramms
(als Schritte 501–508 gezeigt)
umreißt
die Logik, die der Schreiber 209 ausführt, um Datensätze aus
seiner zugeordneten Eingabewarteschlange zu lesen, Datensätze zu seinen
zugeordneten Datenquellen zu schreiben und dann etwaige Problemdatensätze in seine
Ausgabewarteschlange einzufügen.
Die rechte Hälfte
des Flußdiagramms
(als Schritte 509–513 gezeigt)
umreißt
die Logik, die der Controller 204 ergreift, während er
die von dem Schreiber erstellten Datensätze verarbeitet. Somit stellt
jede Seite des Flußdiagramms
getrennte Ausführungsfäden dar.
-
Bei
Schritt 501 beginnt das Verfahren 500 mit der
linken Hälfte
des Flußdiagramms.
Bei Schritt 502 liest das verfahren 500 einen
Datensatz aus der Eingabewarteschlange. Bei Schritt 503 validiert
das Verfahren 500 den Datensatz. Bei Schritt 504 schreibt das
Verfahren 500 eine Datenaufzeichnung zu der/den externen
Ausgabedatenquelle(n) 210 (2), wie
etwa dem zweiten zentralen Datenspeicher 110 (1),
als Reaktion auf eine positive Validierung bei Schritt 503.
Bei Schritt 506 bestimmt das Verfahren 500, ob
der Schreiber das Ende der Eingabewarteschlange erreicht hat (d.h.
liest die entsprechenden Datensätze).
Wenn die Bestimmung bei Schritt 506 positiv ist, dann geht
das Verfahren 500 weiter zu Schritt 508; wenn
ansonsten die Bestimmung bei Schritt 506 negativ ist, dann
kehrt das Verfahren 500 zurück zu Schritt 502.
Bei Schritt 507 fügt das
Verfahren 500 Datensätze
mit Problemen (z. B. Fehlern oder Warnungen) als Reaktion auf eine
negative Validierung bei Schritt 503 zu der Ausgabewarteschlange
hinzu. Bei Schritt 508 beendet das Verfahren 500 die
linke Hälfte
des Flußdiagramms als
Reaktion auf Schritt 506. Bei Schritt 509 beginnt das
Verfahren 500 mit der rechten Hälfte des Flußdiagramms.
Bei Schritt 510 liest das Verfahren 500 einen
Datensatz aus der Ausgabewarteschlange. Bei Schritt 511 bestimmt
das Verfahren 500, ob es etwaige Fehler oder Warnungen
hinsichtlich des Datensatzes als Reaktion auf Schritt 510 gibt.
Wenn die Bestimmung bei Schritt 511 positiv ist, dann geht
das Verfahren 500 weiter zu Schritt 512; wenn
ansonsten die Bestimmung bei Schritt 511 negativ ist, dann
geht das Verfahren 500 weiter zu Schritt 513.
Bei Schritt 512 sendet das Verfahren 500 Fehler
oder Warnungen hinsichtlich des Datensatzes an den Protokollschreiber 211 (2)
als Reaktion auf Schritt 511. Bei Schritt 513 beendet
das Verfahren 500 die rechte Hälfte des Flußdiagramms
als Reaktion auf einen der Schritte 511 und 512.
-
6 veranschaulicht
ein Protokollschreiber-Prozessorverfahren 600 für das System 100 und die
Maschine 104, in 1 bzw. 2 gezeigt. 6 zeigt
ein Flußdiagramm,
das den Logikfluß des Protokollschreiber-Prozessors 211 umreißt (2). Das
Flußdiagramm
umreißt
die Logik, die der Protokollschreiber 211 ausführt, um
Aufzeichnungen aus seiner zugeordneten Eingabewarteschlange zu lesen,
Fehler/Warnungen und etwaige relevante Daten aus dem Datensatz in
seine zugeordnete(n) Datenquelle(n) zu schreiben.
-
Bei
Schritt 601 beginnt das Verfahren 600. Bei Schritt 602 liest
das Verfahren 600 einen Datensatz aus der Eingabewarteschlange
des Protokollschreibers 211. Bei Schritt 603 schreibt
das Verfahren 600 den Datensatz und etwaige Meldungen (z.
B. Fehler oder Warnungen), die mit den Datensätzen assoziiert sind, in die
externen Datenquellen 2/1 und/oder 210. Bei Schritt 604 bestimmt
das Verfahren 600, ob der Protokollschreiber 211 das
Ende der Eingabewarteschlange erreicht hat (d.h. die entsprechenden
Datensätze
gelesen hat). Wenn die Bestimmung bei Schritt 604 positiv
ist, dann geht das Verfahren 600 weiter zu Schritt 605;
wenn ansonsten die Bestimmung bei Schritt 604 negativ ist,
dann kehrt das Verfahren 600 zurück zu Schritt 602.
Bei Schritt 605 endet das Verfahren 600.
-
Die 7 bis 14 veranschaulichen
Beispiele für
Benutzeroberflächenfenster,
die vorgesehen sind, um die Benutzeroberfläche 114 in der Konvertierungsmaschine 104 zu
implementieren, wie in 1 gezeigt. Die in 1 gezeigte
graphische Benutzeroberfläche
(GUI) 114 gestattet die Entwicklung von Plänen, die
definieren, wie Daten von einer Stelle zu einer anderen bewegt werden.
-
7 veranschaulicht
ein Konvertierungsplanfenster 700 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt.
Um einen Konvertierungsplan zu erstellen, verwendet ein Benutzer
wie etwa ein Konvertierungsplanentwickler den Konvertierungsplantyp
Wartungsfunktion zum Definieren der Quellendatensätze, Zieldatensätze, Datenabbildung
und Planoptionen. 7 zeigt einen Überblick über einen
Konvertierungsplan. Die linke Seite des Konvertierungsplanfensters 700 zeigt
die Konvertierungsplantypen einschließlich der Leserausgabedatensätze 701,
der Schreibereingabedatensätze 702,
der Prozessoren 703 und der Datenquellen 704.
Die Leserdatensätze 701 definieren, was
der oder die Leserprozessor(en) 202 (2)
von seiner/seinen zugeordneten Datenquelle(n) 201 (in 7 als 704 dargestellt)
in den Speicher laden. Die Schreiberdatensätze 702 definieren,
welche Datensätze
von dem/den Mapper-Prozessor(en) 206 erstellt und zu dem/den
Schreiberprozessor(en) 209 geschickt werden. Der/Die Schreiberprozessor(en) 209 sendet
die von dem Mapper 206 erstellten Schreiberdatensätze zu seiner/seinen
zugeordneten Datenquelle(n) 210 (in 4 als 704 dargestellt).
Die rechte Hälfte
des Konvertierungsplanfensters 700 zeigt die Anzahl der
Leserausgabedatensätze 705, die
Anzahl der Schreiberausgabedatensätze 706, die Anzahl
der Prozessoren 707 und die Anzahl der Datenquellen 708.
-
8 veranschaulicht
ein Konvertierungsplanausführungsressourcenfenster 800 für das System 100 und
die Maschine 104, in 1 bzw. 2 gezeigt.
Nachdem ein Benutzer die Konvertierungsvorlage erstellt, benutzt
das Konvertierungsplanausführungsressourcenfenster 800 die
Konvertierungsmaschine GUI 114, um Konvertierungsmodellvorlagen
zu kopieren, Konvertierungs vorlagenoptionen einzustellen und Konvertierungsvorlagen
abzuarbeiten. Die linke Seite des Konvertierungsplanausführungsressourcenfensters 800 enthält ein Konvertierungsplanzentraldatenbank-Fenster 800,
das verschiedene Konvertierungspläne 801 anzeigt, die
von dem Benutzer erstellt wurden. Das Konvertierungsplanausführungsressourcenfenster 800 zeigt
auch den Namen eines Konvertierungsplans 802 zusammen mit
assoziierten Details des Konvertierungsplans an, wie etwa Status, von
wem der Plan erstellt wurde, wer den Plan ausgeführt hat, die Dauer des Plans,
wie viele Datensätze
gelesen wurden, wie viele Datensätze
fehlerhaft waren.
-
9 veranschaulicht
ein Felddefinitionsfenster 900 für das System 100 und
die Maschine 104, in 1 bzw. 2 gezeigt.
Die linke Seite des Felddefinitionsfensters 900 ist gleich
der in 7. Auf der rechten Seite des Felddefinitionsfensters 900 weist
jeder Datensatz eine Liste von Felddefinitionen 901 auf,
die der Planbenutzer erstellt. Jeder Felddefinition 901 sind
verschiedene assoziierte Attribute zugeordnet, wie etwa Datentyp,
Größe (für variabel sich
wiederholende Typen), ein Wiederholwert von Feldern, Null, Fehler,
Vorabbildung, Abbildung-auf-Felder, Datensatz usw. Insbesondere
definiert das Abbildung-zu-Feldern(oder Abbildung-von-Feldern für Schreiberdatensätze)-Attribut für den Mapper-Prozessor 206,
wie Daten innerhalb des Leserdatensatzes auf den Schreiberdatensatz zu übertragen
sind. Ein vorteilhaftes Merkmal des Felddefinitionsfensters 900 ist
die Fähigkeit,
daß einem
Feld ein Typ eines anderen Datensatzes zugewiesen werden kann. Dadurch
erhält
der Planbenutzer die Fähigkeit,
hierarchische Datendefinitionen zu definieren.
-
10 veranschaulicht
ein Feldattributfenster 1000 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt.
Ein Benutzer verwendet das Feldattributfenster 1000, um
in 9 gezeigte Feldattribute zu editieren. Dem Benutzer
ist gestattet, Felder zu editieren, einschließlich ohne Beschränkung eines
allgemeinen Felds 1001, Attributen 1002, vorabbildungsprozessoren 1003 und
Abbildung-zu-Feldern 1004. Das allgemeine Feld 1001 enthält beispielsweise
den Namen der Felddefinitionen 901 und eine assoziierte
Beschreibung. Die Attribute 1002 enthalten beispielsweise
den Feldtyp, die Größe, ob das
Feld wiederholt werden kann oder nicht, den Zählwert, den Fehlertyp und ob
das Feld nullierbar ist. Die Vorabbildungsprozessoren 1003 enthalten
beispielsweise ChedkUser Id, GenerateInternalID, TranslateAddressType,
TranslateAssigningAuthorityName. Die Karte für die Felder 1004 enthält beispielsweise
Datensatzidentifizierer (z. B. Hpatient) und Feld (LastName) und
durch den Namen beschriebene Felder (z. B. ObjectID) und Typ (integer32).
-
11 veranschaulicht
ein Datensatzeigenschaften-Dialogfenster 1100 für das System 100 und die
Maschine 104, in den 1 bzw. 2 gezeigt. Die
Prozessorenliste gestattet die Zuordnung von Prozessoren zu einem
Feld, so daß die
Daten in dem Feld vor der Abbildung verarbeitet werden können, falls
das Feld innerhalb eines Leserdatensatzes liegt, oder nach der Abbildung,
wenn das Feld innerhalb eines Schreiberdatensatzes liegt. Prozessoren
können ebenfalls
auf der Datensatzebene zugeordnet werden. Dies geschieht mit dem
Datensatzeigenschaften-Dialogfenster 1100. Das Datensatzeigenschaften-Dialogfenster 1100 enthält ohne
Einschränkung ein
allgemeines Feld 1101 und ein Prozessorenfeld 1102.
Das allgemeine Feld 1101 enthält beispielsweise einen Namen
(z. B. PD_ReaderOutPutRecord) und eine assoziierte Beschreibung.
Das Prozessorenfeld 1102 enthält beispielsweise Leser, Protokollschreiber 1103 und
Vorabbildungsprozessoren 1104, die jeweils hier durch einen
Namen, eine Erweiterung und eine Programm-ID beschrieben werden.
-
12 veranschaulicht
ein Prozessorlistenfenster 1200 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt.
Das Prozessorlistenfenster 1200 wird auch dazu verwendet,
zu definieren, welche Leser, Protokollschreiber und Schreiber zum
Verarbeiten eines bestimmten Datensatzes verwendet werden.
-
Wenngleich
die Fenster in den 10 und 11 dazu
verwendet werden, etablierte Prozessorinstanzen Feldern/Datensätzen zuzuordnen,
werden die Prozessorinstanzen zuerst innerhalb des Plans erstellt.
Die linke Seite des Prozessorlistenfensters 1200 ist die
gleiche wie in 7. Die rechte Seite des Prozessorlistenfensters 1200 zeigt
ein Beispiel einer Konvertierungspläne-Prozessorliste. Jede Prozessorliste
enthält
beispielsweise einen Namen 1201 (z. B. HL7Reader), einen
Typ 1202 (z. B. Leser) und eine Datenquelle 1203 (z.
B. Eingabe HL7-File).
-
13 veranschaulicht
ein Prozessoreigenschaftenfenster 1300 für das System 100 und
die Maschine 104, in den 1 bzw. 2 gezeigt.
Ein Benutzer erstellt und/oder modifiziert Prozessoren unter Verwendung
des Prozessoreigenschaftenfensters 1300. Das Prozessoreigenschaftenfenster 1300 enthält ohne
Einschränkung
die folgenden Felder: allgemein 1301, „in Verwendung durch" 1302, Typ 1303, Initialisierungsparameter 1304 und
Datenquellen 1305. Das allgemeine Feld 1301 enthält beispielsweise
einen Namen (z. B. TranslateReligion) und eine assoziierte Beschreibung.
Das „in
Verwendung durch"-Feld 1302 enthält beispielsweise
einen Datensatz/Feld (z. B. PID1700Religion). Das Typfeld 1303 enthält beispielsweise
eine interne Prozessorauswahl und eine externe Prozessorauswahl,
einen Namen und einen Typ des Prozessors, eine Programm-ID und eine
Prozessortypauswahl. Das Initialisierungsparameterfeld 1304 enthält beispielsweise einen
Namen (z. B. @Global) und einen Wert (z. B. #MAPPatientReligion).
Das Datenquellenfeld 1305 enthält beispielsweise einen Datenquellennamen
(z. B. Input HL7 File) und einen assoziierten Typ, (z. B. Datei),
Stelle und Name.
-
14 veranschaulicht
ein Datenquelleneigenschaftenfenster 1400 für das System 100 und
die Maschine 104, in 1 bzw. 2 gezeigt.
Ein Benutzer kann mehrere Instanzen von Prozessortypen zum Ausführen der
gleichen Aufgaben erstellen, aber mit verschiedenen Parametern zum
Ausführen
der Prozessoraufgaben. Ein Benutzer kann auch Datenquellen einem
Prozessor zuordnen, nachdem die Datenquelle erstellt worden ist,
unter Verwendung des Datenquelleneigenschaftenfensters 1400.
Zu dem Zeitpunkt, zu dem ein Benutzer die Datenquelle erstellt,
kann deshalb der Benutzer die Datenquelle einem bereits erstellten
Prozessor zuordnen (im Gegensatz dazu, die Zuordnung innerhalb des
Prozessoreigenschaftendialogs vorzunehmen). Ein Benutzer kann unter
Verwendung des Datenquelleneigenschaftenfensters 1400 Datenquellen
hinzufügen und/oder
modifizieren. Das Datenquelleneigenschaftenfenster 1400 enthält ohne
Einschränkung
die folgenden Felder: allgemeine Eigenschaften 1401, Prozessoren 1402 und
generische Datenquelleneigenschaften 1403. Das Allgemeine-Eigenschaften-Feld 1401 enthält beispielsweise
einen Datenquellennamen und einen assoziierten Typ und eine assoziierte Beschreibung.
Das Prozessorenfeld 1402 enthält beispielsweise einen Namen
(z. B. HL7Reader) und eine assoziierte Erweiterung und einen assoziierten Typ.
Das generische Datenquelleneigenschaftenfeld 1403 enthält beispielsweise
einen Typ, eine Stelle, einen Namen und einen Namen mit einem assoziierten Wert.
-
Das
System 100 stellt vorteilhafterweise beispielsweise folgendes
bereit:
- 1. Segmentieren der Datenverarbeitung
in Prozessoren. Dies gestattet, daß die Konvertierungsmaschineninfrastruktur
intakt bleibt, während neue
Prozessoren definiert werden, um spezifische Konvertierungsbedürfnisse
zu handhaben.
- 2. Verwenden von Datensatz- und Feldwertegebern, um flexible
Möglichkeiten
bereitzustellen, Feldwerte zu manipulieren, bevor sie zu ihrer Endstelle
bewegt werden.
- 3. Assoziieren von Regelskripts mit Datensätzen zum Ausführen komplexer
Datenbewegungsaufgaben ohne das Schreiben von C++-Code.
- 4. Unterstützen
einer effizienten Datenbewegung (wie etwa SQL Server BCP), um eine
effiziente Verarbeitung sicherzustellen.
- 5. Erleichtern der kundenspezifischen Anpassung von Konvertierungsaufgaben
durch Ändern
von Konvertierungseinstel lungen. Für Konvertierungen, die komplexer
sind, wird die GUI 114 verwendet, um eine kundenspezifische
Benutzeranpassung eines Konvertierungsprozesses zu ermöglichen.
-
Die
Konvertierungsmaschine 104 liefert eine flexible und kundenspezifisch
anpaßbare
Möglichkeit,
komplexe Daten von einer Stelle zu einer anderen zu migrieren. Die
Konvertierungsmaschine 104 gestattet die Entwicklung von
Konvertierungsvorlagen 112, die Quellendaten 108,
Zieldaten 110 und die 120 zum
Migrieren von Daten von der Quelle 108 zum Ziel 110 beschreiben.
Die Konvertierungsmaschine 104 gestattet auch das Zuordnen
von Prozessoren und Kundenregeln in der Konvertierungsvorlage 112,
damit Daten manipuliert werden können,
während
sie von einer Stelle zu einer anderen bewegt werden. Die Konvertierungsmaschine 104 ist auf
eine Massendatenbewegung ausgerichtet und verwendet einen effizienten
Mechanismus zum Beschleunigen der Übertragung von Daten von einer Stelle
zu einer anderen.
-
Wenngleich
die vorliegende Erfindung unter Bezugnahme auf verschiedene veranschaulichende Ausführungsformen
davon beschrieben worden ist, ist somit mit der vorliegenden Erfindung
nicht beabsichtigt, daß die
Erfindung auf diese spezifischen Ausführungsformen beschränkt sein
soll. Der Fachmann erkennt, daß Variationen,
Modifikationen und Kombinationen des offenbarten Gegenstands vorgenommen
werden können,
ohne von dem Gedanken und Schutzbereich der Erfindung, wie in den
beigefügten
Ansprüchen
dargelegt, abzuweichen.
-
Zusammenfassung
-
Ein
System übersetzt
Daten, die eine erste Datenstruktur aufweisen, in Daten, die eine
andere zweite Datenstruktur aufweisen. Diese zweite Datenstruktur
ist dabei kompatibel mit einem ausführbaren Programm. Das System
umfasst eine Konvertierungsvorlage und einen Konvertierungsprozessor. Die
Konvertierungsvorlage umfasst vorbestimmte ausführbare Anweisungen um die Konvertierung
eines Quelldatensatzes mit der ersten Datenstruktur in den Zieldatensatz
mit der anderen zweiten Datenstruktur zu erzielen. Der Konvertierungsprozessor bildet
die Datenelemente in den Datenfeldern des Quelldatensatzes zu Datenelementen
in den korrespondierenden Datenfeldern des Zieldatensatzes, indem
die Werte der Datenelemente und die Eigenschaften der Datenfelder
in Reaktion auf die Konvertierungsvorlage umgeformt werden.