6 Commits

Author SHA1 Message Date
753219c1eb Merge branch 'release-2.2.4' 2016-04-05 14:11:34 +02:00
b1cd1f1a05 Merge branch 'release-2.2.3' 2016-03-30 14:11:57 +02:00
20c0b8a76e Merge branch 'release-2.2.2' 2016-03-29 21:49:22 +02:00
c104568e5b Merge branch 'hotfix-2.2.1' 2015-12-03 16:16:48 +01:00
2a3ff8c63e Merge branch 'release-2.2.0' 2015-12-03 06:10:35 +01:00
d01bdabf35 Merge branch 'release-2.1.13' 2015-11-12 21:24:56 +01:00
174 changed files with 1401 additions and 3093 deletions

3
.gitignore vendored
View File

@ -27,6 +27,3 @@ doc/
private/ private/
*.nupkg *.nupkg
doxygen_sqlite3.db doxygen_sqlite3.db
Backup/
.vs/
publish/

View File

@ -1,24 +0,0 @@
<?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>

View File

@ -1,78 +1,3 @@
Version 2.4.2 (2017-09-29)
------------------------------------------------------------------------
- Geändert: Wenn das Laborsystem Zeitstempel ausgibt, die in derselben Zeile auch noch einen Laborwert enthalten, wird das jetzt korrekt erkannt.
- Repariert: Stile konnten nicht importiert werden.
- Verbessert: Benutzer-Interface der Stile-Verwaltung.
- Verbessert: Der Standard-Ambulanzstil gibt jetzt auch den MSU-Befund mit aus (sofern vorhanden).
- Verbessert: Für bestimmte Parameter kann die Beschriftung unterdrückt werden (derzeit implementiert im Urin-Hygienebefund, wo "Keim" und "Multiresistenz" nicht mit ausgegeben werden, sondern nur z.B. "E. coli, 3MRGN" bei entsprechender Vorlage "MSU-Keim, MSU-Multiresistenz").
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Version 2.4.1 (2017-09-21)
------------------------------------------------------------------------
- Neu: Parameter für Hygienebefunde hinzugefügt ("MSU-Keim" und "MSU-Multiresistenz").
- Verbessert: Ambulanzausgabe von Hygienebefunden wird jetzt korrekt erkannt.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Version 2.4.0 (2017-09-18)
------------------------------------------------------------------------
- Neu: Laborwerte, die vom Ambulanzsystem ausgegeben wurden, können jetzt auch verarbeitet werden.
- Repariert: Fehlerberichte konnten nicht gesendet werden.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Version 2.3.2 (2017-03-06)
------------------------------------------------------------------------
- Repariert: Willkommensdialog mit der Auswahl des Modus wurde technisch nicht gut angezeigt.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Version 2.3.1 (2017-03-03)
------------------------------------------------------------------------
- Repariert: Der Begrüßungsdialog war manchmal hinter Word verborgen.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
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) Version 2.2.4 (2016-04-05)
------------------------------------------------------------------------ ------------------------------------------------------------------------

View File

@ -1,29 +0,0 @@
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 -ruvzL --progress deploy/releases/* bovender.de:/var/www/html/zaareloaded/downloads/
website:
rsync -ruvz www/ bovender.de:/var/www/html/zaareloaded/

View File

@ -29,7 +29,7 @@ zaaReloaded2 ist in C# mit VSTO geschrieben, unter Zuhilfenahme von
Visual Studio Professional 2013. Der Quellcode liegt in einem öffentlich Visual Studio Professional 2013. Der Quellcode liegt in einem öffentlich
zugänglichen Git-Repository: zugänglichen Git-Repository:
<https://git.bovender.de> <http://git.bovender.de>
Clonen: Clonen:
@ -212,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
<https://doktorkraus.de/zaareloaded/versioninfo.txt> heruntergeladen. Updates <http://zaa.nephrowiki.de/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.

View File

@ -1,7 +1,7 @@
/* CommentPoolTest.cs /* CommentPoolTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ItemCommentTest.cs /* ItemCommentTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* CloneTest.cs /* CloneTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ItemsTest.cs /* ItemsTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -44,7 +44,6 @@ 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]

View File

@ -1,7 +1,7 @@
/* SettingsRepositoryTest.cs /* SettingsRepositoryTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -27,19 +27,19 @@ namespace Tests.Controller
[TestFixture] [TestFixture]
class SettingsRepositoryTest class SettingsRepositoryTest
{ {
SettingsRepository _savedRepository; string _savedSettings;
[SetUp] [SetUp]
public void SetUp() public void SetUp()
{ {
_savedRepository = zaaReloaded2.UserSettings.Default.SettingsRepository; _savedSettings = zaaReloaded2.Properties.Settings.Default.SettingsRepository;
} }
[TearDown] [TearDown]
public void TearDown() public void TearDown()
{ {
zaaReloaded2.UserSettings.Default.SettingsRepository = _savedRepository; zaaReloaded2.Properties.Settings.Default.SettingsRepository = _savedSettings;
zaaReloaded2.UserSettings.Default.Save(); zaaReloaded2.Properties.Settings.Default.Save();
} }
[Test] [Test]

View File

@ -1,7 +1,7 @@
/* SettingsTest.cs /* SettingsTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* DocumentWriterClass.cs /* DocumentWriterClass.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* FormatterTest.cs /* FormatterTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -123,7 +123,7 @@ namespace Tests.Formatter
{ {
ZaaImporter importer = new ZaaImporter(); ZaaImporter importer = new ZaaImporter();
importer.Import( importer.Import(
"(17.09.2015-201810:44:00) Cyclosporin-A vor Gabe: 130 µg/l; CK gesamt: 123 [<= 170] U/l; Cholesterin: 211"); "(17.09.2015 10:44:00) Cyclosporin-A vor Gabe: 130 µg/l; CK gesamt: 123 [<= 170] U/l; Cholesterin: 211");
Document document = new Document(); Document document = new Document();
f.Formatter formatter = new f.Formatter(document); f.Formatter formatter = new f.Formatter(document);
formatter.Laboratory = importer.Laboratory; formatter.Laboratory = importer.Laboratory;
@ -131,7 +131,7 @@ namespace Tests.Formatter
new List<ElementBase>() { new Items("CsA (C0) \"(Ziel-Talspiegel: <> µg/l)\"") }); new List<ElementBase>() { new Items("CsA (C0) \"(Ziel-Talspiegel: <> µg/l)\"") });
formatter.Run(); formatter.Run();
Assert.AreEqual( Assert.AreEqual(
"Laborwerte vom 17.09.2015-201810:44:00:\rCsA (C0) 130 µg/l\r\r", "Laborwerte vom 17.09.2015 10:44:00:\rCsA (C0) 130 µg/l\r\r",
document.Range().Text); document.Range().Text);
} }

View File

@ -1,55 +0,0 @@
/* ClinicImporterTest.cs
* part of zaaReloaded2
*
* Copyright 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.IO;
using zaa = zaaReloaded2.Importer.ClinicImporter;
using NUnit.Framework;
namespace Tests.Importer.ClinicImporter
{
[TestFixture]
class ClinicImporterTest
{
/// <summary>
/// Parses the demo-output.txt file that is built into the assembly.
/// Note that this demo text contains seven time points, only six of
/// which are distinct. Thus, the two time points with identical time
/// stamps should be merged in the <see cref="Laboratory"/>.
/// </summary>
[Test]
public void ParseTimePoints()
{
zaa.ClinicImporter importer = TestHelpers.ClinicImporterFromResource();
// Only 6 distinct time points (see method documentation above).
Assert.AreEqual(5, importer.Laboratory.TimePoints.Count);
}
[Test]
public void ParseInvalidInput()
{
zaa.ClinicImporter importer = new zaa.ClinicImporter();
importer.Import("some arbitrary text\r\nthat does not represent\r\na valid lab");
Assert.IsFalse(importer.Success);
importer.Import("(03.03.1930 13:30:00)\r\n\tNatrium 135 [135 - 145] mmol/l;");
Assert.IsTrue(importer.Success);
}
}
}

View File

@ -1,56 +0,0 @@
/* LaurisItemTest.cs
* part of zaaReloaded2
*
* Copyright 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.LabModel;
using zaaReloaded2.Importer.ZaaImporter;
namespace Tests.Importer.ClinicImporter
{
/// <summary>
/// The ClinicItemTest really just tests the zaaReloaded2.Importer.ZaaImporter.LaurisItem
/// class with text formatted by the outpatient clinic system to make sure LaurisItem works
/// with clinic-formatted lab data as well.
/// </summary>
[TestFixture]
class ClinicItemTest
{
[Test]
[TestCase(" Natrium: 137 [135 - 145] mmol/l", "Natrium", 137, "mmol/l", 135, 145, true)]
public void ParseClinicWithBothLimits(
string laurisString, string name, double 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.IsFalse(i.IsExtreme, "IsExtreme");
Assert.IsTrue(i.IsNumerical, "IsNumerical");
Assert.AreEqual(value, i.NumericalValue, "NumericalValue");
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");
}
}
}

View File

@ -1,45 +0,0 @@
/* ClinicLineTest.cs
* part of zaaReloaded2
*
* Copyright 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 NUnit.Framework;
using zaaReloaded2.LabModel;
using zaaReloaded2.Importer.ClinicImporter;
namespace Tests.Importer.ClinicImporter
{
[TestFixture]
class ClinicLineTest
{
[Test]
public void ParseLine()
{
string demo = "\tNatrium:\t137\t[135 - 145]\tmmol/l";
ClinicLine line = new ClinicLine(demo);
Assert.IsTrue(line.IsClinicLine);
Assert.AreEqual(137, line.Item.NumericalValue);
}
[Test]
public void ParseInvalidLine()
{
// Missing leading tab
string demo = "Natrium:\t137\t[135 - 145]\tmmol/l";
ClinicLine line = new ClinicLine(demo);
Assert.IsFalse(line.IsClinicLine);
}
}
}

View File

@ -1,67 +0,0 @@
/* TimePointTest.cs
* part of zaaReloaded2
*
* Copyright 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.LabModel;
using zaaReloaded2.Importer.ClinicImporter;
namespace Tests.Importer.ClinicImporter
{
[TestFixture]
class ClinicTimePointTest
{
[Test]
public void ParseValidClinicTimePoint()
{
ClinicTimePoint tp = new ClinicTimePoint(
"(06.09.2017 09:45:00)" + Environment.NewLine +
"\tKalium:\t4.6\t[3.5 - 5]\tmmol/l");
Assert.IsTrue(tp.IsValidTimePoint);
}
[Test]
public void ParseInvalidClinicTimePoints()
{
ClinicTimePoint tp = new ClinicTimePoint("Mit freundlichen Grüßen");
Assert.IsFalse(tp.IsValidTimePoint,
"Bogus paragraph should be invalid LaurisTimePoint");
tp.ClinicText = "(22.10.2013 12:30:00)";
Assert.IsFalse(tp.IsValidTimePoint,
"LaurisTimePoint should be invalid if it consists of time stamp only.");
}
[Test]
public void ParseClinicTimePointWithDuplicateItems()
{
ClinicTimePoint tp = new ClinicTimePoint(
"(22.10.2013 12:30:00)" + Environment.NewLine +
"\tNatrium:\t137\t[135 - 145]\tmmol/l" + Environment.NewLine +
"\tNatrium:\t140\t[135 - 145]\tmmol/l"
);
Assert.IsTrue(tp.Items.ContainsKey("Natrium"),
"LaurisTimePoint should contain 'Natrium' item.");
Assert.AreEqual(140, tp.Items["Natrium"].NumericalValue,
"LaurisTimePoint does not use last occurrence of 'Natrium'.");
}
}
}

View File

@ -1,7 +1,7 @@
/* LaurisItemTest.cs /* LaurisItemTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -153,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.S)] [TestCase("Cystatin C (N Latex): 2.37 [0.57 - 0.96] mg/l; ", Material.B)]
public void ParseLaurisMaterial(string laurisString, Material expectedMaterial) public void ParseLaurisMaterial(string laurisString, Material expectedMaterial)
{ {
LaurisItem i = new LaurisItem(laurisString); LaurisItem i = new LaurisItem(laurisString);

View File

@ -1,7 +1,7 @@
/* LaurisParagraphTest.cs /* LaurisParagraphTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* LaurisTimePointTest.cs /* LaurisTimePointTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ZaaImporterTest.cs /* ZaaImporterTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* UnitTest1.cs /* UnitTest1.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ImporterTest.cs /* ImporterTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* PrescriptionTest.cs /* PrescriptionTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SelectFirstDayTest.cs /* SelectFirstDayTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* TestHelpers.cs /* TestHelpers.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,7 +21,6 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using zaaReloaded2.Importer.ZaaImporter; using zaaReloaded2.Importer.ZaaImporter;
using zaaReloaded2.Importer.ClinicImporter;
namespace Tests namespace Tests
{ {
@ -39,18 +38,5 @@ namespace Tests
importer.Import(r.ReadToEnd()); importer.Import(r.ReadToEnd());
return importer; return importer;
} }
/// <summary>
/// Creates a ClinicImporter object and imports demo-output-clinic.txt.
/// </summary>
/// <returns></returns>
public static ClinicImporter ClinicImporterFromResource()
{
Stream s = typeof(TestHelpers).Assembly.GetManifestResourceStream("Tests.demo-output-clinic.txt");
StreamReader r = new StreamReader(s);
ClinicImporter importer = new ClinicImporter();
importer.Import(r.ReadToEnd());
return importer;
}
} }
} }

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\NUnit.3.11.0\build\NUnit.props" Condition="Exists('..\packages\NUnit.3.11.0\build\NUnit.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -17,9 +16,6 @@
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath> <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest> <IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType> <TestProjectType>UnitTest</TestProjectType>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@ -29,7 +25,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants> <DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
@ -38,42 +33,35 @@
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<SignAssembly>false</SignAssembly> <SignAssembly>true</SignAssembly>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>zaaReloaded2.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Bovender"> <Reference Include="Bovender, Version=0.5.0.0, Culture=neutral, PublicKeyToken=df1c15557d8b6df8, processorArchitecture=MSIL">
<HintPath>..\..\bovender\Bovender\bin\Debug\Bovender.dll</HintPath> <HintPath>..\packages\Bovender.0.5.0.0\lib\net40\Bovender.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Microsoft.CSharp" />
<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="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.5.11\lib\net40-client\NLog.dll</HintPath> <SpecificVersion>False</SpecificVersion>
</Reference> <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
<Reference Include="nunit.framework, Version=3.11.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
<HintPath>..\packages\NUnit.3.11.0\lib\net40\nunit.framework.dll</HintPath>
</Reference> </Reference>
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core"> <Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="System.Data" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Runtime.Serialization.Formatters.Soap" /> <Reference Include="System.Runtime.Serialization.Formatters.Soap" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Expression.Blend.Sdk.1.0.2\lib\net40-client\System.Windows.Interactivity.dll</HintPath> <HintPath>..\packages\Expression.Blend.Sdk.1.0.2\lib\net40-client\System.Windows.Interactivity.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="System.Xaml" /> <Reference Include="System.Xaml" />
<Reference Include="System.XML" /> <Reference Include="System.XML" />
@ -95,10 +83,6 @@
<Compile Include="Controller\Comments\CommentPoolTest.cs" /> <Compile Include="Controller\Comments\CommentPoolTest.cs" />
<Compile Include="Controller\Comments\ItemCommentTest.cs" /> <Compile Include="Controller\Comments\ItemCommentTest.cs" />
<Compile Include="Controller\Elements\CloneTest.cs" /> <Compile Include="Controller\Elements\CloneTest.cs" />
<Compile Include="Importer\ClinicImporter\ClinicItemTest.cs" />
<Compile Include="Importer\ClinicImporter\ClinicLineTest.cs" />
<Compile Include="Importer\ClinicImporter\TimePointTest.cs" />
<Compile Include="Importer\ClinicImporter\ClinicImporterTest.cs" />
<Compile Include="Medication\ImporterTest.cs" /> <Compile Include="Medication\ImporterTest.cs" />
<Compile Include="Medication\PrescriptionTest.cs" /> <Compile Include="Medication\PrescriptionTest.cs" />
<Compile Include="SerializationTest.cs" /> <Compile Include="SerializationTest.cs" />
@ -123,7 +107,6 @@
<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" />
@ -152,10 +135,6 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Formatter\FormatterTest-all.txt" /> <EmbeddedResource Include="Formatter\FormatterTest-all.txt" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="demo-output-clinic.txt" />
</ItemGroup>
<ItemGroup />
<Choose> <Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup> <ItemGroup>
@ -176,12 +155,6 @@
</Choose> </Choose>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" /> <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\NUnit.3.11.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.11.0\build\NUnit.props'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">

View File

@ -1,7 +1,7 @@
/* ParametersTest.cs /* ParametersTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -52,11 +52,5 @@ namespace Tests.Thesaurus
{ {
Assert.IsTrue(Parameters.Default.GetIsBlacklisted("glomerul. Filtrationsr. (MDRD)")); Assert.IsTrue(Parameters.Default.GetIsBlacklisted("glomerul. Filtrationsr. (MDRD)"));
} }
[Test]
public void GetSuppressLabel()
{
Assert.IsTrue(Parameters.Default.GetSuppressLabel("- Multiresistenz"));
}
} }
} }

View File

@ -2,7 +2,7 @@
* {{ * {{
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* Class1.cs /* Class1.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ElementPickerViewModelTest.cs /* ElementPickerViewModelTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ItemCommentViewModelTest.cs /* ItemCommentViewModelTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SettingsRepositoryViewModel.cs /* SettingsRepositoryViewModel.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SettingsViewModelTest.cs /* SettingsViewModelTest.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,29 +0,0 @@
<?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>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

View File

@ -1,90 +0,0 @@
# This file contains 5 distinct time points.
# This leading text should be ignored.
# DO NOT CHANGE THE FOLLOWING TEXT, LEST THE TESTS WILL FAIL!
(06.09.2017 09:54:00)
Gesamt-Eiweiss (PU): 54 [<= 120] mg/l
Gesamt-Eiweiss/Creatinin (PU): 59 [<= 70] mg/g Crea
Albumin (PU): 4 [<= 30] mg/l
Albumin/Creatinin (PU): 4.4 [<= 30] mg/g Crea
Creatinin (PU): 91.1 [29 - 226] mg/dl
(06.09.2017 09:54:00)
Erythrozyten (U): negativ [negativ]
Leukozyten (U): + [negativ]
Nitrit (U): negativ [negativ]
Protein (U): negativ [negativ]
Glucose (U): negativ [negativ]
Ketonkörper (U): + [negativ]
Bilirubin (U): negativ [negativ]
Urobilinogen (U): negativ [negativ]
pH (U): 6.500 [4.8 - 7.4]
spezifisches Gewicht (U): 1.015 [1.00 - 1.04] g/ml
Erythrozyten (U): 3 [<= 25] Ery/µl
Leukozyten (U): 4 [<= 20] Leu/µl
Bakterien (U): 193 Bak/µl
Plattenepithelien (U): 25 Epi/µl
Übergangsepithelien (U): 0 Uge/µl
hyaline Zylinder (U): 0 Zyh/µl
(06.09.2017 09:52:00)
Gesamt-Eiweiss (SU): < 40 [<= 120] mg/l
Albumin (SU): < 3 mg/l
a1-Microglobulin (SU): < 5 mg/l
Immunglobulin G (SU): < 4 mg/l
Sammelzeit (U): 24 h
Sammelmenge (U): 3200 ml
Calcium (SU): 0.26 mmol/l
Calcium (SU)/die: 0.83 [2.5 - 8] mmol/d
Creatinin (SU): 30.2 mg/dl
Harnstoff (SU): 674 [900 - 3000] mg/dl
Harnstoff (SU)/die: 21.6 [<= 35] g/d
Kalium (SU): 45.4 [20 - 80] mmol/l
Kalium (SU)/die: 145.28 [25 - 125] mmol/d
Natrium (SU): 28.9 [54 - 150] mmol/l
Natrium (SU)/die: 92.5 [40 - 220] mmol/d
(06.09.2017 09:50:00)
Cystatin C (Latex Gen. 2): 1.04 [0.61 - 0.95] mg/l
(06.09.2017 09:45:00)
Natrium: 137 [135 - 145] mmol/l
Kalium: 4.6 [3.5 - 5] mmol/l
Calcium: 2.4 [2.0 - 2.7] mmol/l
anorg. Phosphat: 1.29 [0.87 - 1.45] mmol/l
Calcium-Phosphat-Produkt: 3.10 [<= 4.4] mmol²/l²
glomerul. Filtrationsr. CKD-EP: 62 ml/min /1,73qm
glomerul. Filtrationsr. (MDRD): 59 ml/min /1,73qm
Creatinin: 1.06 [0 - 0.95] mg/dl
Harnstoff: 52.1 [10 - 50] mg/dl
Lactat Dehydrogenase: 175 [<= 250] U/l
Cholesterin: 180 [130 - 220] mg/dl
Triglyceride: 51 [74 - 172] mg/dl
LDL - Cholesterin: 91 [0 - 150] mg/dl
HDL - Cholesterin: 79 [>= 35] mg/dl
Albumin: 4.5 [3.5 - 5.5] g/dl
Leukozyten: 4.7 [5 - 10] n*1000/µl
Erythrozyten: 4.09 [4 - 5] n*10E6/µl
Hämoglobin: 11.9 [12 - 16] g/dl
Hämatokrit: 36.6 [35 - 47] %
MCV: 89.5 [82 - 96] fl
MCH (HbE): 29.1 [27 - 33] pg
MCHC: 32.5 [32 - 36] g/dl
Thrombozyten: 302 [150 - 450] n*1000/µl
Mittleres Plättchenvolumen: 11.3 [9.6 - 12.0] fl
Neutrophile: 2.60 [1.8 - 7.2] n*1000/µl
Lymphozyten: 1.35 [1 - 4.05] n*1000/µl
Monozyten: 0.47 [0.08 - 0.8] n*1000/µl
Eosinophile: 0.2 [0.04 - 0.36] n*1000/µl
Basophile: 0.1 [0 - 0.08] n*1000/µl
% Neutrophile: 55.1 [41 - 70] %
% Lymphozyten: 28.7 [25 - 40] %
% Monozyten: 10.0 [2 - 8] %
% Eosinophile: 4.7 [0.8 - 6.2] %
% Basophile: 1.3 [0 - 1] %
Unreife Granulozyten: 0.01 n*1000/µl
% Unreife Granulozyten: 0.2 %
C-reaktives Protein: 0.02 [0 - 0.5] mg/dl
(06.09.2017 09:15:00)
TSH: 1.30 [0.3 - 4.0] mIU/l
PTH intakt: 106.0 [12 - 65] ng/l

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Bovender" version="0.5.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="NLog" version="4.5.11" targetFramework="net40" /> <package id="NUnit" version="2.6.4" targetFramework="net40" />
<package id="NUnit" version="3.11.0" targetFramework="net40" />
</packages> </packages>

4
deploy/make-installer.iss Executable file → Normal file
View File

@ -2,13 +2,13 @@
"x:\Code\zaaReloaded2\zaaReloaded2\zaaReloaded2.csproj /Build Release") "x:\Code\zaaReloaded2\zaaReloaded2\zaaReloaded2.csproj /Build Release")
#define VERSIONFILE "..\zaaReloaded2\VERSION" #define VERSIONFILE "..\zaaReloaded2\VERSION"
#define PUB_YEARS "2015-2017" #define PUB_YEARS "2015-2016"
#define TARGET_HOST "word" #define TARGET_HOST "word"
#define APP_GUID "{{8520B887-3AB1-422B-AB6B-A265D14FE4E5}" #define APP_GUID "{{8520B887-3AB1-422B-AB6B-A265D14FE4E5}"
#define ADDIN_NAME "zaaReloaded" #define ADDIN_NAME "zaaReloaded"
#define COMPANY "Daniel Kraus (bovender)" #define COMPANY "Daniel Kraus (bovender)"
#define DESCRIPTION "Word-Addin, das Lauris-Laborwerte in der Zentralen Arztbriefablage formatiert." #define DESCRIPTION "Word-Addin, das Lauris-Laborwerte in der Zentralen Arztbriefablage formatiert."
#define HOMEPAGE "https://doktorkraus.de/zaareloaded" #define HOMEPAGE "http://zaa.nephrowiki.de"
#define REGKEY "zaaReloaded2" #define REGKEY "zaaReloaded2"
#define SOURCEDIR "..\zaaReloaded2\bin\Release\" #define SOURCEDIR "..\zaaReloaded2\bin\Release\"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -368,7 +368,7 @@
<footer class="footer"> <footer class="footer">
<p> <p>
&copy; 2015-2017 <a href="https://www.bovender.de">Daniel Kraus</a> &copy; 2015-2016 <a href="http://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">

View File

@ -1,25 +1,19 @@
<?php <?php
function sendMail() { require(__DIR__ . '/PHPMailer/PHPMailerAutoload.php');
$to = 'dk@doktorkraus.de';
$headers = "From: \"zaaReloaded\" <dk@doktorkraus.de>";
$reportId = $_POST['report_id']; $reportId = $_POST['report_id'];
$info = print_r( $_POST, true ); // this will be a string, not an array! $mail = new PHPMailer;
$body = <<<EOF $mail->isSMTP();
zaaReloaded hat einen Fehler ausgelöst. $mail->SMTPAuth = true;
$mail->Host = 'nephrowiki.de';
$mail->Username = 'zaareloaded@nephrowiki.de';
$mail->Password = 'ooZ1eiJa';
// $mail->SMTPSecure = 'tls';
$mail->Port = 25;
----- $mail->From = 'zaareloaded@nephrowiki.de';
$mail->FromName = 'zaaReloaded';
Benutzerkommentar: $mail->addAddress('dk@doktorkraus.de');
$mail->Subject = "[zaaReloaded] Exception $reportId";
{$_POST['comment']}
-----
Technische Info: $info
--
www.doktorkraus.de/zaareloaded
EOF;
if ( $_POST['ccUser'] ) { if ( $_POST['ccUser'] ) {
$validMail = filter_var( $_POST['usersMail'], FILTER_VALIDATE_EMAIL ); $validMail = filter_var( $_POST['usersMail'], FILTER_VALIDATE_EMAIL );
@ -28,25 +22,32 @@ EOF;
$validUser = "\"$validUser\" "; // space character deliberately placed $validUser = "\"$validUser\" "; // space character deliberately placed
}; };
if ( $validMail ) { if ( $validMail ) {
$headers .= "\r\nCc: $validUser<$validMail>"; $mail->addCC($validMail, $validUser);
}; };
}; };
mail($to, "Exception report [$reportId]", $body, $headers);
$info = print_r( $_POST, true );
$mail->Body = <<<EOF
zaaReloaded exception
User's comment on submission:
{$_POST['comment']}
***
Technical details: $info
--
http://zaa.nephrowiki.de
EOF;
if ($mail->send())
{
// Must return the report ID to indicate success
echo($reportId);
} }
else
// ============================================================= {
// Begin main script echo($mail->ErrorInfo);
// =============================================================
if (!isset($_POST['report_id'])) {
http_response_code(400);
exit;
} }
sendMail();
// Return the report ID and the issue URL to signal all is well.
$reportId = $_POST['report_id'];
$load = "{\"ReportId\": \"$reportId\", \"IssueUrl\": \"https://www.doktorkraus.de/zaareloaded\"}";
error_log( __FILE__ . ": Load = $load" );
header('Content-Type: application/json');
echo $load;

View File

@ -1,4 +1,4 @@
2.4.2 2.2.3
https://doktorkraus.de/zaareloaded/downloads/zaaReloaded-$VERSION.exe http://zaa.nephrowiki.de/downloads/zaaReloaded-$VERSION.exe
2df8d1cd62b2a6b422099e6d59c8f2022ddd2177a649784a7cab8f7c23e734e2 deploy/releases/zaaReloaded-2.4.2.exe 077df8d43cf97ef4082cda988393734a825b51cf0e023527cdc5752502c83f03 deploy/releases/zaaReloaded-2.2.3.exe

View File

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 2013
VisualStudioVersion = 15.0.27130.2027 VisualStudioVersion = 12.0.31101.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
@ -25,7 +25,4 @@ Global
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5B5D2F0E-2C7D-4710-85CA-D9F2960DC07A}
EndGlobalSection
EndGlobal EndGlobal

View File

@ -2,7 +2,7 @@
/* Commands.cs /* Commands.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -20,7 +20,6 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Bovender.Extensions;
using zaaReloaded2.Controller; using zaaReloaded2.Controller;
using zaaReloaded2.Controller.Comments; using zaaReloaded2.Controller.Comments;
using zaaReloaded2.Formatter; using zaaReloaded2.Formatter;
@ -43,7 +42,7 @@ namespace zaaReloaded2
if (CanFormat()) if (CanFormat())
{ {
SettingsRepository repository = SettingsRepository.Load(); SettingsRepository repository = SettingsRepository.Load();
Guid lastSettingsUid = UserSettings.Default.LastSettings; Guid lastSettingsUid = Properties.Settings.Default.LastSettings;
Settings lastSettings = repository.FindByGuid(lastSettingsUid); Settings lastSettings = repository.FindByGuid(lastSettingsUid);
if (lastSettings != null) if (lastSettings != null)
{ {
@ -73,9 +72,10 @@ namespace zaaReloaded2
SettingsViewModel settingsVM = args.Content.ViewModel as SettingsViewModel; SettingsViewModel settingsVM = args.Content.ViewModel as SettingsViewModel;
Settings settings = settingsVM.RevealModelObject() as Settings; Settings settings = settingsVM.RevealModelObject() as Settings;
DoFormat(settings); DoFormat(settings);
UserSettings.Default.LastSettings = settings.Uid; Properties.Settings.Default.LastSettings = settings.Uid;
Properties.Settings.Default.Save();
}; };
vm.InjectInto<SettingsRepositoryView>().ShowDialogInForm(); vm.InjectInto<SettingsRepositoryView>().ShowDialog();
} }
/// <summary> /// <summary>
@ -108,7 +108,7 @@ namespace zaaReloaded2
+ "wenn Word in der Zentralen Arztbriefablage ausgeführt wird.\r" + "wenn Word in der Zentralen Arztbriefablage ausgeführt wird.\r"
+ "Bitte Word als eigenständige Anwendung starten und dann " + "Bitte Word als eigenständige Anwendung starten und dann "
+ "noch einmal versuchen."; + "noch einmal versuchen.";
a.OkButtonText = "Schließen"; a.OkButtonLabel = "Schließen";
a.Invoke(); a.Invoke();
} }
else else
@ -122,13 +122,13 @@ namespace zaaReloaded2
public static void ShowAbout() public static void ShowAbout()
{ {
ViewModels.AboutViewModel vm = new ViewModels.AboutViewModel(); ViewModels.AboutViewModel vm = new ViewModels.AboutViewModel();
vm.InjectInto<Views.AboutView>().ShowDialogInForm(); vm.InjectInto<Views.AboutView>().ShowDialog();
} }
public static void ShowPreferences() public static void ShowPreferences()
{ {
ViewModels.PreferencesViewModel vm = new PreferencesViewModel(); ViewModels.PreferencesViewModel.Default.InjectInto<Views.PreferencesView>()
vm.InjectInto<Views.PreferencesView>().ShowDialogInForm(); .ShowDialog();
} }
public static void ApplyDanielsStyle() public static void ApplyDanielsStyle()
@ -149,45 +149,34 @@ namespace zaaReloaded2
// (NB Technically, there is never _no_ selection in a document.) // (NB Technically, there is never _no_ selection in a document.)
Word.Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow; Word.Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow;
Word.Selection sel = activeWindow.Selection; Word.Selection sel = activeWindow.Selection;
Word.Paragraphs paragraphs = sel.Paragraphs; if (!(sel.Paragraphs.Count > 1
Word.Document document = activeWindow.Document;
if (!(paragraphs.Count > 1
|| (sel.Text.Length > 1 && sel.Text.EndsWith("\r")))) || (sel.Text.Length > 1 && sel.Text.EndsWith("\r"))))
{ {
Logger.Info("FormatDrugs: Attempting to auto-detect"); if (!Medication.Importer.AutoDetect(activeWindow.Document))
if (!Medication.Importer.AutoDetect(document))
{ {
Logger.Info("FormatDrugs: Failed to auto-detect");
NotificationAction a = new NotificationAction(); NotificationAction a = new NotificationAction();
a.Caption = "Formatieren nicht möglich"; a.Caption = "Formatieren nicht möglich";
a.Message = "Das Dokument scheint keine Medikationsliste zu enthalten."; a.Message = "Das Dokument scheint keine Medikationsliste zu enthalten.";
a.OkButtonText = "Schließen"; a.OkButtonLabel = "Schließen";
a.Invoke(); a.Invoke();
return; return;
} }
} }
Logger.Info("FormatDrugs: Importing"); Medication.Importer importer = new Medication.Importer(activeWindow.Selection.Text);
Medication.Importer importer = new Medication.Importer(sel.Text);
Medication.Formatter formatter = new Medication.Formatter(importer.Prescriptions); Medication.Formatter formatter = new Medication.Formatter(importer.Prescriptions);
Logger.Info("FormatDrugs: Formatting");
switch (columns) switch (columns)
{ {
case 1: case 1:
formatter.FormatOneColumn(document); formatter.FormatOneColumn(activeWindow.Document);
break; break;
case 2: case 2:
formatter.FormatTwoColumns(document); formatter.FormatTwoColumns(activeWindow.Document);
break; break;
default: default:
break; break;
} }
Logger.Info("FormatDrugs: Cleaning up");
Bovender.ComHelpers.ReleaseComObject(document);
Bovender.ComHelpers.ReleaseComObject(paragraphs);
Bovender.ComHelpers.ReleaseComObject(sel);
Bovender.ComHelpers.ReleaseComObject(activeWindow);
} }
#endregion #endregion
@ -198,92 +187,57 @@ namespace zaaReloaded2
{ {
// If no "real" selection exists, attempt to auto-detect the lab data. // If no "real" selection exists, attempt to auto-detect the lab data.
// (NB Technically, there is never _no_ selection in a document.) // (NB Technically, there is never _no_ selection in a document.)
Word.Application word = Globals.ThisAddIn.Application; Word.Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow;
Word.Document activeDocument = word.ActiveDocument; Word.Selection sel = activeWindow.Selection;
Word.Window activeWindow = word.ActiveWindow; if (!(sel.Paragraphs.Count > 1
Word.Selection selection = activeWindow.Selection; || (sel.Text.Length > 1 && sel.Text.EndsWith("\r"))))
Word.Paragraphs paragraphs = selection.Paragraphs;
Importer.IImporter importer = null;
Importer.AutoDetector autoDetector = new Importer.AutoDetector();
if (!(paragraphs.Count > 1
|| (selection.Text.Length > 1 && selection.Text.EndsWith("\r"))))
{ {
Logger.Info("DoFormat: Attempting to auto-detect"); if (!AutoDetect.Detect(activeWindow.Document))
Word.Document doc = activeWindow.Document;
if (!autoDetector.Detect(doc))
{ {
Logger.Info("DoFormat: Automatic detection failed");
NotificationAction a = new NotificationAction(); NotificationAction a = new NotificationAction();
a.Caption = "Formatieren nicht möglich"; a.Caption = "Formatieren nicht möglich";
a.Message = "Das Dokument scheint keine Lauris-Labordaten zu enthalten."; a.Message = "Das Dokument scheint keine Lauris-Labordaten zu enthalten.";
a.OkButtonText = "Schließen"; a.OkButtonLabel = "Schließen";
a.Invoke(); a.Invoke();
return; return;
} }
// Don't release the COM object here
// Bovender.ComHelpers.ReleaseComObject(doc);
importer = autoDetector.CreateImporter();
} }
else if (paragraphs.Count >= 1)
{
Logger.Info("DoFormat: Detecting mode of selection");
autoDetector.Detect(selection);
}
importer = autoDetector.CreateImporter();
Logger.Info("DoFormat: Importing");
importer.Import(selection.Text);
Formatter.Formatter formatter = new Formatter.Formatter(activeDocument);
ZaaImporter importer = new ZaaImporter();
importer.Import(Globals.ThisAddIn.Application.ActiveWindow.Selection.Text);
Formatter.Formatter formatter = new Formatter.Formatter(
Globals.ThisAddIn.Application.ActiveDocument);
formatter.Settings = settings; formatter.Settings = settings;
formatter.Laboratory = importer.Laboratory; formatter.Laboratory = importer.Laboratory;
CommentPool.Default.Reset(); CommentPool.Default.Reset();
CommentPool.Default.FillInComment += CommentPool_FillInComment; CommentPool.Default.FillInComment += CommentPool_FillInComment;
try try
{ {
Logger.Info("DoFormat: Formatting");
formatter.Run(); formatter.Run();
} }
catch (NoLaboratoryDataException e) catch (NoLaboratoryDataException)
{ {
Logger.Warn("DoFormat: No lab data?!");
Logger.Warn(e);
NotificationAction a = new NotificationAction(); NotificationAction a = new NotificationAction();
a.Caption = "Formatieren nicht möglich"; a.Caption = "Formatieren nicht möglich";
a.Message = "Die aktuelle Markierung scheint keine Labordaten zu enthalten."; a.Message = "Die aktuelle Markierung scheint keine Labordaten zu enthalten.";
a.OkButtonText = "Schließen"; a.OkButtonLabel = "Schließen";
a.Invoke(); 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) private static void CommentPool_FillInComment(object sender, ItemCommentEventArgs e)
{ {
if (UserSettings.Default.SuppressItemCommentInteraction) if (Preferences.Default.SuppressItemCommentInteraction)
{ {
Logger.Info("CommentPool_FillInComment: Comment interaction is suppressed by user settings");
e.Comment.IsCancelled = true; e.Comment.IsCancelled = true;
} }
else else
{ {
Logger.Info("CommentPool_FillInComment: Requesting user interaction");
ItemCommentViewModel vm = new ItemCommentViewModel(e.Comment); ItemCommentViewModel vm = new ItemCommentViewModel(e.Comment);
vm.InjectInto<ItemCommentView>().ShowDialogInForm(); vm.InjectInto<ItemCommentView>().ShowDialog();
} }
} }
#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
} }
} }

View File

@ -1,7 +1,7 @@
/* CommentPool.cs /* CommentPool.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ParameterComment.cs /* ParameterComment.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ParameterCommentEventArgs.cs /* ParameterCommentEventArgs.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -2,7 +2,7 @@
/* ControlElementBase.cs /* ControlElementBase.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -35,21 +35,7 @@ namespace zaaReloaded2.Controller.Elements
/// Gets a list of child elements, all of which must be derived /// Gets a list of child elements, all of which must be derived
/// from FormatElementBase. /// from FormatElementBase.
/// </summary> /// </summary>
public IList<FormatElementBase> Children public IList<FormatElementBase> Children { get; internal set; }
{
get
{
if (_children == null)
{
_children = new List<FormatElementBase>();
}
return _children;
}
internal set
{
_children = value;
}
}
/// <summary> /// <summary>
/// Informs whether this control element can have child elements. /// Informs whether this control element can have child elements.
@ -60,16 +46,17 @@ namespace zaaReloaded2.Controller.Elements
#region Constructors #region Constructors
public ControlElementBase() : base() { } public ControlElementBase()
: this(new List<FormatElementBase>())
{ }
public ControlElementBase(IList<FormatElementBase> children) public ControlElementBase(IList<FormatElementBase> children)
: this()
{ {
Children = children; Children = children;
} }
public ControlElementBase(FormatElementBase child) public ControlElementBase(FormatElementBase children)
: this(new List<FormatElementBase>() { child }) : this(new List<FormatElementBase>() { children })
{ } { }
#endregion #endregion
@ -124,11 +111,5 @@ namespace zaaReloaded2.Controller.Elements
} }
#endregion #endregion
#region Fields
IList<FormatElementBase> _children;
#endregion
} }
} }

View File

@ -1,7 +1,7 @@
/* Text.cs /* Text.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,6 @@ 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

View File

@ -1,7 +1,7 @@
/* ElementBase.cs /* ElementBase.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,7 +33,6 @@ 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>

View File

@ -1,7 +1,7 @@
/* FormatElementBase.cs /* FormatElementBase.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,8 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
using System;
using System.Runtime.Serialization; using System.Runtime.Serialization;
namespace zaaReloaded2.Controller.Elements namespace zaaReloaded2.Controller.Elements
{ {
/// <summary> /// <summary>

View File

@ -1,7 +1,7 @@
/* Items.cs /* Items.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -37,7 +37,6 @@ namespace zaaReloaded2.Controller.Elements
{ {
#region ElementBase implementation #region ElementBase implementation
[YamlDotNet.Serialization.YamlIgnore]
public override string Label public override string Label
{ {
get get

View File

@ -1,7 +1,7 @@
/* NextColumn.cs /* NextColumn.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SelectEachDay.cs /* SelectEachDay.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,7 +26,6 @@ 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"; }

View File

@ -1,7 +1,7 @@
/* SelectFirstDay.cs /* SelectFirstDay.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SelectFirstDay - Copy.cs /* SelectFirstDay - Copy.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* TwoColumns.cs /* TwoColumns.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* Settings.cs /* Settings.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -18,13 +18,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using zaaReloaded2; using System.Text;
using zaaReloaded2.Formatter; using zaaReloaded2.Formatter;
using zaaReloaded2.Controller.Elements; using zaaReloaded2.Controller.Elements;
using System.IO; using System.IO;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using YamlDotNet.Serialization; using System.Runtime.Serialization.Formatters.Soap;
namespace zaaReloaded2.Controller namespace zaaReloaded2.Controller
{ {
@ -34,24 +34,6 @@ namespace zaaReloaded2.Controller
[Serializable] [Serializable]
public class Settings : ICloneable, ISerializable public class Settings : ICloneable, ISerializable
{ {
#region Auxiliary factories for YamlDotNet
public static ISerializer BuildSerializer()
{
SerializerBuilder builder = new SerializerBuilder()
.WithCommonTagMappings()
.EnsureRoundtrip();
return builder.Build();
}
public static IDeserializer BuildDeserializer()
{
DeserializerBuilder builder = new DeserializerBuilder().WithCommonTagMappings();
return builder.Build();
}
#endregion
#region Persistence #region Persistence
/// <summary> /// <summary>
@ -63,29 +45,14 @@ 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);
IDeserializer deserializer = BuildDeserializer(); SoapFormatter formatter = new SoapFormatter();
Settings settings; Settings settings = formatter.Deserialize(reader.BaseStream) as 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.");
} }
Logger.Info("LoadFromFile: Successfully loaded '{0}", settings.Name);
settings.Uid = Guid.NewGuid(); settings.Uid = Guid.NewGuid();
Logger.Debug("LoadFromFile: new GUID is '{0}", settings.Uid);
return settings; return settings;
} }
@ -95,15 +62,9 @@ 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)
{ {
Logger.Info("SaveToFile: Settings name: {0}", Name); StreamWriter writer = new StreamWriter(fileName);
using (StreamWriter writer = new StreamWriter(fileName)) SoapFormatter formatter = new SoapFormatter();
{ formatter.Serialize(writer.BaseStream, this);
ISerializer serializer = BuildSerializer();
serializer.Serialize(writer, this);
}
Logger.Info("SaveToFile: Successfully saved to file '{0}'", fileName);
// SoapFormatter formatter = new SoapFormatter();
// formatter.Serialize(writer.BaseStream, this);
} }
#endregion #endregion
@ -126,11 +87,6 @@ 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>
@ -282,13 +238,5 @@ 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
} }
} }

View File

@ -1,7 +1,7 @@
/* SettingsRepository.cs /* SettingsRepository.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,15 +59,20 @@ namespace zaaReloaded2.Controller
/// </remarks> /// </remarks>
public static SettingsRepository Load() public static SettingsRepository Load()
{ {
SettingsRepository repo = UserSettings.Default.SettingsRepository; string s = Properties.Settings.Default.SettingsRepository;
if (repo == null) if (String.IsNullOrEmpty(s))
{ {
Logger.Warn("Load: No repository in user settings; creating a new one.");
return new SettingsRepository(); return new SettingsRepository();
} }
else else
{ {
Logger.Warn("Load: Loaded repository from user settings."); 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;
} }
@ -84,7 +89,13 @@ namespace zaaReloaded2.Controller
/// </remarks> /// </remarks>
public void Store() public void Store()
{ {
UserSettings.Default.SettingsRepository = this; MemoryStream stream = new MemoryStream();
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
@ -185,26 +196,19 @@ namespace zaaReloaded2.Controller
private void LoadDefaults() private void LoadDefaults()
{ {
Assembly myAssembly = this.GetType().Assembly; Assembly myAssembly = this.GetType().Assembly;
var deserializer = Settings.BuildDeserializer(); SoapFormatter deserializer = new SoapFormatter();
Logger.Info("LoadDefaults: Loading ward default"); Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded");
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded2")) Settings settings = deserializer.Deserialize(stream) as Settings;
{
StreamReader reader = new StreamReader(stream);
Settings settings = deserializer.Deserialize<Settings>(reader);
settings.Name = Properties.Settings.Default.SettingsNameWard + BUILTIN_LABEL; settings.Name = Properties.Settings.Default.SettingsNameWard + BUILTIN_LABEL;
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_1_UID); settings.Uid = Guid.Parse(DEFAULT_SETTINGS_1_UID);
ReplaceOrAdd(settings); ReplaceOrAdd(settings);
}
Logger.Info("LoadDefaults: Loading clinic default"); stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded");
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded2")) settings = deserializer.Deserialize(stream) as Settings;
{
StreamReader reader = new StreamReader(stream);
Settings settings = deserializer.Deserialize<Settings>(reader);
settings.Name = Properties.Settings.Default.SettingsNameClinic + BUILTIN_LABEL; settings.Name = Properties.Settings.Default.SettingsNameClinic + BUILTIN_LABEL;
settings.Uid = Guid.Parse(DEFAULT_SETTINGS_2_UID); settings.Uid = Guid.Parse(DEFAULT_SETTINGS_2_UID);
ReplaceOrAdd(settings); ReplaceOrAdd(settings);
} }
}
private void ReplaceOrAdd(Settings settings) private void ReplaceOrAdd(Settings settings)
{ {
@ -241,13 +245,5 @@ namespace zaaReloaded2.Controller
const string DEFAULT_SETTINGS_2_UID = "783C63B5-A964-4368-B2D0-D4595DCCB952"; const string DEFAULT_SETTINGS_2_UID = "783C63B5-A964-4368-B2D0-D4595DCCB952";
#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
} }
} }

View File

@ -0,0 +1,177 @@
<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>-903942278</_a>
<_b>-22298</_b>
<_c>17811</_c>
<_d>139</_d>
<_e>190</_e>
<_f>233</_f>
<_g>83</_g>
<_h>158</_h>
<_i>73</_i>
<_j>21</_j>
<_k>115</_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-8"/>
<Child18Object href="#ref-27"/>
<Child19Type href="#ref-28"/>
<Child19Object href="#ref-29"/>
<Child20Type href="#ref-28"/>
<Child20Object href="#ref-30"/>
<Child21Type href="#ref-28"/>
<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, CK-MB, hsTnT, NT-proBNP</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), Cystatin C</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-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, 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-Alb, U-Ery, U-Leu, U-Bakt, U-Schwangerschaftstest</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, CDT</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, Aldosteron, Renin, ARQ</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 &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, CsA (C0) &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, SIR &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, Vancomycin, Gentamicin, Tobramicin</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>2</Version>
<Content id="ref-51">Tumormarker: PSA, AFP</Content>
</a4:Items>
<a2:UnitySerializationHolder id="ref-28" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<Data id="ref-52">zaaReloaded2.Controller.Elements.CustomText</Data>
<UnityType>4</UnityType>
<AssemblyName href="#ref-7"/>
</a2:UnitySerializationHolder>
<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">Virologie (EDTA-Blut): CMV-PCR, BKV-PCR</Content>
</a4:CustomText>
<a4:CustomText 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">Autoantikörper: ANCA (IF) 1: (Ref. &#60; 1:40), MPO-ANCA (ELISA) IU/ml (Ref. &#60; 9), PR3-ANCA (ELISA) IU/ml (Ref. &#60; 3,5), ANA (IF), AnDNA (ELISA), AnDNA (RIA)</Content>
</a4:CustomText>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

View File

@ -1,53 +0,0 @@
!Settings
Name: Kopie von Standard für NepA
ReferenceStyle: IfSpecialItem
Elements: !ElementsList
- !SelectEachDay
Children: !FormatElementsList
- !Items
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
- !Items
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
- !Items
Content: 'Kardiale Marker: CK, CK-MB, hsTnT, NT-proBNP'
- !Items
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
- !Items
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
- !Items
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt, U-Schwangerschaftstest'
- !Items
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE, CDT'
- !Items
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
- !Items
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
- !Items
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
- !Items
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
- !Items
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
- !Items
Content: 'Hormone: iPTH, TSH, fT3, fT4, Aldosteron, Renin, ARQ'
- !Items
Content: 'Vitamine: B12, Folsäure'
- !Items
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
- !Items
Content: 'BGA: pH, Std.-Bic., BE'
- !Items
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
- !Items
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
- !Items
Content: 'Tumormarker: PSA, AFP'
- !CustomText
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
- !CustomText
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
- !CustomText
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)'
- !Items
Content: 'MSU: MSU-Keim, MSU-Multiresistenz'
Uid: 581d378c-8f7a-4a1c-8490-36e257770a09

View File

@ -1,9 +1,7 @@
# LAURIS-NAME "KANONISCHER NAME" MATERIAL DEZIMALSTELLEN "IMMER REFERENZBEREICH" "BLACKLIST" "NO-LABEL" # LAURIS-NAME "KANONISCHER NAME" MATERIAL DEZIMALSTELLEN "IMMER REFERENZBEREICH" "BLACKLIST"
# =========== ================== ======== ============== ======================= =========== ========== # =========== ================== ======== ============== ======================= ===========
"- Multiresistenz" Multiresistenz MSU --- --- --- X
"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
"Aerobe Kultur" Keim MSU --- --- --- X
"AFP (ECL, Elecsys, Roche)" AFP S --- X "AFP (ECL, Elecsys, Roche)" AFP S --- X
"aktuelles Bicarbonat" Bic BGA "aktuelles Bicarbonat" Bic BGA
Albumin Alb S Albumin Alb S
@ -134,7 +132,6 @@ Transferrin Transferrin S
TSH TSH S TSH TSH S
"Übergangsepithelien (U)" Übergangsep. U "Übergangsepithelien (U)" Übergangsep. U
"Unreife Granulozyten" Gran E "Unreife Granulozyten" Gran E
"Untersuchungsmaterial" Material MSU
"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

View File

@ -0,0 +1,254 @@
<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>1038630179</_a>
<_b>-1437</_b>
<_c>19419</_c>
<_d>151</_d>
<_e>122</_e>
<_f>7</_f>
<_g>44</_g>
<_h>130</_h>
<_i>195</_i>
<_j>52</_j>
<_k>194</_k>
</Uid>
<Name id="ref-3">Station ganz neu</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>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>2</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>2</Version>
<ChildrenCount>22</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"/>
<Child16Type href="#ref-15"/>
<Child16Object href="#ref-32"/>
<Child17Type href="#ref-15"/>
<Child17Object href="#ref-33"/>
<Child18Type href="#ref-34"/>
<Child18Object href="#ref-35"/>
<Child19Type href="#ref-34"/>
<Child19Object href="#ref-36"/>
<Child20Type href="#ref-34"/>
<Child20Object href="#ref-37"/>
<Child21Type href="#ref-15"/>
<Child21Object href="#ref-38"/>
</a4:SelectFirstDay>
<a2:UnitySerializationHolder id="ref-8" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<Data id="ref-39">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>2</Version>
<ChildrenCount>0</ChildrenCount>
</a4:NextColumn>
<a2:UnitySerializationHolder id="ref-10" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<Data id="ref-40">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>2</Version>
<ChildrenCount>22</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"/>
<Child16Type href="#ref-15"/>
<Child16Object href="#ref-32"/>
<Child17Type href="#ref-15"/>
<Child17Object href="#ref-33"/>
<Child18Type href="#ref-34"/>
<Child18Object href="#ref-35"/>
<Child19Type href="#ref-34"/>
<Child19Object href="#ref-36"/>
<Child20Type href="#ref-34"/>
<Child20Object href="#ref-37"/>
<Child21Type href="#ref-15"/>
<Child21Object href="#ref-38"/>
</a4:SelectLastDay>
<a2:UnitySerializationHolder id="ref-15" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<Data id="ref-41">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>2</Version>
<Content id="ref-42">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>2</Version>
<Content id="ref-43">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>2</Version>
<Content id="ref-44">Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP</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-45">Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C</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-46">Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, 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>2</Version>
<Content id="ref-47">Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt</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-48">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>2</Version>
<Content id="ref-49">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>2</Version>
<Content id="ref-50">Hämatologie: Hb, Hkt, Reti, Leu, Thr, 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>2</Version>
<Content id="ref-51">Diff.-BB: Neu, Lym, Mon, Baso, Eos</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-52">Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa</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>2</Version>
<Content id="ref-53">Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin</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>2</Version>
<Content id="ref-54">Hormone: iPTH, TSH, fT3, fT4</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>2</Version>
<Content id="ref-55">Vitamine: B12, Folsäure</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>2</Version>
<Content id="ref-56">Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.</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>2</Version>
<Content id="ref-57">BGA: pH, Std.-Bic., BE</Content>
</a4:Items>
<a4:Items id="ref-32" 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-58">Hepatitis-Serologie: Anti-HBs, Anti-HBc</Content>
</a4:Items>
<a4:Items id="ref-33" 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-59">Medikamente: TAC &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, CsA (C0) &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, SIR &#34;(Ziel-Talspiegel: &#60;&#62; µg/l)&#34;, Vancomycin, Gentamicin, Tobramicin</Content>
</a4:Items>
<a2:UnitySerializationHolder id="ref-34" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<Data id="ref-60">zaaReloaded2.Controller.Elements.CustomText</Data>
<UnityType>4</UnityType>
<AssemblyName href="#ref-13"/>
</a2:UnitySerializationHolder>
<a4:CustomText id="ref-35" 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-61">Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden</Content>
</a4:CustomText>
<a4:CustomText id="ref-36" 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-62">Virologie (EDTA-Blut): CMV-PCR, BKV-PCR</Content>
</a4:CustomText>
<a4:CustomText id="ref-37" 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-63">Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)</Content>
</a4:CustomText>
<a4:Items id="ref-38" 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-64">Tumormarker: PSA</Content>
</a4:Items>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

View File

@ -1,101 +0,0 @@
!Settings
Name: Kopie von Standard für Station
ReferenceStyle: IfSpecialItem
Elements: !ElementsList
- !TwoColumns
Children: !FormatElementsList
- !SelectFirstDay
Children: !FormatElementsList
- !Items
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
- !Items
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
- !Items
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
- !Items
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
- !Items
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
- !Items
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
- !Items
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
- !Items
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
- !Items
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
- !Items
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
- !Items
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
- !Items
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
- !Items
Content: 'Hormone: iPTH, TSH, fT3, fT4'
- !Items
Content: 'Vitamine: B12, Folsäure'
- !Items
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
- !Items
Content: 'BGA: pH, Std.-Bic., BE'
- !Items
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
- !Items
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
- !CustomText
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
- !CustomText
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
- !CustomText
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
- !Items
Content: 'Tumormarker: PSA'
- !NextColumn
Children: !FormatElementsList
- !SelectLastDay
Children: !FormatElementsList
- !Items
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
- !Items
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
- !Items
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
- !Items
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
- !Items
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
- !Items
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
- !Items
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
- !Items
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
- !Items
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
- !Items
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
- !Items
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
- !Items
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
- !Items
Content: 'Hormone: iPTH, TSH, fT3, fT4'
- !Items
Content: 'Vitamine: B12, Folsäure'
- !Items
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
- !Items
Content: 'BGA: pH, Std.-Bic., BE'
- !Items
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
- !Items
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
- !CustomText
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
- !CustomText
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
- !CustomText
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
- !Items
Content: 'Tumormarker: PSA'
Uid: 216d9bbb-94d8-47e5-b13b-59e0edd24d91

View File

@ -1,7 +1,7 @@
/* Demo.cs /* Demo.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

Binary file not shown.

View File

@ -2,7 +2,7 @@
ExceptionDetailView.xaml ExceptionDetailView.xaml
part of zaaReloaded2 part of zaaReloaded2
Copyright 2015-2017 Daniel Kraus Copyright 2015 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,8 +25,8 @@
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="720" SizeToContent="Height" Width="700" ShowInTaskbar="False"
ShowInTaskbar="False" ResizeMode="NoResize" WindowStyle="ToolWindow" Topmost="True" ResizeMode="CanResizeWithGrip"
x:Name="exceptionDetailView" x:Name="exceptionDetailView"
Title="Technische Fehlerdetails" Title="Technische Fehlerdetails"
settings:WindowState.Save="True" settings:WindowState.Save="True"

View File

@ -1,7 +1,7 @@
/* ExceptionDetailView.xaml.cs /* ExceptionDetailView.xaml.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -2,7 +2,7 @@
ExceptionView.xaml ExceptionView.xaml
part of zaaReloaded2 part of zaaReloaded2
Copyright 2015-2017 Daniel Kraus Copyright 2015 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="NoResize" SizeToContent="WidthAndHeight" ResizeMode="CanResizeWithGrip"
ShowInTaskbar="False" WindowStyle="ToolWindow" ShowInTaskbar="False" Topmost="True"
WindowStartupLocation="CenterScreen" WindowStartupLocation="CenterScreen"
Title="zaaReloaded2: Fehler!" Title="zaaReloaded2: Fehler!"
settings:WindowState.Save="True" settings:WindowState.Save="True"

View File

@ -1,7 +1,7 @@
/* ExceptionView.xaml.cs /* ExceptionView.xaml.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ExceptionViewModel.cs /* ExceptionViewModel.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.Current.ToString(); return zaaReloaded2.Updater.Version.CurrentVersion().ToString();
} }
} }
@ -83,12 +83,7 @@ namespace zaaReloaded2.ExceptionHandler
protected override string DevPath() protected override string DevPath()
{ {
return @"x:\\Code\\zaaReloaded2\\zaaReloaded2\\"; return @"x:\Code\zaaReloaded2\zaaReloaded2\";
}
protected override Bovender.UserSettings.UserSettingsBase UserSettings
{
get { return zaaReloaded2.UserSettings.Default; }
} }
#endregion #endregion

View File

@ -1,7 +1,7 @@
/* SubmissionCompletedAction.cs /* SubmissionCompletedAction.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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,12 +34,12 @@ namespace zaaReloaded2.ExceptionHandler
{ {
protected override Window CreateSuccessWindow() protected override Window CreateSuccessWindow()
{ {
return new SubmissionSuccessView(); return Content.InjectInto<SubmissionSuccessView>();
} }
protected override Window CreateFailureWindow() protected override Window CreateFailureWindow()
{ {
return new SubmissionFailureView(); return Content.InjectInto<SubmissionFailureView>();
} }
protected override Window CreateCancelledWindow() protected override Window CreateCancelledWindow()

View File

@ -2,7 +2,7 @@
SubmissionFailureView.xaml SubmissionFailureView.xaml
part of zaaReloaded2 part of zaaReloaded2
Copyright 2015-2017 Daniel Kraus Copyright 2015 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,14 +21,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:zaaReloaded2" xmlns:l="clr-namespace:zaaReloaded2"
SizeToContent="Height" Width="540" SizeToContent="WidthAndHeight"
Title="Fehlerbericht versenden" Title="Fehlerbericht versenden"
> >
<Window.Resources> <Window.Resources>
<ResourceDictionary Source="/Bovender;component/Style.xaml" /> <ResourceDictionary Source="/Bovender;component/Style.xaml" />
</Window.Resources> </Window.Resources>
<DockPanel Margin="10"> <StackPanel Margin="10" Orientation="Horizontal">
<TextBlock DockPanel.Dock="Left" FontSize="72" FontWeight="Bold" Foreground="Red" Margin="0,0,10,0" <TextBlock FontSize="72" FontWeight="Bold" Foreground="Red" Margin="0,0,10,0"
LineHeight="48" LineStackingStrategy="BlockLineHeight"> LineHeight="48" LineStackingStrategy="BlockLineHeight">
&#x00d7; &#x00d7;
<TextBlock.Effect> <TextBlock.Effect>
@ -36,13 +36,11 @@
</TextBlock.Effect> </TextBlock.Effect>
</TextBlock> </TextBlock>
<StackPanel> <StackPanel>
<TextBlock TextWrapping="Wrap" <TextBlock Text="Beim Senden des Fehlerberichtes ist wiederum leider ein Fehler aufgetreten... (Funktioniert das Netzwerk?)" />
Text="Beim Senden des Fehlerberichtes ist wiederum leider ein Fehler aufgetreten... (Funktioniert das Netzwerk?)" /> <TextBlock Text="{Binding Exception}" Margin="0,10,0,0" Foreground="LightSlateGray" />
<TextBlock TextWrapping="Wrap"
Text="{Binding Exception}" Margin="0,10,0,0" Foreground="LightSlateGray" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,10,0,0">
<Button Command="{Binding CloseViewCommand}" Content="Schließen" /> <Button Command="{Binding CloseViewCommand}" Content="Schließen" />
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</DockPanel> </StackPanel>
</Window> </Window>

View File

@ -1,7 +1,7 @@
/* SubmissionFailureView.xaml.cs /* SubmissionFailureView.xaml.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SubmissionProcessAction.cs /* SubmissionProcessAction.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -28,7 +28,7 @@ namespace zaaReloaded2.ExceptionHandler
{ {
protected override System.Windows.Window CreateView() protected override System.Windows.Window CreateView()
{ {
return new SubmissionProcessView(); return Content.InjectInto<SubmissionProcessView>();
} }
} }
} }

View File

@ -2,7 +2,7 @@
SubmissionProcessView.xaml SubmissionProcessView.xaml
part of zaaReloaded2 part of zaaReloaded2
Copyright 2015-2017 Daniel Kraus Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* SubmissionProcessView.xaml.cs /* SubmissionProcessView.xaml.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -2,7 +2,7 @@
SubmissionSuccessView.xaml SubmissionSuccessView.xaml
part of zaaReloaded2 part of zaaReloaded2
Copyright 2015-2017 Daniel Kraus Copyright 2015 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,15 +21,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:zaaReloaded2" xmlns:l="clr-namespace:zaaReloaded2"
SizeToContent="Height" Width="400" SizeToContent="WidthAndHeight"
Title="Fehlerbericht versenden" Title="Fehlerbericht versenden"
> >
<Window.Resources> <Window.Resources>
<ResourceDictionary Source="/Bovender;component/Style.xaml" /> <ResourceDictionary Source="/Bovender;component/Style.xaml" />
</Window.Resources> </Window.Resources>
<DockPanel Margin="10"> <StackPanel Margin="10" Orientation="Horizontal">
<TextBlock DockPanel.Dock="Left" <TextBlock FontSize="48" FontWeight="Bold" Foreground="GreenYellow" Margin="0,0,10,0"
FontSize="48" FontWeight="Bold" Foreground="GreenYellow" Margin="0,0,10,0"
LineHeight="48" LineStackingStrategy="BlockLineHeight"> LineHeight="48" LineStackingStrategy="BlockLineHeight">
&#x2714; &#x2714;
<TextBlock.Effect> <TextBlock.Effect>
@ -37,10 +36,10 @@
</TextBlock.Effect> </TextBlock.Effect>
</TextBlock> </TextBlock>
<StackPanel> <StackPanel>
<TextBlock TextWrapping="Wrap" Text="Der Fehlerbericht wurde erfolgreich versandt." /> <TextBlock Text="Der Fehlerbericht wurde erfolgreich versandt." />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 10 0 0"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0 10 0 0">
<Button Command="{Binding CloseViewCommand}" Content="Schließen" /> <Button Command="{Binding CloseViewCommand}" Content="Schließen" />
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</DockPanel> </StackPanel>
</Window> </Window>

View File

@ -1,7 +1,7 @@
/* SubmissionSuccessView.xaml.cs /* SubmissionSuccessView.xaml.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* AbnormalStyle.cs /* AbnormalStyle.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* DanielsStyle.cs /* DanielsStyle.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* DocumentWriter.cs /* DocumentWriter.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* Formatter.cs /* Formatter.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -57,8 +57,7 @@ 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, new TimePointFormatter(tp, Settings.ReferenceStyle, Settings.AbnormalStyle);
Settings.AbnormalStyle, Settings.PreferVerboseMolar);
} }
} }
} }
@ -273,18 +272,15 @@ 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
@ -297,16 +293,13 @@ 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
@ -320,7 +313,6 @@ 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
@ -430,13 +422,5 @@ 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
} }
} }

View File

@ -1,7 +1,7 @@
/* IItemFormatterDictionary.cs /* IItemFormatterDictionary.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ITimePointFormatterDictionary.cs /* ITimePointFormatterDictionary.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ItemFormatter.cs /* ItemFormatter.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -47,11 +47,6 @@ 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
@ -76,11 +71,6 @@ namespace zaaReloaded2.Formatter
/// </summary> /// </summary>
public bool IsBlacklisted { get { return LabItem.IsBlacklisted; } } public bool IsBlacklisted { get { return LabItem.IsBlacklisted; } }
/// <summary>
/// Gets whether the Item is marked to suppress its label in the thesaurus.
/// </summary>
public bool SuppressLabel { get { return LabItem.SuppressLabel; } }
/// <summary> /// <summary>
/// Gets or sets the item's comment. /// Gets or sets the item's comment.
/// </summary> /// </summary>
@ -96,14 +86,12 @@ 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
@ -159,12 +147,7 @@ namespace zaaReloaded2.Formatter
if (LabItem.HasUnit) if (LabItem.HasUnit)
{ {
string space = LabItem.Unit.StartsWith("/") ? String.Empty : " "; string space = LabItem.Unit.StartsWith("/") ? String.Empty : " ";
unit = LabItem.Unit; unit = String.Format("{0}{1}", space, LabItem.Unit);
if (PreferVerboseMolar)
{
unit = LabItem.Unit.Replace("mM", "mmol/l");
}
unit = String.Format("{0}{1}", space, unit);
} }
else else
{ {
@ -199,15 +182,7 @@ namespace zaaReloaded2.Formatter
if (comment != String.Empty) comment = " " + comment; if (comment != String.Empty) comment = " " + comment;
} }
string name; string name = IncludeMaterial ? LabItem.QualifiedName : LabItem.Name;
if (LabItem.SuppressLabel)
{
name = String.Empty;
}
else
{
name = (IncludeMaterial ? LabItem.QualifiedName : LabItem.Name) + " ";
}
string output = string output =

View File

@ -1,7 +1,7 @@
/* ItemFormatterDictionary.cs /* ItemFormatterDictionary.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* NoLaboratoryDataException.cs /* NoLaboratoryDataException.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* ReferenceStyle.cs /* ReferenceStyle.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* TimePointFormatter.cs /* TimePointFormatter.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.
@ -105,15 +105,14 @@ namespace zaaReloaded2.Formatter
/// used to create ItemFormatter objects.</param> /// used to create ItemFormatter objects.</param>
public TimePointFormatter(TimePoint timePoint, public TimePointFormatter(TimePoint timePoint,
ReferenceStyle referenceStyle, ReferenceStyle referenceStyle,
AbnormalStyle abnormalStyle, AbnormalStyle abnormalStyle)
bool preferVerboseMolar)
{ {
TimeStamp = timePoint.TimeStamp; TimeStamp = timePoint.TimeStamp;
ItemFormatters = new ItemFormatterDictionary(); ItemFormatters = new ItemFormatterDictionary();
foreach (LabItem item in timePoint.Items.Values) foreach (LabItem item in timePoint.Items.Values)
{ {
ItemFormatters[item.QualifiedName] = new ItemFormatter( ItemFormatters[item.QualifiedName] = new ItemFormatter(
item, referenceStyle, abnormalStyle, preferVerboseMolar); item, referenceStyle, abnormalStyle);
} }
} }

View File

@ -1,7 +1,7 @@
/* TimePointFormatterDictionary.cs /* TimePointFormatterDictionary.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,7 +1,7 @@
/* Helpers.cs /* Helpers.cs
* part of zaaReloaded2 * part of zaaReloaded2
* *
* Copyright 2015-2018 Daniel Kraus * Copyright 2015 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.

View File

@ -1,262 +0,0 @@
using Microsoft.Office.Interop.Word;
/* AutoDetect.cs
* part of zaaReloaded2
*
* Copyright 2015-2018 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 zaaReloaded2.Importer.ZaaImporter;
using zaaReloaded2.Importer.ClinicImporter;
namespace zaaReloaded2.Importer
{
class AutoDetector
{
#region Properties
public ImportMode ImportMode { get; private set; }
#endregion
#region Public methods
/// <summary>
/// Attempts to automatically detect laboratory data in the Word
/// document.
/// </summary>
/// <param name="document">Document which to parse for laboratory
/// data.</param>
/// <returns>True if laboratory data was detected, false if not.</returns>
/// <exception cref="ArgumentNullException">if <paramref name="document"/>
/// is null.</exception>
public bool Detect(Document document)
{
if (document == null)
{
throw new ArgumentNullException(
"Automatic laboratory detection requires a document.");
}
int startParagraph = 1;
if (document.Bookmarks.Exists("Labor"))
{
Logger.Info("Detect: Found lab bookmark");
startParagraph = GetParagraphIndex(
document,
document.Bookmarks["Labor"].Range.Paragraphs[1]);
}
return DetectRange(document, startParagraph, document.Paragraphs.Count);
}
public bool Detect(Selection selection)
{
if (selection == null)
{
throw new ArgumentNullException(
"Automatic laboratory detection requires a selection.");
}
return DetectRange(selection.Document,
GetParagraphIndex(selection.Document, selection.Paragraphs.First),
GetParagraphIndex(selection.Document, selection.Paragraphs.Last) + 1);
}
public IImporter CreateImporter()
{
switch (ImportMode)
{
case ImportMode.Zaa:
return new ZaaImporter.ZaaImporter();
case ImportMode.Clinic:
return new ClinicImporter.ClinicImporter();
default:
throw new InvalidOperationException("Cannot create Importer for undefined import mode!");
}
}
#endregion
#region Private methods
private bool DetectRange(Document document, int startParagraph, int endParagraph)
{
if (document == null)
{
throw new ArgumentNullException(
"Automatic laboratory detection requires a document.");
}
if (startParagraph < 1 || startParagraph > document.Paragraphs.Count)
{
Logger.Fatal("Start paragraph index must be between {0} and {1}, was {2}!",
1, document.Paragraphs.Count, startParagraph);
throw new ArgumentOutOfRangeException("startParagraph");
}
if (endParagraph < startParagraph || endParagraph > document.Paragraphs.Count)
{
Logger.Fatal("End paragraph index must be between {0} and {1}, was {2}!",
startParagraph, document.Paragraphs.Count, endParagraph);
throw new ArgumentOutOfRangeException("endParagraph");
}
Logger.Info("DetectRange: Start paragraph is #{0}, end is #{1}, document has #{2} paragraphs",
startParagraph, endParagraph, document.Paragraphs.Count);
// TODO: Try to make this algorithm more elegant.
Paragraph start = null;
Paragraph end = null;
int i = startParagraph;
while (i <= endParagraph)
{
// Expect the first paragraph of a Lauris block to be
// a time stamp. This prevents erroneous detection of
// lines such as "Tel. (09 31) 201-39432; -39126", which
// happen to structurally resemble a paragraph with
// laboratory items.
if (IsTimeStampParagraph(document.Paragraphs[i]))
{
start = document.Paragraphs[i];
Logger.Info("DetectRange: Found time stamp line in paragraph #{0}", i);
break;
}
i++;
}
if (start != null)
{
Logger.Info("DetectRange: Determining lab block");
while (i <= endParagraph - 1)
{
Paragraph p = document.Paragraphs[i + 1];
if (!IsLabParagraph(p) && !IsEmptyParagraph(p))
{
Logger.Info("Detect: Last lab paragraph is #{0}", i);
end = document.Paragraphs[i];
break;
}
i++;
}
if (end == null)
{
end = document.Paragraphs[endParagraph];
}
document.Range(start.Range.Start, end.Range.End).Select();
return true;
}
Logger.Warn("DetectRange: Did not find lab block!");
return false;
}
/// <summary>
/// Returns true if a paragraph is a time stamp line.
/// </summary>
private bool IsTimeStampParagraph(Paragraph paragraph)
{
string text = paragraph.Range.Text;
bool isCinicTimePoint = ClinicTimePoint.IsTimeStampLine(text);
bool isZaaTimePoint = LaurisTimePoint.IsTimeStampLine(text);
// // If the line is a ZAA time point, but not a clinic timepoint, we can deduct that
// // the lab mode *must* be ZAA, because it will be a line in the form
// // "(17.09.2015-201810:44:00) Cyclosporin-A vor Gabe: 130 µg/l;" which does not
// // occur in the clinic format.
// if ((ImportMode == ImportMode.Undefined) && isZaaTimePoint && !isCinicTimePoint)
// {
// Logger.Info("IsTimeStampParagraph: Found ZAA time stamp, setting mode to ZAA");
// ImportMode = ImportMode.Zaa;
// }
return isCinicTimePoint || isZaaTimePoint;
}
/// <summary>
/// Returns true if a paragraph is either a time stamp line
/// or a paragraph with laboratory items.
/// </summary>
/// <remarks>
/// This method determines the mode: either ZAA-generated output or clinic system-generated
/// output. ZAA is given priority over clinic. Once a mode is detected, it will stick to
/// that mode.
/// </remarks>
/// <param name="paragraph"></param>
/// <returns></returns>
private bool IsLabParagraph(Paragraph paragraph)
{
string text = paragraph.Range.Text;
bool isLabParagraph = false;
switch (ImportMode)
{
case ImportMode.Undefined:
if (LaurisParagraph.ResemblesLaurisParagraph(text) || LaurisTimePoint.IsTimeStampLine(text))
{
ImportMode = ImportMode.Zaa;
Logger.Info("IsLabParagraph: Setting mode to ZAA");
isLabParagraph = true;
}
else if (ClinicLine.ResemblesClinicLine(text) || ClinicTimePoint.IsTimeStampLine(text))
{
ImportMode = ImportMode.Clinic;
Logger.Info("IsLabParagraph: Setting mode to Clinic");
isLabParagraph = true;
}
break;
case ImportMode.Zaa:
isLabParagraph = LaurisParagraph.ResemblesLaurisParagraph(text) || LaurisTimePoint.IsTimeStampLine(text);
break;
case ImportMode.Clinic:
isLabParagraph = ClinicLine.ResemblesClinicLine(text) || ClinicTimePoint.IsTimeStampLine(text);
break;
default:
break;
}
return isLabParagraph;
}
/// <summary>
/// Returns the index of a paragraph.
/// </summary>
/// <remarks>
/// http://word.mvps.org/faqs/macrosvba/GetIndexNoOfPara.htm
/// </remarks>
/// <param name="paragraph">Paragraph whose index to return.</param>
/// <returns>Index of the paragraph.</returns>
private int GetParagraphIndex(Document document, Paragraph paragraph)
{
return document.Range(0, paragraph.Range.Start).Paragraphs.Count;
}
private bool IsEmptyParagraph(Paragraph paragraph)
{
string text = paragraph.Range.Text;
return String.IsNullOrWhiteSpace(text);
}
#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
}
}

View File

@ -1,170 +0,0 @@
/* ZaaImporter.cs
* part of zaaReloaded2
*
* Copyright 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.Diagnostics;
using System.Linq;
using System.Text;
using Bovender.Extensions;
using zaaReloaded2.LabModel;
using zaaReloaded2.Thesaurus;
namespace zaaReloaded2.Importer
{
/// <summary>
/// Base class for certain importers such as ZaaImporter, ClinicImporter.
/// </summary>
public class BaseImporter : IImporter
{
#region IImporter implementation
public Laboratory Laboratory
{
[DebuggerStepThrough]
get
{
if (_laboratory == null)
{
_laboratory = new Laboratory();
}
return _laboratory;
}
[DebuggerStepThrough]
set
{
_laboratory = value;
}
}
public bool Success
{
get
{
return Laboratory.TimePoints.Count > 0;
}
}
/// <summary>
/// Splits the <paramref name="text"/> into individual time points
/// and creates <see cref="TimePoint"/> objects from them.
/// </summary>
public void Import(string text)
{
Logger.Info("Import: \"{0}\"", text.TruncateWithEllipsis(120));
string[] paragraphs = Helpers.SplitParagraphs(text);
Logger.Info("Import: {0} paragraph(s)", paragraphs.Length);
TimePoint timePoint = null;
foreach (string paragraph in paragraphs)
{
Logger.Info("Import: \"{0}\"", paragraph.TruncateWithEllipsis(40));
// If the current paragraph looks like a time stamp,
// create a new time point.
if (IsTimeStamp(paragraph))
{
Logger.Info("Import: Time stamp detected", paragraph);
timePoint = CreateTimePoint(paragraph, _parameters, _units);
// Add the time point to the laboratory only if none
// with the same time stamp exists yet.
TimePoint existing = null;
if (Laboratory.TryGetTimePoint(timePoint.TimeStamp, ref existing))
{
timePoint = existing;
}
else
{
Laboratory.AddTimePoint(timePoint);
}
}
// If the current paragraph looks like a paragraph with
// laboratory items, add it to the current time point;
// if no time point exists yet, create one.
else if (IsItemsParagraph(paragraph))
{
Logger.Info("Import: Paragraph with lab items detected");
if (timePoint == null)
{
timePoint = CreateTimePoint(paragraph, _parameters, _units);
Laboratory.AddTimePoint(timePoint);
}
else
{
timePoint.Parse(paragraph);
}
}
else
{
Logger.Debug("Import: Neither time stamp, nor Lauris paragraph");
}
}
}
#endregion
#region Constructor
public BaseImporter()
{
_parameters = Parameters.Default;
_units = Units.Default;
}
#endregion
#region Virtual methods
protected virtual TimePoint CreateTimePoint(string paragraph, Parameters parameters, Units units)
{
NotImplementedException e = new NotImplementedException("Cannot create TimePoint in base class - derived class must override CreateTimePoint");
Logger.Fatal(e);
throw e;
}
protected virtual bool IsTimeStamp(string paragraph)
{
NotImplementedException e = new NotImplementedException("Cannot test time stamp in base class - derived class must override IsTimeStamp");
Logger.Fatal(e);
throw e;
}
protected virtual bool IsItemsParagraph(string paragraph)
{
NotImplementedException e = new NotImplementedException("Cannot test items in base class - derived class must override IsItemsParagraph");
Logger.Fatal(e);
throw e;
}
#endregion
#region Fields
Laboratory _laboratory;
Parameters _parameters;
Units _units;
#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
}
}

View File

@ -1,68 +0,0 @@
/* ZaaImporter.cs
* part of zaaReloaded2
*
* Copyright 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.Diagnostics;
using System.Linq;
using System.Text;
using Bovender.Extensions;
using zaaReloaded2.LabModel;
using zaaReloaded2.Thesaurus;
namespace zaaReloaded2.Importer.ClinicImporter
{
/// <summary>
/// Imports laboratory items by parsing the Lauris data from a
/// physician's letter.
/// </summary>
public class ClinicImporter : BaseImporter
{
#region Constructor
public ClinicImporter() : base() { }
#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
#region Implementation of BaseImporter
protected override TimePoint CreateTimePoint(string paragraph, Parameters parameters, Units units)
{
return new ClinicTimePoint(paragraph, parameters, units);
}
protected override bool IsTimeStamp(string paragraph)
{
return ClinicTimePoint.IsTimeStampLine(paragraph);
}
protected override bool IsItemsParagraph(string paragraph)
{
return ClinicLine.ResemblesClinicLine(paragraph);
}
#endregion
}
}

View File

@ -1,140 +0,0 @@
/* ClinicLine.cs
* part of zaaReloaded2
*
* Copyright 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.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using zaaReloaded2.Thesaurus;
using zaaReloaded2.LabModel;
using zaaReloaded2.Importer.ZaaImporter;
using Bovender.Extensions;
namespace zaaReloaded2.Importer.ClinicImporter
{
/// <summary>
/// Parses a line in a lab section produced by the outpatients clinic system,
/// and creates a list of <see cref="zaaReloaded2.Importer.BaseImporter.LabItem"/>s.
/// </summary>
public class ClinicLine
{
#region Static methods
/// <summary>
/// Investigates a paragraph and determines whether it looks
/// like a clinic laboratory items line.
/// </summary>
public static bool ResemblesClinicLine(string line)
{
return _expectedFormat.IsMatch(line);
}
#endregion
#region Public properties
public LaurisItem Item { get; private set; }
/// <summary>
/// Gets the original line that this object was constructed from.
/// </summary>
public string OriginalLine{ get; private set; }
/// <summary>
/// Is true if the <see cref="OriginalLine"/> matches the expected
/// format and contains <see cref="LabItem"/>s.
/// </summary>
public bool IsClinicLine{ get; private set; }
#endregion
#region Constructor
public ClinicLine(string line)
{
OriginalLine = line;
Parse();
}
/// <summary>
/// Constructs a <see cref="ClinicLine"/> object from a given line,
/// using a <paramref name="parameterDictionary"/> and a
/// <paramref name="unitDictionary"/> to translate the individual
/// items' properties.
/// </summary>
/// <param name="line">line to parse.</param>
/// <param name="parameterDictionary">ParameterDictionary that contains
/// canonical names and material types.</param>
/// <param name="unitDictionary">Unit dictionary that contains canonical
/// unit names.</param>
public ClinicLine(string line,
Thesaurus.Parameters parameterDictionary,
Thesaurus.Units unitDictionary)
{
OriginalLine = line;
_parameterDictionary = parameterDictionary;
_unitDictionary = unitDictionary;
Parse();
}
#endregion
#region Private methods
/// <summary>
/// Attempts to parse a line.
/// </summary>
void Parse()
{
Logger.Info("Parse: \"{0}\"", OriginalLine.TruncateWithEllipsis(40).Replace("\t", " "));
Match m = _expectedFormat.Match(OriginalLine);
if (m.Success)
{
Logger.Info("Parse: Matches clinic line format");
Item = new LaurisItem(m.Groups["item"].Value, _parameterDictionary, _unitDictionary);
IsClinicLine = true;
}
else
{
Logger.Info("Parse: Does not match clinic line format");
IsClinicLine = false;
}
}
#endregion
#region Fields
// Microbiology report has different format, gets special treatment
// static readonly Regex _expectedFormat = new Regex(@"^\t(?<item>[^:]+:(\t([^\t]+)?){3})|\t(?<item>(- Multiresistenz|Aerobe Kultur|Befundstatus Auftrag|Negatives Kulturergebnis|Untersuchungsmaterial:|Wachstum):(\t([^\t]+)))");
static readonly Regex _expectedFormat = new Regex(@"^\t(?<item>[^:]+:{1,2}(\t([^\t]+)?){1,3})");
Thesaurus.Parameters _parameterDictionary;
Thesaurus.Units _unitDictionary;
#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
}
}

Some files were not shown because too many files have changed in this diff Show More