-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Anzeigesystem zum gleichzeitigen
Anzeigen von Echtzeitdaten repräsentierenden
Bildern und Nicht-Echtzeitdaten repräsentierenden Bildern.
-
HINTERGRUND
DER ERFINDUNG
-
Systeme
zum Anzeigen von Echtzeitdaten repräsentierenden Bildern besitzen
eine lange Geschichte. Es hat beispielsweise lange Zeit Systeme
zum Anzeigen eines Wellenformbildes gegeben, das physiologische Echtzeitdaten
wie beispielsweise Elektrokardiogrammdaten (EKG) repräsentiert.
In jüngerer
Zeit sind Systeme zum gleichzeitigen Anzeigen mehrerer Bilder entwickelt
worden, die einander entsprechende Echtzeitdaten repräsentieren.
Beispielsweise können
gängige
EKG-Systeme gleichzeitig alle 12 Wellenformen eines vollständigen EKGs
mit 12 Elektroden anzeigen. Das US-Patent mit der Nr. 6,104,948
von Bogart et al., das am 15. August 2000 erteilt wurde, offenbart
ein System zur Erfassung einer Vielzahl physiologischer Echtzeitdaten von
verschiedenen Quellen wie beispielsweise EKG-Daten, Elektroencephalogrammdaten (EEG),
Hautleitwertinformationen, Okulumeterdaten, die von Look-Point-Daten
abgeleitet wurden, und Hauttemperatur. Das System erfasst ferner
andere Echtzeitdaten wie beispielsweise Herz-Cine-Loop-Videos. Das
System zeigt dann gleichzeitig und synchron ein zusammengesetztes
Bild an, das die jeweiligen Bilder enthält, und dabei sämtliche
der erfassten Echtzeitdaten repräsentiert.
Das zusammengesetzte Bild kann unter Verwendung eines Bildrasterwandlers
auf einem Videorekorder für
zukünftige
Studien aufgenommen werden.
-
Es
gibt ferner Systeme zum gleichzeitigen Anzeigen von Bildern, die
einander entsprechende Nicht-Echtzeitdaten repräsentieren. Beispielsweise ermöglichen
es Computerbetriebsprogramme auf Fensterbasis, wie beispielsweise
UNIX X-Windows, Apple Macintosh und Microsoft Windows, dass Programme
geschrieben werden, die geeignet sind mehrere Bilder anzuzeigen,
die jeweils einander entsprechende Nicht-Echtzeitdaten repräsentieren.
Beispielsweise offenbart das US-Patent mit der Nr. 5,956, 013 von
Raj et al., das am 21. September 1999 erteilt wurde, ein System
auf der Basis von Microsoft Windows, zur Erfassung von beispielsweise
einem Holter-Herzmonitor voraufgezeichneten EKG-Daten und zum Anzeigen
eines ersten Bildes mit einer Wellenform, die mehrere Sekunden von
EKG-Daten repräsentiert,
und zum gleichzeitigen Anzeigen eines zweiten Bildes einer gewählten Anzahl
von (beispielsweise eins bis fünf) übereinander
angeordneten Herzschlagwellenformen, die entsprechend ihren R-Zacken
ausgerichtet sind.
-
Es
gibt weitere Systeme zum gleichzeitigen Anzeigen von Bildern, die
Echtzeitdaten repräsentieren und
zum Anzeigen von Bildern, die Nicht-Echtzeitdaten repräsentieren.
Es sind beispielsweise Computersysteme, die unter der Steuerung
der oben genannten Fensterbasierten Betriebssysteme betrieben werden,
entwickelt worden, um eine Echtzeiterfassungsvorrichtung zu besitzen,
wobei die Bilder, die gesammelte Echtzeitdaten repräsentieren,
gleichzeitig zusammen mit Bildern dargestellt worden sind, die Nicht-Echtzeitdaten repräsentieren.
Das US-Patent mit der Nr. 4,845,653 von Conrad et al., das am 04.
Juli 1989 erteilt wurde, offenbart ein System, bei dem eine Vielzahl
zweiparametriger Datenfelder gleichzeitig angezeigt werden, die
einander entsprechende Ansichten der gleichen mehrparametriger Daten
repräsentieren.
Diese Daten können
bei ihrer Erfassung in Echtzeit angezeigt werden. Ein Benutzer kann
eine Abgrenzung definieren, die ein Gebiet in einem der Datenfelder
umgibt, und die Datenpunkte, die mit denen innerhalb dieses Gebiets
korrespondieren, sind in den anderen Datenfeldern hervorgehoben.
Außerdem
können ebenfalls
Nicht-Echtzeitinformationen, die von den umgebenden Datenpunkten
abgeleitet wurden, angezeigt werden.
-
Der
Fachmann wird erkennen, dass die Computerbetriebssysteme auf Fensterbasis,
die oben beschrieben wurden, es verhältnismäßig leicht machen, ein Programm
zu entwerfen und zu implementieren, das gleichzeitig Echtzeit- und
Nicht-Echtzeitdaten anzeigen kann. Es wurden folglich viele Programme
geschrieben, um eine große
Vielzahl höchst
wünschenswerter
Anwendungen für
diese Betriebssysteme durchzuführen.
Der Fachmann wird außerdem
erkennen, dass diese Betriebssysteme nicht zuverlässig sind,
und häufig neu
gestartet, zurückgesetzt,
oder neu hochgefahren werden müssen
insbesondere, wenn ein Programm oder mehrere Programme ausgeführt werden,
die mehrere Tasks oder Threads umfassen. Es ist jedoch bei Systemen
stets wünschenswert,
dass sie mit hoher Zuverlässigkeit
arbeiten. Bei manchen Anwendungen, wie beispielsweise einem medizinischem Überwachungsgerät, ist es
zwingend erforderlich, dass das System mit der höchst möglichen Zuverlässigkeit
arbeitet. Bei einem EKG-Monitor darf beispielsweise die Anzeige
der Wellenformbilder, die die EKG-Daten repräsentieren, niemals aussetzen.
Außerdem
muss die Anzeige mit einer minimalen Latenzheit zwischen dem Erhalt
der Echtzeit-EKG-Daten und der Anzeige dieser Daten stattfinden.
-
Die
Merkmale des Oberbegriffs des Anspruchs 1 sind in der EP-A-O 668
047 offenbart.
-
Der
Fachmann wird erkennen, dass die gleichzeitige Anzeige von Nicht-Echtzeitdaten
zusammen mit der Anzeige von Echtzeitdaten (beispielsweise EKG)
nützlich
wäre. Beispielsweise
könnte
ein Arzt, der gerade die Echtzeit-EKG-Anzeige eines Patienten analysiert,
wünschen,
gleichzeitig Laborergebnisse des Patienten in Textform oder ein
Röntgenbild
oder Daten der Patientenkartei oder gar Informationen von der Internetseite eines
Pharmazieunternehmens anzuzeigen. Der Praktiker wird außerdem die
Vorteile begrüßen, die
die Nutzung eines Fenster-basierten Betriebssystems als Basis für solch
ein System mit sich bringt, wie beispielsweise die Vertrautheit
des Umgangs, Einfachheit der Programmierung und die Verfügbarkeit
einer großen
Vielzahl an Programmen. Außerdem
wird es der Praktiker begrüßen, dass
es während
der Anzeige von Nicht-Echtzeitinformationen wichtig und wünschenswert
ist, dass es bei einer Fehlfunktion in dem Nicht-Echtzeitdaten basierten
Anzeigeprogramm (wie es beispielsweise bei der Verwendung solch
eines Fenster-basierten Betriebssystems erwartet werden muss), nicht
gestattet werden darf, die Anzeige der EKG- Echtzeitdaten unter irgendwelchen Umständen zu
unterbrechen. Es ist somit ein System wünschenswert, das die gleichzeitige
Anzeige von Echtzeitdaten und Nicht-Echtzeitdaten unter Verwendung
bestehender Fenster-basierter Betriebssysteme erlaubt, das es jedoch
einer Fehlfunktion bei der Anzeige der Nicht-Echtzeitdaten nicht
erlaubt, die Anzeige der Echtzeitdaten zu unterbrechen.
-
KURZE ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung wird in den unabhängigen
Ansprüchen
1 und 12 offenbart. In Übereinstimmung
mit den Grundzügen
der vorliegenden Erfindung arbeitet ein Verfahren und eine Vorrichtung
zum gleichzeitigen Anzeigen einander entsprechender Bilder, die
Echtzeitdaten und Nicht-Echtzeitdaten repräsentieren, indem sie zunächst Nicht-Echtzeitdaten
erfassen und Echtzeitdaten erfassen. Ein Fenster-basiertes Betriebssystem
wird zur Steuerung des Betriebs eines Anwendungsprogramms ausgeführt, das
für die
Nicht-Echtzeitdaten verantwortlich ist, um eine Anzeigevorrichtung
so einzurichten, um einander entsprechende Bilder anzuzeigen, die Nicht-Echtzeitdaten
repräsentieren.
Gleichzeitig, jedoch unabhängig
von dem Fenster-basierten Betriebssystem wird ein Echtzeitanzeigeprozess
ausgeführt,
um die Anzeigevorrichtung so zu konditionieren, um gleichzeitig
mit der Anzeige der Nicht-Echtzeitdaten
einander entsprechende Bilder anzuzeigen, die Echtzeitdaten repräsentieren.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Zeichnungen zeigen:
-
1 ist
ein Blockschaltbild eines Computersystems in Übereinstimmung mit den Grundzügen der vorliegenden
Erfindung; und
-
2 ist
ein Softwarearchitekturschaubild, das eine Architektur in Übereinstimmung
mit den Grundzügen
der vorliegenden Erfindung zeigt, das von dem Prozessor zur Steuerung
des Systems ausgeführt
wird;
-
3, 4 und 5 sind
Bildschirmdarstellungen, die Bilder zeigen, die mit Hilfe des Systems
gemäß der vorliegenden
Erfindung dargestellt werden.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt
ein Blockschaltbild eines Computersystems 10 in Übereinstimmung
mit den Grundzügen der
vorliegenden Erfindung. In der 1 weist
ein Prozessor 112 einen ersten bidirektionalen Anschluss
auf, der mit einer Datenspeichervorrichtung 104 gekoppelt
ist, sowie einen oder mehrere weitere bidirektionale Anschlüsse, die
mit entsprechenden Netzwerkkarten (NIC) 106 gekoppelt sind.
Jede NIC 106 ist mit einem entsprechenden Netzwerk 114 gekoppelt.
Die Netzwerke 114 können
ein Echtzeitnetzwerk umfassen, wie beispielsweise ein Netzwerk für einen
Patienten mit einer erforderlichen Latenzzeit von weniger als 100
ms zwischen dem Patientensensor und der Anzeige, ein Krankenstationsnetzwerk
mit einer Latenzzeit in der Größenordnung
von Sekunden, und/oder ein Krankenhausnetzwerk, das keine Latenzzeitanforderungen
an die Echtzeit aufweist. Eines oder mehrere der Netzwerke 114,
am ehesten jedoch das Krankenhausnetzwerk kann ferner eine Brücke (nicht
dargestellt) zu einem Großraum-Netzwerk
umfassen, wie beispielsweise das Internet. Eine Quelle 108 eines
Eingangssignals eines Users ist mit einem ersten Eingangsanschluss
des Prozessors 102 gekoppelt, und eine Quelle 110 eines
Echtzeiteingangssignals ist mit einem zweiten Eingangsanschluss des
Prozessors 102 gekoppelt. Ein Ausgangsanschluss des Prozessors 102 ist
mit einem Eingangsanschluss einer Anzeigevorrichtung 112 gekoppelt.
-
Während des
Betriebs erhält
der Prozessor 102 von der Datenspeichervorrichtung 104 einen
Programmcode und Daten. Der Prozessor 102 steuert unter
der Direktive des empfangenen Programmcodes den Betrieb des Systems 10.
Die Architektur dieses Programmcodes wird im folgenden detailliert
beschrieben. Der Prozessor 102 empfängt im Allgemeinen Echtzeitdaten
von der Echtzeitdatenquelle 110 und/oder von dem Echtzeitnetzwerk 114 und
richtet die Anzeigevorrichtung 112 so ein, um Bilder anzuzeigen,
die Echtzeitdaten repräsentieren.
Beispielsweise könnte
die Echtzeitsignalquelle 110 und/oder das Echtzeitnetzwerk 114 ein EKG-Modul
umfassen, das Elektroden aufweist, die dazu bestimmt sind, um mit
einem Patienten verbunden zu werden. Die Signale von den Elektroden
werden von dem Prozessor 102 verarbeitet, der im Gegenzug
die Anzeigevorrichtung 112 einrichtet, um Bilder anzuzeigen,
die ein Echtzeit-EKG mit 12 Elektroden repräsentieren. Gemäß den Anforderungen
an medizinische Überwachungssysteme
weist diese Echtzeitvorrichtung eine maximale Latenzzeit von 200
ms zwischen dem Empfang der Daten von dem EKG-Modul bis zur Anzeige
dieser Daten auf der Anzeigevorrichtung 112 auf, und muss
die größtmögliche praktikable
Zuverlässigkeit
aufweisen.
-
Der
Prozessor 102 überwacht
außerdem
die Benutzereingangssignale der Benutzersignaleingangsquelle 108.
Die Benutzereingangssignale können
beispielsweise von einer Tastatur und/oder einer Maus (nicht dargestellt)
oder irgendeinem anderen beliebigen Eingabegerät stammen. Der Prozessor 102 steuert
dann in Erwiderung auf die Benutzereingangssignale das System 10.
Diese Benutzereingangssignale können
verschiedene Eigenschaften wie beispielsweise die Größe und den
Ort der Anzeige der Echtzeitbilder steuern, sowie beispielsweise
der Bilder des EKGs mit 12 Elektroden, und/oder die Auswahl und
Anzeige von Nicht-Echtzeitdaten. Beispielsweise wird als Antwort
auf die Identifikationsinformation, die von dem Benutzer über die
Benutzersignaleingangsquelle 108 empfangen wurde, ein Anwendungsprogramm
auf Nicht-Echtzeitbasis ausgeführt,
so dass Nicht-Echtzeitdaten aus spezifizierten Dateien in der Datenspeichervorrichtung 104 oder
von spezifizierten Orten in dem Netzwerk 114 abgefragt
werden können,
wie beispielsweise Patientenkarteidaten, Laborergebnisse oder Röntgenbilder
von dem LAN-Server des Krankenhauses, oder andere Daten aus dem
Internet über
die NIC 106. Der Controller 102 richtet die Anzeigevorrichtung 112 ein,
um auf der Anzeigevorrichtung 112 gleichzeitig mit den
Bildern, die Echtzeitdaten der Echtzeitdatenquelle 110 und/oder des
Echtzeitnetzwerks 114 repräsentieren, Bilder darzustellen,
die die abgefragten Nicht-Echtzeitdaten und/oder andere von der
Benutzersignaleingangsquelle 108 erhaltene Daten repräsentieren.
Der Prozessor 102 steuert ferner als Antwort auf die Benutzereingangssignale
von der Benutzersignaleingangsquelle 108 den Betrieb des
Systems 10 als Ganzes, und zwar in einer Art und Weise,
wie sie im folgenden detailliert beschrieben werden soll.
-
Gemäß einer
bevorzugten Ausführungsform
arbeitet der Prozessor 102 unter der Steuerung eines Fenster-basierten
Betriebssystems, und in der dargestellten Ausführungsform ist das Fenster-basierte
Betriebssystem das Betriebssystems Microsoft NT. Die 2 zeigt
ein Schaubild, das die Architektur des Programmcodes darstellt,
das von dem Prozessor 102 ausgeführt wird, um das System 10 zu
steuern. Ein Betriebssystem (OS) 202 stellt für den Rest
des Softwaresystems 20 Dienste zur Verfügung, die aus Funktionen und
Daten bestehen, die allen anderen Softwaremodulen zur Verfügung stehen,
die auf dem System 20 ausgeführt werden. Beispielsweise
wird das Nachrichtenübertragungssystem,
das zur Verarbeitung mehrerer Prozesse erforderlich ist, und die
graphische Benutzeroberfläche
in dem OS 202 verwaltet. Zusätzlich können Prozesse und Threads eingeleitet
und abgebrochen werden und Speicherplatz kann von einem Prozess
und/oder einem Thread in dem OS 202 zugeordnet und freigegeben
werden.
-
Die
Parameter, die mit dem Betrieb des Softwaresystems 20 in
Verbindung stehen, werden ebenfalls in dem OS 202 verwaltet.
Dies sind beispielsweise Daten bezüglich der gesamten Prozessornutzung;
die Länge
der Nachrichtenwarteschlange für
jeden Prozess und Thread; der verfügbare Speicher; der virtuelle
Speicher durch Seitenwechselanforderung; die Funktionssatzgröße und die
Pagingrate; ein Ausführungszähler, der
Prozessoren und Threads zugeordnet ist; der Anteil der Prozessorzeit,
die von jedem Prozess oder Thread verwendet wird; der Datenübertragungsrate
auf dem Netzwerk 114; und die Verantwortlichkeit der jeweiligen Prozesse
und Threads für
die Benutzereingangssignale, die unter anderem von dem OS 202 bestimmt
und darin gespeichert werden können.
Außerdem
können
physikalische Parameter des Hardwaresystems 10 von der
Schaltung durch die Steuerung des OS 202 empfangen werden,
und außerdem
können
mit diesen Parametern verknüpfte
Daten in dem OS 202 gespeichert werden. Es können beispielsweise
Daten wie die Temperatur der zentralen Recheneinheit (CPU), die
Versorgungsspannung, die gesamte Verarbeitungszeit der Festplattennutzung,
und freier Speicherplatz auf der Festplatte von dem OS 202 verwaltet
werden.
-
Das
Programm 20 umfasst im Allgemeinen eine dreistufige Architektur.
Die erste Stufe ist eine allgemeine Softwarearchitektur 204,
die zwischen der Anwendungssoftware (206 und 208)
und dem OS 202 eine Softwareschnittstelle zur Verfügung stellt.
Die allgemeine Softwarearchitektur 204 stellt die Anwendungsschnittstellen
(APIs) für
die Anwendungsprogramme zur Verfügung.
Durch die Bereitstellung der APIs vereinfacht das Betriebssystem
den Verarbeitungsvorgang der Anwendungsprogramme. Funktionen wie
beispielsweise die Aufforderung zur Einleitung eines Threads oder
die Zuordnung von Speicherplatz werden den Anwendungsprogrammierern
mittels einfacher Funktionsaufrufe bereitgestellt, wie sie bereits
bekannt sind.
-
Eine
zweite Stufe wird durch allgemeine und spezielle Anwendungssoftware 206 und 208 gebildet.
Die allgemeine Anwendungssoftware 206 betrifft Anwendungen,
die von dem Anbieter des Betriebssystems zur Verfügung gestellt
werden. Im Allgemeinen sind dies Anwendungen, die von den meisten
oder allen Benutzern des Betriebssystems verwendet werden. Die allgemeine
Anwendungssoftware 208 kann Texteditoren, Bildbetrachter,
HTML-Betrachter
(Webbrowser) etc. umfassen. Außerdem
können
Teile dieser allgemeinen Anwendungssoftware von der speziellen Anwendungssoftware 208 verwendet
werden. Unter spezieller Anwendungssoftware 208 ist jene
zu verstehen, die spezielle, von dem System benötigte Funktionen bereitstellt.
Im Allgemeinen stellt eine einzelne spezielle Software 208 eine
gewünschte
spezielle Verarbeitung zur Verfügung. Die
allgemeine und die spezielle Anwendungssoftware 206 und 208 empfängt über die
APIs in der allgemeinen Softwarearchitektur 204 Betriebsystemdienste
und erzeugt mittels einer allgemeinen Nutzerschnittstelle 210 Bilder,
die auf der Anzeigevorrichtung 112 angezeigt werden sollen.
Die Nutzerschnittstelle 210 bildet eine dritte Stufe. Die
Nutzerschnittstelle 210 wird als Teil des Betriebssystems
zur Verfügung
gestellt, und stellt eine weitere API zur Verfügung, um es der allgemeinen
wie auch der speziellen Anwendungssoftware 206 und 208 zu
ermöglichen,
Bilder auf der Anzeigevorrichtung 112 in bekannter Art
und Weise zu erzeugen.
-
Der
bislang beschriebene Bereich der Softwarearchitektur 20 entspricht
der Standardarchitektur für Nicht-Echtzeitprogramme,
die in das Betriebssystem Windows NT implementiert sind. Dieser
Abschnitt der Softwarearchitektur arbeitet als einzelnes ausführbares
Programm, das über
die verschiedenen APIs, die zuvor beschrieben wurden, Funktionen
aufruft, Tasks und Threads erzeugt, und je nach Bedarf nach Speicherplatz
nachfragt und diesen wieder freigibt.
-
In
der dargestellten Ausführungsform
empfängt
ein zusätzlicher
Prozess 212 die Echtzeit-EKG-Signale von der Echtzeitsignalquelle 110 und/oder
dem Echtzeit-LAN 114 und verarbeitet die empfangenen Echtzeit-EKG-Signale,
um Bilder für
die Anzeigevorrichtung 112 in einer Art und Weise, wie
sie später
noch detaillierter beschrieben werden soll, zu erzeugen, die ein
EKG mit 12 Elektroden in Übereinstimmung
mit den empfangenen Signalen repräsentiert. Der Echtzeitanzeigeprozess 212 empfängt nur
von dem OS 202 Betriebssystemdienste. Er verwendet keine
Dienste der allgemeinen Dienstarchitektur 204 oder der
allgemeinen Nutzerschnittstelle 210. Dieser Prozess arbeitet
als ein zweiter Ausführbarer
und zwar abgestimmt mit dem oben beschriebenen ausführbaren
Prozess auf Nicht-Echtzeit-Basis, jedoch unabhängig davon. Außerdem ist
der Echtzeitprozess 212 in einen einzelnen Thread implementiert,
der Daten nach Erhalt von der Datenquelle zur Erzeugung des Anzeigebildes
verarbeitet, wobei er eine minimale Latenzzeit sicherstellt.
-
Die
folgenden Betriebsparameter beziehen sich alle auf eine Windows
NT Umgebung. Andere Fenster-basierte Betriebssysteme weisen ähnliche
Parameter auf. In der dargestellten Ausführungsform wird allen Nicht-Echtzeitanwendungen
und allen Prozessen und Threads, die durch diese Anwendungen erzeugt
werden, eine Priorität
von 13 oder weniger zugewiesen, wohingegen dem Echtzeitprozess 212 eine
höhere
Priorität
(> 13) als irgendeinem
der Prozesse oder Threads des Nicht-Echtzeitprozesses zugewiesen
wird, wodurch der Echtzeitanwendung eine höhere Ausführungspriorität gegeben
wird. Der Echtzeitanzeigeprozess 212 verarbeitet deshalb
die Nachrichten von dem OS 202 in einer Priorität abhängigen Art
und Weise. Der Fachmann wird erkennen, dass dadurch sichergestellt
wird, dass alle Nachrichten, die dem Echtzeitanzeigeprozess 212 übermittelt
wurden, ordnungsgemäß verarbeitet
werden, da der Echtzeitprozess eine höhere Priorität besitzt
und somit nicht durch Nicht-Echtzeit-Threads unterbrochen wird.
-
Außerdem werden
die "Anwendungsboost"-Parameter für die Nicht-Echtzeitprozesse
und Threads auf "Null" gesetzt. Das Echtzeitnetzwerk 114 muss
anstelle von Hubs LAN-Switches verwenden. In dem Netzwerk 114 sind
Router nicht zugelassen. Die Berechnungsumgebung wird außerdem so
gesteuert, dass Aufrufe von Unterbrechungsdienstprogrammen und Prozedurverzögerungsaufrufen
minimiert werden. Der Funktionssatz (Seitenrahmen, die verwendet
werden, um in einer virtuellen Speicherumgebung Speicherseiten einzubinden) für den Echtzeitprozess 212 wird
unter Verwendung eines Vorrichtungstreibers in dem OS 202 eingeschaltet, so
dass der Funktionssatz nicht in die Speichervorrichtung 104 während virtueller
Speicherauslagerungen ausgelagert wird. Letztendlich sichert eine
GDI-Sonde in dem OS 202 eine Instanz des GDI-Treibers und
seiner zugehörigen
Ressourcen für
die ausschließliche
Verwendung durch den Echtzeitprozess 212.
-
Die
in der 2 dargestellte Architektur 20 umfasst
somit zwei ausführbare
Prozesse, nämlich
einen für
den Umgang mit den Nicht-Echtzeitdaten und einen für den Umgang
mit den Echtzeitdaten. Diese Architektur weist die folgenden Vorteile
auf. Zunächst
stellt die Trennung eine ausführbare
Robustheit zur Verfügung.
In dem OS 202 sind zwei separate Nachrichtenwarteschlangen
vorhanden. Wenn eine Warteschlange blockiert wird, wird die andere
immer noch arbeiten. Zweitens wird die Anzeigevorrichtung 112 mit
zwei separaten und voneinander unabhängigen graphischen Benutzeroberflächen betrieben.
Die allgemeine Nutzerschnittstelle 210 stellt lediglich
eine einzelne Fensteranzeigeschnittstelle zur Verfügung, in
der verschiedene Fenster in einer Eltern-Kind-Beziehung angeordnet
sind, die es erforderlich macht, Nachrichten und/oder Ereignisse
zwischen Kind und Eltern und anders herum auszutauschen. Indem eine
separate graphische Benutzeroberfläche für den Echtzeitanzeigeprozess
bereitgestellt wird, existiert keine Eltern-Kind-Beziehung mit anderen
Fenstern, wodurch die Zuverlässigkeit
gesteigert und der Nachrichten- und/oder Ereignisaustausch reduziert
wird. Dies verkürzt
wiederum die Latenzzeit zwischen dem Empfang von Echtzeitdaten von
der Echtzeitsignalquelle 110 zu der Anzeige der Bilder,
die diese Daten auf der Anzeigevorrichtung 112 repräsentieren.
-
Um
die Lesbarkeit und Steuerbarkeit durch den Nutzer zu verbessern,
wird der Fachmann erkennen, dass es wünschenswert ist, das graphische "Erscheinungsbild" des Echtzeitanzeigeprozesses 212 dem "Erscheinungsbild" der Nicht-Echtzeitanzeige,
die unter der Steuerung der allgemeinen Nutzerschnittstelle 210 gesteuert
wird, anzupassen, oder dass sie sich zumindest ähneln. In der dargestellten
Ausführungsform
ist die graphische Benutzeroberfläche, die durch den Echtzeitanzeigeprozess 212 erzeugt
wird, ausgestaltet, um graphisch mit der graphischen Benutzeroberfläche, die
durch die allgemeine Nutzerschnittstelle 210 erzeugt wird, verflochten
zu sein. In der dargestellten Ausführungsform nutzen insbesondere
die graphischen Benutzeroberflächen
sowohl des Echtzeitanzeigeprozesses 212 als auch die allgemeine
Nutzerschnittstelle 210 ein Paradigma mit Kartenreitern.
Der Prozess zur Erzeugung der kombinierten Anzeige wird im folgenden
detaillierter beschrieben werden. Der Fachmann wird erkennen, dass
die Besonderheiten der "Erscheinungsbilder" für die vorliegende
Erfindung nicht relevant sind, mit der Ausnahme, dass sie für die Nicht-Echtzeit-
und die Echtzeitverarbeitung gleich oder zumindest ähnlich sind.
-
Das
von dem Echtzeitprozess 212 erzeugte Bild wird mit dem
Bild, das von dem Nicht-Echtzeitprozess 204, 206, 208, 210 erzeugt
wurde, mit Hilfe des Treibers der graphischen Benutzeroberfläche (GDI)
kombiniert, der in das OS 202 integriert ist. Ein Fachmann
wird erkennen, dass der GDI-Treiber von den Anwendungen bildbeschreibende
Anweisungen erhält.
Als Antwort auf diese Anweisungen aktualisiert die GDI die Werte, die
in dem Videospeicher des Videohardwareadapters (nicht dargestellt)
gespeichert sind, um die kombinierten Bilder des Anwendungsprogramms
zu repräsentieren.
Der Videoadapter erzeugt wiederum als Antwort auf die Inhalte des
Videospeichers für
die Anzeigevorrichtung 112 Videosignale.
-
Der
Echtzeitprozess 212 fordert von dem OS 202 in
gewöhnlicher
Weise einen grafischen Zugriff zur Identifizierung an und empfängt diesen.
Der Einzel-Thread-Echtzeitprozess 212 empfängt dann
Echtzeitsignale von der Echtzeitsignalquelle 110 und erzeugt
unter Identifizierung des zugeteilten grafischen Zugriffs Anweisungen
für den
GDI-Treiber, um das erwünschte
Echtzeitbild anzuzeigen. Der Echtzeitprozess 212 veranlasst dann
einen Aufruf einer Instanz des GDI, die ausschließlich dem
Echtzeitprozess 212 zugeteilt ist, um diese Anweisungen
zur Verfügung
zu stellen. Diesem GDI-Treiber wird dieselbe hohe Priorität zugeordnet
wie dem Echtzeitprozess 212, so dass seine Ausführung nicht
durch die Nicht-Echtzeitanwendungen
unterbrochen werden kann. Der GDI-Treiber richtet im Gegenzug die
Anzeigevorrichtung 112 so ein, um die kombinierten Echtzeit-
und Nicht-Echtzeitbilder mit Hilfe des Anzeigevorrichtungstreibers
anzuzeigen.
-
In
der dargestellten Ausführungsform,
bei der die Echtzeitsignale EKG-Signale sind, empfängt der Echtzeitanzeigeprozessthread
insbesondere die EKG-Elektrodensignale von der Echtzeitsignalquelle 110 oder
von dem Echtzeit-LAN 114 und erzeugt ein Bitmap, das die
aktuellen Wellenformbilder der Signale des EKG's mit 12 Elektroden repräsentiert.
Der Echtzeitprozessthread 212 ruft dann direkt die GDI
in dem OS 202 auf und gibt ihr Anweisungen (Bitblockübertragungsanweisungen),
um das Bitmap an den Videospeicher in der Anzeigevorrichtung 112 zu übertragen.
Der GDI-Treiber überträgt das Bitmap
an einen geeigneten Ort in den Videospeicher des Videoadapters.
-
Unter
Verwendung dieses Verfahrens kann das Echtzeitbild mit den Nichtechtzeitbildern
unter Verwendung desselben "Erscheinungsbildes" verflochten werden,
wie es von der GDI des OS 202 zur Verfügung gestellt wird. Der Fachmann
wird erkennen, dass es ebenso möglich
ist, direkt mit dem Anzeigevorrichtungsadapter zu kommunizieren,
obwohl dies viele Probleme hinsichtlich der Sicherheit und Zuverlässigkeit
darstellt. Der Fachmann wird ferner erkennen, dass andere Oberflächenverfahren
wie beispielsweise DirectX ebenso verwendet werden können, um
die Signale dem Videoadapter zur Verfügung zu stellen, die für das Bild
repräsentativ
sind.
-
Die 3 ist
eine Bildschirmdarstellung, die Echtzeitbilder darstellt, die von
dem System gemäß der vorliegenden
Erfindung unter der Steuerung des Echtzeitanzeigeprozesses 212 angezeigt
werden. Die 3 zeigt ein beispielhaftes Bild
eines EKGs mit 12 Elektroden. In der 3 umfasst
die Anzeigevorrichtung 112 einen Anzeigebildschirm 113 wie beispielsweise
die Oberfläche
eines CRT, der einander entsprechende Bilder 302 von 12
Echtzeitwellenformen anzeigt (I, II, III, aVR, aVL, AVF, V1, V2,
V3, V4, VS and V6). Diese Wellenformen werden wie zuvor beschrieben
in Echtzeit mit einer Latenzgrenze (200 ms) aktualisiert. Die Wellenformen
werden angezeigt, als ob sie in einer mit einem Kartenreiter versehenen
Seite 304 enthalten wären,
die einen zugehörigen
Kartenreiter 306 aufweist, der Beschriftungen ("Patientenansicht") aufweist, um die
Inhalte der entsprechenden Seite identifizieren zu können. Ein
zusätzlicher
Kartenreiter 312 wird im folgenden detailliert beschrieben.
-
Die 4 zeigt
einen Anzeigebildschirm 113, in dem ein Nicht-Echtzeitanzeigebild 308 einer
Brustkorbröntgenaufnahme
in einer mit einem Kartenreiter versehenen Seite 310 angezeigt
wird. Die mit einem Kartenreiter versehene Seite 310 umfasst
einen entsprechenden Kartenreiter 312, der Beschriftungen
("Kundenansicht") aufweist, um die
Inhalte der entsprechenden Seite identifizieren zu können. Diese
mit einem Kartenreiter versehene Seite 310 liegt über der
mit einem Kartenreiter versehenen Echtzeitdatenseite, der der Kartenreiter 306 zugeordnet
ist, indem sie diese vollständig überdeckt.
Ein Fachmann wird erkennen, dass das in der 4 dargestellte
Bild lediglich eine mit einem einzelnen Kartenreiter versehene Seite
darstellt, wobei jedoch mehr als eine solche mit einem Kartenreiter
versehene Seite gleichzeitig bereitgestellt werden kann, wobei jede
unterschiedliche Nicht-Echtzeitdatendaten repräsentiert. Außerdem kann
jede mit einem Kartenreiter versehene Seite gleichzeitig mehr als
ein Fenster anzeigen, wobei jedes ein Bild anzeigt, das einander
entsprechende Nicht-Echtzeitdaten
repräsentiert.
Wie zuvor bereits erläutert
wurde, können
beispielsweise Laborergebnisse in Textform oder Internetseiten gleichzeitig
auf verschiedenen mit Kartenreitern versehenen Seiten oder in einander überlappenden
Fenstern auf einer einzelnen mit einem Kartenreiter versehenen Seite
angezeigt werden, und zwar in einer Art und Weise, die durch ein
Windows NT basiertes Betriebssystem gesteuert wird.
-
Wie
bereits zuvor beschrieben wurde, und wie es den Fachleuten bereits
bekannt ist, ist es bei Nicht-Echtzeit basierter Bearbeitungssoftware
möglich,
dass sie Fehlfunktionen unterliegt. Im Falle, dass dies passieren
sollte, kann die Echtzeitinformation (EKG) durch das Bild der Nicht-Echtzeitinformation,
die auf der Anzeigevorrichtung 212 angezeigt wird, in ihrer
Ansicht blockiert werden. Sollte beispielsweise der Nicht-Echtzeitabschnitt
(204, 206, 208, 210) der Programmarchitektur 20 einer
Fehlfunktion unterliegen, während
das in der 4 dargestellte Bild angezeigt
wird, werden die Bilder, die die Echtzeit-EKG-Daten 302 repräsentieren, verborgen.
Um eine Lösung
dieses Problems zur Verfügung
zu stellen, ist das OS 202 so eingerichtet, um auf Daten
von der Benutzersignaleingangsquelle 108 zu reagieren,
um die mit einem Kartenreiter versehene Seite 304, die
Bilder 302 anzeigt, zu aktivieren, die Echtzeitinformationen
von der Echtzeitsignalquelle 110 wie in der 3 repräsentieren.
Beispielsweise wird eine spezielle Taste oder Tastenkombination,
beispielsweise <Control-R>, eines Keyboards gesondert
von dem OS 202 wahrgenommen, und wenn dies wahrgenommen
wird, wird die Echtzeitanzeige 302 angezeigt, die von dem
Echtzeitanzeigeprozess 212 erzeugt wurde, und zwar über dem
eingefrorenen Nicht-Echtzeitbild 308.
Die Taste oder Tastenkombination wird als "Hotkey" bezeichnet und die Funktionen, die
hierfür
erforderlich sind, sind Teil des Betriebssystems Windows NT.
-
In
einer anderen Situation können
die Bilder, die Echtzeitinformationen repräsentieren, teilweise von einem
Bild überdeckt
sein, das Nicht-Echtzeitinformationen repräsentiert. Die 5 ist
eine Bildschirmdarstellung, die Echtzeitbilder 302 zeigt, über denen
ein Fenster 314 angeordnet ist, in dem Laborergebnisse
in Textform dargestellt sind. Das Fenster 314, das mittels
des Nicht-Echtzeitabschnittes (204, 206, 208, 210)
der Softwarearchitektur 20 erzeugt wurde, verdeckt teilweise
die Echtzeitbilder 302. Dieser Abschnitt der Echtzeitbilder 302,
der sichtbar bleibt, fährt
damit fort, die Echtzeitdaten anzuzeigen, die von der Echtzeitsignalquelle 110 empfangen
wurden. Der Echtzeitabschnitt hinter dem Fenster 314 ist
jedoch nicht sichtbar. Sollte der Nicht-Echtzeitabschnitt (204, 206, 208, 210)
der Programmarchitektur 20 einer Fehlfunktion unterliegen,
während
er das in der 5 dargestellte Bild anzeigt,
wird der Abschnitt der Bilder, die die Echtzeit-EKG-Daten 302 repräsentieren,
die durch das Fenster 314 verdeckt werden, verborgen. In
diesem Falle nimmt das OS 202 Signale von der Benutzersignaleingangsquelle 108 wahr,
die einen Mausklick im Bereich des Anzeigebildschirms 113 außerhalb
des Fensters 314 repräsentieren
und aktiviert die Echtzeitbilder 302, wodurch sie vollständig sichtbar
werden. Alternativ hierzu kann die bereits oben beschriebene Hotkey-Kombination
verwendet werden, um die Echtzeitbilder 302 zu aktivieren,
wodurch sie sichtbar gemacht werden.
-
Der
Erfinder hat ferner erkannt, dass es möglich ist, den Betrieb des
Nicht-Echtzeitabschnitts (204, 206, 208, 210)
der Software (20) zu überwachen,
um Anzeichen zu identifizieren, wonach der Nicht-Echtzeitabschnitt
einer Fehlfunktion unterliegt, oder der Gefahr einer Fehlfunktion
unterliegt. Als Antwort auf solche Anzeichen ist es möglich, den
Nicht- Echtzeitabschnitt
in solch einer An und Weise zu steuern, dass die Fehlfunktion automatisch
korrigiert oder vermieden wird.
-
Ein
Fachmann wird erkennen, dass es den Nicht-Echtzeitprozessen nicht
erlaubt werden sollte, mit dem Betrieb der Echtzeitprozesse in Wechselwirkung
zu treten. Wie bereits zuvor beschrieben wurde, überwacht das OS 202 Informationen
bezüglich
des Betriebs des Anwendungsprogramms, des Betriebssystems und das
Computersystem im allgemeinen. Das Betriebssystem überwacht
diese Informationen während
des gewöhnlichen
Betriebs jedoch nicht und führt
beliebige Funktionen in Abhängigkeit
der Werte dieser Informationen durch.
-
Die
in der 2 dargestellte Architektur 20 umfasst
einen Software- und einen Hardwaremonitor 214. Der Monitor 214 überwacht
die Informationen (die oben beschrieben wurden), die von dem OS 202 überwacht werden.
Der Monitor 214 führt
dann in Abhängigkeit
der Werte dieser Informationen in dem OS 202 Prozesse durch.
Der Überwachungsprozess 214 ist
sehr einfach gestaltet, um maximale Zuverlässigkeit sicherzustellen. Außerdem wurde
dem Überwachungsprozess 214 die
höchste
oder eine sehr hohe Priorität
zugewiesen, um sicherzustellen, dass er stets in der Lage ist, ausgeführt zu werden.
-
Das
OS 202 überwacht
im allgemeinen einen Indikator bezüglich der Verwendung mehrerer
Quellen. Der Überwachungsprozess 214 fragt
von dem OS 202 die Benutzerwerte ab und überwacht
den Betrag der verfügbaren
Ressourcen. Wenn der Betrag auf ein gefährlich niedriges Niveau abfällt, werden
Korrekturprozesse eingeleitet. In einem solchen Fall werden beispielsweise
Nicht-Echtzeitprozesse unterbrochen, um Ressourcen freizugeben,
die von diesen Prozessen in Anspruch genommen werden, um von dem
Echtzeitprozess verwendet zu werden. Das heißt, wenn einer der Nicht-Echtzeitprozesse
einer Fehlfunktion unterliegt, dass dieser Prozess dann abgebrochen
wird. Der abgebrochene Prozess kann dann automatisch neu gestartet
werden. Alternativ hierzu können
an einen Benutzer Meldungen als Alarm gesendet werden, dass ein
Problem vorliegt. Als Antwort auf solch einen Alarm kann der Benutzer
dann Korrekturmaßnahmen
einleiten.
-
Insbesondere
gibt es mehrere Gruppen von Ressourcen, die von dem Prozessmonitor 214 überwacht werden:
die Verfügbarkeit
allgemeiner Ressourcen; die Verfügbarkeit
von Systemressourcen; die Verfügbarkeit
von Computerressourcen; und der Betrieb des Nicht- Echtzeitprozesses,
von Tasks und Threads. Die folgenden vier Tabellen beschreiben einzelne
Gruppen von Ressourcen, die von dem Monitorprozess 214 überwacht
werden. In jeder Tabelle bezeichnet die erste Spalte die überwachte
Ressource. Die zweite Spalte bezeichnet eine Erläuterung bezüglich der Überprüfung, das heißt weshalb
sie erforderlich ist, welche Auswirkungen sie haben kann, und wie
die Überwachung
erfolgt, etc. Die dritte Spalte bezeichnet die Parameter, die einen
Fehler bei dieser Ressource anzeigen. Wenn nichts anderes gesagt
wird, sind diese Parameter variabel und von dem Benutzer können zu
beliebigen Zeiten beliebige Schwellwerte verändert werden. Ein Fachmann wird
fernerhin erkennen, dass sogar diese Parameter, die durch eine spezifische
Zahl dargestellt sind, sich nur auf die dargestellte Ausführungsform
beziehen, und dass ein Bereich zulässiger Zahlenwerte für diese
Parameter vorhanden ist. Die vierte Spalte bezeichnet die Maßnahmen,
die unternommen werden, wenn ein Fehler angezeigt wird. Die Tabelle
1 stellt Überprüfungen der
Speicherressourcen dar. Die Tabelle 2 stellt Überprüfungen der Systemressourcen
dar. Die Tabelle 3 stellt Überprüfungen der
Computerressourcen dar. Die Tabelle 4 stellt Überprüfungen des Prozesses dar.
-
-
-
-
-
-
-
Ein
System in der oben beschriebenen Art und Weise arbeitet, wird mit
einem hohen Grad an Zuverlässigkeit
und einer minimalen Wartezeit in der Lage sein, Bilder, die Echtzeitdaten
repräsentieren,
gleichzeitig mit Bildern anzuzeigen, die Nicht-Echtzeitdaten repräsentieren.