Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
eb524689b2 | |||
85b0356971 | |||
2755655e8f | |||
a5b4daae7a | |||
3267bd9d5a | |||
753219c1eb | |||
b1cd1f1a05 | |||
20c0b8a76e | |||
c104568e5b | |||
2a3ff8c63e | |||
d01bdabf35 |
3
.gitignore
vendored
@ -27,6 +27,3 @@ doc/
|
|||||||
private/
|
private/
|
||||||
*.nupkg
|
*.nupkg
|
||||||
doxygen_sqlite3.db
|
doxygen_sqlite3.db
|
||||||
Backup/
|
|
||||||
.vs/
|
|
||||||
publish/
|
|
||||||
|
38
HISTORY.md
@ -1,41 +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)
|
Version 2.3.1 (2017-03-03)
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
2
Makefile
@ -23,7 +23,7 @@ versioninfo:
|
|||||||
mv www/versioninfo.tmp www/versioninfo.txt
|
mv www/versioninfo.tmp www/versioninfo.txt
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
rsync -ruvzL --progress deploy/releases/* bovender.de:/var/www/html/zaareloaded/downloads/
|
rsync -ruvz --progress deploy/releases/* bovender.de:/var/www/html/zaareloaded/downloads/
|
||||||
|
|
||||||
website:
|
website:
|
||||||
rsync -ruvz www/ bovender.de:/var/www/html/zaareloaded/
|
rsync -ruvz www/ bovender.de:/var/www/html/zaareloaded/
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* CommentPoolTest.cs
|
/* CommentPoolTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemCommentTest.cs
|
/* ItemCommentTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* CloneTest.cs
|
/* CloneTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemsTest.cs
|
/* ItemsTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepositoryTest.cs
|
/* SettingsRepositoryTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -27,18 +27,18 @@ 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.UserSettings.Default.SettingsRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
[TearDown]
|
[TearDown]
|
||||||
public void TearDown()
|
public void TearDown()
|
||||||
{
|
{
|
||||||
zaaReloaded2.UserSettings.Default.SettingsRepository = _savedRepository;
|
zaaReloaded2.UserSettings.Default.SettingsRepository = _savedSettings;
|
||||||
zaaReloaded2.UserSettings.Default.Save();
|
zaaReloaded2.UserSettings.Default.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsTest.cs
|
/* SettingsTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DocumentWriterClass.cs
|
/* DocumentWriterClass.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* FormatterTest.cs
|
/* FormatterTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -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-201710: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-201710:44:00:\rCsA (C0) 130 µg/l\r\r",
|
||||||
document.Range().Text);
|
document.Range().Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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'.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisItemTest.cs
|
/* LaurisItemTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisParagraphTest.cs
|
/* LaurisParagraphTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisTimePointTest.cs
|
/* LaurisTimePointTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ZaaImporterTest.cs
|
/* ZaaImporterTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* UnitTest1.cs
|
/* UnitTest1.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ImporterTest.cs
|
/* ImporterTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* PrescriptionTest.cs
|
/* PrescriptionTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDayTest.cs
|
/* SelectFirstDayTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TestHelpers.cs
|
/* TestHelpers.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -21,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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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,46 +33,47 @@
|
|||||||
<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.17.0.0, Culture=neutral, PublicKeyToken=df1c15557d8b6df8, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\bovender\Bovender\bin\Debug\Bovender.dll</HintPath>
|
<HintPath>..\packages\Bovender.0.17.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="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.4.5.11\lib\net40-client\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.4.4.3\lib\net40\NLog.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.11.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.11.0\lib\net40\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.6.1\lib\net40\nunit.framework.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="PresentationCore" />
|
<Reference Include="PresentationCore" />
|
||||||
<Reference Include="PresentationFramework" />
|
<Reference Include="PresentationFramework" />
|
||||||
<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" />
|
||||||
<Reference Include="WindowsBase" />
|
<Reference Include="WindowsBase" />
|
||||||
|
<Reference Include="YamlDotNet, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ec19458f3c15af5e, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\YamlDotNet.Signed.4.1.0\lib\net35\YamlDotNet.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Choose>
|
<Choose>
|
||||||
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
|
||||||
@ -95,10 +91,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" />
|
||||||
@ -152,10 +144,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 +164,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">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ParametersTest.cs
|
/* ParametersTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -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"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* {{
|
* {{
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Class1.cs
|
/* Class1.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ElementPickerViewModelTest.cs
|
/* ElementPickerViewModelTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemCommentViewModelTest.cs
|
/* ItemCommentViewModelTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepositoryViewModel.cs
|
/* SettingsRepositoryViewModel.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsViewModelTest.cs
|
/* SettingsViewModelTest.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
<!--
|
||||||
app.config
|
app.config
|
||||||
part of zaaReloaded2
|
part of zaaReloaded2
|
||||||
@ -21,9 +21,9 @@
|
|||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="YamlDotNet" publicKeyToken="ec19458f3c15af5e" culture="neutral"/>
|
<assemblyIdentity name="YamlDotNet" publicKeyToken="ec19458f3c15af5e" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
|
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
|
</configuration>
|
@ -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
|
|
@ -1,6 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="Bovender" version="0.17.0.0" targetFramework="net40" />
|
||||||
<package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net40" />
|
<package id="Expression.Blend.Sdk" version="1.0.2" targetFramework="net40" />
|
||||||
<package id="NLog" version="4.5.11" targetFramework="net40" />
|
<package id="NLog" version="4.4.3" targetFramework="net40" />
|
||||||
<package id="NUnit" version="3.11.0" targetFramework="net40" />
|
<package id="NUnit" version="3.6.1" targetFramework="net40" />
|
||||||
|
<package id="YamlDotNet.Signed" version="4.1.0" targetFramework="net40" />
|
||||||
</packages>
|
</packages>
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 29 KiB |
@ -1,52 +1,53 @@
|
|||||||
<?php
|
<?php
|
||||||
function sendMail() {
|
require(__DIR__ . '/PHPMailer/PHPMailerAutoload.php');
|
||||||
$to = 'dk@doktorkraus.de';
|
$reportId = $_POST['report_id'];
|
||||||
$headers = "From: \"zaaReloaded\" <dk@doktorkraus.de>";
|
$mail = new PHPMailer;
|
||||||
$reportId = $_POST['report_id'];
|
$mail->isSMTP();
|
||||||
$info = print_r( $_POST, true ); // this will be a string, not an array!
|
$mail->SMTPAuth = true;
|
||||||
$body = <<<EOF
|
$mail->Host = 'nephrowiki.de';
|
||||||
zaaReloaded hat einen Fehler ausgelöst.
|
$mail->Username = 'zaareloaded@nephrowiki.de';
|
||||||
|
$mail->Password = 'ooZ1eiJa';
|
||||||
|
// $mail->SMTPSecure = 'tls';
|
||||||
|
$mail->Port = 25;
|
||||||
|
|
||||||
-----
|
$mail->From = 'zaareloaded@nephrowiki.de';
|
||||||
|
$mail->FromName = 'zaaReloaded';
|
||||||
|
$mail->addAddress('dk@doktorkraus.de');
|
||||||
|
$mail->Subject = "[zaaReloaded] Exception $reportId";
|
||||||
|
|
||||||
Benutzerkommentar:
|
if ( $_POST['ccUser'] ) {
|
||||||
|
|
||||||
{$_POST['comment']}
|
|
||||||
|
|
||||||
-----
|
|
||||||
|
|
||||||
Technische Info: $info
|
|
||||||
|
|
||||||
--
|
|
||||||
www.doktorkraus.de/zaareloaded
|
|
||||||
EOF;
|
|
||||||
|
|
||||||
if ( $_POST['ccUser'] ) {
|
|
||||||
$validMail = filter_var( $_POST['usersMail'], FILTER_VALIDATE_EMAIL );
|
$validMail = filter_var( $_POST['usersMail'], FILTER_VALIDATE_EMAIL );
|
||||||
$validUser = filter_var( $_POST['usersName'], FILTER_SANITIZE_STRING );
|
$validUser = filter_var( $_POST['usersName'], FILTER_SANITIZE_STRING );
|
||||||
if ( $validUser ) {
|
if ( $validUser ) {
|
||||||
$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;
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
2.4.2
|
2.3.1
|
||||||
https://doktorkraus.de/zaareloaded/downloads/zaaReloaded-$VERSION.exe
|
https://doktorkraus.de/zaareloaded/downloads/zaaReloaded-$VERSION.exe
|
||||||
2df8d1cd62b2a6b422099e6d59c8f2022ddd2177a649784a7cab8f7c23e734e2 deploy/releases/zaaReloaded-2.4.2.exe
|
21c3a526191ec71fe8681a447b54d2447de4e69c54e44d1ab27d6fbf2a05f7c3 deploy/releases/zaaReloaded-2.3.1.exe
|
||||||
|
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 15
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 15.0.27130.2027
|
VisualStudioVersion = 12.0.40629.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zaaReloaded2", "zaaReloaded2\zaaReloaded2.csproj", "{0478F1B0-17F2-4151-8F93-1CB6EB9732C5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zaaReloaded2", "zaaReloaded2\zaaReloaded2.csproj", "{0478F1B0-17F2-4151-8F93-1CB6EB9732C5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{529544E3-3C26-4688-B39D-04DA30F05E20}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{529544E3-3C26-4688-B39D-04DA30F05E20}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{386B2FA0-E39A-4BC4-930F-0BCF3787DC5E}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
.nuget\packages.config = .nuget\packages.config
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -25,7 +30,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
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/* Commands.cs
|
/* Commands.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -203,14 +203,12 @@ namespace zaaReloaded2
|
|||||||
Word.Window activeWindow = word.ActiveWindow;
|
Word.Window activeWindow = word.ActiveWindow;
|
||||||
Word.Selection selection = activeWindow.Selection;
|
Word.Selection selection = activeWindow.Selection;
|
||||||
Word.Paragraphs paragraphs = selection.Paragraphs;
|
Word.Paragraphs paragraphs = selection.Paragraphs;
|
||||||
Importer.IImporter importer = null;
|
|
||||||
Importer.AutoDetector autoDetector = new Importer.AutoDetector();
|
|
||||||
if (!(paragraphs.Count > 1
|
if (!(paragraphs.Count > 1
|
||||||
|| (selection.Text.Length > 1 && selection.Text.EndsWith("\r"))))
|
|| (selection.Text.Length > 1 && selection.Text.EndsWith("\r"))))
|
||||||
{
|
{
|
||||||
Logger.Info("DoFormat: Attempting to auto-detect");
|
Logger.Info("DoFormat: Attempting to auto-detect");
|
||||||
Word.Document doc = activeWindow.Document;
|
Word.Document doc = activeWindow.Document;
|
||||||
if (!autoDetector.Detect(doc))
|
if (!AutoDetect.Detect(doc))
|
||||||
{
|
{
|
||||||
Logger.Info("DoFormat: Automatic detection failed");
|
Logger.Info("DoFormat: Automatic detection failed");
|
||||||
NotificationAction a = new NotificationAction();
|
NotificationAction a = new NotificationAction();
|
||||||
@ -222,16 +220,10 @@ namespace zaaReloaded2
|
|||||||
}
|
}
|
||||||
// Don't release the COM object here
|
// Don't release the COM object here
|
||||||
// Bovender.ComHelpers.ReleaseComObject(doc);
|
// 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");
|
Logger.Info("DoFormat: Importing");
|
||||||
|
ZaaImporter importer = new ZaaImporter();
|
||||||
importer.Import(selection.Text);
|
importer.Import(selection.Text);
|
||||||
Formatter.Formatter formatter = new Formatter.Formatter(activeDocument);
|
Formatter.Formatter formatter = new Formatter.Formatter(activeDocument);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* CommentPool.cs
|
/* CommentPool.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ParameterComment.cs
|
/* ParameterComment.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ParameterCommentEventArgs.cs
|
/* ParameterCommentEventArgs.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/* ControlElementBase.cs
|
/* ControlElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Text.cs
|
/* Text.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ElementBase.cs
|
/* ElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* FormatElementBase.cs
|
/* FormatElementBase.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -16,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>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Items.cs
|
/* Items.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* NextColumn.cs
|
/* NextColumn.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectEachDay.cs
|
/* SelectEachDay.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDay.cs
|
/* SelectFirstDay.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SelectFirstDay - Copy.cs
|
/* SelectFirstDay - Copy.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TwoColumns.cs
|
/* TwoColumns.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Settings.cs
|
/* Settings.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -18,12 +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 System.Runtime.Serialization.Formatters.Soap;
|
||||||
using YamlDotNet.Serialization;
|
using YamlDotNet.Serialization;
|
||||||
|
|
||||||
namespace zaaReloaded2.Controller
|
namespace zaaReloaded2.Controller
|
||||||
@ -34,24 +35,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>
|
||||||
@ -65,7 +48,7 @@ namespace zaaReloaded2.Controller
|
|||||||
{
|
{
|
||||||
Logger.Info("LoadFromFile: {0}", fileName);
|
Logger.Info("LoadFromFile: {0}", fileName);
|
||||||
StreamReader reader = new StreamReader(fileName);
|
StreamReader reader = new StreamReader(fileName);
|
||||||
IDeserializer deserializer = BuildDeserializer();
|
Deserializer deserializer = new DeserializerBuilder().Build();
|
||||||
Settings settings;
|
Settings settings;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -83,9 +66,7 @@ namespace zaaReloaded2.Controller
|
|||||||
{
|
{
|
||||||
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,13 +76,14 @@ 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);
|
Logger.Info("SaveToFile: {0}", fileName);
|
||||||
using (StreamWriter writer = new StreamWriter(fileName))
|
using (StreamWriter writer = new StreamWriter(fileName))
|
||||||
{
|
{
|
||||||
ISerializer serializer = BuildSerializer();
|
Serializer serializer = new SerializerBuilder()
|
||||||
|
//.EnsureRoundtrip()
|
||||||
|
.Build();
|
||||||
serializer.Serialize(writer, this);
|
serializer.Serialize(writer, this);
|
||||||
}
|
}
|
||||||
Logger.Info("SaveToFile: Successfully saved to file '{0}'", fileName);
|
|
||||||
// SoapFormatter formatter = new SoapFormatter();
|
// SoapFormatter formatter = new SoapFormatter();
|
||||||
// formatter.Serialize(writer.BaseStream, this);
|
// formatter.Serialize(writer.BaseStream, this);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SettingsRepository.cs
|
/* SettingsRepository.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -62,12 +62,10 @@ namespace zaaReloaded2.Controller
|
|||||||
SettingsRepository repo = UserSettings.Default.SettingsRepository;
|
SettingsRepository repo = UserSettings.Default.SettingsRepository;
|
||||||
if (repo == null)
|
if (repo == null)
|
||||||
{
|
{
|
||||||
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.");
|
|
||||||
repo.LoadDefaults();
|
repo.LoadDefaults();
|
||||||
return repo;
|
return repo;
|
||||||
}
|
}
|
||||||
@ -185,8 +183,8 @@ 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");
|
var deserializer = new YamlDotNet.Serialization.DeserializerBuilder().Build();
|
||||||
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded2"))
|
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.ward.zaaReloaded2"))
|
||||||
{
|
{
|
||||||
StreamReader reader = new StreamReader(stream);
|
StreamReader reader = new StreamReader(stream);
|
||||||
@ -195,7 +193,6 @@ namespace zaaReloaded2.Controller
|
|||||||
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");
|
|
||||||
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded2"))
|
using (Stream stream = myAssembly.GetManifestResourceStream("zaaReloaded2.Defaults.clinic.zaaReloaded2"))
|
||||||
{
|
{
|
||||||
StreamReader reader = new StreamReader(stream);
|
StreamReader reader = new StreamReader(stream);
|
||||||
@ -241,13 +238,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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,53 +1,51 @@
|
|||||||
!Settings
|
!zaaReloaded2.Controller.Settings,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Name: Kopie von Standard für NepA
|
Name: Kopie von Standard für NepA
|
||||||
ReferenceStyle: IfSpecialItem
|
ReferenceStyle: IfSpecialItem
|
||||||
Elements: !ElementsList
|
Elements: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.ElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
- !SelectEachDay
|
- !zaaReloaded2.Controller.Elements.SelectEachDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Children: !FormatElementsList
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Kardiale Marker: CK, CK-MB, hsTnT, NT-proBNP'
|
Content: 'Kardiale Marker: CK, CK-MB, hsTnT, NT-proBNP'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt, U-Schwangerschaftstest'
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt, U-Schwangerschaftstest'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE, CDT'
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE, CDT'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hormone: iPTH, TSH, fT3, fT4, Aldosteron, Renin, ARQ'
|
Content: 'Hormone: iPTH, TSH, fT3, fT4, Aldosteron, Renin, ARQ'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Vitamine: B12, Folsäure'
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'BGA: pH, Std.-Bic., BE'
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Tumormarker: PSA, AFP'
|
Content: 'Tumormarker: PSA, AFP'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Autoantikörper: ANCA (IF) 1: (Ref. < 1:40), MPO-ANCA (ELISA) IU/ml (Ref. < 9), PR3-ANCA (ELISA) IU/ml (Ref. < 3,5), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
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
|
Uid: 99b44ee9-2858-4651-84ad-eb7980832352
|
||||||
Content: 'MSU: MSU-Keim, MSU-Multiresistenz'
|
|
||||||
Uid: 581d378c-8f7a-4a1c-8490-36e257770a09
|
|
||||||
|
@ -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
|
||||||
|
@ -1,101 +1,101 @@
|
|||||||
!Settings
|
!zaaReloaded2.Controller.Settings,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Name: Kopie von Standard für Station
|
Name: Kopie von Standard für Station
|
||||||
ReferenceStyle: IfSpecialItem
|
ReferenceStyle: IfSpecialItem
|
||||||
Elements: !ElementsList
|
Elements: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.ElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
- !TwoColumns
|
- !zaaReloaded2.Controller.Elements.TwoColumns,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Children: !FormatElementsList
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089 []
|
||||||
- !SelectFirstDay
|
- !zaaReloaded2.Controller.Elements.SelectFirstDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Children: !FormatElementsList
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Vitamine: B12, Folsäure'
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'BGA: pH, Std.-Bic., BE'
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Tumormarker: PSA'
|
Content: 'Tumormarker: PSA'
|
||||||
- !NextColumn
|
- !zaaReloaded2.Controller.Elements.NextColumn,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Children: !FormatElementsList
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089 []
|
||||||
- !SelectLastDay
|
- !zaaReloaded2.Controller.Elements.SelectLastDay,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Children: !FormatElementsList
|
Children: !System.Collections.Generic.List%601[[zaaReloaded2.Controller.Elements.FormatElementBase,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383]],%20mscorlib,%20Version=4.0.0.0,%20Culture=neutral,%20PublicKeyToken=b77a5c561934e089
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
Content: 'Klinische Chemie: Na, K, Cl, Mg, Ca, P, CaxP, Alb, Prot, Haptoglobin, LDH, Glukose, Harnsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
Content: 'Entzündung/Immunsystem: CRP, Pct, C3c, C4, Anti-DNAse B, ASL'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
Content: 'Kardiale Marker: CK, CKMB, hsTnT, NT-proBNP'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
Content: 'Niere: Krea, Hst, eGFR (CKD-EPI), Cystatin C'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
Content: 'Sammelurin: SU-Prot, SU-Alb, SU-CrCl, SU-HstCl, SU-GFR, SU-Na, SU-Zeit, SU-Volumen'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
Content: 'Spot-Urin: U-TPCR, U-ACR, U-Alb, U-Ery, U-Leu, U-Bakt'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
Content: 'Leber: GOT, GGT, GPT, AP, Bilirubin, CHE'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
Content: 'Blutfette: TG, Chol, LDL, HDL, Lp(a)'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
Content: 'Hämatologie: Hb, Hkt, Reti, Leu, Thr, MCV, HbA1c, Retikulozyten, Fragmentozyten'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
Content: 'Diff.-BB: Neu, Lym, Mon, Baso, Eos'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
Content: 'Gerinnung: Quick, INR, PTT, Fibrinogen, ATIII, Anti-Xa'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
Content: 'Serum-Elektrophorese: Albumin-Fraktion, a1-Globulin, a2-Globulin, b-Globulin, g-Globulin'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
Content: 'Hormone: iPTH, TSH, fT3, fT4'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Vitamine: B12, Folsäure'
|
Content: 'Vitamine: B12, Folsäure'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
Content: 'Eisenhaushalt: Eisen, Ferritin, Transferrin, Tf.-Sätt.'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'BGA: pH, Std.-Bic., BE'
|
Content: 'BGA: pH, Std.-Bic., BE'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
Content: 'Hepatitis-Serologie: Anti-HBs, Anti-HBc'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
Content: 'Medikamente: TAC "(Ziel-Talspiegel: <> µg/l)", CsA (C0) "(Ziel-Talspiegel: <> µg/l)", SIR "(Ziel-Talspiegel: <> µg/l)", Vancomycin, Gentamicin, Tobramicin'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
Content: 'Nephrolog. Sediment: pH, Proteinurie, Ery /µl, Leu /µl, Plattenep. /µl, Bakt., Schleimfäden'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
Content: 'Virologie (EDTA-Blut): CMV-PCR, BKV-PCR'
|
||||||
- !CustomText
|
- !zaaReloaded2.Controller.Elements.CustomText,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
Content: 'Autoantikörper: ANCA (IF), MPO-ANCA (ELISA), PR3-ANCA (ELISA), ANA (IF), AnDNA (ELISA), AnDNA (RIA)'
|
||||||
- !Items
|
- !zaaReloaded2.Controller.Elements.Items,%20zaaReloaded2,%20Version=1.0.0.0,%20Culture=neutral,%20PublicKeyToken=6ec8d075a1ab1383
|
||||||
Content: 'Tumormarker: PSA'
|
Content: 'Tumormarker: PSA'
|
||||||
Uid: 216d9bbb-94d8-47e5-b13b-59e0edd24d91
|
Uid: 216d9bbb-94d8-47e5-b13b-59e0edd24d91
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Demo.cs
|
/* Demo.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionDetailView.xaml.cs
|
/* ExceptionDetailView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionView.xaml.cs
|
/* ExceptionView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ExceptionViewModel.cs
|
/* ExceptionViewModel.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -83,7 +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
|
protected override Bovender.UserSettings.UserSettingsBase UserSettings
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionCompletedAction.cs
|
/* SubmissionCompletedAction.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -34,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()
|
||||||
|
@ -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">
|
||||||
×
|
×
|
||||||
<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>
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionFailureView.xaml.cs
|
/* SubmissionFailureView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionProcessAction.cs
|
/* SubmissionProcessAction.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -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>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionProcessView.xaml.cs
|
/* SubmissionProcessView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -21,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">
|
||||||
✔
|
✔
|
||||||
<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>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* SubmissionSuccessView.xaml.cs
|
/* SubmissionSuccessView.xaml.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* AbnormalStyle.cs
|
/* AbnormalStyle.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DanielsStyle.cs
|
/* DanielsStyle.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* DocumentWriter.cs
|
/* DocumentWriter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Formatter.cs
|
/* Formatter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* IItemFormatterDictionary.cs
|
/* IItemFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ITimePointFormatterDictionary.cs
|
/* ITimePointFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemFormatter.cs
|
/* ItemFormatter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -76,11 +76,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>
|
||||||
@ -199,20 +194,12 @@ 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 =
|
||||||
String.Format(
|
String.Format(
|
||||||
"{0}{1}{2}{3}{4}",
|
"{0} {1}{2}{3}{4}",
|
||||||
name,
|
name,
|
||||||
value,
|
value,
|
||||||
unit,
|
unit,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemFormatterDictionary.cs
|
/* ItemFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* NoLaboratoryDataException.cs
|
/* NoLaboratoryDataException.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ReferenceStyle.cs
|
/* ReferenceStyle.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TimePointFormatter.cs
|
/* TimePointFormatter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* TimePointFormatterDictionary.cs
|
/* TimePointFormatterDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* Helpers.cs
|
/* Helpers.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,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
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,258 +0,0 @@
|
|||||||
/* ClinicTimePoint.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.Globalization;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Text.RegularExpressions;
|
|
||||||
using zaaReloaded2.Thesaurus;
|
|
||||||
using zaaReloaded2.LabModel;
|
|
||||||
|
|
||||||
namespace zaaReloaded2.Importer.ClinicImporter
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Holds all laboratory items for a given time point.
|
|
||||||
/// </summary>
|
|
||||||
class ClinicTimePoint : TimePoint
|
|
||||||
{
|
|
||||||
#region Static methods
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Examines a string and returns true if it resembles
|
|
||||||
/// a time stamp line in the clinic output.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="line">Line to examine.</param>
|
|
||||||
/// <returns>True if line resembles a time stamp line
|
|
||||||
/// in the clinic output.</returns>
|
|
||||||
static public bool IsTimeStampLine(string line)
|
|
||||||
{
|
|
||||||
return _timeStampRegex.IsMatch(line);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets a Regex object that matches a clinic time stamp
|
|
||||||
/// line.
|
|
||||||
/// </summary>
|
|
||||||
static public Regex TimeStampRegex
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _timeStampRegex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Properties
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets an array of lines in this ClinicText.
|
|
||||||
/// </summary>
|
|
||||||
public IList<String> Lines
|
|
||||||
{
|
|
||||||
[DebuggerStepThrough]
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_lines == null)
|
|
||||||
{
|
|
||||||
_lines = new List<String>();
|
|
||||||
}
|
|
||||||
return _lines;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_lines = value;
|
|
||||||
ParseLines();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Is true if the LaurisText has time stamp in the first
|
|
||||||
/// paragraph and <see cref="LabItem"/>s in the others.
|
|
||||||
/// </summary>
|
|
||||||
public bool IsValidTimePoint
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return Items.Count > 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets or sets the original Lauris text for this timepoint.
|
|
||||||
/// </summary>
|
|
||||||
public string ClinicText
|
|
||||||
{
|
|
||||||
[DebuggerStepThrough]
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return String.Join(Environment.NewLine, Lines);
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (!String.IsNullOrEmpty(value))
|
|
||||||
{
|
|
||||||
Lines = value.Split(
|
|
||||||
new string[] { Environment.NewLine },
|
|
||||||
StringSplitOptions.None).ToList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Constructors
|
|
||||||
|
|
||||||
public ClinicTimePoint() { }
|
|
||||||
|
|
||||||
public ClinicTimePoint(
|
|
||||||
string clinicText,
|
|
||||||
Parameters parameterDictionary,
|
|
||||||
Units unitDictionary)
|
|
||||||
: this()
|
|
||||||
{
|
|
||||||
_parameterDictionary = parameterDictionary;
|
|
||||||
_unitDictionary = unitDictionary;
|
|
||||||
ClinicText = clinicText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClinicTimePoint(string clinicText)
|
|
||||||
: this(clinicText, null, null)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
public ClinicTimePoint(
|
|
||||||
IList<String> lines,
|
|
||||||
Parameters parameterDictionary,
|
|
||||||
Units unitDictionary)
|
|
||||||
: this(parameterDictionary, unitDictionary)
|
|
||||||
{
|
|
||||||
Lines = lines;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClinicTimePoint(IList<String> lines)
|
|
||||||
: this(lines, null, null)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClinicTimePoint(
|
|
||||||
Parameters parameterDictionary,
|
|
||||||
Units unitDictionary)
|
|
||||||
: this()
|
|
||||||
{
|
|
||||||
_parameterDictionary = parameterDictionary;
|
|
||||||
_unitDictionary = unitDictionary;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Public methods
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Adds a new line to this time point by parsing
|
|
||||||
/// the line for a laboratory item.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="paragraph">Line to add.</param>
|
|
||||||
public override void Parse(string paragraph)
|
|
||||||
{
|
|
||||||
Lines.Add(paragraph);
|
|
||||||
ParseLine(paragraph);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Private methods
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Analyzes each clinic line in this time point, sets the date
|
|
||||||
/// and time, and collects LabItem data.
|
|
||||||
/// </summary>
|
|
||||||
void ParseLines()
|
|
||||||
{
|
|
||||||
if (Lines != null)
|
|
||||||
{
|
|
||||||
foreach (string paragraph in Lines)
|
|
||||||
{
|
|
||||||
ParseLine(paragraph);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ParseLine(string line)
|
|
||||||
{
|
|
||||||
Match m = _timeStampRegex.Match(line);
|
|
||||||
if (m.Success)
|
|
||||||
{
|
|
||||||
Logger.Info("ParseLine: Matches time stamp");
|
|
||||||
DateTime dt;
|
|
||||||
if (DateTime.TryParseExact(
|
|
||||||
m.Groups["datetime"].Value,
|
|
||||||
"dd.MM.yyyy HH:mm",
|
|
||||||
CultureInfo.InvariantCulture,
|
|
||||||
DateTimeStyles.AllowWhiteSpaces,
|
|
||||||
out dt))
|
|
||||||
{
|
|
||||||
TimeStamp = dt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Logger.Info("ParseLine: Not a time stamp");
|
|
||||||
ClinicLine clinicLine = new ClinicLine(
|
|
||||||
line,
|
|
||||||
_parameterDictionary,
|
|
||||||
_unitDictionary);
|
|
||||||
if (clinicLine.IsClinicLine)
|
|
||||||
{
|
|
||||||
Logger.Debug("ParseParagraph: Merging Lauris paragraph");
|
|
||||||
Items[clinicLine.Item.QualifiedName] = clinicLine.Item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddItems(IItemDictionary items)
|
|
||||||
{
|
|
||||||
Items.Merge(items);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Private fields
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// A regular expression that matches the time stamp in the first
|
|
||||||
/// paragraph of a LaurisText.
|
|
||||||
/// </summary>
|
|
||||||
static readonly Regex _timeStampRegex = new Regex(
|
|
||||||
@"^(Labor:?)?\s*\(?\s*(?<datetime>\d\d\.\d\d\.\d\d\d\d\s+\d\d:\d\d)(:00)?\)");
|
|
||||||
IList<String> _lines;
|
|
||||||
Parameters _parameterDictionary;
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
/* IImporter.cs
|
/* IImporter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
/* ImportMode.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;
|
|
||||||
|
|
||||||
namespace zaaReloaded2.Importer
|
|
||||||
{
|
|
||||||
public enum ImportMode
|
|
||||||
{
|
|
||||||
Undefined,
|
|
||||||
Zaa,
|
|
||||||
Clinic
|
|
||||||
}
|
|
||||||
}
|
|
118
zaaReloaded2/Importer/ZaaImporter/AutoDetect.cs
Executable file
@ -0,0 +1,118 @@
|
|||||||
|
using Microsoft.Office.Interop.Word;
|
||||||
|
/* AutoDetect.cs
|
||||||
|
* part of zaaReloaded2
|
||||||
|
*
|
||||||
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace zaaReloaded2.Importer.ZaaImporter
|
||||||
|
{
|
||||||
|
static class AutoDetect
|
||||||
|
{
|
||||||
|
/// <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 static bool Detect(Document document)
|
||||||
|
{
|
||||||
|
if (document == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(
|
||||||
|
"Automatic laboratory detection requires a document.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Try to make this algorithm more elegant.
|
||||||
|
Paragraph start = null;
|
||||||
|
Paragraph end = null;
|
||||||
|
int i = 1;
|
||||||
|
|
||||||
|
if (document.Bookmarks.Exists("Labor"))
|
||||||
|
{
|
||||||
|
i = GetParagraphIndex(
|
||||||
|
document,
|
||||||
|
document.Bookmarks["Labor"].Range.Paragraphs[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
while (i <= document.Paragraphs.Count)
|
||||||
|
{
|
||||||
|
// 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 (LaurisTimePoint.IsTimeStampLine(
|
||||||
|
document.Paragraphs[i].Range.Text))
|
||||||
|
{
|
||||||
|
start = document.Paragraphs[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (start != null)
|
||||||
|
{
|
||||||
|
end = start;
|
||||||
|
while (i <= document.Paragraphs.Count - 1)
|
||||||
|
{
|
||||||
|
if (!IsLabParagraph(document.Paragraphs[i+1]))
|
||||||
|
{
|
||||||
|
end = document.Paragraphs[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.Range(start.Range.Start, end.Range.End).Select();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns true if a paragraph is either a time stamp line
|
||||||
|
/// or a paragraph with laboratory items.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="paragraph"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private static bool IsLabParagraph(Paragraph paragraph)
|
||||||
|
{
|
||||||
|
string text = paragraph.Range.Text;
|
||||||
|
return (LaurisParagraph.ResemblesLaurisParagraph(text)
|
||||||
|
|| LaurisTimePoint.IsTimeStampLine(text));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <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 static int GetParagraphIndex(Document document, Paragraph paragraph)
|
||||||
|
{
|
||||||
|
return document.Range(0, paragraph.Range.Start).Paragraphs.Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
/* LabItem.cs
|
/* LabItem.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -76,7 +76,6 @@ namespace zaaReloaded2.Importer.ZaaImporter
|
|||||||
Name = parameterDictionary.GetCanonicalName(OriginalName);
|
Name = parameterDictionary.GetCanonicalName(OriginalName);
|
||||||
AlwaysPrintLimits = parameterDictionary.GetForceReferenceDisplay(OriginalName);
|
AlwaysPrintLimits = parameterDictionary.GetForceReferenceDisplay(OriginalName);
|
||||||
IsBlacklisted = parameterDictionary.GetIsBlacklisted(OriginalName);
|
IsBlacklisted = parameterDictionary.GetIsBlacklisted(OriginalName);
|
||||||
SuppressLabel = parameterDictionary.GetSuppressLabel(OriginalName);
|
|
||||||
Material = parameterDictionary.GetMaterial(OriginalName, Material);
|
Material = parameterDictionary.GetMaterial(OriginalName, Material);
|
||||||
PreferredPrecision = parameterDictionary.GetPrecision(OriginalName);
|
PreferredPrecision = parameterDictionary.GetPrecision(OriginalName);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisParagraph.cs
|
/* LaurisParagraph.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* LaurisTimePoint.cs
|
/* LaurisTimePoint.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -169,7 +169,7 @@ namespace zaaReloaded2.Importer.ZaaImporter
|
|||||||
/// the paragraph for laboratory items.
|
/// the paragraph for laboratory items.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="paragraph">Paragraph to add.</param>
|
/// <param name="paragraph">Paragraph to add.</param>
|
||||||
public override void Parse(string paragraph)
|
public void AddParagraph(string paragraph)
|
||||||
{
|
{
|
||||||
Paragraphs.Add(paragraph);
|
Paragraphs.Add(paragraph);
|
||||||
ParseParagraph(paragraph);
|
ParseParagraph(paragraph);
|
||||||
@ -214,7 +214,7 @@ namespace zaaReloaded2.Importer.ZaaImporter
|
|||||||
// Put the remainder of the line back to the
|
// Put the remainder of the line back to the
|
||||||
// 'paragraph' parameter to deal with exceptional
|
// 'paragraph' parameter to deal with exceptional
|
||||||
// lines such as
|
// lines such as
|
||||||
// "(17.09.2015-201810:44:00) Cyclosporin-A vor Gabe: 130 µg/l;"
|
// "(17.09.2015-201710:44:00) Cyclosporin-A vor Gabe: 130 µg/l;"
|
||||||
// We need to add a dummy caption because this is
|
// We need to add a dummy caption because this is
|
||||||
// the normal format of a paragraph generated from Lauris.
|
// the normal format of a paragraph generated from Lauris.
|
||||||
if (m.Groups["tail"].Success)
|
if (m.Groups["tail"].Success)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ZaaImporter.cs
|
/* ZaaImporter.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -30,30 +30,106 @@ namespace zaaReloaded2.Importer.ZaaImporter
|
|||||||
/// Imports laboratory items by parsing the Lauris data from a
|
/// Imports laboratory items by parsing the Lauris data from a
|
||||||
/// physician's letter.
|
/// physician's letter.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ZaaImporter : BaseImporter
|
public class ZaaImporter : IImporter
|
||||||
{
|
{
|
||||||
#region Constructor
|
#region IImporter implementation
|
||||||
|
|
||||||
public ZaaImporter() : base() { }
|
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="LaurisTimePoint"/> objects from them.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="text">ZAA-formatted Lauris output to import.</param>
|
||||||
|
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);
|
||||||
|
LaurisTimePoint timePoint = null;
|
||||||
|
|
||||||
|
foreach (string paragraph in paragraphs)
|
||||||
|
{
|
||||||
|
Logger.Info("Import: \"{0}\"", paragraph.TruncateWithEllipsis(40));
|
||||||
|
// If the current paragraph looks like a Lauris time stamp,
|
||||||
|
// create a new time point.
|
||||||
|
if (LaurisTimePoint.IsTimeStampLine(paragraph))
|
||||||
|
{
|
||||||
|
Logger.Info("Import: Time stamp detected", paragraph);
|
||||||
|
timePoint = new LaurisTimePoint(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 as LaurisTimePoint;
|
||||||
|
}
|
||||||
|
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 (LaurisParagraph.ResemblesLaurisParagraph(paragraph))
|
||||||
|
{
|
||||||
|
Logger.Info("Import: Lauris paragraph detected");
|
||||||
|
if (timePoint == null)
|
||||||
|
{
|
||||||
|
timePoint = new LaurisTimePoint(_parameters, _units);
|
||||||
|
Laboratory.AddTimePoint(timePoint);
|
||||||
|
}
|
||||||
|
timePoint.AddParagraph(paragraph);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Debug("Import: Neither time stamp, nor Lauris paragraph");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Implementation of BaseImporter
|
#region Constructor
|
||||||
|
|
||||||
protected override TimePoint CreateTimePoint(string paragraph, Parameters parameters, Units units)
|
public ZaaImporter()
|
||||||
{
|
{
|
||||||
return new LaurisTimePoint(paragraph, parameters, units);
|
_parameters = Parameters.Default;
|
||||||
|
_units = Units.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool IsTimeStamp(string paragraph)
|
#endregion
|
||||||
{
|
|
||||||
return LaurisTimePoint.IsTimeStampLine(paragraph);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool IsItemsParagraph(string paragraph)
|
#region Fields
|
||||||
{
|
|
||||||
return LaurisParagraph.ResemblesLaurisParagraph(paragraph);
|
Laboratory _laboratory;
|
||||||
}
|
Parameters _parameters;
|
||||||
|
Units _units;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* ItemDictionary.cs
|
/* ItemDictionary.cs
|
||||||
* part of zaaReloaded2
|
* part of zaaReloaded2
|
||||||
*
|
*
|
||||||
* Copyright 2015-2018 Daniel Kraus
|
* Copyright 2015-2017 Daniel Kraus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|