DE102008004658B4 - Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen - Google Patents
Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen Download PDFInfo
- Publication number
- DE102008004658B4 DE102008004658B4 DE102008004658A DE102008004658A DE102008004658B4 DE 102008004658 B4 DE102008004658 B4 DE 102008004658B4 DE 102008004658 A DE102008004658 A DE 102008004658A DE 102008004658 A DE102008004658 A DE 102008004658A DE 102008004658 B4 DE102008004658 B4 DE 102008004658B4
- Authority
- DE
- Germany
- Prior art keywords
- resources
- order
- processes
- queue
- meta
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 350
- 230000008569 process Effects 0.000 title claims abstract description 299
- 238000012545 processing Methods 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000003325 tomography Methods 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000002560 therapeutic procedure Methods 0.000 description 3
- 208000004434 Calcinosis Diseases 0.000 description 2
- 208000006011 Stroke Diseases 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000481 breast Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004195 computer-aided diagnosis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000008733 trauma Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
Verfahren zum Steuern von Zuweisungen von Ressourcen (20) an Prozesse (4) in erweiterbaren medizinischen Plattformen mit einer zentralen Instanz (5) und einer Meta-Schnittstelle (30) zur Verwaltung von Ressourcen (20) eines Typs, wobei das Verfahren folgende Schritte umfasst:
– Empfangen eines Auftrags (1) für einen Prozess (4) durch eine zentrale Instanz (5), wobei der Auftrag (1) gekennzeichnet ist durch einen Auftragstyp (1a);
– Zuordnen (7) des Auftrags (1) zu einem Warteschlangenzuweiser (10) in Abhängigkeit des Auftragstyps,
– Ermitteln einer Vielzahl von Prozessressourcen (25), die zur Ausführung des Auftrags (1) benötigt werden aus innerhalb der Plattform vorhandenen Ressourcen (20) und Ermitteln eines Warteschlangennamens (17) durch den Warteschlangenzuweiser (10);
– Anfragen der Prozessressourcen (25) durch die zentrale Instanz (5) bei der Meta-Schnittstelle (30);
– Zuweisen der Prozessressourcen (25) zu dem Auftrag (1), soweit die Prozessressourcen (25) zur Ausführung des Prozesses (4) zur Verfügung stehen,
– Ausführen des...
– Empfangen eines Auftrags (1) für einen Prozess (4) durch eine zentrale Instanz (5), wobei der Auftrag (1) gekennzeichnet ist durch einen Auftragstyp (1a);
– Zuordnen (7) des Auftrags (1) zu einem Warteschlangenzuweiser (10) in Abhängigkeit des Auftragstyps,
– Ermitteln einer Vielzahl von Prozessressourcen (25), die zur Ausführung des Auftrags (1) benötigt werden aus innerhalb der Plattform vorhandenen Ressourcen (20) und Ermitteln eines Warteschlangennamens (17) durch den Warteschlangenzuweiser (10);
– Anfragen der Prozessressourcen (25) durch die zentrale Instanz (5) bei der Meta-Schnittstelle (30);
– Zuweisen der Prozessressourcen (25) zu dem Auftrag (1), soweit die Prozessressourcen (25) zur Ausführung des Prozesses (4) zur Verfügung stehen,
– Ausführen des...
Description
- Gegenstand der Erfindung
- Die Erfindung bezieht sich auf ein Verfahren zur zentralen Kontrolle von Ressourcen in erweiterbaren medizinischen Plattformen.
- Medizinische erweiterbare Plattformen umfassen in der Regel komplexe Hardware zur Untersuchung von Patienten, zentrale und verteilte Festplatten zur Speicherung von großen Datenmengen. Erweiterbare medizinische Plattformen können sowohl der Verwaltung von medizinischen Patientendaten dienen, wie auch der Organisation von Klinikabläufen, der Therapieplanung, der Klinikverwaltung und der gleichen, wie sie dem Fachmann bekannt sind. Medizinische erweiterbare Plattformen umfassen ferner eine Vielzahl von Knoten bzw. Clients, die auf gespeicherte Daten zugreifen können, Prozesse anstoßen können, und evtl. Zugriff auf komplexe Hardware einer medizinischen Modalität haben.
- Moderne medizinische Modalitäten, wie z. B. die Magnetresonanz-Tomographie (MR-Tomographie) ist gekennzeichnet durch die Verwendung komplexer Hardware-Geräte, z. B. eines MR-Scanners sowie zahlreiche aufwendige Prozesse, die z. B. von der Erfassung der Rohdaten über die Rekonstruktion von Bildern des Inneren des Körpers eines Patienten bis hin zu Methoden zur Diagnose-Erstellung bzw. Diagnose-Unterstützung reichen.
- In einer modernen medizinischen Modalität verfügt der Scanner über ein Echtzeit-Betriebssystem. Ein solches Echtzeit-Betriebssystem stellt sicher, dass zu jedem Zeitpunkt der Zustand des Scanners determiniert ist. Das bedeutet, das Verhalten der Prozesse in einem Echtzeitbetriebssystem, so ge nannter Echtzeitprozesse, ist zu jedem Zeitpunkt bekannt. Neben Echtzeitprozessen, wie z. B. die Erfassung von Rohdaten bei der Untersuchung eines Patienten, gibt es eine Vielzahl von Prozessen im Zusammenhang mit einer medizinischen Modalität, die nicht durch ein Echtzeitbetriebssystem gesteuert werden und gewissermaßen im Hintergrund laufen. Das bedeutet, sie werden im Idealfall vom Benutzer nicht bemerkt. Zu diesen Prozessen gehört die Rekonstruktion von Bildern aus einem 3D-Datensatz oder beispielsweise die Berechnung von Mikrokalzifikationen der weiblichen Brust zur Diagnose-Unterstützung bzw. der Therapieplanung.
- Im Gegensatz zu den Echtzeitprozessen, die etwa auf einem Scanner ablaufen, sind Prozesse bisher dadurch gekennzeichnet, dass das Verhalten der Prozesse nicht deterministisch ist. Das bedeutet in einer erweiterbaren medizinischen Plattform laufen eine Vielzahl von Prozessen gleichzeitig ab. Es kann deshalb vorkommen, dass z. B. das Schreiben von Rohdaten auf die Festplatte eines Scanners erheblich verlangsamt wird oder schlimmstenfalls gar nicht mehr möglich ist, wenn zu viele Prozesse parallel laufen, die gleichzeitig auf die Festplatte des Scanners zugreifen. Das bedeutet eine hohe Zahl von I/O-Operationen auf die Festplatte eines Scanners kann die Performance des Scanners, z. B. beim Scannen eines Patienten einschränken.
- Durch eine verlangsamte Response des Scanners wird wertvolle Zeit verloren, z. B. bei der Untersuchung eines Schlaganfall-Patienten. Durch das geringe Zeitfenster, das zur erfolgreichen Therapie eines solchen Patienten bleibt, ist es erforderlich, für Prozesse innerhalb der medizinischen Plattform ein deterministisches Verhalten zu haben, um auch im Falle eines medizinischen Notfalls eine gesicherte Qualität der innerhalb der erweiterbaren medizinischen Plattform verfügbaren Dienste zu gewährleisten.
- Aus dem Stand der Technik ist es bekannt, ein Ressourcenmanagement zu betreiben, das nach bestimmten Qualitätsstandards für verteilte Multimedia Anwendungen ausgerichtet ist. So zeigt die Druckschrift „QoS-aware resource management for distributed multimedia applications”, K. Nahrstedt et al., Journal of High Speed Networks 7 (1998), 229–257 insbesondere in der Beschreibung in Zusammenhang mit
3 und6 , dass es bekannt ist, Verhandlungen bei der Verwaltung von Ressourcen in Hinblick auf einen einzuhaltenden Qualitätsstandard auf einer zwischengelagerten Middleware-Schicht auszuführen, um Dead-Locks zu vermeiden. Notfallsituationen können mit diesem Modell jedoch nicht abgebildet werden. - Mögliche Lösungen dieses Problems können mitunter separate Notfallsysteme sein, etwa zur Diagnose-Erstellung, die ausschließlich für den Notfall verwendet werden. Ein solches Vorgehen ist teuer, da separate Notfallsysteme in der Regel unbenutzt vorrätig gehalten werden müssen. Die hohen Kosten eines zusätzlichen, separaten Notfallsystems sind also nicht gerechtfertigt.
- Ferner wäre es möglich, keine der Prozesse auf Clients zuzulassen, die im Falle eines Notfalls benötigt werden. Ein solches Vorgehen ist ebenfalls teuer, da weitere Clients notwendig werden, die ausschließlich die innerhalb der erweiterbaren medizinischen Plattform anfallenden Prozesse erledigen. Darüber hinaus macht es die zunehmende Vernetzung aller Clients bzw. Knoten innerhalb einer erweiterbaren medizinischen Plattform (kurz Plattform) erforderlich, dass von allen Clients aus Daten empfangen und gesendet werden können. Für einen Client der Plattform, auf dem keine Prozesse zulässig sind, wäre insbesondere kein Netzwerkzugriff auf diesen Client oder von diesem Client auf andere möglich.
- Um das vorstehend beschriebene Problem zu lösen, wäre es weiterhin denkbar, Spezialbetriebssysteme für Clients einzusetzen, auf denen Prozesse laufen. Dabei müssten die Spezialbetriebssysteme eine gleich bleibende Quality of Service gewährleisten. Derlei Spezialbetriebssysteme sind dem Fachmann bekannt. Allerdings ist der Programmieraufwand für solche Quality of Service-Systeme hoch und das bedeutet einen zusätzlich Wartungsaufwand, Trainingszeiten für die Programmierer, sowie zusätzliche Programmübersetzungsläufe für Zielsysteme, also Clients, die unter dem Spezialbetriebssystem laufen. Ferner erhöht sich der Testaufwand für die Clients, auf denen Prozesse unter dem Spezialbetriebssystem laufen.
- Weiter wäre es denkbar, Prozesse an ausgewählte dezidierte CPUs zu binden. Dadurch ließe sich zwar die Verfügbarkeit der CPU-Ressource steuern, allerdings ergibt sich daraus noch kein Einfluss auf stattfindende I/O-Aktivitäten, die von Prozessen angestoßen wurden. Das heißt, das gewünschte deterministische Verhalten für ein Notfallsystem wäre immer noch nicht gewährleistet.
- Ferner wäre es möglich, die Prioritäten für Prozesse herabzusetzen. Solche Verfahren werden in der Regel durch Betriebssysteme zur Verfügung gestellt und sind dem Fachmann bekannt. Möglicherweise beeinträchtigt ein Herabsetzten der Prioritäten für Prozesse das Scheduling-Verhalten des gesamten vom Betriebssystem gesteuerten Client bzw. der gesamten Plattform. Solch ein Ansatz setzt allerdings voraus, dass jeder einzelne Prozess als Prozess auf Betriebssystemebene realisiert ist. Bei der hohen Zahl von Prozessen, die innerhalb einer Plattform laufen, ist dieser Ansatz wenig effektiv. Darüber hinaus bedeutet ein solches Ändern der Betriebssystem-Prioritäten für Prozesse noch kein deterministisches Verhalten in Notfallsituationen.
- Aufgabe der Erfindung ist es, die zuverlässige Verfügbarkeit von Ressourcen der Plattform in Notfallsituationen zu gewährleisten. Darüber hinaus ist es Aufgabe der Erfindung, auch im regulären Betrieb der Plattform ein deterministisches Verhalten der Prozesse unter Einhaltung der erforderlichen Quality of Service sicherzustellen.
- Diese Aufgabe wird durch ein Verfahren, eine Vorrichtung und ein Computerprogramm gemäß den beiliegenden nebengeordneten Patentansprüchen gelöst.
- Nachstehend wird die Lösung der Aufgabe gemäß dem Verfahren beschrieben. Hierbei erwähnte Merkmale, alternative Ausführungsformen und/oder Vorteile sind ebenso auch auf die anderen beanspruchten Gegenstände zu übertragen und umgekehrt. Mit anderen Worten können auch die gegenständlichen Ansprüche mit den Merkmalen, die in Zusammenhang mit dem Verfahren beschrieben oder beansprucht sind, weitergebildet sein. Die entsprechenden funktionalen Merkmale des Verfahrens werden dabei durch entsprechende gegenständliche Module, insbesondere durch Hardware-Module und/oder Softwaremodule des Systems ausgebildet.
- Die Aufgabe wird insbesondere gelöst durch ein computerimplementiertes Verfahren zum Steuern von Zuweisungen von Ressourcen an Prozesse in erweiterbaren medizinischen Plattformen mit einer zentralen Instanz und einer Meta-Schnittstelle zur Verwaltung von Ressourcen eines Typs, wobei das Verfahren folgende Schritte umfasst:
- – Empfangen eines Auftrags für einen Prozess durch eine zentrale Instanz, wobei der Auftrag gekennzeichnet ist durch einen Auftragstyp;
- – Zuordnen des Auftrags zu einem Warteschlangenzuweiser in Abhängigkeit des Auftragstyps,
- – Ermitteln einer Vielzahl von Prozessressourcen, die zur Ausführung des Auftrags benötigt werden aus innerhalb der Plattform vorhandenen Ressourcen und Ermitteln eines Warteschlangennamens durch den Warteschlangenzuweiser;
- – Anfragen der Prozessressourcen durch die zentrale Instanz bei der Meta-Schnittstelle;
- – Zuweisen der Prozessressourcen zu dem Auftrag, soweit die Prozessressourcen zur Ausführung des Prozesses zur Verfügung stehen,
- – Ausführen des Auftrags für einen Prozess, sofern alle der Prozessressourcen zur Verfügung stehen, wobei die Prozessres sourcen nach Abschluss des Prozesses freigegeben werden und die Meta-Schnittstelle informiert wird, so dass ein dead-lock freies Verhalten der Prozesse innerhalb der Plattform gewährleistet wird, wobei im Falle eines Notfallereignisses ein Unterbrechen mindestens eines Auftrages durch das Empfangen einer Benachrichtigung an der zentralen Instanz ausgelöst wird und mindestens ein Prozess angehalten wird bis ausreichend Prozessressourcen zur Notfallbearbeitung verfügbar sind.
- Ein Auftragstyp im Sinne dieser Erfindung ist eine konzeptionelle Entität, mit anderen Worten eine „Formularvorlage”, die beschreibt, welche Informationen ein Client, der einen Auftrag absendet, angeben muss, um einen Auftrag hinreichend zu spezifizieren. Zum Beispiel gibt ein Druck-Auftragstyp an, dass der Client einen Druckernamen, einen Dokumentennamen und einen Druckmodus angeben muss.
- Ein Auftrag im Sinne der vorliegenden Erfindung ist eine konkrete (dingliche) Instanz eines Auftragstyps. Das heißt eine konkrete Anweisung, was genau zu tun ist. Im Falle eines Druckauftrags zum Beispiel: Druckername = ”MyPrinter”, Dokumentenname = ”Fischer.dcm” und Druckmodus = ”600 dpi”.
- Ein Prozessbearbeiter oder ein Auftragsbearbeiter im Sinne der vorliegenden Erfindung ist die Implementierung eines Services, der einen Auftrag ausführen kann. Die Begriffe Auftragsbearbeiter und Prozessbearbeiter werden im Rahmen dieser Beschreibung synonym verwendet.
- Der Prozessbearbeiter wird in einem Prozess zur Ausführung gebracht. Das heißt der Prozess stellt einen Ablaufcontainer für den Prozessbearbeiter dar. Der Prozessbearbeiter kann immer nur genau einen Auftrag zu einer Zeit ausführen. Der Prozessbearbeiter kann so umgesetzt werden, dass er auch Aufträge unterschiedlicher Auftragstypen ausführen kann; aber immer nur streng sequentiell, einen Auftragstyp nach dem anderen. Darüber hinaus verfügt der Prozessbearbeiter über eine Vielzahl von Schnittstellen, welche die zentrale Instanz benö tigt, um ein Abarbeiten der Aufträge durch Prozessbearbeiter anzuhalten, fortzusetzen oder abzubrechen. Der Prozessbearbeiter kennt mindestens einen Auftragstyp, kann aber auch mehrere Auftragstypen verstehen.
- In einem Prozess können ein oder mehrere Prozessbearbeiter zur Ausführung gebracht werden. Dabei ist die Zahl der Prozessbearbeiter innerhalb eines Prozesses konfigurierbar. Mit anderen Worten, ein Prozess im Sinne der Erfindung ist eine Instanziierung eines oder mehrerer Prozessbearbeiter.
- Prozesse bzw. Hintergrundprozesse im Sinne dieser Erfindung sind solche computer-bezogenen Aktivitäten, die in der Regel unbemerkt vom Benutzer ablaufen. Darüber hinaus handelt es sich bei den Prozessen um solche Prozesse, die nicht durch ein Echtzeitbetriebssystem gesteuert sind, wie etwa Prozesse auf einem Scanner, was bereits eingangs erwähnt wurde.
- Die Prozesse können auf Betriebssystem-Ebene laufen und die Funktionsweise eines Computersystems steuern. Ein Client im Zusammenhang mit der vorliegenden Erfindung ist z. B. ein solches Computersystem.
- Vorzugsweise ist unter einem Prozess im Sinne dieser Erfindung eine Instanz einer ausführbaren Einheit, ein Executable, das heißt ausführbarer Programmcode gemeint. Der Prozessbearbeiter ist solch ein ausführbarer Programmcode, der als Instanziierung eines Prozessbearbeiters in einem Prozess zur Ausführung kommt.
- Die Prozesse laufen innerhalb der medizinischen Plattform und steuern die Funktionsweise der medizinischen Plattform. Ein Prozess kann z. B. die Anzeige von MR-Bildern sein. Weitere Beispiele für Prozesse im Sinne der Erfindung können das Drucken von Bilddaten, sowie das Laden von Bilddaten aus dem Plattenspeicher der Plattform sein.
- Prozesse werden durch Aufträge für Prozesse angestoßen, die in der Regel von einem Benutzer eines Clients ausgelöst wer den. Prozesse sind ferner eine Instanziierung eines Prozessbearbeiters für einen Auftragstyp, wie bereits erwähnt.
- Ein Beispiel für einen Auftrag ist „Zeige die MR-Daten des Patienten Fischer”. Aufträge können von ganz unterschiedlichen Typen sein und sind jeweils durch einen Auftragstyp gekennzeichnet. So ist zum Beispiel „Berechne die Mikrokalzifikation der Patientin Müller” ein weiterer Auftrag, dessen Auftragstyp sich vom vorangehenden Beispiel unterscheidet.
- Ein Auftrag für einen Prozess wird von der zentralen Instanz empfangen und ist ferner durch einen Auftragstyp gekennzeichnet.
- Das bedeutet, die zentrale Instanz muss nicht mehr als den Auftragstyp eines eingehenden Auftrags kennen. Abhängig von dem Auftragstyp des Auftrags wird dieser durch die zentrale Instanz einem Warteschlangenzuweiser zugeordnet.
- Der Warteschlangenzuweiser analysiert den Auftrag und ermittelt für den Auftrag eine Vielzahl von Prozessressourcen aus allen im System verfügbaren Ressourcen, die zur Ausführung des Auftrags notwendig sind. Ferner ermittelt der Warteschlangenzuweiser die Warteschlange in welcher der Auftrag abzulegen ist.
- Daraufhin fragt die zentrale Instanz die Prozessressourcen wie von dem Warteschlangenzuweiser ermittelt an. Diese Anfrage durch die zentrale Instanz erfolgt bei einer Vielzahl von Meta-Schnittstellen, welche jeweils Ressourcen eines Typs verwalten.
- Falls es der zentralen Instanz gelingt, alle Prozessressourcen für den Prozess zu belegen, kommt der Prozess zur Ausführung. Nach Abschluss des Prozesses werden die Prozessressourcen freigegeben und die Meta-Schnittstellen über das Freiwerden der Prozessressourcen informiert. Dabei ist ein deterministisches Verhalten der Prozesse innerhalb der Plattform gewährleistet.
- Unter Ressourcen sollen im Rahmen dieser Beschreibung verstanden werden: Geräte, Gerätekomponenten und Betriebsmittel. Ressourcen können zum Beispiel sein: ein Drucker, eine dezidierte Graphik-Hardware zur Rekonstruktion von Bilddaten einer modernen medizinischen Modalität, Zugriff auf das Netzwerk oder Zugriffe auf Plattenspeicher. Weitere Ressourcen innerhalb der Plattform sind für den Fachmann offensichtlich.
- Die zentrale Instanz im Sinne der Erfindung koordiniert die Abarbeitung der eingehenden Aufträge für Prozesse und stellt die dead-lock freie Ausführung der Aufträge unter Verwendung der innerhalb der Plattform verfügbaren Ressourcen sicher. Die Ausführung der Aufträge erfolgt dabei durch Prozesse. Die Prozesse sind die Instanziierung des jeweiligen Prozessbearbeiters, wie bereits erwähnt.
- Im Rahmen dieser Erfindung wird ein explizites Protokoll zur Verwaltung von Prozessen vorgeschlagen. Die zentrale Instanz beeinflusst die Abarbeitung von Aufträgen mittels Kontrollnachrichten an die Prozessbearbeiter, d. h. sie hält die Prozessbearbeiter an oder lässt sie mit der Abarbeitung weiter fortfahren. Das heißt, die zentrale Instanz hält nicht unbedingt einen ganzen Prozess an, in dem ja mehrere unterschiedliche Prozessbearbeiter laufen können. Insbesondere erfolgt die Verwaltung von Prozessen gemäß der vorliegenden Erfindung über die zentrale Instanz. Damit ist die Gesamtheit aller innerhalb der Plattform laufenden Prozesse bekannt.
- Beide Eigenschaften der Erfindung, also das Protokoll zum Anhalten von Prozessen sowie die zentrale Instanz zur Steuerung der Prozesse erlauben es, eine Vielzahl von in der Plattform vorhandenen Prozessen gewissermaßen „auf Zuruf” anzuhalten, sofern sich eine Notfallsituation einstellt.
- Die Steuerung von Prozessen in einer erweiterbaren medizinischen Plattform übernimmt also die zentrale Instanz. Die zentrale Instanz registriert alle Aufträge für Prozesse, eine Vielzahl von Warteschlangen und Warteschlangenzuweiser, die durch die zentrale Instanz verwaltet werden. Dabei können die Warteschlangen – abhängig vom Auftragstyp – unterschiedlich sein.
- Ferner umfasst das erfindungsgemäße Verfahren eine Meta-Schnittstelle zur Verwaltung aller in der Plattform verfügbaren Ressourcen. Das erfindungsgemäße Verfahren stellt ein deterministisches Verhalten für alle Prozesse innerhalb der Plattform sicher. Die Erfindung erlaubt es, einen oder alle Prozess/e innerhalb des Systems anzuhalten, und so ausreichend Ressourcen für die sofortige Reaktion auf eine Notfallsituation zu gewährleisten. Eine solche Notfallsituation kann z. B. die Untersuchung eines Schlaganfall- oder Trauma-Patienten ergeben.
- Mit dem erfindungsgemäßen Verfahren ist es möglich gleichzeitig mehrere Aufträge für Prozesse an der zentralen Instanz zu empfangen. Ebenso kann die zentrale Instanz mehrere Prozessbearbeiter parallel ausführen, vorausgesetzt, die Prozessressourcen für die mehreren Prozessbearbeiter konnten erfolgreich den mehreren Prozessbearbeitern zugewiesen werden.
- Das System kann mehrere Warteschlangen für Aufträge unterschiedlichen Typs umfassen. Vorzugsweise wird jedem Auftragstyp eine eigene Warteschlange zugewiesen.
- Warteschlangen im Sinne der Erfindung können als Hardwaremodul und oder Softwaremodul realisiert sein.
- Es ist vorteilhaft für unterschiedliche Auftragstypen unterschiedliche Warteschlangen zu verwenden. Bei gesonderten Warteschlangen für verschiedene Auftragstypen können einzelne Warteschlangen bedarfsgerecht und ressourcen-schonend implementiert werden.
- Selbstverständlich ist es nach einer weiteren Ausführungsform der Erfindung möglich, eine einzige Warteschlange für alle Auftragstypen zu verwenden. Allerdings wäre die Verwaltung einer solchen einzigen Warteschlange deutlich komplizierter in der Verwaltung. Außerdem wäre dann die Modularität des Verfahrens reduziert.
- Die Ausführung der Aufträge eines Auftragstyps wird durch mindestens einen Prozessbearbeiter ausgeführt. Der mindestens eine Prozessbearbeiter wird durch die zentrale Instanz gestartet. Welcher Prozessbearbeiter zum Einsatz kommt, ist durch den Auftragstyp des Auftrags festgelegt.
- Das Verfahren erlaubt es, einen laufenden Prozessbearbeiter anzuhalten, wodurch ein deterministisches Unterbrechen der Prozesse sicher gestellt ist.
- So kann jeder der Prozesse innerhalb der Plattform angehalten werden, und wieder gestartet werden, so dass die weitere Bearbeitung durch den jeweiligen Prozessbearbeiter nach einer Unterbrechung möglich ist.
- Darüber hinaus kann die zentrale Instanz eine Warnung empfangen, die anzeigt, dass in Kürze ein kritischer Zustand erreicht wird. Daraufhin startet die zentrale Instanz keine weiteren Prozessbearbeiter, lässt die aktiven Prozessbearbeiter jedoch weiter arbeiten.
- Es ist außerdem vorgesehen, dass jeder der, innerhalb der Plattform aktiven Prozessbearbeiter angehalten werden kann und zum weiteren Bearbeiten wieder freigegeben werden kann. Dadurch werden Ressourcen z. B. für einen Notfall kontrolliert und zuverlässig frei. Das Anhalten und Freigeben erfolgt erfindungsgemäß durch die zentrale Instanz.
- Außerdem kann das Unterbrechen mindestens eines Auftrags durch das Empfangen einer Benachrichtigung an der zentralen Instanz (z. B. auf ein medizinisches Notfallereignis hin) ausgelöst werden. Daraufhin wird automatisch mindestens ein Prozess angehalten, bis ausreichend Ressourcen (zur Notfallbearbeitung) verfügbar sind.
- Darüber hinaus erlaubt es die Erfindung, neue Auftragstypen, die neue Prozesstypen anstoßen, zum System hinzuzufügen. Insbesondere erlaubt es die Erfindung, die neuen Prozesstypen zur Laufzeit hinzuzufügen. Das ist für den Anwender äußerst komfortabel, da Service-Techniker oder Drittanbieter weitere Auftragstypen bzw. neue Funktionalitäten im Zusammenhang mit neuen Auftragstypen gewissermaßen per Knopfdruck hinzufügen können.
- Ferner wird die Bereitstellung neuer Funktionalitäten zur Plattform in Form von neuen Prozesstypen erleichtert, da ein Drittanbieter sich nicht mehr um die Verwaltung von Warteschlangen für seinen neuen Prozess kümmern muss.
- Aufgabe der Meta-Schnittstelle ist es dabei, die für einen Prozess benötigten Ressourcen, zu verteilen.
- Wenn Ressourcen für einen Prozess verfügbar sind, werden Sie von der Meta-Schnittstelle als so genannte Prozessressourcen belegt. Vorzugsweise belegt jede der Meta-Schnittstellen Prozessressourcen für einen Auftragstyp und gibt die Prozessressourcen nach erfolgter Erledigung des Auftrags wieder frei. Sind die Prozessressourcen nicht verfügbar, so verbleibt der Auftrag in der Warteschlange und es erfolgt keine sofortige Ausführung des Auftrags. Die zentrale Instanz kümmert sich in diesem Fall um eine Ausführung des Auftrags zu einem späteren Zeitpunkt.
- Die einzelnen Komponenten der Erfindung sind modular realisiert, so dass die Warteschlangen und/oder die Warteschlangenzuweiser, der Prozessbearbeiter und die Meta-Schnittstelle zu einem Auftragstyp jeweils unabhängig voneinander geändert werden können. Dadurch wird die Erweiterung und Programmierung einzelner Prozesstypen vereinfacht.
- Ein Auftrag ist gekennzeichnet durch seinen Auftragstyp und kann darüber hinaus eine Vielzahl von Parametern umfassen. Solche Parameter können z. B. in der Auflösung, in der die Bilddaten eines Druckauftrags gedruckt werden, bestehen. Weitere Auftragsparameter sind für den Fachmann offensichtlich.
- Die zentrale Instanz, die Warteschlangen, die Warteschlangenzuweiser, die Meta-Schnittstellen und die Prozessbearbeiter im Sinne der Erfindung können jeweils als Hardwaremodule und/oder als Softwaremodule implementiert sein.
- Die Erfindung kann weiterhin durch eine Vorrichtung realisiert sein, welche die Steuerung von Zuweisungen von Ressourcen an Prozesse in erweiterbaren medizinischen Plattformen erledigt. Die Vorrichtung umfasst eine zentrale Instanz zum Empfang eines Auftrags für einen Prozess. Der Auftrag ist gekennzeichnet durch seinen Auftragstyp und kann außerdem weitere Auftragsparameter umfassen.
- Die in einem Empfangsmodul eingegangenen Aufträge werden, abhängig vom Auftragstyp durch einen Warteschlangenzuweiser analysiert und einer Warteschlange zugewiesen. Ferner ermittelt der Warteschlangenzuweiser die Prozessressourcen aus allen in der Plattform verfügbaren Ressourcen und teilt die Prozessressourcen der zentralen Instanz mit. Daraufhin fragt die zentrale Instanz die Prozessressourcen bei den Meta-Schnittstellen der Prozessressourcen an. Die Prozessressourcen werden dem Auftrag zugewiesen, sofern sie verfügbar sind. Der Auftrag wird ausgeführt, sofern die Verfügbarkeit aller Prozessressourcen gegeben ist. Nach Abschluss des Prozesses werden die Prozessressourcen freigegeben und die jeweiligen Metaschnittstellen über das frei werden der Ressourcen informiert. Auf diese Weise wird ein deterministisches Verhalten der Prozesse innerhalb der Plattform gewährleistet.
- Eine weitere Aufgabenlösung ist auch als Computerprogrammprodukt möglich, das ladbar in den Speicher eines Computers ist. Das erfindungsgemäße Verfahren wird durch Computerprogrammcode realisiert, der die einzelnen Schritte des Verfahrens abbildet.
- Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computerimplementierten Verfahrens bestimmt ist und von einem Computer lesbar ist.
- Darüber hinaus ist es möglich, dass einzelne Komponenten des vorstehend beschriebenen Verfahrens in einer verkaufsfähigen Einheit und die restlichen Komponenten in einer anderen verkaufsfähigen Einheit – sozusagen als verteiltes System – ausgeführt werden können.
- In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen:
-
1 eine übersichtsartige Darstellung -
2 einen Datenfluss gemäß einer bevorzugten Ausführungsform der Erfindung. -
1 zeigt die einzelnen Komponenten der Erfindung. Die Erfindung umfasst eine zentrale Instanz5 , einen Warteschlangenzuweiser10 , einen Auftrag1 eines Auftragstyps1a für einen Prozess4 (nicht gezeigt), der auf einem Client3 (nicht gezeigt) angestoßen wird, eine Meta-Schnittstelle30 und einen Prozessbearbeiter40 zur Ausführung des Auftrags1 . Dabei ist der Client3 ein beliebiger Knoten innerhalb der Plattform. - Prozesse
4 im Sinne dieser Erfindung können solche computer-bezogenen, betriebssystem-interne Aktivitäten sein, die in der Regel unbemerkt vom Benutzer ablaufen. Darüber hinaus handelt es sich bei den Prozessen4 um solche Prozesse, die nicht durch ein Echtzeitbetriebssystem gesteuert sind, wie etwa Prozesse auf einem Scanner. - Vorzugsweise ist unter einem Prozess im Sinne dieser Erfindung eine Instanz einer ausführbaren Einheit, ein Executable, das heißt ausführbarer Programmcode gemeint. Der Prozessbearbeiter umfasst zum Beispiel ausführbaren Programmcode, der als Instanziierung eines Prozessbearbeiters zu einem Prozess wird. Die bevorzugte Ausführungsform eines Prozesses ist daher nicht notwendig ein Betriebssystemprozess, wie weiter oben erwähnt.
- Selbstverständlich kann die Erfindung auch auf medizinischen Plattformen zum Einsatz kommen, die nicht notwendig einen Scanner umfassen, wenngleich die Erfindung im Folgenden anhand einer solchen modernen medizinischen Modalität beschrieben wird.
- Der Benutzer eines Clients
3 kann Prozesse4 im Sinne der Erfindung durch Aufträge1 anstoßen. Es existiert innerhalb der Plattform eine Vielzahl der Prozesse4 . Unterschiedliche Prozesse4 sind durch einen Auftragstypen1a gekennzeichnet. Beispiele für Auftragstypen sind: ein Druck-Auftragstyp, ein DICOM-Transfer Auftragstyp, Auftragstyp für computer aided diagnosis, und der gleichen. - Das Drucken der Bilddaten einer Bilderserie des Patienten „Fischer” auf dem Drucker MyPrinter ist ein Beispiel für einen Prozess
4 im Sinne der Erfindung. Der Client3 würde also z. B. den Auftrag ”Ausdruck der Bilderserie des Patienten Fischer in 600 dpi auf Myprinter auf Papierformat A3 mit 4 × 4 Bildern pro Seite in 32 Graustufen” anstoßen. Dabei bezeichnet der Druckauftrag den Auftragstyp1a , während alle übrigen Parameter etwa die Anzahl der dpi bzw. der spezielle Drucker oder die Auflösung der Bilder so genannte Auftragsparameter2 sind. - Anhand eines Beispiels soll im Folgenden das Verfahren zur Verwaltung einer Vielzahl von Prozessen
4 innerhalb der erweiterbaren medizinischen Plattform dargestellt werden. Die Ausdehnung der Erfindung auf weitere Auftragstypen1a ist für den Fachmann offensichtlich und stellt keine Einschränkung der vorliegenden Erfindung dar. -
2 zeigt zu einem Prozess4 die Aktivitäten und das Zusammenspiel einzelner Komponenten der erfindungsgemäßen Vorrichtung zur Ausführung des erfindungsgemäßen Verfahrens. - Der von einem Client
3 angestoßene Auftrag1 wird von einer zentralen Instanz5 empfangen. Der Auftrag1 ist durch den Auftragstyp1a gekennzeichnet. Aufgabe der zentralen Instanz5 ist erfindungsgemäß das Empfangen einer Vielzahl von Aufträgen1 unterschiedlichen Auftragstyps1a von unterschiedlicher Clients3 innerhalb der Plattform. - Für jeden der Auftragstypen
1a existiert ein Warteschlangenzuweiser10 . Der Warteschlangenzuweiser10 ermittelt für einen konkreten Auftrag1 von dem Auftragstyp1a einen Warteschlangen-Namen17 , den er an die zentrale Instanz5 zurückliefert. Das heißt mit anderen Worten, die zentrale Instanz5 hat für einen eingehenden Auftrag1 , durch Kenntnis des Auftragstyp1a , alle Information, um über die Zuordnung7 den Wartenschlangen-Zuweiser10 zu ermitteln, der zu dem gegebenen Auftragstyp1a passt. - Die Vielzahl von Warteschlangenzuweisern
10 ist als eigenständiges Modul realisiert, vorzugsweise als ein Softwaremodul. - Der Auftrag
1 wird nun von der zentralen Instanz5 in einer Warteschlange15 abgelegt, bis der Auftrag1 bearbeitet werden kann. Die Warteschlangen15 werden dynamisch durch die zentrale Instanz5 erzeugt und vernichtet. - Neben dem Warteschlangen-Namen
17 ermittelt der Warteschlangenzuweiser10 noch die für die Ausführung eines Auftrags1 erforderlichen Ressourcen20 . Die für einen Auftrag erforderlichen Ressourcen werden im Folgenden als Prozessressourcen25 bezeichnet. Die Prozessressourcen25 sind dadurch gekennzeichnet, dass die Prozessressourcen25 verfügbar sein müssen für den Auftrag1 , da ohne die Verfügbarkeit der Prozessres sourcen25 der Auftrag1 nicht zur Ausführung durch einen Prozessbearbeiter40 kommen kann. Der Warteschlangenzuweiser10 teilt den Warteschlangen-Namen17 , die Prozessressourcen25 und den Prozessbearbeiter40 zu einem Auftrag1 der zentralen Instanz5 mit. - Sofern die Warteschlange
15 mit dem Warteschlangen-Name17 noch nicht existiert, wird die Warteschlange15 von der zentralen Instanz angelegt und der Auftrag1 von der zentralen Instanz5 in der Warteschlange15 abgelegt. Die Erzeugung und Verwaltung der Warteschlangen15 über die zentrale Instanz5 befreit den Prozessbearbeiter40 zur Ausführung von Aufträgen1 des Auftragstyps1a von der Pflicht, eingehende Aufträge1 vom Typ1a selbst in Warteschlangen15 zu verwalten. - Die Vergabe der Prozessressourcen
25 an den Auftrag1 vom Auftragstyp1a wird über eine Vielzahl von Meta-Schnittstellen30 koordiniert. Einzelne der Meta-Schnittstellen30 verwalten Prozessressourcen eines Typs. Solche Prozessressourcen eines Typs können z. B. sein: Der Zugriff auf einen Drucker, die Bereitstellung von Arbeitsspeicher und CPU-Rechenleistung auf dezidierter Grafik-Hardware zur Rekonstruktion von Bilddaten. Weitere Typen von Prozessressourcen sind für den Fachmann offensichtlich. - Die zentrale Instanz
5 versucht nun, die Prozessressourcen25 für den Auftrag1 in einer der Warteschlangen15 bei den, zu den Prozessressourcen35 passenden Meta-Schnittstellen30 zu reservieren. Immer dann, wenn es der zentralen Instanz5 gelingt, alle der Prozessressourcen25 eines Auftrags1 erfolgreich bei den Meta-Schnittstellen30 anzufordern, startet die zentrale Instanz5 den Prozessbearbeiter40 . - Zu jedem Auftragstyp
1a gehört ein Prozessbearbeiter40 . Der Prozessbearbeiter40 erbringt als Antwort auf einen Auftrag1 eine technische Dienstleistung. Vorzugsweise ist der Prozessbearbeiter40 als Softwaremodul realisiert, das den Auftrag1 ausführt. Zum Beispiel könnte ein Prozessbearbeiter40 die Auflösung von Patientendaten (MR-Tomographie Daten des Patienten Fischer) zum Drucken vorbereiten. Das heißt z. B., die Graustufen entsprechend verteilen, festlegen, wie viele einzelne Bilder pro DINA4-Seite gedruckt werden, in welcher Auflösung und Größe. - Wesentliches Merkmal der Prozessbearbeiter
40 gemäß der vorliegenden Erfindung ist, dass sie von der zentralen Instanz5 unterbrochen werden können. Die Prozessbearbeiter40 weisen die dafür erforderlichen Schnittstellen auf. Mittels des Anhaltens oder eines Abbrechens von Prozessbearbeitern40 werden Ressourcen25 innerhalb der Plattform frei, die z. B. für eine Notfallsituation benötigt werden. Darüber hinaus können Prozessbearbeiter40 , die durch die zentrale Instanz5 angehalten wurden, von dieser mit der Wiederaufnahme der Ausführung des Auftrags1 beauftragt werden. Das heißt zuvor durch die zentrale Instanz5 angehaltene Prozessbearbeiter40 können durch die zentrale Instanz5 zur Fortsetzung der Durchführung des Auftrags1 beauftragt werden. Selbstverständlich müssen vor der Fortsetzung die Prozessressourcen25 verfügbar sein. - Darüber hinaus ist es möglich, dass die zentrale Instanz
5 mehrere Prozessbearbeiter40 gleichzeitig mit der Ausführung mehrerer Aufträge1 beauftragt, sofern die Prozessressourcen25 für jeden der aktiven Prozessbearbeiter40 und damit für die mehreren Aufträge1 reserviert sind. - Die, zu den Prozessressourcen
25 eines Auftrags1 (z. B. einem Druckauftrag) passenden, Meta-Schnittstellen30 verwalteten Ressourcen im System. Die Meta-Schnittstellen30 können Prozessressourcen25 , welche die zentrale Instanz5 bei den Meta-Schnittstellen30 anfordert, der zentralen Instanz5 zur Verfügung stellen. - Insbesondere belegt die Meta-Schnittstelle
30 die Ressource20 als die Prozessressource25 für den Auftrag1 . Nach erfolgter Ausführung des Auftrags1 durch den Prozessbearbeiter40 , der von der zentralen Instanz5 mit der Ausführung des Prozesses4 beauftragt wurde, gibt der Prozessbearbeiter40 die verwendeten Prozessressourcen25 an die zentrale Instanz5 zurück. - Die zentrale Instanz
5 entscheidet daraufhin, ob die Prozessressourcen25 als freie Ressourcen20 an die Meta-Schnittstelle zurückgegeben werden oder gleich für einen weiteren Auftrag1 verwendet werden. - Meta-Schnittstellen
30 verwalten die parallele Verwendung einer Klasse von im System vorhandenen Ressourcen20 durch mehrere Aufträge1 . So könnten beispielsweise alle im System verfügbaren Drucker über eine Meta-Schnittstelle30 verwaltet werden. Die Meta-Schnittstelle30 kennt insbesondere Randbedingungen für die gleichzeitige Verwendung von Ressourcen30 gleichen Typs. - So könnte etwa für die Meta-Schnittstelle zur Verwaltung von Netzwerkschnittstellen
31 festgelegt sein, dass immer nur drei abgehende Netzwerkverbindungen von einem Client3 abgehen können. Das bedeutet für einen Client3 , auf dem Prozesse1 laufen, dass maximal drei Netzwerkverbindungen gleichzeitig von diesem Client3 abgehen können. - Sofern der Benutzer des Clients
3 einen weiteren Prozess1 anstößt, der eine abgehende Netzwerkverbindung aufbauen möchte, wird dies durch die Meta-Schnittstelle zur Verwaltung von Netzwerkschnittstellen31 nur dann dem Prozess1 zugewiesen, wenn bereits maximal zwei abgehende Netzwerkverbindungen offen sind. Sind hingegen bereits drei Netzwerkverbindungen offen, so wird die vierte Anfrage zum Öffnen einer abgehenden Netzwerkverbindung durch die Meta-Schnittstelle zur Verwaltung von Netzwerkschnittstellen31 verhindert. Damit wird das Maß an Netzwerk-Traffic, der von einem Client3 abgeht, begrenzt. - Eine andere Ressource
20 könnte Rechenzeit auf einem Computersystem sein, um dort komplexe Rekonstruktionen von Rohdaten zu berechnen. - So ist es etwa denkbar, dass der Benutzer eines Clients
3 einen Auftrag1 zur Rekonstruktion eines 3D-Datensatzes des Patienten Fischer anstößt, z. B. aus MR-Tomographie Daten. Das bedeutet, die zentrale Instanz5 würde bei den entsprechenden Meta-Schnittstellen für Rekonstruktions- bzw. Graphik-Workstations33 die Prozessressourcen25 anfragen. Die Meta-Schnittstelle zur Vergabe von Graphik-Workstation-Ressourcen33 könnte beispielsweise festlegen, dass maximal ein Prozess1 zur Rekonstruktion auf einer solchen Graphik-CPU mit zugeordnetem Hauptspeicher laufen kann. - Erfolgt für dieselbe Workstation eine zweite Anfrage von der zentralen Instanz
5 , so wird die Zuteilung der Prozessressourcen25 für Rekonstruktions- bzw. Graphik-Workstations durch die entsprechenden Meta-Schnittstellen für Rekonstruktions- bzw. Graphik-Workstations33 abgewiesen. Das bedeutet, der zweite eingehende Auftrag1 zur Rekonstruktion eines Datensatzes wird verwehrt. Damit ist beispielsweise sichergestellt, dass ein Auftrag1 zur Rekonstruktion von Bilddaten innerhalb eines vorgegebenen zeitlichen Rahmens ausgeführt werden kann. - Die Meta-Schnittstelle
30 fungiert damit im Sinne eines Semaphors, ein Modell zur Modellierung der gleichzeitigen Verwendung von Ressourcen, das dem Fachmann auf dem Gebiet hinreichend bekannt ist. Die Dead-lock Freiheit wird im Rahmen der Erfindung durch entsprechende Scheduling und Allocation Algorithmen in der zentralen Instanz5 beim Anfordern von Prozessressourcen25 erreicht. - Das erfindungsgemäße Verfahren erlaubt die Erweiterung der Plattform um neue Auftragstypen
1b für Prozesse1 im laufenden Betrieb, das heißt zur Laufzeit der Plattform. Dies ergibt sich insbesondere aus der verteilten ”Intelligenz” des Verfahrens auf eine einfache zentrale Instanz5 , einen Warteschlangenzuweiser10 zur Koordination mehrerer Warteschlangen15 , die der zentralen Instanz5 bekannt sind, sowie die Meta-Schnittstellen30 zu der Vielzahl von in der Plattform vorhandenen Ressourcen20 . - Um einen neuen Auftragstyp
1b für einen neuen Prozesstyp4a zur Plattform hinzuzufügen, genügt es, zur Plattform einen neuen Warteschlangenzuweiser10a , sowie einen neuen Prozessbearbeiter40a im System zu hinterlegen, sowie gegebenenfalls neue Meta-Schnittstellen30a . Es genügt, dass die zentrale Instanz5 den neuen Warteschlangenzuweiser10a des neuen Auftragstyps1b kennt. - Dies kann z. B. realisiert werden über die Zuordnung
7 von Auftragstyp1a und Warteschlangenzuweiser10 , die für einen neuen Auftragstyp1b um einen weiteren Eintrag ergänzt wird. Dem neuen Warteschlangenzuweiser10a wiederum ist neben dem Namen der neuen Warteschlange15a auch der Name des neuen Prozessbearbeiters40a bekannt. Es genügt also zur Erweiterung der Plattform um einen neuen Auftragstyp1b , die Zuordnung7 um einen neuen Eintrag zu erweitern, den neuen Warteschlangenzuweiser10a und den neuen Prozessbearbeiter40a , sowie gegebenenfalls eine neue Meta-Schnittstelle30a an geeigneter Stelle innerhalb der Plattform zu hinterlegen. Nach erfolgter Hinterlegung genügt die Aktualisierung der Zuordnung7 , z. B. als Konfigurationsdatei, um der zentralen Instanz5 diesen neuen Auftragstyp1b bekannt zu machen. So würde insbesondere die Erweiterung des Systems zur Laufzeit möglich. Ferner können einzelne Module unabhängig voneinander getauscht oder erweitert werden. - Darüber hinaus erlaubt die verteilte Erledigung der zu einem angestoßenen Auftrag
1 gehörenden Prozessschritte mittels der zentralen Instanz5 , die dead-lock freie Abarbeitung der in der Plattform anfallenden Aufträge1 für Prozesse40 . Drittanbietern, die Erweiterungen der Plattform zur Verfügung stellen, wird damit die Arbeit erheblich erleichtert. Der Drittanbieter muss die neuen Warteschlangen10a nicht implementieren oder sich um die dead-lock freie Ressourcenanforderung und priorisierte Abarbeitung der Aufträge1 kümmern. - Im Folgenden wird der dynamische Ablauf des erfindungsgemäßen Verfahrens gezeigt. Ein Client
3 erzeugt einen Auftrag1 und gibt diesen an die zentrale Instanz5 . Die zentrale Instanz findet, abhängig vom Auftragstyp den zugehörigen Warteschlangenzuweiser10 . Der Warteschlangenzuweiser10 analysiert daraufhin den bei der zentralen Instanz5 eingegangenen Auftrag und gibt der zentralen Instanz5 daraufhin den Warteschlangen-Namen17 , sowie möglicherweise eine Vielzahl von Prozessressourcen25 und daraufhin optional eine Liste von Prozessparametern zurück. Mit dieser Information weiß die zentrale Instanz5 in welcher Warteschlange15 der Auftrag1 abgelegt werden muss. - Darüber hinaus sind nun die Prozessressourcen
25 zur Ausführung des Auftrags1 bekannt. Der Warteschlangenzuweiser10 liefert ferner den Namen des für den Auftrag geeigneten Prozessbearbeiters40 an die zentrale Instanz5 zurück. Mit diesen Informationen kann die zentrale Instanz5 den Auftrag1 in einer bestimmten Warteschlange15 ablegen, eventuell unter Berücksichtigung von Auftragsprioritäten. Existiert eine Warteschlange15 mit diesem Namen noch nicht, dann erzeugt die zentrale Instanz5 diese neue Warteschlange15a . - Ferner kann die zentrale Instanz
5 nun, basierend auf dem zur Ausführung des Auftrags1 erforderlichen Prozessressourcen25 , versuchen, diese für einen in der Vielzahl von Warteschlangen15 gespeicherten Aufträge1 zu reservieren. Zur Reservierung der Prozessressourcen25 wendet sich die zentrale Instanz5 an die entsprechenden der Meta-Schnittstelle30 , welche die innerhalb der Plattform vorhandenen Ressourcen20 geeigneten Typs für den Auftrag1 verwalten. - Wie bereits erwähnt, können Ressourcen
20 und damit auch Prozessressourcen25 die Verwendung von Geräten umfassen oder CPU-Rechenzeit bzw. Arbeitsspeicher beinhalten. Selbstverständlich sind auch andere Ressourcen20 in solch einer Plattform ohne Einschränkung der Erfindung denkbar. Soweit alle Prozessressourcen25 für einen Auftrag1 verfügbar sind, kann die zentrale Instanz5 den Prozessbearbeiter40 für einen Auftrag1 mit der Bearbeitung des Auftrags1 beauftragen und den Prozessbearbeiter40 starten. - In einem Prozess können ein oder auch mehrere Prozessbearbeiter
40 zur Ausführung gebracht werden. Für solch eine Ausführungsform müsste der Warteschlangenzuweiser10 die Prozessressourcen25 des ersten Prozessbearbeiters und ferner die Prozessressourcen der weiteren Prozessbearbeiters an die zentrale Instanz5 zurückmelden. Nachdem alle Prozessbearbeiter ihren Auftrag erledigt haben, werden die Prozessressourcen25 des ersten Prozessbearbeiters40 und die Prozessressourcen25 der weiteren Prozessbearbeiter an die jeweiligen Meta-Schnittstellen zurückgegeben. Damit stehen sie der Plattform als Ressourcen20 erneut zur Verfügung. - Die Flexibilität und Erweiterbarkeit der erfindungsgemäßen Lösung ist gegeben. Neue Auftragstypen können zu beliebigen Zeiten hinzugefügt werden. Die konkrete Realisierung von Warteschlangenzuweiser
10 , Meta-Schnittstelle30 und Prozessbearbeiter40 zu einem gegebenen Auftrag1 können immer dann unabhängig voneinander variiert werden. Die Warteschlangen-Anzahl wird durch die Warteschlangenzuweiser10 kontrolliert. Es ist Aufgabe der zentralen Instanz5 , alle Warteschlangen15 zu verwalten und zu kennen. Allerdings erzeugt die zentrale Instanz5 die Warteschlangen15 nicht auf Vorrat, sondern nur aufgrund von Informationen, welche die Warteschlangenzuweiser10 liefern. - Die Realisierung der gleichzeitigen Anforderung von Ressourcen
20 , das heißt einer Kommunikation zur Belegung von Ressourcen20 ist durch die Meta-Schnittstellen30 völlig gekapselt, was ebenfalls die Erweiterung der Plattform erleichtert. - Die Logik der Abarbeitung eines Auftrags
1 wird in einem Prozessbearbeiter40 realisiert. Damit ist die Abarbeitung eines Auftrags1 unabhängig von Warteschlangen-Verwaltung und von Ressourcenanforderungsprotokollen. Das Modul des Prozessbearbeiters40 kann sich also einzig und allein auf die durch den Auftrag zu lösende Aufgabe konzentrieren. Die Implementierung des Prozessbearbeiters40 wird dadurch erheblich vereinfacht. Durch die zentrale Instanz gemeinsam mit den Meta-Schnittstellen30 wird die Vergabe von Ressourcen25 dead-lock-frei erledigt und die Aufträge können durch die Prozessbearbeiter40 abgearbeitet werden. Dabei können Aufträge1 bei der Ablage in den Warteschlangen priorisiert werden. Ferner sind Randbedingungen für die Verwendung von Ressourcen20 ein weiterer Bestandteil des erfindungsgemäßen Verfahrens. Solche Randbedingungen wurden oben bereits erläutert. - Selbstverständlich werden Prozessressourcen
25 , die für einen Auftrag1 reserviert wurden, nach Beendigung des Prozessbearbeiters40 an die zentrale Instanz5 zurückgegeben. - Die zentrale Instanz
5 entscheidet daraufhin, ob die Prozessressourcen25 als freie Ressourcen20 an die Meta-Schnittstelle30 zurückgegeben werden oder gleich für einen weiteren Auftrag1 verwendet werden. Insbesondere erlaubt die zentrale Instanz5 zur Verteilung von Ressourcen25 und zur Verteilung der Aufträge1 auf Warteschlangen15 alle laufenden Prozesse4 zu kontrollieren. Durch die zentrale Instanz können einzelne Prozesse4 angehalten werden. - Von einem Client
3 innerhalb der Plattform können Warnungen, Benachrichtigungen und/oder Nachrichten an die zentrale Instanz5 gesandt werden. - Durch eine Warnung kann die zentrale Instanz
5 dazu veranlasst werden, keine weiteren Aufträge1 mehr an Prozessbearbeiter40 zu geben, sodass beim Eintreten eines kritischen Zustandes weniger laufende Prozesse überhaupt anzuhalten sind. Diese Warnung lässt allerdings alle bereits laufenden Prozessbearbeiter40 noch fortfahren. Das Absetzen der Warnung ist optional und erfolgt typischerweise vor Eintritt eines kritischen Zustands. - Im Gegensatz dazu steht eine Benachrichtigung an die zentrale Instanz
5 , die das Eintreten eines kritischen Zustandes bekannt gibt (z. B. Datenaufnahme hat begonnen). Durch die Benachrichtigung wird die zentrale Instanz5 umgehend die laufenden Prozessbearbeiter40 benachrichtigen, damit diese die Abarbeitung der laufenden Prozesse4 einstellen. - Die Warnung ist eine optionale Vorstufe der Benachrichtigung. Offensichtlich unterstützt die Warnung das Verhalten der Plattform in kritischen Situationen: die Warnung kann dazu führen, dass weniger Prozesse
4 beim Empfang der Benachrichtigung über einen kritischen Zustand, anzuhalten sind. - Ebenso ist es möglich, über eine Nachricht mitzuteilen, dass derzeit Rohdaten eines Patienten (z. B. MR-Tomographie Untersuchung des Patienten Fischer) im Scanner aufgenommen werden und deshalb der Netzwerk-Verkehr hin zum Plattenspeicher des Scanners für weitere Prozesse
1 beschränkt werden sollte. Hohe Schreibzugriffe auf dem Plattenspeicher durch weitere Prozesse1 würden die Geschwindigkeit der Platte zum Speichern der anfallenden Rohdaten verlangsamen. Realisieren lässt sich dies indirekt durch eine Beschränkung der möglichen Netzwerkverbindungen, die gleichzeitig abgehend vom Plattenlaufwerk des Scanners möglich sind. - Die Registrierung neuer Auftragstypen
1a , neuer Meta-Schnittstellen30a , neuer Warteschlangenzuweiser10a und neuer Prozessbearbeiter40a kann über verschiedene Mechanismen innerhalb der Plattform erfolgen. Möglich ist die Realisierung über Konfigurationsfiles, ein zentrales Konfigurationsrepository, File-System-Verzeichnisse, in die Dateien gelegt werden, usw. Die konkrete Realisierung der Bekanntmachung der einzelnen Komponenten der Erfindung bei der zentralen Instanz5 schränkt den Geist der Erfindung in keiner Weise ein, es handelt sich vielmehr um unterschiedliche Ausführungsformen, die aber alle im Sinne dieser Beschreibung für den Fachmann offensichtlich sind. - Abschließend sei darauf hingewiesen, dass die Beschreibung der Erfindung und die Ausführungsbeispiele grundsätzlich nicht einschränkend in Hinblick auf eine bestimmte physikalische Realisierung der Erfindung zu verstehen sind. Für einen einschlägigen Fachmann ist es insbesondere offensichtlich, dass die Erfindung teilweise oder vollständig in Soft- und/oder Hardware und/oder auf mehrere physikalische Produkte – dabei insbesondere auch Computerprogrammprodukte – verteilt realisiert werden kann.
Claims (15)
- Verfahren zum Steuern von Zuweisungen von Ressourcen (
20 ) an Prozesse (4 ) in erweiterbaren medizinischen Plattformen mit einer zentralen Instanz (5 ) und einer Meta-Schnittstelle (30 ) zur Verwaltung von Ressourcen (20 ) eines Typs, wobei das Verfahren folgende Schritte umfasst: – Empfangen eines Auftrags (1 ) für einen Prozess (4 ) durch eine zentrale Instanz (5 ), wobei der Auftrag (1 ) gekennzeichnet ist durch einen Auftragstyp (1a ); – Zuordnen (7 ) des Auftrags (1 ) zu einem Warteschlangenzuweiser (10 ) in Abhängigkeit des Auftragstyps, – Ermitteln einer Vielzahl von Prozessressourcen (25 ), die zur Ausführung des Auftrags (1 ) benötigt werden aus innerhalb der Plattform vorhandenen Ressourcen (20 ) und Ermitteln eines Warteschlangennamens (17 ) durch den Warteschlangenzuweiser (10 ); – Anfragen der Prozessressourcen (25 ) durch die zentrale Instanz (5 ) bei der Meta-Schnittstelle (30 ); – Zuweisen der Prozessressourcen (25 ) zu dem Auftrag (1 ), soweit die Prozessressourcen (25 ) zur Ausführung des Prozesses (4 ) zur Verfügung stehen, – Ausführen des Auftrags (1 ) für einen Prozess (4 ), sofern alle der Prozessressourcen (25 ) zur Verfügung stehen, wobei die Prozessressourcen (25 ) nach Abschluss des Prozesses (4 ) freigegeben werden und die Meta-Schnittstelle (30 ) informiert wird, so dass ein dead-lock freies Verhalten der Prozesse (4 ) innerhalb der Plattform gewährleistet wird, wobei im Falle eines Notfallereignisses ein Unterbrechen mindestens eines Auftrages (1 ) durch das Empfangen einer Benachrichtigung an der zentralen Instanz (5 ) ausgelöst wird und mindestens ein Prozess (4 ) angehalten wird bis ausreichend Prozessressourcen (25 ) zur Notfallbearbeitung verfügbar sind. - Verfahren gemäß Anspruch 1, wobei gleichzeitig mehrere Aufträge empfangen werden können und wobei ferner das gleichzeitige Ausführen mehrerer Prozesse (
4 ) möglich ist, sofern das Zuweisen der jeweiligen Prozessressourcen (25 ) an eine Vielzahl gleichzeitig ablaufender Prozesse notwendig und möglich ist, wobei die zentrale Instanz (5 ) Prozesse (4 ) unterbrechen kann. - Verfahren gemäß Anspruch 1 oder 2, wobei jedem Auftragstyp (
1a ) eine eigene Warteschlange (10 ) zugeordnet wird. - Verfahren gemäß Anspruch 1 bis 3, wobei die zentrale Instanz (
5 ) mindestens einen Prozessbearbeiter (40 ) mit dem Ausführen des Auftrags (1 ) beauftragt, und der mindestens eine Prozessbearbeiter (40 ) durch den Auftragstyp (1a ) des Auftrags bestimmt ist. - Verfahren gemäß Anspruch 4, wobei der mindestens eine Prozessbearbeiter (
40 ) von der zentralen Instanz (5 ) gestartet wird. - Verfahren gemäß einem der vorangegangenen Ansprüche, weiter umfassend einen Schritt zum Anhalten eines laufenden Prozessbearbeiters (
40 ), um ein deterministisches Unterbrechen des Prozesses (4 ) zu gewährleisten. - Verfahren gemäß einem der Ansprüche 1 bis 6, weiter umfassend einen Schritt zum Empfangen einer Warnung durch die zentrale Instanz (
5 ), woraufhin die zentrale Instanz (5 ) keine weiteren Prozessbearbeiter (40 ) startet. - Verfahren gemäß Anspruch 7, wobei jeder der innerhalb der Plattform aktiven Prozessbearbeiter (
40 ) angehalten und/oder zum weiteren Bearbeiten wieder freigegeben werden kann. - Verfahren gemäß einem der vorhergehenden Ansprüche 4 mit 8, wobei die zentrale Instanz (
5 ) nach Erhalt einer Benachrichtigung mindestens einen der Prozessbearbeiter (40 ) anhält. - Verfahren gemäß einem der vorangegangenen Ansprüche, weiter umfassend einen Schritt zum Erweitern der medizinischen Plattform um einen neuen Auftragstyp (
1a ) zur Ausführung eines neuen Prozesses (4a ). - Verfahren gemäß Anspruch 10, wobei das Erweitern der medizinischen Plattform zur Laufzeit dynamisch erfolgen kann.
- Verfahren nach einem der vorhergehenden Ansprüche 4 mit 11, wobei der Warteschlangezuweiser (
10 ), der Prozessbearbeiter (40 ) und die Meta-Schnittstelle (30 ) unabhängig voneinander realisierbar und veränderbar sind. - Verfahren nach einem der vorhergehenden Ansprüche, wobei der Auftrag (
1 ) neben dem Auftragstyp (1a ) eine Vielzahl von Auftragsparametern aufweisen kann. - Vorrichtung zur Steuerung von Zuweisungen von Ressourcen (
20 ) an Prozesse (4 ) in erweiterbaren medizinischen Plattformen, wobei die Vorrichtung Mittel umfasst, die zur Ausführung eines Verfahrens nach einem der vorstehenden Verfahrensansprüche ausgebildet ist und dazu folgendes umfasst: – Eine zentrale Instanz (5 ) zum Empfang eines Auftrags (1 ) für einen Prozess (4 ), wobei der Auftrag (1 ) gekennzeichnet ist durch einen Auftragstyp (1a ); – Einer Meta-Schnittstelle (30 ) zur Verwaltung von Ressourcen (20 ) eines Typs; – Einen Warteschlangenzuweiser (10 ) zur Zuweisung (7 ) des empfangenen Auftrags (1 ) zu einer Warteschlange (10 ) in Abhängigkeit vom Auftragstyp (1a ), – Ermittler, der zur Ermittlung einer Vielzahl von Pro zessressourcen (25 ) bestimmt ist, die zur Ausführung des Auftrags (1 ) nötig sind aus innerhalb der Plattform vorhandenen Ressourcen (20 ) und zur Ermittlung eines Warteschlangennamens (17 ) durch den Warteschlangenzuweiser (10 ), – Anfragemodul der zentralen Instanz (5 ), das zur Anfrage nach den Prozessressourcen (25 ) bei der Meta-Schnittstelle (30 ) bestimmt ist; – Zuweisungsmodul, das zur Zuweisung der Prozessressourcen (25 ) zu dem Auftrag (1 ) bestimmt ist, soweit die Prozessressourcen (25 ) zur Ausführung des Prozesses (4 ) zur Verfügung stehen, – Prozessbearbeiter (40 ), der zur Ausführung des Prozesses (4 ) bestimmt ist, sofern die Verfügbarkeit aller Prozessressourcen (25 ) gegeben ist, wobei nach Abschluss des Prozesses (4 ) die Freigabe der Prozessressourcen (25 ) sowie eine Information der Meta-Schnittstelle (30 ) erfolgt, so dass ein dead-lock freies Verhalten der Prozesse innerhalb der Plattform gewährleistet ist, wobei im Falle eines Notfallereignisses ein Unterbrechen mindestens eines Auftrages (1 ) durch das Empfangen einer Benachrichtigung an der zentralen Instanz (5 ) ausgelöst wird und mindestens ein Prozess (4 ) angehalten wird bis ausreichend Prozessressourcen (25 ) zur Notfallbearbeitung verfügbar sind. - Computerprogramm, geladen in einen Speicher eines Computers und das zur Durchführung des Verfahrens nach einem der Patentansprüche 1 bis 13 ausgebildet ist, wenn das Computerprogramm in dem Computer ausgeführt wird.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008004658A DE102008004658B4 (de) | 2008-01-16 | 2008-01-16 | Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen |
US12/318,807 US8117310B2 (en) | 2008-01-16 | 2009-01-08 | Method for the central control of resources in expandable medical platforms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008004658A DE102008004658B4 (de) | 2008-01-16 | 2008-01-16 | Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102008004658A1 DE102008004658A1 (de) | 2009-07-23 |
DE102008004658B4 true DE102008004658B4 (de) | 2010-03-25 |
Family
ID=40785791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102008004658A Active DE102008004658B4 (de) | 2008-01-16 | 2008-01-16 | Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen |
Country Status (2)
Country | Link |
---|---|
US (1) | US8117310B2 (de) |
DE (1) | DE102008004658B4 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110154355A1 (en) * | 2009-12-22 | 2011-06-23 | Siemens Aktiengesellschaft | Method and system for resource allocation for the electronic preprocessing of digital medical image data |
DE102011079429A1 (de) * | 2011-07-19 | 2013-01-24 | Siemens Aktiengesellschaft | Performancesimulation von medizintechnischen Prozeduren in einer Client-Server-Umgebung |
JP6165468B2 (ja) * | 2012-03-05 | 2017-07-19 | 東芝メディカルシステムズ株式会社 | 医用画像処理システム |
WO2019212182A1 (en) * | 2018-05-04 | 2019-11-07 | Samsung Electronics Co., Ltd. | Apparatus and method for managing a shareable resource in a multi-core processor |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5317733A (en) * | 1990-01-26 | 1994-05-31 | Cisgem Technologies, Inc. | Office automation system for data base management and forms generation |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
JPH11239165A (ja) * | 1998-02-20 | 1999-08-31 | Fuji Photo Film Co Ltd | メディカルネットワークシステム |
US6505229B1 (en) * | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
US6470406B1 (en) * | 1999-06-25 | 2002-10-22 | International Business Machines Corporation | Managing isochronous processes in a heterogenous work environment |
US6721948B1 (en) * | 2000-06-30 | 2004-04-13 | Equator Technologies, Inc. | Method for managing shared tasks in a multi-tasking data processing system |
US6687838B2 (en) * | 2000-12-07 | 2004-02-03 | Intel Corporation | Low-power processor hint, such as from a PAUSE instruction |
US7154621B2 (en) * | 2001-03-20 | 2006-12-26 | Lightsurf Technologies, Inc. | Internet delivery of digitized photographs |
US7509671B1 (en) * | 2001-06-20 | 2009-03-24 | Microstrategy Incorporated | Systems and methods for assigning priority to jobs in a reporting system |
US20030120776A1 (en) * | 2001-07-11 | 2003-06-26 | Sun Microsystems, Inc. | System controller for use in a distributed processing framework system and methods for implementing the same |
JP3975703B2 (ja) * | 2001-08-16 | 2007-09-12 | 日本電気株式会社 | 情報処理システムにおける優先実行制御方法及びその装置並びにプログラム |
US20030069756A1 (en) * | 2001-10-01 | 2003-04-10 | Higginbotham James C. | Emergency department management process |
US7171468B2 (en) * | 2001-11-10 | 2007-01-30 | Kabushiki Kaisha Toshiba | System and method for accessing a document management repository |
US6988139B1 (en) * | 2002-04-26 | 2006-01-17 | Microsoft Corporation | Distributed computing of a job corresponding to a plurality of predefined tasks |
US20040167465A1 (en) * | 2002-04-30 | 2004-08-26 | Mihai Dan M. | System and method for medical device authentication |
US20040001215A1 (en) * | 2002-06-26 | 2004-01-01 | Canon Kabushiki Kaisha | Print control apparatus, print control method, program product, and print system |
US20040205048A1 (en) * | 2003-03-28 | 2004-10-14 | Pizzo Michael J. | Systems and methods for requesting and receiving database change notifications |
JP3951949B2 (ja) * | 2003-03-31 | 2007-08-01 | 日本電気株式会社 | 分散型資源管理システムおよび分散型資源管理方法並びにプログラム |
US7607571B2 (en) * | 2003-05-30 | 2009-10-27 | Intellidot Corporation | Medical work flow system |
KR100529326B1 (ko) * | 2003-06-24 | 2005-11-17 | 삼성전자주식회사 | 프린팅 데이타의 처리 방법과 장치 및 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체 |
US7835931B2 (en) * | 2003-10-03 | 2010-11-16 | Meta Command Systems, Inc. | Method and system for network-based, distributed, real-time command and control of an enterprise |
US7865263B2 (en) * | 2003-11-26 | 2011-01-04 | Mckesson Automation, Inc. | Integrated suite of medical tools |
US20050165881A1 (en) * | 2004-01-23 | 2005-07-28 | Pipelinefx, L.L.C. | Event-driven queuing system and method |
US20060037021A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | System, apparatus and method of adaptively queueing processes for execution scheduling |
US20060123111A1 (en) * | 2004-12-02 | 2006-06-08 | Frank Dea | Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems |
US7548335B2 (en) * | 2005-02-25 | 2009-06-16 | Microsoft Corporation | Print job queuing and scheduling systems and methods |
US20060224432A1 (en) * | 2005-03-31 | 2006-10-05 | British Telecommunications Public Limited Company | Workflow scheduling system |
US7844968B1 (en) * | 2005-05-13 | 2010-11-30 | Oracle America, Inc. | System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling |
US7752622B1 (en) * | 2005-05-13 | 2010-07-06 | Oracle America, Inc. | Method and apparatus for flexible job pre-emption |
DE102005031245B4 (de) * | 2005-07-01 | 2007-11-15 | Siemens Ag | Verfahren zum Test eines klinischen und/oder medizintechischen Systems und Verfahren zur Steuerung medizintechnischer Untersuchungsabläufe in einem klinischen und/oder medizintechnischen System sowie entsprechende Computerprogrammprodukte |
US7937706B2 (en) * | 2005-08-22 | 2011-05-03 | Runtime Design Automation, Inc. | Method and system for performing fair-share preemption |
JP2007122664A (ja) * | 2005-10-31 | 2007-05-17 | Sony Computer Entertainment Inc | 情報処理方法および情報処理装置 |
US8185423B2 (en) * | 2005-12-22 | 2012-05-22 | Canon Kabushiki Kaisha | Just-in time workflow |
CA2652470C (en) * | 2006-06-08 | 2014-12-16 | Softmedical, Inc. | Methods and systems for consolidating medical information |
US8392008B2 (en) * | 2006-10-20 | 2013-03-05 | Rockwell Automation Technologies, Inc. | Module arbitration and ownership enhancements |
WO2008098204A2 (en) * | 2007-02-08 | 2008-08-14 | Kryptiq Corporation | Health care administration system |
US20080312967A1 (en) * | 2007-05-31 | 2008-12-18 | America Service Group, Inc. | Comprehensive method and system for intake screening and medical records management |
-
2008
- 2008-01-16 DE DE102008004658A patent/DE102008004658B4/de active Active
-
2009
- 2009-01-08 US US12/318,807 patent/US8117310B2/en active Active
Non-Patent Citations (1)
Title |
---|
Nahrstedt, K. et al.: QoS-aware resource management for distributed multimedia applications. In: Journal of High Speed Networks 7 (1998) pp. 229-257 * |
Also Published As
Publication number | Publication date |
---|---|
US20090182879A1 (en) | 2009-07-16 |
US8117310B2 (en) | 2012-02-14 |
DE102008004658A1 (de) | 2009-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69829442T2 (de) | System und Verfahren für transparenten, globalen Zugang zu physikalischen Geräten in einem Rechnersystem | |
DE20121932U1 (de) | Vorrichtung zum Planen von Terminen | |
DE112004001153T5 (de) | Datenmigration- und Formattransformationssystem | |
DE102006004618A1 (de) | Arbeitsablauf-basiertes Management von medizinischen Bilddaten | |
DE102006051187A1 (de) | Verteilte Taskflow-Architektur | |
DE10161381A1 (de) | Patientendatenverarbeitungssystem und -verfahren | |
DE102009042128A1 (de) | Verfahren und System zur Verwendung von temporären exklusiven Sperren für parallele Betriebsmittelzugrife | |
DE10119876A1 (de) | Verfahren, System und Computerprorammprodukt zur Bereitstellung einer Jobüberwachung | |
DE102008004658B4 (de) | Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen | |
DE112013003300T5 (de) | Schrittweise Vorbereitung von Videos auf die Lieferung | |
DE102013105848A1 (de) | Vorri chtung und Verfahren zum Unterstützen eines Tests eines Anwendungsdienstes unter Verwendung mehrerer Clouds | |
DE102021130092A1 (de) | System zur parallelen verarbeitung von anwendungsalgorithmen für middleware-knoten unter verwendung von threads | |
DE102019104865A1 (de) | Anwendungsbereitstellungsvorrichtung, Anwendungsbereitstellungsverfahren und Anwendungsbereitstellungsprogramm | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
DE102005031245B4 (de) | Verfahren zum Test eines klinischen und/oder medizintechischen Systems und Verfahren zur Steuerung medizintechnischer Untersuchungsabläufe in einem klinischen und/oder medizintechnischen System sowie entsprechende Computerprogrammprodukte | |
DE112011100098B4 (de) | Effiziente Mehrkernverarbeitung von Ereignissen | |
DE102007041345A1 (de) | X-Core Bildrekonstruktionssystem (IRS) mit x-parallelen Recon-Pipelines | |
DE102006027669A1 (de) | Workflow-Maschine zur Verwaltung einer Arbeitsliste und ein Verfahren hierfür | |
DE102005041628B4 (de) | Vorrichtung und Verfahren zur Verarbeitung von Daten unterschiedlicher Modalitäten | |
DE112019005043T5 (de) | Streamzuweisung unter verwendung von stream-guthaben | |
DE102017203315A1 (de) | Verfahren und Datenverarbeitungseinheit zur Auswahl eines Protokolls für eine medizinische Bildgebungsuntersuchung | |
DE102015221405A1 (de) | Verwaltete Bildrekonstruktion für Bildgebungsverfahren in der Medizintechnik | |
DE112019005038T5 (de) | Ressourcenzuweisung unter verwendung von guthaben mit verteilter segmentverarbeitung | |
EP2479664B1 (de) | System und Verfahren zum Erzeugen eines Quellcodes für ein Computerprogramm | |
DE102013206754A1 (de) | Verfahren zum Bearbeiten von Daten und zugehörige Datenverarbeitungsanlage oder Datenverarbeitungsanlagenverbund |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHCARE GMBH, DE Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE |
|
R081 | Change of applicant/patentee |
Owner name: SIEMENS HEALTHINEERS AG, DE Free format text: FORMER OWNER: SIEMENS HEALTHCARE GMBH, MUENCHEN, DE |