/// <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); } }
/// <summary> /// Возвращает true, если у переданного объекта все данные (кроме картинки) совпадают /// </summary> /// <param name="brachialPlexusCardInfo">Объект для сравнения</param> /// <returns></returns> public bool IsEqual(CBrachialPlexusCard brachialPlexusCardInfo) { return(HospitalizationId == brachialPlexusCardInfo.HospitalizationId && VisitId == brachialPlexusCardInfo.VisitId && SideOfCard == brachialPlexusCardInfo.SideOfCard && Diaphragm == brachialPlexusCardInfo.Diaphragm && EMNG == brachialPlexusCardInfo.EMNG && CCompareEngine.CompareDate(EMNGDate, brachialPlexusCardInfo.EMNGDate) == 0 && HornersSyndrome == brachialPlexusCardInfo.HornersSyndrome && IsEMNGEnabled == brachialPlexusCardInfo.IsEMNGEnabled && IsMyelographyEnabled == brachialPlexusCardInfo.IsMyelographyEnabled && Myelography == brachialPlexusCardInfo.Myelography && CCompareEngine.CompareDate(MyelographyDate, brachialPlexusCardInfo.MyelographyDate) == 0 && MyelographyType == brachialPlexusCardInfo.MyelographyType && TinelsSymptom == brachialPlexusCardInfo.TinelsSymptom && VascularStatus == brachialPlexusCardInfo.VascularStatus); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }
/// <summary> /// Проверить, удовлетворяет ли переданный пациент условиям фильтра /// </summary> /// <param name="patientViewInfo">Информация про пациента</param> /// <returns></returns> private bool IsThisPatientSatisfyFilterOptions(CPatientView patientViewInfo) { // Проверка ФИО if (!string.IsNullOrEmpty(textBoxFilterFIO.Text)) { if (string.IsNullOrEmpty(patientViewInfo.FullName) || !patientViewInfo.FullName.ToLower().Contains(textBoxFilterFIO.Text.ToLower())) { return(false); } } // Проверка возраста if (!CheckFilterWithMode(comboBoxFilterAgeMode.Text, textBoxFilterAge.Text, patientViewInfo.Age)) { return(false); } // Проверка нозологии if (!string.IsNullOrEmpty(textBoxFilterNosology.Text)) { if (string.IsNullOrEmpty(patientViewInfo.Nosology) || !patientViewInfo.Nosology.ToLower().Contains(textBoxFilterNosology.Text.ToLower())) { return(false); } } // Проверка диагноза if (!string.IsNullOrEmpty(textBoxFilterDiagnose.Text)) { if (string.IsNullOrEmpty(patientViewInfo.Diagnose) || !patientViewInfo.Diagnose.ToLower().Contains(textBoxFilterDiagnose.Text.ToLower())) { return(false); } } // Проверка начальной даты поступления if (dateTimePickerFilterDeliveryDateStart.Checked) { var filterDeliveryDateStart = new DateTime( dateTimePickerFilterDeliveryDateStart.Value.Year, dateTimePickerFilterDeliveryDateStart.Value.Month, dateTimePickerFilterDeliveryDateStart.Value.Day, 0, 0, 0); if (string.IsNullOrEmpty(patientViewInfo.DeliveryDateString) || CCompareEngine.CompareDate(filterDeliveryDateStart, CConvertEngine.StringToDateTime(patientViewInfo.DeliveryDateString)) > 0) { return(false); } } // Проверка конечной даты послупления if (dateTimePickerFilterDeliveryDateEnd.Checked) { var filterDeliveryDateEnd = new DateTime( dateTimePickerFilterDeliveryDateEnd.Value.Year, dateTimePickerFilterDeliveryDateEnd.Value.Month, dateTimePickerFilterDeliveryDateEnd.Value.Day, 23, 59, 59); if (string.IsNullOrEmpty(patientViewInfo.DeliveryDateString) || CCompareEngine.CompareDate(filterDeliveryDateEnd, CConvertEngine.StringToDateTime(patientViewInfo.DeliveryDateString)) < 0) { return(false); } } // Проверка начальной даты выписки if (dateTimePickerFilterReleaseDateStart.Checked) { var filterReleaseDateStart = new DateTime( dateTimePickerFilterReleaseDateStart.Value.Year, dateTimePickerFilterReleaseDateStart.Value.Month, dateTimePickerFilterReleaseDateStart.Value.Day, 0, 0, 0); if (string.IsNullOrEmpty(patientViewInfo.ReleaseDateString) || CCompareEngine.CompareDate(filterReleaseDateStart, CConvertEngine.StringToDateTime(patientViewInfo.ReleaseDateString)) > 0) { return(false); } } // Проверка конечной даты выписки if (dateTimePickerFilterReleaseDateEnd.Checked) { var filterReleaseDateEnd = new DateTime( dateTimePickerFilterReleaseDateEnd.Value.Year, dateTimePickerFilterReleaseDateEnd.Value.Month, dateTimePickerFilterReleaseDateEnd.Value.Day, 23, 59, 59); if (string.IsNullOrEmpty(patientViewInfo.ReleaseDateString) || CCompareEngine.CompareDate(filterReleaseDateEnd, CConvertEngine.StringToDateTime(patientViewInfo.ReleaseDateString)) < 0) { return(false); } } // Проверка начальной даты консультации if (dateTimePickerFilterVisitDateStart.Checked) { var filterVisitDateStart = new DateTime( dateTimePickerFilterVisitDateStart.Value.Year, dateTimePickerFilterVisitDateStart.Value.Month, dateTimePickerFilterVisitDateStart.Value.Day, 0, 0, 0); if (string.IsNullOrEmpty(patientViewInfo.VisitDateString) || CCompareEngine.CompareDate(filterVisitDateStart, CConvertEngine.StringToDateTime(patientViewInfo.VisitDateString)) > 0) { return(false); } } // Проверка конечной даты консультации if (dateTimePickerFilterVisitDateEnd.Checked) { var filterVisitDateEnd = new DateTime( dateTimePickerFilterVisitDateEnd.Value.Year, dateTimePickerFilterVisitDateEnd.Value.Month, dateTimePickerFilterVisitDateEnd.Value.Day, 23, 59, 59); if (string.IsNullOrEmpty(patientViewInfo.VisitDateString) || CCompareEngine.CompareDate(filterVisitDateEnd, CConvertEngine.StringToDateTime(patientViewInfo.VisitDateString)) < 0) { return(false); } } // Проверка к/д if (!CheckFilterWithMode(comboBoxFilterKDMode.Text, textBoxFilterKD.Text, patientViewInfo.KD)) { return(false); } // Проверка количества госпитализаций if (!CheckFilterWithMode(comboBoxFilterHospitalizationCntMode.Text, textBoxFilterHospitalizationCnt.Text, patientViewInfo.HospitalizationCnt)) { return(false); } // Проверка количества консультаций if (!CheckFilterWithMode(comboBoxFilterVisitCntMode.Text, textBoxFilterVisitCnt.Text, patientViewInfo.VisitCnt)) { return(false); } // Проверка количества операций if (!CheckFilterWithMode(comboBoxFilterOperationCntMode.Text, textBoxFilterOperationCnt.Text, patientViewInfo.OperationCnt)) { return(false); } // Проверка типа операций if (!string.IsNullOrEmpty(textBoxFilterOperationType.Text)) { if (string.IsNullOrEmpty(patientViewInfo.OperationTypes) || !patientViewInfo.OperationTypes.ToLower().Contains(textBoxFilterOperationType.Text.ToLower())) { return(false); } } return(true); }
/// <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); } }
/// <summary> /// Закрытие формы /// </summary> /// <param name="sender">Объект, пославший сообщение</param> /// <param name="e">Объект, содержащий данные посланного сообщения</param> private void HospitalizationViewForm_FormClosing(object sender, FormClosingEventArgs e) { if (!_isFormClosingByButton) { DialogResult dialogResult = MessageBox.ShowDialog("Вы хотите сохранить изменения?", "Закрытие окна", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { _isNeedSaveData = true; } else if (dialogResult == DialogResult.No) { _isNeedSaveData = false; } else { e.Cancel = true; return; } } _isFormClosingByButton = false; bool isOperationViewFormOpened = false; var openedOperationForm = new COperation(); COperation[] operations = _operationWorker.GetListByHospitalizationId(_hospitalizationInfo.Id); foreach (COperation oc in operations) { if (oc.OpenedOperationViewForm != null && !oc.OpenedOperationViewForm.IsDisposed) { openedOperationForm = oc; isOperationViewFormOpened = true; break; } } if (isOperationViewFormOpened) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете все формы \"Просмотр данных об операции\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; openedOperationForm.OpenedOperationViewForm.Focus(); return; } if (_addNewOperationForm != null && !_addNewOperationForm.IsDisposed) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Добавление операции\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; _addNewOperationForm.Focus(); return; } bool isOperationProtocolFormOpened = false; foreach (COperation oc in operations) { if (oc.OpenedOperationProtocolForm != null && !oc.OpenedOperationProtocolForm.IsDisposed) { openedOperationForm = oc; isOperationProtocolFormOpened = true; break; } } if (isOperationProtocolFormOpened) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете формы \"Протокол операции\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; openedOperationForm.OpenedOperationProtocolForm.Focus(); return; } if (_transferableEpicrisisForm != null && !_transferableEpicrisisForm.IsDisposed) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Переводной эпикриз\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; _transferableEpicrisisForm.Focus(); return; } if (_lineOfCommunicationEpicrisisForm != null && !_lineOfCommunicationEpicrisisForm.IsDisposed) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Этапный эпикриз\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; _lineOfCommunicationEpicrisisForm.Focus(); return; } if (_dischargeEpicrisisForm != null && !_dischargeEpicrisisForm.IsDisposed) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Выписной эпикриз\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; _dischargeEpicrisisForm.Focus(); return; } if (_medicalInspectionForm != null && !_medicalInspectionForm.IsDisposed) { _isFormClosingByButton = false; MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Осмотр в отделении\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); e.Cancel = true; _medicalInspectionForm.Focus(); return; } // Если все проверки при закрытии формы пройдены и форму закрыли с сохранением данных - // то сохраняем данные if (_isNeedSaveData) { _isNeedSaveData = false; if (IsFormHasEmptyNeededFields()) { MessageBox.ShowDialog("Поля, отмеченные звёздочкой, обязательны для заполнения", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; return; } if (!string.IsNullOrEmpty(textBoxFotoFolderName.Text) && !Directory.Exists(Path.Combine(_realPrivateFolder, textBoxFotoFolderName.Text))) { MessageBox.ShowDialog("Указанной папки для фотографий не существует.\r\nИсправьте название папки или удалите информацию о ней.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBoxFotoFolderName.Focus(); e.Cancel = true; return; } if (dateTimePickerReleaseDate.Checked && CCompareEngine.CompareDate(dateTimePickerReleaseDate.Value.Date, dateTimePickerDeliveryDate.Value.Date) < 0) { MessageBox.ShowDialog("Дата выписки не может быть меньше, чем дата поступления.", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); dateTimePickerReleaseDate.Focus(); e.Cancel = true; return; } try { _hospitalizationWorker.Update(_hospitalizationInfo, _patientInfo); _patientViewForm.ShowHospitalizations(); } catch (Exception ex) { e.Cancel = true; MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { try { if (_action == AddUpdate.Add) { _hospitalizationWorker.Remove(_hospitalizationInfo.Id); } else { _hospitalizationInfo = new CHospitalization(_saveHospitalizationInfo); _hospitalizationWorker.Update(_hospitalizationInfo, _patientInfo); } _patientViewForm.ShowHospitalizations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } _configurationEngine.HospitalizationViewFormLocation = Location; }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }