/// <summary>
        /// Обновить информацию о карте обследования
        /// </summary>
        /// <param name="rangeOfMotionCardInfo">Информация о карте обследования</param>
        public void Update(CRangeOfMotionCard rangeOfMotionCardInfo)
        {
            int n = GetIndexFromList(rangeOfMotionCardInfo.HospitalizationId, rangeOfMotionCardInfo.VisitId);

            rangeOfMotionCardInfo.NotInDatabase = false;
            _rangeOfMotionCardList[n]           = new CRangeOfMotionCard(rangeOfMotionCardInfo);
            Save();
        }
Exemple #2
0
        public RangeOfMotionCardForm(
            CWorkersKeeper workersKeeper, CRangeOfMotionCard rangeOfMotionCard)
        {
            InitializeComponent();

            _rangeOfMotionCardInfo   = rangeOfMotionCard;
            _rangeOfMotionCardWorker = workersKeeper.RangeOfMotionCardWorker;
            _configurationEngine     = workersKeeper.ConfigurationEngine;
        }
        /// <summary>
        /// Загрузить список карт обследования
        /// </summary>
        private void Load()
        {
            _rangeOfMotionCardList = new List <CRangeOfMotionCard>();
            string allDataStr = CDatabaseEngine.UnpackText(_rangeOfMotionCardPath);

            // Получаем набор объектов
            string[] objectsStr = allDataStr.Split(new[] { ObjSplitStr }, StringSplitOptions.RemoveEmptyEntries);

            var errorStr = new StringBuilder();

            try
            {
                // Проходим по всем объектам
                foreach (string objectStr in objectsStr)
                {
                    // Для каждого объекта получаем список значений
                    string[] datasStr = objectStr.Split(new[] { DataSplitStr }, StringSplitOptions.RemoveEmptyEntries);

                    var rangeOfMotionCardInfo = new CRangeOfMotionCard();
                    foreach (string dataStr in datasStr)
                    {
                        string[] keyValue = dataStr.Split(new[] { '=' }, 2);
                        switch (keyValue[0])
                        {
                        case "HospitalizationId":
                            rangeOfMotionCardInfo.HospitalizationId = Convert.ToInt32(keyValue[1]);
                            break;

                        case "VisitId":
                            rangeOfMotionCardInfo.VisitId = Convert.ToInt32(keyValue[1]);
                            break;

                        case "OppositionFinger":
                            rangeOfMotionCardInfo.OppositionFinger = keyValue[1];
                            break;

                        case "Fields":
                            rangeOfMotionCardInfo.Fields = CConvertEngine.StringToStringArray(keyValue[1]);
                            break;
                        }
                    }

                    _rangeOfMotionCardList.Add(rangeOfMotionCardInfo);
                }
            }
            catch (Exception ex)
            {
                errorStr.Append(ex.Message + "\r\n");
            }

            if (errorStr.Length != 0)
            {
                MessageBox.ShowDialog(errorStr.ToString());
            }
        }
        /// <summary>
        /// Получить карту обследования по переданному id госпитализации и id консультации
        /// </summary>
        /// <param name="hospitalizationId">id госпитализации</param>
        /// <param name="visitId">id консультации</param>
        /// <returns></returns>
        public CRangeOfMotionCard GetByHospitalizationAndVisitId(
            int hospitalizationId, int visitId)
        {
            int n = GetIndexFromList(hospitalizationId, visitId);

            if (n == _rangeOfMotionCardList.Count)
            {
                var newRangeOfMotionCardInfo = new CRangeOfMotionCard(hospitalizationId, visitId)
                {
                    NotInDatabase = true
                };
                _rangeOfMotionCardList.Add(newRangeOfMotionCardInfo);
                return(new CRangeOfMotionCard(newRangeOfMotionCardInfo));
            }

            return(new CRangeOfMotionCard(_rangeOfMotionCardList[n]));
        }
Exemple #5
0
 /// <summary>
 /// Добавить карту на объём движений
 /// </summary>
 /// <param name="fromRangeOfMotionCardWorker"></param>
 /// <param name="toRangeOfMotionCardWorker"></param>
 /// <param name="fromHospitalizationId">id госпитализации в базе, откуда копируются карты</param>
 /// <param name="toHospitalizationId">id новой госпитализации в базе, куда копируются карты</param>
 /// <param name="fromVisitId">id консультации в базе, откуда копируются карты</param>
 /// <param name="toVisitId">id новой консультации в базе, куда копируются карты</param>
 public static void AddRangeOfMotionCard(
     CRangeOfMotionCardWorker fromRangeOfMotionCardWorker,
     CRangeOfMotionCardWorker toRangeOfMotionCardWorker,
     int fromHospitalizationId,
     int toHospitalizationId,
     int fromVisitId,
     int toVisitId)
 {
     if (fromRangeOfMotionCardWorker.IsExists(fromHospitalizationId, fromVisitId))
     {
         toRangeOfMotionCardWorker.GetByHospitalizationAndVisitId(toHospitalizationId, toVisitId);
         var newRangeOfMotionCard = new CRangeOfMotionCard(
             fromRangeOfMotionCardWorker.GetByHospitalizationAndVisitId(fromHospitalizationId, fromVisitId))
         {
             HospitalizationId = toHospitalizationId,
             VisitId           = toVisitId
         };
         toRangeOfMotionCardWorker.Update(newRangeOfMotionCard);
     }
 }
        /// <summary>
        /// Скопировать все карты обследования для указанных id госпитализации и консультации
        /// </summary>
        /// <param name="hospitalizationId">id госпитализации</param>
        /// <param name="visitId">id консультации</param>
        /// <param name="newHospitalizationId">id новой госпитализации</param>
        /// <param name="newVisitId">id новой консультации</param>
        public void CopyByHospitalizationAndVisitId(
            int hospitalizationId, int visitId, int newHospitalizationId, int newVisitId)
        {
            int rangeOfMotionCardListCnt = _rangeOfMotionCardList.Count;

            for (int i = 0; i < rangeOfMotionCardListCnt; i++)
            {
                if (_rangeOfMotionCardList[i].HospitalizationId == hospitalizationId &&
                    _rangeOfMotionCardList[i].VisitId == visitId)
                {
                    var newRangeOfMotionCard = new CRangeOfMotionCard(_rangeOfMotionCardList[i])
                    {
                        HospitalizationId = newHospitalizationId,
                        VisitId           = newVisitId
                    };
                    _rangeOfMotionCardList.Add(newRangeOfMotionCard);
                }
            }

            Save();
        }