예제 #1
0
        public static void Merge(string folderIn, string folderOut)
        {
            string[] files = Directory.GetFiles(folderIn);

            string fileHM = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "HM");
            string fileLM = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "LM");
            string fileH1 = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "H_");
            string fileL1 = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "L_");

            string errorMessage = "";

            if (String.IsNullOrWhiteSpace(fileHM))
            {
                errorMessage += "Отсутствует файл HM\r\n";
            }
            if (String.IsNullOrWhiteSpace(fileLM))
            {
                errorMessage += "Отсутствует файл LM\r\n";
            }
            if (String.IsNullOrWhiteSpace(fileH1))
            {
                errorMessage += "Отсутствует файл H_\r\n";
            }
            if (String.IsNullOrWhiteSpace(fileL1))
            {
                errorMessage += "Отсутствует файл L_\r\n";
            }
            if (!String.IsNullOrWhiteSpace(errorMessage))
            {
                Messenger.ThrowMessage(errorMessage);
                //MessageBox.Show(errorMessage);
                return;
            }

            var docHM = XDocument.Load(fileHM);
            var docLM = XDocument.Load(fileLM);
            var docH1 = XDocument.Load(fileH1);
            var docL1 = XDocument.Load(fileL1);

            MergeXML(docHM, docH1, docLM, docL1);
            Converter.CountSum(docHM);

            Messenger.WriteMessage("Чиним PRVS в HM");
            PRVS.RepairPRVSInDoc(docHM, folderIn);

            Messenger.WriteMessage("Чиним IDSP в HM");
            Converter.FixIdsp(docHM);

            Messenger.WriteMessage("Сохраняемся в папку");
            docLM.Save(folderOut + Path.GetFileName(fileLM));
            docHM.Save(folderOut + Path.GetFileName(fileHM));
            Messenger.WriteMessage("Завершено");
        }
예제 #2
0
        internal static void ConvertXML(string folderIn, string folderOut, bool moveChilds = false, bool moveAll = false)
        {
            string[] files = Directory.GetFiles(folderIn);

            string fileD = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "DM");
            string fileH = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "HM");

            var docD = XDocument.Load(fileD);
            var docH = XDocument.Load(fileH);

            Messenger.WriteMessage("Исправляем Диспансеризацию");
            FixDispanser(docD, folderIn);

            Messenger.WriteMessage("Исправляем Диспансеризацию для тех, кто прошел после 01.04.2015");
            ConverterApril.FixDispanser01042015(docD, folderIn);

            Messenger.WriteMessage("Исправляем СНИЛСы врачей в D-файле");
            FixSnilsInDFile(docD, folderIn);
            Messenger.WriteMessage("Исправляем СНИЛСы врачей в H-файле");
            FixSinlsInHFile(docH, folderIn);
            Messenger.WriteMessage("Чиним IDSP в HM");
            Converter.FixIdsp(docH);
            if (moveChilds)
            {
                Messenger.WriteMessage("Переносим диспансеризацию детей");
                MoveChildsFromDToH(docD, docH);//, folderOut + Path.GetFileName(fileD), folderOut + Path.GetFileName(fileH));
            }
            if (moveAll)
            {
                Messenger.WriteMessage("Переносим диспансеризацию всех");
                MoveAllFromDToH(docD, docH);//, folderOut + Path.GetFileName(fileD), folderOut + Path.GetFileName(fileH));
            }

            if (moveAll || moveChilds)
            {
                Messenger.WriteMessage("Исправляем все перенесенные записи в H-файле");
                FixHFile3(docH);
            }

            if (!moveAll && !moveChilds)
            {
                Messenger.WriteMessage("Исправляем в DM файле (когда не переносим в HM):");
                FixDispanserIfNotMove(docD);
            }
            Messenger.WriteMessage("Исправляем h-файл");
            FixhFile2(docH, folderIn);

            Messenger.WriteMessage("Пересчитываем цены услуг");
            FixUslPrices(docD, folderIn);
            FixUslPrices(docH, folderIn);

            Messenger.WriteMessage("Пересчитываем убщую сумму");
            CountSum(docD);
            CountSum(docH);

            Messenger.WriteMessage("Чиним PRVS в DM");
            PRVS.RepairPRVSInDoc(docD, folderIn);
            Messenger.WriteMessage("Чиним PRVS в HM");
            PRVS.RepairPRVSInDoc(docH, folderIn);

            Messenger.WriteMessage("Чиним IDSERV в HM");
            FixIdServ(docH);
            Messenger.WriteMessage("Чиним IDSERV в DM");
            FixIdServ(docD);

            Messenger.WriteMessage("Чиним CODE_USL в HM");
            FixCodeUsl(docH);
            Messenger.WriteMessage("Чиним CODE_USL в DM");
            FixCodeUsl(docD);

            Messenger.WriteMessage("Сохраняемся в папку");

            var dOut = folderOut + Path.GetFileName(fileD);
            var hOut = folderOut + Path.GetFileName(fileH);

            docD.Save(dOut, SaveOptions.None);
            docH.Save(hOut, SaveOptions.None);

            Messenger.WriteMessage("Завершено");
        }