using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; 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> /// <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 = "肿瘤学阅片评估原因请依据临床数据填写,在与影像学结果不一致时必填。"; public static bool IsNullOrEmpty(this string value) { if (value == null || value == string.Empty) { return true; } else { return false; } } /// <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 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 ?? ""; } } }