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);
        }
Example #2
0
 //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);
     }
 }
Example #3
0
 //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"));
 }
Example #10
0
 /// <summary>TODO: 逆にフォルダ名にVerつけられないか</summary>
 /// <param name="masterVersion"></param>
 /// <returns></returns>
 public static string GetMasterSubDiretoryName(MasterVersion masterVersion)
 {
     return(masterVersion.ToString().Replace("Ver", ""));
 }