Esempio n. 1
0
        public async Task Create(PrescriptionInDTO prescriptionInDTO)
        {
            var visits = await _repositoryVisit.GetAsync(x => x, x => x.Id == prescriptionInDTO.VisitId);

            var visit = visits.FirstOrDefault();

            Prescription prescription = new Prescription()
            {
                Comments = prescriptionInDTO.Comments,
                DueDate  = DateTime.Now.AddDays(30),
                VisitId  = prescriptionInDTO.VisitId,
                Visit    = visit,
                PrescriptionMedicaments = new List <PrescriptionMedicament>()
            };

            foreach (var item in prescriptionInDTO.Medicaments)
            {
                PrescriptionMedicament prescriptionMedicament = new PrescriptionMedicament();
                prescriptionMedicament.Medicament   = item;
                prescriptionMedicament.Prescription = prescription;

                prescription.PrescriptionMedicaments.Add(prescriptionMedicament);
            }

            await _repositoryPrescription.InsertAsync(prescription);
        }
Esempio n. 2
0
        public async Task <IActionResult> CurrentVisit(CurrentVisitVM vm)
        {
            if (vm.State == StateVisit.Completed)
            {
                return(RedirectToAction("TimeTable", "Home", new { area = "Doctor" }));
            }

            if (vm.selectedMedicaments != null && vm.selectedMedicaments.Count > 0)
            {
                var medicament = await _medicamentService.GetMedicamentByName(vm.selectedMedicaments);

                var prescriptionInDTO = new PrescriptionInDTO()
                {
                    Comments    = vm.DescriptionPrescription,
                    VisitId     = vm.VisitID,
                    Medicaments = medicament
                };
                await _prescriptionService.Create(prescriptionInDTO);
            }

            if (!string.IsNullOrEmpty(vm.selectedSpecialization))
            {
                var selectedSpecialization = await _specializationService.GetByNameAsync(vm.selectedSpecialization);

                var referralInDTO = new ReferralInDTO()
                {
                    Description      = vm.DescriptionReferral,
                    VisitId          = vm.VisitID,
                    SpecializationId = selectedSpecialization.First().SpecializationId
                };
                await _referralService.Create(referralInDTO);
            }

            await _visitService.UpdateVisit(new UpdateVisitInDTO()
            {
                Description = vm.DescriptionVisit, Id = vm.VisitID, State = StateVisit.Completed
            });

            return(View("Index"));
        }