Пример #1
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной картой
        /// </summary>
        /// <param name="diffRangeOfMotionCard">Импортируемая карта объёма движений</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации (если она есть)</param>
        /// <param name="visitDate">Дата консультации (если она есть)</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CRangeOfMotionCard diffRangeOfMotionCard,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string visitDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (OppositionFinger != diffRangeOfMotionCard.OppositionFinger)
            {
                CreateMergeInfos(
                    ObjectType.RangeOfMotionCardOppositionFinger,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Палец в оппозиции",
                    OppositionFinger,
                    diffRangeOfMotionCard.OppositionFinger,
                    diffRangeOfMotionCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(Fields, diffRangeOfMotionCard.Fields, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.RangeOfMotionCardFields,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Список полей",
                    ownValue,
                    foreignValue,
                    diffRangeOfMotionCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Fields;
                foreignPatientMergeInfo.Object = diffRangeOfMotionCard.Fields;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Пример #2
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// осмотром в отделении
        /// </summary>
        /// <param name="diffMedicalInspection">Импортируемый осмотр в отделении</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CMedicalInspection diffMedicalInspection,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AnamneseAnMorbi != diffMedicalInspection.AnamneseAnMorbi)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseAnMorbi,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Анамнез, AnMorbi",
                    AnamneseAnMorbi,
                    diffMedicalInspection.AnamneseAnMorbi,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Complaints != diffMedicalInspection.Complaints)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionComplaints,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, жалобы",
                    Complaints,
                    diffMedicalInspection.Complaints,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ExpertAnamnese != diffMedicalInspection.ExpertAnamnese)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionExpertAnamnese,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, 1, 2 или 3 лист нетрудоспособности",
                    ExpertAnamnese.ToString(),
                    diffMedicalInspection.ExpertAnamnese.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisDescription != diffMedicalInspection.StLocalisDescription)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisDescription,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Описание StLocalis-а",
                    StLocalisDescription,
                    diffMedicalInspection.StLocalisDescription,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisRentgen != diffMedicalInspection.StLocalisRentgen)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisRentgen,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Тип рентгена",
                    StLocalisRentgen,
                    diffMedicalInspection.StLocalisRentgen,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InspectionPlan != diffMedicalInspection.InspectionPlan)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionInspectionPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, обследование",
                    InspectionPlan,
                    diffMedicalInspection.InspectionPlan,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsAnamneseActive != diffMedicalInspection.IsAnamneseActive)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsAnamneseActive,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли анамнез в общий отчёт",
                    IsAnamneseActive.ToString(),
                    diffMedicalInspection.IsAnamneseActive.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsPlanEnabled != diffMedicalInspection.IsPlanEnabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsPlanEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли план осмотра в отчёт",
                    IsPlanEnabled.ToString(),
                    diffMedicalInspection.IsPlanEnabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsStLocalisPart1Enabled != diffMedicalInspection.IsStLocalisPart1Enabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsStLocalisPart1Enabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли st.localis часть 1 в общий отчёт",
                    IsStLocalisPart1Enabled.ToString(),
                    diffMedicalInspection.IsStLocalisPart1Enabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsStLocalisPart2Enabled != diffMedicalInspection.IsStLocalisPart2Enabled)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionIsStLocalisPart2Enabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включён ли st.localis часть 2 в общий отчёт",
                    IsStLocalisPart2Enabled.ToString(),
                    diffMedicalInspection.IsStLocalisPart2Enabled.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart1OppositionFinger != diffMedicalInspection.StLocalisPart1OppositionFinger)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart1OppositionFinger,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 1, номер пальца в оппозиции",
                    StLocalisPart1OppositionFinger,
                    diffMedicalInspection.StLocalisPart1OppositionFinger,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart2NumericUpDown != diffMedicalInspection.StLocalisPart2NumericUpDown)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2NumericUpDown,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 2, числовое поле",
                    StLocalisPart2NumericUpDown.ToString(),
                    diffMedicalInspection.StLocalisPart2NumericUpDown.ToString(),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalisPart2WhichHand != diffMedicalInspection.StLocalisPart2WhichHand)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2WhichHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "st.localis часть 2, выбор повреждённой руки",
                    StLocalisPart2WhichHand,
                    diffMedicalInspection.StLocalisPart2WhichHand,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (TeoRisk != diffMedicalInspection.TeoRisk)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionTeoRisk,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общие данные, риск ТЭО",
                    TeoRisk,
                    diffMedicalInspection.TeoRisk,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnFirstDateStart, diffMedicalInspection.LnFirstDateStart) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnFirstDateStart,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан первично с",
                    CConvertEngine.DateTimeToString(LnFirstDateStart),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnFirstDateStart),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnWithNumberDateEnd, diffMedicalInspection.LnWithNumberDateEnd) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnWithNumberDateEnd,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан амбулаторно до",
                    CConvertEngine.DateTimeToString(LnWithNumberDateEnd),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnWithNumberDateEnd),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(LnWithNumberDateStart, diffMedicalInspection.LnWithNumberDateStart) != 0)
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionLnWithNumberDateStart,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "общие данные, выдан амбулаторно с",
                    CConvertEngine.DateTimeToString(LnWithNumberDateStart),
                    CConvertEngine.DateTimeToString(diffMedicalInspection.LnWithNumberDateStart),
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(AnamneseAnVitae, diffMedicalInspection.AnamneseAnVitae, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseAnVitae,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "осмотр в отделении, анамнез, AnVitae",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseAnVitae;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseAnVitae;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensTextBoxes, diffMedicalInspection.StPraesensTextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensTextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensTextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensTextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AnamneseCheckboxes, diffMedicalInspection.AnamneseCheckboxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseCheckboxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "анамнез, checkbox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseCheckboxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseCheckboxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AnamneseTextBoxes, diffMedicalInspection.AnamneseTextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionAnamneseTextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "анамнез, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AnamneseTextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.AnamneseTextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart1Fields, diffMedicalInspection.StLocalisPart1Fields, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart1Fields,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 1, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart1Fields;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart1Fields;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2ComboBoxes, diffMedicalInspection.StLocalisPart2ComboBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2ComboBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2ComboBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2ComboBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2LeftHand, diffMedicalInspection.StLocalisPart2LeftHand, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2LeftHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы для левой руки",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2LeftHand;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2LeftHand;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2RightHand, diffMedicalInspection.StLocalisPart2RightHand, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2RightHand,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, comboBox-ы для правой руки",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2RightHand;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2RightHand;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StLocalisPart2TextBoxes, diffMedicalInspection.StLocalisPart2TextBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStLocalisPart2TextBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StLocalis часть 2, текстовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StLocalisPart2TextBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StLocalisPart2TextBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensComboBoxes, diffMedicalInspection.StPraesensComboBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensComboBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, comboBox-ы",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensComboBoxes;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensComboBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(StPraesensNumericUpDowns, diffMedicalInspection.StPraesensNumericUpDowns, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.MedicalInspectionStPraesensNumericUpDowns,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "StPraesens, числовые поля",
                    ownValue,
                    foreignValue,
                    diffMedicalInspection,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = StPraesensNumericUpDowns;
                foreignPatientMergeInfo.Object = diffMedicalInspection.StPraesensNumericUpDowns;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Пример #3
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// выписным эпикризом
        /// </summary>
        /// <param name="diffDischargeEpicrisis">Импортируемый выписной эпикриз</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CDischargeEpicrisis diffDischargeEpicrisis,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;


            if (AnalysisDate.HasValue && diffDischargeEpicrisis.AnalysisDate.HasValue &&
                CCompareEngine.CompareDate(AnalysisDate.Value, diffDischargeEpicrisis.AnalysisDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAfterOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата взятия анализов",
                    CConvertEngine.DateTimeToString(AnalysisDate.Value),
                    CConvertEngine.DateTimeToString(diffDischargeEpicrisis.AnalysisDate.Value),
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AfterOperation != diffDischargeEpicrisis.AfterOperation)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAfterOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "После операции",
                    AfterOperation,
                    diffDischargeEpicrisis.AfterOperation,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ConservativeTherapy != diffDischargeEpicrisis.ConservativeTherapy)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisConservativeTherapy,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Консервативное лечение",
                    ConservativeTherapy,
                    diffDischargeEpicrisis.ConservativeTherapy,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Ekg != diffDischargeEpicrisis.Ekg)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisEkg,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "ЭКГ",
                    Ekg,
                    diffDischargeEpicrisis.Ekg,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakEritrocits != diffDischargeEpicrisis.OakEritrocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakEritrocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, эритроциты",
                    OakEritrocits,
                    diffDischargeEpicrisis.OakEritrocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakHb != diffDischargeEpicrisis.OakHb)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakHb,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, Hb",
                    OakHb,
                    diffDischargeEpicrisis.OakHb,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakLekocits != diffDischargeEpicrisis.OakLekocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakLekocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, лейкоциты",
                    OakLekocits,
                    diffDischargeEpicrisis.OakLekocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OakSoe != diffDischargeEpicrisis.OakSoe)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOakSoe,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ крови, СОЭ",
                    OakSoe,
                    diffDischargeEpicrisis.OakSoe,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamColor != diffDischargeEpicrisis.OamColor)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamColor,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, цвет",
                    OamColor,
                    diffDischargeEpicrisis.OamColor,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamDensity != diffDischargeEpicrisis.OamDensity)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamDensity,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, относительная плотность",
                    OamDensity,
                    diffDischargeEpicrisis.OamDensity,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamEritrocits != diffDischargeEpicrisis.OamEritrocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamEritrocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, эритроциты",
                    OamEritrocits,
                    diffDischargeEpicrisis.OamEritrocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OamLekocits != diffDischargeEpicrisis.OamLekocits)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisOamLekocits,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Общий анализ мочи, лейкоциты",
                    OamLekocits,
                    diffDischargeEpicrisis.OamLekocits,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AdditionalAnalises != diffDischargeEpicrisis.AdditionalAnalises)
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAdditionalAnalises,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Другие анализы",
                    AdditionalAnalises,
                    diffDischargeEpicrisis.AdditionalAnalises,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(Recomendations.ToArray(), diffDischargeEpicrisis.Recomendations.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisRecomendations,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Рекомендации при выписке",
                    ownValue,
                    foreignValue,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Recomendations;
                foreignPatientMergeInfo.Object = diffDischargeEpicrisis.Recomendations;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(AdditionalRecomendations.ToArray(), diffDischargeEpicrisis.AdditionalRecomendations.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.DischargeEpicrisisAdditionalRecomendations,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительные рекомендации при выписке",
                    ownValue,
                    foreignValue,
                    diffDischargeEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = AdditionalRecomendations;
                foreignPatientMergeInfo.Object = diffDischargeEpicrisis.AdditionalRecomendations;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Пример #4
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной картой
        /// </summary>
        /// <param name="diffObstetricParalysisCard">Импортируемая карта</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации (если она есть)</param>
        /// <param name="visitDate">Дата консультации (если она есть)</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CObstetricParalysisCard diffObstetricParalysisCard,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string visitDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (SideOfCard != diffObstetricParalysisCard.SideOfCard)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardSideOfCard,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Сторона",
                    SideOfCard.ToString(),
                    diffObstetricParalysisCard.SideOfCard.ToString(),
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(GlobalAbductionPicturesSelection, diffObstetricParalysisCard.GlobalAbductionPicturesSelection, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardGlobalAbduction,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о Global Abduction",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = GlobalAbductionPicturesSelection;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.GlobalAbductionPicturesSelection;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(GlobalExternalRotationPicturesSelection, diffObstetricParalysisCard.GlobalExternalRotationPicturesSelection, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardGlobalExternalRotation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о Global External Rotation",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = GlobalExternalRotationPicturesSelection;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.GlobalExternalRotationPicturesSelection;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(HandToNeckPicturesSelection, diffObstetricParalysisCard.HandToNeckPicturesSelection, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardHandToNeck,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о Hand To Neck",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = HandToNeckPicturesSelection;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.HandToNeckPicturesSelection;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(HandToSpinePicturesSelection, diffObstetricParalysisCard.HandToSpinePicturesSelection, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardHandToSpine,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о Hand To Spine",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = HandToSpinePicturesSelection;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.HandToSpinePicturesSelection;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(HandToMouthPicturesSelection, diffObstetricParalysisCard.HandToMouthPicturesSelection, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardHandToMouth,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о Hand To Mouth",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = HandToMouthPicturesSelection;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.HandToMouthPicturesSelection;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(ComboBoxes, diffObstetricParalysisCard.ComboBoxes, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricParalysisCardComboBoxes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Список комбобоксов",
                    ownValue,
                    foreignValue,
                    diffObstetricParalysisCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = ComboBoxes;
                foreignPatientMergeInfo.Object = diffObstetricParalysisCard.ComboBoxes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Пример #5
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и
        /// переданным анамнезом
        /// </summary>
        /// <param name="diffObstetricHistory">Импортируемый анамнез</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CObstetricHistory diffObstetricHistory, string patientFio, string nosology, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (ApgarScore != diffObstetricHistory.ApgarScore)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryApgarScore,
                    patientFio,
                    nosology,
                    "Шкала Апгар",
                    ApgarScore,
                    diffObstetricHistory.ApgarScore,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (BirthInjury != diffObstetricHistory.BirthInjury)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryBirthInjury,
                    patientFio,
                    nosology,
                    "Родовая травма",
                    BirthInjury,
                    diffObstetricHistory.BirthInjury,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ChildbirthWeeks != diffObstetricHistory.ChildbirthWeeks)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryChildbirthWeeks,
                    patientFio,
                    nosology,
                    "Роды в срок",
                    ChildbirthWeeks,
                    diffObstetricHistory.ChildbirthWeeks,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ComplicationsDuringChildbirth != diffObstetricHistory.ComplicationsDuringChildbirth)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryComplicationsDuringChildbirth,
                    patientFio,
                    nosology,
                    "Осложнения в ходе родов",
                    ComplicationsDuringChildbirth,
                    diffObstetricHistory.ComplicationsDuringChildbirth,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ComplicationsInPregnancy != diffObstetricHistory.ComplicationsInPregnancy)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryComplicationsInPregnancy,
                    patientFio,
                    nosology,
                    "Осложнения в период беременности",
                    ComplicationsInPregnancy,
                    diffObstetricHistory.ComplicationsInPregnancy,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (DrugsInPregnancy != diffObstetricHistory.DrugsInPregnancy)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryDrugsInPregnancy,
                    patientFio,
                    nosology,
                    "Лекарственные препараты и хронические интоксикации в период беременности",
                    DrugsInPregnancy,
                    diffObstetricHistory.DrugsInPregnancy,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (DurationOfLabor != diffObstetricHistory.DurationOfLabor)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryDurationOfLabor,
                    patientFio,
                    nosology,
                    "Длительности родов",
                    DurationOfLabor,
                    diffObstetricHistory.DurationOfLabor,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Fetal != diffObstetricHistory.Fetal)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryFetal,
                    patientFio,
                    nosology,
                    "Предлежание",
                    Fetal,
                    diffObstetricHistory.Fetal,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HeightAtBirth != diffObstetricHistory.HeightAtBirth)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryHeightAtBirth,
                    patientFio,
                    nosology,
                    "Рост при рождении",
                    HeightAtBirth,
                    diffObstetricHistory.HeightAtBirth,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HospitalTreatment != diffObstetricHistory.HospitalTreatment)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryHospitalTreatment,
                    patientFio,
                    nosology,
                    "Стационарное лечение",
                    HospitalTreatment,
                    diffObstetricHistory.HospitalTreatment,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsTongsUsing != diffObstetricHistory.IsTongsUsing)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryIsTongsUsing,
                    patientFio,
                    nosology,
                    "Использование щипцов в ходе родов",
                    IsTongsUsing.ToString(),
                    diffObstetricHistory.IsTongsUsing.ToString(),
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsVacuumUsing != diffObstetricHistory.IsVacuumUsing)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryIsVacuumUsing,
                    patientFio,
                    nosology,
                    "Использование ваккума в ходе родов",
                    IsVacuumUsing.ToString(),
                    diffObstetricHistory.IsVacuumUsing.ToString(),
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ObstetricParalysis != diffObstetricHistory.ObstetricParalysis)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryObstetricParalysis,
                    patientFio,
                    nosology,
                    "Кем и когда диагностирован акушерский паралич",
                    ObstetricParalysis,
                    diffObstetricHistory.ObstetricParalysis,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OutpatientCare != diffObstetricHistory.OutpatientCare)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryOutpatientCare,
                    patientFio,
                    nosology,
                    "Амбулаторное лечение",
                    OutpatientCare,
                    diffObstetricHistory.OutpatientCare,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (WeightAtBirth != diffObstetricHistory.WeightAtBirth)
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryWeightAtBirth,
                    patientFio,
                    nosology,
                    "Вес при рождении",
                    WeightAtBirth,
                    diffObstetricHistory.WeightAtBirth,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(Chronology, diffObstetricHistory.Chronology, out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.ObstetricHistoryChronology,
                    patientFio,
                    nosology,
                    "Хронология восстановления активных движений верхней конечности",
                    ownValue,
                    foreignValue,
                    diffObstetricHistory,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Chronology;
                foreignPatientMergeInfo.Object = diffObstetricHistory.Chronology;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Пример #6
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной операции
        /// </summary>
        /// <param name="diffOperation">Импортируемая операция</param>
        /// <param name="patientFio">ФИО импортируемого пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата импортируемой госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            COperation diffOperation,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (HeAnaesthetist != diffOperation.HeAnaesthetist)
            {
                CreateMergeInfos(
                    ObjectType.OperationHeAnaesthetist,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Анестезист",
                    HeAnaesthetist,
                    diffOperation.HeAnaesthetist,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (SheAnaesthetist != diffOperation.SheAnaesthetist)
            {
                CreateMergeInfos(
                    ObjectType.OperationSheAnaesthetist,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Анестезистка",
                    SheAnaesthetist,
                    diffOperation.SheAnaesthetist,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ScrubNurse != diffOperation.ScrubNurse)
            {
                CreateMergeInfos(
                    ObjectType.OperationScrubNurse,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Операционная мед. сестра",
                    ScrubNurse,
                    diffOperation.ScrubNurse,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Orderly != diffOperation.Orderly)
            {
                CreateMergeInfos(
                    ObjectType.OperationOrderly,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Санитар",
                    Orderly,
                    diffOperation.Orderly,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(DateOfOperation, diffOperation.DateOfOperation) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationDateOfOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата операции",
                    CConvertEngine.DateTimeToString(DateOfOperation),
                    CConvertEngine.DateTimeToString(diffOperation.DateOfOperation),
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareTime(StartTimeOfOperation, diffOperation.StartTimeOfOperation) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationStartTimeOfOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Время начала операции",
                    CConvertEngine.TimeToString(StartTimeOfOperation),
                    CConvertEngine.TimeToString(diffOperation.StartTimeOfOperation),
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (EndTimeOfOperation.HasValue && !diffOperation.EndTimeOfOperation.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.OperationEndTimeOfOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Время окончания операции",
                    CConvertEngine.TimeToString(EndTimeOfOperation.Value),
                    "Нет значения",
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (!EndTimeOfOperation.HasValue && diffOperation.EndTimeOfOperation.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.OperationEndTimeOfOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Время окончания операции",
                    "Нет значения",
                    CConvertEngine.TimeToString(diffOperation.EndTimeOfOperation.Value),
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (EndTimeOfOperation.HasValue && diffOperation.EndTimeOfOperation.HasValue &&
                     CCompareEngine.CompareDate(EndTimeOfOperation.Value, diffOperation.EndTimeOfOperation.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationEndTimeOfOperation,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Время окончания операции",
                    CConvertEngine.TimeToString(EndTimeOfOperation.Value),
                    CConvertEngine.TimeToString(diffOperation.EndTimeOfOperation.Value),
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            string ownValue;
            string foreignValue;

            if (!CCompareEngine.IsArraysEqual(Surgeons.ToArray(), diffOperation.Surgeons.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.OperationSurgeons,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Список хирургов",
                    ownValue,
                    foreignValue,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Surgeons;
                foreignPatientMergeInfo.Object = diffOperation.Surgeons;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(Assistents.ToArray(), diffOperation.Assistents.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.OperationAssistents,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Список ассистентов",
                    ownValue,
                    foreignValue,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Assistents;
                foreignPatientMergeInfo.Object = diffOperation.Assistents;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (!CCompareEngine.IsArraysEqual(OperationTypes.ToArray(), diffOperation.OperationTypes.ToArray(), out ownValue, out foreignValue))
            {
                CreateMergeInfos(
                    ObjectType.OperationTypes,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Список типов операций",
                    ownValue,
                    foreignValue,
                    diffOperation,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = OperationTypes;
                foreignPatientMergeInfo.Object = diffOperation.OperationTypes;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }