Compare commits
188 Commits
Author | SHA1 | Date | |
---|---|---|---|
85b0356971 | |||
1361bcf739 | |||
fb5af6a581 | |||
c783fdb64d | |||
0896f007da | |||
9f7b0313a3 | |||
2cbfe5c3fa | |||
40fbcd279b | |||
3a1559c4a3 | |||
acbd3833ed | |||
2755655e8f | |||
65b2da1071 | |||
b7246ca0ed | |||
a5b4daae7a | |||
40d06b9811 | |||
23e2f3c2ca | |||
1eeaa32336 | |||
091a7e5c97 | |||
cf317ef5f0 | |||
1cfe4c57c5 | |||
9f118757a6 | |||
3267bd9d5a | |||
5a9e7fe444 | |||
f199b2f1bf | |||
eae8cb718b | |||
ae012d42fb | |||
aea6d037c3 | |||
26c0d9e456 | |||
e190e85b89 | |||
ba07293385 | |||
46b4af54c5 | |||
63012281db | |||
812042d4bf | |||
ad34141909 | |||
523e6ac438 | |||
e20b967b44 | |||
753219c1eb | |||
19ffff86ff | |||
5b8cea34de | |||
999f2def41 | |||
1ba74bbc29 | |||
474a292991 | |||
eaaed3b659 | |||
1be66fbd71 | |||
b1cd1f1a05 | |||
003da0f1b2 | |||
9a5cc4d9df | |||
15ada1cefd | |||
94efa435f2 | |||
89df2f5e13 | |||
e3e86891b8 | |||
20c0b8a76e | |||
d807472016 | |||
33c8f48282 | |||
9bbab2607d | |||
15df44a93b | |||
67219d0ae5 | |||
3f6383b076 | |||
c104568e5b | |||
687ce567e3 | |||
573cd743d1 | |||
0d4b60096a | |||
4c147a9764 | |||
d1fa0b797d | |||
2a3ff8c63e | |||
7e79256ffd | |||
1314cb0e4b | |||
d28d51e875 | |||
86c8a9a1b4 | |||
c3fde7fc28 | |||
e71e69d4c4 | |||
865e5bff1e | |||
2296fcfe41 | |||
92153f6d6c | |||
def5fce235 | |||
6ec282ee68 | |||
4479efc196 | |||
84e298e9ad | |||
61f494f10f | |||
21e7d44187 | |||
bcbed5bca3 | |||
c35c73f56a | |||
a255349672 | |||
5198fa7358 | |||
bed957a5cb | |||
d01bdabf35 | |||
346112b069 | |||
5d1ee1f96e | |||
3043a07632 | |||
da90e8e528 | |||
1f744c8c42 | |||
5868dc0cd4 | |||
fe1da47f84 | |||
c8492c6266 | |||
bbd7bd1d7b | |||
cb044015d2 | |||
08640363a2 | |||
578c126a20 | |||
180cb351a6 | |||
d5bb0cd5fb | |||
65c6f9335f | |||
80c8177a58 | |||
684a11a81a | |||
b62204109f | |||
f2443d6e93 | |||
0b4763bf99 | |||
45430302ae | |||
d5c4ec39ab | |||
9ae32ddaa6 | |||
796ba7b375 | |||
c94e704b01 | |||
220e98ce1f | |||
d2e236f88a | |||
1f0fadc181 | |||
ac8320b917 | |||
7a92c7bc1e | |||
4ec52d290a | |||
9f83041554 | |||
e80d75648e | |||
6e963b63cf | |||
9e39a7b868 | |||
80845150aa | |||
c3429e1105 | |||
799fb9e112 | |||
fa96c5df19 | |||
4953b40a39 | |||
f5ca26c5e0 | |||
10ad2d4f23 | |||
2eea99aa32 | |||
d71c8a02e3 | |||
e54f107c39 | |||
a29ee55003 | |||
c83b8726cc | |||
f7705a8bf3 | |||
174a49373c | |||
8717efdde5 | |||
7997e307fa | |||
7a5041e04c | |||
76bdbd36e8 | |||
65cb5c261f | |||
f382a8738b | |||
68d8c81951 | |||
921edd7920 | |||
1e168ba861 | |||
f58a13117c | |||
3f71c7a779 | |||
a974a6cd18 | |||
1116d240dd | |||
6fe2a41932 | |||
2f60c2c5d1 | |||
3ce046a238 | |||
300df897de | |||
c2d204ffeb | |||
044a5b82c2 | |||
4ab48ff596 | |||
a290de26e7 | |||
95dfa95562 | |||
c733c238de | |||
bf15d264ba | |||
687a5cce20 | |||
06aa271056 | |||
1d03ff0bbc | |||
78ceeb5017 | |||
c141fcff58 | |||
b04dc2cb4b | |||
01c971bef5 | |||
8c4de2915a | |||
dccb3145db | |||
16558cc9a1 | |||
e8959d1024 | |||
01f7538122 | |||
ca5028adce | |||
3a9969e439 | |||
2ca7f4211d | |||
0cbada1fc8 | |||
0f109d5be8 | |||
e366226a64 | |||
adaf75c5fc | |||
75a350764e | |||
1efaacfa97 | |||
9404d58809 | |||
5db6285a95 | |||
3f0b49815a | |||
ad7ea1457c | |||
9068dde1c3 | |||
02b4bc07a3 | |||
a89a8103e5 | |||
efbff88b1a |
1
.gitignore
vendored
@ -16,6 +16,7 @@ publish/release/
|
|||||||
x64/
|
x64/
|
||||||
win32/
|
win32/
|
||||||
[Rr]elease/
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
[Dd]debug/
|
[Dd]debug/
|
||||||
Dist/
|
Dist/
|
||||||
build/
|
build/
|
||||||
|
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
|||||||
[submodule "www/PHPMailer"]
|
[submodule "www/PHPMailer"]
|
||||||
path = www/PHPMailer
|
path = www/PHPMailer
|
||||||
url = git@github.com:PHPMailer/PHPMailer.git
|
url = git@github.com:PHPMailer/PHPMailer.git
|
||||||
|
[submodule "deploy/VstoAddinInstaller"]
|
||||||
|
path = deploy/VstoAddinInstaller
|
||||||
|
url = git@github.com:bovender/VstoAddinInstaller.git
|
||||||
|
24
.nuget/packages.config
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="runtime.debian.8-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple" version="4.3.0" />
|
||||||
|
<package id="runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.rhel.7-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography" version="4.3.0" />
|
||||||
|
<package id="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" version="4.3.0" />
|
||||||
|
</packages>
|
216
HISTORY.md
@ -1,5 +1,199 @@
|
|||||||
|
Version 2.3.0 (2017-03-03)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Verbessert: Benutzeroption für die Ausgabe von "mmol/l" anstatt "mM" (einstellbar pro Stil).
|
||||||
|
- Verbessert: Das Installationsprogramm versucht jetzt nicht mehr, einen Zero Client zu erkennen, weil der Workaround für Zero Clients ohnehin nicht funktioniert hat.
|
||||||
|
- Verbessert: Technische Verbesserungen bei Dialogen.
|
||||||
|
- Verbesserung: Einstellungen werden in einem Format (YAML) gespeichert, das für Menschen besser lesbar und bearbeitbar ist als das bisher verwendete XML.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.6 (2017-02-23)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Repariert: Stilauswahl wurde immer ganz im Vordergrund dargestellt und verdeckte damit mitunter andere Hinweise.
|
||||||
|
- Verbessert: Diverse technische Verbesserungen.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.5 (2016-10-03)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Repariert: Word bleibt nicht mehr hängen, wenn man versucht, ein Dokument zu speichern.
|
||||||
|
- Verbessert: Multiple Verbesserungen im Programmcode.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.4 (2016-04-05)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Kleine Optimierungen beim Installationsprogramm.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.3 (2016-03-30)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- REPARIERT: Installationsskript hat Add-in nicht aktiviert.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.2 (2016-03-29)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Installationsprogramm erkennt jetzt, wenn Word bereits läuft, und bietet an, es zu schließen
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.1 (2015-12-03)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: 'Alternative' Verordnungen wurden nicht erkannt, wenn in der selben Zeile nicht auch eine 'kanonische' Verordnung stand.
|
||||||
|
- VERBESSERT: Fehlermeldung "Ein Name darf nicht mit dem Zeichen ' ' beginnen" wurde abgestellt (Fehlernr. 6a36e38b).
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.2.0 (2015-12-03)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- NEU: Funktion zum Formatieren der Medikationsliste.
|
||||||
|
- VERBESSERT: Kohlehydratdefizientes Transferrin hinzugefügt (als 'CDT') und Ambulanzstil angepaßt.
|
||||||
|
- VERBESSERT: Referenzbereiche zu Immunologie-Vorlage im Ambulanzstil hinzugefügt.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.13 (2015-11-12)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Parameter für Aldosteron, Renin und Schwangerschaftstest einprogrammiert.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.12 (2015-11-04)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Lp(a) zu den bekannten Parametern hinzugefügt.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.11 (2015-10-28)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Ambulanzstil überarbeitet, CK-MB wird jetzt mit ausgegeben.
|
||||||
|
- VERBESSERT: Benutzereinstellungen werden nicht mehr jedes Mal zurückgesetzt.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.10 (2015-10-24)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: PSA wird jetzt richtig erkannt.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.9 (2015-10-18)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Integritätsprüfung für Updates wurde für besseren Algorithmus (SHA-256) vorbereitet.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.8 (2015-10-11)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Alpha-Fetoprotein (AFP) zu den bekannten Parametern hinzugefügt.
|
||||||
|
- VERBESSERT: Einstellungen werden nach Office-Update nicht vergessen.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.7 (2015-10-02)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Statt Sekretariatsmodus stand zweimal Ärztemodus im Begrüßungsbildschirm.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.6. (2015-09-27)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Eingebaute Stile überarbeitet.
|
||||||
|
- VERBESSERT: Troponin T wurde nicht richtig verarbeitet.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.5. (2015-09-24)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: NT-proBNP wird jetzt korrekt ausgegeben.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.4 (2015-09-23)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Unkonventionell ausgegebene Laborwerte (v.a. Cyclosporin-A vor Gabe) wurden nicht richtig erkannt.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.3. (2015-09-18)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: CsA-Talspiegel tauchte nicht in der Ausgabe auf.
|
||||||
|
- VERBESSERT: Extreme Werte (mit "<" oder ">") wurden nicht sehr schön formatiert.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.2 (2015-09-11)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- GEÄNDERT: Sammelurin-Proteinurie als Prot abgekürzt.
|
||||||
|
- VERBESSERT: Ambulanzstil überarbeitet.
|
||||||
|
- VERBESSERT: Evtl. vorgegebener Kommentartext wird jetzt automatisch markiert, damit er b.B. einfach durch Lostippen überschrieben werden kann.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.1 (2015-09-07)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- VERBESSERT: Fehler bei der Kommentaraufforderung wurden behoben.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.1.0 (2015-09-06)
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- NEU: Optionale Kommentare zu Laborwerten.
|
||||||
|
- NEU: Sekretariatsmodus (siehe 'Einstellungen'), um die Nachfrage nach Zusatz-Kommentaren zu unterdrücken.
|
||||||
|
- NEU: Wenn kein Text markiert ist, wird ein Versuch unternommen, die Labordaten im Arztbrief automatisch zu erkennen; dabei wird der erste erkannte Lauris-Laborblock formatiert.
|
||||||
|
- VERBESSERT: Bug in der Markierung von speziellen Parametern, um immer Referenzbereiche auszugeben.
|
||||||
|
- VERBESSERT: Kein Absturz mehr, wenn Labordaten NT-proBNP enthalten.
|
||||||
|
|
||||||
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
|
||||||
Version 2.0.1 (2015-09-02)
|
Version 2.0.1 (2015-09-02)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FEHLERBEHEBUNG: Kein Absturz mehr, wenn zwei Spalten formatiert werden.
|
- FEHLERBEHEBUNG: Kein Absturz mehr, wenn zwei Spalten formatiert werden.
|
||||||
- VERBESSERT: Kein Absturz mehr, wenn das Demo-Dokument innerhalb der ZAA geöffnet wird (Exception ID 65a5c34e).
|
- VERBESSERT: Kein Absturz mehr, wenn das Demo-Dokument innerhalb der ZAA geöffnet wird (Exception ID 65a5c34e).
|
||||||
@ -10,7 +204,7 @@ Version 2.0.1 (2015-09-02)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-beta.5 (2015-08-25)
|
Version 2.0.0-beta.5 (2015-08-25)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- NEU: Auszeichnung pathologischer Werte kann eingestellt werden.
|
- NEU: Auszeichnung pathologischer Werte kann eingestellt werden.
|
||||||
- NEU: Für bestimmte Laborwerte ist die bevorzugte Nachkommastellenzahl hinterlegt (z.B. Kreatinin mit nur einer Nachkommastelle).
|
- NEU: Für bestimmte Laborwerte ist die bevorzugte Nachkommastellenzahl hinterlegt (z.B. Kreatinin mit nur einer Nachkommastelle).
|
||||||
@ -21,7 +215,7 @@ Version 2.0.0-beta.5 (2015-08-25)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-beta.4. (2015-08-23)
|
Version 2.0.0-beta.4. (2015-08-23)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- VERBESSERUNG: Aliasse für fT3 und fT4.
|
- VERBESSERUNG: Aliasse für fT3 und fT4.
|
||||||
- VERBESSERUNG: Ambulanz-Stil überarbeitet.
|
- VERBESSERUNG: Ambulanz-Stil überarbeitet.
|
||||||
@ -30,7 +224,7 @@ Version 2.0.0-beta.4. (2015-08-23)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-beta.3. (2015-08-20)
|
Version 2.0.0-beta.3. (2015-08-20)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- VERBESSERT: Bei Updates werden neue eingebaute Stile jetzt immer berücksichtigt.
|
- VERBESSERT: Bei Updates werden neue eingebaute Stile jetzt immer berücksichtigt.
|
||||||
- VERBESSERT: Formatierung erscheint nur noch als 1 Undo-Schritt.
|
- VERBESSERT: Formatierung erscheint nur noch als 1 Undo-Schritt.
|
||||||
@ -42,7 +236,7 @@ Version 2.0.0-beta.3. (2015-08-20)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-beta.2 (2015-08-16)
|
Version 2.0.0-beta.2 (2015-08-16)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FIX: Kleinere Bugfixes.
|
- FIX: Kleinere Bugfixes.
|
||||||
- GEÄNDERT: Diff.-BB-Werte im Stations-Stil in Hämatologie-Zeile integriert.
|
- GEÄNDERT: Diff.-BB-Werte im Stations-Stil in Hämatologie-Zeile integriert.
|
||||||
@ -58,7 +252,7 @@ Version 2.0.0-beta.2 (2015-08-16)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-beta.1 (2015-08-13)
|
Version 2.0.0-beta.1 (2015-08-13)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FIX: Datenimport funktioniert jetzt auch mit Word-Text und nicht nur in den Tests.
|
- FIX: Datenimport funktioniert jetzt auch mit Word-Text und nicht nur in den Tests.
|
||||||
- FIX: Mehrere Thesaurus-Fehler behoben.
|
- FIX: Mehrere Thesaurus-Fehler behoben.
|
||||||
@ -75,7 +269,7 @@ Version 2.0.0-beta.1 (2015-08-13)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-alpha.5. (2015-08-04)
|
Version 2.0.0-alpha.5. (2015-08-04)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FIX: Daniels Spezial löscht nicht mehr die Unterschriften.
|
- FIX: Daniels Spezial löscht nicht mehr die Unterschriften.
|
||||||
- NEU: Eingebautes Demo-Dokument zum Ausprobieren.
|
- NEU: Eingebautes Demo-Dokument zum Ausprobieren.
|
||||||
@ -85,7 +279,7 @@ Version 2.0.0-alpha.5. (2015-08-04)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-alpha.3 (2015-07-31)
|
Version 2.0.0-alpha.3 (2015-07-31)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FIX: Beim Start wird jetzt nach Updates gesucht.
|
- FIX: Beim Start wird jetzt nach Updates gesucht.
|
||||||
|
|
||||||
@ -93,7 +287,7 @@ Version 2.0.0-alpha.3 (2015-07-31)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-alpha.2 (2015-07-28)
|
Version 2.0.0-alpha.2 (2015-07-28)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- NEU: Fehlerbehandlung und Fehlerberichte.
|
- NEU: Fehlerbehandlung und Fehlerberichte.
|
||||||
|
|
||||||
@ -101,7 +295,7 @@ Version 2.0.0-alpha.2 (2015-07-28)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0-alpha.1 (2015-07-27)
|
Version 2.0.0-alpha.1 (2015-07-27)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- NEW: First release of version 2 series.
|
- NEW: First release of version 2 series.
|
||||||
|
|
||||||
@ -109,7 +303,7 @@ Version 2.0.0-alpha.1 (2015-07-27)
|
|||||||
|
|
||||||
|
|
||||||
Version 2.0.0 (2015-08-30)
|
Version 2.0.0 (2015-08-30)
|
||||||
========================================================================
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
- FEHLERBEHEBUNG: Kein Absturz mehr, wenn zwei Spalten formatiert werden.
|
- FEHLERBEHEBUNG: Kein Absturz mehr, wenn zwei Spalten formatiert werden.
|
||||||
- VERBESSERT: Kein Crash mehr, falls sich ein Komma in den Lauris-Block einschleicht.
|
- VERBESSERT: Kein Crash mehr, falls sich ein Komma in den Lauris-Block einschleicht.
|
||||||
|
29
Makefile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
.PHONY=all help upload website versioninfo
|
||||||
|
|
||||||
|
help:
|
||||||
|
# Available targets:
|
||||||
|
# website - update website on server
|
||||||
|
# versioninfo - create versioninfo file for the current release
|
||||||
|
# upload - upload release files to server
|
||||||
|
# all - all of the above
|
||||||
|
|
||||||
|
all: versioninfo upload website
|
||||||
|
#
|
||||||
|
# Check repository status!
|
||||||
|
#
|
||||||
|
|
||||||
|
versioninfo:
|
||||||
|
head -n 1 zaaReloaded2/VERSION | tr -d '\r' > www/versioninfo.tmp
|
||||||
|
chmod 644 www/versioninfo.tmp
|
||||||
|
echo 'https://doktorkraus.de/zaareloaded/downloads/zaaReloaded-$$VERSION.exe' >> www/versioninfo.tmp
|
||||||
|
sha256sum deploy/releases/zaaReloaded-$$(head -n 1 zaaReloaded2/VERSION | tr -d '\r').exe >> www/versioninfo.tmp
|
||||||
|
echo '' >> www/versioninfo.tmp
|
||||||
|
todos www/versioninfo.tmp
|
||||||
|
mv www/versioninfo.tmp www/versioninfo.txt
|
||||||
|
|
||||||
|
upload:
|
||||||
|
rsync -ruvz --progress deploy/releases/* bovender.de:/var/www/html/zaareloaded/downloads/
|
||||||
|
|
||||||
|
website:
|
||||||
|
rsync -ruvz www/ bovender.de:/var/www/html/zaareloaded/
|
24
README.md
@ -23,6 +23,28 @@ typischerweise so aussieht:
|
|||||||
Und so weiter, es gibt noch mehr Variationen.
|
Und so weiter, es gibt noch mehr Variationen.
|
||||||
|
|
||||||
|
|
||||||
|
## Quellcode
|
||||||
|
|
||||||
|
zaaReloaded2 ist in C# mit VSTO geschrieben, unter Zuhilfenahme von
|
||||||
|
Visual Studio Professional 2013. Der Quellcode liegt in einem öffentlich
|
||||||
|
zugänglichen Git-Repository:
|
||||||
|
|
||||||
|
<https://git.bovender.de>
|
||||||
|
|
||||||
|
Clonen:
|
||||||
|
|
||||||
|
git clone http://git.bovender.de/zaaReloaded2.git
|
||||||
|
|
||||||
|
Schreibzugriff auf git.bovender.de gibt es nur per SSH...
|
||||||
|
|
||||||
|
Die Visual-Studio-Lösung läßt sich direkt nach dem Clonen nicht bauen,
|
||||||
|
weil die Strong-Key-Datei `./zaaReloaded2/zaaReloaded2.pfx` nur ein
|
||||||
|
symbolischer Link ist auf eine Datei außerhalb des Repositoriums, damit
|
||||||
|
der Schüssel nicht öffentlich preisgegeben wird. Also einfach selber
|
||||||
|
eine PFX-Datei generieren, oder in den Projekteinstellungen das
|
||||||
|
Signieren ausschalten.
|
||||||
|
|
||||||
|
|
||||||
## Programmteile
|
## Programmteile
|
||||||
|
|
||||||
Im Sinne einer _separation of concerns_ ist die Programmlogik in
|
Im Sinne einer _separation of concerns_ ist die Programmlogik in
|
||||||
@ -190,7 +212,7 @@ dem [MVVM][]-Muster implementiert. Dabei wurde auf das Hilfs-Framework
|
|||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
Das Add-in sucht täglich nach einem Update; dabei wird die Datei
|
Das Add-in sucht täglich nach einem Update; dabei wird die Datei
|
||||||
<http://zaa.nephrowiki.de/versioninfo.txt> heruntergeladen. Updates
|
<https://doktorkraus.de/zaareloaded/versioninfo.txt> heruntergeladen. Updates
|
||||||
werden automatisch im Hintergrund geladen und beim Schließen von Word
|
werden automatisch im Hintergrund geladen und beim Schließen von Word
|
||||||
(bzw. der Zentralen Arztbriefablage) installiert und stehen dann beim
|
(bzw. der Zentralen Arztbriefablage) installiert und stehen dann beim
|
||||||
nächsten Starten der Anwendung zur Verfügung.
|
nächsten Starten der Anwendung zur Verfügung.
|
||||||
|
61
Tests/Controller/Comments/CommentPoolTest.cs
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
/* CommentPoolTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
|
||||||
|
namespace Tests.Controller.Comments
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class CommentPoolTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void CreateCommentIfDoesNotExist()
|
||||||
|
{
|
||||||
|
CommentPool.Default.Reset();
|
||||||
|
int n = CommentPool.Default.Count;
|
||||||
|
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
|
||||||
|
Assert.AreEqual(n + 1, CommentPool.Default.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ReturnExistingComment()
|
||||||
|
{
|
||||||
|
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
|
||||||
|
int n = CommentPool.Default.Count;
|
||||||
|
i = CommentPool.Default.GetCommentFor("item \"<>\"");
|
||||||
|
Assert.AreEqual(n, CommentPool.Default.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void BuildingCommentRaisesEvent()
|
||||||
|
{
|
||||||
|
ItemComment i = CommentPool.Default.GetCommentFor("item \"<>\"");
|
||||||
|
int eventRaised = 0;
|
||||||
|
CommentPool.Default.FillInComment += (sender, args) =>
|
||||||
|
{
|
||||||
|
eventRaised += 1;
|
||||||
|
};
|
||||||
|
string comment = i.BuildComment();
|
||||||
|
Assert.AreEqual(1, eventRaised);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
58
Tests/Controller/Comments/ItemCommentTest.cs
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
/* ItemCommentTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Formatter;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
|
||||||
|
namespace Tests.Controller.Comments
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class ItemCommentTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void FactoryWithGoodDefinition()
|
||||||
|
{
|
||||||
|
ItemComment i = ItemComment.FromDefinitionString("TAC \"(Zielbereich: <4-7> µg/l)\"");
|
||||||
|
Assert.IsNotNull(i);
|
||||||
|
Assert.AreEqual("(Zielbereich: ", i.Prefix);
|
||||||
|
Assert.AreEqual("4-7", i.Value);
|
||||||
|
Assert.AreEqual(" µg/l)", i.Suffix);
|
||||||
|
Assert.AreEqual("TAC", i.Item);
|
||||||
|
Assert.AreEqual("(Zielbereich: 4-7 µg/l)", i.BuildComment());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void FactoryWithBadDefinition()
|
||||||
|
{
|
||||||
|
ItemComment i = ItemComment.FromDefinitionString("some bogus definition");
|
||||||
|
Assert.IsNull(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void EmptyValueProducesEmptyComment()
|
||||||
|
{
|
||||||
|
ItemComment i = ItemComment.FromDefinitionString("TAC \"(Zielbereich: <default> µg/l)\"");
|
||||||
|
i.Value = String.Empty;
|
||||||
|
Assert.AreEqual(String.Empty, i.BuildComment());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
51
Tests/Controller/Elements/CloneTest.cs
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
/* CloneTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Controller.Elements;
|
||||||
|
|
||||||
|
namespace Tests.Controller.Elements
|
||||||
|
{
|
||||||
|
[TestFixture(typeof(SelectFirstDay))]
|
||||||
|
[TestFixture(typeof(SelectLastDay))]
|
||||||
|
[TestFixture(typeof(SelectEachDay))]
|
||||||
|
class CloneTest<T> where T : ControlElementBase, new()
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void CloneControlElement()
|
||||||
|
{
|
||||||
|
T original = new T();
|
||||||
|
original.Children = new List<FormatElementBase>()
|
||||||
|
{
|
||||||
|
new Items("hello"),
|
||||||
|
new Items("world")
|
||||||
|
};
|
||||||
|
T clone = original.Clone() as T;
|
||||||
|
for (int i = 0; i < original.Children.Count; i++)
|
||||||
|
{
|
||||||
|
Assert.AreEqual(original.Children[i].Content, clone.Children[i].Content);
|
||||||
|
}
|
||||||
|
clone.Children[1].Content = "something else";
|
||||||
|
Assert.AreNotEqual(clone.Children[1].Content, original.Children[1].Content,
|
||||||
|
"Clone's child #1 should have different content than original's child #1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemsTest.cs
|
/* ItemsTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -16,14 +16,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using Microsoft.Office.Interop.Word;
|
using Microsoft.Office.Interop.Word;
|
||||||
using zaaReloaded2.LabModel;
|
using zaaReloaded2.LabModel;
|
||||||
using zaaReloaded2.Formatter;
|
using zaaReloaded2.Formatter;
|
||||||
using zaa = zaaReloaded2.Controller.Elements;
|
using zaa = zaaReloaded2.Controller.Elements;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace Tests.Controller.Elements
|
namespace Tests.Controller.Elements
|
||||||
@ -46,6 +44,7 @@ namespace Tests.Controller.Elements
|
|||||||
public void TearDown()
|
public void TearDown()
|
||||||
{
|
{
|
||||||
((_Document)_document).Close(WdSaveOptions.wdDoNotSaveChanges);
|
((_Document)_document).Close(WdSaveOptions.wdDoNotSaveChanges);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(_document);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -152,7 +151,7 @@ namespace Tests.Controller.Elements
|
|||||||
StripMarkup(
|
StripMarkup(
|
||||||
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00))
|
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00))
|
||||||
)+
|
)+
|
||||||
"Klinische Chemie: Na 133, SU-Protein 2,8\r\r").Replace(Environment.NewLine, "\r");
|
"Klinische Chemie: Na 133, SU-Protein 3\r\r").Replace(Environment.NewLine, "\r");
|
||||||
Assert.AreEqual(expected, _document.Range().Text);
|
Assert.AreEqual(expected, _document.Range().Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,11 +175,63 @@ namespace Tests.Controller.Elements
|
|||||||
StripMarkup(
|
StripMarkup(
|
||||||
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00))
|
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00))
|
||||||
) +
|
) +
|
||||||
"Klinische Chemie: Na 133, SU-Protein 2,8, Cl 110, U-Na 99\r\r")
|
"Klinische Chemie: Na 133, SU-Protein 3, Cl 110, U-Na 99\r\r")
|
||||||
.Replace(Environment.NewLine, "\r");
|
.Replace(Environment.NewLine, "\r");
|
||||||
Assert.AreEqual(expected, _document.Range().Text);
|
Assert.AreEqual(expected, _document.Range().Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ItemCommentWithoutHandler()
|
||||||
|
{
|
||||||
|
CommentPool.Default.Reset();
|
||||||
|
Laboratory lab = new Laboratory();
|
||||||
|
TimePoint tp = new TimePoint();
|
||||||
|
tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00);
|
||||||
|
tp.AddItem(new LabItem("Na", "133", "133"));
|
||||||
|
tp.AddItem(new LabItem("K", "6", "5"));
|
||||||
|
lab.AddTimePoint(tp);
|
||||||
|
|
||||||
|
_formatter.Laboratory = lab;
|
||||||
|
_formatter.Settings.Elements.Add(
|
||||||
|
new zaa.Items("Na \"(Zielbereich: <> mmol/l)\""));
|
||||||
|
_formatter.Run();
|
||||||
|
string expected = (
|
||||||
|
StripMarkup(
|
||||||
|
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) +
|
||||||
|
"Na 133\r\r").Replace(Environment.NewLine, "\r")
|
||||||
|
);
|
||||||
|
Assert.AreEqual(expected, _document.Range().Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ItemCommentWithHandler()
|
||||||
|
{
|
||||||
|
Laboratory lab = new Laboratory();
|
||||||
|
TimePoint tp = new TimePoint();
|
||||||
|
tp.TimeStamp = new DateTime(2015, 7, 13, 13, 31, 00);
|
||||||
|
tp.AddItem(new LabItem("Na", "133", "133"));
|
||||||
|
tp.AddItem(new LabItem("K", "6", "5"));
|
||||||
|
lab.AddTimePoint(tp);
|
||||||
|
|
||||||
|
_formatter.Laboratory = lab;
|
||||||
|
_formatter.Settings.Elements.Add(
|
||||||
|
new zaa.Items("Na \"(Zielbereich: <default> µg/l)\""));
|
||||||
|
bool messageSent = false;
|
||||||
|
CommentPool.Default.FillInComment += (sender, args) =>
|
||||||
|
{
|
||||||
|
messageSent = true;
|
||||||
|
args.Comment.Value = "4-7";
|
||||||
|
};
|
||||||
|
_formatter.Run();
|
||||||
|
Assert.IsTrue(messageSent, "FillInComment message was not sent");
|
||||||
|
string expected = (
|
||||||
|
StripMarkup(
|
||||||
|
TimePointFormatter.DateAndTimeHeader(new DateTime(2015, 07, 13, 13, 31, 00)) +
|
||||||
|
"Na 133 (Zielbereich: 4-7 µg/l)\r\r").Replace(Environment.NewLine, "\r")
|
||||||
|
);
|
||||||
|
Assert.AreEqual(expected, _document.Range().Text);
|
||||||
|
}
|
||||||
|
|
||||||
static string StripMarkup(string s)
|
static string StripMarkup(string s)
|
||||||
{
|
{
|
||||||
return _markupStripper.Replace(s, string.Empty);
|
return _markupStripper.Replace(s, string.Empty);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepositoryTest.cs
|
/* SettingsRepositoryTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -32,14 +32,14 @@ namespace Tests.Controller
|
|||||||
[SetUp]
|
[SetUp]
|
||||||
public void SetUp()
|
public void SetUp()
|
||||||
{
|
{
|
||||||
_savedSettings = zaaReloaded2.Properties.Settings.Default.SettingsRepository;
|
_savedSettings = zaaReloaded2.UserSettings.Default.SettingsRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
[TearDown]
|
[TearDown]
|
||||||
public void TearDown()
|
public void TearDown()
|
||||||
{
|
{
|
||||||
zaaReloaded2.Properties.Settings.Default.SettingsRepository = _savedSettings;
|
zaaReloaded2.UserSettings.Default.SettingsRepository = _savedSettings;
|
||||||
zaaReloaded2.Properties.Settings.Default.Save();
|
zaaReloaded2.UserSettings.Default.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsTest.cs
|
/* SettingsTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -49,6 +49,11 @@ namespace Tests.Controller
|
|||||||
((Items)source.Elements[1]).Content,
|
((Items)source.Elements[1]).Content,
|
||||||
((Items)clone.Elements[1]).Content,
|
((Items)clone.Elements[1]).Content,
|
||||||
"Items content");
|
"Items content");
|
||||||
|
((Items)clone.Elements[1]).Content = "something else";
|
||||||
|
Assert.AreNotEqual(
|
||||||
|
((Items)source.Elements[1]).Content,
|
||||||
|
((Items)clone.Elements[1]).Content,
|
||||||
|
"Items content should be different");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DocumentWriterClass.cs
|
/* DocumentWriterClass.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
|
Laborwerte vom 04.07.2015 12:31:00:
|
||||||
Laborwerte vom 04.07.2015 12:31:00:
|
|
||||||
Klinische Chemie: Na 144 mM, K 4,3 mM
|
Klinische Chemie: Na 144 mM, K 4,3 mM
|
||||||
|
|
||||||
Laborwerte vom 06.07.2015 10:28:00:
|
Laborwerte vom 06.07.2015 10:28:00:
|
||||||
Klinische Chemie: Na 138 mM, K 4,6 mM
|
Klinische Chemie: Na 138 mM, K 4,6 mM
|
||||||
|
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
|
Laborwerte vom 04.07.2015:
|
||||||
Laborwerte vom 04.07.2015:
|
|
||||||
Klinische Chemie: Na 144 mM, K 4,3 mM
|
Klinische Chemie: Na 144 mM, K 4,3 mM
|
||||||
|
|
||||||
Laborwerte vom 06.07.2015:
|
Laborwerte vom 06.07.2015:
|
||||||
Klinische Chemie: Na 138 mM, K 4,6 mM
|
Klinische Chemie: Na 138 mM, K 4,6 mM
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
Laborwerte vom 04.07.2015:
|
||||||
Laborwerte vom 04.07.2015:
|
|
||||||
Klinische Chemie: Na 144 mM, K 4,3 mM
|
Klinische Chemie: Na 144 mM, K 4,3 mM
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
Laborwerte vom 06.07.2015:
|
||||||
Laborwerte vom 06.07.2015:
|
|
||||||
Klinische Chemie: Na 138 mM, K 4,6 mM
|
Klinische Chemie: Na 138 mM, K 4,6 mM
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* FormatterTest.cs
|
/* FormatterTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -118,6 +118,23 @@ namespace Tests.Formatter
|
|||||||
document.Range().Text);
|
document.Range().Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void FormatCyclosporine()
|
||||||
|
{
|
||||||
|
ZaaImporter importer = new ZaaImporter();
|
||||||
|
importer.Import(
|
||||||
|
"(17.09.2015-201710:44:00) Cyclosporin-A vor Gabe: 130 µg/l; CK gesamt: 123 [<= 170] U/l; Cholesterin: 211");
|
||||||
|
Document document = new Document();
|
||||||
|
f.Formatter formatter = new f.Formatter(document);
|
||||||
|
formatter.Laboratory = importer.Laboratory;
|
||||||
|
formatter.Settings = new zaaReloaded2.Controller.Settings(
|
||||||
|
new List<ElementBase>() { new Items("CsA (C0) \"(Ziel-Talspiegel: <> µg/l)\"") });
|
||||||
|
formatter.Run();
|
||||||
|
Assert.AreEqual(
|
||||||
|
"Laborwerte vom 17.09.2015-201710:44:00:\rCsA (C0) 130 µg/l\r\r",
|
||||||
|
document.Range().Text);
|
||||||
|
}
|
||||||
|
|
||||||
string GetResourceText(string resource)
|
string GetResourceText(string resource)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisItemTest.cs
|
/* LaurisItemTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -40,6 +40,7 @@ namespace Tests.Importer.ZaaImporter
|
|||||||
LaurisItem i = new LaurisItem(laurisString);
|
LaurisItem i = new LaurisItem(laurisString);
|
||||||
Assert.AreEqual(name, i.Name, "Name");
|
Assert.AreEqual(name, i.Name, "Name");
|
||||||
Assert.AreEqual(unit, i.Unit, "Unit");
|
Assert.AreEqual(unit, i.Unit, "Unit");
|
||||||
|
Assert.IsFalse(i.IsExtreme, "IsExtreme");
|
||||||
Assert.IsTrue(i.IsNumerical, "IsNumerical");
|
Assert.IsTrue(i.IsNumerical, "IsNumerical");
|
||||||
Assert.AreEqual(value, i.NumericalValue, "NumericalValue");
|
Assert.AreEqual(value, i.NumericalValue, "NumericalValue");
|
||||||
Assert.AreEqual(lowerLimit, i.LowerLimit, "Lower limit");
|
Assert.AreEqual(lowerLimit, i.LowerLimit, "Lower limit");
|
||||||
@ -50,6 +51,25 @@ namespace Tests.Importer.ZaaImporter
|
|||||||
Assert.IsTrue(i.HasUpperLimit, "HasUpperLimit");
|
Assert.IsTrue(i.HasUpperLimit, "HasUpperLimit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase("Folsäure: > 20 [2.0 - 9.1] ng/ml; ", "Folsäure", "> 20", "ng/ml", 2, 9.1, false)]
|
||||||
|
public void ParseLaurisWithGreaterOrLowerValue(
|
||||||
|
string laurisString, string name, string value,
|
||||||
|
string unit, double lowerLimit, double upperLimit, bool isNormal)
|
||||||
|
{
|
||||||
|
LaurisItem i = new LaurisItem(laurisString);
|
||||||
|
Assert.AreEqual(name, i.Name, "Name");
|
||||||
|
Assert.AreEqual(unit, i.Unit, "Unit");
|
||||||
|
Assert.IsTrue(i.IsExtreme, "IsExtreme");
|
||||||
|
Assert.IsFalse(i.IsNumerical, "IsNumerical");
|
||||||
|
Assert.AreEqual(value, i.Value, "Value");
|
||||||
|
Assert.AreEqual(lowerLimit, i.LowerLimit, "Lower limit");
|
||||||
|
Assert.AreEqual(upperLimit, i.UpperLimit, "Upper limit");
|
||||||
|
Assert.AreEqual(isNormal, i.IsNormal, "IsNormal");
|
||||||
|
Assert.IsTrue(i.HasLimits, "HasLimits");
|
||||||
|
Assert.IsTrue(i.HasLowerLimit, "HasLowerLimit");
|
||||||
|
Assert.IsTrue(i.HasUpperLimit, "HasUpperLimit");
|
||||||
|
}
|
||||||
|
|
||||||
[TestCase("HDL - Cholesterin: 45 [>= 35] mg/dl", "HDL - Cholesterin", 45, "mg/dl", 35, true)]
|
[TestCase("HDL - Cholesterin: 45 [>= 35] mg/dl", "HDL - Cholesterin", 45, "mg/dl", 35, true)]
|
||||||
public void ParseLaurisWithLowerLimit(
|
public void ParseLaurisWithLowerLimit(
|
||||||
string laurisString, string name, double value,
|
string laurisString, string name, double value,
|
||||||
@ -86,6 +106,7 @@ namespace Tests.Importer.ZaaImporter
|
|||||||
|
|
||||||
[TestCase("Niedermol. Heparin (Anti-Xa): 0.99 U/ml;", "Niedermol. Heparin (Anti-Xa)", 0.99, "U/ml")]
|
[TestCase("Niedermol. Heparin (Anti-Xa): 0.99 U/ml;", "Niedermol. Heparin (Anti-Xa)", 0.99, "U/ml")]
|
||||||
[TestCase("glomerul. Filtrationsr. CKD-EP: 42 ml/min /1,73qm;", "glomerul. Filtrationsr. CKD-EP", 42, "ml/min /1,73qm")]
|
[TestCase("glomerul. Filtrationsr. CKD-EP: 42 ml/min /1,73qm;", "glomerul. Filtrationsr. CKD-EP", 42, "ml/min /1,73qm")]
|
||||||
|
[TestCase("NT-proBNP: 598 [s. Bem.] pg/ml;", "NT-proBNP", 598, "pg/ml")]
|
||||||
public void ParseLaurisWithoutLimits(
|
public void ParseLaurisWithoutLimits(
|
||||||
string laurisString, string name, double value,
|
string laurisString, string name, double value,
|
||||||
string unit)
|
string unit)
|
||||||
@ -132,7 +153,7 @@ namespace Tests.Importer.ZaaImporter
|
|||||||
|
|
||||||
[TestCase("Albumin (SU)/die: 149.9 [<= 30] mg/d; ", Material.SU)]
|
[TestCase("Albumin (SU)/die: 149.9 [<= 30] mg/d; ", Material.SU)]
|
||||||
[TestCase("Gesamt-Eiweiss/Creatinin (PU): 281 [<= 70] mg/g Crea;", Material.U)]
|
[TestCase("Gesamt-Eiweiss/Creatinin (PU): 281 [<= 70] mg/g Crea;", Material.U)]
|
||||||
[TestCase("Cystatin C (N Latex): 2.37 [0.57 - 0.96] mg/l; ", Material.B)]
|
[TestCase("Cystatin C (N Latex): 2.37 [0.57 - 0.96] mg/l; ", Material.S)]
|
||||||
public void ParseLaurisMaterial(string laurisString, Material expectedMaterial)
|
public void ParseLaurisMaterial(string laurisString, Material expectedMaterial)
|
||||||
{
|
{
|
||||||
LaurisItem i = new LaurisItem(laurisString);
|
LaurisItem i = new LaurisItem(laurisString);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisParagraphTest.cs
|
/* LaurisParagraphTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisTimePointTest.cs
|
/* LaurisTimePointTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ZaaImporterTest.cs
|
/* ZaaImporterTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* UnitTest1.cs
|
/* UnitTest1.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
45
Tests/Medication/ImporterTest.cs
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
/* ImporterTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
namespace Tests.Medication
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class ImporterTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void ImportDrugsTwoColumns()
|
||||||
|
{
|
||||||
|
string s =
|
||||||
|
"Aktuelle Medikation:\r" +
|
||||||
|
"Advagraf 1 mg 2-0-0 CellCept 500 mg 1-0-1\r" +
|
||||||
|
"CellCept 250 mg 1-0-1 Decortin 10 mg 1-0-0\r" +
|
||||||
|
"Beloc-Zok mite 1-0-1 Ramipril 5 mg 0-0-1 (neu)\r" +
|
||||||
|
"Pantozol 40 mg 0-0-1 Decostriol 0,5 µg 2-0-0\r" +
|
||||||
|
"Euthyrox 200 µg 1-1-1 (gesteigert) Ossofortin forte 1-0-1\r" +
|
||||||
|
"Vfend 200 mg 2-0-2 CPS-Pulver 0-1-0\r" +
|
||||||
|
"Cyklokapron 500 mg 1-1-1 Tamsulosin 0,4 mg 1-0-0 ";
|
||||||
|
zaaReloaded2.Medication.Importer i = new zaaReloaded2.Medication.Importer(s);
|
||||||
|
Assert.AreEqual(14, i.Prescriptions.Count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
128
Tests/Medication/PrescriptionTest.cs
Executable file
@ -0,0 +1,128 @@
|
|||||||
|
/* PrescriptionTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Medication;
|
||||||
|
|
||||||
|
namespace Tests.Medication
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class PrescriptionTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
[TestCase("Ramipril 5 mg 1-2-3", "Ramipril 5 mg", "1", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg 1 -2 - 3", "Ramipril 5 mg", "1", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg 1 - 2 - 3", "Ramipril 5 mg", "1", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg 1 - 2 - 3", "Ramipril 5 mg", "1", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg 1 1/2-2-3", "Ramipril 5 mg", "1 1/2", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg 1 1/2 - 2 - 3", "Ramipril 5 mg", "1 1/2", "2", "3")]
|
||||||
|
[TestCase("Ramipril 5 mg ½-⅓-¼", "Ramipril 5 mg", "½", "⅓", "¼")]
|
||||||
|
public void ParseLine(string line, string drug, string morning,
|
||||||
|
string noon, string evening)
|
||||||
|
{
|
||||||
|
Prescription p = Prescription.FromLine(line);
|
||||||
|
Assert.AreEqual(drug, p.Drug, "Drug should be " + drug);
|
||||||
|
Assert.AreEqual(morning, p.Morning, "Morning should be " + morning);
|
||||||
|
Assert.AreEqual(noon, p.Noon, "Noon should be " + noon);
|
||||||
|
Assert.AreEqual(evening, p.Evening, "Evening should be " + evening);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void MultiplePrescriptions()
|
||||||
|
{
|
||||||
|
IEnumerable<Prescription> list = Prescription.ManyFromLine(
|
||||||
|
"Ramipril 5 mg 1-0-0 \t Prograf 1 mg 1-0-1");
|
||||||
|
Assert.AreEqual(2, list.Count());
|
||||||
|
Assert.AreEqual("Ramipril 5 mg\t1-0-0", list.First().ToString());
|
||||||
|
Assert.AreEqual("Prograf 1 mg\t1-0-1", list.Last().ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "0", "0", "0", "Ramipril 5 mg\t1-0-0-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "0", "0", "", "Ramipril 5 mg\t1-0-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "0", "", "", "Ramipril 5 mg\t1-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "", "", "", "Ramipril 5 mg\t1")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "", "0", "0", "Ramipril 5 mg\t1-0-0-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "0", "", "0", "Ramipril 5 mg\t1-0-0-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "1", "", "", "0", "Ramipril 5 mg\t1-0-0-0")]
|
||||||
|
[TestCase("Ramipril 5 mg", "", "", "", "", "Ramipril 5 mg\t")]
|
||||||
|
public void PrescriptionToString(string drug, string morning, string noon,
|
||||||
|
string evening, string night, string formatted)
|
||||||
|
{
|
||||||
|
Prescription p = new Prescription(drug, morning, noon, evening, night);
|
||||||
|
Assert.AreEqual(formatted, p.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void PrescriptionWithComment()
|
||||||
|
{
|
||||||
|
Prescription p = Prescription.FromLine("Ramipril 5 mg 1-0-2 (gesteigert)");
|
||||||
|
Assert.AreEqual("Ramipril 5 mg", p.Drug);
|
||||||
|
Assert.AreEqual("1", p.Morning);
|
||||||
|
Assert.AreEqual("0", p.Noon);
|
||||||
|
Assert.AreEqual("2", p.Evening);
|
||||||
|
Assert.AreEqual("(gesteigert)", p.Comment);
|
||||||
|
Assert.AreEqual("Ramipril 5 mg\t1-0-2 (gesteigert)", p.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void PrescriptionsLineWithComment()
|
||||||
|
{
|
||||||
|
IList<Prescription> list = Prescription.ManyFromLine(
|
||||||
|
"Ramipril 5 mg 1-0-2 (gesteigert) \t Concor 2,5 mg 3-2-1-0 neu");
|
||||||
|
Assert.AreEqual(2, list.Count);
|
||||||
|
Assert.AreEqual("Ramipril 5 mg", list[0].Drug);
|
||||||
|
Assert.AreEqual("1", list[0].Morning);
|
||||||
|
Assert.AreEqual("0", list[0].Noon);
|
||||||
|
Assert.AreEqual("2", list[0].Evening);
|
||||||
|
Assert.AreEqual("", list[0].Night);
|
||||||
|
Assert.AreEqual("(gesteigert)", list[0].Comment);
|
||||||
|
Assert.AreEqual("Concor 2,5 mg", list[1].Drug);
|
||||||
|
Assert.AreEqual("3", list[1].Morning);
|
||||||
|
Assert.AreEqual("2", list[1].Noon);
|
||||||
|
Assert.AreEqual("1", list[1].Evening);
|
||||||
|
Assert.AreEqual("0", list[1].Night);
|
||||||
|
Assert.AreEqual("neu", list[1].Comment);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void PrescriptionWithoutTypicalDosing()
|
||||||
|
{
|
||||||
|
Prescription p = Prescription.FromLine("Eusaprim forte\t alle zwei Tage");
|
||||||
|
Assert.AreEqual("Eusaprim forte", p.Drug);
|
||||||
|
Assert.AreEqual("alle zwei Tage", p.Comment);
|
||||||
|
Assert.AreEqual("Eusaprim forte\talle zwei Tage", p.ToString(), "ToString");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[TestCase("CellCept 500 mg", true)]
|
||||||
|
[TestCase("Cell CEpt 500 mg", true)]
|
||||||
|
[TestCase("Myfortic", true)]
|
||||||
|
[TestCase("Mycophenolatmofetil 500 mg", true)]
|
||||||
|
[TestCase("Cellophan 5 g", false)]
|
||||||
|
[TestCase("MMF 500 mg", true)]
|
||||||
|
public void MmfProperty(string drug, bool isMmf)
|
||||||
|
{
|
||||||
|
Prescription p = new Prescription(drug);
|
||||||
|
Assert.AreEqual(isMmf, p.IsMmf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDayTest.cs
|
/* SelectFirstDayTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -50,7 +50,7 @@ namespace Tests.Controller
|
|||||||
serializer.Serialize(stream, element);
|
serializer.Serialize(stream, element);
|
||||||
stream.Position = 0;
|
stream.Position = 0;
|
||||||
StreamReader sr = new StreamReader(stream);
|
StreamReader sr = new StreamReader(stream);
|
||||||
Console.WriteLine(sr.ReadToEnd());
|
// Console.WriteLine(sr.ReadToEnd());
|
||||||
stream.Position = 0;
|
stream.Position = 0;
|
||||||
SelectFirstDay deserialized = serializer.Deserialize(stream) as SelectFirstDay;
|
SelectFirstDay deserialized = serializer.Deserialize(stream) as SelectFirstDay;
|
||||||
Assert.IsNotNull(deserialized);
|
Assert.IsNotNull(deserialized);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TestHelpers.cs
|
/* TestHelpers.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -41,16 +41,20 @@
|
|||||||
<AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Bovender, Version=0.2.0.0, Culture=neutral, PublicKeyToken=df1c15557d8b6df8, processorArchitecture=MSIL">
|
<Reference Include="Bovender, Version=0.17.0.0, Culture=neutral, PublicKeyToken=df1c15557d8b6df8, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Bovender.0.2.0.0\lib\net40\Bovender.dll</HintPath>
|
<HintPath>..\packages\Bovender.0.17.0.0\lib\net40\Bovender.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath>
|
||||||
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\NUnit.3.6.1\lib\net40\nunit.framework.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="PresentationCore" />
|
<Reference Include="PresentationCore" />
|
||||||
<Reference Include="PresentationFramework" />
|
<Reference Include="PresentationFramework" />
|
||||||
@ -66,6 +70,10 @@
|
|||||||
<Reference Include="System.Xaml" />
|
<Reference Include="System.Xaml" />
|
||||||
<Reference Include="System.XML" />
|
<Reference Include="System.XML" />
|
||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
|
<Reference Include="YamlDotNet, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ec19458f3c15af5e, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\YamlDotNet.Signed.4.1.0\lib\net35\YamlDotNet.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Choose>
|
<Choose>
|
||||||
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||||
@ -80,10 +88,16 @@
|
|||||||
</Otherwise>
|
</Otherwise>
|
||||||
</Choose>
|
</Choose>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Controller\Comments\CommentPoolTest.cs" />
|
||||||
|
<Compile Include="Controller\Comments\ItemCommentTest.cs" />
|
||||||
|
<Compile Include="Controller\Elements\CloneTest.cs" />
|
||||||
|
<Compile Include="Medication\ImporterTest.cs" />
|
||||||
|
<Compile Include="Medication\PrescriptionTest.cs" />
|
||||||
<Compile Include="SerializationTest.cs" />
|
<Compile Include="SerializationTest.cs" />
|
||||||
<Compile Include="Controller\SettingsRepositoryTest.cs" />
|
<Compile Include="Controller\SettingsRepositoryTest.cs" />
|
||||||
<Compile Include="Controller\SettingsTest.cs" />
|
<Compile Include="Controller\SettingsTest.cs" />
|
||||||
<Compile Include="Formatter\DocumentWriterTest.cs" />
|
<Compile Include="Formatter\DocumentWriterTest.cs" />
|
||||||
|
<Compile Include="Thesaurus\ParametersTest.cs" />
|
||||||
<Compile Include="Thesaurus\ThesaurusTest.cs" />
|
<Compile Include="Thesaurus\ThesaurusTest.cs" />
|
||||||
<Compile Include="Controller\Elements\ItemsTest.cs" />
|
<Compile Include="Controller\Elements\ItemsTest.cs" />
|
||||||
<Compile Include="Formatter\FormatterTest.cs" />
|
<Compile Include="Formatter\FormatterTest.cs" />
|
||||||
@ -96,10 +110,12 @@
|
|||||||
<Compile Include="Importer\ZaaImporter\TimePointTest.cs" />
|
<Compile Include="Importer\ZaaImporter\TimePointTest.cs" />
|
||||||
<Compile Include="TestHelpers.cs" />
|
<Compile Include="TestHelpers.cs" />
|
||||||
<Compile Include="ViewModels\ElementPickerViewModelTest.cs" />
|
<Compile Include="ViewModels\ElementPickerViewModelTest.cs" />
|
||||||
|
<Compile Include="ViewModels\ItemCommentViewModelTest.cs" />
|
||||||
<Compile Include="ViewModels\SettingsRepositoryViewModelTest.cs" />
|
<Compile Include="ViewModels\SettingsRepositoryViewModelTest.cs" />
|
||||||
<Compile Include="ViewModels\SettingsViewModelTest.cs" />
|
<Compile Include="ViewModels\SettingsViewModelTest.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Tests.licenseheader" />
|
<None Include="Tests.licenseheader" />
|
||||||
<None Include="zaaReloaded2.pfx" />
|
<None Include="zaaReloaded2.pfx" />
|
||||||
|
56
Tests/Thesaurus/ParametersTest.cs
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
/* ParametersTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Thesaurus;
|
||||||
|
|
||||||
|
namespace Tests.Thesaurus
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class ParametersTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void GetCanonicalName()
|
||||||
|
{
|
||||||
|
Assert.AreEqual("CRP",
|
||||||
|
Parameters.Default.GetCanonicalName("C-reaktives Protein"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void GetPrecision()
|
||||||
|
{
|
||||||
|
Assert.AreEqual(1,
|
||||||
|
Parameters.Default.GetPrecision("Creatinin"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void GetForceReferenceDisplay()
|
||||||
|
{
|
||||||
|
Assert.IsTrue(Parameters.Default.GetForceReferenceDisplay("Magnesium"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void GetIsBlacklisted()
|
||||||
|
{
|
||||||
|
Assert.IsTrue(Parameters.Default.GetIsBlacklisted("glomerul. Filtrationsr. (MDRD)"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
* {{
|
* {{
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Class1.cs
|
/* Class1.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ElementPickerViewModelTest.cs
|
/* ElementPickerViewModelTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
76
Tests/ViewModels/ItemCommentViewModelTest.cs
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
/* ItemCommentViewModelTest.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
using zaaReloaded2.ViewModels;
|
||||||
|
|
||||||
|
namespace Tests.ViewModels
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
class ItemCommentViewModelTest
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void Properties()
|
||||||
|
{
|
||||||
|
ItemComment comment = new ItemComment("item", "pre", "val", "suf");
|
||||||
|
ItemCommentViewModel vm = new ItemCommentViewModel(comment);
|
||||||
|
Assert.AreEqual(comment.Item, vm.Item);
|
||||||
|
Assert.AreEqual(comment.Prefix, vm.Prefix);
|
||||||
|
Assert.AreEqual(comment.Suffix, vm.Suffix);
|
||||||
|
Assert.AreEqual(comment.Value, vm.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void EnterComment()
|
||||||
|
{
|
||||||
|
ItemComment comment = new ItemComment("TAC", "(Ziel-Talspiegel: ", "", "µg/l)");
|
||||||
|
ItemCommentViewModel vm = new ItemCommentViewModel(comment);
|
||||||
|
vm.Value = "8-10";
|
||||||
|
bool eventRaised = false;
|
||||||
|
vm.RequestCloseView += (sender, args) =>
|
||||||
|
{
|
||||||
|
eventRaised = true;
|
||||||
|
};
|
||||||
|
vm.SaveCommand.Execute(null);
|
||||||
|
Assert.IsTrue(eventRaised, "Event was not raised.");
|
||||||
|
Assert.IsFalse(comment.IsCancelled, "Comment.IsCancelled should be false");
|
||||||
|
Assert.AreEqual("8-10", comment.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void CancelComment()
|
||||||
|
{
|
||||||
|
ItemComment comment = new ItemComment("TAC", "(Ziel-Talspiegel: ", "default", "µg/l)");
|
||||||
|
ItemCommentViewModel vm = new ItemCommentViewModel(comment);
|
||||||
|
vm.Value = "blabla";
|
||||||
|
bool eventRaised = false;
|
||||||
|
vm.RequestCloseView += (sender, args) =>
|
||||||
|
{
|
||||||
|
eventRaised = true;
|
||||||
|
};
|
||||||
|
vm.CloseViewCommand.Execute(null);
|
||||||
|
Assert.IsTrue(eventRaised, "Event was not raised.");
|
||||||
|
Assert.IsTrue(comment.IsCancelled, "Comment.IsCancelled should be true");
|
||||||
|
Assert.AreEqual("default", comment.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepositoryViewModel.cs
|
/* SettingsRepositoryViewModel.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsViewModelTest.cs
|
/* SettingsViewModelTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
29
Tests/app.config
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
app.config
|
||||||
|
part of zaaReloaded2
|
||||||
|
|
||||||
|
Copyright 2016 Daniel Kraus
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<configuration>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="YamlDotNet" publicKeyToken="ec19458f3c15af5e" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
@ -1,6 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Bovender" version="0.2.0.0" targetFramework="net40" />
|
<package id="Bovender" version="0.17.0.0" targetFramework="net40" />
|
||||||
<package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net40" />
|
<package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net40" />
|
||||||
<package id="NUnit" version="2.6.4" targetFramework="net40" />
|
<package id="NLog" version="4.4.3" targetFramework="net40" />
|
||||||
|
<package id="NUnit" version="3.6.1" targetFramework="net40" />
|
||||||
|
<package id="YamlDotNet.Signed" version="4.1.0" targetFramework="net40" />
|
||||||
</packages>
|
</packages>
|
1
deploy/VstoAddinInstaller
Submodule
32
deploy/make-installer.iss
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#expr Exec("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com", \
|
||||||
|
"x:\Code\zaaReloaded2\zaaReloaded2\zaaReloaded2.csproj /Build Release")
|
||||||
|
|
||||||
|
#define VERSIONFILE "..\zaaReloaded2\VERSION"
|
||||||
|
#define PUB_YEARS "2015-2017"
|
||||||
|
#define TARGET_HOST "word"
|
||||||
|
#define APP_GUID "{{8520B887-3AB1-422B-AB6B-A265D14FE4E5}"
|
||||||
|
#define ADDIN_NAME "zaaReloaded"
|
||||||
|
#define COMPANY "Daniel Kraus (bovender)"
|
||||||
|
#define DESCRIPTION "Word-Addin, das Lauris-Laborwerte in der Zentralen Arztbriefablage formatiert."
|
||||||
|
#define HOMEPAGE "https://doktorkraus.de/zaareloaded"
|
||||||
|
#define REGKEY "zaaReloaded2"
|
||||||
|
|
||||||
|
#define SOURCEDIR "..\zaaReloaded2\bin\Release\"
|
||||||
|
#define VSTOFILE "zaaReloaded2.vsto"
|
||||||
|
|
||||||
|
; OUTPUTDIR is the directory where the installer will be saved.
|
||||||
|
#define OUTPUTDIR "releases\"
|
||||||
|
|
||||||
|
#define LOGFILE "ZAARELOADED2-INSTALL-LOG.TXT"
|
||||||
|
|
||||||
|
#define SETUPFILESDIR "setup-files\"
|
||||||
|
#define LICENSE_FILE "license.rtf"
|
||||||
|
#define INSTALLER_ICO "icon.ico"
|
||||||
|
#define INSTALLER_IMAGE_LARGE "installbanner.bmp"
|
||||||
|
#define INSTALLER_IMAGE_SMALL "installbanner-small.bmp"
|
||||||
|
|
||||||
|
; If the VstoAddinInstaller files are in a different subdirectory
|
||||||
|
; than 'VstoAddinInstaller', change the path below.
|
||||||
|
#include "VstoAddinInstaller\vsto-installer.iss"
|
||||||
|
|
||||||
|
; vim: ts=2 sts=2 sw=2 et
|
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 153 KiB |
BIN
gimp/m.xcf
Normal file
BIN
gimp/mm.xcf
Normal file
@ -1,760 +0,0 @@
|
|||||||
; Inno Setup script for zaaReloaded2
|
|
||||||
; (c) 2015 Daniel Kraus
|
|
||||||
; Apache License Version 2.0
|
|
||||||
|
|
||||||
[Setup]
|
|
||||||
; #define DEBUG
|
|
||||||
|
|
||||||
; Read the semantic and the installer file version from the VERSION file
|
|
||||||
#define FILE_HANDLE FileOpen("..\zaaReloaded2\VERSION")
|
|
||||||
#define SEMVER FileRead(FILE_HANDLE)
|
|
||||||
#define VER FileRead(FILE_HANDLE)
|
|
||||||
#expr FileClose(FILE_HANDLE)
|
|
||||||
|
|
||||||
#define YEAR "2015"
|
|
||||||
#define DEV "Daniel Kraus"
|
|
||||||
#define LOGFILE "INST-LOG.TXT"
|
|
||||||
#define REGKEY "Software\Microsoft\Office\Word\Addins\zaaReloaded2"
|
|
||||||
#define APPNAME "zaaReloaded"
|
|
||||||
#define SLOGAN "Word-Addin, das Lauris-Laborwerte in der Zentralen Arztbriefablage formatiert"
|
|
||||||
#define UNINSTALLDIR "{app}\setup"
|
|
||||||
#define ADDINNAME "zaaReloaded2"
|
|
||||||
#define DOTNETSHA1 "58da3d74db353aad03588cbb5cea8234166d8b99"
|
|
||||||
#define VSTORSHA1 "ad1dcc5325cb31754105c8c783995649e2208571"
|
|
||||||
|
|
||||||
#ifndef DEBUG
|
|
||||||
#define SOURCEDIR "Release"
|
|
||||||
#define VSTORURL "http://download.microsoft.com/download/2/E/9/2E9D2603-6D1F-4B12-BD37-DB1410B23597/vstor_redist.exe"
|
|
||||||
#define DOTNETURL "http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe"
|
|
||||||
; Build the solution with Release configuration
|
|
||||||
#expr Exec("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com", \
|
|
||||||
"x:\Code\zaaReloaded2\zaaReloaded2\zaaReloaded2.csproj /Build Release")
|
|
||||||
#else
|
|
||||||
#define SOURCEDIR "Debug"
|
|
||||||
#define VSTORURL "http://vhost/vstor_redist.exe"
|
|
||||||
#define DOTNETURL "http://vhost/dotNetFx40_Full_x86_x64.exe"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
; Specific AppID - NEVER CHANGE THIS!
|
|
||||||
AppId={{8520B887-3AB1-422B-AB6B-A265D14FE4E5}
|
|
||||||
|
|
||||||
; Compiler info
|
|
||||||
OutputDir=release
|
|
||||||
#ifndef DEBUG
|
|
||||||
OutputBaseFilename=zaaReloaded-{#SEMVER}
|
|
||||||
#else
|
|
||||||
OutputBaseFilename=zaaReloaded-debug
|
|
||||||
#endif
|
|
||||||
Compression=lzma
|
|
||||||
InternalCompressLevel=max
|
|
||||||
SolidCompression=true
|
|
||||||
LicenseFile=setup-files\license.rtf
|
|
||||||
|
|
||||||
; Application name, version, etc.
|
|
||||||
AppName={#APPNAME}
|
|
||||||
AppVersion={#SEMVER}
|
|
||||||
AppPublisher={#DEV}
|
|
||||||
AppCopyright=2008-{#YEAR} {#DEV}
|
|
||||||
AppComments={#SLOGAN}
|
|
||||||
VersionInfoDescription={#SLOGAN}
|
|
||||||
VersionInfoVersion={#VER}
|
|
||||||
VersionInfoProductVersion={#VER}
|
|
||||||
VersionInfoTextVersion={#SEMVER}
|
|
||||||
VersionInfoProductTextVersion={#SEMVER}
|
|
||||||
AppContact={#DEV}
|
|
||||||
AppPublisherURL=http://zaa.nephrowiki.de
|
|
||||||
AppSupportURL=http://zaa.nephrowiki.de
|
|
||||||
AppUpdatesURL=http://zaa.nephrowiki.de
|
|
||||||
|
|
||||||
; Setup wizard
|
|
||||||
SetupIconFile=setup-files\icon.ico
|
|
||||||
WizardImageFile=setup-files\installbanner.bmp
|
|
||||||
WizardSmallImageFile=setup-files\installbanner-small.bmp
|
|
||||||
ArchitecturesAllowed=x86 x64
|
|
||||||
ArchitecturesInstallIn64BitMode=x64
|
|
||||||
DisableProgramGroupPage=true
|
|
||||||
DisableDirPage=false
|
|
||||||
DisableReadyPage=false
|
|
||||||
LanguageDetectionMethod=locale
|
|
||||||
TimeStampsInUTC=false
|
|
||||||
PrivilegesRequired=lowest
|
|
||||||
WizardImageStretch=false
|
|
||||||
WizardImageBackColor=clWhite
|
|
||||||
; ChangesAssociations=true
|
|
||||||
AppendDefaultDirName=false
|
|
||||||
DefaultDirName={code:SuggestInstallDir}
|
|
||||||
CreateAppDir=true
|
|
||||||
CloseApplicationsFilter=*.*
|
|
||||||
DefaultDialogFontName=Segoe UI
|
|
||||||
|
|
||||||
; Uninstall
|
|
||||||
;UninstallDisplayIcon={#UNINSTALLDIR}\xltoolbox.ico
|
|
||||||
UninstallFilesDir={#UNINSTALLDIR}
|
|
||||||
|
|
||||||
; Inno Downloader Plugin is required for this
|
|
||||||
; Note that this include directive MUST be located at the end of the [setup]
|
|
||||||
; section.
|
|
||||||
#include <idp.iss>
|
|
||||||
|
|
||||||
[Languages]
|
|
||||||
Name: en; MessagesFile: compiler:Default.isl;
|
|
||||||
Name: de; MessagesFile: compiler:Languages\German.isl;
|
|
||||||
; Name: Brasileiro; MessagesFile: compiler:Languages\BrazilianPortuguese.isl;
|
|
||||||
; Name: Portugues; MessagesFile: compiler:Languages\Portuguese.isl;
|
|
||||||
#include "c:\Program Files (x86)\Inno Download Plugin\Unicode\idplang\german.iss"
|
|
||||||
|
|
||||||
[Files]
|
|
||||||
Source: "..\zaaReloaded2\bin\{#SOURCEDIR}\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs
|
|
||||||
; Source: "setup-files\xltoolbox.ico"; DestDir: "{#UNINSTALLDIR}"
|
|
||||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
|
||||||
|
|
||||||
[Registry]
|
|
||||||
; Keys for single-user install (HKCU)
|
|
||||||
Check: not IsMultiUserInstall; ValueName: Description; ValueData: {#SLOGAN}; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: not IsMultiUserInstall; ValueName: FriendlyName; ValueData: {#APPNAME}; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: not IsMultiUserInstall; ValueName: LoadBehavior; ValueData: 3; ValueType: dword; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: not IsMultiUserInstall; ValueName: Warmup; ValueData: 1; ValueType: dword; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: not IsMultiUserInstall; ValueName: Manifest; ValueData: file:///{code:ConvertSlash|{app}}/{#ADDINNAME}.vsto|vstolocal; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
|
|
||||||
; Same keys again, this time for multi-user install (HKLM)
|
|
||||||
Check: IsMultiUserInstall; ValueName: Description; ValueData: {#SLOGAN}; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: IsMultiUserInstall; ValueName: FriendlyName; ValueData: {#APPNAME}; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: IsMultiUserInstall; ValueName: LoadBehavior; ValueData: 3; ValueType: dword; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: IsMultiUserInstall; ValueName: Warmup; ValueData: 1; ValueType: dword; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
Check: IsMultiUserInstall; ValueName: Manifest; ValueData: file:///{code:ConvertSlash|{app}}/{#ADDINNAME}.vsto|vstolocal; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
|
||||||
|
|
||||||
[Run]
|
|
||||||
; Filename: http://xltoolbox.sourceforge.net/welcome.html; Flags: shellexec nowait; Check: ShowWelcomePageInBrowser
|
|
||||||
|
|
||||||
[UninstallRun]
|
|
||||||
; Filename: http://xltoolbox.sourceforge.net/uninstall.html; Flags: shellexec nowait
|
|
||||||
|
|
||||||
[CustomMessages]
|
|
||||||
; General messages [EN]
|
|
||||||
en.SingleOrMulti=Single-user or system-wide install
|
|
||||||
en.SingleOrMultiSubcaption=Install for the current user only or for all users
|
|
||||||
en.SingleOrMultiDesc=Please indicate the scope of this installation:
|
|
||||||
en.SingleOrMultiSingle=Single user (only for me)
|
|
||||||
en.SingleOrMultiAll=All users (system-wide)
|
|
||||||
en.Word2007Required=zaaReloaded requires Word 2007 or later.
|
|
||||||
|
|
||||||
; CannotInstallPage [EN]
|
|
||||||
en.CannotInstallCaption=Administrator privileges required
|
|
||||||
en.CannotInstallDesc=You do not have the necessary rights to install additional required runtime files.
|
|
||||||
en.CannotInstallMsg=Additional runtime files from Microsoft are required to run this add-in. You may continue the installation, but the add-in won't start unless the required runtime files are installed by an administrator. Note: On Windows Vista and newer, right-click the installer file and choose 'Run as administrator'.
|
|
||||||
en.CannotInstallCont=Continue anyway, although it won't work without the required runtime files
|
|
||||||
en.CannotInstallAbort=Abort the installation (come back when the admin has installed the files)
|
|
||||||
|
|
||||||
; DownloadInfoPage [EN]
|
|
||||||
en.RequiredCaption=Additional runtime files required
|
|
||||||
en.RequiredDesc=Additional runtime files for the .NET framework from Microsoft are required in order to run the add-in.
|
|
||||||
en.RequiredMsg=%d file(s) totalling about %s MiB need to be downloaded from the Microsoft servers. Click 'Next' to start downloading.
|
|
||||||
|
|
||||||
; InstallInfoPage [EN]
|
|
||||||
en.InstallCaption=Runtime files downloaded
|
|
||||||
en.InstallDesc=The required runtime files are ready to install.
|
|
||||||
en.InstallMsg=Click 'Next' to beginn the installation.
|
|
||||||
|
|
||||||
en.StillNotInstalled=The required additional runtime files are still not installed. Setup cannot continue. You may try again, or abort the add-in installation.
|
|
||||||
en.DownloadNotValidated=A downloaded file has unexpected content. It may have not been downloaded correctly, or someone might have hampered with it. You may click 'Back' and then 'Next' to download it again.
|
|
||||||
|
|
||||||
; General messages [DE]
|
|
||||||
de.SingleOrMulti=Einzelner oder alle Benutzer
|
|
||||||
de.SingleOrMultiSubcaption=Geben Sie an, f<>r wen die Installation sein soll
|
|
||||||
de.SingleOrMultiDesc=Bitte geben Sie an, ob das Addin nur f<>r Sie oder f<>r alle Benutzer installiert werden soll.
|
|
||||||
de.SingleOrMultiSingle=Ein Benutzer (nur f<>r mich)
|
|
||||||
de.SingleOrMultiAll=Alle Benutzer (systemweit)
|
|
||||||
de.Word2007Required=Dieses Addin erfordert mindestens Word 2007.
|
|
||||||
|
|
||||||
; "Download required" messages (.NET and VSTOR runtimes) [DE]
|
|
||||||
de.CannotInstallCaption=Administratorrechte ben<65>tigt
|
|
||||||
de.CannotInstallDesc=Sie haben nicht die erforderlichen Benutzerrechte, um weitere ben<65>tigte Laufzeitdateien zu installieren.
|
|
||||||
de.CannotInstallMsg=Sie k<>nnen mit der Installation fortfahren, aber das Addin wird nicht starten, solange die VSTO-Laufzeitdateien nicht von einem Admin installiert wurden. Tipp: Wenn Sie Windows Vista oder neuer verwenden, klicken Sie mit der rechten Maustaste auf die Installationsdatei und w<>hlen "Als Administrator ausf<73>hren".
|
|
||||||
de.CannotInstallCont=Trotzdem installieren, obwohl es nicht funktionieren wird
|
|
||||||
de.CannotInstallAbort=Installation abbrechen
|
|
||||||
|
|
||||||
; DownloadInfoPage [EN]
|
|
||||||
de.RequiredCaption=Weitere Laufzeitdateien erforderlich
|
|
||||||
de.RequiredDesc=Weitere Laufzeitdateien f<>r das .NET-Framework von Microsoft werden ben<65>tigt, um das Addin verwenden zu k<>nnen.
|
|
||||||
de.RequiredMsg=%d Datei(en) mit ca. %s MiB mu<6D>/m<>ssen von den Microsoft-Servern heruntergeladen werden. Klicken Sie 'Weiter', um den Download zu beginnen.
|
|
||||||
|
|
||||||
; InstallInfoPage [EN]
|
|
||||||
de.InstallCaption=Weitere .NET-Laufzeitdateien heruntergeladen
|
|
||||||
de.InstallDesc=Die zus<75>tzlichen ben<65>tigten Dateien von Microsoft k<>nnen jetzt installiert werden.
|
|
||||||
de.InstallMsg=Klicken Sie 'Weiter', um mit der Installation zu beginnen.
|
|
||||||
|
|
||||||
de.StillNotInstalled=Die zus<75>tzlichen ben<65>tigten Dateien wurden leider nicht korrekt installiert, so da<64> die Installation nicht fortgesetzt werden kann.
|
|
||||||
de.DownloadNotValidated=Es wurde unerwarteter Inhalt in einer heruntergeladenen Datei gefunden. Die Installation kann so nicht fortgesetzt werden. Sie k<>nnen aber 'Zur<75>ck' und dann 'Weiter' klicken, um den Download neu zu beginnen.
|
|
||||||
|
|
||||||
[Code]
|
|
||||||
const
|
|
||||||
maxWord = 24; //< highest Word version number to check for.
|
|
||||||
|
|
||||||
var
|
|
||||||
PageDevelopmentInfo: TInputOptionWizardPage;
|
|
||||||
PageSingleOrMultiUser: TInputOptionWizardPage;
|
|
||||||
PageCannotInstall: TInputOptionWizardPage;
|
|
||||||
PageDownloadInfo: TOutputMsgWizardPage;
|
|
||||||
PageInstallInfo: TOutputMsgWizardPage;
|
|
||||||
prerequisitesChecked: boolean;
|
|
||||||
prerequisitesMet: boolean;
|
|
||||||
|
|
||||||
/// Returns the path for the Wow6432Node registry tree if the current operating
|
|
||||||
/// system is 64-bit, i.e., simulates WOW64 redirection.
|
|
||||||
function GetWowNode(): string;
|
|
||||||
begin
|
|
||||||
if IsWin64 then
|
|
||||||
begin
|
|
||||||
result := 'Wow6432Node\';
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
result := '';
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if a given Word version is installed
|
|
||||||
function IsWordVersionInstalled(version: integer): boolean;
|
|
||||||
var key: string;
|
|
||||||
var lookup1, lookup2: boolean;
|
|
||||||
begin
|
|
||||||
key := 'Microsoft\Office\' + IntToStr(version) + '.0\Word\InstallRoot';
|
|
||||||
lookup1 := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\' + GetWowNode + key);
|
|
||||||
|
|
||||||
// If checking for version >= 14.0 ("2010"), which was the first version
|
|
||||||
// that was produced in both 32-bit and 64-bit, on a 64-bit system we
|
|
||||||
// also need to check a path without 'Wow6434Node'.
|
|
||||||
if IsWin64 and (version >= 14) then
|
|
||||||
begin
|
|
||||||
lookup2 := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\' + key);
|
|
||||||
end;
|
|
||||||
|
|
||||||
result := lookup1 or lookup2;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if only Word 2007 is installed
|
|
||||||
function IsOnlyWord2007Installed(): boolean;
|
|
||||||
var
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
result := IsWordVersionInstalled(12);
|
|
||||||
|
|
||||||
// Iterate through all
|
|
||||||
for i := 14 to maxWord do
|
|
||||||
begin
|
|
||||||
if IsWordVersionInstalled(i) then
|
|
||||||
begin
|
|
||||||
result := false;
|
|
||||||
break;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if hotfix KB976477 is installed. This hotfix
|
|
||||||
/// is required to make Word 2007 recognize add-ins in
|
|
||||||
/// the HKLM hive as well.
|
|
||||||
function IsHotfixInstalled(): boolean;
|
|
||||||
begin
|
|
||||||
result := RegKeyExists(HKEY_LOCAL_MACHINE,
|
|
||||||
'SOFTWARE\Microsoft\Windows\Current Version\Uninstall\KB976477');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Retrieves the build number of an installed Office version
|
|
||||||
/// in OutBuild. Returns true if the requested Office version
|
|
||||||
/// is installed and false if it is not installed.
|
|
||||||
function GetOfficeBuild(OfficeVersion: integer; var OutBuild: integer): boolean;
|
|
||||||
var
|
|
||||||
key: string;
|
|
||||||
value: string;
|
|
||||||
build: string;
|
|
||||||
begin
|
|
||||||
key := 'SOFTWARE\' + GetWowNode + 'Microsoft\Office\' +
|
|
||||||
IntToStr(OfficeVersion) + '.0\Common\ProductVersion';
|
|
||||||
if RegQueryStringValue(HKEY_LOCAL_MACHINE, key, 'LastProduct', value) then
|
|
||||||
begin
|
|
||||||
// Office build numbers always have 4 digits, at least as of Feb. 2015;
|
|
||||||
// from a string '14.0.1234.5000' simply copy 4 characters from the 5th
|
|
||||||
// position to get the build number. TODO: Make this future-proof.
|
|
||||||
build := Copy(value, 6, 4);
|
|
||||||
Log('Found ProductVersion "' + value + '" for queried Office version '
|
|
||||||
+ IntToStr(OfficeVersion) + ', extracted build number ' + build);
|
|
||||||
OutBuild := StrToInt(build);
|
|
||||||
result := true;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Log('Did not find LastProduct key for Office version ' +
|
|
||||||
IntToStr(OfficeVersion) + '.0.');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Asserts if Office 2007 is installed. Does not check whether other Office
|
|
||||||
/// versions are concurrently installed.
|
|
||||||
function IsOffice2007Installed(): boolean;
|
|
||||||
begin
|
|
||||||
result := IsWordVersionInstalled(12);
|
|
||||||
if result then Log('Detected Office 2007.');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Asserts if Office 2010 without service pack is installed.
|
|
||||||
/// For build number, see http://support.microsoft.com/kb/2121559/en-us
|
|
||||||
function IsOffice2010NoSpInstalled(): boolean;
|
|
||||||
var
|
|
||||||
build: integer;
|
|
||||||
begin
|
|
||||||
if GetOfficeBuild(14, build) then
|
|
||||||
begin
|
|
||||||
result := build = 4763; // 4763 is the original Office 2007 build
|
|
||||||
if result then
|
|
||||||
Log('Detected Office 2010 without service pack (v. 14.0, build 4763)')
|
|
||||||
else
|
|
||||||
Log('Detected Office 2010, apparently with some service pack (build ' +
|
|
||||||
IntToStr(build) + ').');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if the VSTO runtime is installed. This is relevant if only
|
|
||||||
/// Word 2007 is installed. Since Office 2010, the CLR is
|
|
||||||
/// automatically included.
|
|
||||||
/// The presence of the VSTO runtime is indicated by the presence one of
|
|
||||||
/// four possible registry keys.
|
|
||||||
/// See: http://xltoolbox.sf.net/blog/2015/01/net-vsto-add-ins-getting-prerequisites-right
|
|
||||||
/// HKLM\SOFTWARE\Microsoft\VSTO Runtime Setup\v4R (32-bit)
|
|
||||||
/// HKLM\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4R (64-bit)
|
|
||||||
function IsVstorInstalled(): boolean;
|
|
||||||
var
|
|
||||||
software, vstorPath: string;
|
|
||||||
begin
|
|
||||||
software := 'SOFTWARE\';
|
|
||||||
vstorPath := 'Microsoft\VSTO Runtime Setup\v4R';
|
|
||||||
result := RegKeyExists(HKEY_LOCAL_MACHINE, software + GetWowNode + vstorPath);
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if the .NET 4.0 (or 4.5) runtime is installed.
|
|
||||||
/// See https://msdn.microsoft.com/en-us/library/hh925568
|
|
||||||
function IsNetInstalled(): boolean;
|
|
||||||
begin
|
|
||||||
result := RegKeyExists(HKEY_LOCAL_MACHINE,
|
|
||||||
'SOFTWARE\' + GetWowNode + 'Microsoft\NET Framework Setup\NDP\v4');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Asserts if the VSTO runtime for .NET 4.0 redistributable needs to be
|
|
||||||
/// downloaded and installed.
|
|
||||||
/// If Office 2010 SP 1 or newer is installed on the system, the VSTOR runtime
|
|
||||||
/// will be automagically configured as long as the .NET 4.0 runtime is present.
|
|
||||||
/// Office 2007 and Office 2010 without service pack need the VSTO runtime
|
|
||||||
/// redistributable. For details, see:
|
|
||||||
/// http://xltoolbox.sf.net/blog/2015/01/net-vsto-add-ins-getting-prerequisites-right
|
|
||||||
function NeedToInstallVstor(): boolean;
|
|
||||||
begin
|
|
||||||
result := false; // Default for Office 2010 SP1 or newer
|
|
||||||
if IsOffice2007Installed or IsOffice2010NoSpInstalled then
|
|
||||||
result := not IsVstorInstalled;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if all required prerequisites are met, i.e. if the necessary
|
|
||||||
/// runtimes are installed on the system
|
|
||||||
function PrerequisitesAreMet(): boolean;
|
|
||||||
begin
|
|
||||||
// Cache check result to avoid multiple registry lookups and log messages
|
|
||||||
if not prerequisitesChecked then
|
|
||||||
begin
|
|
||||||
prerequisitesMet := IsNetInstalled and not NeedToInstallVstor;
|
|
||||||
prerequisitesChecked := true;
|
|
||||||
end;
|
|
||||||
result := prerequisitesMet;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if a file exists and has a valid Sha1 sum.
|
|
||||||
function IsFileValid(file: string; expectedSha1: string): boolean;
|
|
||||||
var
|
|
||||||
actualSha1: string;
|
|
||||||
begin
|
|
||||||
try
|
|
||||||
if FileExists(file) then
|
|
||||||
begin
|
|
||||||
actualSha1 := GetSHA1OfFile(file);
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
result := actualSha1 = expectedSha1;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Returns the path to the downloaded VSTO runtime installer.
|
|
||||||
function GetVstorInstallerPath(): string;
|
|
||||||
begin
|
|
||||||
result := ExpandConstant('{%temp}\vstor_redist_40.exe');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Returns the path to the downloaded .NET runtime installer.
|
|
||||||
function GetNetInstallerPath(): string;
|
|
||||||
begin
|
|
||||||
result := ExpandConstant('{%temp}\dotNetFx40_Full_x86_x64.exe');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if the VSTO runtime redistributable setup file has already been
|
|
||||||
/// downloaded by comparing SHA1 checksums.
|
|
||||||
function IsVstorDownloaded(): boolean;
|
|
||||||
begin
|
|
||||||
result := IsFileValid(GetVstorInstallerPath, '{#VSTORSHA1}');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Checks if the .NET runtime setup file has already been
|
|
||||||
/// downloaded by comparing SHA1 checksums.
|
|
||||||
function IsNetDownloaded(): boolean;
|
|
||||||
begin
|
|
||||||
result := IsFileValid(GetNetInstallerPath, '{#DOTNETSHA1}');
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Determines if the VSTO runtime needs to be downloaded.
|
|
||||||
/// This is not the case it the runtime is already installed,
|
|
||||||
/// or if there is a file with a valid Sha1 sum.
|
|
||||||
function NeedToDownloadVstor: boolean;
|
|
||||||
begin
|
|
||||||
result := NeedToInstallVstor and not IsVstorDownloaded;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Determines if the VSTO runtime needs to be downloaded.
|
|
||||||
/// This is not the case it the runtime is already installed,
|
|
||||||
/// or if there is a file with a valid Sha1 sum.
|
|
||||||
function NeedToDownloadNet: boolean;
|
|
||||||
begin
|
|
||||||
result := not IsNetInstalled and not IsNetDownloaded;
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Determines whether or not a system-wide installation
|
|
||||||
/// is possible. This depends on whether the current user
|
|
||||||
/// is an administrator, and whether the hotfix KB976477
|
|
||||||
/// is present on the system if Word 2007 is the only version
|
|
||||||
/// of Word that is present (without that hotfix, Word
|
|
||||||
/// 2007 does not load add-ins that are registered in the
|
|
||||||
/// HKLM hive).
|
|
||||||
function CanInstallSystemWide(): boolean;
|
|
||||||
begin
|
|
||||||
if IsAdminLoggedOn then
|
|
||||||
begin
|
|
||||||
if IsOnlyWord2007Installed then
|
|
||||||
begin
|
|
||||||
result := IsHotfixInstalled;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
result := true;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
result := false;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure CreateSingleOrAllUserPage();
|
|
||||||
begin
|
|
||||||
PageSingleOrMultiUser := CreateInputOptionPage(wpLicense,
|
|
||||||
CustomMessage('SingleOrMulti'), CustomMessage('SingleOrMultiSubcaption'),
|
|
||||||
CustomMessage('SingleOrMultiDesc'), True, False);
|
|
||||||
PageSingleOrMultiUser.Add(CustomMessage('SingleOrMultiSingle'));
|
|
||||||
PageSingleOrMultiUser.Add(CustomMessage('SingleOrMultiAll'));
|
|
||||||
if CanInstallSystemWide then
|
|
||||||
begin
|
|
||||||
PageSingleOrMultiUser.Values[1] := True;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
PageSingleOrMultiUser.Values[0] := True;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure CreateCannotInstallPage();
|
|
||||||
begin
|
|
||||||
PageCannotInstall := CreateInputOptionPage(wpWelcome,
|
|
||||||
CustomMessage('CannotInstallCaption'),
|
|
||||||
CustomMessage('CannotInstallDesc'),
|
|
||||||
CustomMessage('CannotInstallMsg'), True, False);
|
|
||||||
PageCannotInstall.Add(CustomMessage('CannotInstallCont'));
|
|
||||||
PageCannotInstall.Add(CustomMessage('CannotInstallAbort'));
|
|
||||||
PageCannotInstall.Values[1] := True;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure CreateDownloadInfoPage();
|
|
||||||
var
|
|
||||||
bytes: Int64;
|
|
||||||
mib: Single;
|
|
||||||
size: String;
|
|
||||||
begin
|
|
||||||
if idpGetFilesSize(bytes) then
|
|
||||||
begin
|
|
||||||
mib := bytes / 1048576;
|
|
||||||
size := Format('%.1f', [ mib ]);
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
size := '[?]'
|
|
||||||
end;
|
|
||||||
PageDownloadInfo := CreateOutputMsgPage(PageSingleOrMultiUser.Id,
|
|
||||||
CustomMessage('RequiredCaption'),
|
|
||||||
CustomMessage('RequiredDesc'),
|
|
||||||
Format(CustomMessage('RequiredMsg'), [idpFilesCount, size]));
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure CreateInstallInfoPage();
|
|
||||||
begin
|
|
||||||
PageInstallInfo := CreateOutputMsgPage(PageDownloadInfo.Id,
|
|
||||||
CustomMessage('InstallCaption'),
|
|
||||||
CustomMessage('InstallDesc'),
|
|
||||||
CustomMessage('InstallMsg'));
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function InitializeSetup(): boolean;
|
|
||||||
var
|
|
||||||
minWordInstalled: boolean;
|
|
||||||
i: integer;
|
|
||||||
begin
|
|
||||||
// Determine if Word 2007 or newer is installed (absolute requirement
|
|
||||||
// for this VSTO add-in). Word 2007 ist version 12.0.
|
|
||||||
for i := 12 to maxWord do
|
|
||||||
begin
|
|
||||||
minWordInstalled := minWordInstalled or IsWordVersionInstalled(i);
|
|
||||||
end;
|
|
||||||
|
|
||||||
if not minWordInstalled then
|
|
||||||
begin
|
|
||||||
result := False;
|
|
||||||
Log('Informing user that Word 2007 or newer is required.');
|
|
||||||
MsgBox(CustomMessage('Word2007Required'), mbInformation, MB_OK);
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
result := True;
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure InitializeWizard();
|
|
||||||
begin
|
|
||||||
// CreateDevelopmentInfoPage;
|
|
||||||
CreateSingleOrAllUserPage;
|
|
||||||
if not PrerequisitesAreMet then
|
|
||||||
begin
|
|
||||||
Log('Not all prerequisites are met...');
|
|
||||||
CreateCannotInstallPage;
|
|
||||||
if NeedToDownloadNet then
|
|
||||||
begin
|
|
||||||
Log('Mark {#DOTNETURL} for download.');
|
|
||||||
idpAddFileSize('{#DOTNETURL}', GetNetInstallerPath, 50449456);
|
|
||||||
end;
|
|
||||||
if NeedToDownloadVstor then
|
|
||||||
begin
|
|
||||||
Log('Mark {#VSTORURL} for download.');
|
|
||||||
idpAddFileSize('{#VSTORURL}', GetVstorInstallerPath, 40123576);
|
|
||||||
end;
|
|
||||||
CreateDownloadInfoPage;
|
|
||||||
CreateInstallInfoPage;
|
|
||||||
idpDownloadAfter(PageDownloadInfo.Id);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ExecuteNetSetup(): boolean;
|
|
||||||
var
|
|
||||||
exitCode: integer;
|
|
||||||
begin
|
|
||||||
result := true;
|
|
||||||
if not IsNetInstalled then
|
|
||||||
begin
|
|
||||||
if IsNetDownloaded then
|
|
||||||
begin
|
|
||||||
Log('Valid .NET runtime download found, installing.');
|
|
||||||
Exec(GetNetInstallerPath, '/norestart',
|
|
||||||
'', SW_SHOW, ewWaitUntilTerminated, exitCode);
|
|
||||||
BringToFrontAndRestore;
|
|
||||||
if not IsNetInstalled then
|
|
||||||
begin
|
|
||||||
MsgBox(CustomMessage('StillNotInstalled'), mbInformation, MB_OK);
|
|
||||||
result := False;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('No or invalid .NET runtime download found, will not install.');
|
|
||||||
MsgBox(CustomMessage('DownloadNotValidated'), mbInformation, MB_OK);
|
|
||||||
result := False;
|
|
||||||
end;
|
|
||||||
end; // not IsNetInstalled
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ExecuteVstorSetup(): boolean;
|
|
||||||
var
|
|
||||||
exitCode: integer;
|
|
||||||
begin
|
|
||||||
result := true;
|
|
||||||
if NeedToInstallVstor then
|
|
||||||
begin
|
|
||||||
if IsVstorDownloaded then
|
|
||||||
begin
|
|
||||||
Log('Valid VSTO runtime download found, installing.');
|
|
||||||
Exec(GetVstorInstallerPath, '/norestart', '', SW_SHOW,
|
|
||||||
ewWaitUntilTerminated, exitCode);
|
|
||||||
BringToFrontAndRestore;
|
|
||||||
if not IsVstorInstalled then
|
|
||||||
begin
|
|
||||||
MsgBox(CustomMessage('StillNotInstalled'), mbInformation, MB_OK);
|
|
||||||
result := False;
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('No or invalid VSTO runtime download found, will not install.');
|
|
||||||
MsgBox(CustomMessage('DownloadNotValidated'), mbInformation, MB_OK);
|
|
||||||
result := False;
|
|
||||||
end;
|
|
||||||
end; // not IsVstorInstalled
|
|
||||||
end;
|
|
||||||
|
|
||||||
function NextButtonClick(CurPageID: Integer): Boolean;
|
|
||||||
begin
|
|
||||||
result := True;
|
|
||||||
{
|
|
||||||
if not WizardSilent then
|
|
||||||
begin
|
|
||||||
if CurPageID = PageDevelopmentInfo.Id then
|
|
||||||
begin
|
|
||||||
if PageDevelopmentInfo.Values[0] = False then
|
|
||||||
begin
|
|
||||||
Log('Requesting user to acknowledge use of a developmental version.');
|
|
||||||
MsgBox(CustomMessage('DevVerMsgBox'), mbInformation, MB_OK);
|
|
||||||
result := False;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if not PrerequisitesAreMet then
|
|
||||||
begin
|
|
||||||
// Abort the installation if any of the runtimes are missing, the user
|
|
||||||
// is not an administrator, and requested to abort the installation.
|
|
||||||
if CurPageID = PageCannotInstall.ID then
|
|
||||||
begin
|
|
||||||
if PageCannotInstall.Values[1] = true then
|
|
||||||
begin
|
|
||||||
WizardForm.Close;
|
|
||||||
result := False;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('Non-admin user continues although not all required runtimes are installed.');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if CurPageID = PageInstallInfo.ID then
|
|
||||||
begin
|
|
||||||
// Return true if installation succeeds (or no installation required)
|
|
||||||
result := ExecuteNetSetup and ExecuteVstorSetup;
|
|
||||||
end;
|
|
||||||
end; // not PrerequisitesAreMet
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Skips the folder selection, single/multi user, and ready pages for
|
|
||||||
/// normal users without power privileges.
|
|
||||||
/// This function also takes care of dynamically determining what wizard
|
|
||||||
/// pages to install, depending on the current system setup and whether
|
|
||||||
/// the current user is an administrator.
|
|
||||||
function ShouldSkipPage(PageID: Integer): Boolean;
|
|
||||||
begin
|
|
||||||
result := False;
|
|
||||||
|
|
||||||
if not PrerequisitesAreMet then
|
|
||||||
begin
|
|
||||||
// The PageDownloadCannotInstall will only have been initialized if
|
|
||||||
// PrerequisitesAreMet returned false.
|
|
||||||
if PageID = PageCannotInstall.ID then
|
|
||||||
begin
|
|
||||||
// Skip the warning if the user is an admin.
|
|
||||||
result := IsAdminLoggedOn
|
|
||||||
if not result then
|
|
||||||
begin
|
|
||||||
Log('Warning user that required runtimes cannot be installed due to missing privileges');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if PageID = PageDownloadInfo.ID then
|
|
||||||
begin
|
|
||||||
// Skip page informing about downloads if no files need to be downloaded.
|
|
||||||
result := idpFilesCount = 0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if PageID = IDPForm.Page.ID then
|
|
||||||
begin
|
|
||||||
// Skip downloader plugin if there are no files to download.
|
|
||||||
result := idpFilesCount = 0;
|
|
||||||
if not result then
|
|
||||||
begin
|
|
||||||
Log('Beginning download of ' + IntToStr(idpFilesCount) + ' file(s).');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end; // not PrerequisitesAreMet
|
|
||||||
|
|
||||||
if PageID = PageSingleOrMultiUser.ID then
|
|
||||||
begin
|
|
||||||
if IsOnlyWord2007Installed then
|
|
||||||
begin
|
|
||||||
Log('Only Word 2007 appears to be installed on this system.');
|
|
||||||
if IsHotfixInstalled then
|
|
||||||
begin
|
|
||||||
Log('Hotfix KB976477 found; can install for all users.');
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('Hotfix KB976477 not found; cannot install for all users.');
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('Word 2010 or newer found on this system.');
|
|
||||||
end;
|
|
||||||
if CanInstallSystemWide then
|
|
||||||
begin
|
|
||||||
Log('Offer installation for all users.');
|
|
||||||
result := False;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Log('Offer single-user installation only.');
|
|
||||||
result := True;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if (PageID = wpSelectDir) or (PageID = wpReady) then
|
|
||||||
begin
|
|
||||||
// Do not show the pages to select the target directory, and the ready
|
|
||||||
// page if the user is not an admin.
|
|
||||||
result := not IsAdminLoggedOn;
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Helper function that evaluates the custom PageSingleOrMultiUser page.
|
|
||||||
function IsMultiUserInstall(): Boolean;
|
|
||||||
begin
|
|
||||||
result := PageSingleOrMultiUser.Values[1];
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Suggest an initial target directory depending on whether
|
|
||||||
/// the installer is run with admin privileges.
|
|
||||||
function SuggestInstallDir(Param: string): string;
|
|
||||||
var
|
|
||||||
dir: string;
|
|
||||||
begin
|
|
||||||
if CanInstallSystemWide then
|
|
||||||
begin
|
|
||||||
dir := ExpandConstant('{pf}');
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
dir := ExpandConstant('{userappdata}');
|
|
||||||
end;
|
|
||||||
result := AddBackslash(dir) + 'zaaReloaded';
|
|
||||||
end;
|
|
||||||
|
|
||||||
/// Converts backslashes to forward slashes.
|
|
||||||
function ConvertSlash(Value: string): string;
|
|
||||||
begin
|
|
||||||
StringChangeEx(Value, '\', '/', True);
|
|
||||||
Result := Value;
|
|
||||||
end;
|
|
BIN
www/img/firstrun.png
Executable file
After Width: | Height: | Size: 21 KiB |
BIN
www/img/itemcomment.png
Executable file
After Width: | Height: | Size: 10 KiB |
BIN
www/img/itemcommentresult.png
Executable file
After Width: | Height: | Size: 23 KiB |
BIN
www/img/itemcommentview.png
Executable file
After Width: | Height: | Size: 6.6 KiB |
BIN
www/img/preferences.png
Executable file
After Width: | Height: | Size: 6.8 KiB |
BIN
www/img/ribbon.png
Normal file → Executable file
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 6.6 KiB |
465
www/index.html
@ -10,6 +10,10 @@
|
|||||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link href="css/jumbotron-narrow.css" rel="stylesheet">
|
<link href="css/jumbotron-narrow.css" rel="stylesheet">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
h5 { font-weight:bold; }
|
||||||
|
</style>
|
||||||
|
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
@ -18,19 +22,32 @@
|
|||||||
<![endif]-->
|
<![endif]-->
|
||||||
<title>zaaReloaded2</title>
|
<title>zaaReloaded2</title>
|
||||||
<meta name="author" content="Daniel Kraus">
|
<meta name="author" content="Daniel Kraus">
|
||||||
<meta name="descrption" content="Add-in für Microsoft Word 2010-2013,
|
<meta name="description" content="Add-in für Microsoft Word 2010-2013, das die Zentrale Arztbriefablage um Funktionen für das Formatieren von Laborwerten erweitert.">
|
||||||
das die Zentrale Arztbriefablage um Funktionen für das Formatieren von
|
|
||||||
Laborwerten erweitert.">
|
|
||||||
<link rel="icon" type="image/png" href="img/icon.png">
|
<link rel="icon" type="image/png" href="img/icon.png">
|
||||||
|
<style>
|
||||||
|
floatbox {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 0.5em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="header clearfix">
|
<div class="header clearfix">
|
||||||
<nav>
|
<nav>
|
||||||
<ul class="nav nav-pills pull-right">
|
<ul class="nav nav-pills pull-right">
|
||||||
|
<li>
|
||||||
|
<a href="#anleitung">Anleitung</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#anpassen">Anpassen</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="downloads/">Download</a>
|
<a href="downloads/">Download</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://git.bovender.de">Code</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="doc/">Code Docs</a>
|
<a href="doc/">Code Docs</a>
|
||||||
</li>
|
</li>
|
||||||
@ -55,181 +72,303 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h2 class="panel-title">Vorher</h2>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<img class="img-responsive center-block" src="img/vorher.png" alt="Vorher">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h2 class="panel-title">Nachher</h2>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<img class="img-responsive center-block" src="img/nachher.png" alt="Nachher">
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer">
|
|
||||||
<p>Am Beispiel des Ambulanz-Stils</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<h2 class="page-header">
|
<h2 class="page-header" id="anleitung">
|
||||||
<img class="pull-right img-responsive" src="img/ribbon.png" alt="zaaReloaded2-Ribbon" />
|
|
||||||
Anleitung
|
Anleitung
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
Laborwerte auf üblichem Wege in einen Arztbrief einfügen
|
|
||||||
(alternativ kann der Befehl "Demo" ausgeführt werden, dann wird
|
|
||||||
ein Beispieldokument mit Laborwerten geöffnet).
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<img class="pull-right img-responsive" src="img/stilauswahl.png" alt="Stil auswählen" />
|
|
||||||
Im zaaReloaded-Tab (s.o.) den linken Knopf "Formatieren"
|
|
||||||
klicken.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Beim ersten Mal erscheint eine Liste mit Stilen, aus der man den
|
|
||||||
gewünschten Stil auswählt (siehe Abbildung). Beim nächsten Mal,
|
|
||||||
wenn man auf diesen Knopf drückt, wird der zuletzt verwendete Stil
|
|
||||||
genommen.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Einen Moment warten... Voilà.
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2 class="page-header">
|
|
||||||
Updates
|
|
||||||
</h2>
|
|
||||||
<p>
|
|
||||||
Das Addin sucht täglich nach Updates und lädt und installiert
|
|
||||||
diese bei Bedarf im Hintergrund.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2 class="page-header">
|
|
||||||
Anpassen
|
|
||||||
</h2>
|
|
||||||
<p>
|
|
||||||
Das Addin enthält einen Stil-Editor, mit dem die eingebauten Stile
|
|
||||||
bearbeitet und neue Stile entworfen werden können:
|
|
||||||
</p>
|
|
||||||
<p class="text-center">
|
|
||||||
<img src="img/stilbearbeiten.png" alt="Stil bearbeiten" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p class="clearfix">
|
|
||||||
<img src="img/elementpicker.png" alt="Elemente" class="pull-right" />
|
|
||||||
Jeder Stil setzt sich aus sog. <i>Elementen</i> zusammen. Es gibt
|
|
||||||
<i>Steuerelemente</i>, die zum Beispiel für die Auswahl eines Tages
|
|
||||||
(erster Tag/letzter Tag) zuständig sind, und es gibt
|
|
||||||
<i>Ausgabeelemente</i>, die die eigentliche Formatierung und Ausgabe
|
|
||||||
der Laborwerte übernehmen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h3 class="panel-title">
|
|
||||||
Steuerelemente
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<ul>
|
|
||||||
<li>Ersten Tag auswählen</li>
|
|
||||||
<li>Letzten Tag auswählen</li>
|
|
||||||
<li>Jeden Tag nacheinander auswählen</li>
|
|
||||||
<li>Zwei Spalten einfügen/zur nächsten Spalte wechseln</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h3 class="panel-title">
|
|
||||||
Ausgabeelemente
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<ul>
|
|
||||||
<li>Laborparameter</li>
|
|
||||||
<li>Beliebiger Text</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<p>
|
|
||||||
"Beliebiger Text" kann, wie der Name schon sagt, beliebigen Text
|
|
||||||
enthalten, der nicht weiter bearbeitet wird. Auf diese Weise kann
|
|
||||||
man z.B. Platzhalter für Urinsedimente ausgeben lassen, die dann
|
|
||||||
noch händisch vervollständigt werden.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
"Laborparameter" enthalten eine durch Kommata getrennte Auflistung
|
|
||||||
von Parametern, die ausgegeben werden sollen. Jedes Element
|
|
||||||
"Laborparameter" kann optional einen Titel enthalten:
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Beispiel:
|
|
||||||
</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>
|
<p>
|
||||||
<img src="img/elementbearbeiten.png" alt="Element bearbeiten" />
|
<img class="center-block img-responsive" src="img/firstrun.png" alt="Begrüßungsfrage">
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Klinische Chemie: Na, K, Cl, (usw.)
|
Beim allerersten Mal, wenn das Add-in zusammen mit Word
|
||||||
|
gestartet wird, wird man gefragt, in welchem Modus das
|
||||||
|
Add-in operieren soll. Im <em>Ärztemodus</em> wird man ggf.
|
||||||
|
aufgefordert, Zusatzinformationen zu Laborparametern (z.B.
|
||||||
|
Ziel-Spiegel von Medikamenten) anzugeben; im
|
||||||
|
<em>Sekretariatsmodus</em> unterbleiben solche Nachfragen.
|
||||||
</p>
|
</p>
|
||||||
</blockquote>
|
|
||||||
<p>
|
<div class="panel panel-primary">
|
||||||
In diesem Fall ist "Klinische Chemie:" der optionale Titel.
|
<div class="panel-heading">
|
||||||
</p>
|
<h3 class="panel-title">
|
||||||
<p>
|
1. Labor einfügen
|
||||||
Die Bezeichnungen der einzelnen Parameter sind fest einprogrammiert.
|
</h3>
|
||||||
Teils decken sie sich mit den Bezeichnungen, wie sie in der
|
</div>
|
||||||
Zentralen Arztbriefablage erscheinen; teils sind sie aber auch
|
<div class="panel-body">
|
||||||
Surrogate (z.B. "eGFR (CKD-EPI)" anstatt "glomerul. Filtrationsr.
|
<p>
|
||||||
CKD-EP").
|
<img class="center-block img-responsive" src="img/vorher.png" alt="Vorher">
|
||||||
</p>
|
</p>
|
||||||
<p>
|
</div>
|
||||||
Die Platzhalter "SU-*", "U-*" und "*" geben die noch nicht
|
<div class="panel-footer">
|
||||||
verwendeten Werte für Sammelurin, Spontanurin und alles weitere aus.
|
<p>
|
||||||
"*" sollte daher als letztes verwendet werden.
|
Laborwerte auf üblichem Wege in einen Arztbrief einfügen
|
||||||
</p>
|
(alternativ kann der Befehl "Demo" ausgeführt werden,
|
||||||
<p>
|
dann wird ein Beispieldokument mit Laborwerten
|
||||||
Die Liste der möglichen Parameternamen ist momentan fest
|
geöffnet).
|
||||||
einprogrammiert und kann auch noch nicht angezeigt werden. Man kann
|
</p>
|
||||||
beim Entwickeln eines Stils aber probehalber den Platzhalter "*"
|
</div>
|
||||||
verwenden und sieht dann, welche Parameternamen noch verwendet
|
</div>
|
||||||
werden könnten.
|
|
||||||
</p>
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">
|
||||||
|
2. zaaReloaded-Funktion aufrufen
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
<img class="center-block img-responsive" src="img/ribbon.png" alt="zaaReloaded2-Ribbon">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<p>
|
||||||
|
Im zaaReloaded-Tab (s.o.) den linken Knopf "Formatieren"
|
||||||
|
klicken.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">
|
||||||
|
3. Ggf. Stil auswählen
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
<img class="center-block img-responsive" src="img/stilauswahl.png" alt="Stil auswählen">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<p>
|
||||||
|
Beim ersten Mal erscheint eine Liste mit Stilen, aus der
|
||||||
|
man den gewünschten Stil auswählt (siehe Abbildung).
|
||||||
|
Beim nächsten Mal, wenn man auf diesen Knopf drückt,
|
||||||
|
wird der zuletzt verwendete Stil genommen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">
|
||||||
|
4. Ggf. Kommentar ergänzen
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
<img class="center-block img-responsive" src="img/itemcommentview.png" alt="Kommentar eingeben">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<p>
|
||||||
|
Sofern der <em>Ärztemodus</em> eingestellt ist, können
|
||||||
|
für bestimmte Laborparameter Zusatzkommentare eingegeben
|
||||||
|
werden, z.B. um den Zielspiegelbereich eines
|
||||||
|
Medikamentes anzugeben.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Wenn man diesen Dialog mit "Abbrechen" oder
|
||||||
|
<kbd>ESC</kbd> beendet, erscheint ein gelb markierter
|
||||||
|
Hinweis im formatieren Laborblock.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Wenn man hingegen keinen Kommentartext eingibt, wird
|
||||||
|
kein Kommentar eingefügt, also auch das Präfix (hier
|
||||||
|
"(Ziel-Talspiegel:") und das Suffix (hier "µg/l)")
|
||||||
|
nicht.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">
|
||||||
|
5. Fertig!
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
<img class="center-block img-responsive" src="img/nachher.png" alt="Nachher">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<p>
|
||||||
|
Einen Moment warten... Voilà.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="page-header">
|
||||||
|
Updates
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Das Addin sucht täglich nach Updates und lädt und installiert
|
||||||
|
diese bei Bedarf im Hintergrund.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 class="page-header" id="anpassen">
|
||||||
|
Anpassen
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
zaaReloaded liest die Laborwerte aus einem Arztbrief ein,
|
||||||
|
analysiert sie, und gibt sie entsprechend einem vom Benutzer
|
||||||
|
programmierbaren Stil wieder aus.
|
||||||
|
</p>
|
||||||
|
<div class="panel panel-default col-lg-7 col-md-5 pull-right floatbox">
|
||||||
|
<div class="panel-body">
|
||||||
|
<img class="img-responsive center-block" src="img/stilbearbeiten.png" alt="Stil bearbeiten">
|
||||||
|
Screenshot des Stil-Editors
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
Das Addin enthält einen Stil-Editor, mit dem die eingebauten Stile
|
||||||
|
bearbeitet und neue Stile entworfen werden können. Stile
|
||||||
|
können importiert und exportiert werden.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Bei einem Stil kann definiert werden, ob pathologische
|
||||||
|
Laborwerte auf bestimmte Weise hervorgehoben werden sollen
|
||||||
|
(fett, kursiv, unterstrichen), und in welchen Situationen
|
||||||
|
der Referenzbereich ausgegeben werden soll: Niemals, immer
|
||||||
|
oder bei pathologischen Werten und/oder Parametern, die
|
||||||
|
intern als "speziell" markiert sind (<a href="#parameter">s.u.</a>).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Die Stile bestehen aus sogenannten Elementen, die der Reihe
|
||||||
|
nach abgearbeitet werden. Ein Element ist entweder ein
|
||||||
|
<em>Steuerelement</em> oder ein <em>Ausgabeelement</em>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Ausgabeelemente
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
<em>Ausgabeelemente</em> sind für die Ausgabe von Laborwerten
|
||||||
|
oder anderem Text zuständig. Ein Beliebiger-Text-Element gibt
|
||||||
|
ganz einfach den Text aus, den es enthält. Auf diese Weise
|
||||||
|
kann man z.B. zusätzliche Zeilen in die Laborausgabe einfügen
|
||||||
|
für Werte, die nicht aus dem Lauris übernommen werden, etwa
|
||||||
|
ein Nephrologisches Sediment, das dann noch händisch
|
||||||
|
vervollständigt werden muß.
|
||||||
|
</p>
|
||||||
|
<div class="panel panel-default col-lg-7 col-md-5 pull-right floatbox">
|
||||||
|
<div class="panel-body">
|
||||||
|
<img class="img-responsive center-block"
|
||||||
|
src="img/elementbearbeiten.png" alt="Laborparameter-Element bearbeiten">
|
||||||
|
Laborparameter-Ausgabeelement
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
Laborparameter-Element
|
||||||
|
</h4>
|
||||||
|
<p>
|
||||||
|
Die eigentliche Power des Add-ins liegt in
|
||||||
|
Laborparameter-Elementen. Jedes Element gibt einen Absatz mit
|
||||||
|
Laborwerten aus, die frei definiert werden können (vgl.
|
||||||
|
Abbbildung).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Man schreibt einfach die gewünschten Parameter durch Kommata
|
||||||
|
getrennt in das Eingabefeld. Optional kann man durch einen
|
||||||
|
Doppelpunkt getrennt eine Beschriftung voranstellen. In der
|
||||||
|
Abbildung ist das "Klinische Chemie".
|
||||||
|
</p>
|
||||||
|
<h5 id="parameter">
|
||||||
|
Parameter-Bezeichnungen
|
||||||
|
</h5>
|
||||||
|
<p>
|
||||||
|
zaaReloaded2 verwendet teilweise eigene Bezeichnungen für
|
||||||
|
Parameter, bspw. "Na" für Natrium, während in der originalen
|
||||||
|
Lauris-Ausgabe "Natrium" steht. Momentan gibt es noch keine
|
||||||
|
Möglichkeit, die bekannten Parameter im Add-in selbst
|
||||||
|
einzusehen; die Liste steht aber im Quellcode: <a
|
||||||
|
href="http://git.bovender.de/?p=zaaReloaded2.git;a=blob;f=zaaReloaded2/Defaults/parameters.txt"
|
||||||
|
target="_blank">git.bovender.de/.../paramteters.txt</a>. In
|
||||||
|
der Datei ist für manche Parameter auch die gewünschte Zahl
|
||||||
|
an Dezimalstellen hinterlegt sowie die Angabe, ob in der
|
||||||
|
Referenzbereich auch bei normalem Wert mit ausgeben werden
|
||||||
|
soll (abhängig von der Stil-Einstellung).
|
||||||
|
</p>
|
||||||
|
<h5>
|
||||||
|
Kommentare
|
||||||
|
</h5>
|
||||||
|
<p>
|
||||||
|
<img class="img-responsive center-block" src="img/itemcomment.png" alt="Parameter-Kommentar">
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Wenn hinter einem Parameter-Namen ein Text in
|
||||||
|
Anführungszeichen eingegeben wird, wird dieser Text als
|
||||||
|
<em>Kommentar</em> ausgewertet (siehe Abbildung oben). Beim
|
||||||
|
Formatieren wird dieser Kommentar mit einer
|
||||||
|
Eingabe-Aufforderung angezeigt, wobei der Text zwischen den
|
||||||
|
spitzen Klammern (im Beispiel "<*** BITTE ANGEBEN
|
||||||
|
***>") als Vorgabe verwendet wird (die spitzen Klammern
|
||||||
|
verschwinden natürlich):
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img class="img-responsive center-block" src="img/itemcommentview.png" alt="Eingabeaufforderung für Kommentar">
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
In den <em>Einstellungen</em> können die
|
||||||
|
Eingabe-Aufforderungen für Kommentare im Sinne eines
|
||||||
|
<em>Sekretariatsmodus</em> ausgeschaltet werden. Dann wird
|
||||||
|
der Kommentar in der Ausgabe <mark>gelb
|
||||||
|
hervorgehoben</mark>.
|
||||||
|
</p>
|
||||||
|
<h5>
|
||||||
|
Platzhalter
|
||||||
|
</h5>
|
||||||
|
<p>
|
||||||
|
Mittels <em>Platzhaltern</em> ("Jokern", "Wildcards") können
|
||||||
|
alle Laborwerte ausgegeben werden, die bis dahin noch nicht
|
||||||
|
explizit ausgewählt wurden. Wenn man "*" verwendet, werden
|
||||||
|
alle noch nicht selektierten Werte ausgegeben. Mit "U-*"
|
||||||
|
werden nur die noch nicht verwendeten Werte des Spot-Urins
|
||||||
|
ausgegeben und mit "SU-*" die noch nicht verwendeten Werte
|
||||||
|
des Sammelurins.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>
|
||||||
|
Beliebiger Text
|
||||||
|
</h4>
|
||||||
|
<p>
|
||||||
|
Das Ausgabe-Element "Beliebiger Text" macht genau das:
|
||||||
|
Beliebigen Text ausgeben, der nicht weiter bearbeitet wird.
|
||||||
|
Auf diese Weise kann man z.B. Platzhalter für Urinsedimente
|
||||||
|
ausgeben lassen, die dann noch händisch vervollständigt
|
||||||
|
werden müssen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
Steuerelemente
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Mit <em>Steuerelementen</em> kann z.B. die Auswahl eines Datums
|
||||||
|
für die Laborausgabe (erster/letzter Tag usw.) kontrolliert oder
|
||||||
|
auch der Dokumentfluß gesteuert werden, wobei bislang nur die
|
||||||
|
Ausgabe in zwei Spalten implementiert ist.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Steuerelemente zur Auswahl von bestimmten Daten
|
||||||
|
(erster/letzter Tag usw.) enthalten <em>Kindelemente</em>. Nur
|
||||||
|
Ausgabeelemente können Kindelemente sein. Ein Steuerelement
|
||||||
|
wählt die Laborwerte für das entsprechende Datum aus und
|
||||||
|
übergibt sie den Kindelementen, die die Laborwerte ausgeben.
|
||||||
|
Mit dem Steuerelement <em>Jeder Tag</em> werden alle
|
||||||
|
Laborwerte nach Kalendertagen sortiert, und die Kindelemente
|
||||||
|
geben die Werte für jeden Kalendertag aus.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<p>
|
<p>
|
||||||
© 2015 <a href="http://www.bovender.de">Daniel Kraus</a>
|
© 2015-2017 <a href="https://www.bovender.de">Daniel Kraus</a>
|
||||||
<span class="pull-right">
|
<span class="pull-right">
|
||||||
Handarbeit mit
|
Handarbeit mit
|
||||||
<a href="http://www.vim.org">
|
<a href="http://www.vim.org">
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
2.0.1
|
2.3.0
|
||||||
http://zaa.nephrowiki.de/downloads/zaaReloaded-2.0.1.exe
|
https://doktorkraus.de/zaareloaded/downloads/zaaReloaded-$VERSION.exe
|
||||||
96efab4fd34411f9cdd03b5d31ddcf4f6fe8b904 publish/release/zaaReloaded-2.0.1.exe
|
b91672aa1989b7dae8a77192983561b542b3b80fafad3a0d219f9cff5ddd1599 ../deploy/releases/zaaReloaded-2.3.0.exe
|
||||||
|
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 12.0.31101.0
|
VisualStudioVersion = 12.0.40629.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zaaReloaded2", "zaaReloaded2\zaaReloaded2.csproj", "{0478F1B0-17F2-4151-8F93-1CB6EB9732C5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zaaReloaded2", "zaaReloaded2\zaaReloaded2.csproj", "{0478F1B0-17F2-4151-8F93-1CB6EB9732C5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{529544E3-3C26-4688-B39D-04DA30F05E20}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{529544E3-3C26-4688-B39D-04DA30F05E20}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{386B2FA0-E39A-4BC4-930F-0BCF3787DC5E}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.nuget\packages.config = .nuget\packages.config
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
281
zaaReloaded2/Commands.cs
Executable file
@ -0,0 +1,281 @@
|
|||||||
|
using Bovender.Mvvm.Actions;
|
||||||
|
/* Commands.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Bovender.Extensions;
|
||||||
|
using zaaReloaded2.Controller;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
using zaaReloaded2.Formatter;
|
||||||
|
using zaaReloaded2.Importer.ZaaImporter;
|
||||||
|
using zaaReloaded2.ViewModels;
|
||||||
|
using zaaReloaded2.Views;
|
||||||
|
using Word = Microsoft.Office.Interop.Word;
|
||||||
|
|
||||||
|
namespace zaaReloaded2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
static class Commands
|
||||||
|
{
|
||||||
|
#region Command methods
|
||||||
|
|
||||||
|
public static void Format()
|
||||||
|
{
|
||||||
|
if (CanFormat())
|
||||||
|
{
|
||||||
|
SettingsRepository repository = SettingsRepository.Load();
|
||||||
|
Guid lastSettingsUid = UserSettings.Default.LastSettings;
|
||||||
|
Settings lastSettings = repository.FindByGuid(lastSettingsUid);
|
||||||
|
if (lastSettings != null)
|
||||||
|
{
|
||||||
|
DoFormat(lastSettings);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ChooseSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool CanFormat()
|
||||||
|
{
|
||||||
|
return Globals.ThisAddIn.Application.ActiveDocument != null;
|
||||||
|
//Word.Selection s = Globals.ThisAddIn.Application.ActiveWindow.Selection;
|
||||||
|
//return s.Paragraphs.Count > 1 ||
|
||||||
|
// (s.Text.Length > 1 && s.Text.EndsWith("\r"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ChooseSettings()
|
||||||
|
{
|
||||||
|
SettingsRepository repository = SettingsRepository.Load();
|
||||||
|
SettingsRepositoryViewModel vm = new SettingsRepositoryViewModel(repository);
|
||||||
|
vm.UseSettingsMessage.Sent += (sender, args) =>
|
||||||
|
{
|
||||||
|
SettingsViewModel settingsVM = args.Content.ViewModel as SettingsViewModel;
|
||||||
|
Settings settings = settingsVM.RevealModelObject() as Settings;
|
||||||
|
DoFormat(settings);
|
||||||
|
UserSettings.Default.LastSettings = settings.Uid;
|
||||||
|
};
|
||||||
|
vm.InjectInto<SettingsRepositoryView>().ShowDialogInForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads the embedded demo document.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// If Word is running in an embedded environment (e.g. in the ZAA),
|
||||||
|
/// adding a document causes a COMException. Unfortunately, it is
|
||||||
|
/// not trivial to test if Word is running embedded, so we use a
|
||||||
|
/// try...catch structure and catch all COMExceptions. The error
|
||||||
|
/// message might be not quite right if the exception was caused by
|
||||||
|
/// a different problem.
|
||||||
|
/// See http://davecra.com/2013/04/10/how-to-determine-if-an-excel-workbook-is-embedded-and-more
|
||||||
|
/// </remarks>
|
||||||
|
public static void LoadDemo()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Demo.Demo.OpenDemoDocument();
|
||||||
|
}
|
||||||
|
catch (System.Runtime.InteropServices.COMException e)
|
||||||
|
{
|
||||||
|
// HRESULT comparison according to http://stackoverflow.com/a/1426198/270712
|
||||||
|
// Fix for exception ID 65a5c34e
|
||||||
|
if (e.ErrorCode == unchecked((int)0x800A11FD))
|
||||||
|
{
|
||||||
|
NotificationAction a = new NotificationAction();
|
||||||
|
a.Caption = "Kann Demo-Dokument nicht laden";
|
||||||
|
a.Message = "Das Demo-Dokument kann nicht geladen werden, "
|
||||||
|
+ "wenn Word in der Zentralen Arztbriefablage ausgeführt wird.\r"
|
||||||
|
+ "Bitte Word als eigenständige Anwendung starten und dann "
|
||||||
|
+ "noch einmal versuchen.";
|
||||||
|
a.OkButtonText = "Schließen";
|
||||||
|
a.Invoke();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ShowAbout()
|
||||||
|
{
|
||||||
|
ViewModels.AboutViewModel vm = new ViewModels.AboutViewModel();
|
||||||
|
vm.InjectInto<Views.AboutView>().ShowDialogInForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ShowPreferences()
|
||||||
|
{
|
||||||
|
ViewModels.PreferencesViewModel vm = new PreferencesViewModel();
|
||||||
|
vm.InjectInto<Views.PreferencesView>().ShowDialogInForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ApplyDanielsStyle()
|
||||||
|
{
|
||||||
|
Formatter.DanielsStyle.Apply(
|
||||||
|
Globals.ThisAddIn.Application.ActiveDocument,
|
||||||
|
Globals.ThisAddIn.Application.Selection);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void FormatDrugs(int columns)
|
||||||
|
{
|
||||||
|
if (columns < 1 || columns > 2)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException("Can only format 1 or 2 columns, not " + columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no "real" selection exists, attempt to auto-detect the drugs section.
|
||||||
|
// (NB Technically, there is never _no_ selection in a document.)
|
||||||
|
Word.Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow;
|
||||||
|
Word.Selection sel = activeWindow.Selection;
|
||||||
|
Word.Paragraphs paragraphs = sel.Paragraphs;
|
||||||
|
Word.Document document = activeWindow.Document;
|
||||||
|
if (!(paragraphs.Count > 1
|
||||||
|
|| (sel.Text.Length > 1 && sel.Text.EndsWith("\r"))))
|
||||||
|
{
|
||||||
|
Logger.Info("FormatDrugs: Attempting to auto-detect");
|
||||||
|
if (!Medication.Importer.AutoDetect(document))
|
||||||
|
{
|
||||||
|
Logger.Info("FormatDrugs: Failed to auto-detect");
|
||||||
|
NotificationAction a = new NotificationAction();
|
||||||
|
a.Caption = "Formatieren nicht möglich";
|
||||||
|
a.Message = "Das Dokument scheint keine Medikationsliste zu enthalten.";
|
||||||
|
a.OkButtonText = "Schließen";
|
||||||
|
a.Invoke();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.Info("FormatDrugs: Importing");
|
||||||
|
Medication.Importer importer = new Medication.Importer(sel.Text);
|
||||||
|
Medication.Formatter formatter = new Medication.Formatter(importer.Prescriptions);
|
||||||
|
|
||||||
|
Logger.Info("FormatDrugs: Formatting");
|
||||||
|
switch (columns)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
formatter.FormatOneColumn(document);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
formatter.FormatTwoColumns(document);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Logger.Info("FormatDrugs: Cleaning up");
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(document);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(paragraphs);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(sel);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(activeWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Private methods
|
||||||
|
|
||||||
|
private static void DoFormat(Settings settings)
|
||||||
|
{
|
||||||
|
// If no "real" selection exists, attempt to auto-detect the lab data.
|
||||||
|
// (NB Technically, there is never _no_ selection in a document.)
|
||||||
|
Word.Application word = Globals.ThisAddIn.Application;
|
||||||
|
Word.Document activeDocument = word.ActiveDocument;
|
||||||
|
Word.Window activeWindow = word.ActiveWindow;
|
||||||
|
Word.Selection selection = activeWindow.Selection;
|
||||||
|
Word.Paragraphs paragraphs = selection.Paragraphs;
|
||||||
|
if (!(paragraphs.Count > 1
|
||||||
|
|| (selection.Text.Length > 1 && selection.Text.EndsWith("\r"))))
|
||||||
|
{
|
||||||
|
Logger.Info("DoFormat: Attempting to auto-detect");
|
||||||
|
Word.Document doc = activeWindow.Document;
|
||||||
|
if (!AutoDetect.Detect(doc))
|
||||||
|
{
|
||||||
|
Logger.Info("DoFormat: Automatic detection failed");
|
||||||
|
NotificationAction a = new NotificationAction();
|
||||||
|
a.Caption = "Formatieren nicht möglich";
|
||||||
|
a.Message = "Das Dokument scheint keine Lauris-Labordaten zu enthalten.";
|
||||||
|
a.OkButtonText = "Schließen";
|
||||||
|
a.Invoke();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Don't release the COM object here
|
||||||
|
// Bovender.ComHelpers.ReleaseComObject(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.Info("DoFormat: Importing");
|
||||||
|
ZaaImporter importer = new ZaaImporter();
|
||||||
|
importer.Import(selection.Text);
|
||||||
|
Formatter.Formatter formatter = new Formatter.Formatter(activeDocument);
|
||||||
|
|
||||||
|
formatter.Settings = settings;
|
||||||
|
formatter.Laboratory = importer.Laboratory;
|
||||||
|
CommentPool.Default.Reset();
|
||||||
|
CommentPool.Default.FillInComment += CommentPool_FillInComment;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Logger.Info("DoFormat: Formatting");
|
||||||
|
formatter.Run();
|
||||||
|
}
|
||||||
|
catch (NoLaboratoryDataException e)
|
||||||
|
{
|
||||||
|
Logger.Warn("DoFormat: No lab data?!");
|
||||||
|
Logger.Warn(e);
|
||||||
|
NotificationAction a = new NotificationAction();
|
||||||
|
a.Caption = "Formatieren nicht möglich";
|
||||||
|
a.Message = "Die aktuelle Markierung scheint keine Labordaten zu enthalten.";
|
||||||
|
a.OkButtonText = "Schließen";
|
||||||
|
a.Invoke();
|
||||||
|
}
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(paragraphs);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(selection);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(activeWindow);
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(activeDocument);
|
||||||
|
Logger.Info("DoFormat: Finished");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CommentPool_FillInComment(object sender, ItemCommentEventArgs e)
|
||||||
|
{
|
||||||
|
if (UserSettings.Default.SuppressItemCommentInteraction)
|
||||||
|
{
|
||||||
|
Logger.Info("CommentPool_FillInComment: Comment interaction is suppressed by user settings");
|
||||||
|
e.Comment.IsCancelled = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Info("CommentPool_FillInComment: Requesting user interaction");
|
||||||
|
ItemCommentViewModel vm = new ItemCommentViewModel(e.Comment);
|
||||||
|
vm.InjectInto<ItemCommentView>().ShowDialogInForm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Class logger
|
||||||
|
|
||||||
|
private static NLog.Logger Logger { get { return _logger.Value; } }
|
||||||
|
|
||||||
|
private static readonly Lazy<NLog.Logger> _logger = new Lazy<NLog.Logger>(() => NLog.LogManager.GetCurrentClassLogger());
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
144
zaaReloaded2/Controller/Comments/CommentPool.cs
Executable file
@ -0,0 +1,144 @@
|
|||||||
|
/* CommentPool.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace zaaReloaded2.Controller.Comments
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A pool of comments.
|
||||||
|
/// </summary>
|
||||||
|
class CommentPool
|
||||||
|
{
|
||||||
|
#region Singleton
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the singleton instance of the CommentPool.
|
||||||
|
/// </summary>
|
||||||
|
public static CommentPool Default
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static readonly CommentPool _instance = new CommentPool();
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the number of ItemComments in the pool.
|
||||||
|
/// </summary>
|
||||||
|
public int Count { get { return _itemComments.Count; } }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Event
|
||||||
|
|
||||||
|
public event EventHandler<ItemCommentEventArgs> FillInComment;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructor
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Static constructor to support the singleton implementation.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// See http://csharpindepth.com/Articles/General/Singleton.aspx#cctor
|
||||||
|
/// </remarks>
|
||||||
|
static CommentPool() { }
|
||||||
|
|
||||||
|
private CommentPool()
|
||||||
|
{
|
||||||
|
_itemComments = new List<ItemComment>();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clear the pool of ItemComments and sets the event handler
|
||||||
|
/// to null.
|
||||||
|
/// </summary>
|
||||||
|
public void Reset()
|
||||||
|
{
|
||||||
|
_itemComments.Clear();
|
||||||
|
FillInComment = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the ItemComment for a given definitionString;
|
||||||
|
/// creates a new ItemComment object if necessary.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="definitionString"></param>
|
||||||
|
/// <returns>ItemComment derived from the
|
||||||
|
/// <paramref name="definitionString"/></returns>
|
||||||
|
public ItemComment GetCommentFor(string definitionString)
|
||||||
|
{
|
||||||
|
ItemComment itemComment = _itemComments.FirstOrDefault(
|
||||||
|
i => i.Definition == definitionString);
|
||||||
|
if (itemComment == null)
|
||||||
|
{
|
||||||
|
itemComment = ItemComment.FromDefinitionString(definitionString);
|
||||||
|
if (itemComment != null)
|
||||||
|
{
|
||||||
|
_itemComments.Add(itemComment);
|
||||||
|
itemComment.FillInComment += itemComment_FillInComment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return itemComment;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Private methods
|
||||||
|
|
||||||
|
protected virtual void itemComment_FillInComment(object sender, ItemCommentEventArgs e)
|
||||||
|
{
|
||||||
|
OnFillInComment(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Protected methods
|
||||||
|
|
||||||
|
protected virtual void OnFillInComment(ItemCommentEventArgs args)
|
||||||
|
{
|
||||||
|
EventHandler<ItemCommentEventArgs> h = FillInComment;
|
||||||
|
if (h != null)
|
||||||
|
{
|
||||||
|
h(this, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Fields
|
||||||
|
|
||||||
|
List<ItemComment> _itemComments;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
220
zaaReloaded2/Controller/Comments/ItemComment.cs
Executable file
@ -0,0 +1,220 @@
|
|||||||
|
/* ParameterComment.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace zaaReloaded2.Controller.Comments
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents an optional comment for a laboratory item.
|
||||||
|
/// The zaaReloaded2.Controller.Elements.Items class can
|
||||||
|
/// parse these optional comment strings which may be used
|
||||||
|
/// to prompt users to enter target ranges etc.
|
||||||
|
/// </summary>
|
||||||
|
/// <example>
|
||||||
|
/// TAC "(Zielspiegel: <8-10> µg/l)"
|
||||||
|
/// </example>
|
||||||
|
/// <remarks>
|
||||||
|
/// In the example, the tacrolimus trough level TAC carries a comment about the
|
||||||
|
/// recommended range. The comment must be enclosed in quotes in order for it
|
||||||
|
/// to be recognized. The quotes will be stripped. The angle brackets denote
|
||||||
|
/// a place holder that will be replaced by the comment that is set in the
|
||||||
|
/// RequestParameterComment's event args. The text between the angle brackets
|
||||||
|
/// ("8-10") is an optional default value. One could also just use 'empty'
|
||||||
|
/// brackets ("<>").
|
||||||
|
/// </remarks>
|
||||||
|
public class ItemComment
|
||||||
|
{
|
||||||
|
#region Factory
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a new ItemComment object from a definition string.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="definitionString">String that complies
|
||||||
|
/// with the definition pattern (item "optional prefix <optional
|
||||||
|
/// default value> optioal suffix").</param>
|
||||||
|
public static ItemComment FromDefinitionString(string definitionString)
|
||||||
|
{
|
||||||
|
Match match = _definition.Match(definitionString);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
return new ItemComment(
|
||||||
|
definitionString,
|
||||||
|
match.Groups["item"].Value.Trim(),
|
||||||
|
match.Groups["prefix"].Value,
|
||||||
|
match.Groups["value"].Value,
|
||||||
|
match.Groups["suffix"].Value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the item name that this comment is for.
|
||||||
|
/// </summary>
|
||||||
|
public string Item { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Prefix of this comment, e.g. "(target trough level: "
|
||||||
|
/// </summary>
|
||||||
|
public string Prefix { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Value of this comment; String.Empty represents a
|
||||||
|
/// cancelled comment.
|
||||||
|
/// </summary>
|
||||||
|
public string Value { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Suffix of this comment, e.g. " µg/l)"
|
||||||
|
/// </summary>
|
||||||
|
public string Suffix { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the original definition string that this ItemComment
|
||||||
|
/// was created from.
|
||||||
|
/// </summary>
|
||||||
|
public string Definition { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets whether this comment has been cancelled.mo
|
||||||
|
/// </summary>
|
||||||
|
public bool IsCancelled { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Event
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event that is raised when the comment value needs to be
|
||||||
|
/// filled in by someone or something.
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<ItemCommentEventArgs> FillInComment;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
|
public ItemComment()
|
||||||
|
{
|
||||||
|
Item = String.Empty;
|
||||||
|
Prefix = String.Empty;
|
||||||
|
Value = String.Empty;
|
||||||
|
Suffix = String.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemComment(string item, string prefix, string value, string suffix)
|
||||||
|
: this()
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
Prefix = prefix;
|
||||||
|
Value = value;
|
||||||
|
Suffix = suffix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemComment(string definition, string item, string prefix, string value, string suffix)
|
||||||
|
: this(item, prefix, value, suffix)
|
||||||
|
{
|
||||||
|
Definition = definition;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Builds the comment string from the prefix, the value, and
|
||||||
|
/// the suffix. Raises the FillInComment event to get the value
|
||||||
|
/// first. If the value is an empty string, the entire comment
|
||||||
|
/// string will be an empty string.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Comment string with filled-in value, or String.Empty
|
||||||
|
/// if the value is an empty string.</returns>
|
||||||
|
public string BuildComment()
|
||||||
|
{
|
||||||
|
OnFillInComment();
|
||||||
|
|
||||||
|
string value = Value;
|
||||||
|
if (String.IsNullOrEmpty(value))
|
||||||
|
{
|
||||||
|
// If the comment was not cancelled and an empty
|
||||||
|
// value was deliberately entered, return an
|
||||||
|
// empty string.
|
||||||
|
if (!IsCancelled)
|
||||||
|
{
|
||||||
|
return String.Empty;
|
||||||
|
}
|
||||||
|
// If the comment was cancelled and the default
|
||||||
|
// value is an empty string, insert a prompt
|
||||||
|
// to manually enter the comment.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
value = Properties.Settings.Default.ManualCommentPrompt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsCancelled)
|
||||||
|
{
|
||||||
|
return Prefix + value + Suffix;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Prefix + "<highlight>" + value + "</highlight>" + Suffix;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Private methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Raises the FillInComment event.
|
||||||
|
/// </summary>
|
||||||
|
protected virtual void OnFillInComment()
|
||||||
|
{
|
||||||
|
if (_isFilledIn) return;
|
||||||
|
|
||||||
|
EventHandler<ItemCommentEventArgs> h = FillInComment;
|
||||||
|
if (h != null)
|
||||||
|
{
|
||||||
|
_isFilledIn = true;
|
||||||
|
h(this, new ItemCommentEventArgs(this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Fields
|
||||||
|
|
||||||
|
bool _isFilledIn;
|
||||||
|
static readonly Regex _definition =
|
||||||
|
new Regex(@"(?<item>[^""]+)""(?<prefix>[^<]+)?<(?<value>[^>]*)>(?<suffix>[^""]+)?""");
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
49
zaaReloaded2/Controller/Comments/ItemCommentEventArgs.cs
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
/* ParameterCommentEventArgs.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace zaaReloaded2.Controller.Comments
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Event arguments used in item commenting.
|
||||||
|
/// </summary>
|
||||||
|
public class ItemCommentEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
#region Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the comment object for this parameter.
|
||||||
|
/// </summary>
|
||||||
|
public ItemComment Comment { get; private set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructor
|
||||||
|
|
||||||
|
public ItemCommentEventArgs(
|
||||||
|
ItemComment comment)
|
||||||
|
{
|
||||||
|
Comment = comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
@ -2,7 +2,7 @@
|
|||||||
/* ControlElementBase.cs
|
/* ControlElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Text.cs
|
/* Text.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -29,6 +29,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class CustomText : FormatElementBase, ISerializable
|
public class CustomText : FormatElementBase, ISerializable
|
||||||
{
|
{
|
||||||
|
[YamlDotNet.Serialization.YamlIgnore]
|
||||||
public override string Label
|
public override string Label
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ElementBase.cs
|
/* ElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -33,6 +33,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns the label for this formatting element.
|
/// Returns the label for this formatting element.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[YamlDotNet.Serialization.YamlIgnore]
|
||||||
abstract public string Label { get; }
|
abstract public string Label { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* FormatElementBase.cs
|
/* FormatElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Items.cs
|
/* Items.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -24,6 +24,7 @@ using Microsoft.Office.Interop.Word;
|
|||||||
using zaaReloaded2.LabModel;
|
using zaaReloaded2.LabModel;
|
||||||
using zaaReloaded2.Formatter;
|
using zaaReloaded2.Formatter;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
|
||||||
namespace zaaReloaded2.Controller.Elements
|
namespace zaaReloaded2.Controller.Elements
|
||||||
{
|
{
|
||||||
@ -36,6 +37,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
{
|
{
|
||||||
#region ElementBase implementation
|
#region ElementBase implementation
|
||||||
|
|
||||||
|
[YamlDotNet.Serialization.YamlIgnore]
|
||||||
public override string Label
|
public override string Label
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@ -123,7 +125,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
{
|
{
|
||||||
_items = null;
|
_items = null;
|
||||||
_caption = null;
|
_caption = null;
|
||||||
Regex r = new Regex(@"((?<caption>[^:]+):\s*)?((?<items>[^,]+),\s*)*(?<items>[^,]+)");
|
Regex r = new Regex(@"((?<caption>[^:""]+):\s*)?((?<items>[^,]+),\s*)*(?<items>[^,]+)");
|
||||||
Match m = r.Match(Content);
|
Match m = r.Match(Content);
|
||||||
if (m.Success)
|
if (m.Success)
|
||||||
{
|
{
|
||||||
@ -186,9 +188,20 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Collects items for output by name.
|
/// Collects items for output by name.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">Item name to look for.</param>
|
/// <param name="name">Item name to look for. If the item name contains
|
||||||
|
/// a comment definition (see example in the description of the
|
||||||
|
/// <see cref="RequestParameterComment"/> event), </param>
|
||||||
List<ItemFormatter> CollectByName(zaaReloaded2.Formatter.Formatter formatter, string name)
|
List<ItemFormatter> CollectByName(zaaReloaded2.Formatter.Formatter formatter, string name)
|
||||||
{
|
{
|
||||||
|
// First, check if the item name contains an optional comment
|
||||||
|
// definition
|
||||||
|
ItemComment comment = CommentPool.Default.GetCommentFor(name);
|
||||||
|
if (comment != null)
|
||||||
|
{
|
||||||
|
name = comment.Item;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Then, see if we have such an item
|
||||||
List<ItemFormatter> items = new List<ItemFormatter>();
|
List<ItemFormatter> items = new List<ItemFormatter>();
|
||||||
TimePointFormatter tpf = formatter.WorkingTimePoints
|
TimePointFormatter tpf = formatter.WorkingTimePoints
|
||||||
.FirstOrDefault(tp => tp.Value.ContainsItem(name))
|
.FirstOrDefault(tp => tp.Value.ContainsItem(name))
|
||||||
@ -200,6 +213,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
ItemFormatter i = tpf.ItemFormatters[name];
|
ItemFormatter i = tpf.ItemFormatters[name];
|
||||||
i.HasBeenUsed = true;
|
i.HasBeenUsed = true;
|
||||||
i.IncludeMaterial = false;
|
i.IncludeMaterial = false;
|
||||||
|
i.Comment = comment;
|
||||||
items.Add(i);
|
items.Add(i);
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
@ -211,7 +225,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
|
|
||||||
string _caption;
|
string _caption;
|
||||||
List<string> _items;
|
List<string> _items;
|
||||||
static Regex _wildcard = new Regex(@"(?<material>[^-]+-)?\*");
|
static readonly Regex _wildcard = new Regex(@"^(?<material>[^-]+-)?\*$");
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* NextColumn.cs
|
/* NextColumn.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectEachDay.cs
|
/* SelectEachDay.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -26,6 +26,7 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class SelectEachDay : ControlElementBase
|
public class SelectEachDay : ControlElementBase
|
||||||
{
|
{
|
||||||
|
[YamlDotNet.Serialization.YamlIgnore]
|
||||||
public override string Label
|
public override string Label
|
||||||
{
|
{
|
||||||
get { return "Jeder Tag"; }
|
get { return "Jeder Tag"; }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDay.cs
|
/* SelectFirstDay.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDay - Copy.cs
|
/* SelectFirstDay - Copy.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TwoColumns.cs
|
/* TwoColumns.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Settings.cs
|
/* Settings.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -25,6 +25,7 @@ using System.IO;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
using System.Runtime.Serialization.Formatters.Soap;
|
using System.Runtime.Serialization.Formatters.Soap;
|
||||||
|
using YamlDotNet.Serialization;
|
||||||
|
|
||||||
namespace zaaReloaded2.Controller
|
namespace zaaReloaded2.Controller
|
||||||
{
|
{
|
||||||
@ -45,9 +46,22 @@ namespace zaaReloaded2.Controller
|
|||||||
/// SOAP XML that can be deserialized to a Settings object.</exception>
|
/// SOAP XML that can be deserialized to a Settings object.</exception>
|
||||||
public static Settings LoadFromFile(string fileName)
|
public static Settings LoadFromFile(string fileName)
|
||||||
{
|
{
|
||||||
|
Logger.Info("LoadFromFile: {0}", fileName);
|
||||||
StreamReader reader = new StreamReader(fileName);
|
StreamReader reader = new StreamReader(fileName);
|
||||||
SoapFormatter formatter = new SoapFormatter();
|
Deserializer deserializer = new DeserializerBuilder().Build();
|
||||||
Settings settings = formatter.Deserialize(reader.BaseStream) as Settings;
|
Settings settings;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
settings = deserializer.Deserialize<Settings>(reader);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logger.Fatal("LoadFromFile: Exception during deserialization");
|
||||||
|
Logger.Fatal(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
// SoapFormatter formatter = new SoapFormatter();
|
||||||
|
// Settings settings = formatter.Deserialize(reader.BaseStream) as Settings;
|
||||||
if (settings == null)
|
if (settings == null)
|
||||||
{
|
{
|
||||||
throw new InvalidDataException("Datei enthält keine Stil-Daten oder ist beschädigt.");
|
throw new InvalidDataException("Datei enthält keine Stil-Daten oder ist beschädigt.");
|
||||||
@ -62,9 +76,16 @@ namespace zaaReloaded2.Controller
|
|||||||
/// <param name="fileName">File to write to.</param>
|
/// <param name="fileName">File to write to.</param>
|
||||||
public void SaveToFile(string fileName)
|
public void SaveToFile(string fileName)
|
||||||
{
|
{
|
||||||
StreamWriter writer = new StreamWriter(fileName);
|
Logger.Info("SaveToFile: {0}", fileName);
|
||||||
SoapFormatter formatter = new SoapFormatter();
|
using (StreamWriter writer = new StreamWriter(fileName))
|
||||||
formatter.Serialize(writer.BaseStream, this);
|
{
|
||||||
|
Serializer serializer = new SerializerBuilder()
|
||||||
|
//.EnsureRoundtrip()
|
||||||
|
.Build();
|
||||||
|
serializer.Serialize(writer, this);
|
||||||
|
}
|
||||||
|
// SoapFormatter formatter = new SoapFormatter();
|
||||||
|
// formatter.Serialize(writer.BaseStream, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -87,6 +108,11 @@ namespace zaaReloaded2.Controller
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public AbnormalStyle AbnormalStyle { get; set; }
|
public AbnormalStyle AbnormalStyle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates whether to prefer the more verbose "mmol/l" over "mM".
|
||||||
|
/// </summary>
|
||||||
|
public bool PreferVerboseMolar { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the list of controlling elements.
|
/// Gets the list of controlling elements.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -238,5 +264,13 @@ namespace zaaReloaded2.Controller
|
|||||||
static readonly Regex _persistenceHeaderRegex = new Regex(@"^\[(?<name>.+?)]$");
|
static readonly Regex _persistenceHeaderRegex = new Regex(@"^\[(?<name>.+?)]$");
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Class logger
|
||||||
|
|
||||||
|
private static NLog.Logger Logger { get { return _logger.Value; } }
|
||||||
|
|
||||||
|
private static readonly Lazy<NLog.Logger> _logger = new Lazy<NLog.Logger>(() => NLog.LogManager.GetCurrentClassLogger());
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepository.cs
|
/* SettingsRepository.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -59,20 +59,13 @@ namespace zaaReloaded2.Controller
|
|||||||
/// </remarks>
|
/// </remarks>
|
||||||
public static SettingsRepository Load()
|
public static SettingsRepository Load()
|
||||||
{
|
{
|
||||||
string s = Properties.Settings.Default.SettingsRepository;
|
SettingsRepository repo = UserSettings.Default.SettingsRepository;
|
||||||
if (String.IsNullOrEmpty(s))
|
if (repo == null)
|
||||||
{
|
{
|
||||||
return new SettingsRepository();
|
return new SettingsRepository();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MemoryStream stream = new MemoryStream();
|
|
||||||
string encoded = Properties.Settings.Default.SettingsRepository;
|
|
||||||
byte[] bytes = Convert.FromBase64String(encoded);
|
|
||||||
stream.Write(bytes, 0, bytes.Length);
|
|
||||||
stream.Position = 0;
|
|
||||||
SoapFormatter serializer = new SoapFormatter();
|
|
||||||
SettingsRepository repo = serializer.Deserialize(stream) as SettingsRepository;
|
|
||||||
repo.LoadDefaults();
|
repo.LoadDefaults();
|
||||||
return repo;
|
return repo;
|
||||||
}
|
}
|
||||||
@ -89,13 +82,7 @@ namespace zaaReloaded2.Controller
|
|||||||
/// </remarks>
|
/// </remarks>
|
||||||
public void Store()
|
public void Store()
|
||||||
{
|
{
|
||||||
MemoryStream stream = new MemoryStream();
|
UserSettings.Default.SettingsRepository = this;
|
||||||
SoapFormatter serializer = new SoapFormatter();
|
|
||||||
serializer.Serialize(stream, this);
|
|
||||||
stream.Position = 0;
|
|
||||||
string encoded = Convert.ToBase64String(stream.ToArray());
|
|
||||||
Properties.Settings.Default.SettingsRepository = encoded;
|
|
||||||
Properties.Settings.Default.Save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -196,18 +183,24 @@ namespace zaaReloaded2.Controller
|
|||||||
private void LoadDefaults()
|
private void LoadDefaults()
|
||||||
{
|
{
|
||||||
Assembly myAssembly = this.GetType().Assembly;
|
Assembly myAssembly = this.GetType().Assembly;
|
||||||
SoapFormatter deserializer = new SoapFormatter();
|
// SoapFormatter deserializer = new SoapFormatter();
|
||||||
Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded");
|
var deserializer = new YamlDotNet.Serialization.DeserializerBuilder().Build();
|
||||||
Settings settings = deserializer.Deserialize(stream) as Settings;
|
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded2"))
|
||||||
settings.Name = Properties.Settings.Default.SettingsNameWard + BUILTIN_LABEL;
|
{
|
||||||
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_1_UID);
|
StreamReader reader = new StreamReader(stream);
|
||||||
ReplaceOrAdd(settings);
|
Settings settings = deserializer.Deserialize<Settings>(reader);
|
||||||
|
settings.Name = Properties.Settings.Default.SettingsNameWard + BUILTIN_LABEL;
|
||||||
stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded");
|
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_1_UID);
|
||||||
settings = deserializer.Deserialize(stream) as Settings;
|
ReplaceOrAdd(settings);
|
||||||
settings.Name = Properties.Settings.Default.SettingsNameClinic + BUILTIN_LABEL;
|
}
|
||||||
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_2_UID);
|
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded2"))
|
||||||
ReplaceOrAdd(settings);
|
{
|
||||||
|
StreamReader reader = new StreamReader(stream);
|
||||||
|
Settings settings = deserializer.Deserialize<Settings>(reader);
|
||||||
|
settings.Name = Properties.Settings.Default.SettingsNameClinic + BUILTIN_LABEL;
|
||||||
|
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_2_UID);
|
||||||
|
ReplaceOrAdd(settings);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReplaceOrAdd(Settings settings)
|
private void ReplaceOrAdd(Settings settings)
|
||||||
|
@ -1,177 +0,0 @@
|
|||||||
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
|
|
||||||
<SOAP-ENV:Body>
|
|
||||||
<a1:Settings id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Uid xsi:type="a2:Guid" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<_a>1173493659</_a>
|
|
||||||
<_b>4743</_b>
|
|
||||||
<_c>20075</_c>
|
|
||||||
<_d>156</_d>
|
|
||||||
<_e>83</_e>
|
|
||||||
<_f>220</_f>
|
|
||||||
<_g>163</_g>
|
|
||||||
<_h>70</_h>
|
|
||||||
<_i>3</_i>
|
|
||||||
<_j>116</_j>
|
|
||||||
<_k>11</_k>
|
|
||||||
</Uid>
|
|
||||||
<Name id="ref-3">Kopie von Standard für NepA</Name>
|
|
||||||
<ReferenceStyle xsi:type="a3:ReferenceStyle" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Formatter/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">IfSpecialItem</ReferenceStyle>
|
|
||||||
<AbnormalStyle xsi:type="a3:AbnormalStyle" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Formatter/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">None</AbnormalStyle>
|
|
||||||
<ElementsCount>1</ElementsCount>
|
|
||||||
<Element0Type href="#ref-4"/>
|
|
||||||
<Element0Object href="#ref-5"/>
|
|
||||||
</a1:Settings>
|
|
||||||
<a2:UnitySerializationHolder id="ref-4" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-6">zaaReloaded2.Controller.Elements.SelectEachDay</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName id="ref-7">zaaReloaded2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ec8d075a1ab1383</AssemblyName>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:SelectEachDay id="ref-5" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<ChildrenCount>22</ChildrenCount>
|
|
||||||
<Child0Type href="#ref-8"/>
|
|
||||||
<Child0Object href="#ref-9"/>
|
|
||||||
<Child1Type href="#ref-8"/>
|
|
||||||
<Child1Object href="#ref-10"/>
|
|
||||||
<Child2Type href="#ref-8"/>
|
|
||||||
<Child2Object href="#ref-11"/>
|
|
||||||
<Child3Type href="#ref-8"/>
|
|
||||||
<Child3Object href="#ref-12"/>
|
|
||||||
<Child4Type href="#ref-8"/>
|
|
||||||
<Child4Object href="#ref-13"/>
|
|
||||||
<Child5Type href="#ref-8"/>
|
|
||||||
<Child5Object href="#ref-14"/>
|
|
||||||
<Child6Type href="#ref-8"/>
|
|
||||||
<Child6Object href="#ref-15"/>
|
|
||||||
<Child7Type href="#ref-8"/>
|
|
||||||
<Child7Object href="#ref-16"/>
|
|
||||||
<Child8Type href="#ref-8"/>
|
|
||||||
<Child8Object href="#ref-17"/>
|
|
||||||
<Child9Type href="#ref-8"/>
|
|
||||||
<Child9Object href="#ref-18"/>
|
|
||||||
<Child10Type href="#ref-8"/>
|
|
||||||
<Child10Object href="#ref-19"/>
|
|
||||||
<Child11Type href="#ref-8"/>
|
|
||||||
<Child11Object href="#ref-20"/>
|
|
||||||
<Child12Type href="#ref-8"/>
|
|
||||||
<Child12Object href="#ref-21"/>
|
|
||||||
<Child13Type href="#ref-8"/>
|
|
||||||
<Child13Object href="#ref-22"/>
|
|
||||||
<Child14Type href="#ref-8"/>
|
|
||||||
<Child14Object href="#ref-23"/>
|
|
||||||
<Child15Type href="#ref-8"/>
|
|
||||||
<Child15Object href="#ref-24"/>
|
|
||||||
<Child16Type href="#ref-8"/>
|
|
||||||
<Child16Object href="#ref-25"/>
|
|
||||||
<Child17Type href="#ref-8"/>
|
|
||||||
<Child17Object href="#ref-26"/>
|
|
||||||
<Child18Type href="#ref-27"/>
|
|
||||||
<Child18Object href="#ref-28"/>
|
|
||||||
<Child19Type href="#ref-27"/>
|
|
||||||
<Child19Object href="#ref-29"/>
|
|
||||||
<Child20Type href="#ref-27"/>
|
|
||||||
<Child20Object href="#ref-30"/>
|
|
||||||
<Child21Type href="#ref-8"/>
|
|
||||||
<Child21Object href="#ref-31"/>
|
|
||||||
</a4:SelectEachDay>
|
|
||||||
<a2:UnitySerializationHolder id="ref-8" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-32">zaaReloaded2.Controller.Elements.Items</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-7"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:Items id="ref-9" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-33">Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-10" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-34">Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-11" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-35">Kardiale Marker: CK, CKMB, Trop, NTproBNP</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-12" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-36">Niere: Krea, Hst, eGFR (CKD-EPI)</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-13" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-37">Sammelurin: SU-Proteinurie, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Natrium, SU-Zeit, SU-Volumen</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-14" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-38">Spot-Urin: U-TPCR, U-ACR, U-Ery, U-Leu, U-Bakt</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-15" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-39">Leber: GOT, GGT, GPT, AP, Bilirubin, CHE</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-16" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-40">Blutfette: TG, Chol, LDL, HDL, Lp(a)</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-17" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-41">Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-18" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-42">Diff.-BB: Neu, Lym, Mon, Baso, Eos</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-19" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-43">Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-20" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-44">Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-21" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-45">Hormone: iPTH, TSH, fT3, fT4</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-22" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-46">Vitamine: B12, Folsäure</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-23" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-47">Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-24" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-48">BGA: pH, Std.-Bic., BE</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-25" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-49">Hepatitis-Serologie: Anti-HBs, Anti-HBc</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-26" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-50">Medikamente: TAC, CSA (C0), SIR, Vancomycin, Gentamicin, Tobramicin</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a2:UnitySerializationHolder id="ref-27" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-51">zaaReloaded2.Controller.Elements.CustomText</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-7"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:CustomText id="ref-28" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-52">Virologie (EDTA-Blut): CMV-PCR, BKV-PCR</Content>
|
|
||||||
</a4:CustomText>
|
|
||||||
<a4:CustomText id="ref-29" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-53">Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden</Content>
|
|
||||||
</a4:CustomText>
|
|
||||||
<a4:CustomText id="ref-30" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-54">Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)</Content>
|
|
||||||
</a4:CustomText>
|
|
||||||
<a4:Items id="ref-31" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>2</Version>
|
|
||||||
<Content id="ref-55">Tumormarker: PSA</Content>
|
|
||||||
</a4:Items>
|
|
||||||
</SOAP-ENV:Body>
|
|
||||||
</SOAP-ENV:Envelope>
|
|
51
zaaReloaded2/Defaults/clinic.zaaReloaded2
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
!zaaReloaded2.Controller.Settings,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Name: Kopie von Standard für NepA
|
||||||
|
ReferenceStyle: IfSpecialItem
|
||||||
|
Elements: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.ElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
|
- !zaaReloaded2.Controller.Elements.SelectEachDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Kardiale Marker: CK, CK-MB, hsTnT, NT-proBNP'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt, U-Schwangerschaftstest'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE, CDT'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hormone: iPTH, TSH, fT3, fT4, Aldosteron, Renin, ARQ'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Tumormarker: PSA, AFP'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Autoantikörper: ANCA (IF) 1: (Ref. < 1:40), MPO-ANCA (ELISA) IU/ml (Ref. < 9), PR3-ANCA (ELISA) IU/ml (Ref. < 3,5), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
||||||
|
Uid: 99b44ee9-2858-4651-84ad-eb7980832352
|
@ -2,24 +2,27 @@
|
|||||||
# =========== ================== ======== ============== ======================= ===========
|
# =========== ================== ======== ============== ======================= ===========
|
||||||
"a1-Microglobulin (SU)" a1-Microglobulin SU
|
"a1-Microglobulin (SU)" a1-Microglobulin SU
|
||||||
"a1-Microglobulin (SU)/die" a1-Microglobulin SU
|
"a1-Microglobulin (SU)/die" a1-Microglobulin SU
|
||||||
|
"AFP (ECL, Elecsys, Roche)" AFP S --- X
|
||||||
"aktuelles Bicarbonat" Bic BGA
|
"aktuelles Bicarbonat" Bic BGA
|
||||||
Albumin Alb S
|
Albumin Alb S
|
||||||
"Albumin (PU)" Alb U
|
"Albumin (PU)" Alb U
|
||||||
"Albumin (SU)" Alb SU
|
"Albumin (SU)" Alb SU
|
||||||
"Albumin (SU)/die" Alb SU
|
"Albumin (SU)/die" Alb SU
|
||||||
"Albumin - Fraktion" Albumin-Fraktion S X
|
"Albumin - Fraktion" Albumin-Fraktion S --- X
|
||||||
"Albumin/Creatinin (PU)" ACR U 0
|
"Albumin/Creatinin (PU)" ACR U 0
|
||||||
|
Aldosteron Aldosteron S --- X
|
||||||
|
Aldosteron-Renin-Quotient ARQ S --- X
|
||||||
"Alk. Phosphatase" AP S 0
|
"Alk. Phosphatase" AP S 0
|
||||||
"Alpha1-Globulin - Fraktion" a1-Globulin S X
|
"Alpha1-Globulin - Fraktion" a1-Globulin S --- X
|
||||||
"Alpha2-Globulin - Fraktion" a2-Globulin S X
|
"Alpha2-Globulin - Fraktion" a2-Globulin S --- X
|
||||||
Amylase Amylase S
|
Amylase Amylase S
|
||||||
"anorg. Phosphat" P S
|
"anorg. Phosphat" P S
|
||||||
"Anti-DNAse B" "Anti-DNAse B" S X
|
"Anti-DNAse B" "Anti-DNAse B" S --- X
|
||||||
Anti-Streptolysin ASL S X
|
Anti-Streptolysin ASL S --- X
|
||||||
"Bakterien (U)" Bakt U
|
"Bakterien (U)" Bakt U
|
||||||
Basenabweichung BE BGA
|
Basenabweichung BE BGA
|
||||||
Basophile Baso E
|
Basophile Baso E
|
||||||
"Beta-Globulin - Fraktion" b-Globulin S X
|
"Beta-Globulin - Fraktion" b-Globulin S --- X
|
||||||
"Bilirubin (U)" Bilirubin U
|
"Bilirubin (U)" Bilirubin U
|
||||||
"C-reaktives Protein" CRP S
|
"C-reaktives Protein" CRP S
|
||||||
Calcium Ca S
|
Calcium Ca S
|
||||||
@ -27,44 +30,44 @@ Calcium Ca S
|
|||||||
"Calcium (SU)/die" Ca SU
|
"Calcium (SU)/die" Ca SU
|
||||||
Calcium-Phosphat-Produkt CaxP S
|
Calcium-Phosphat-Produkt CaxP S
|
||||||
Cholesterin Chol S
|
Cholesterin Chol S
|
||||||
CK gesamt" CK S X
|
"CK gesamt" CK S --- X
|
||||||
"CK MB" CK-MB S
|
"CK MB" CK-MB S
|
||||||
Creatinin Krea S 1
|
Creatinin Krea S 1
|
||||||
"Creatinin (PU)" Krea U 0
|
"Creatinin (PU)" Krea U 0
|
||||||
"Creatinin (SU)" Krea SU 0
|
"Creatinin (SU)" Krea SU 0
|
||||||
"Creatinin-Clearance (SU)/min" CrCl SU
|
"Creatinin-Clearance (SU)/min" CrCl SU
|
||||||
"Cyclosporin-A vor Gabe" "CsA (C0)" S X
|
"Cyclosporin-A vor Gabe" "CsA (C0)" S --- X
|
||||||
"Cystatin C (Latex Gen. 2)" "Cystatin C" S X
|
"Cystatin C (Latex Gen. 2)" "Cystatin C" S --- X
|
||||||
"Cystatin C (N Latex)" "Cystatin C" S X
|
"Cystatin C (N Latex)" "Cystatin C" S --- X
|
||||||
Eisen Fe S
|
Eisen Fe S
|
||||||
Eosinophile Eos E
|
Eosinophile Eos E
|
||||||
Erythrozyten Ery E
|
Erythrozyten Ery E
|
||||||
"Erythrozyten (U)" Ery U
|
"Erythrozyten (U)" Ery U
|
||||||
Ferritin Ferr S
|
Ferritin Ferr S
|
||||||
Folsäure Folsäure S X
|
Folsäure Folsäure S --- X
|
||||||
FRAGMENTOZYTEN Fragmentozyten E
|
FRAGMENTOZYTEN Fragmentozyten E
|
||||||
"freies T3" fT3 S X
|
"freies T3" fT3 S --- X
|
||||||
"freies T4" fT4 S X
|
"freies T4" fT4 S --- X
|
||||||
"Gammaglobulin - Fraktion" g-Globulin S X
|
"Gammaglobulin - Fraktion" g-Globulin S --- X
|
||||||
Gesamt-Bilirubin Bilirubin S
|
Gesamt-Bilirubin Bilirubin S
|
||||||
Gesamt-Eiweiss Protein S
|
Gesamt-Eiweiss Protein S
|
||||||
"Gesamt-Eiweiss (PU)" Protein U
|
"Gesamt-Eiweiss (PU)" Protein U
|
||||||
"Gesamt-Eiweiss (SU)" Protein SU
|
"Gesamt-Eiweiss (SU)" Protein SU
|
||||||
"Gesamt-Eiweiss (SU)/die" Proteinurie SU
|
"Gesamt-Eiweiss (SU)/die" Prot SU
|
||||||
"Gesamt-Eiweiss/Creatinin (PU)" TPCR U 0
|
"Gesamt-Eiweiss/Creatinin (PU)" TPCR U 0
|
||||||
GGT GGT S 0
|
GGT GGT S 0
|
||||||
"glomerul. Filtrationsr. (MDRD)" "eGFR (MDRD)" S --- X
|
"glomerul. Filtrationsr. (MDRD)" "eGFR (MDRD)" S --- --- X
|
||||||
"glomerul. Filtrationsr. CKD-EP" "eGFR (CKD-EPI)" S
|
"glomerul. Filtrationsr. CKD-EP" "eGFR (CKD-EPI)" S
|
||||||
"glomeruläre Filtrationsrate" GFR SU
|
"glomeruläre Filtrationsrate" GFR SU
|
||||||
Glucose Glukose S
|
Glucose Glukose S
|
||||||
"Glucose (U)" Glukose U
|
"Glucose (U)" Glukose U
|
||||||
"GOT (ASAT)" GOT S 0
|
"GOT (ASAT)" GOT S 0
|
||||||
"GPT (ALAT)" GPT S 0
|
"GPT (ALAT)" GPT S 0
|
||||||
Haptoglobin Haptoglobin S X
|
Haptoglobin Haptoglobin S --- X
|
||||||
HAPTOGLOBIN Haptoglobin S X
|
HAPTOGLOBIN Haptoglobin S --- X
|
||||||
"Harnstoff (SU)" Hst SU
|
"Harnstoff (SU)" Hst SU
|
||||||
"Harnstoff (SU)/die" Hst/Tag SU
|
"Harnstoff (SU)/die" Hst/Tag SU
|
||||||
Harnstoff" Hst S
|
Harnstoff Hst S
|
||||||
"Harnstoff-Clearance (SU)/min" HstCl SU
|
"Harnstoff-Clearance (SU)/min" HstCl SU
|
||||||
Harnsäure Harnsäure S
|
Harnsäure Harnsäure S
|
||||||
"HbA1c (NGSP)" HbA1c E
|
"HbA1c (NGSP)" HbA1c E
|
||||||
@ -78,14 +81,16 @@ Kalium K S
|
|||||||
"Kalium (SU)" K U
|
"Kalium (SU)" K U
|
||||||
"Kalium (SU)/die" K SU
|
"Kalium (SU)/die" K SU
|
||||||
"Ketonkörper (U)" KK U
|
"Ketonkörper (U)" KK U
|
||||||
"Komplementfaktor C3c" C3c S X
|
"kohlenhyd. def. Transferrin" CDT S 1 X
|
||||||
"Komplementfaktor C4" C4 S X
|
"Komplementfaktor C3c" C3c S --- X
|
||||||
|
"Komplementfaktor C4" C4 S --- X
|
||||||
"Lactat Dehydrogenase" LDH S
|
"Lactat Dehydrogenase" LDH S
|
||||||
"LDL - Cholesterin" LDL S
|
"LDL - Cholesterin" LDL S
|
||||||
Leukozyten Leu E
|
Leukozyten Leu E
|
||||||
"Leukozyten (U)" Leu U
|
"Leukozyten (U)" Leu U
|
||||||
|
"Lipoprotein (a) (Gen. 2)" Lp(a) S 0 X
|
||||||
Lymphozyten Lym E
|
Lymphozyten Lym E
|
||||||
Magnesium Mg S X
|
Magnesium Mg S --- X
|
||||||
"MCH (HbE)" MCH E 0
|
"MCH (HbE)" MCH E 0
|
||||||
MCHC MCHC E 0
|
MCHC MCHC E 0
|
||||||
MCV MCV E 0
|
MCV MCV E 0
|
||||||
@ -104,14 +109,16 @@ pH pH BGA
|
|||||||
"Plattenepithelien (U)" Plattenep U
|
"Plattenepithelien (U)" Plattenep U
|
||||||
"PO2 (art.)" pO2 BGA
|
"PO2 (art.)" pO2 BGA
|
||||||
"Protein (U)" Protein U
|
"Protein (U)" Protein U
|
||||||
"PSA ges. (ECL,Elecsys,Roche)" PSA S X
|
"PSA ges. (ECL,Elecsys,Roche)" PSA S --- X
|
||||||
"PTH intakt" iPTH S
|
"PTH intakt" iPTH S
|
||||||
PTT PTT Z
|
PTT PTT Z
|
||||||
"Ratio int. norm." INR Z
|
"Ratio int. norm." INR Z
|
||||||
Retikulozyten Retikulozyten E X
|
Plasma-Renin-Konzentration Renin S --- X
|
||||||
|
Retikulozyten Retikulozyten E --- X
|
||||||
"Sammelmenge (U)" Volumen SU
|
"Sammelmenge (U)" Volumen SU
|
||||||
"Sammelzeit (U)" Zeit SU
|
"Sammelzeit (U)" Zeit SU
|
||||||
"Sauerstoffsättigung (art.)" SO2 BGA
|
"Sauerstoffsättigung (art.)" SO2 BGA
|
||||||
|
"Schwangerschaftstest (U)" Schwangerschaftstest U
|
||||||
Sirolimus SIR S
|
Sirolimus SIR S
|
||||||
"spezifisches Gewicht (U)" "spez. Gew." U
|
"spezifisches Gewicht (U)" "spez. Gew." U
|
||||||
"Standard Bicarbonat" "Std.-Bic." BGA
|
"Standard Bicarbonat" "Std.-Bic." BGA
|
||||||
@ -121,10 +128,10 @@ Thrombozyten Thr E
|
|||||||
Transferrin Transferrin S
|
Transferrin Transferrin S
|
||||||
"Transferrinsättigung" Tf.-Sätt. S
|
"Transferrinsättigung" Tf.-Sätt. S
|
||||||
"Triglyceride" TG S
|
"Triglyceride" TG S
|
||||||
"Troponin T (high sensitive)" hsTnT S
|
"Troponin (high sensitive)" hsTnT S
|
||||||
TSH TSH S
|
TSH TSH S
|
||||||
"Übergangsepithelien (U)" Übergangsep. U
|
"Übergangsepithelien (U)" Übergangsep. U
|
||||||
Unreife Granulozyten" Gran E
|
"Unreife Granulozyten" Gran E
|
||||||
"Urobilinogen (U)" Urobilinogen U
|
"Urobilinogen (U)" Urobilinogen U
|
||||||
Vitamin B12 B12 S X
|
"Vitamin B12" B12 S --- X
|
||||||
# vim: tw=160 et nowrap fo-=t
|
# vim: tw=160 et nowrap fo-=t
|
||||||
|
@ -1,200 +0,0 @@
|
|||||||
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
|
|
||||||
<SOAP-ENV:Body>
|
|
||||||
<a1:Settings id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Uid xsi:type="a2:Guid" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<_a>1443045381</_a>
|
|
||||||
<_b>29162</_b>
|
|
||||||
<_c>17774</_c>
|
|
||||||
<_d>182</_d>
|
|
||||||
<_e>243</_e>
|
|
||||||
<_f>111</_f>
|
|
||||||
<_g>227</_g>
|
|
||||||
<_h>16</_h>
|
|
||||||
<_i>47</_i>
|
|
||||||
<_j>142</_j>
|
|
||||||
<_k>57</_k>
|
|
||||||
</Uid>
|
|
||||||
<Name id="ref-3">Kopie von Standard für Station</Name>
|
|
||||||
<ReferenceStyle xsi:type="a3:ReferenceStyle" xmlns:a3="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Formatter/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">IfSpecialOrAbnormal</ReferenceStyle>
|
|
||||||
<ElementsCount>4</ElementsCount>
|
|
||||||
<Element0Type href="#ref-4"/>
|
|
||||||
<Element0Object href="#ref-5"/>
|
|
||||||
<Element1Type href="#ref-6"/>
|
|
||||||
<Element1Object href="#ref-7"/>
|
|
||||||
<Element2Type href="#ref-8"/>
|
|
||||||
<Element2Object href="#ref-9"/>
|
|
||||||
<Element3Type href="#ref-10"/>
|
|
||||||
<Element3Object href="#ref-11"/>
|
|
||||||
</a1:Settings>
|
|
||||||
<a2:UnitySerializationHolder id="ref-4" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-12">zaaReloaded2.Controller.Elements.TwoColumns</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName id="ref-13">zaaReloaded2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6ec8d075a1ab1383</AssemblyName>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:TwoColumns id="ref-5" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<ChildrenCount>0</ChildrenCount>
|
|
||||||
</a4:TwoColumns>
|
|
||||||
<a2:UnitySerializationHolder id="ref-6" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-14">zaaReloaded2.Controller.Elements.SelectFirstDay</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-13"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:SelectFirstDay id="ref-7" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<ChildrenCount>16</ChildrenCount>
|
|
||||||
<Child0Type href="#ref-15"/>
|
|
||||||
<Child0Object href="#ref-16"/>
|
|
||||||
<Child1Type href="#ref-15"/>
|
|
||||||
<Child1Object href="#ref-17"/>
|
|
||||||
<Child2Type href="#ref-15"/>
|
|
||||||
<Child2Object href="#ref-18"/>
|
|
||||||
<Child3Type href="#ref-15"/>
|
|
||||||
<Child3Object href="#ref-19"/>
|
|
||||||
<Child4Type href="#ref-15"/>
|
|
||||||
<Child4Object href="#ref-20"/>
|
|
||||||
<Child5Type href="#ref-15"/>
|
|
||||||
<Child5Object href="#ref-21"/>
|
|
||||||
<Child6Type href="#ref-15"/>
|
|
||||||
<Child6Object href="#ref-22"/>
|
|
||||||
<Child7Type href="#ref-15"/>
|
|
||||||
<Child7Object href="#ref-23"/>
|
|
||||||
<Child8Type href="#ref-15"/>
|
|
||||||
<Child8Object href="#ref-24"/>
|
|
||||||
<Child9Type href="#ref-15"/>
|
|
||||||
<Child9Object href="#ref-25"/>
|
|
||||||
<Child10Type href="#ref-15"/>
|
|
||||||
<Child10Object href="#ref-26"/>
|
|
||||||
<Child11Type href="#ref-15"/>
|
|
||||||
<Child11Object href="#ref-27"/>
|
|
||||||
<Child12Type href="#ref-15"/>
|
|
||||||
<Child12Object href="#ref-28"/>
|
|
||||||
<Child13Type href="#ref-15"/>
|
|
||||||
<Child13Object href="#ref-29"/>
|
|
||||||
<Child14Type href="#ref-15"/>
|
|
||||||
<Child14Object href="#ref-30"/>
|
|
||||||
<Child15Type href="#ref-15"/>
|
|
||||||
<Child15Object href="#ref-31"/>
|
|
||||||
</a4:SelectFirstDay>
|
|
||||||
<a2:UnitySerializationHolder id="ref-8" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-32">zaaReloaded2.Controller.Elements.NextColumn</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-13"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:NextColumn id="ref-9" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<ChildrenCount>0</ChildrenCount>
|
|
||||||
</a4:NextColumn>
|
|
||||||
<a2:UnitySerializationHolder id="ref-10" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-33">zaaReloaded2.Controller.Elements.SelectLastDay</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-13"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:SelectLastDay id="ref-11" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<ChildrenCount>16</ChildrenCount>
|
|
||||||
<Child0Type href="#ref-15"/>
|
|
||||||
<Child0Object href="#ref-16"/>
|
|
||||||
<Child1Type href="#ref-15"/>
|
|
||||||
<Child1Object href="#ref-17"/>
|
|
||||||
<Child2Type href="#ref-15"/>
|
|
||||||
<Child2Object href="#ref-18"/>
|
|
||||||
<Child3Type href="#ref-15"/>
|
|
||||||
<Child3Object href="#ref-19"/>
|
|
||||||
<Child4Type href="#ref-15"/>
|
|
||||||
<Child4Object href="#ref-20"/>
|
|
||||||
<Child5Type href="#ref-15"/>
|
|
||||||
<Child5Object href="#ref-21"/>
|
|
||||||
<Child6Type href="#ref-15"/>
|
|
||||||
<Child6Object href="#ref-22"/>
|
|
||||||
<Child7Type href="#ref-15"/>
|
|
||||||
<Child7Object href="#ref-23"/>
|
|
||||||
<Child8Type href="#ref-15"/>
|
|
||||||
<Child8Object href="#ref-24"/>
|
|
||||||
<Child9Type href="#ref-15"/>
|
|
||||||
<Child9Object href="#ref-25"/>
|
|
||||||
<Child10Type href="#ref-15"/>
|
|
||||||
<Child10Object href="#ref-26"/>
|
|
||||||
<Child11Type href="#ref-15"/>
|
|
||||||
<Child11Object href="#ref-27"/>
|
|
||||||
<Child12Type href="#ref-15"/>
|
|
||||||
<Child12Object href="#ref-28"/>
|
|
||||||
<Child13Type href="#ref-15"/>
|
|
||||||
<Child13Object href="#ref-29"/>
|
|
||||||
<Child14Type href="#ref-15"/>
|
|
||||||
<Child14Object href="#ref-30"/>
|
|
||||||
<Child15Type href="#ref-15"/>
|
|
||||||
<Child15Object href="#ref-31"/>
|
|
||||||
</a4:SelectLastDay>
|
|
||||||
<a2:UnitySerializationHolder id="ref-15" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
|
|
||||||
<Data id="ref-34">zaaReloaded2.Controller.Elements.Items</Data>
|
|
||||||
<UnityType>4</UnityType>
|
|
||||||
<AssemblyName href="#ref-13"/>
|
|
||||||
</a2:UnitySerializationHolder>
|
|
||||||
<a4:Items id="ref-16" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-35">Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-17" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-36">Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-18" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-37">Kardiale Marker: CK, CKMB, Trop, NTproBNP</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-19" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-38">Niere: Krea, Hst, eGFR (CKD-EPI)</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-20" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-39">Sammelurin: SU-Proteinurie, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Natrium, SU-Zeit, SU-Volumen</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-21" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-40">Spot-Urin: U-*</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-22" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-41">Leber: GOT, GGT, GPT, AP, Bilirubin, CHE</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-23" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-42">Blutfette: TG, Chol, LDL, HDL, Lp(a)</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-24" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-43">Hämatologie: Hb, Hkt, Reti, Leu, Thr, Ery, Neu, Lym, Mon, Baso, Eos, MCV, HbA1c, Retikulozyten, Fragmentozyten</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-25" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-44">Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-26" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-45">Hormone: iPTH, TSH</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-27" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-46">Medikamente: TAC, CSA, SIR, Vancomycin, Gentamicin, Tobramicin</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-28" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-47">Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-29" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-48">BGA: pH, Std.-Bic., BE</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-30" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-49">Hepatitis-Serologie: Anti-HBs, Anti-HBc</Content>
|
|
||||||
</a4:Items>
|
|
||||||
<a4:Items id="ref-31" xmlns:a4="http://schemas.microsoft.com/clr/nsassem/zaaReloaded2.Controller.Elements/zaaReloaded2%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D6ec8d075a1ab1383">
|
|
||||||
<Version>1</Version>
|
|
||||||
<Content id="ref-50">Weitere Werte: *</Content>
|
|
||||||
</a4:Items>
|
|
||||||
</SOAP-ENV:Body>
|
|
||||||
</SOAP-ENV:Envelope>
|
|
101
zaaReloaded2/Defaults/ward.zaaReloaded2
Executable file
@ -0,0 +1,101 @@
|
|||||||
|
!zaaReloaded2.Controller.Settings,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Name: Kopie von Standard für Station
|
||||||
|
ReferenceStyle: IfSpecialItem
|
||||||
|
Elements: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.ElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
|
- !zaaReloaded2.Controller.Elements.TwoColumns,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089 []
|
||||||
|
- !zaaReloaded2.Controller.Elements.SelectFirstDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Tumormarker: PSA'
|
||||||
|
- !zaaReloaded2.Controller.Elements.NextColumn,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089 []
|
||||||
|
- !zaaReloaded2.Controller.Elements.SelectLastDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
||||||
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
|
Content: 'Tumormarker: PSA'
|
||||||
|
Uid: 216d9bbb-94d8-47e5-b13b-59e0edd24d91
|
@ -1,7 +1,7 @@
|
|||||||
/* Demo.cs
|
/* Demo.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -15,11 +15,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using Microsoft.Office.Interop.Word;
|
using Microsoft.Office.Interop.Word;
|
||||||
|
|
||||||
namespace zaaReloaded2.Demo
|
namespace zaaReloaded2.Demo
|
||||||
@ -43,6 +39,7 @@ namespace zaaReloaded2.Demo
|
|||||||
Document demoDoc = Globals.ThisAddIn.Application.Documents
|
Document demoDoc = Globals.ThisAddIn.Application.Documents
|
||||||
.Add(Template: tempFile);
|
.Add(Template: tempFile);
|
||||||
File.Delete(tempFile);
|
File.Delete(tempFile);
|
||||||
|
Globals.ThisAddIn.Ribbon.ActivateZaaTab();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
ExceptionDetailView.xaml
|
ExceptionDetailView.xaml
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
|
|
||||||
Copyright 2015 Daniel Kraus
|
Copyright 2015-2017 Daniel Kraus
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -25,14 +25,14 @@
|
|||||||
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
|
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
|
||||||
xmlns:settings="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
|
xmlns:settings="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
|
||||||
xmlns:converter="clr-namespace:Bovender.Mvvm.Converters;assembly=Bovender"
|
xmlns:converter="clr-namespace:Bovender.Mvvm.Converters;assembly=Bovender"
|
||||||
SizeToContent="Height" Width="700" ShowInTaskbar="False"
|
SizeToContent="Height" Width="720"
|
||||||
WindowStyle="ToolWindow" Topmost="True" ResizeMode="CanResizeWithGrip"
|
ShowInTaskbar="False" ResizeMode="NoResize"
|
||||||
x:Name="exceptionDetailView"
|
x:Name="exceptionDetailView"
|
||||||
Title="Technische Fehlerdetails"
|
Title="Technische Fehlerdetails"
|
||||||
settings:WindowState.Save="True"
|
settings:WindowState.Save="True"
|
||||||
>
|
>
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
<ResourceDictionary Source="/zaaReloaded2;component/Style.xaml" />
|
<ResourceDictionary Source="/Bovender;component/Style.xaml" />
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<DockPanel Margin="10">
|
<DockPanel Margin="10">
|
||||||
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
|
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionDetailView.xaml.cs
|
/* ExceptionDetailView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
ExceptionView.xaml
|
ExceptionView.xaml
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
|
|
||||||
Copyright 2015 Daniel Kraus
|
Copyright 2015-2017 Daniel Kraus
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -26,8 +26,8 @@
|
|||||||
xmlns:ex="clr-namespace:zaaReloaded2.ExceptionHandler"
|
xmlns:ex="clr-namespace:zaaReloaded2.ExceptionHandler"
|
||||||
xmlns:actions="clr-namespace:Bovender.Mvvm.Actions;assembly=Bovender"
|
xmlns:actions="clr-namespace:Bovender.Mvvm.Actions;assembly=Bovender"
|
||||||
xmlns:settings="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
|
xmlns:settings="clr-namespace:Bovender.Mvvm.Views.Settings;assembly=Bovender"
|
||||||
SizeToContent="WidthAndHeight" ResizeMode="CanResizeWithGrip"
|
SizeToContent="WidthAndHeight" ResizeMode="NoResize"
|
||||||
WindowStyle="ToolWindow" ShowInTaskbar="False" Topmost="True"
|
ShowInTaskbar="False"
|
||||||
WindowStartupLocation="CenterScreen"
|
WindowStartupLocation="CenterScreen"
|
||||||
Title="zaaReloaded2: Fehler!"
|
Title="zaaReloaded2: Fehler!"
|
||||||
settings:WindowState.Save="True"
|
settings:WindowState.Save="True"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionView.xaml.cs
|
/* ExceptionView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionViewModel.cs
|
/* ExceptionViewModel.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -48,7 +48,7 @@ namespace zaaReloaded2.ExceptionHandler
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return zaaReloaded2.Updater.Version.CurrentVersion().ToString();
|
return zaaReloaded2.Updater.Version.Current.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,6 +86,11 @@ namespace zaaReloaded2.ExceptionHandler
|
|||||||
return @"x:\Code\zaaReloaded2\zaaReloaded2\";
|
return @"x:\Code\zaaReloaded2\zaaReloaded2\";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override Bovender.UserSettings.UserSettingsBase UserSettings
|
||||||
|
{
|
||||||
|
get { return zaaReloaded2.UserSettings.Default; }
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionCompletedAction.cs
|
/* SubmissionCompletedAction.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
SubmissionFailureView.xaml
|
SubmissionFailureView.xaml
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
|
|
||||||
Copyright 2015 Daniel Kraus
|
Copyright 2015-2017 Daniel Kraus
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -25,7 +25,7 @@
|
|||||||
Title="Fehlerbericht versenden"
|
Title="Fehlerbericht versenden"
|
||||||
>
|
>
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
<ResourceDictionary Source="/zaaReloaded2;component/Style.xaml" />
|
<ResourceDictionary Source="/Bovender;component/Style.xaml" />
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<StackPanel Margin="10" Orientation="Horizontal">
|
<StackPanel Margin="10" Orientation="Horizontal">
|
||||||
<TextBlock FontSize="72" FontWeight="Bold" Foreground="Red" Margin="0,0,10,0"
|
<TextBlock FontSize="72" FontWeight="Bold" Foreground="Red" Margin="0,0,10,0"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionFailureView.xaml.cs
|
/* SubmissionFailureView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionProcessAction.cs
|
/* SubmissionProcessAction.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
SubmissionProcessView.xaml
|
SubmissionProcessView.xaml
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
|
|
||||||
Copyright 2015 Daniel Kraus
|
Copyright 2015-2017 Daniel Kraus
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -29,7 +29,7 @@
|
|||||||
SizeToContent="WidthAndHeight"
|
SizeToContent="WidthAndHeight"
|
||||||
>
|
>
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
<ResourceDictionary Source="/zaaReloaded2;component/Style.xaml" />
|
<ResourceDictionary Source="/Bovender;component/Style.xaml" />
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<i:Interaction.Triggers>
|
<i:Interaction.Triggers>
|
||||||
<i:EventTrigger SourceObject="{Binding CompletedMessage}" EventName="Sent">
|
<i:EventTrigger SourceObject="{Binding CompletedMessage}" EventName="Sent">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionProcessView.xaml.cs
|
/* SubmissionProcessView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
SubmissionSuccessView.xaml
|
SubmissionSuccessView.xaml
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
|
|
||||||
Copyright 2015 Daniel Kraus
|
Copyright 2015-2017 Daniel Kraus
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -25,7 +25,7 @@
|
|||||||
Title="Fehlerbericht versenden"
|
Title="Fehlerbericht versenden"
|
||||||
>
|
>
|
||||||
<Window.Resources>
|
<Window.Resources>
|
||||||
<ResourceDictionary Source="/zaaReloaded2;component/Style.xaml" />
|
<ResourceDictionary Source="/Bovender;component/Style.xaml" />
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<StackPanel Margin="10" Orientation="Horizontal">
|
<StackPanel Margin="10" Orientation="Horizontal">
|
||||||
<TextBlock FontSize="48" FontWeight="Bold" Foreground="GreenYellow" Margin="0,0,10,0"
|
<TextBlock FontSize="48" FontWeight="Bold" Foreground="GreenYellow" Margin="0,0,10,0"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionSuccessView.xaml.cs
|
/* SubmissionSuccessView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* AbnormalStyle.cs
|
/* AbnormalStyle.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DanielsStyle.cs
|
/* DanielsStyle.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -69,9 +69,10 @@ namespace zaaReloaded2.Formatter
|
|||||||
find.Execute2007(FindText: "Assistent der Klinik", ReplaceWith: "Internist/Nephrologe", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "Assistent der Klinik", ReplaceWith: "Internist/Nephrologe", Replace: WdReplace.wdReplaceAll);
|
||||||
find.Execute2007(FindText: "Professor Dr.", ReplaceWith: "Prof. Dr.", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "Professor Dr.", ReplaceWith: "Prof. Dr.", Replace: WdReplace.wdReplaceAll);
|
||||||
find.Execute2007(FindText: "mmHg", ReplaceWith: "mm Hg", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "mmHg", ReplaceWith: "mm Hg", Replace: WdReplace.wdReplaceAll);
|
||||||
find.Execute2007(FindText: "RR", ReplaceWith: "", Replace: WdReplace.wdReplaceAll, MatchCase: true, MatchWholeWord: true);
|
find.Execute2007(FindText: "RR ", ReplaceWith: "", Replace: WdReplace.wdReplaceAll, MatchCase: true, MatchWholeWord: true);
|
||||||
find.Execute2007(FindText: "HF", ReplaceWith: "", Replace: WdReplace.wdReplaceAll, MatchCase: true, MatchWholeWord: true);
|
find.Execute2007(FindText: "HF ", ReplaceWith: "", Replace: WdReplace.wdReplaceAll, MatchCase: true, MatchWholeWord: true);
|
||||||
find.Execute2007(FindText: "TAC-Spiegel", ReplaceWith: "Tacrolimus-Talspiegel", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "TAC-Spiegel", ReplaceWith: "Tacrolimus-Talspiegel", Replace: WdReplace.wdReplaceAll);
|
||||||
|
find.Execute2007(FindText: "ammelruin", ReplaceWith: "ammelurin", Replace: WdReplace.wdReplaceAll, MatchWholeWord: false);
|
||||||
find.Execute2007(FindText: "4-7", ReplaceWith: "4 bis 7", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "4-7", ReplaceWith: "4 bis 7", Replace: WdReplace.wdReplaceAll);
|
||||||
find.Execute2007(FindText: "5-8", ReplaceWith: "5 bis 8", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "5-8", ReplaceWith: "5 bis 8", Replace: WdReplace.wdReplaceAll);
|
||||||
find.Execute2007(FindText: "8-10", ReplaceWith: "8 bis 10", Replace: WdReplace.wdReplaceAll);
|
find.Execute2007(FindText: "8-10", ReplaceWith: "8 bis 10", Replace: WdReplace.wdReplaceAll);
|
||||||
@ -83,7 +84,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
static void FixSalutation(Document document)
|
static void FixSalutation(Document document)
|
||||||
{
|
{
|
||||||
Regex sal = new Regex(@"^Mit.*?Grüßen\r");
|
Regex sal = new Regex(@"^Mit.*?Grüßen\r");
|
||||||
Regex med = new Regex(@"^((Häusl|Empf).*?Medikat)|Therapieempf");
|
Regex med = new Regex(@"^((Häusl|Empf).*?Medikat)|^Therapieempf");
|
||||||
foreach (Paragraph p in document.Paragraphs)
|
foreach (Paragraph p in document.Paragraphs)
|
||||||
{
|
{
|
||||||
if (sal.IsMatch(p.Range.Text)) p.Range.Text = "Mit freundlichen, kollegialen Grüßen,\r";
|
if (sal.IsMatch(p.Range.Text)) p.Range.Text = "Mit freundlichen, kollegialen Grüßen,\r";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DocumentWriter.cs
|
/* DocumentWriter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -21,6 +21,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.Office.Interop.Word;
|
using Microsoft.Office.Interop.Word;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace zaaReloaded2.Formatter
|
namespace zaaReloaded2.Formatter
|
||||||
{
|
{
|
||||||
@ -170,6 +171,14 @@ namespace zaaReloaded2.Formatter
|
|||||||
_buffer.AppendLine(text);
|
_buffer.AppendLine(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Appends a newline to the buffer.
|
||||||
|
/// </summary>
|
||||||
|
public void WriteLine()
|
||||||
|
{
|
||||||
|
_buffer.AppendLine();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Inserts text at the start of the buffer.
|
/// Inserts text at the start of the buffer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -192,6 +201,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
{
|
{
|
||||||
string[] substrings = _markupRegex.Split(text);
|
string[] substrings = _markupRegex.Split(text);
|
||||||
Selection sel = Document.ActiveWindow.Selection;
|
Selection sel = Document.ActiveWindow.Selection;
|
||||||
|
Highlights hightlights = new Highlights();
|
||||||
foreach (string substring in substrings)
|
foreach (string substring in substrings)
|
||||||
{
|
{
|
||||||
switch (substring)
|
switch (substring)
|
||||||
@ -214,6 +224,12 @@ namespace zaaReloaded2.Formatter
|
|||||||
case "</u>":
|
case "</u>":
|
||||||
sel.Font.Underline = WdUnderline.wdUnderlineNone;
|
sel.Font.Underline = WdUnderline.wdUnderlineNone;
|
||||||
break;
|
break;
|
||||||
|
case "<highlight>":
|
||||||
|
hightlights.Start(sel.Range);
|
||||||
|
break;
|
||||||
|
case "</highlight>":
|
||||||
|
hightlights.Stop(sel.Range);
|
||||||
|
break;
|
||||||
case "</style>":
|
case "</style>":
|
||||||
sel.ClearCharacterStyle();
|
sel.ClearCharacterStyle();
|
||||||
break;
|
break;
|
||||||
@ -230,6 +246,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
hightlights.ApplyHighlights();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -242,6 +259,50 @@ namespace zaaReloaded2.Formatter
|
|||||||
static readonly Regex _markupRegex = new Regex(@"(<[^ >]+>)");
|
static readonly Regex _markupRegex = new Regex(@"(<[^ >]+>)");
|
||||||
static readonly Regex _styleRegex = new Regex(@"<style:(?<style>[^>]+)>");
|
static readonly Regex _styleRegex = new Regex(@"<style:(?<style>[^>]+)>");
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Helper class for highlighting
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Embedded helper class to manage highlights.
|
||||||
|
/// </summary>
|
||||||
|
class Highlights
|
||||||
|
{
|
||||||
|
public void Start(Range start)
|
||||||
|
{
|
||||||
|
if (_currentHighlight == null)
|
||||||
|
{
|
||||||
|
_currentHighlight = start;
|
||||||
|
_highlights.Add(_currentHighlight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Stop(Range stop)
|
||||||
|
{
|
||||||
|
if (_currentHighlight != null)
|
||||||
|
{
|
||||||
|
_currentHighlight.End = stop.End;
|
||||||
|
_currentHighlight = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ApplyHighlights()
|
||||||
|
{
|
||||||
|
foreach (Range r in _highlights)
|
||||||
|
{
|
||||||
|
r.HighlightColorIndex = WdColorIndex.wdYellow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Highlights()
|
||||||
|
{
|
||||||
|
_highlights = new Collection<Range>();
|
||||||
|
_currentHighlight = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<Range> _highlights;
|
||||||
|
Range _currentHighlight;
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Formatter.cs
|
/* Formatter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -34,6 +34,9 @@ namespace zaaReloaded2.Formatter
|
|||||||
{
|
{
|
||||||
#region Properties
|
#region Properties
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the Settings that this Formatter works with.
|
||||||
|
/// </summary>
|
||||||
public Settings Settings { get; set; }
|
public Settings Settings { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -54,7 +57,8 @@ namespace zaaReloaded2.Formatter
|
|||||||
foreach (TimePoint tp in _laboratory.TimePoints.Values)
|
foreach (TimePoint tp in _laboratory.TimePoints.Values)
|
||||||
{
|
{
|
||||||
_timePointFormatters[tp.TimeStamp] =
|
_timePointFormatters[tp.TimeStamp] =
|
||||||
new TimePointFormatter(tp, Settings.ReferenceStyle, Settings.AbnormalStyle);
|
new TimePointFormatter(tp, Settings.ReferenceStyle,
|
||||||
|
Settings.AbnormalStyle, Settings.PreferVerboseMolar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,9 +70,17 @@ namespace zaaReloaded2.Formatter
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Is true if this Formatter object carries a Laboratory with
|
/// Is true if this Formatter object carries a Laboratory with
|
||||||
/// at least one time point.
|
/// at least one time point, and if there are Settings to work with.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool CanRun { get { return Laboratory.TimePoints.Count > 0; } }
|
public bool CanRun
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (Settings != null)
|
||||||
|
&& (Laboratory != null)
|
||||||
|
&& (Laboratory.TimePoints.Count > 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -119,14 +131,19 @@ namespace zaaReloaded2.Formatter
|
|||||||
/// current position of the cursor).</param>
|
/// current position of the cursor).</param>
|
||||||
public void Run()
|
public void Run()
|
||||||
{
|
{
|
||||||
if (!CanRun) throw new NoLaboratoryDataException("No laboratory data to format.");
|
if (!CanRun)
|
||||||
|
{
|
||||||
|
if (Settings == null)
|
||||||
|
throw new InvalidOperationException("No settings data to work with.");
|
||||||
|
if ((Laboratory == null) || Laboratory.TimePoints.Count == 0)
|
||||||
|
throw new NoLaboratoryDataException("No laboratory data to format.");
|
||||||
|
throw new InvalidOperationException("Cannot run formatter.");
|
||||||
|
}
|
||||||
|
|
||||||
// Create undo record and styles prior to iterating over the elements
|
// Create undo record and styles prior to iterating over the elements
|
||||||
// because a column switching element might trigger output to the
|
// because a column switching element might trigger output to the
|
||||||
// document.
|
// document.
|
||||||
Globals.ThisAddIn.Application.UndoRecord.StartCustomRecord(
|
Helpers.StartUndo("Laborformatierung");
|
||||||
String.Format("Laborformatierung ({0})", Properties.Settings.Default.AddinName)
|
|
||||||
);
|
|
||||||
CreateStyles();
|
CreateStyles();
|
||||||
|
|
||||||
int current = 0;
|
int current = 0;
|
||||||
@ -155,7 +172,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
}
|
}
|
||||||
|
|
||||||
_secondaryBuffer.Flush();
|
_secondaryBuffer.Flush();
|
||||||
Globals.ThisAddIn.Application.UndoRecord.EndCustomRecord();
|
Helpers.EndUndo();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -256,15 +273,18 @@ namespace zaaReloaded2.Formatter
|
|||||||
{
|
{
|
||||||
if (Document != null)
|
if (Document != null)
|
||||||
{
|
{
|
||||||
|
Logger.Info("CreateStyles");
|
||||||
Style style;
|
Style style;
|
||||||
// Don't see a better way to check for the existence of a particular
|
// Don't see a better way to check for the existence of a particular
|
||||||
// paragraph style than by using a try...catch construction.
|
// paragraph style than by using a try...catch construction.
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
style = Document.Styles[Properties.Settings.Default.StyleParagraph];
|
style = Document.Styles[Properties.Settings.Default.StyleParagraph];
|
||||||
|
Logger.Info("CreateStyles: Found paragraph style in document");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
Logger.Info("CreateStyles: Need to create paragraph style");
|
||||||
// Add default paragraph style for laboratory
|
// Add default paragraph style for laboratory
|
||||||
style = Document.Styles.Add(Properties.Settings.Default.StyleParagraph);
|
style = Document.Styles.Add(Properties.Settings.Default.StyleParagraph);
|
||||||
style.Font.Size = 10; // pt
|
style.Font.Size = 10; // pt
|
||||||
@ -277,13 +297,16 @@ namespace zaaReloaded2.Formatter
|
|||||||
style.ParagraphFormat.FirstLineIndent = -36; // pt
|
style.ParagraphFormat.FirstLineIndent = -36; // pt
|
||||||
style.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
|
style.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
|
||||||
}
|
}
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(style);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
style = Document.Styles[Properties.Settings.Default.StyleHeader];
|
style = Document.Styles[Properties.Settings.Default.StyleHeader];
|
||||||
|
Logger.Info("CreateStyles: Found header style in document");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
Logger.Info("CreateStyles: Need to create header style");
|
||||||
// Add header paragraph style for laboratory
|
// Add header paragraph style for laboratory
|
||||||
style = Document.Styles.Add(Properties.Settings.Default.StyleHeader);
|
style = Document.Styles.Add(Properties.Settings.Default.StyleHeader);
|
||||||
style.Font.Size = 10; // pt
|
style.Font.Size = 10; // pt
|
||||||
@ -297,6 +320,7 @@ namespace zaaReloaded2.Formatter
|
|||||||
style.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
|
style.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphJustify;
|
||||||
style.set_NextParagraphStyle(Document.Styles[Properties.Settings.Default.StyleParagraph]);
|
style.set_NextParagraphStyle(Document.Styles[Properties.Settings.Default.StyleParagraph]);
|
||||||
}
|
}
|
||||||
|
Bovender.ComHelpers.ReleaseComObject(style);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
try
|
try
|
||||||
@ -406,5 +430,13 @@ namespace zaaReloaded2.Formatter
|
|||||||
Table _table;
|
Table _table;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Class logger
|
||||||
|
|
||||||
|
private static NLog.Logger Logger { get { return _logger.Value; } }
|
||||||
|
|
||||||
|
private static readonly Lazy<NLog.Logger> _logger = new Lazy<NLog.Logger>(() => NLog.LogManager.GetCurrentClassLogger());
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* IItemFormatterDictionary.cs
|
/* IItemFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ITimePointFormatterDictionary.cs
|
/* ITimePointFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemFormatter.cs
|
/* ItemFormatter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -21,6 +21,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.Office.Interop.Word;
|
using Microsoft.Office.Interop.Word;
|
||||||
using zaaReloaded2.LabModel;
|
using zaaReloaded2.LabModel;
|
||||||
|
using zaaReloaded2.Controller.Comments;
|
||||||
|
|
||||||
namespace zaaReloaded2.Formatter
|
namespace zaaReloaded2.Formatter
|
||||||
{
|
{
|
||||||
@ -46,6 +47,11 @@ namespace zaaReloaded2.Formatter
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public AbnormalStyle AbnormalStyle { get; set; }
|
public AbnormalStyle AbnormalStyle { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates whether to prefer the more verbose "mmol/l" over "mM".
|
||||||
|
/// </summary>
|
||||||
|
public bool PreferVerboseMolar { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a flag that indicates whether this ItemFormatter
|
/// Gets or sets a flag that indicates whether this ItemFormatter
|
||||||
/// has been used, i.e. whether the LabItem was written to a
|
/// has been used, i.e. whether the LabItem was written to a
|
||||||
@ -70,6 +76,11 @@ namespace zaaReloaded2.Formatter
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsBlacklisted { get { return LabItem.IsBlacklisted; } }
|
public bool IsBlacklisted { get { return LabItem.IsBlacklisted; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the item's comment.
|
||||||
|
/// </summary>
|
||||||
|
public ItemComment Comment { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructor
|
#region Constructor
|
||||||
@ -80,12 +91,14 @@ namespace zaaReloaded2.Formatter
|
|||||||
/// <param name="labItem">LabItem to wrap in this ItemFormatter.</param>
|
/// <param name="labItem">LabItem to wrap in this ItemFormatter.</param>
|
||||||
public ItemFormatter(LabItem labItem,
|
public ItemFormatter(LabItem labItem,
|
||||||
ReferenceStyle referenceStyle,
|
ReferenceStyle referenceStyle,
|
||||||
AbnormalStyle abnormalStyle)
|
AbnormalStyle abnormalStyle,
|
||||||
|
bool preferVerboseMolar)
|
||||||
{
|
{
|
||||||
IncludeMaterial = true;
|
IncludeMaterial = true;
|
||||||
LabItem = labItem;
|
LabItem = labItem;
|
||||||
ReferenceStyle = referenceStyle;
|
ReferenceStyle = referenceStyle;
|
||||||
AbnormalStyle = abnormalStyle;
|
AbnormalStyle = abnormalStyle;
|
||||||
|
PreferVerboseMolar = preferVerboseMolar;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -141,7 +154,12 @@ namespace zaaReloaded2.Formatter
|
|||||||
if (LabItem.HasUnit)
|
if (LabItem.HasUnit)
|
||||||
{
|
{
|
||||||
string space = LabItem.Unit.StartsWith("/") ? String.Empty : " ";
|
string space = LabItem.Unit.StartsWith("/") ? String.Empty : " ";
|
||||||
unit = String.Format("{0}{1}", space, LabItem.Unit);
|
unit = LabItem.Unit;
|
||||||
|
if (PreferVerboseMolar)
|
||||||
|
{
|
||||||
|
unit = LabItem.Unit.Replace("mM", "mmol/l");
|
||||||
|
}
|
||||||
|
unit = String.Format("{0}{1}", space, unit);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -169,21 +187,31 @@ namespace zaaReloaded2.Formatter
|
|||||||
value = LabItem.Value;
|
value = LabItem.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string comment = String.Empty;
|
||||||
|
if (Comment != null)
|
||||||
|
{
|
||||||
|
comment = Comment.BuildComment();
|
||||||
|
if (comment != String.Empty) comment = " " + comment;
|
||||||
|
}
|
||||||
|
|
||||||
string name = IncludeMaterial ? LabItem.QualifiedName : LabItem.Name;
|
string name = IncludeMaterial ? LabItem.QualifiedName : LabItem.Name;
|
||||||
|
|
||||||
|
|
||||||
string output =
|
string output =
|
||||||
String.Format(
|
String.Format(
|
||||||
"{0} {1}{2}{3}",
|
"{0} {1}{2}{3}{4}",
|
||||||
name,
|
name,
|
||||||
value,
|
value,
|
||||||
unit,
|
unit,
|
||||||
reference
|
reference,
|
||||||
|
comment
|
||||||
);
|
);
|
||||||
if (!LabItem.IsNormal)
|
if (!LabItem.IsNormal)
|
||||||
{
|
{
|
||||||
output = AbnormalStyle.ToMarkup(false) + output + AbnormalStyle.ToMarkup(true);
|
output = AbnormalStyle.ToMarkup(false) + output + AbnormalStyle.ToMarkup(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
formatter.Write(output);
|
formatter.Write(output);
|
||||||
HasBeenUsed = true;
|
HasBeenUsed = true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemFormatterDictionary.cs
|
/* ItemFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|