Fix material convertsion and units detection.
This commit is contained in:
parent
6c9f003134
commit
947b53cf97
@ -99,6 +99,25 @@ namespace Tests.Formatter
|
|||||||
_document.Range().Text);
|
_document.Range().Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void FormatSpecialItems()
|
||||||
|
{
|
||||||
|
ZaaImporter importer = new ZaaImporter();
|
||||||
|
importer.Import(
|
||||||
|
"Klinische Chemie: glomerul. Filtrationsr. CKD-EP: 36 ml/min /1,73qm; " +
|
||||||
|
"Sammelmenge (U): 12300 ml; "
|
||||||
|
);
|
||||||
|
Document document = new Document();
|
||||||
|
f.Formatter formatter = new f.Formatter(document);
|
||||||
|
formatter.Laboratory = importer.Laboratory;
|
||||||
|
formatter.Settings = new zaaReloaded2.Controller.Settings(
|
||||||
|
new List<ElementBase>() { new Items("*") } );
|
||||||
|
formatter.Run();
|
||||||
|
Assert.AreEqual(
|
||||||
|
"eGFR (CKD-EPI) 36 ml/min/1,73 m², SU-Volumen 12300 ml\r\r",
|
||||||
|
document.Range().Text);
|
||||||
|
}
|
||||||
|
|
||||||
string GetResourceText(string resource)
|
string GetResourceText(string resource)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -139,7 +139,6 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
{
|
{
|
||||||
items.AddRange(CollectByName(formatter, itemName));
|
items.AddRange(CollectByName(formatter, itemName));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
@ -158,6 +157,9 @@ namespace zaaReloaded2.Controller.Elements
|
|||||||
.Where(i => !i.HasBeenUsed && !i.IsBlacklisted && i.LabItem.QualifiedName.StartsWith(material))
|
.Where(i => !i.HasBeenUsed && !i.IsBlacklisted && i.LabItem.QualifiedName.StartsWith(material))
|
||||||
.ToList();
|
.ToList();
|
||||||
newItems.ForEach(i => i.HasBeenUsed = true);
|
newItems.ForEach(i => i.HasBeenUsed = true);
|
||||||
|
// Include the material prefix only if this item was collected by a
|
||||||
|
// general wildcard ("*" rather than "SU-*" etc.).
|
||||||
|
newItems.ForEach(i => i.IncludeMaterial = String.IsNullOrEmpty(material));
|
||||||
items.AddRange(newItems);
|
items.AddRange(newItems);
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
|
@ -76,6 +76,7 @@ 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);
|
||||||
|
Material = parameterDictionary.GetMaterial(OriginalName, Material);
|
||||||
}
|
}
|
||||||
if (unitDictionary != null)
|
if (unitDictionary != null)
|
||||||
{
|
{
|
||||||
@ -165,10 +166,12 @@ namespace zaaReloaded2.Importer.ZaaImporter
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Analyses the Lauris name for a material abbreviation.
|
/// Parses the original Lauris name for a material abbreviation.
|
||||||
/// If the parameter does not refer to blood (serum, whole
|
/// This may be misleading in certain cases, e.g. "Sammelmenge (U)"
|
||||||
/// blood, etc.), Lauris appends an abbreviation in parentheses
|
/// appears to be spot urine ("U"), but is collected urine instead
|
||||||
/// to the parameter name.
|
/// ("SU"). Therefore, in the constructor that takes the thesaurus
|
||||||
|
/// parameters, the material is looked up in the Parameters thesaurus.
|
||||||
|
/// ("Sammelmenge (U)" is contained in the Parameters thesaurus.)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <example>
|
/// <example>
|
||||||
/// Gesamt-Eiweiss (SU), Albumin (SU)/die, Gesamt-Eiweiss (PU)
|
/// Gesamt-Eiweiss (SU), Albumin (SU)/die, Gesamt-Eiweiss (PU)
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
# ============== ====================
|
# ============== ====================
|
||||||
# WICHTIG: Nur direkt austauschbare Einheiten verwenden,
|
# WICHTIG: Nur direkt austauschbare Einheiten verwenden,
|
||||||
# weil (bislang) keine Umrechnung der Werte vorgesehen ist!
|
# weil (bislang) keine Umrechnung der Werte vorgesehen ist!
|
||||||
"ml/min/ 1,73qm" "ml/min/1,73 m²"
|
"ml/min /1,73qm" "ml/min/1,73 m²"
|
||||||
ng/ml µg/l
|
ng/ml µg/l
|
||||||
mmol/l mM
|
mmol/l mM
|
||||||
n*1000/µl /nl
|
n*1000/µl /nl
|
||||||
|
Bak/µl /µl
|
||||||
|
@ -69,9 +69,15 @@ namespace zaaReloaded2.Thesaurus
|
|||||||
/// <param name="laurisName">Lauris item name to look up.</param>
|
/// <param name="laurisName">Lauris item name to look up.</param>
|
||||||
/// <returns><see cref="zaaReloaded2.LabModel.Material"/> enum; if no material is
|
/// <returns><see cref="zaaReloaded2.LabModel.Material"/> enum; if no material is
|
||||||
/// found in the dictionary, the default material "S" (serum) is returned.</returns>
|
/// found in the dictionary, the default material "S" (serum) is returned.</returns>
|
||||||
public Material GetMaterial(string laurisName)
|
public Material GetMaterial(string laurisName, Material def)
|
||||||
{
|
{
|
||||||
string textValue = LookUpValue(laurisName, 2);
|
string textValue = LookUpValue(laurisName, 2);
|
||||||
|
if (String.IsNullOrEmpty(textValue))
|
||||||
|
{
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return MaterialFactory.FromAbbreviation(textValue);
|
return MaterialFactory.FromAbbreviation(textValue);
|
||||||
@ -81,6 +87,7 @@ namespace zaaReloaded2.Thesaurus
|
|||||||
return Material.B;
|
return Material.B;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns whether or not reference limits shall always
|
/// Returns whether or not reference limits shall always
|
||||||
|
Loading…
Reference in New Issue
Block a user