Com.hilotec.elexis.messwerte.v2.feature.feature.group
Version: | 3.0.0.v20140414-1432 |
Kategorie: | Kg-Führung |
Beschreibung: | Strukturierte Erfassung und Verarbeitung von Messungen und andern Erhebungsdaten |
Author: | |
Letzte Bearbeitung: | 13. Juni 2014 |
Voraussetzungen: | Elexis 3.0 |
Betriebssystem: | Windows, Mac, Linux |
Lizenz: | Eclipse Public License (EPL) |
Contents
Einführung
Dieses Elexis-Plugin ist dazu gedacht, Messungen und andere Erhebungsdaten in Elexis strukturiert erfassen und verarbeiten zu können. Mit dem Plugin hilotec-pluginstatistiken wird es auch ermöglicht, Auswertungen darüber zu erstellen, und die Werte als CSV zu exportieren. Das Plugin stellt eine View "Hilotec Messwerte V2" zur Verfügung, die eine Übersicht über alle Messungen eines Patienten bietet. Dort können auch neue Messungen erfasst und Bestehende bearbeitet (verändert oder gelöscht) werden. Die Konfiguration der möglichen Messungen und deren Struktur wird in einer XML-Datei spezifiziert.
Neuerungen in V2
In der V2 des Plugins sind zwei neue Datentypen hinzugekommen (datefield und counterfield). Zudem können bei numfield, calcfield und counterfield nun Zahlenformate und Rundungsmechanismen konfiguriert werden.
Konfiguration
Wie weiter oben bereits erwähnt, wird das Plugin über eine XML-Datei konfiguriert.
Elexis 3.7 und später
Hier werden die Beispieldateien (siehe [messwerte_v2.xml]) genommen, falls in den Einstellungen unter "Hilotec Messwerte" keine andere Konfigurationsdatei angegeben wurde und keine Konfigurationsdatei im Benutzerdatenverzeichnis von Elexis gefunden werden kann.
Elexis 3.6 und früher
Diese Dateien befinden sich im Benutzerdatenverzeichnis von Elexis:
- Windows
- C:\Dokumente und Einstellungen\Benutzer\Elexis\messwerte_v2.xml
- Linux
- /home/benutzer/elexis/messwerte_v2.xml
Die verfügbaren Messungstypen werden mit datatype-Elementen im Rootelement datatypes deklariert. Pro Messungstyp kann ein Name, der intern (unter anderem auch für die IDataAccess-Schnittstelle und damit z.B. Nutzung der Messwerte als Platzhalter in Briefen) zur Identifikation des Typs benutzt wird, dieser kann mit dem Attribut name festgelegt werden. Die Messungsbezeichnung, die dem Benutzer angezeigt wird, kann über das Attribut title konfiguriert werden. In der XML Datei sieht das folgendermassen aus:
<?xml version="1.0"> <datatypes> <datatype name="masse" title="Masse"> <numfield name="gewicht" title="Gewicht" unit="kg" /> <numfield name="groesse" title="Groesse" unit="m" /> </datatype> <datatype name="bdruck" title="Blutdruck"> <numfield name="bdsys" title="Systolisch" unit="mm Hg" /> <numfield name="bddia" title="Diastolisch" unit="mm Hg" /> </datatype> </datatypes>
In den datatype-Tags können die zur Messung gehörenden Felder eingetragen werden. Bei allen Feldtypen sind die folgenden Attribute verfügbar:
- name
- Interner Feldname, muss eindeutig sein in dem Typ
- title
- Dem Benutzer angezeigter Titel
- unit
- Einheit (nur für den Benutzer)
Im Folgenden wird auf die einzelnen Feldtypen genauer eingegangen. Die angegebenen Typnamen entsprechen gleichzeitig auch den XML-Tagnamen um Felder des entsprechenden Typs zu generieren.
strfield
Ein- oder mehrzeiliges Textfeld
Attribute
- default
- Standardwert, wenn die Messung neu erfasst wird
- lines
- Anzahl Zeilen des Textfeldes [Standard: 1]
Beispiel
<strfield name="bemerk" title="Bemerkungen" lines="1" />
numfield
Zahlenfeld
Attribute
- default
- Standardwert, wenn die Messung neu erfasst wird
- formatpattern
- Pattern für die Formatierung der angezeigten Zahl [Standard: #0.#]
- roundingmode
- Modus wie die angezeigte Zahl gerundet wird [Standard: HALF_UP]
Beschreibung formatpattern Attribut
Mit dem formatpattern Attribut kann angegeben werden wie die angezeigte Zahl dargestellt werden soll. Die Formatierung wird beim Anzeigen angewendet. Es bassiert auf der Verwendung der JAVA Klasse DecimalFormat. Der Formatierungsstring kann eine Menge von Formatierungsanweisungen vertragen (siehe Java API). Die beiden wichtigsten Symbole sind 0 und #. Beide repräsentieren Ziffern. Weiter sind Punkt und Komma wichtig, welche als Dezimaltrenner und zum Gruppieren der Ziffern dienen.
- 0
- Repräsentiert eine Ziffer – ist die Stelle nicht belegt, wird eine Null angezeigt.
- #
- Repräsentiert eine Ziffer – ist die Stelle nicht belegt, bleibt sie leer, damit führende Nullen und unnötige Nullen hinter dem Komma nicht angezeigt werden.
- .
- Dezimaltrenner. Trennt Vor- und Nachkommastellen.
- ,
- Gruppiert die Ziffern (eine Gruppe ist so groß wie der Abstand von "," zu ".").
Wird für Tausendertrennzeichen verwendet.
Beschreibung roundingmode Attribut
Mit dem roundingmode Attribut kann angegeben werden, wie eine Zahl gerundet werden soll. Die Rundung wird beim Speichern angewendet. Es basiert ebenfalls auf der Verwendung der JAVA Klasse DecimalFormat mit dem Enum RoundingMode. Folgende Auswahlmöglichkeiten stehen zur Verfügung:
- UP
- Rundet die Zahl von 0 ausgehend auf
- DOWN
- Rundet die Zahl von 0 ausgehend ab
- CEILING
- Rundet die Zahl in positive Richtung auf
- FLOOR
- Rundet die Zahl in negative Richtung ab
- HALF_UP
- Rundet die Zahl auf die nächste Ganzzahl, ab 0.5 wird aufgerundet
(Standard-Einstellung und am häufigsten verwendete Rundungsregel)
- HALF_DOWN
- Rundet die Zahl auf die nächste Ganzzahl, bei 0.5 wird abgerundet
- HALF_EVEN
- Rundet die Zahl auf die nächste Ganzzahl, bei 0.5 wird immer auf die gerade Ganzzahl gerundet
Beispiel
<numfield name="gewicht" title="Gewicht" unit="kg" formatpattern="0.00" roundingmode="HALF_UP" />
scalefield
Feld um Ganzzahlen in einem eingegrenzten Bereich zu erfassen
Attribute
- default
- Standardwert, wenn die Messung neu erfasst wird
- min
- Kleinster erfassbarer Wert
- max
- Grösster erfassbarer Wert
Beispiel
<scalefield name="arfaeh" title="Arbeitsfaehigkeit" min="0" max="5" default="5" />
enumfield
Auswahlfeld mit einer fixen Liste an Auswahlmöglichkeiten
Attribute
- default
- Standardwert, wenn die Messung neu erfasst wird. Muss angegeben werden und dem Wert einer Option aus der Liste entsprechen.
Unterelemente
Die einzelnen auswählbaren Optionen werden mit dem Unterlement option spezifiziert. Für jede Option muss ein interner Wert mit dem Attribut value angegeben werden. Dieser interne Wert muss eine positive Ganzzahl und in diesem Enumfield eindeutig sein. Das zweite notwendige Attribut title legt den Wert fest, der dem Benutzer angezeigt wird bei dieser Option.
Beispiel
<enumfield name="position" title="Position" default="1"> <option value="1" title="sitzend" /> <option value="2" title="liegend" /> </enumfield>
boolfield
Häkchen für ja/nein-Werte
Attribute
- default
- Standardwert, wenn die Messung neu erfasst wird (nur true oder false werden akzeptiert)
Beispiel
<boolfield name="herger" title="Herzgeraeusch" />
datafield
Verweis auf andere Messungen
Attribute
- type
- Name des Messungstyps auf den verwiesen werden soll
Beispiel
<datafield name="vorekg" title="Vorekg" type="ekg" />
calcfield
Errechnetes Feld
Attribute
- places
- Anzahl der Nachkommastellen beim Ergebnis
- formatpattern
- Pattern für die Formatierung der angezeigten Zahl [Standard: #0.#]
Siehe auch Beschreibung bei numfield.
- roundingmode
- Modus wie die angezeigte Zahl gerundet wird [Standard: HALF_UP]
Siehe auch Beschreibung bei numfield.
Unterelemente
Beim calcfield sind 2 verschiedene Unterelemente vorgesehen. Zum einen ist das var, das es ermöglicht, Felder aus der Messung als Variablen in die Formel zu importieren, zum andern formula, das die eigentliche Formel enthält. Bei var müssen 2 Attribute angegeben werden name, der Name wie die Variable in der Formel heissen soll, und source mit dem Feldnamen in der Messung. Bei Datenfeldern kann beispielsweise mit datenfeldname.gewicht auf das Feld gewicht in der referenzierten Messung zugegriffen werden. Das Ganze kann beliebig tief verschachtelt werden. Beim Element formula muss mit dem Attribut interpreter der zu benutzende Interpreter ausgewählt werden. Im Moment steht jedoch nur «beanshell» zur Verfügung.
Beispiel
<calcfield name="bmi" title="BMI" places="2"> <var name="gewicht" source="gewicht" /> <var name="groesse" source="groesse" /> <formula interpreter="beanshell"> return gewicht/(groesse*groesse); </formula> </calcfield>
datefield
Auswahlfeld für ein Datum
Beispiel
<datefield name="erfdatum" title="Datum" />
counterfield
Automatisch generierte Laufnummer für die Messung
]]
Attribute
- countermode
- Modus für den Zähler [Standard: global_counter]
Derzeit sind keine weiteren Modi implementiert.
- startvalue
- Startwert für den Zähler [Standard: 0]
- formatpattern
- Pattern für die Formatierung der angezeigten Zahl [Standard: #,000]
Siehe auch Beschreibung bei numfield.
- roundingmode
- Modus wie die angezeigte Zahl gerundet wird [Standard: HALF_UP]
Siehe auch Beschreibung bei numfield.
Beispiel
<counterfield name="number" title="Nr." countermode="global_counter" startvalue="0" formatpattern="#,000" />
IDataAccess-Schnittstelle
Das hilotec-messwerte-Plugin stellt die IDataAccess-Schnittstelle, die auch von anderen Elexis-Plugins benutzt wird, zur Verfügung. Damit wird es unter anderem auch möglich in Briefen und Berichten auf Werte aus erfassten Messungen zurückzugreifen. Allgemeine Informationen zu dieser Schnittstelle sind dem Elexis-Handbuch zu entnehmen, wo die Schnittstelle genauer beschrieben wird. Im Folgenden soll nur auf den pluginspezifischen Teil eingegangen werden. Das Plugin benutzt den Identifier Messwerte fuer die Schnittstelle. Das heisst, die Platzhalter für den Zugriff haben die Form Messwerte:Patient:auswahl:daten. Wobei für den Teil auswahl die folgenden Möglichkeiten bestehen:
- dd.mm.yyyy
- Messung von genau dem angegebenen Datum
- first
- Erste Messung des Patienten
- last
- Letzte Messnug des Patienten
- firstsince=dd.mm.yyyy
- Erste Messung nach dem angegebenen Datum
- lastbefore=dd.mm.yyyy
- Letzte Messung vor dem angegebenen Datum
Der Teil daten hat die Form typ.feld, wobei typ den Namen des Messungstyp bezeichnet, und feld den Namen des Feldes in dem Typ. Kommen Datenfelder vor, kann mit einem weiteren Punkt der Feldname in der referenzierten Messung spezifiziert werden. Auch hier können die Datafelder wieder beliebig verschachtelt werden.
Beispiel
[Messwerte:Patient:last:status.gewicht]
Layout Steuerung
Standardmässig wird bei Doppelklick auf eine Messwertreihe ein Dialogfenster geöffnet, welches alle Werte untereinander zum Eingeben und Ändern anbietet. Auf Wunsch kann den einzelnen Messwertreihen aber auch Darstellungsinformation mitgegeben werden. Dies wird gemacht, indem man ein Element <design> der <datatype> – Definition zufügt.
Beispiel messwerte_v2.xml
<?xml version="1.0"?> <datatypes> <datatype name="status" title="Status"> <numfield name="groesse" title="Grösse" unit="m" default="1.70" /> <numfield name="gewicht" title="Gewicht" unit="kg" /> <calcfield name="bmi" title="BMI" places="2"> <var name="gewicht" source="gewicht" /> <var name="groesse" source="groesse" /> <formula interpreter="beanshell"> return Math.round(gewicht/(groesse*groesse)*10)/10.0; </formula> </calcfield> <design> <panel type="grid"> <attribute name="columns" value="1" /> <panel type="display"> <attribute name="url" value="http://www.elexis.ch" /> <attribute name="size" value="600,150" /> </panel> <panel type="grid"> <attribute name="columns" value="3" /> <panel type="field"> <attribute name="ref" value="groesse" /> <attribute name="validpattern" value="[0-9\\.]*" /> <attribute name="invalidmessage" value="Es sind nur Zahlen und der Dezimalpunkt zulässig" /> </panel> <panel type="field"> <attribute name="ref" value="gewicht" /> <attribute name="validpattern" value="[0-9\\.]*" /> <attribute name="invalidmessage" value="Es sind nur Zahlen und der Dezimalpunkt zulässig" /> </panel> <panel type="field"> <attribute name="ref" value="bmi" /> </panel> </panel> </panel> </design> </datatype> <datatype name="ident_basis" title="Identifikation und Basisinfo"> <counterfield name="number" title="Nr." countermode="global_counter" formatpattern="#,000" /> <strfield name="erheber" title="Erheberin" /> <numfield name="idpat" title="ID Pat" formatpattern="#0000" /> <calcfield name="patname" title="Name"> <formula interpreter="beanshell"> return actPatient.getName() + " " + actPatient.getVorname(); </formula> </calcfield> <design> <panel type="grid"> <attribute name="columns" value="1" /> <panel type="display"> <attribute name="url" value="http://www.elexis.ch" /> <attribute name="size" value="600,150" /> </panel> <panel type="grid"> <attribute name="columns" value="2" /> <panel type="field"> <attribute name="ref" value="number" /> </panel> <panel type="field"> <attribute name="ref" value="erheber" /> </panel> <panel type="field"> <attribute name="ref" value="idpat" /> <attribute name="validpattern" value="[0-9][0-9][0-9][0-9]" /> <attribute name="invalidmessage" value="Es ist nur eine vierstellige ganze Zahl zulässig" /> </panel> <panel type="field"> <attribute name="ref" value="patname" /> </panel> </panel> </panel> </design> </datatype> </datatypes>