271 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			C#
		
	
	
| using IRaCIS.Core.Domain.Share;
 | |
| using System.ComponentModel.DataAnnotations;
 | |
| using System.Reflection;
 | |
| 
 | |
| namespace IRaCIS.Core.Infra.EFCore.Common
 | |
| {
 | |
|     public static class ReadingCommon
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// 标准字典设置
 | |
|         /// </summary>
 | |
|         public static class CriterionDictionary
 | |
|         {
 | |
|             /// <summary>
 | |
|             /// 全局评估类型
 | |
|             /// </summary>
 | |
|             public const string GlobalAssess = "GlobalAssessType";
 | |
| 
 | |
|             /// <summary>
 | |
|             /// 肿瘤学评估类型
 | |
|             /// </summary>
 | |
|             public const string OncologyAssess = "OncologyAssessType";
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|             ///// <summary>
 | |
|             ///// 标准字典需要配置的相
 | |
|             ///// </summary>
 | |
|             //public static  List<string> CriterionDictionaryCodeList = new List<string>()
 | |
|             //{
 | |
|             //    "LesionType",
 | |
|             //    "QuestionType"
 | |
|             //}; 
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取DictionaryGroup
 | |
|         /// </summary>
 | |
|         public static List<CrterionDictionaryGroup> GetCrterionDictionaryGroup(bool isConvertedTask)
 | |
|         {
 | |
| 
 | |
|             if (isConvertedTask)
 | |
|             {
 | |
|                 return new List<CrterionDictionaryGroup>() { CrterionDictionaryGroup.General, CrterionDictionaryGroup.Converted };
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return new List<CrterionDictionaryGroup>() { CrterionDictionaryGroup.General, CrterionDictionaryGroup.BeforeConvert };
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 枚举数组转字符串数组 方法名简短
 | |
|         /// </summary>
 | |
|         /// <typeparam name="T"></typeparam>
 | |
|         /// <param name="emus"></param>
 | |
|         /// <returns></returns>
 | |
|         public static List<string> EnumToString<T>(List<T> emus) where T : Enum
 | |
|         {
 | |
|             return emus.Select(x => ((int)(object)x).ToString()).ToList();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取语言名称
 | |
|         /// </summary>
 | |
|         /// <param name="Name"></param>
 | |
|         /// <param name="englishName"></param>
 | |
|         /// <param name="isEN"></param>
 | |
|         /// <returns></returns>
 | |
|         public static string LanguageName(this string Name, string englishName, bool isEN)
 | |
|         {
 | |
|             return isEN ? englishName : Name;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 阅片问题类型
 | |
|         /// </summary>
 | |
|         public static class QuestionType
 | |
|         {
 | |
| 
 | |
|             /// <summary>
 | |
|             /// 类型自动计算
 | |
|             /// </summary>
 | |
|             public const string Calculation = "calculation";
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         public static Dictionary<int, string> SplitLesionDic = new Dictionary<int, string>()
 | |
|         {
 | |
|              {1, "a"  },
 | |
|              {2, "b"  },
 | |
|              {3, "c"  },
 | |
|              {4, "d"  },
 | |
|              {5, "e"  },
 | |
|              {6, "f"  },
 | |
|              {7, "g"  },
 | |
|              {8, "h"  },
 | |
|              {9, "i"  },
 | |
|              {10, "j"  },
 | |
|              {11, "k"  },
 | |
|              {12, "l"  },
 | |
|              {13, "m"  },
 | |
|              {14, "n"  },
 | |
|              {15, "o"  },
 | |
|              {16, "p"  },
 | |
|              {17, "q"  },
 | |
|              {18, "r"  },
 | |
|              {19, "s"  },
 | |
|              {20, "t"  },
 | |
|              {21, "u"  },
 | |
|              {22, "v"  },
 | |
|              {23, "w"  },
 | |
|              {24, "x"  },
 | |
|              {25, "y"  },
 | |
|              {26, "z"  },
 | |
| 
 | |
|         };
 | |
| 
 | |
|         public static string GetLesionMark(this decimal value)
 | |
|         {
 | |
|             if (value % 1 == 0)
 | |
|             {
 | |
|                 return decimal.ToInt32(value).ToString().PadLeft(2, '0');
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return Math.Floor(value).ToString().PadLeft(2, '0') + SplitLesionDic[decimal.ToInt32((value % 1) * 100)];
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static Dictionary<ReadingCategory, decimal> TaskNumDic = new Dictionary<ReadingCategory, decimal>()
 | |
|         {
 | |
|             {ReadingCategory.Visit, 0  },
 | |
|             {ReadingCategory.Global,(decimal) 0.03  },
 | |
|             {ReadingCategory.Judge,(decimal) 0.02  },
 | |
|             {ReadingCategory.Oncology, (decimal)0.06  },
 | |
| 
 | |
|         };
 | |
| 
 | |
|         public const string EvaluationReason = "肿瘤学阅片评估原因请依据临床数据填写,在与影像学结果不一致时必填。";
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取枚举Int值
 | |
|         /// </summary>
 | |
|         /// <typeparam name="T"></typeparam>
 | |
|         /// <param name="value"></param>
 | |
|         /// <returns></returns>
 | |
|         public static string GetEnumNullInt<T>(this T? value) where T : struct, Enum
 | |
|         {
 | |
|             if (value == null)
 | |
|             {
 | |
|                 return string.Empty;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return ((int)(object)value).ToString();
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取枚举Int值
 | |
|         /// </summary>
 | |
|         /// <typeparam name="T"></typeparam>
 | |
|         /// <param name="value"></param>
 | |
|         /// <returns></returns>
 | |
|         public static string GetEnumInt<T>(this T value) where T : Enum
 | |
|         {
 | |
| 
 | |
|             return ((int)(object)value).ToString();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 字符匹配枚举
 | |
|         /// </summary>
 | |
|         /// <typeparam name="T"></typeparam>
 | |
|         /// <param name="value"></param>
 | |
|         /// <param name="enumValue"></param>
 | |
|         /// <returns></returns>
 | |
|         public static bool EqEnum<T>(this string value, T enumValue) where T : Enum
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 return int.Parse(value) == (int)(object)enumValue;
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
| 
 | |
|                 return false;
 | |
|             }
 | |
|         }
 | |
|         public static decimal NullChange0(this decimal? value)
 | |
|         {
 | |
|             if (value == null)
 | |
|             {
 | |
|                 return 0;
 | |
| 
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return value.Value;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static decimal? IsNullOrEmptyReturnNull(this string value)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 if (value == null || value == string.Empty || value == "NA")
 | |
|                 {
 | |
|                    return null;
 | |
| 
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     return decimal.Parse(value);
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
| 
 | |
|                 return null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static decimal IsNullOrEmptyReturn0(this string value)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 if (value == null || value == string.Empty || value == "NA")
 | |
|                 {
 | |
|                     return 0;
 | |
| 
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     return decimal.Parse(value);
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception)
 | |
|             {
 | |
| 
 | |
|                 return 0;
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取DisplayName
 | |
|         /// </summary>
 | |
|         /// <param name="enumName"></param>
 | |
|         /// <returns></returns>
 | |
|         public static string GetDisplayName(this Enum enumName)
 | |
|         {
 | |
|             var type = enumName.GetType();//先获取这个枚举的类型
 | |
|             var field = type.GetField(enumName.ToString());//通过这个类型获取到值
 | |
|             var obj = (DisplayAttribute)field.GetCustomAttribute(typeof(DisplayAttribute));//得到特性
 | |
|             return obj.Name ?? "";
 | |
|         }
 | |
|     }
 | |
| }
 |