diff --git a/README.md b/README.md index 6aa11af..0b15e79 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ Technische Informationen ======================== -Das Addin analysiert die Ausgabe von Lauris in der Zentralen -Arztbriefablage, die typischerweise so aussieht: +Das Addin dient zur Umformatierung von Laborwerten in Arztbriefen. Es +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: @@ -22,6 +23,37 @@ Arztbriefablage, die typischerweise so aussieht: Und so weiter, es gibt noch mehr Variationen. +## Programmteile + +Im Sinne einer _separation of concerns_ ist die Programmlogik in +folgende Teile aufgeteilt: + + - __Labor-Modell:__ Im Namensraum `zaaReloaded2.LabModel` sind Klassen + gruppiert, die einen Laborwert abbilden + (`zaaReloaded2.LabModel.LabItem`), die die Laborwerte eines Auftrags + (der zu einem bestimmten Zeitpunkt eingelesen wurde) sammeln + (`zaaReloaded2.LabModel.TimePoint`), und schließlich eine Klasse + `zaaReloaded2.LabModel.Laboratory`, die die Aufträge (`TimePoint`s) + sammelt. Jeder Laborwert kann mit Hilfe eines Wörterbuchs (s.u.) + einen kanonischen Namen erhalten (z.B. "Na" für "Natrium"), über den + dieser Wert dann angesprochen wird. Die einzelnen + Aufträge/Zeitpunkte werden über `DateTime`-Strukturen angesprochen. + - __Import:__ Im Namensraum `zaaReloaded2.Importer` befindet sich eine + Interface-Definition (`zaaReloaded2.Importer.IImporter`), die + zentrale Eigenschaften von Importer-Klassen definiert. Der Namensraum + `zaaReloaded2.Importer.ZaaImporter` enthält Klassen, die den Import + einer Lauris-Ausgabe aus einem ZAA-Arztbrief erledigen. + - __Formatierung und Ausgabe:__ Der Namensraum + `zaaReloaded2.Formatter` versammelt Klassen, die vom Benutzer + eingegebene Steuerbefehle auswerten und die Formatierung der + Laborwerte erledigen. Durch die Verwendung von Steuerbefehlen können + leicht verschiedene Ausgabeformate erstellt werden, z.B. eines für + die Station und eines für die Ambulanz. Zur Formatierung und Ausgabe + existieren verschiedene Klassen, die die Klassen des Labor-Modells + (`zaaReloaded2.LabModel`) umschließen und um entsprechende + Funktionalitäten erweitern. + + ## Parsen der Lauris-Ausgabe Die Lauris-Ausgabe wird in folgende Einheiten aufgetrennt: