Пример #1
0
 /// <summary>
 /// Возвращает true, если у переданного объекта все данные (кроме картинки) совпадают
 /// </summary>
 /// <param name="cardInfo">Объект для сравнения</param>
 /// <returns></returns>
 public bool IsEqual(CCard cardInfo)
 {
     return(HospitalizationId == cardInfo.HospitalizationId &&
            VisitId == cardInfo.VisitId &&
            CurrentCardType == cardInfo.CurrentCardType &&
            CurrentSideOfCard == cardInfo.CurrentSideOfCard);
 }
Пример #2
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);
            }
        }
Пример #3
0
 public CCard(CCard cardInfo)
 {
     HospitalizationId = cardInfo.HospitalizationId;
     VisitId           = cardInfo.VisitId;
     CurrentCardType   = cardInfo.CurrentCardType;
     CurrentSideOfCard = cardInfo.CurrentSideOfCard;
     Picture           = new Bitmap(cardInfo.Picture);
     NotInDatabase     = cardInfo.NotInDatabase;
 }
Пример #4
0
        private void CreateMergeInfos(
            ObjectType objectType,
            string patientFio,
            string nosology,
            string hospitalizationDate,
            string visitDate,
            string parameterName,
            string ownValue,
            string foreignValue,
            CCard diffCard,
            out CMergeInfo ownPatientMergeInfo,
            out CMergeInfo foreignPatientMergeInfo)
        {
            string dateHospitalizationOrVisitInfoStr = string.IsNullOrEmpty(hospitalizationDate)
                           ? "Консультация за: '" + visitDate + "'."
                           : "Госпитализация за: '" + hospitalizationDate + "'.";

            const string differenceStr = "Пациент: '{0}'. Нозология: '{1}'. {2} Объект: '{3}. {4} сторона'.\r\nНазвание параметра: '{5}'. Значение: '{6}'";

            ownPatientMergeInfo = new CMergeInfo
            {
                TypeOfObject = objectType,
                Value        = ownValue,
                TypeOfCard   = CurrentCardType,
                SideOfCard   = CurrentSideOfCard,
                Difference   = string.Format(differenceStr, patientFio, nosology, dateHospitalizationOrVisitInfoStr, GetDescription(CurrentCardType), GetDescription(CurrentSideOfCard), parameterName, ownValue)
            };

            foreignPatientMergeInfo = new CMergeInfo
            {
                TypeOfObject = objectType,
                Value        = foreignValue,
                TypeOfCard   = diffCard.CurrentCardType,
                SideOfCard   = diffCard.CurrentSideOfCard,
                Difference   = string.Format(differenceStr, patientFio, nosology, dateHospitalizationOrVisitInfoStr, GetDescription(CurrentCardType), GetDescription(CurrentSideOfCard), parameterName, foreignValue)
            };

            if (string.IsNullOrEmpty(hospitalizationDate))
            {
                ownPatientMergeInfo.IdOwnVisit         = VisitId;
                foreignPatientMergeInfo.IdForeignVisit = diffCard.VisitId;
            }
            else
            {
                ownPatientMergeInfo.IdOwnHospitalization         = HospitalizationId;
                foreignPatientMergeInfo.IdForeignHospitalization = diffCard.HospitalizationId;
            }
        }