Com.hilotec.elexis.messwerte.v2.feature.feature.group

Aus Elexis-Wiki
Wechseln zu: Navigation, Suche

Category…KG-Führung

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)

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. 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

Abbildung 1

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

Abbildung 2

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

Abbildung 3

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

Abbildung 4

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

Abbildung 5

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

Abbildung 6

Attribute

type
Name des Messungstyps auf den verwiesen werden soll

Beispiel

<datafield  name="vorekg" title="Vorekg" type="ekg" />

calcfield

Errechnetes Feld

Abbildung 7

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

Abbildung 8

Beispiel

<datefield name="erfdatum" title="Datum" />

counterfield

Automatisch generierte Laufnummer für die Messung

Abbildung 9
]]

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

&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;datatypes&gt;
  &lt;datatype name=&quot;status&quot; title=&quot;Status&quot;&gt;
    &lt;numfield name=&quot;groesse&quot; title=&quot;Grösse&quot; unit=&quot;m&quot; default=&quot;1.70&quot; /&gt;
    &lt;numfield name=&quot;gewicht&quot; title=&quot;Gewicht&quot; unit=&quot;kg&quot; /&gt;
    &lt;calcfield name=&quot;bmi&quot; title=&quot;BMI&quot; places=&quot;2&quot;&gt;
      &lt;var name=&quot;gewicht&quot; source=&quot;gewicht&quot; /&gt;
      &lt;var name=&quot;groesse&quot; source=&quot;groesse&quot; /&gt;
      &lt;formula interpreter=&quot;beanshell&quot;&gt;
        return Math.round(gewicht/(groesse*groesse)*10)/10.0;
      &lt;/formula&gt;
    &lt;/calcfield&gt;
    &lt;design&gt;
      &lt;panel type=&quot;grid&quot;&gt;
        &lt;attribute name=&quot;columns&quot; value=&quot;1&quot; /&gt;
        &lt;panel type=&quot;display&quot;&gt;
          &lt;attribute name=&quot;url&quot; value=&quot;http://www.elexis.ch&quot; /&gt;
          &lt;attribute name=&quot;size&quot; value=&quot;600,150&quot; /&gt;
        &lt;/panel&gt;
        &lt;panel type=&quot;grid&quot;&gt;
          &lt;attribute name=&quot;columns&quot; value=&quot;3&quot; /&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;groesse&quot; /&gt;
            &lt;attribute name=&quot;validpattern&quot; value=&quot;[0-9\\.]*&quot; /&gt;
            &lt;attribute name=&quot;invalidmessage&quot;
            value=&quot;Es sind nur Zahlen und der Dezimalpunkt zulässig&quot; /&gt;
          &lt;/panel&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;gewicht&quot; /&gt;
            &lt;attribute name=&quot;validpattern&quot; value=&quot;[0-9\\.]*&quot; /&gt;
            &lt;attribute name=&quot;invalidmessage&quot;
            value=&quot;Es sind nur Zahlen und der Dezimalpunkt zulässig&quot; /&gt;
          &lt;/panel&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;bmi&quot; /&gt;
          &lt;/panel&gt;
        &lt;/panel&gt;
      &lt;/panel&gt;
    &lt;/design&gt;
  &lt;/datatype&gt;
  &lt;datatype name=&quot;ident_basis&quot; title=&quot;Identifikation und Basisinfo&quot;&gt;
    &lt;counterfield name=&quot;number&quot; title=&quot;Nr.&quot; countermode=&quot;global_counter&quot;
                  formatpattern=&quot;#,000&quot; /&gt;
    &lt;strfield name=&quot;erheber&quot; title=&quot;Erheberin&quot; /&gt;
    &lt;numfield name=&quot;idpat&quot; title=&quot;ID Pat&quot; formatpattern=&quot;#0000&quot; /&gt;
    &lt;calcfield name=&quot;patname&quot; title=&quot;Name&quot;&gt;
      &lt;formula interpreter=&quot;beanshell&quot;&gt;
        return actPatient.getName() + &quot; &quot; + actPatient.getVorname();
      &lt;/formula&gt;
    &lt;/calcfield&gt;
    &lt;design&gt;
      &lt;panel type=&quot;grid&quot;&gt;
        &lt;attribute name=&quot;columns&quot; value=&quot;1&quot; /&gt;
        &lt;panel type=&quot;display&quot;&gt;
          &lt;attribute name=&quot;url&quot; value=&quot;http://www.elexis.ch&quot; /&gt;
          &lt;attribute name=&quot;size&quot; value=&quot;600,150&quot; /&gt;
        &lt;/panel&gt;
        &lt;panel type=&quot;grid&quot;&gt;
          &lt;attribute name=&quot;columns&quot; value=&quot;2&quot; /&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;number&quot; /&gt;
          &lt;/panel&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;erheber&quot; /&gt;
          &lt;/panel&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;idpat&quot; /&gt;
            &lt;attribute name=&quot;validpattern&quot; value=&quot;[0-9][0-9][0-9][0-9]&quot; /&gt;
            &lt;attribute name=&quot;invalidmessage&quot; 
              value=&quot;Es ist nur eine vierstellige ganze Zahl zulässig&quot; /&gt;
          &lt;/panel&gt;
          &lt;panel type=&quot;field&quot;&gt;
            &lt;attribute name=&quot;ref&quot; value=&quot;patname&quot; /&gt;
          &lt;/panel&gt;
        &lt;/panel&gt;
      &lt;/panel&gt;
    &lt;/design&gt;
  &lt;/datatype&gt;
&lt;/datatypes&gt;