Ejemplo n.º 1
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной картой
        /// </summary>
        /// <param name="diffCard">Импортируемая карта</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(
            CCard diffCard,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string visitDate,
            CDatabasesMerger databasesMerger)
        {
            if (CCompareEngine.IsBitmapsDifferent(Picture, diffCard.Picture))
            {
                CMergeInfo ownPatientMergeInfo;
                CMergeInfo foreignPatientMergeInfo;

                CreateMergeInfos(
                    ObjectType.LeftRightCardPicture,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Изображение",
                    "Смотри картинку",
                    "Смотри картинку",
                    diffCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

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

            if (AdditionalInfo != diffLineOfCommunicationEpicrisis.AdditionalInfo)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisAdditionalInfo,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительная информация",
                    AdditionalInfo,
                    diffLineOfCommunicationEpicrisis.AdditionalInfo,
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Plan != diffLineOfCommunicationEpicrisis.Plan)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Планирующиеся действия",
                    Plan,
                    diffLineOfCommunicationEpicrisis.Plan,
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(WritingDate, diffLineOfCommunicationEpicrisis.WritingDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.LineOfCommunicationEpicrisisWritingDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата написания документа",
                    CConvertEngine.DateTimeToString(WritingDate),
                    CConvertEngine.DateTimeToString(diffLineOfCommunicationEpicrisis.WritingDate),
                    diffLineOfCommunicationEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 3
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);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным
        /// протоколом операции
        /// </summary>
        /// <param name="diffOperationProtocol">Импортируемый протокол операции</param>
        /// <param name="patientFio">ФИО импортируемого пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата импортируемой госпитализации</param>
        /// <param name="operationName">Название импортируемой операции</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            COperationProtocol diffOperationProtocol,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string operationName,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (TreatmentPlanInspection != diffOperationProtocol.TreatmentPlanInspection)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTreatmentPlanInspection,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Обследование пациента",
                    TreatmentPlanInspection,
                    diffOperationProtocol.TreatmentPlanInspection,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsTreatmentPlanActiveInOperationProtocol != diffOperationProtocol.IsTreatmentPlanActiveInOperationProtocol)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolIsTreatmentPlanActiveInOperationProtocol,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Активен ли план обследования в операционном протоколе",
                    IsTreatmentPlanActiveInOperationProtocol.ToString(),
                    diffOperationProtocol.IsTreatmentPlanActiveInOperationProtocol.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ADFirst != diffOperationProtocol.ADFirst)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolADFirst,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Первое значение AD",
                    ADFirst.ToString(),
                    diffOperationProtocol.ADFirst.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ADSecond != diffOperationProtocol.ADSecond)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolADSecond,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Второе значение AD",
                    ADSecond.ToString(),
                    diffOperationProtocol.ADSecond.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Breath != diffOperationProtocol.Breath)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolBreath,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Дыхание",
                    Breath,
                    diffOperationProtocol.Breath,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ChDD != diffOperationProtocol.ChDD)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolChDD,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "ЧДД",
                    ChDD.ToString(),
                    diffOperationProtocol.ChDD.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Complaints != diffOperationProtocol.Complaints)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolComplaints,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Жалобы",
                    Complaints,
                    diffOperationProtocol.Complaints,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (string.Compare(Complaints, diffOperationProtocol.Complaints) == 0)
            {
            }

            if (State != diffOperationProtocol.State)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolState,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Состояние",
                    State,
                    diffOperationProtocol.State,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HeartRhythm != diffOperationProtocol.HeartRhythm)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolHeartRhythm,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Ритм сердца",
                    HeartRhythm,
                    diffOperationProtocol.HeartRhythm,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HeartSounds != diffOperationProtocol.HeartSounds)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolHeartSounds,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Тоны сердца",
                    HeartSounds,
                    diffOperationProtocol.HeartSounds,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsDairyEnabled != diffOperationProtocol.IsDairyEnabled)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolIsDairyEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Активен ли дневник",
                    IsDairyEnabled.ToString(),
                    diffOperationProtocol.IsDairyEnabled.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Pulse != diffOperationProtocol.Pulse)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolPulse,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Пульс",
                    Pulse.ToString(),
                    diffOperationProtocol.Pulse.ToString(),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StLocalis != diffOperationProtocol.StLocalis)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStLocalis,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "StLocalis",
                    StLocalis,
                    diffOperationProtocol.StLocalis,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Stomach != diffOperationProtocol.Stomach)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStomach,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Живот",
                    Stomach,
                    diffOperationProtocol.Stomach,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Stool != diffOperationProtocol.Stool)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolStool,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Стул",
                    Stool,
                    diffOperationProtocol.Stool,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Temperature != diffOperationProtocol.Temperature)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTemperature,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Температура тела",
                    Temperature,
                    diffOperationProtocol.Temperature,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Urination != diffOperationProtocol.Urination)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolUrination,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Мочеиспускание",
                    Urination,
                    diffOperationProtocol.Urination,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Wheeze != diffOperationProtocol.Wheeze)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolWheeze,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Хрипы",
                    Wheeze,
                    diffOperationProtocol.Wheeze,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (OperationCourse != diffOperationProtocol.OperationCourse)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolOperationCourse,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Ход операции",
                    OperationCourse,
                    diffOperationProtocol.OperationCourse,
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(TreatmentPlanDate, diffOperationProtocol.TreatmentPlanDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTreatmentPlanDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Дата написание плана обследования",
                    CConvertEngine.DateTimeToString(TreatmentPlanDate),
                    CConvertEngine.DateTimeToString(diffOperationProtocol.TreatmentPlanDate),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareTime(TimeWriting, diffOperationProtocol.TimeWriting) != 0)
            {
                CreateMergeInfos(
                    ObjectType.OperationProtocolTimeWriting,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    operationName,
                    "Время написания эпикриза",
                    CConvertEngine.TimeToString(TimeWriting),
                    CConvertEngine.TimeToString(diffOperationProtocol.TimeWriting),
                    diffOperationProtocol,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 5
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);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и
        /// переданным переводным эпикризом
        /// </summary>
        /// <param name="diffTransferableEpicrisis">Импортируемый переводной эпикриз</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="hospitalizationDate">Дата госпитализации</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(
            CTransferableEpicrisis diffTransferableEpicrisis,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AfterOperationPeriod != diffTransferableEpicrisis.AfterOperationPeriod)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisAfterOperationPeriod,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Послеоперационный период",
                    AfterOperationPeriod,
                    diffTransferableEpicrisis.AfterOperationPeriod,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Plan != diffTransferableEpicrisis.Plan)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisPlan,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Планирующиеся действия",
                    Plan,
                    diffTransferableEpicrisis.Plan,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(WritingDate, diffTransferableEpicrisis.WritingDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisWritingDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дата написания документа",
                    CConvertEngine.DateTimeToString(WritingDate),
                    CConvertEngine.DateTimeToString(diffTransferableEpicrisis.WritingDate),
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (AdditionalInfo != diffTransferableEpicrisis.AdditionalInfo)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisAdditionalInfo,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Дополнительная информация",
                    AdditionalInfo,
                    diffTransferableEpicrisis.AdditionalInfo,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (DisabilityList != diffTransferableEpicrisis.DisabilityList)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisDisabilityList,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Личный номер",
                    DisabilityList,
                    diffTransferableEpicrisis.DisabilityList,
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsIncludeDisabilityList != diffTransferableEpicrisis.IsIncludeDisabilityList)
            {
                CreateMergeInfos(
                    ObjectType.TransferableEpicrisisIsIncludeDisabilityList,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    "Включать ли личный номер в отчёт",
                    IsIncludeDisabilityList.ToString(),
                    diffTransferableEpicrisis.IsIncludeDisabilityList.ToString(),
                    diffTransferableEpicrisis,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 7
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);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной консультацией
        /// </summary>
        /// <param name="diffVisit">Импортируемая консультация</param>
        /// <param name="patientFio">ФИО импортируемого пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(CVisit diffVisit, string patientFio, string nosology, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (Diagnose != diffVisit.Diagnose)
            {
                CreateMergeInfos(
                    ObjectType.VisitDiagnose,
                    patientFio,
                    nosology,
                    "Диагноз",
                    Diagnose,
                    diffVisit.Diagnose,
                    diffVisit,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Evenly != diffVisit.Evenly)
            {
                CreateMergeInfos(
                    ObjectType.VisitEvenly,
                    patientFio,
                    nosology,
                    "Объективно",
                    Evenly,
                    diffVisit.Evenly,
                    diffVisit,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Comments != diffVisit.Comments)
            {
                CreateMergeInfos(
                    ObjectType.VisitComments,
                    patientFio,
                    nosology,
                    "Комментарии",
                    Comments,
                    diffVisit.Comments,
                    diffVisit,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Recommendation != diffVisit.Recommendation)
            {
                CreateMergeInfos(
                    ObjectType.VisitRecommendation,
                    patientFio,
                    nosology,
                    "Рекомендации",
                    Recommendation,
                    diffVisit.Recommendation,
                    diffVisit,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Doctor != diffVisit.Doctor)
            {
                CreateMergeInfos(
                    ObjectType.VisitDoctor,
                    patientFio,
                    nosology,
                    "Врач",
                    Doctor,
                    diffVisit.Doctor,
                    diffVisit,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и
        /// переданным анамнезом
        /// </summary>
        /// <param name="diffAnamnese">Импортируемый анамнез</param>
        /// <param name="patientFio">ФИО пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(CAnamnese diffAnamnese, string patientFio, string nosology, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (AnMorbi != diffAnamnese.AnMorbi)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseAnMorbi,
                    patientFio,
                    nosology,
                    "Описание анамнеза",
                    AnMorbi,
                    diffAnamnese.AnMorbi,
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (TraumaDate.HasValue && !diffAnamnese.TraumaDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    CConvertEngine.DateTimeToString(TraumaDate.Value, false),
                    "Нет значения",
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (!TraumaDate.HasValue && diffAnamnese.TraumaDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    "Нет значения",
                    CConvertEngine.DateTimeToString(diffAnamnese.TraumaDate.Value, false),
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (TraumaDate.HasValue && diffAnamnese.TraumaDate.HasValue &&
                     CCompareEngine.CompareDate(TraumaDate.Value, diffAnamnese.TraumaDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.AnamneseTraumaDate,
                    patientFio,
                    nosology,
                    "Дата травмы",
                    CConvertEngine.DateTimeToString(TraumaDate.Value, false),
                    CConvertEngine.DateTimeToString(diffAnamnese.TraumaDate.Value, false),
                    diffAnamnese,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 10
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);
            }
        }
Ejemplo n.º 11
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);
            }
        }
Ejemplo n.º 12
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);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной госпитализацией
        /// </summary>
        /// <param name="diffHospitalization">Импортируемая госпитализация</param>
        /// <param name="patientFio">ФИО импортируемого пациента</param>
        /// <param name="nosology">Нозология</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(CHospitalization diffHospitalization, string patientFio, string nosology, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (Diagnose != diffHospitalization.Diagnose)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationDiagnose,
                    patientFio,
                    nosology,
                    "Диагноз",
                    Diagnose,
                    diffHospitalization.Diagnose,
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (DoctorInChargeOfTheCase != diffHospitalization.DoctorInChargeOfTheCase)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationDoctorInChargeOfTheCase,
                    patientFio,
                    nosology,
                    "Лечащий врач",
                    DoctorInChargeOfTheCase,
                    diffHospitalization.DoctorInChargeOfTheCase,
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (FotoFolderName != diffHospitalization.FotoFolderName)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationFotoFolderName,
                    patientFio,
                    nosology,
                    "Название папки с фотографиями",
                    FotoFolderName,
                    diffHospitalization.FotoFolderName,
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (NumberOfCaseHistory != diffHospitalization.NumberOfCaseHistory)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationNumberOfCaseHistory,
                    patientFio,
                    nosology,
                    "Номер истории болезни",
                    NumberOfCaseHistory,
                    diffHospitalization.NumberOfCaseHistory,
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (ReleaseDate.HasValue && diffHospitalization.ReleaseDate.HasValue &&
                CCompareEngine.CompareDate(ReleaseDate.Value, diffHospitalization.ReleaseDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationReleaseDate,
                    patientFio,
                    nosology,
                    "Дата выписки",
                    CConvertEngine.DateTimeToString(ReleaseDate.Value),
                    CConvertEngine.DateTimeToString(diffHospitalization.ReleaseDate.Value),
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (ReleaseDate.HasValue && !diffHospitalization.ReleaseDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationReleaseDate,
                    patientFio,
                    nosology,
                    "Дата выписки",
                    CConvertEngine.DateTimeToString(ReleaseDate.Value),
                    "Нет значения",
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (!ReleaseDate.HasValue && diffHospitalization.ReleaseDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.HospitalizationReleaseDate,
                    patientFio,
                    nosology,
                    "Дата выписки",
                    "Нет значения",
                    CConvertEngine.DateTimeToString(diffHospitalization.ReleaseDate.Value),
                    diffHospitalization,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущей и переданной картой
        /// </summary>
        /// <param name="diffBrachialPlexusCard">Импортируемая карта плечевого сплетения</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(
            CBrachialPlexusCard diffBrachialPlexusCard,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string visitDate,
            CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

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

            if (VascularStatus != diffBrachialPlexusCard.VascularStatus)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardVascularStatus,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Сосудистый статус",
                    VascularStatus,
                    diffBrachialPlexusCard.VascularStatus,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Diaphragm != diffBrachialPlexusCard.Diaphragm)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardDiaphragm,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Диафрагма",
                    Diaphragm,
                    diffBrachialPlexusCard.Diaphragm,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HornersSyndrome != diffBrachialPlexusCard.HornersSyndrome)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardHornersSyndrome,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Синдром Горнера",
                    HornersSyndrome,
                    diffBrachialPlexusCard.HornersSyndrome,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (TinelsSymptom != diffBrachialPlexusCard.TinelsSymptom)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardTinelsSymptom,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Симптом Тинеля",
                    TinelsSymptom,
                    diffBrachialPlexusCard.TinelsSymptom,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsMyelographyEnabled != diffBrachialPlexusCard.IsMyelographyEnabled)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardIsMyelographyEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о том, включена ли миелография",
                    IsMyelographyEnabled.ToString(),
                    diffBrachialPlexusCard.IsMyelographyEnabled.ToString(),
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (MyelographyType != diffBrachialPlexusCard.MyelographyType)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardMyelographyType,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Тип миелографии",
                    MyelographyType,
                    diffBrachialPlexusCard.MyelographyType,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(MyelographyDate, diffBrachialPlexusCard.MyelographyDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardMyelographyDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Дата миелографии",
                    CConvertEngine.DateTimeToString(MyelographyDate),
                    CConvertEngine.DateTimeToString(diffBrachialPlexusCard.MyelographyDate),
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Myelography != diffBrachialPlexusCard.Myelography)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardMyelography,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Миелография",
                    Myelography,
                    diffBrachialPlexusCard.Myelography,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsEMNGEnabled != diffBrachialPlexusCard.IsEMNGEnabled)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardIsEMNGEnabled,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Информация о том, включено ли ЭМНГ",
                    IsEMNGEnabled.ToString(),
                    diffBrachialPlexusCard.IsEMNGEnabled.ToString(),
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.CompareDate(EMNGDate, diffBrachialPlexusCard.EMNGDate) != 0)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardEMNGDate,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Дата ЭМНГ",
                    CConvertEngine.DateTimeToString(EMNGDate),
                    CConvertEngine.DateTimeToString(diffBrachialPlexusCard.EMNGDate),
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (EMNG != diffBrachialPlexusCard.EMNG)
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardEMNG,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "ЭМНГ",
                    EMNG,
                    diffBrachialPlexusCard.EMNG,
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CCompareEngine.IsBitmapsDifferent(Picture, diffBrachialPlexusCard.Picture))
            {
                CreateMergeInfos(
                    ObjectType.BrachialPlexusCardPicture,
                    patientFio,
                    nosology,
                    hospitalizationDate,
                    visitDate,
                    "Изображение",
                    "Смотри картинку",
                    "Смотри картинку",
                    diffBrachialPlexusCard,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);

                ownPatientMergeInfo.Object     = Picture;
                foreignPatientMergeInfo.Object = diffBrachialPlexusCard.Picture;
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Получить строку с описанием разницы в полях между текущим и переданным пациентом
        /// </summary>
        /// <param name="diffPatient">Переданный (импортируемый) пациент</param>
        /// <param name="databasesMerger">Указатель на класс для мержа объектов</param>
        /// <returns></returns>
        public void GetDifference(CPatient diffPatient, CDatabasesMerger databasesMerger)
        {
            CMergeInfo ownPatientMergeInfo;
            CMergeInfo foreignPatientMergeInfo;

            if (CCompareEngine.CompareDate(Birthday, diffPatient.Birthday) != 0)
            {
                CreateMergeInfos(
                    ObjectType.PatientBirthday,
                    "День рождения",
                    CConvertEngine.DateTimeToString(Birthday),
                    CConvertEngine.DateTimeToString(diffPatient.Birthday),
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (CityName != diffPatient.CityName)
            {
                CreateMergeInfos(
                    ObjectType.PatientCityName,
                    "Город проживания",
                    CityName,
                    diffPatient.CityName,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (StreetName != diffPatient.StreetName)
            {
                CreateMergeInfos(
                    ObjectType.PatientStreetName,
                    "Улица проживания",
                    StreetName,
                    diffPatient.StreetName,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (HomeNumber != diffPatient.HomeNumber)
            {
                CreateMergeInfos(
                    ObjectType.PatientHomeNumber,
                    "Номер дома",
                    HomeNumber,
                    diffPatient.HomeNumber,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (BuildingNumber != diffPatient.BuildingNumber)
            {
                CreateMergeInfos(
                    ObjectType.PatientBuildingNumber,
                    "Номер корпуса",
                    BuildingNumber,
                    diffPatient.BuildingNumber,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (FlatNumber != diffPatient.FlatNumber)
            {
                CreateMergeInfos(
                    ObjectType.PatientFlatNumber,
                    "Номер квартиры",
                    FlatNumber,
                    diffPatient.FlatNumber,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Phone != diffPatient.Phone)
            {
                CreateMergeInfos(
                    ObjectType.PatientPhone,
                    "Телефон",
                    Phone,
                    diffPatient.Phone,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (Relatives != diffPatient.Relatives)
            {
                CreateMergeInfos(
                    ObjectType.PatientRelatives,
                    "Родственники",
                    Relatives,
                    diffPatient.Relatives,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (IsSpecifyLegalRepresent != diffPatient.IsSpecifyLegalRepresent)
            {
                CreateMergeInfos(
                    ObjectType.PatientIsSpecifyLegalRepresent,
                    "Наличие легального представителя",
                    IsSpecifyLegalRepresent ? "Указан" : "Не указан",
                    diffPatient.IsSpecifyLegalRepresent ? "Указан" : "Не указан",
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (LegalRepresent != diffPatient.LegalRepresent)
            {
                CreateMergeInfos(
                    ObjectType.PatientLegalRepresent,
                    "Законный представитель",
                    LegalRepresent,
                    diffPatient.LegalRepresent,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (WorkPlace != diffPatient.WorkPlace)
            {
                CreateMergeInfos(
                    ObjectType.PatientWorkPlace,
                    "Место работы",
                    WorkPlace,
                    diffPatient.WorkPlace,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (EMail != diffPatient.EMail)
            {
                CreateMergeInfos(
                    ObjectType.PatientEMail,
                    "Адрес электронной почты",
                    EMail,
                    diffPatient.EMail,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InsuranceSeries != diffPatient.InsuranceSeries)
            {
                CreateMergeInfos(
                    ObjectType.PatientInsuranceSeries,
                    "Серия страховой компании",
                    InsuranceSeries,
                    diffPatient.InsuranceSeries,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InsuranceNumber != diffPatient.InsuranceNumber)
            {
                CreateMergeInfos(
                    ObjectType.PatientInsuranceNumber,
                    "Номер страховой компании",
                    InsuranceNumber,
                    diffPatient.InsuranceNumber,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InsuranceName != diffPatient.InsuranceName)
            {
                CreateMergeInfos(
                    ObjectType.PatientInsuranceName,
                    "Название страховой компании",
                    InsuranceName,
                    diffPatient.InsuranceName,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (InsuranceType != diffPatient.InsuranceType)
            {
                CreateMergeInfos(
                    ObjectType.PatientInsuranceType,
                    "Вид страховой компании",
                    InsuranceType,
                    diffPatient.InsuranceType,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (PassInformation.Series != diffPatient.PassInformation.Series)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationSeries,
                    "Серия паспорта",
                    PassInformation.Series,
                    diffPatient.PassInformation.Series,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (PassInformation.Number != diffPatient.PassInformation.Number)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationNumber,
                    "Номер паспорта",
                    PassInformation.Number,
                    diffPatient.PassInformation.Number,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (PassInformation.SubdivisionCode != diffPatient.PassInformation.SubdivisionCode)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationSubdivisionCode,
                    "Код подразделения",
                    PassInformation.SubdivisionCode,
                    diffPatient.PassInformation.SubdivisionCode,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (PassInformation.Organization != diffPatient.PassInformation.Organization)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationOrganization,
                    "Организация, выдавшая паспорт",
                    PassInformation.Organization,
                    diffPatient.PassInformation.Organization,
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }

            if (PassInformation.DeliveryDate.HasValue && !diffPatient.PassInformation.DeliveryDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationDeliveryDate,
                    "Дата выдачи паспотра",
                    CConvertEngine.DateTimeToString(PassInformation.DeliveryDate.Value, false),
                    "Нет значения",
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (!PassInformation.DeliveryDate.HasValue && diffPatient.PassInformation.DeliveryDate.HasValue)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationDeliveryDate,
                    "Дата выдачи паспотра",
                    "Нет значения",
                    CConvertEngine.DateTimeToString(diffPatient.PassInformation.DeliveryDate.Value, false),
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
            else if (PassInformation.DeliveryDate.HasValue && diffPatient.PassInformation.DeliveryDate.HasValue &&
                     CCompareEngine.CompareDate(PassInformation.DeliveryDate.Value, diffPatient.PassInformation.DeliveryDate.Value) != 0)
            {
                CreateMergeInfos(
                    ObjectType.PatientPassInformationDeliveryDate,
                    "Дата выдачи паспотра",
                    CConvertEngine.DateTimeToString(PassInformation.DeliveryDate.Value, false),
                    CConvertEngine.DateTimeToString(diffPatient.PassInformation.DeliveryDate.Value, false),
                    diffPatient,
                    out ownPatientMergeInfo,
                    out foreignPatientMergeInfo);
                databasesMerger.AddMergeInfo(ownPatientMergeInfo, foreignPatientMergeInfo);
            }
        }