private Dictionary <int, コメントマスター> Readコメント(MasterVersion masterVersion) { var filePath = Path.Combine(MasterRootDiretoryPath, EnumUtil.GetMasterSubDiretoryName(masterVersion), "c.csv"); var dict = new Dictionary <int, コメントマスター>(); Action <CsvReader> readAction = csv => { while (csv.Read()) { var x = new コメントマスター(); x.区分 = csv.GetField <int>((int)MASTER_C_IDX.区分); x.パターン = csv.GetField <int>((int)MASTER_C_IDX.パターン); x.一連番号 = csv.GetField <int>((int)MASTER_C_IDX.一連番号); x.漢字名称 = csv.GetField <string>((int)MASTER_C_IDX.漢字名称); x.カラム位置桁数 = new List <Tuple <int, int> >(); // 4回まである。 var カラム位置 = csv.GetField <int>((int)MASTER_C_IDX.カラム1位置); var カラム桁数 = csv.GetField <int>((int)MASTER_C_IDX.カラム1桁数); if (0 < カラム桁数) { x.カラム位置桁数.Add(new Tuple <int, int>(カラム位置, カラム桁数)); } カラム位置 = csv.GetField <int>((int)MASTER_C_IDX.カラム2位置); カラム桁数 = csv.GetField <int>((int)MASTER_C_IDX.カラム2桁数); if (0 < カラム桁数) { x.カラム位置桁数.Add(new Tuple <int, int>(カラム位置, カラム桁数)); } カラム位置 = csv.GetField <int>((int)MASTER_C_IDX.カラム3位置); カラム桁数 = csv.GetField <int>((int)MASTER_C_IDX.カラム3桁数); if (0 < カラム桁数) { x.カラム位置桁数.Add(new Tuple <int, int>(カラム位置, カラム桁数)); } カラム位置 = csv.GetField <int>((int)MASTER_C_IDX.カラム4位置); カラム桁数 = csv.GetField <int>((int)MASTER_C_IDX.カラム4桁数); if (0 < カラム桁数) { x.カラム位置桁数.Add(new Tuple <int, int>(カラム位置, カラム桁数)); } #if DEBUG // 2020年以降しかコメントコード列がない。 if (MasterVersion.Ver202004 <= masterVersion) { var コメントコード = csv.GetField <int>((int)MASTER_C_IDX.コメントコード); Debug.Assert(コメントコード == x.コメントコード); } #endif dict.Add(x.コメントコード, x); } }; CSVUtil.Read(filePath, readAction); return(dict); }
//hash code trait public override int GetHashCode() { unchecked { var hash = 0; hash = hash * 31 + MasterVersion.GetHashCode(); hash = hash * 31 + SlaveVersion.GetHashCode(); hash = hash * 31 + Text.GetHashCode(); return(hash); } }
//pretty print public void Print(PrettyPrinter printer) { printer.Println("RdAssertion ("); using (printer.IndentCookie()) { printer.Print("masterVersion = "); MasterVersion.PrintEx(printer); printer.Println(); printer.Print("slaveVersion = "); SlaveVersion.PrintEx(printer); printer.Println(); printer.Print("text = "); Text.PrintEx(printer); printer.Println(); } printer.Print(")"); }
private Dictionary <int, string> Read修飾語(MasterVersion masterVersion) { var filePath = Path.Combine(MasterRootDiretoryPath, EnumUtil.GetMasterSubDiretoryName(masterVersion), "z.csv"); var dict = new Dictionary <int, string>(); Action <CsvReader> readAction = csv => { while (csv.Read()) { var id = csv.GetField <int>((int)MASTER_Z_IDX.修飾語コード); var name = csv.GetField <string>((int)MASTER_Z_IDX.修飾語名称); dict.Add(id, name); } }; CSVUtil.Read(filePath, readAction); return(dict); }
private void InitializeMasterConverter(MasterVersion masterVersion) { 傷病名Converter.Instance.傷病名Dict = this.Read傷病名(masterVersion); 傷病名Converter.Instance.修飾語Dict = this.Read修飾語(masterVersion); コメントConverter.Instance.コメントDict = this.Readコメント(masterVersion); var 診療行為List = this.Read診療行為(masterVersion); DictConverter.診療行為Instance((int)masterVersion).Dict = 診療行為List.ToDictionary(x => x.Id, x => x.称); DictConverter.診療行為単位Instance.Dict = 診療行為List.ToDictionary(x => x.Id, x => x.単位); var 医薬品List = this.Read医薬品(masterVersion); DictConverter.医薬品Instance((int)masterVersion).Dict = 医薬品List.ToDictionary(x => x.Id, x => x.称); DictConverter.医薬品単位Instance.Dict = 医薬品List.ToDictionary(x => x.Id, x => x.単位); var 特定器材List = this.Read特定器材(masterVersion); DictConverter.特定器材Instance((int)masterVersion).Dict = 特定器材List.ToDictionary(x => x.Id, x => x.称); DictConverter.特定器材単位Instance.Dict = 特定器材List.ToDictionary(x => x.Id, x => x.単位); }
private List <称単位マスター> Read名称単位マスター(MasterVersion masterVersion, string fileName) { var filePath = Path.Combine(MasterRootDiretoryPath, EnumUtil.GetMasterSubDiretoryName(masterVersion), fileName); var list = new List <称単位マスター>(); Action <CsvReader> readAction = csv => { while (csv.Read()) { var id = csv.GetField <int>((int)MASTER_S_Y_T_IDX.コード); var 称 = csv.GetField <string>((int)MASTER_S_Y_T_IDX.称); var 単位 = csv.GetField <string>((int)MASTER_S_Y_T_IDX.単位); list.Add(new 称単位マスター() { Id = id, 称 = 称, 単位 = 単位 }); } }; CSVUtil.Read(filePath, readAction); return(list); }
private List <称単位マスター> Read特定器材(MasterVersion masterVersion) { return(Read名称単位マスター(masterVersion, "t.csv")); }
private List <称単位マスター> Read医薬品(MasterVersion masterVersion) { return(Read名称単位マスター(masterVersion, "y.csv")); }
private List <称単位マスター> Read診療行為(MasterVersion masterVersion) { return(Read名称単位マスター(masterVersion, "s.csv")); }
/// <summary>TODO: 逆にフォルダ名にVerつけられないか</summary> /// <param name="masterVersion"></param> /// <returns></returns> public static string GetMasterSubDiretoryName(MasterVersion masterVersion) { return(masterVersion.ToString().Replace("Ver", "")); }