Add README.md with technical specifications.
This commit is contained in:
parent
426c5b07fc
commit
a911290ae0
4
Doxyfile
4
Doxyfile
@ -758,7 +758,7 @@ WARN_LOGFILE =
|
|||||||
# spaces.
|
# spaces.
|
||||||
# Note: If this tag is empty the current directory is searched.
|
# Note: If this tag is empty the current directory is searched.
|
||||||
|
|
||||||
INPUT = zaaReloaded2 Tests HISTORY.md
|
INPUT = zaaReloaded2 Tests HISTORY.md README.md
|
||||||
|
|
||||||
# This tag can be used to specify the character encoding of the source files
|
# This tag can be used to specify the character encoding of the source files
|
||||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||||
@ -793,7 +793,7 @@ RECURSIVE = YES
|
|||||||
# Note that relative paths are relative to the directory from which doxygen is
|
# Note that relative paths are relative to the directory from which doxygen is
|
||||||
# run.
|
# run.
|
||||||
|
|
||||||
EXCLUDE = README.md Bovender/obj/ BovenderUnitTest/obj/
|
EXCLUDE =
|
||||||
|
|
||||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||||
|
147
README.md
Normal file
147
README.md
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
@mainpage
|
||||||
|
Technische Informationen
|
||||||
|
========================
|
||||||
|
|
||||||
|
Das Addin analysiert die Ausgabe von Lauris in der Zentralen
|
||||||
|
Arztbriefablage, die typischerweise so aussieht:
|
||||||
|
|
||||||
|
[20.06.2015 16:46:00]
|
||||||
|
Klinische Chemie: Natrium: 139 [135 - 145] mmol/l; Kalium: 5.2 [3.5 - 5] mmol/l; Calcium:
|
||||||
|
2.4 [2.0 - 2.7] mmol/l; anorg. Phosphat: 0.58 [0.87 - 1.45] mmol/l;
|
||||||
|
Calcium-Phosphat-Produkt: 1.39 [<= 4.4] mmol²/l²; Glucose: 112 [74 - 106] mg/dl;
|
||||||
|
glomerul. Filtrationsr. CKD-EP: 42 ml/min /1,73qm; glomerul. Filtrationsr. (MDRD): 42
|
||||||
|
ml/min /1,73qm; Creatinin: 1.84 [0 - 1.17] mg/dl; Harnstoff: 54.3 [10 - 50] mg/dl;
|
||||||
|
Harnsäure: 4.6 [3.4 - 7] mg/dl; Gesamt-Bilirubin: 0.7 [0.1 - 1.2] mg/dl; GOT (ASAT):
|
||||||
|
303.0 [<= 50] U/l; GPT (ALAT): 508.0 [<= 50] U/l; GGT: 489.0 [<= 60] U/l; Alk.
|
||||||
|
Phosphatase: 56 [40 - 130] U/l; Lactat Dehydrogenase: 320 [<= 250] U/l; CK gesamt: 52 [<=
|
||||||
|
190] U/l; Amylase: 62 [<= 110] U/l; Cholesterin: 120 [130 - 220] mg/dl; Triglyceride: 94
|
||||||
|
[74 - 172] mg/dl; LDL - Cholesterin: 56 [0 - 150] mg/dl; HDL - Cholesterin: 45 [>= 35]
|
||||||
|
mg/dl; Eisen: 215 [59 - 158] µg/dl; Gesamt-Eiweiss: 5.7 [6.6 - 8.7] g/dl; Albumin: 4.0
|
||||||
|
[3.5 - 5.5] g/dl;
|
||||||
|
Gerinnung: Niedermol. Heparin (Anti-Xa): 0.99 U/ml;
|
||||||
|
|
||||||
|
Und so weiter, es gibt noch mehr Variationen.
|
||||||
|
|
||||||
|
|
||||||
|
## Parsen der Lauris-Ausgabe
|
||||||
|
|
||||||
|
Die Lauris-Ausgabe wird in folgende Einheiten aufgetrennt:
|
||||||
|
|
||||||
|
- __Datumsblöcke:__ Die Klasse `zaaReloaded2.Models.TimePoint` enthält
|
||||||
|
alles, was unterhalb der Datumszeile `[20.06.2015 16:46:00]` steht.
|
||||||
|
- __Kategorieblöcke:__ Die Klasse
|
||||||
|
`zaaReloaded2.Models.LaurisParagraph` analysiert einen ganzen
|
||||||
|
Laborblock wie z.B. `Klinische Chemie` oder `Gerinnung` und trennt
|
||||||
|
ihn anhand der Semikolons, um daraus eine Sammlung von `LabItems` zu
|
||||||
|
bilden.
|
||||||
|
- __Parameter:__ Die Klasse `zaaReloaded2.Models.LabItem` analysiert
|
||||||
|
einen einzelnen Parameter-String der Form `Natrium: 138 [135 - 145]
|
||||||
|
mmol/l` usw. und stellt die einzelnen Bestandteile in
|
||||||
|
strukturierter Form zur Verfügung.
|
||||||
|
|
||||||
|
|
||||||
|
## Wörterbücher
|
||||||
|
|
||||||
|
Die Bezeichnungen für einzelne Parameter und Einheiten sind bei Lauris
|
||||||
|
teilweise etwas unglücklich. Beispielsweise wird `glomerul.
|
||||||
|
Filtrationsr. CKD-EP` wohl kaum im klinischen Alltag verwendet, und auch
|
||||||
|
`Lactat Dehydrogenase` ist etwas ungewöhnlich, weil alle immer `LDH`
|
||||||
|
sagen und schreiben. Die Einheit `ml/min /1,73qm` enthält ein
|
||||||
|
Leerzeichen zuviel und das veraltete "qm" und sollte besser `ml/min/1,73
|
||||||
|
m²` geschrieben werden.
|
||||||
|
|
||||||
|
Aus diesem Grunde werden anpassbare Wörterbücher verwendet, die
|
||||||
|
Parameternamen in "kanonische" (CanonicalName) und Lauris-Einheiten in
|
||||||
|
wirklichkeitsnähere, typographisch korrekte Einheiten übersetzen:
|
||||||
|
|
||||||
|
- `zaaReloaded2.Dictionaries.ParameterDictionary`
|
||||||
|
- `zaaReloaded2.Dictionaries.UnitDictionary`
|
||||||
|
|
||||||
|
Beide Wörterbuch-Typen laden zunächst eingebaute Default-Werte aus der
|
||||||
|
Assembly und suchen dann nach Anpassungen auf Systemebene und auf
|
||||||
|
Benutzerebene.
|
||||||
|
|
||||||
|
|
||||||
|
### Textdateien zur Konfiguration
|
||||||
|
|
||||||
|
Um Anpassungen zu erleichtern und nicht jedes Mal eine neue Version der
|
||||||
|
Binärdateien zu erfordern, werden für die Wörterbücher einfache
|
||||||
|
Textdateien verwendet.
|
||||||
|
|
||||||
|
- Datensätze in Zeilen
|
||||||
|
- Felder in durch Leerzeichen getrennten Zeilen
|
||||||
|
- Leerzeichen in Werten erfordern Anführungstriche (Bsp. s.u.)
|
||||||
|
- Drei Trennstriche `---` bedeuten, daß ein von Lauris verwendeter
|
||||||
|
Wert auch für zaaReloaded2 gültig ist (Bsp. s.u.)
|
||||||
|
- Alles nach einer Raute `#` wird ignoriert
|
||||||
|
- Leere Zeilen werden ignoriert
|
||||||
|
|
||||||
|
|
||||||
|
### ParameterDictionary
|
||||||
|
|
||||||
|
Das `ParameterDictionary` wird aus einer Textdatei folgenden Formats
|
||||||
|
generiert:
|
||||||
|
|
||||||
|
# LAURIS-NAME "KANONISCHER NAME" KATEGORIE "IMMER REFERENZBEREICH"
|
||||||
|
"Lactat Dehydrogenase" LDH Klinische Chemie
|
||||||
|
"Cystatin C" --- Nierenfunktion X
|
||||||
|
"glomerul. Filtrationsr. CKD-EP" "eGFR (CKD-EPI)" Nierenfunktion
|
||||||
|
|
||||||
|
Wenn `IMMER REFERENZBEREICH` leer ist, wird "nein" angenommen. Alles
|
||||||
|
andere wie z.B. `X` bedeute "ja".
|
||||||
|
|
||||||
|
Die drei Trennstriche `---` in der Zeile "Cystacin C" bedeuten, daß
|
||||||
|
zaaReloaded2 den Lauris-Namen als kanonischen Namen verwenden soll.
|
||||||
|
|
||||||
|
|
||||||
|
### UnitDictionary
|
||||||
|
|
||||||
|
Das `UnitDictionary` wird aus einer Textdatei folgenden Formats
|
||||||
|
generiert:
|
||||||
|
|
||||||
|
# LAURIS-EINHEIT "KANONISCHE EINHEIT"
|
||||||
|
ml/min /1,73qm ml/min/1,73 m²
|
||||||
|
|
||||||
|
Wenn eine Lauris-Einheit nicht in dieser Tabelle enthalten ist, wird sie
|
||||||
|
so, wie sie ist, für die Ausgabe von zaaReloaded2 verwendet.
|
||||||
|
|
||||||
|
|
||||||
|
## Kategorien
|
||||||
|
|
||||||
|
Um die Definition des Ausgabeformats von zaaReloaded2 zu erleichern,
|
||||||
|
wird jeder Laborparameter beim Parsen des Lauris-Texts einer bestimmten,
|
||||||
|
fest eingebauten Kategorie zugeordnet, ähnlich wie Lauris selbst es
|
||||||
|
schon macht, nur besser. Beispielsweise werden die Werte aus
|
||||||
|
"Urinproteine quantitativ" der Kategorie "Sammelurin" zugeordnet, weil
|
||||||
|
das praktikabler und intuitiver ist. Anderes Beispiel: Unter der
|
||||||
|
Lauris-Kategorie "Serumproteine und Tumormarker" sind u.a. der
|
||||||
|
Eisenstatus, Akutphaseproteine und Sonderbestimmungen wie das Cystatin C
|
||||||
|
versammelt. Diese werden von zaaReloaded2 in die Kategorien
|
||||||
|
"Eisenstatus", "Akutphase" und "Nierenfunktion" eingeordnet.
|
||||||
|
|
||||||
|
Die Liste der Kategorien wird aus dem
|
||||||
|
`zaaReloaded2.Dictionaries.ParameterDictionary` kompiliert.
|
||||||
|
|
||||||
|
|
||||||
|
## Referenzbereiche
|
||||||
|
|
||||||
|
Wenn bei jedem Laborparameter die Referenzbereiche angegeben werden,
|
||||||
|
wird die Ausgabe unübersichtlich -- siehe Lauris. Viele Laborparameter
|
||||||
|
haben Standard-Referenzbereiche, die sich zwischen den Laboren nicht
|
||||||
|
oder nur geringfügig unterscheiden (bspw. Hämoglobin).
|
||||||
|
|
||||||
|
zaaReloaded2 kann so konfiguriert werden, daß Referenzbereiche entweder
|
||||||
|
nie, nur bei gesondert markierten Parametern, bei gesondert markierten
|
||||||
|
oder nicht-normalen Parametern oder immer mit ausgegeben werden:
|
||||||
|
|
||||||
|
- nie
|
||||||
|
- besondere Parameter (z.B. Cystatin C, wo viele den Referenzbereich
|
||||||
|
nicht kennen dürften)
|
||||||
|
- besondere Parameter + nicht-normale Parameter
|
||||||
|
- immer
|
||||||
|
|
||||||
|
Die Markierung besonderer Parameter erfolgt in der Textdatei, aus der
|
||||||
|
das `zaaReloaded2.Dictionaries.ParameterDictionary` generiert wird
|
||||||
|
(s.o.).
|
||||||
|
|
||||||
|
<!-- vim: set tw=72 sw=2 ts=2 sts=-1 : -->
|
Loading…
Reference in New Issue
Block a user