public YearMedicamentsNeedForm()
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            numericUpDown1.Value = DateTime.Now.Year;

            using (DiabetContext dc = new DiabetContext())
            {
                medicamentsList = new BindingList <YearMedicamentNeed>(dc.MedicamentAssigantions
                                                                       .Include(t => t.AssignMedicament)
                                                                       .Include(t => t.AssignMedicament.FullName)
                                                                       .Include(t => t.AssignMedicament.AgentDozages)
                                                                       .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.Agent))
                                                                       .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.DozageMeter))
                                                                       .Include(t => t.AssignMedicament.MedicamentType)
                                                                       .ToList()
                                                                       .Where(t => !t.Patient.IsDead)
                                                                       .GroupBy(t => new { t.AssignMedicament, t.Dozage, t.Days })
                                                                       .Select(t => new YearMedicamentNeed
                {
                    MedName = t.Key.AssignMedicament, Dozage = t.Key.Dozage, Days = t.Key.Days, PatientsNum = t.Count()
                }).ToList());
                dataGridView1.DataSource = medicamentsList;
            }

            button1.Enabled = (medicamentsList.Count > 0);
        }
Esempio n. 2
0
        private void deletePatientButton_Click(object sender, EventArgs e)
        {
            Patient selectedRecord = patientsList.SelectedRows[0].DataBoundItem as Patient;

            if (Notificator.ShowActionConfirmation(string.Format("Ви впевнені, що хочете видали дані пацієнта '{0}'?", selectedRecord.FullName)) != System.Windows.Forms.DialogResult.Yes)
            {
                return;
            }
            patientsList.Rows.RemoveAt(patientsList.SelectedRows[0].Index);
            allPatientsList.Remove(selectedRecord);
            filteredPatientList.Remove(selectedRecord);
            updateRowsNumberColumn();

            new Task(() =>
            {
                if (selectedRecord.PhotoFile != null)
                {
                    if (System.IO.File.Exists(System.IO.Path.Combine(PathFinder.GetImgPath(), selectedRecord.PhotoFile)))
                    {
                        System.IO.File.Delete(System.IO.Path.Combine(PathFinder.GetImgPath(), selectedRecord.PhotoFile));
                    }
                }

                using (DiabetContext dc = new DiabetContext())
                {
                    dc.Patients.Attach(selectedRecord);
                    dc.Patients.Remove(selectedRecord);
                    dc.SaveChanges();
                }
            }).Start();
        }
Esempio n. 3
0
        /// <summary>
        /// Форма редактирования медикамента
        /// </summary>
        /// <param name="id">Идентификатор существующего медикамента</param>
        /// <param name="isCopyMode">True если создаётся новый медикамент на основе существующего</param>
        public MedicamentForm(int id, bool isCopyMode) : this()
        {
            formIsInitialized = false;

            using (DiabetContext dc = new DiabetContext())
            {
                currentMedicament         = dc.Medicaments.Where(t => (t.Id == id)).Include(t => t.AgentDozages).First();
                medNameBox.SelectedValue  = currentMedicament.MedicamentNameId;
                packageType.SelectedValue = currentMedicament.MedicamentTypeId;
                numInPackage.Value        = currentMedicament.NumInPack;
                priceField.Value          = currentMedicament.Price;

                dozages = new BindingList <AgentDozage>(dc.AgentDozages.Include(t => t.DozageMeter)
                                                        .Include(t => t.Agent).Where(t => (t.MedicamentId == id)).ToList());

                foreach (var item in dozages)
                {
                    selectedAgents.Add(item.Agent.Id);
                }

                if (isCopyMode)
                {
                    currentMedicament.Id = 0;
                }

                dataGridView1.DataSource = dozages;
                dataGridView1.Refresh();
            }

            formIsInitialized = true;
        }
Esempio n. 4
0
        public MedicamentListForm()
        {
            formIsLoaded = false;

            InitializeComponent();
            agentsTable.AutoGenerateColumns = medicamentTable.AutoGenerateColumns = concreteMedTable.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                agentList = new BindingList <MedicamentAgent>(dc.MedicamentGroups.ToList());
                agentsTable.DataSource = agentList;

                medNamesList = new BindingList <MedicamentName>(dc.MedicamentNames.ToList());
                medicamentTable.DataSource = medNamesList;

                medicamentsList = new BindingList <Medicament>(dc.Medicaments.Include(p => p.AgentDozages)
                                                               .Include(p => p.AgentDozages.Select(k => k.Agent))
                                                               .Include(p => p.AgentDozages.Select(k => k.DozageMeter))
                                                               .Include(p => p.FullName)
                                                               .Include(p => p.MedicamentType).ToList());
                concreteMedTable.DataSource = medicamentsList;
            }

            formIsLoaded = true;
        }
Esempio n. 5
0
        public MedicamentForm()
        {
            formIsInitialized = false;
            idDataChanged     = false;

            selectedAgents = new List <int>();
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;
            dozages = new BindingList <AgentDozage>();
            dataGridView1.DataSource = dozages;
            dataGridView1.Refresh();

            using (DiabetContext dc = new DiabetContext())
            {
                medNameBox.DataSource    = dc.MedicamentNames.ToList();
                medNameBox.DisplayMember = "Name";
                medNameBox.ValueMember   = "Id";

                packageType.DataSource    = dc.MedicamentTypes.ToList();
                packageType.DisplayMember = "Name";
                packageType.ValueMember   = "Id";

                deafaultAgentMeter = dc.Meters.Where(t => t.MType == MeterType.MedicamentDozage).First();
            }

            formIsInitialized = true;
        }
Esempio n. 6
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            int selectedCommuneId = Convert.ToInt32(e.Argument);

            using (DiabetContext dc = new DiabetContext())
            {
                var allAssignments = dc.MedicamentAssigantions
                                     .Include(t => t.AssignMedicament)
                                     .Include(t => t.AssignMedicament.FullName)
                                     .Include(t => t.AssignMedicament.AgentDozages)
                                     .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.Agent))
                                     .Include(t => t.AssignMedicament.AgentDozages.Select(m => m.DozageMeter))
                                     .Include(t => t.AssignMedicament.MedicamentType)
                                     .ToList();

                if (selectedCommuneId > 0)
                {
                    allAssignments = allAssignments.Where(t => t.Patient.CommuneId == selectedCommuneId).ToList();
                }

                medicamentsList = new BindingList <YearMedicamentNeed>(allAssignments.GroupBy(t => new { t.AssignMedicament, t.Dozage, t.Days })
                                                                       .Select(t => new YearMedicamentNeed
                {
                    MedName        = t.Key.AssignMedicament,
                    Dozage         = t.Key.Dozage,
                    OldDozageValue = t.Key.Dozage,
                    Days           = t.Key.Days,
                    OldDaysValue   = t.Key.Days,
                    PatientsNum    = t.Count()
                }).ToList());
            }
        }
Esempio n. 7
0
 private bool TryDeleteCommune(Commune rec)
 {
     try
     {
         using (DiabetContext dc = new DiabetContext())
         {
             dc.Communes.Attach(rec);
             dc.Communes.Remove(rec);
             dc.SaveChanges();
         }
         return(true);
     }
     catch (DbUpdateException ex)
     {
         var sqlExc = ex.GetBaseException() as SqlException;
         if (sqlExc != null && sqlExc.Number == 547)
         {
             return(false);
         }
         else
         {
             throw;
         }
     }
 }
Esempio n. 8
0
        private bool TryDelete(Analyze item)
        {
            try
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    dc.Analyze.Attach(item);
                    dc.Entry <Analyze>(item).State = EntityState.Deleted;
                    dc.SaveChanges();
                }

                return(true);
            }
            catch (DbUpdateException ex)
            {
                var sqlExc = ex.GetBaseException() as SqlException;
                if (sqlExc != null && sqlExc.Number == 547)
                {
                    return(false);
                }
                else
                {
                    throw;
                }
            }
        }
Esempio n. 9
0
        private void button1_Click(object sender, EventArgs e)
        {
            int selectedCommuneId = Convert.ToInt32(comboBox1.SelectedValue);

            if (medicamentsList.Count == 0)
            {
                return;
            }

            try
            {
                this.Enabled = false;

                using (DiabetContext dc = new DiabetContext())
                {
                    var listOfAssignments = dc.MedicamentAssigantions.ToList();
                    if (selectedCommuneId > 0)
                    {
                        listOfAssignments = listOfAssignments.Where(t => t.Patient.CommuneId == selectedCommuneId).ToList();
                    }

                    foreach (var element in medicamentsList)
                    {
                        Medicament medicamentForSearch;
                        if (element.OldMedNameValue != null)
                        {
                            medicamentForSearch = element.OldMedNameValue;
                        }
                        else
                        {
                            medicamentForSearch = element.MedName;
                        }

                        var searchList = listOfAssignments.Where(t => (t.AssignMedicament.Id == medicamentForSearch.Id) &&
                                                                 (t.Dozage == element.OldDozageValue) &&
                                                                 (t.Days == element.OldDaysValue)).ToList();

                        foreach (var assMedItem in searchList)
                        {
                            assMedItem.MedicamentId = element.MedName.Id;
                            assMedItem.Dozage       = element.Dozage;
                            assMedItem.Days         = element.Days;
                            dc.Entry <MedicamentAssignation>(assMedItem).State = EntityState.Modified;
                            dc.SaveChanges();
                        }
                    }
                }
                Notificator.ShowInfo("Зміни успішно внесено!");
            }
            catch (Exception ex)
            {
                Notificator.ShowError(ex.Message);
            }
            finally
            {
                this.Enabled = true;
            }
        }
Esempio n. 10
0
        public MeterSelectForm()
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                dataGridView1.DataSource = dc.Meters.ToList();
            }
        }
Esempio n. 11
0
        public MeterSelectForm(MeterType mType)
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                dataGridView1.DataSource = dc.Meters.Where(r => (r.MType == mType)).ToList();
            }
        }
Esempio n. 12
0
        public AnalyzeSelectForm()
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                dataGridView1.DataSource = dc.Analyze.Include("AnalizeMeter").ToList();
            }
        }
Esempio n. 13
0
        public MedicamentNameSelectForm()
        {
            InitializeComponent();
            medicamentTable.AutoGenerateColumns = false;
            selectedMedicaments = new List <MedicamentName>();

            using (DiabetContext dc = new DiabetContext())
            {
                medicamentTable.DataSource = dc.MedicamentNames.ToList();
            }
        }
Esempio n. 14
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            MedicamentGroupPatients rec = e.Argument as MedicamentGroupPatients;

            using (DiabetContext dc = new DiabetContext())
            {
                patientsList = new BindingList <Patient>(dc.MedicamentAssigantions
                                                         .Where(t => (t.AssignMedicament.FullName.Id == rec.Name.Id) && (!t.Patient.IsDead))
                                                         .Select(t => t.Patient).Include(t => t.PatientCommune).ToList());
            }
        }
Esempio n. 15
0
        private bool TryDeleteRecord(object obj)
        {
            try
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    if (obj is MedicamentAgent)
                    {
                        MedicamentAgent entity = obj as MedicamentAgent;
                        dc.MedicamentGroups.Attach(entity);
                        dc.MedicamentGroups.Remove(entity);
                    }
                    else if (obj is MedicamentName)
                    {
                        MedicamentName entity = obj as MedicamentName;
                        dc.MedicamentNames.Attach(entity);
                        dc.MedicamentNames.Remove(entity);
                    }
                    else if (obj is Medicament)
                    {
                        Medicament entity = obj as Medicament;
                        dc.Medicaments.Attach(entity);
                        dc.AgentDozages.RemoveRange(dc.AgentDozages.Where(t => t.MedicamentId == entity.Id));
                        entity.AgentDozages.Clear();

                        dc.Medicaments.Remove(entity);
                    }
                    else
                    {
                        throw new Exception("UKNOWN OBJECT TO DELETE!");
                    }
                    dc.SaveChanges();
                }

                return(true);
            }
            catch (DbUpdateException ex)
            {
                var sqlExc = ex.GetBaseException() as SqlException;
                if (sqlExc != null && sqlExc.Number == 547)
                {
                    return(false);
                }
                else
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Esempio n. 16
0
 private void analizeMeterTable_CellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
     new Task(() =>
     {
         Meter selectedItem = analizeMeterTable.Rows[analizeMeterTable.SelectedCells[0].RowIndex].DataBoundItem as Meter;
         using (DiabetContext dc = new DiabetContext())
         {
             dc.Meters.Attach(selectedItem);
             dc.Entry <Meter>(selectedItem).State = System.Data.Entity.EntityState.Modified;
             dc.SaveChanges();
         }
     }).Start();
 }
Esempio n. 17
0
 private void medPackageTable_CellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
     new Task(() =>
     {
         MedicamentType selectedItem = medPackageTable.Rows[medPackageTable.SelectedCells[0].RowIndex].DataBoundItem as MedicamentType;
         using (DiabetContext dc = new DiabetContext())
         {
             dc.MedicamentTypes.Attach(selectedItem);
             dc.Entry <MedicamentType>(selectedItem).State = System.Data.Entity.EntityState.Modified;
             dc.SaveChanges();
         }
     }).Start();
 }
Esempio n. 18
0
        public CommunesForm()
        {
            InitializeComponent();

            using (DiabetContext dc = new DiabetContext())
            {
                communesList             = new BindingList <Commune>(dc.Communes.ToList());
                communesTable.DataSource = communesList;
                communesTable.Refresh();
            }

            dbInfoIsLoaded = true;
        }
Esempio n. 19
0
        private void communesTable_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dbInfoIsLoaded)
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    Commune selectedCommune = communesTable.Rows[e.RowIndex].DataBoundItem as Commune;
                    dc.Communes.Attach(selectedCommune);
                    dc.Entry(selectedCommune).State = System.Data.Entity.EntityState.Modified;
                    dc.SaveChanges();

                    communesListIsChange = true;
                }
            }
        }
Esempio n. 20
0
        public AnalizeListForm()
        {
            formIsLoaded = false;
            InitializeComponent();
            analizesTable.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                analizesList             = new BindingList <Analyze>(dc.Analyze.Include(t => t.AnalizeMeter).ToList());
                analizesTable.DataSource = analizesList;

                defaultMeter = dc.Meters.Where(t => t.MType == MeterType.Analize).First();
            }

            formIsLoaded = true;
        }
Esempio n. 21
0
        public AgentSelectForm(List <int> excludeAgents)
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                if (excludeAgents == null || excludeAgents.Count == 0)
                {
                    dataGridView1.DataSource = dc.MedicamentGroups.ToList();
                }
                else
                {
                    dataGridView1.DataSource = dc.MedicamentGroups.Where(p => !excludeAgents.Contains(p.Id)).ToList();
                }
            }
        }
Esempio n. 22
0
        private void addAnalizeDozageButton_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Meter newMeter = new Meter {
                Name = " - НОВА ОДИНИЦЯ - "
            };

            analizeMeterList.Add(newMeter);
            analizeMeterTable.Refresh();
            new Task(() =>
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    dc.Meters.Add(newMeter);
                    dc.SaveChanges();
                }
            }).Start();
        }
Esempio n. 23
0
        public MeterForm()
        {
            InitializeComponent();
            medDozageTable.AutoGenerateColumns
                = medPackageTable.AutoGenerateColumns = analizeMeterTable.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                packageMeterList   = new BindingList <MedicamentType>(dc.MedicamentTypes.ToList());
                medDozageMeterList = new BindingList <Meter>(dc.Meters.Where(t => t.MType == MeterType.MedicamentDozage).ToList());
                analizeMeterList   = new BindingList <Meter>(dc.Meters.Where(t => t.MType == MeterType.Analize).ToList());

                medPackageTable.DataSource   = packageMeterList;
                medDozageTable.DataSource    = medDozageMeterList;
                analizeMeterTable.DataSource = analizeMeterList;
            }
        }
Esempio n. 24
0
        public MedicamentSelectForm(List <int> medFilter, bool isIncludeSearch)
        {
            InitializeComponent();
            dataGridView1.AutoGenerateColumns = false;

            using (DiabetContext dc = new DiabetContext())
            {
                var medList = dc.Medicaments
                              .Include(p => p.AgentDozages)
                              .Include(p => p.AgentDozages.Select(k => k.Agent))
                              .Include(p => p.AgentDozages.Select(k => k.DozageMeter))
                              .Include(p => p.FullName)
                              .Include(p => p.MedicamentType)
                              .Where(p => medFilter.Contains(p.Id) == isIncludeSearch).ToList();
                dataGridView1.DataSource = medList;
            }
        }
Esempio n. 25
0
        private void addPackageButton_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            MedicamentType newType = new MedicamentType {
                Name = " - НОВА ОДИНИЦЯ - "
            };

            packageMeterList.Add(newType);
            medPackageTable.Refresh();
            new Task(() =>
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    dc.MedicamentTypes.Add(newType);
                    dc.SaveChanges();
                }
            }).Start();
        }
Esempio n. 26
0
        private void medicamentTable_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (formIsLoaded)
            {
                MedicamentName selectedItem = medicamentTable.Rows[e.RowIndex].DataBoundItem as MedicamentName;

                new Task(() =>
                {
                    using (DiabetContext dc = new DiabetContext())
                    {
                        dc.MedicamentNames.Attach(selectedItem);
                        dc.Entry <MedicamentName>(selectedItem).State = EntityState.Modified;
                        dc.SaveChanges();
                    }
                }).Start();
            }
        }
Esempio n. 27
0
        private void updateCommunesList()
        {
            if (!backgroundWorker1.IsBusy)
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    List <Commune> communesList = dc.Communes.ToList();
                    communesList.Insert(0, new Commune {
                        Id = -1, Name = "- Усі громади -"
                    });
                    comboBox1.DataSource = communesList;
                }

                switchWaiting();
                backgroundWorker1.RunWorkerAsync();
            }
        }
Esempio n. 28
0
        private void deleteCommuneButton_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            using (DiabetContext dc = new DiabetContext())
            {
                int     selectedRow     = communesTable.CurrentCell.RowIndex;
                Commune selectedCommune = communesTable.Rows[selectedRow].DataBoundItem as Commune;

                if (TryDeleteCommune(selectedCommune))
                {
                    communesTable.Rows.RemoveAt(selectedRow);
                    communesListIsChange = true;
                }
                else
                {
                    Notificator.ShowError("Неможливо видалити громаду, так як в БД існують пацієнти записані на цю громаду");
                }
            }
        }
Esempio n. 29
0
        private void addAgentLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            MedicamentAgent newAg = new MedicamentAgent {
                Name = "- НОВА ДІЮЧА РЕЧОВИНА -"
            };

            agentList.Add(newAg);

            agentsTable.CurrentCell = agentsTable.Rows[agentsTable.Rows.Count - 1].Cells[0];

            new Task(() =>
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    dc.MedicamentGroups.Add(newAg);
                    dc.SaveChanges();
                }
            }).Start();
        }
Esempio n. 30
0
        private void addMedicamentLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            MedicamentName newName = new MedicamentName {
                Name = "- НОВА ДІЮЧА РЕЧОВИНА -"
            };

            medNamesList.Add(newName);

            medicamentTable.CurrentCell = medicamentTable.Rows[medicamentTable.Rows.Count - 1].Cells[0];

            new Task(() =>
            {
                using (DiabetContext dc = new DiabetContext())
                {
                    dc.MedicamentNames.Add(newName);
                    dc.SaveChanges();
                }
            }).Start();
        }