private XmlDocument CreateSquareTemplate(VisitItem visitItem)
        {
            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text03);

            // Visitor name
            var nameText2 = (XmlElement)tileXml.GetElementsByTagName("text")[0];
            var name      = visitItem.VisitorName;

            nameText2.AppendChild(tileXml.CreateTextNode(name));

            // Visitor's company
            var companyText2 = (XmlElement)tileXml.GetElementsByTagName("text")[1];
            var company      = visitItem.CompanyName;

            companyText2.AppendChild(tileXml.CreateTextNode(company));

            // Date
            var dateText2 = (XmlElement)tileXml.GetElementsByTagName("text")[2];
            var date      = visitItem.VisitFormattedDate;

            dateText2.AppendChild(tileXml.CreateTextNode(date));

            // Hour
            var hourText2 = (XmlElement)tileXml.GetElementsByTagName("text")[3];
            var hour      = visitItem.VisitFormattedTime;

            hourText2.AppendChild(tileXml.CreateTextNode(hour));

            return(tileXml);
        }
        /// <summary>
        /// Initialize Mocked Data Function.
        /// </summary>
        private void InitializeMockedData()
        {
            Visit     visitMocked = (this.sampleDataService.GetVisits(1)).First();
            VisitItem visitItem   = new VisitItem(visitMocked, 0);

            Visit = visitItem;
        }
Esempio n. 3
0
        //[Authorize]
        public IActionResult CheckIn(string userName)
        {
            IActionResult result = Unauthorized();

            try
            {
                UserItem myUser = _db.GetUserItemByLogin(userName);
                // UserItem myUser = _db.GetUserItemByLogin(User.Identity.Name);
                VisitItem newVisit = new VisitItem()
                {
                    UserId  = myUser.Id,
                    CheckIn = DateTime.UtcNow
                };
                newVisit.Id = _db.CreateVisit(newVisit);

                // Switch to 200 OK
                if (newVisit.Id > 0)
                {
                    result = Ok(newVisit.Id);
                }
            }
            catch (Exception)
            {
                result = BadRequest(new { Message = "Failed to checkin user" });
            }
            return(result);
        }
Esempio n. 4
0
        public async Task <VisitItemViewModel> Handle(VisitCreateCommand request, CancellationToken cancellationToken)
        {
            VisitItem visitItem = new VisitItem
            {
                TimeItemID = request.TimeItemID,
                PatientID  = request.PatientID
            };

            Int32 visitItemID = _visitItems.Create(visitItem);

            visitItem = _visitItems.Get(visitItemID);

            VisitItemViewModel viewModel = new VisitItemViewModel
            {
                BeginDateTime = visitItem.TimeItem.BeginDateTime,
                PatientCode   = request.PatientCode,
                PatientName   = request.PatientName,
                DoctorName    = visitItem.TimeItem.Resource.Doctor.DisplayName,
                SpecialtyName = visitItem.TimeItem.Resource.Doctor.Specialty.Name,
                RoomCode      = visitItem.TimeItem.Resource.Room.Code,
                RoomFlat      = visitItem.TimeItem.Resource.Room.Flat,
                IsEnabled     = true,
                ResourceID    = visitItem.TimeItem.ResourceID
            };

            return(await Task.FromResult(viewModel));
        }
Esempio n. 5
0
        private void InitializeMockedData()
        {
            NextVisit   = new VisitItem(this.sampleDataService.GetVisits(2).First(), TODAY_GROUP_ID);
            TodayVisits = new ObservableCollection <VisitItem>(this.sampleDataService.GetVisits(3).Select(v => new VisitItem(v, TODAY_GROUP_ID)));
            OtherVisits = new ObservableCollection <VisitItem>(this.sampleDataService.GetVisits(9).Select(v => new VisitItem(v, OTHER_GROUP_ID)));

            this.TodayVisitsCount = 5;
            this.OtherVisitsCount = 100;
        }
Esempio n. 6
0
 public Task <int> SaveVisitItemAsync(VisitItem item)
 {
     if (item.Id != -1)
     {
         return(_database.UpdateAsync(item));
     }
     else
     {
         return(_database.InsertAsync(item));
     }
 }
Esempio n. 7
0
        private VisitDTO MapToDTO(VisitItem visitFrom)
        {
            VisitDTO visit = new VisitDTO()
            {
                Id       = visitFrom.Id,
                UserId   = visitFrom.UserId,
                CheckIn  = visitFrom.CheckIn,
                CheckOut = visitFrom.CheckOut
            };

            return(visit);
        }
Esempio n. 8
0
        public Int32 Create(Dispanserization dispanserization)
        {
            if (_dataContext.Dispanserizations.FirstOrDefault(
                    d => d.PatientID == dispanserization.PatientID &&
                    dispanserization.BeginDate.Year == _dateTimeProvider.Now.Year
                    ) != null
                )
            {
                throw new Exception("Dispanserization already exists!");
            }

            Patient patient = _dataContext.Patients
                              .FirstOrDefault(p => p.ID == dispanserization.PatientID);

            IEnumerable <Resource> resources = _dataContext.Resources
                                               .Where(r => r.Doctor.Specialty.ID == 0)
                                               .ToList();

            dispanserization.Analyses = new List <Analysis>();
            foreach (Resource resource in resources)
            {
                dispanserization.Analyses.Add(new Analysis
                {
                    ID          = resource.ID * 10 + dispanserization.ID,
                    Description = $"{resource.Doctor.DisplayName} в {resource.Room.Code} каб."
                });

                TimeItem timeItem = _dataContext.TimeItems
                                    .OrderBy(ti => ti.ResourceID)
                                    .ThenBy(ti => ti.BeginDateTime)
                                    .FirstOrDefault(ti => ti.ResourceID == resource.ID && ti.VisitItem == null);

                VisitItem visitItem = new VisitItem
                {
                    ID         = _dataContext.VisitItems.Max(vi => vi.ID) + 1,
                    TimeItem   = timeItem,
                    TimeItemID = timeItem.ID,
                    Patient    = patient,
                    PatientID  = patient.ID
                };

                visitItem.TimeItem.VisitItem = visitItem;

                _dataContext.VisitItems.Add(visitItem);
            }

            dispanserization.ID = _dataContext.Dispanserizations.Count > 0 ? _dataContext.Dispanserizations.Max(d => d.ID) + 1 : 1;

            _dataContext.Dispanserizations.Add(dispanserization);

            return(dispanserization.ID);
        }
        /// <summary>
        /// Select template core.
        /// </summary>
        /// <param name="item">Item</param>
        /// <param name="container">Container</param>
        /// <returns></returns>
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            VisitItem currentItem = (VisitItem)item;

            if (currentItem.GroupId == 1)
            {
                return(FirstGroupTemplate);
            }
            else
            {
                return(SecondGroupTemplate);
            }
        }
Esempio n. 10
0
        private async void OnVisitAdded(Visit visit)
        {
            await dispatcherService.InvokeUI(() =>
            {
                bool isNext = NextVisit == null || visit.VisitDateTime < NextVisit.VisitDate;

                bool isToday         = visit.VisitDateTime.ToLocalTime().Date == DateTime.Now.Date;
                var list             = isToday ? TodayVisits : OtherVisits;
                var maxNumberOfItems = isToday ? ITEMS_TO_RETRIEVE_TODAY : ITEMS_TO_RETRIEVE_OTHER;
                int visitGroup       = isToday ? TODAY_GROUP_ID : OTHER_GROUP_ID;
                var visitItem        = new VisitItem(visit, visitGroup);

                var previousVisit = list.LastOrDefault(v =>
                {
                    return(v.VisitDate < visitItem.VisitDate);
                });

                int visitIndex = previousVisit == null ? 0 : list.IndexOf(previousVisit) + 1;

                bool hasToBeAdded     = visitIndex <= list.Count;
                bool needToRemoveLast = list.Count() == maxNumberOfItems;

                if (isNext)
                {
                    NextVisit = visitItem;
                }

                if (hasToBeAdded)
                {
                    list.Insert(visitIndex, visitItem);
                }

                if (needToRemoveLast)
                {
                    list.Remove(list.Last());
                }

                if (isToday)
                {
                    ShowTodayVisits = true;
                    TodayVisitsCount++;
                }
                else
                {
                    ShowOtherVisits = true;
                    OtherVisitsCount++;
                }

                this.RaisePropertyChanged(() => ShowNextVisit);
            });
        }
        private async Task CreateTile(VisitItem visitItem, string fileName)
        {
            XmlDocument tileXml = await CreateWideTemplate(visitItem, fileName);

            XmlDocument secondTileXml = CreateSquareTemplate(visitItem);

            IXmlNode node = tileXml.ImportNode(secondTileXml.GetElementsByTagName("binding").Item(0), true);

            tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

            var tileNotification = new TileNotification(tileXml);

            this.tileUpdater.Update(tileNotification);
        }
Esempio n. 12
0
        public void ByteComparerTest()
        {
            Console.WriteLine(String.Format("Before {0} mb", (int)(GC.GetTotalMemory(true) / 1024 / 1024)));
            var max  = 100000;
            var step = max / 10;

            var ids = new List <byte[]>();

            for (int i = 1; i <= max; i++)
            {
                var id = Hashes.SHA256(Encoding.UTF8.GetBytes(i.ToString()));
                ids.Add(id);

                if ((i % step) == 0)
                {
                    Console.Write(string.Format("\r{0}%", i - step));
                }
            }
            Console.WriteLine("\r100%");


            var dd = new Dictionary <byte[], byte[]>(ByteComparer.Standard);

            foreach (var id in ids)
            {
                dd.Add(id, id);
            }

            using (var timer = new TimeMe("Test ByteComparer Safe"))
            {
                foreach (var id in ids)
                {
                    var result = dd[id];
                    var t      = result[0];
                }
            }

            var item = new VisitItem(-1, -1);

            using (var timer = new TimeMe("Test List Index"))
            {
                var visited = new VisitItem[max * 10];
                for (int i = 0; i < max * 10; i++)
                {
                    visited[i] = item;
                }
            }

            Console.WriteLine(String.Format("After {0} mb", (int)(GC.GetTotalMemory(true) / 1024 / 1024)));
        }
Esempio n. 13
0
        public VisitItemDetailPage()
        {
            InitializeComponent();

            var visitItem = new VisitItem
            {
                Date = DateTime.MinValue,
                MedicalSpeciality = "",
                Location          = "",
                Details           = ""
            };

            viewModel      = new VisitItemDetailViewModel(visitItem);
            BindingContext = viewModel;
        }
Esempio n. 14
0
        private Int32 CreateVisitItem(VisitItem item)
        {
            Int32 visitItemID = Transaction.Connection.QuerySingleAsync <Int32>(
                sql: "[dbo].[sp_VisitItems_Create]",
                param: new
            {
                patientID  = item.PatientID,
                timeItemID = item.TimeItemID
            },
                commandType: CommandType.StoredProcedure,
                transaction: Transaction
                ).Result;

            return(visitItemID);
        }
Esempio n. 15
0
        public Int32 Create(VisitItem item)
        {
            Int32 visitItemID = _db.QuerySingle <Int32>(
                sql: "[dbo].[sp_VisitItems_Create]",
                param: new
            {
                patientID  = item.PatientID,
                timeItemID = item.TimeItemID
            },
                commandType: CommandType.StoredProcedure,
                transaction: _transaction
                );

            return(visitItemID);
        }
Esempio n. 16
0
        public NewVisitItemPage()
        {
            InitializeComponent();
            DateNow   = DateTime.Now;
            VisitItem = new VisitItem
            {
                Id = -1,
                MedicalSpeciality = "",
                Date     = DateTime.Now,
                Location = "",
                Details  = "",
                IsSended = false
            };

            BindingContext = this;
        }
        /// <summary>
        /// Update the pin tile of a visit.
        /// </summary>
        /// <param name="visitItem">Visit item</param>
        /// <param name="tile">Tile</param>
        public async void UpdatePinTile(VisitItem visitItem, SecondaryTile tile)
        {
            try
            {
                tileUpdater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(tile.TileId);
                tileUpdater.Clear();
                tileUpdater.EnableNotificationQueue(true);

                await CreateTile(visitItem, IMAGE_FILENAME + tile.TileId + IMAGE_FORMAT);

                CreateImageTile(visitItem, IMAGE_FILENAME + tile.TileId + IMAGE_FORMAT);
            }
            catch (Exception)
            {
            }
        }
Esempio n. 18
0
        public IActionResult GetCurrent(string userName)
        {
            IActionResult result = Unauthorized();

            try
            {
                VisitItem visit = _db.GetCurrentVisit(userName);
                VisitDTO  dTo   = MapToDTO(visit);
                result = Ok(dTo);
            }
            catch (Exception)
            {
                result = BadRequest(new { Message = "Failed to get current visit" });
            }
            return(result);
        }
        private async Task <XmlDocument> CreateWideTemplate(VisitItem visitItem, string fileName)
        {
            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150SmallImageAndText02);

            // Visitor Name
            var nameText = (XmlElement)tileXml.GetElementsByTagName("text")[0];

            nameText.AppendChild(tileXml.CreateTextNode(visitItem.VisitorName));

            // Visitor Company
            var companyText = (XmlElement)tileXml.GetElementsByTagName("text")[1];

            companyText.AppendChild(tileXml.CreateTextNode(visitItem.CompanyName));

            // Visitor Picture
            string path;

            if ((visitItem.VisitorSmallPhotoBytes != null))
            {
                var pictureStoraged = await this.storageService.ByteToFile(visitItem.VisitorSmallPhotoBytes, fileName);

                path = IMAGE_FOLDER + pictureStoraged.Name;
            }
            else
            {
                path = NOIMAGE_PATH;
            }

            var picture = (XmlElement)tileXml.GetElementsByTagName("image")[0];

            picture.SetAttribute("src", path);

            // Visit Time (local)
            var dateText      = (XmlElement)tileXml.GetElementsByTagName("text")[2];
            var formattedDate = visitItem.VisitFormattedDate;

            dateText.AppendChild(tileXml.CreateTextNode(formattedDate));

            // Visit Hour (local)
            var hourText      = (XmlElement)tileXml.GetElementsByTagName("text")[3];
            var formattedTime = visitItem.VisitFormattedTime;

            hourText.AppendChild(tileXml.CreateTextNode(formattedTime));

            return(tileXml);
        }
Esempio n. 20
0
        public IActionResult Get(int id)
        {
            // Assume the user is not authorized
            IActionResult result = Unauthorized();

            try
            {
                VisitItem visit = _db.GetVisit(id);
                VisitDTO  dTO   = MapToDTO(visit);
                result = Ok(dTO);
            }
            catch (Exception)
            {
                result = BadRequest(new { Message = "Get visit failed." });
            }

            return(result);
        }
        /// <summary>
        /// Initialize Data Function.
        /// </summary>
        public async Task InitializeData(int visitId = 0)
        {
            IsBusy = true;
            Visit result = await this.clientService.VisitService.Get(visitId, PictureType.All);

            if (result == null)
            {
                var loader = new ResourceLoader();
                messageService.ShowMessage(loader.GetString("ElementNotFound"), loader.GetString("Error"));
            }
            else
            {
                Visit = new VisitItem(result, 0);
                ValidateButtonIsEnabled = !this.visitItem.HasArrived;
            }

            IsBusy = false;
        }
Esempio n. 22
0
        public Int32 Create(VisitItem item)
        {
            if (_dataContext.VisitItems.FirstOrDefault(vi => vi.TimeItemID == item.TimeItemID) != null)
            {
                throw new Exception("Visit item already exists!");
            }

            item.TimeItem           = _dataContext.TimeItems.FirstOrDefault(ti => ti.ID == item.TimeItemID);
            item.TimeItem.VisitItem = item;

            item.Patient = _dataContext.Patients.FirstOrDefault(p => p.ID == item.PatientID);

            item.ID = _dataContext.VisitItems.Count > 0 ? _dataContext.VisitItems.Max(vi => vi.ID) + 1 : 1;

            _dataContext.VisitItems.Add(item);

            return(item.ID);
        }
        /// <summary>
        /// Update the main tile with next visits.
        /// </summary>
        /// <param name="visits">Visits collection.</param>
        public async void UpdateMainTile(IList <Visit> visits)
        {
            if (visits.Any())
            {
                tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
                tileUpdater.Clear();
                tileUpdater.EnableNotificationQueue(true);
                var i = 0;

                foreach (var visit in visits)
                {
                    var visitItem = new VisitItem(visit, 0);

                    await CreateTile(visitItem, string.Format("mainTile_{0}.jpg", i.ToString()));

                    i++;
                }
            }
        }
Esempio n. 24
0
        /// <summary>
        /// This method get the 9 first visits others than today visits.
        /// </summary>
        /// <returns></returns>
        private async Task <int> GetOtherVisits()
        {
            IList <Visit> otherResults = await this.clientService.VisitService.GetVisitsFromDate(string.Empty, PictureType.Small, ITEMS_TO_RETRIEVE_OTHER, ITEMS_TO_RETRIEVE_PAGEZERO, DateTime.Today.AddDays(1).ToUniversalTime());

            int otherItems = await this.clientService.VisitService.GetCountFromDate(string.Empty, DateTime.Today.AddDays(1).ToUniversalTime());

            ShowOtherVisits = otherResults.Any();
            OtherVisits     = new ObservableCollection <VisitItem>(otherResults.Select(v => new VisitItem(v, OTHER_GROUP_ID)));

            if (otherResults.Any() && NextVisit == null)
            {
                // Set the next visit of another day.
                var id        = otherResults.First().VisitId;
                var nextVisit = await this.clientService.VisitService.Get(id, PictureType.Big);

                NextVisit = new VisitItem(nextVisit, TODAY_GROUP_ID);
            }
            OtherVisitsCount = otherItems;

            return(otherItems);
        }
        private void CreateImageTile(VisitItem visitItem, string fileName)
        {
            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Image);
            string      path;

            if (visitItem.VisitorPhotoBytes != null)
            {
                path = IMAGE_FOLDER + fileName;
            }
            else
            {
                path = NOIMAGE_PATH;
            }

            var picture = (XmlElement)tileXml.GetElementsByTagName("image")[0];

            picture.SetAttribute("src", path);

            var tileNotification = new TileNotification(tileXml);

            tileUpdater.Update(tileNotification);
        }
Esempio n. 26
0
        public VisitItem Get(Int32 visitItemID)
        {
            VisitItem result = _db.Query <VisitItem, TimeItem, Resource, Doctor, Specialty, Room, VisitItem>(
                sql: "[dbo].[sp_VisitItems_Get]",
                map: (visitItem, timeItem, resource, doctor, specialty, room) =>
            {
                visitItem.TimeItem                           = timeItem;
                visitItem.TimeItem.Resource                  = resource;
                visitItem.TimeItem.Resource.Doctor           = doctor;
                visitItem.TimeItem.Resource.Doctor.Specialty = specialty;
                visitItem.TimeItem.Resource.Room             = room;
                visitItem.TimeItem.VisitItem                 = visitItem;

                return(visitItem);
            },
                param: new { visitItemID },
                commandType: CommandType.StoredProcedure,
                transaction: _transaction
                )
                               .FirstOrDefault();

            return(result);
        }
Esempio n. 27
0
        public UpdateVisit(VisitItem visit = null)
        {
            InitializeComponent();

            patients = DataManipulations.GetPatients();
            if (patients.Count == 0)
            {
                btOk.IsEnabled = false;
            }
            cbPatient.ItemsSource = patients;

            cbDiagnosis.ItemsSource = Diagnoses.diagnoses;

            if (visit != null)
            {
                visitId = visit.Id;

                if (Diagnoses.diagnoses.Contains(visit.Diagnosis))
                {
                    cbDiagnosis.SelectedItem = visit.Diagnosis;
                }

                var patient = patients.FirstOrDefault(x => x.Id == visit.PatientId);
                if (patient != null)
                {
                    cbPatient.SelectedItem = patient;
                }

                cbVisit.SelectedIndex = visit.Initial ? 0 : 1;

                //tbName.Text = patient.Name;
                //tbAddress.Text = patient.Address;
                //tbPhone.Text = patient.Phone;
                //cbGender.SelectedIndex = patient.Gender == "♂" ? 0 : 1;
            }
        }
Esempio n. 28
0
 public override void run()
 {
     try
     {
         if (this._client == null)
         {
             return;
         }
         Account player = this._client._player;
         if (player == null || player.player_name.Length == 0 || this.type > 1)
         {
             this.erro = EventErrorEnum.VisitEvent_UserFail;
         }
         else if (player._event != null)
         {
             if (player._event.LastVisitSequence1 == player._event.LastVisitSequence2)
             {
                 this.erro = EventErrorEnum.VisitEvent_AlreadyCheck;
             }
             else
             {
                 EventVisitModel eventVisitModel = EventVisitSyncer.getEvent(this.eventId);
                 if (eventVisitModel == null)
                 {
                     this.erro = EventErrorEnum.VisitEvent_Unknown;
                 }
                 else if (eventVisitModel.EventIsEnabled())
                 {
                     VisitItem reward = eventVisitModel.getReward(player._event.LastVisitSequence2, this.type);
                     if (reward != null)
                     {
                         GoodItem good = ShopManager.getGood(reward.good_id);
                         if (good != null)
                         {
                             PlayerEvent playerEvent = player._event;
                             DateTime    dateTime    = DateTime.Now;
                             dateTime = dateTime.AddDays(1.0);
                             int num = int.Parse(dateTime.ToString("yyMMdd"));
                             playerEvent.NextVisitDate = num;
                             ComDiv.updateDB("player_events", "player_id", (object)player.player_id, new string[2]
                             {
                                 "next_visit_date",
                                 "last_visit_sequence2"
                             }, (object)player._event.NextVisitDate, (object)++player._event.LastVisitSequence2);
                             this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, new ItemsModel(good._item._id, good._item._category, good._item._name, good._item._equip, (uint)reward.count, 0L)));
                         }
                         else
                         {
                             this.erro = EventErrorEnum.VisitEvent_NotEnough;
                         }
                     }
                     else
                     {
                         this.erro = EventErrorEnum.VisitEvent_Unknown;
                     }
                 }
                 else
                 {
                     this.erro = EventErrorEnum.VisitEvent_WrongVersion;
                 }
             }
         }
         else
         {
             this.erro = EventErrorEnum.VisitEvent_Unknown;
         }
         this._client.SendPacket((SendPacket) new EVENT_VISIT_REWARD_PAK(this.erro));
     }
     catch (Exception ex)
     {
         Logger.info("[EVENT_VERIFICATION_REWARD_REC] " + ex.ToString());
     }
 }
Esempio n. 29
0
        public DemoDataContext(IDateTimeProvider dateTimeProvider)
        {
            _dateTimeProvider = dateTimeProvider;

            Dispanserizations = new List <Dispanserization>();
            Patients          = new List <Patient>
            {
                new Patient
                {
                    ID                = 1,
                    Code              = "30000000",
                    FirstName         = "Иван",
                    MiddleName        = "Иванович",
                    BirthDate         = new DateTime(1980, 1, 1),
                    Gender            = 0,
                    Dispanserizations = new List <Dispanserization>(),
                    VisitItems        = new List <VisitItem>()
                },
                new Patient
                {
                    ID                = 2,
                    Code              = "31000000",
                    FirstName         = "Михаил",
                    MiddleName        = "Михайлович",
                    BirthDate         = new DateTime(1980, 1, 1),
                    Gender            = 0,
                    Dispanserizations = new List <Dispanserization>(),
                    VisitItems        = new List <VisitItem>()
                },
                new Patient
                {
                    ID                = Int32.MaxValue,
                    Code              = "32020444",
                    FirstName         = "Владимир",
                    MiddleName        = "Сергеевич",
                    BirthDate         = new DateTime(1993, 1, 1),
                    Gender            = 0,
                    Dispanserizations = new List <Dispanserization>(),
                    VisitItems        = new List <VisitItem>()
                }
            };
            Resources = new List <Resource>
            {
                new Resource
                {
                    ID       = 1,
                    DoctorID = 1,
                    Doctor   = new Doctor
                    {
                        ID          = 1,
                        Code        = "100",
                        FirstName   = "Пётр",
                        MiddleName  = "Петрович",
                        LastName    = "Петров",
                        SpecialtyID = 1,
                        Specialty   = new Specialty
                        {
                            ID   = 1,
                            Code = "1",
                            Name = "Терапия"
                        }
                    },
                    RoomID = 1,
                    Room   = new Room
                    {
                        ID   = 1,
                        Code = "1",
                        Flat = 1
                    }
                },
                new Resource
                {
                    ID       = 2,
                    DoctorID = 2,
                    Doctor   = new Doctor
                    {
                        ID          = 2,
                        Code        = "200",
                        FirstName   = "Сергей",
                        MiddleName  = "Владимирович",
                        LastName    = "Кузнецов",
                        SpecialtyID = 1,
                        Specialty   = new Specialty
                        {
                            ID   = 1,
                            Code = "1",
                            Name = "Терапия"
                        }
                    },
                    RoomID = 2,
                    Room   = new Room
                    {
                        ID   = 2,
                        Code = "200",
                        Flat = 2
                    }
                },
                new Resource
                {
                    ID       = 3,
                    DoctorID = 3,
                    Doctor   = new Doctor
                    {
                        ID          = 3,
                        Code        = "300",
                        FirstName   = "Михаил",
                        MiddleName  = "Семёнович",
                        LastName    = "Костоломов",
                        SpecialtyID = 2,
                        Specialty   = new Specialty
                        {
                            ID   = 2,
                            Code = "2",
                            Name = "Хирургия"
                        }
                    },
                    RoomID = 3,
                    Room   = new Room
                    {
                        ID   = 3,
                        Code = "300",
                        Flat = 3
                    }
                },
                new Resource
                {
                    ID       = 4,
                    DoctorID = 4,
                    Doctor   = new Doctor
                    {
                        ID          = 4,
                        Code        = "400",
                        FirstName   = "Кирилл",
                        MiddleName  = "Александрович",
                        LastName    = "Яковлев",
                        SpecialtyID = 3,
                        Specialty   = new Specialty
                        {
                            ID   = 3,
                            Code = "3",
                            Name = "Диспансеризация"
                        }
                    },
                    RoomID = 4,
                    Room   = new Room
                    {
                        ID   = 4,
                        Code = "400",
                        Flat = 4
                    }
                },
                new Resource
                {
                    ID       = 5,
                    DoctorID = 5,
                    Doctor   = new Doctor
                    {
                        ID          = 5,
                        Code        = "500",
                        FirstName   = "Анастасия",
                        MiddleName  = "Яковлевна",
                        LastName    = "Пономаренко",
                        SpecialtyID = 0,
                        Specialty   = new Specialty
                        {
                            ID   = 0,
                            Code = "0",
                            Name = "Не определено"
                        }
                    },
                    RoomID = 500,
                    Room   = new Room
                    {
                        ID   = 500,
                        Code = "500",
                        Flat = 5
                    }
                },
                new Resource
                {
                    ID       = 6,
                    DoctorID = 6,
                    Doctor   = new Doctor
                    {
                        ID          = 6,
                        Code        = "600",
                        FirstName   = "Яков",
                        MiddleName  = "Анастархович",
                        LastName    = "Вахроменко",
                        SpecialtyID = 0,
                        Specialty   = new Specialty
                        {
                            ID   = 0,
                            Code = "0",
                            Name = "Не определено"
                        }
                    },
                    RoomID = 6,
                    Room   = new Room
                    {
                        ID   = 6,
                        Code = "600",
                        Flat = 6
                    }
                }
            };
            TimeItems  = new List <TimeItem>();
            VisitItems = new List <VisitItem>();

            Int32 timeItemID = 0;

            foreach (Resource resource in Resources)
            {
                for (Int32 i = 0; i < 28; i++)
                {
                    for (Int32 j = 0; j < 24; j++)
                    {
                        TimeItems.Add(new TimeItem
                        {
                            ID            = ++timeItemID,
                            Date          = _dateTimeProvider.Now.Date.AddDays(i),
                            BeginDateTime = _dateTimeProvider.Now.Date.AddDays(i).AddHours(8).AddMinutes(j * 15),
                            EndDateTime   = _dateTimeProvider.Now.Date.AddDays(i).AddHours(8).AddMinutes(j * 15 + 15),
                            ResourceID    = resource.ID,
                            Resource      = resource
                        });
                    }
                }
            }

            VisitItem visitItem = new VisitItem
            {
                ID         = 1,
                PatientID  = 1,
                Patient    = Patients.FirstOrDefault(p => p.ID == 1),
                TimeItemID = 1,
                TimeItem   = TimeItems.FirstOrDefault(ti => ti.ID == 1)
            };

            visitItem.TimeItem.VisitItem = visitItem;
            visitItem.Patient.VisitItems.Add(visitItem);
            VisitItems.Add(visitItem);
        }
 public VisitItemDetailViewModel(VisitItem visitItem = null)
 {
     Title     = visitItem?.MedicalSpeciality + " " + visitItem?.Date.ToString();
     VisitItem = visitItem;
 }