Dokumentation zu Projekt Dialyse-Dokumentation (PMD)

 

 

2112portals.com ist Hersteller von Software im Bereich SAP i.s.h.med mit Schwerpunkt Medizinkontrolling und Klinische Dokumentation.

Wir veröffentlichen technische Hinweise zu unseren Arbeiten im Bereich ‚parametrierbare medizinische Dokumente’.

Dieser Bereich ist vom Hersteller sehr sparsam dokumentiert. Alle hier  veröffentlichten Source Codes, Hinweise und Verfahren sind OPEN SOURCE unter der GPL V3 Lizenz.

 

 

 

 

 

Übersicht Dialyseerfassung als Hauptdokument.

 

 

Projektbeschreibung

Entwicklung eines Dialyse PMD, das sowohl als allein stehendes Dokument, als auch eingebettet innerhalb anderer Dokumente verwendet werden kann(Zentral/Filialdokument).

Diese Eigenschaft beseitigt Redundanz in der Entwicklung und Datenhaltung: Da es nur eine Instanz des Dokumentes gibt, werden die Daten nur einmal gespeichert. Andere Dokumente betten das PMD über ein Linkelement ein, und brauchen keine eigenen Anzeigeelemente für Dialysen.

Über das Linkelement ist ebenso die Änderbarkeit der Dialysen in Dokumenten möglich, die das Dialyse-Linkelement verwenden.

Die Änderungen werden in die Zentralinstanz übernommen und dort gespeichert – alle Verwender sehen die Daten als gemeinsames Dokument.

 

Notwendige Eigenschaften:

 

 

 

 

 

Programmdokumentation

Ein Teil der Lösung ist gemäß den Standard-Vorgaben zur Implementierung von Linkelementen der GSD implementiert. Hierzu gehört eine Funktionsgruppe mit einem Funktionsbaustein, der zur Laufzeit für verschiedenen Ereignisse aufgerufen wird(PBO, SAVE, SET_FOCUS), und einer Klasse, die Methoden implementiert, die aus dem FuBa zur Laufzeit zu verschiedenen Zeitpunkten(PBO, Save, …) aufgerufen werden.

Ein Customizing für das Linkelement wurde nicht implementiert.

Aufbauend auf dieser Grundkonstruktion wurden drei weitere Klassen, Strukturen, Suchhilfe und Datenelemente erstellt.

Bei der Entwicklung wurde die, in der SAP-Welt in Zusammenhang mit ABAP OO oft favorisierte, „Überakademisierung“ zu Gunsten eines verstehbaren Anwendungsmodells über Bord geworfen. So kommt die Anwendung mit wenigen Klassen und Interfaces aus, mit dem Ziel Wartbarkeit und Einfachheit zu fördern.

 

 

Bestandteile

Objekt

Typ

Beschreibung

ZZ_DIALYSE

PMD

Dialyse Dokument.

Entwicklungs- PMD für das Linkelement.

ZZ_TEST000(001, 002, 003)

PMD

Ein PMD, zur Einbettung des Dialysen-Linkelementes (Simuliert ein Intensiv, oder Blutdokument).

ZZ_DIALOPS

ZZ_DIALART

DokEl

Elemente zum Einbau in das Dialyse Dokument.
Siehe auch Elementmapping

/GRN/ZNPMD1

PAKET

 

/GRN/LNK_DIALYSE

FGR

Linkelement Funktionsbaustein

/GRN/DIA_MIGRATE_ZINTDOKU

FM

Funktionsbaustein für Migration von Dialysen des alten(Generator 1) Intensivdokuments.

Migrationsbausteine werden vom Linkelement immer aufgerufen, wenn die Datenselektion ausgeführt wurde. Diese können dann alte Dialysen, von anderen Datenquellen in die neue Dialyse übernehmen.

Migrationsbausteine werden dynamisch über das Präfix /GRN/DIA_MIGRATE_ und dem Dokumentnamen des einbetteten PMD aufgerufen.

 

 

/GRN/CL_PMD_LNK_DIALYSE

KLASSE

Klasse mit Methoden, die aus der Funktionsgruppe aufgerufen werden.

/GRN/CL_PMD_DIALYSE_BL

KLASSE

Business Logik Klasse.

/GRN/CL_PMD_DIALYSE_DATA

KLASSE

Datenklasse zur Speicherung einer internen Tabelle mit PMD Daten. Diese Klasse verfügt über keinerlei Methoden.

app_alv_grid_tmpl

KLASSE(lokal)

Eine lokale Klasse, die die ALV-Grid-Funktionalität beinhaltet.

lcl_handle_events

KLASSE(lokal)

Lokale Klasse mit der Definition von Ereignissen für den ALV-Grid.

/GRN/F4_DIALYSE

/GRN/PMD_DIALYSE_DATA

/GRN/PMD_DIALYSE_META_DATA

Tabellentypen

 

Z_CHKPG_ALV_HDLR

Z_CHKPG_PMD_LNKEL

Z_CHKPG_PMD_LNKEL_BL

Z_CHKPG_PMD_LNKEL_CL

Z_CHKPG_PMD_LNKEL_FGR

 

CHECKPOINTGRUPPE

 

/GRN/CX_INVALID_DATE

/GRN/CX_NO_SERVICE

Exceptions

 

/GRN/AE_DATUM

/GRN/ANLAGE_DATUM

/GRN/DATUM_BIS

/GRN/DATUM_VON

/GRN/DAUER

/GRN/DIALYSE_ART

/GRN/FILTRATIONS_ART

/GRN/NC_DAUER_H

/GRN/NC_DAUER_M

/GRN/NC_UNTERBRECHUN

/GRN/UNIQUE_LFDNR

/GRN/ZEIT_BIS

/GRN/ZEIT_VON

ZZ_DIALYSE_TYP

Datenelemente

 

/GRN/ZNPMD1

Nachrichtenklasse

 

/GRN/F4_DIALYSE

/GRN/F4_FILTRATION

Suchhilfe

 

ZZPMD

Typgruppe(Type Pool)

 

/GRN/VW_DIASTAMM

/GRN/VW_FLTSTAMM

Views

Diese Views werden für die Suchhilfen verwendet.



 

Aufrufgraph

 

Zentraldokument

ZZ_DIALYSE

 

 

Filialdokument

ZINTDOKU

(Intensivdokumentation)

 

 
      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Elementmapping PMD Linkelement – interne Tabelle.

Das Linkeelement abstrahiert die multiple Struktur der PMD Dialysestrukturen in eine interne Tabelle.

Der Bezug zwischen diesen Strukturen wird über Namensgleichheit der Dokelemente mit den Feldern der internen Tabelle hergestellt.

Hinweis: jegliche Änderungen an den Namen wird dazu führen, dass Feldinhalte des PMD nicht angezeigt oder verarbeitet werden können, deshalb sollte hier mit einer gewissen Vorsicht bei Änderungen vorgegangen werden.

Die PMD-Technik hat die eigenart, dass bei Mehrfachverwendung eines Dokelementes nur das erste Dokelement den Originalnamen (i.e. ZZ_DIALOPS) erhält. Weitere Verwendungen führt zu einer automatischen Umbenennung des Dokel. So wird aus ZZ_DIALOPS dann X00_DIALOPS.

Deshalb werden beim Mapping die ersten drei Zeichen  N I C H T  B R Ü C K S I C H T I G T.

 

Anlegen von Dialyse-Dokumenten

Bei der Verwendung eines Dialyse-Dokumentes als eingebettetes Dokument innerhalb eines anderen PMD muss entweder eine Verbindung zum Dialyse-PMD hergestellt werden, oder (wenn noch kein Dia PMD erstellt wurde) ein neues Zentraldokument aus dem einbettenden PMD heraus erfolgen.

 

PMD Hooking

Die Verbindung zu einem externen Dialyse-Dokument wird über die Eindeutigkeit von Patientennummer und Fallnummer hergestellt.

Beim Start des Linkelements sucht dieses nach Dokumenttypen der Dialyse mit dem Schlüssel zu Patient und Fall (/GRN/CL_PMD_LNK_DIALYSE -> DOCUMENT_EXISTS) mit dem Funktionsbaustein ISH_N2_MEDDOC_GETLIST.

Wenn mehrere Dokumente gefunden werden, dann wird das mit der höchsten Versionsnummer ausgewählt.

 

Anlegen eines neuen Zentraldokumentes aus einem anderen PMD

Ein neues Dialyse-PMD innerhalb eines PMD wird über den Funktionsbaustein ISH_N2_MEDICAL_DOCUMENT (mit oder ohne Dialog) angelegt.

Stellt das Linkelement fest, dass kein passendes Zentraldokument existiert, wird im UI (User Interface, ALV Tree) eine Schaltfläche eingeblendet, mit der das Anlegen ausgeführt werden kann.

 

SELF Containment.

Jedes Zentraldokument beinhaltet sich selbst – d.h. (technisch) das Linkelement ist in das PMD, auf das es verknüpft wiederum selbst eingebaut.

Das hat den Hintergrund, dass damit erreicht werden kann, einem Benutzer identische Oberflächen zu präsentieren, gleich, ob er sich im Zentral- oder Filialdokument befindet.

Normalerweise werden die Dialysen als multiple Strukturen des PMD in einem Table-Control angezeigt und auch über diese abgespeichert.

Diese Strukturierung bleibt beibehalten, allerdings werden diese Table-Controls unsichtbar gemacht.
An deren Stelle tritt eine UI-Kombination aus ALV-Tree und ALV-Grid(siehe unten).

Aus Entwicklungssicht hat dieses den Vorteil, dass auch nur eine Business Logik angewandt werden muss, da nur eine Komponente verwaltet werden muss.

Eine Schwierigkeit bildet allerdings beim Self Containment die Gefahr von Rekursionen beim Sichern und verlassen des Dokuments, die aber natürlich gelöst wurden.

 

Vorteil der Beseitigung von redundanter Datenhaltung.

Die Lösung ermöglicht es, dem Benutzer berechnete(Zeitdauern, Unterbrechungen) oder anderweitig beschaffte Daten(ORGFA, OPS-Ziffern) zu präsentieren, die nicht in das Dokument abgespeichert werden brauchen.

Beispielsweise würde man zur Anzeige der Dialysedauer ein Feld in die multiple Struktur aufnehmen, um diese im Table-Control anzuzeigen, mit dem Nachteil, dass dieses Feld sich in der Datenbank wieder findet. 

Die Verwendung einer ALV-Liste ist vergleichbar einem VIEW, mit der Möglichkeit berechnete Werte (Dauern, Unterbrechungen usw.) anzuzeigen, die nicht abgespeichert werden müssen.

 

Benutzerdokumentation

Allgemeines

Das Dialysedokument besteht aus drei Teilen:

Die Flächen sind durch verschiebbare Balken mit Griffen jeweils horizontal und vertikal manuell veränderbar.

Ein Doppelklick auf einen Knoten der Dialysen oder Filtrationen öffnet in der rechten Seite die jeweilige Liste in Größe der vollen Fläche.

 

 

Dialysen

 

Filtrationsfläche

 

Übersicht

 

Verschiebegriffe zur vertikalen und horizontalen Teilung der Fächen.

 

 

 

 

 

 

 

Anlegen von Dialyse-Dokumenten.

Ein Dialysedokument kann Zentral- oder Filialdokument sein.

Dokumenttyp ist ‚ZZ_DIALYSE’.

Hinweis: Als Zentraldokument wird das eigentliche Dialysedokument bezeichnet, Filialdokument(e) sind alle Dialysedokumente, die in anderen Dokumenten beinhaltet sind.

Entsprechend kann die Anlage über die Transaktion N201 mit dem Dokumenttyp des Dialsyse-PMD oder aus einem einbettenden PMD (Intensiv, Blut) erfolgen.

 

Anlegen eines Zentraldokumentes.

Dokumente können wie üblich mit der Transaktion N201 oder aus dem Klinischen Arbeitsplatz angelegt werden.

 

Anschliessend steht das Zentraldokument zur Bearbeitung bereit.

 

 

 

 

Anlegen eines Filialdokumentes.

 

Um ein eingebettetes Dokument zu erzeugen, wird zunächst das (äussere, oder beinhaltended) Hauptdokument angelegt(Intensiv-, Blutdokument usw.).

Hier haben wir zur Demonstration nur ein einfaches Testdokument als Beispiel genommen.

In der linken Ebene der Dialysen ist die Schaltfläche ‚Dialyse Dok anlegen’ aktiv.

Durch Anklicken dieser Schaltfläche wird der Standardanlage-Dialog ausgeführt, und die Daten für das Dialysedokument können eingegeben werden.

 

Anschliessend wird diese Schaltfläche verborgen und es ist nur noch die Schaltfläche ‚OPS Abgleich’ sichtbar, mit der ein Abgleich der OPS Ziffern gestartet werden kann.

Anm: OPS Ziffernableich erfolgt aber immer automatisch beim Speichern des Dokumentes.

 

Beispiel Einbettung der Dialyse in die Intensivdokumentation.

In dieser Abbildung ist die Dialyseerfassung in die Intensivdoku eingebettet und über eine Kartenreiter erreichbar.

Anlegen von Dialysen und Filtrationen.

 

Neue Einträge für Dialysen oder Filtrationen können über die Schaltfläche ‚+’ oberhalb der jeweiligen Liste angelegt werden.

Die Zeiten werden mit der aktuellen Uhrzeit und Datum eingetragen, so daß zunächst eine neutrale Dauer von Null Minuten berechnet wird.

Hinweis:

Die ORGEinheit für den jeweiligen Eintrag wird automatisch aus den Bewegungen des Falles berechnet.

Kann keine Zuordnung ermittelt werden, wird ein Eintrag in das Fehlerprotokoll gemacht. Dieses Protokoll lässt sich in der linken Fläche unterhalb der

‚Meldungen’ anzeigen.

 

Wichtig:

Berechnungen und Verarbeitung der  Liste erfolgen erst nach dem Betätigen der Enter-Taste auf der Liste (ein Standardverhalten der verwendeten Liste).

 

Die Felder OrgEinheit, Minuten, und OPS sind nicht änderbar durch den Benutzer, diese werden immer berechnet.

 

Löschen

Über die Schaltfläche ‚-’ können eine oder mehrere markierte Dialysen wieder aus der Listeentfernt werden. Die Änderung wird nach dem Speichern in das System übernommen.

Kopieren

Mit der Kopieren Schaltfläche können ein oder mehrere markierte Listeneinträge dupliziert werden.

 

Hinweis: Das Markieren mehrerer Einträge ist eine S*P Standard und kann durch das Drücken der Taste ‚STRG’ und gleichzeitiges anklicken einer der Markierungen einer Liste (linker Rand) erfolgen.

OPS Ziffernabgleich für Dialysen.

Ziffernabgleich bewirkt, dass die eben eingegebenen Daten, die zu OPS Ziffern berechnet wurden, mit dem KIS ‚abgeglichen’ werden.

Hier ist das Dialyse Dokument das ‚führende System’ – d.h. alle OPS Ziffern, die in der Dialyse erfasst wurden werden in das KIS übernommen, OPS, die im KIS bereits vorhanden sind, und nicht mit den erfassten Daten deckungsgleich sind, werden aus dem KIS entfernt. Die DRG müssen danach neu berechnet werden.

(Der OPS Abgleich ist Bestandteil des Produktes ‚OPS Collector’ und als separates Produkt verfügbar.)

OPS Ziffern der Dialysen werden jedes Mal berechnet, wenn die Enter-Taste in einer Liste gedrückt wird (und Änderungen gemacht wurden).

Der Abgleich aller OPS Ziffern mit dem IS-H System erfolgt entweder automatisch beim Sichern des Dokuments, oder manuell durch drücken der Schaltfläche "OPS Abgleich", oder automatisch, wenn das Dokument gespeichert wird.

 

 

©2010 Frank Kempf, Waldstr. 19, D-76684 Östringen  2112portals.com

 

 

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

 

You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>.