/// <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); }
private void CreateMergeInfos( ObjectType objectType, string patientFio, string nosology, string hospitalizationDate, string visitDate, string parameterName, string ownValue, string foreignValue, CBrachialPlexusCard diffBrachialPlexusCard, out CMergeInfo ownPatientMergeInfo, out CMergeInfo foreignPatientMergeInfo) { string dateHospitalizationOrVisitInfoStr = string.IsNullOrEmpty(hospitalizationDate) ? "Консультация за: '" + visitDate + "'." : "Госпитализация за: '" + hospitalizationDate + "'."; const string differenceStr = "Пациент: '{0}'. Нозология: '{1}'. {2} Объект: 'Карта для плечевого сплетения'.\r\nНазвание параметра: '{3}'. Значение: '{4}'"; ownPatientMergeInfo = new CMergeInfo { TypeOfObject = objectType, Value = ownValue, Difference = string.Format(differenceStr, patientFio, nosology, dateHospitalizationOrVisitInfoStr, parameterName, ownValue) }; foreignPatientMergeInfo = new CMergeInfo { TypeOfObject = objectType, Value = foreignValue, Difference = string.Format(differenceStr, patientFio, nosology, dateHospitalizationOrVisitInfoStr, parameterName, foreignValue) }; if (string.IsNullOrEmpty(hospitalizationDate)) { ownPatientMergeInfo.IdOwnVisit = VisitId; foreignPatientMergeInfo.IdForeignVisit = diffBrachialPlexusCard.VisitId; } else { ownPatientMergeInfo.IdOwnHospitalization = HospitalizationId; foreignPatientMergeInfo.IdForeignHospitalization = diffBrachialPlexusCard.HospitalizationId; } }
public CBrachialPlexusCard(CBrachialPlexusCard brachialPlexusCardInfo) { HospitalizationId = brachialPlexusCardInfo.HospitalizationId; VisitId = brachialPlexusCardInfo.VisitId; SideOfCard = brachialPlexusCardInfo.SideOfCard; Picture = new Bitmap(brachialPlexusCardInfo.Picture); Diaphragm = brachialPlexusCardInfo.Diaphragm; EMNG = brachialPlexusCardInfo.EMNG; EMNGDate = CConvertEngine.CopyDateTime(brachialPlexusCardInfo.EMNGDate); HornersSyndrome = brachialPlexusCardInfo.HornersSyndrome; IsEMNGEnabled = brachialPlexusCardInfo.IsEMNGEnabled; IsMyelographyEnabled = brachialPlexusCardInfo.IsMyelographyEnabled; Myelography = brachialPlexusCardInfo.Myelography; MyelographyDate = CConvertEngine.CopyDateTime(brachialPlexusCardInfo.MyelographyDate); MyelographyType = brachialPlexusCardInfo.MyelographyType; TinelsSymptom = brachialPlexusCardInfo.TinelsSymptom; VascularStatus = brachialPlexusCardInfo.VascularStatus; NotInDatabase = brachialPlexusCardInfo.NotInDatabase; }
/// <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); } }