Implement preferred precisions.
- NEU: Für bestimmte Laborwerte ist die bevorzugte Nachkommastellenzahl hinterlegt (z.B. Kreatinin mit nur einer Nachkommastelle).
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
				
			|||||||
# LAURIS-NAME                      "KANONISCHER NAME"   MATERIAL   "IMMER REFERENZBEREICH"   "BLACKLIST"
 | 
					# LAURIS-NAME                      "KANONISCHER NAME"   MATERIAL   DEZIMALSTELLEN   "IMMER REFERENZBEREICH"   "BLACKLIST"
 | 
				
			||||||
# ===========                      ==================   ========   =======================   ===========
 | 
					# ===========                      ==================   ========   ==============   =======================   ===========
 | 
				
			||||||
"Übergangsepithelien (U)"          Übergangsep.         U
 | 
					"Übergangsepithelien (U)"          Übergangsep.         U
 | 
				
			||||||
"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
 | 
				
			||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
"Albumin (SU)/die"                 Alb                  SU
 | 
					"Albumin (SU)/die"                 Alb                  SU
 | 
				
			||||||
Albumin                            Alb                  S
 | 
					Albumin                            Alb                  S
 | 
				
			||||||
"Albumin/Creatinin (PU)"           ACR                  U
 | 
					"Albumin/Creatinin (PU)"           ACR                  U
 | 
				
			||||||
"Alk. Phosphatase"                 AP                   S
 | 
					"Alk. Phosphatase"                 AP                   S          0
 | 
				
			||||||
Amylase                            Amylase              S
 | 
					Amylase                            Amylase              S
 | 
				
			||||||
"anorg. Phosphat"                  P                    S
 | 
					"anorg. Phosphat"                  P                    S
 | 
				
			||||||
"Bakterien (U)"                    Bakt                 U
 | 
					"Bakterien (U)"                    Bakt                 U
 | 
				
			||||||
@@ -24,9 +24,9 @@ Calcium-Phosphat-Produkt           CaxP                 S
 | 
				
			|||||||
Cholesterin                        Chol                 S
 | 
					Cholesterin                        Chol                 S
 | 
				
			||||||
CK gesamt"                         CK                   S
 | 
					CK gesamt"                         CK                   S
 | 
				
			||||||
"CK MB"                            CK-MB                S
 | 
					"CK MB"                            CK-MB                S
 | 
				
			||||||
"Creatinin (PU)"                   Krea                 U
 | 
					"Creatinin (PU)"                   Krea                 U          0
 | 
				
			||||||
"Creatinin (SU)"                   Krea                 SU
 | 
					"Creatinin (SU)"                   Krea                 SU         0
 | 
				
			||||||
Creatinin                          Krea                 S
 | 
					Creatinin                          Krea                 S          1
 | 
				
			||||||
"Creatinin-Clearance (SU)/min"     CrCl                 SU
 | 
					"Creatinin-Clearance (SU)/min"     CrCl                 SU
 | 
				
			||||||
"Cyclosporin-A vor Gabe"           "CsA (C0)"           S                           X
 | 
					"Cyclosporin-A vor Gabe"           "CsA (C0)"           S                           X
 | 
				
			||||||
"Cystatin C (N Latex)"             "Cystatin C"         S                           X
 | 
					"Cystatin C (N Latex)"             "Cystatin C"         S                           X
 | 
				
			||||||
@@ -44,14 +44,14 @@ Gesamt-Bilirubin                   Bilirubin            S
 | 
				
			|||||||
"Gesamt-Eiweiss (SU)/die"          Proteinurie          SU
 | 
					"Gesamt-Eiweiss (SU)/die"          Proteinurie          SU
 | 
				
			||||||
Gesamt-Eiweiss                     Protein              S
 | 
					Gesamt-Eiweiss                     Protein              S
 | 
				
			||||||
"Gesamt-Eiweiss/Creatinin (PU)"    TPCR                 U
 | 
					"Gesamt-Eiweiss/Creatinin (PU)"    TPCR                 U
 | 
				
			||||||
GGT                                GGT                  S
 | 
					GGT                                GGT                  S          0
 | 
				
			||||||
"glomeruläre Filtrationsrate"      GFR                  SU
 | 
					"glomeruläre Filtrationsrate"      GFR                  SU
 | 
				
			||||||
"glomerul. Filtrationsr. (MDRD)"   "eGFR (MDRD)"        S                           ---                       X
 | 
					"glomerul. Filtrationsr. (MDRD)"   "eGFR (MDRD)"        S                           ---                       X
 | 
				
			||||||
"glomerul. Filtrationsr. CKD-EP"   "eGFR (CKD-EPI)"     S
 | 
					"glomerul. Filtrationsr. CKD-EP"   "eGFR (CKD-EPI)"     S
 | 
				
			||||||
"Glucose (U)"                      Glukose              U
 | 
					"Glucose (U)"                      Glukose              U
 | 
				
			||||||
Glucose                            Glukose              S
 | 
					Glucose                            Glukose              S
 | 
				
			||||||
"GOT (ASAT)"                       GOT                  S
 | 
					"GOT (ASAT)"                       GOT                  S          0
 | 
				
			||||||
"GPT (ALAT)"                       GPT                  S
 | 
					"GPT (ALAT)"                       GPT                  S          0
 | 
				
			||||||
Hämatokrit                         Hkt                  E
 | 
					Hämatokrit                         Hkt                  E
 | 
				
			||||||
Hämoglobin                         Hb                   E
 | 
					Hämoglobin                         Hb                   E
 | 
				
			||||||
Haptoglobin                        Haptoglobin          S                           X
 | 
					Haptoglobin                        Haptoglobin          S                           X
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -153,8 +153,17 @@ namespace zaaReloaded2.Formatter
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                // Format the numerical value; this will convert
 | 
					                // Format the numerical value; this will convert
 | 
				
			||||||
                // decimal points to commas as needed.
 | 
					                // decimal points to commas as needed.
 | 
				
			||||||
 | 
					                int precision = LabItem.PreferredPrecision;
 | 
				
			||||||
 | 
					                if (precision >= 0)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    value = LabItem.NumericalValue.ToString("F" + precision);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    // PreferredPrecision is negative, i.e. use precision as-is
 | 
				
			||||||
                    value = String.Format("{0}", LabItem.NumericalValue);
 | 
					                    value = String.Format("{0}", LabItem.NumericalValue);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                value = LabItem.Value;
 | 
					                value = LabItem.Value;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,6 +77,7 @@ namespace zaaReloaded2.Importer.ZaaImporter
 | 
				
			|||||||
                AlwaysPrintLimits = parameterDictionary.GetForceReferenceDisplay(OriginalName);
 | 
					                AlwaysPrintLimits = parameterDictionary.GetForceReferenceDisplay(OriginalName);
 | 
				
			||||||
                IsBlacklisted = parameterDictionary.GetIsBlacklisted(OriginalName);
 | 
					                IsBlacklisted = parameterDictionary.GetIsBlacklisted(OriginalName);
 | 
				
			||||||
                Material = parameterDictionary.GetMaterial(OriginalName, Material);
 | 
					                Material = parameterDictionary.GetMaterial(OriginalName, Material);
 | 
				
			||||||
 | 
					                PreferredPrecision = parameterDictionary.GetPrecision(OriginalName);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (unitDictionary != null)
 | 
					            if (unitDictionary != null)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -202,6 +202,8 @@ namespace zaaReloaded2.LabModel
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public int PreferredPrecision { get; protected set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public bool AlwaysPrintLimits { get; protected set; }
 | 
					        public bool AlwaysPrintLimits { get; protected set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Material Material { get; protected set; }
 | 
					        public Material Material { get; protected set; }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,6 +89,18 @@ namespace zaaReloaded2.Thesaurus
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Returns the desired number of decimals for a given parameter.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="laurisName">Laboratory item to look up;
 | 
				
			||||||
 | 
					        /// this must be an original Lauris string.</param>
 | 
				
			||||||
 | 
					        /// <returns>Number of decimals for the parameter, or -1 if
 | 
				
			||||||
 | 
					        /// undefined.</returns>
 | 
				
			||||||
 | 
					        public int GetPrecision(string laurisName)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return LookUpValue(laurisName, 3, -1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Returns whether or not reference limits shall always
 | 
					        /// Returns whether or not reference limits shall always
 | 
				
			||||||
        /// be displayed for a given item, regardless whether it
 | 
					        /// be displayed for a given item, regardless whether it
 | 
				
			||||||
@@ -99,7 +111,7 @@ namespace zaaReloaded2.Thesaurus
 | 
				
			|||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        public bool GetForceReferenceDisplay(string laurisName)
 | 
					        public bool GetForceReferenceDisplay(string laurisName)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return LookUpValue(laurisName, 3, false);
 | 
					            return LookUpValue(laurisName, 4, false);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
@@ -112,7 +124,7 @@ namespace zaaReloaded2.Thesaurus
 | 
				
			|||||||
        /// false if not. Default is false.</returns>
 | 
					        /// false if not. Default is false.</returns>
 | 
				
			||||||
        public bool GetIsBlacklisted(string laurisName)
 | 
					        public bool GetIsBlacklisted(string laurisName)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return LookUpValue(laurisName, 4, false);
 | 
					            return LookUpValue(laurisName, 5, false);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        #endregion
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -153,6 +153,48 @@ namespace zaaReloaded2.Thesaurus
 | 
				
			|||||||
            catch { }
 | 
					            catch { }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Looks up a dictionary key and returns an integer value from the requested field,
 | 
				
			||||||
 | 
					        /// or a default value if the field is empty or contains only dashes.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="key">Key to look up.</param>
 | 
				
			||||||
 | 
					        /// <param name="fieldNum">Zero-based index of the field to look up
 | 
				
			||||||
 | 
					        /// (note that field 0 is the key itself).</param>
 | 
				
			||||||
 | 
					        /// <param name="defaultValue">Default value that will be returned
 | 
				
			||||||
 | 
					        /// if the field is empty or contains only dashes.</param>
 | 
				
			||||||
 | 
					        /// <returns>Value of the requested field, or <paramref name="defaultValue"/>
 | 
				
			||||||
 | 
					        /// if the field is empty or contains only dashes.</returns>
 | 
				
			||||||
 | 
					        /// <exception cref="System.IndexOutOfRangeException">if fieldNum is negative.</exception>
 | 
				
			||||||
 | 
					        protected int LookUpValue(string key, int fieldNum, int defaultValue)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            string[] record;
 | 
				
			||||||
 | 
					            if (Records.TryGetValue(key, out record))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (fieldNum >= record.Length) return defaultValue;
 | 
				
			||||||
 | 
					                string value = record[fieldNum];
 | 
				
			||||||
 | 
					                if (string.IsNullOrWhiteSpace(value) || _dashes.IsMatch(value))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    return defaultValue;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    int intval;
 | 
				
			||||||
 | 
					                    if (int.TryParse(value, out intval))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        return intval;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        return defaultValue;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                return defaultValue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Looks up a dictionary key and returns the value from the requested field,
 | 
					        /// Looks up a dictionary key and returns the value from the requested field,
 | 
				
			||||||
        /// or a default value if the field is empty or contains only dashes.
 | 
					        /// or a default value if the field is empty or contains only dashes.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user