예제 #1
0
        /// <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 cardListCnt = _cardList.Count;

            for (int i = 0; i < cardListCnt; i++)
            {
                if (_cardList[i].HospitalizationId == hospitalizationId &&
                    _cardList[i].VisitId == visitId)
                {
                    var    newCard     = new CCard(_cardList[i]);
                    string oldFilePath = GetPicturePath(newCard.GetPictureFileName());
                    newCard.HospitalizationId = newHospitalizationId;
                    newCard.VisitId           = newVisitId;
                    _cardList.Add(newCard);
                    string newFilePath = GetPicturePath(newCard.GetPictureFileName());

                    if (File.Exists(oldFilePath))
                    {
                        File.Copy(oldFilePath, newFilePath);
                    }
                    else
                    {
                        PutDefaultPictureFile(newCard.CurrentCardType, newFilePath);
                    }
                }
            }

            Save(null);
        }
예제 #2
0
        /// <summary>
        /// Загрузить список карт обследования
        /// </summary>
        private void Load()
        {
            _cardList = new List <CCard>();
            string allDataStr = CDatabaseEngine.UnpackText(_cardPath);

            // Получаем набор объектов
            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 cardInfo = new CCard();
                    foreach (string dataStr in datasStr)
                    {
                        string[] keyValue = dataStr.Split(new[] { '=' }, 2);
                        switch (keyValue[0])
                        {
                        case "HospitalizationId":
                            cardInfo.HospitalizationId = Convert.ToInt32(keyValue[1]);
                            break;

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

                        case "CardSide":
                            cardInfo.CurrentSideOfCard = CConvertEngine.StringToCardSide(keyValue[1]);
                            break;

                        case "CurrentCardType":
                            cardInfo.CurrentCardType = CConvertEngine.StringToCardType(keyValue[1]);
                            break;
                        }
                    }

                    string picturePath = GetPicturePath(cardInfo.GetPictureFileName());
                    if (!File.Exists(picturePath))
                    {
                        PutDefaultPictureFile(cardInfo.CurrentCardType, picturePath);
                    }

                    cardInfo.Picture = CDatabaseEngine.GetBitmapFromFile(picturePath);

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

            if (errorStr.Length != 0)
            {
                MessageBox.ShowDialog(errorStr.ToString());
            }
        }