public static void HidePlan(int personID)
        {
            using (Context db = new Context())
            {
                if (OperationsOfPersons.FindByID(personID).Role == 2) // 2 = врач
                {
                    var plans = db.TreatmentPlans.Where(p => p.AssignerDoctorID == personID).ToList();

                    foreach (var p in plans)
                    {
                        p.DateOfDelete    = DateTime.Now;
                        db.Entry(p).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                if (OperationsOfPersons.FindByID(personID).Role == 7) // 7 = пациент
                {
                    var plans = db.TreatmentPlans.Where(p => p.PatientID == personID).ToList();

                    foreach (var p in plans)
                    {
                        p.DateOfDelete    = DateTime.Now;
                        db.Entry(p).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
        }
        // Кнопка "Сохранить" - проверка полей
        private void button1_Click(object sender, EventArgs e)
        {
            if (CheckField() == 6)
            {
                person.Surname    = textBox2.Text;
                person.Name       = textBox3.Text;
                person.Patronymic = textBox4.Text;
                person.Phone      = textBox5.Text;
                if (comboBox1.Text == "Врач")
                {
                    person.Role = 2;
                }
                else
                {
                    person.Role = 3;
                }

                person.Login    = textBox6.Text;
                person.Password = textBox7.Text;

                OperationsOfPersons.Add(person);
                MessageBox.Show("Работник добавлен");

                // При нажатии кнопки вызывается грид с уже измененными данными(авто обновление) на главной форме
                this.Close();
            }
        }
Exemple #3
0
        // Кнопка "Сохранить", при нажатии считывает текстбоксы и заносит их данные в поля объекта + проверка полей
        private void button2_Click(object sender, EventArgs e)
        {
            if (CheckField() == 6)
            {
                person.Surname    = textBox2.Text;
                person.Name       = textBox3.Text;
                person.Patronymic = textBox4.Text;
                person.Phone      = textBox5.Text;

                if (comboBox1.Text == "Врач")
                {
                    person.Role = 2;
                }
                else
                {
                    person.Role = 3;
                }

                person.Login    = textBox6.Text;
                person.Password = textBox7.Text;

                OperationsOfPersons.Edit(person);
                MessageBox.Show("Данные о работнике изменены");
            }
        }
Exemple #4
0
        bool editBan = Model.Prohibition.Banned("dis_edit");             // Перменная для хранения доступа к редактированию

        public Info_DispensingDrug(DispensingDrug ds)
        {
            InitializeComponent();

            // Бан полей
            textBox7.Enabled        = false;
            textBox4.Enabled        = false;
            textBox5.Enabled        = false;
            textBox6.Enabled        = false;
            numericUpDown1.Enabled  = false;
            textBox1.Enabled        = false;
            textBox3.Enabled        = false;
            dateTimePicker1.Enabled = false;
            dateTimePicker2.Enabled = false;
            Status.Enabled          = false;

            // Ограничение функционала
            button2.Visible = editBan;
            button1.Visible = editBan;

            dis = ds; // Передача назначения лекарства

            if (status != 6)
            {
                button3.Hide();
            }
            if (status == 3)
            {
                Status.Enabled = true;
                button2.Hide();
            }

            // Заполнение всех полей
            if (dis.NurseID.HasValue)
            {
                textBox7.Text = Convert.ToString(dis.NurseID.Value);
                textBox4.Text = OperationsOfPersons.FindByID(dis.NurseID.Value).Surname;
                textBox5.Text = OperationsOfPersons.FindByID(dis.NurseID.Value).Name;
                textBox6.Text = OperationsOfPersons.FindByID(dis.NurseID.Value).Patronymic;
            }
            else
            {
                textBox7.Text = "";
                textBox4.Text = "";
                textBox5.Text = "";
                textBox6.Text = "";
            }

            numericUpDown1.Value = (decimal)dis.Dosage;
            textBox1.Text        = Convert.ToString(dis.TreatmentPlanID);
            textBox3.Text        = Convert.ToString(dis.PrescriptionID);

            string[] time = Convert.ToString(dis.TimeOfTakeDispense).Split(' ');
            dateTimePicker1.Value = Convert.ToDateTime(time[0]);
            dateTimePicker2.Value = Convert.ToDateTime(time[1]);

            Status.Checked = dis.Status;
        }
        public void DispensingGrid()
        {
            dataGridView5.Rows.Clear();
            int records = 10; // Количество записей на гриде

            using (Context db = new Context())
            {
                // Находим все записи
                var d = db.DispensingDrugs.Where(x => x.PrescriptionID == pres.ID && x.DateOfDelete == null).ToList();

                maxpage = d.Count() / records; // Поиск максимального числа страниц

                if (d.Count() % records != 0)
                {
                    maxpage++;
                }                                            // Если записи ровно не делятся на 10 - добавляется еще 1 страница

                if (maxpage == 0)
                {
                    maxpage++;
                }                                // Если записей вообще нет - будет 1 страница

                if (currentPage == maxpage)
                {
                    button29.Enabled = false;
                }                                                         // Если текущая выбранная страница = максимальной - дезоктивация кнопки ВПЕРЕД

                if (currentPage == 1)
                {
                    button30.Enabled = false;
                }                                                   // Если текущая выбранная страница = 1 - дезоктивация кнопки НАЗАД

                if (currentPage < maxpage)
                {
                    button29.Enabled = true;
                }                                                       // Если текущая выбранная страница > максимальной - активация кнопки ВПЕРЕД

                label41.Text = "Страница:" + Convert.ToString(currentPage) + "/" + maxpage;
            }

            List <DispensingDrug> dis = OperationsOfDispensingDrugs.FindAllDispensing_Prescription(pres, currentPage, records);

            foreach (var pr in dis)
            {
                if (pr.NurseID.HasValue)
                {
                    dataGridView5.Rows.Add(pr.ID, OperationsOfPersons.FindByID(pr.NurseID.Value).Surname + " "
                                           + OperationsOfPersons.FindByID(pr.NurseID.Value).Name + " "
                                           + OperationsOfPersons.FindByID(pr.NurseID.Value).Patronymic,
                                           pr.PrescriptionID, pr.TreatmentPlanID, pr.Dosage, pr.TimeOfTakeDispense, pr.DateOfCreate, pr.DateOfEdit, pr.Status);
                }
                else
                {
                    dataGridView5.Rows.Add(pr.ID, "",
                                           pr.PrescriptionID, pr.TreatmentPlanID, pr.Dosage, pr.TimeOfTakeDispense, pr.DateOfCreate, pr.DateOfEdit, pr.Status);
                }
            }
        }
        // Заполнение грида
        private void Choice_Nurse_Load(object sender, EventArgs e)
        {
            List <Person> nurse = OperationsOfPersons.ChoiceGrid_Nurse();

            foreach (var p in nurse)
            {
                dataGridEmployee.Rows.Add(p.ID, p.Surname, p.Name, p.Patronymic, p.Phone, p.Role, p.DateOfCreate, p.DateOfEdit);
            }
        }
Exemple #7
0
        // Заполнение грида
        private void Choice_Patient_Load(object sender, EventArgs e)
        {
            List <Person> patient = OperationsOfPersons.ChoiceGrid_Patient();

            foreach (var p in patient)
            {
                dataGridView2.Rows.Add(p.ID, p.Surname, p.Name, p.Patronymic, p.Phone, p.DateOfCreate, p.DateOfEdit);
            }
        }
        // Кнопка "Сохранить", при нажатии считывает текстбоксы и заносит их данные в поля объекта + проверка полей
        private void button1_Click(object sender, EventArgs e)
        {
            if (CheckField() == 4)
            {
                person.Surname    = textBox1.Text;
                person.Name       = textBox2.Text;
                person.Patronymic = textBox3.Text;
                person.Phone      = textBox4.Text;

                OperationsOfPersons.Edit(person);
                MessageBox.Show("Данные о пациенте изменены");

                // При нажатии кнопки вызывается грид с уже измененными данными(авто обновление) на главной форме
            }
        }
        private void GridWithDoctor()
        {
            // Очистка грида чтобы записи не дублировались
            dataGridDoctors.Rows.Clear();

            // Количество записей на гриде
            int records = 10;

            // Все врачи данного пациента
            List <Person> emp = OperationsOfPersons.Patient_Doctor(person, currentPage, records);

            // Поиск максимального числа страниц
            maxpage = emp.Count() / records;

            // Если записи ровно не делятся на 5/10 - добавляется еще 1 страница
            if (emp.Count() % records != 0)
            {
                maxpage++;
            }

            // Если записей вообще нет - будет 1 страница
            if (maxpage == 0)
            {
                maxpage++;
            }

            // Если текущая выбранная страница = максимальной - дезоктивация кнопки ВПЕРЕД
            if (currentPage == maxpage)
            {
                button29.Enabled = false;
            }

            // Если текущая выбранная страница = 1 - дезоктивация кнопки НАЗАД
            if (currentPage == 1)
            {
                button30.Enabled = false;
            }

            label41.Text = "Страница:" + Convert.ToString(currentPage) + "/" + maxpage;

            // Заполнение грида с мостом врачей
            foreach (Person p in emp)
            {
                dataGridDoctors.Rows.Add(p.ID, p.Surname, p.Name, p.Patronymic, p.Phone, p.Role, p.DateOfCreate, p.DateOfEdit);
            }
        }
Exemple #10
0
        // Клик на гриде
        private void dataGridEmployee_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                if (dataGridEmployee.RowCount - 1 >= e.RowIndex)
                {
                    int l = e.RowIndex;                                               // Находим индекс строки, где был клик

                    int k = Convert.ToInt32(dataGridEmployee.Rows[l].Cells[0].Value); // Выдергивание id врача из строки

                    Person doctor = OperationsOfPersons.FindByID(k);
                    plan.DoctorField(doctor); // Выбор врача в форме добавления
                    pln.DoctorField(doctor);  // Выбор врача в форме просмотра
                    this.Close();
                }
            }
        }
Exemple #11
0
        private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                if (dataGridView2.RowCount - 1 >= e.RowIndex)
                {
                    int l = e.RowIndex;                                            // Находим индекс строки, где был клик

                    int k = Convert.ToInt32(dataGridView2.Rows[l].Cells[0].Value); // Выдергивание id пациента из строки

                    Person patient = OperationsOfPersons.FindByID(k);
                    plan.PatientField(patient); // Выбор пациента в форме добавления
                    pln.PatientField(patient);  // Выбор пациента в форме просмотра
                    this.Close();
                }
            }
        }
Exemple #12
0
        // Кнопка "Сохранить", при нажатии считывает текстбоксы и заносит их данные в поля объекта + проверка полей
        private void button1_Click(object sender, EventArgs e)
        {
            if (CheckField() == 4)
            {
                person.Surname    = textBox1.Text;
                person.Name       = textBox2.Text;
                person.Patronymic = textBox3.Text;
                person.Phone      = textBox4.Text;
                person.Role       = 7; // 7 = пациент

                OperationsOfPersons.Add(person);
                MessageBox.Show("Пациент добавлен");

                // При нажатии кнопки вызывается грид с уже измененными данными(авто обновление) на главной форме
                this.Close();
            }
        }
Exemple #13
0
        private void GridWithDrug()
        {
            // Очистка грида чтобы записи не дублировались
            dataGridDrugs.Rows.Clear();

            // Количество записей на гриде
            int records = 10;

            // Все лекарства данного пациента
            List <Drug> drugs = OperationsOfPersons.Patient_Drug(person, currentPage, records);

            // Поиск максимального числа страниц
            maxpage = drugs.Count() / records;

            // Если записи ровно не делятся на 5/10 - добавляется еще 1 страница
            if (drugs.Count() % records != 0)
            {
                maxpage++;
            }

            // Если записей вообще нет - будет 1 страница
            if (maxpage == 0)
            {
                maxpage++;
            }

            // Если текущая выбранная страница = максимальной - дезоктивация кнопки ВПЕРЕД
            if (currentPage == maxpage)
            {
                button4.Enabled = false;
            }

            // Если текущая выбранная страница = 1 - дезоктивация кнопки НАЗАД
            if (currentPage == 1)
            {
                button5.Enabled = false;
            }

            label8.Text = "Страница:" + Convert.ToString(currentPage) + "/" + maxpage;

            // Заполнение грида с мостом лекарств
            foreach (Drug p in drugs)
            {
                dataGridDrugs.Rows.Add(p.ID, p.Name, p.Quantity, p.Measure, p.DateOfCreate, p.DateOfEdit);
            }
        }
        public Info_TreatmentPlan(TreatmentPlan pl)
        {
            InitializeComponent();

            // передача плана лечения из грида главной формы
            plan = pl;
            // Ограничение функционала в зависимости от роли
            button24.Visible = addBan;
            button2.Visible  = editBan;
            button3.Visible  = editBan;
            button1.Visible  = editBan;
            dataGridView4.Columns[8].Visible = delBan;

            // Бан полей врача
            textBox7.Enabled = false;
            textBox1.Enabled = false;
            textBox2.Enabled = false;
            textBox3.Enabled = false;
            // Бан полей пациента
            textBox8.Enabled = false;
            textBox6.Enabled = false;
            textBox5.Enabled = false;
            textBox4.Enabled = false;

            if (status == 2)
            {
                button1.Hide();
            }

            // Находим ID врача и пациента для заполнения полей
            int d = plan.AssignerDoctorID;
            int p = plan.PatientID;

            // Заполняем поля
            textBox7.Text = Convert.ToString(OperationsOfPersons.FindByID(d).ID);
            textBox1.Text = Convert.ToString(OperationsOfPersons.FindByID(d).Surname);
            textBox2.Text = Convert.ToString(OperationsOfPersons.FindByID(d).Name);
            textBox3.Text = Convert.ToString(OperationsOfPersons.FindByID(d).Patronymic);

            textBox8.Text = Convert.ToString(OperationsOfPersons.FindByID(p).ID);
            textBox6.Text = Convert.ToString(OperationsOfPersons.FindByID(p).Surname);
            textBox5.Text = Convert.ToString(OperationsOfPersons.FindByID(p).Name);
            textBox4.Text = Convert.ToString(OperationsOfPersons.FindByID(p).Patronymic);

            PrescriptionGrid();
        }
Exemple #15
0
        // Клик на гриде
        private void dataGridEmployee_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                if (dataGridEmployee.RowCount - 1 >= e.RowIndex)
                {
                    int l = e.RowIndex;                                               // Находим индекс строки, где был клик

                    int k = Convert.ToInt32(dataGridEmployee.Rows[l].Cells[0].Value); // Выдергивание id медсестры из строки

                    Person nurse = OperationsOfPersons.FindByID(k);
                    dis.NurseField(nurse);        // Выбор медсестры в форме добавления
                    dispensing.NurseField(nurse); // Выбор медсестры в форме просмотра
                    this.Close();
                }
            }
        }
Exemple #16
0
 // Смена статуса выдано/не выдано
 private void Status_CheckedChanged(object sender, EventArgs e)
 {
     if (status == 3 && Status.Checked == true)
     {
         textBox7.Text = Convert.ToString(nurID);
         textBox4.Text = OperationsOfPersons.FindByID(nurID).Surname;
         textBox5.Text = OperationsOfPersons.FindByID(nurID).Name;
         textBox6.Text = OperationsOfPersons.FindByID(nurID).Patronymic;
     }
     else
     {
         if (status == 3 && Status.Checked == false)
         {
             textBox7.Text = "";
             textBox4.Text = "";
             textBox5.Text = "";
             textBox6.Text = "";
         }
     }
 }
Exemple #17
0
 // Дабл клик по гриду с пациентами
 private void dataGridView3_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     // Открытие карточки пациента при клике везде на гриде
     if (e.ColumnIndex != 0)
     {
         if (e.RowIndex > -1)
         {
             if (dataGridView3.RowCount - 1 >= e.RowIndex)
             {
                 // Находим индекс строки, где был клик
                 int l = e.RowIndex;
                 // Выдергивание id пациента из строки
                 int k = Convert.ToInt32(dataGridView3.Rows[l].Cells[0].Value);
                 // Вызов конструктора формы с данными строки(пациента) на которую мы кликнули
                 InfoForm.Info_Patient f = new InfoForm.Info_Patient(OperationsOfPersons.FindByID(k));
                 f.ShowDialog();
                 // Вызов функции грида пациентов для его авто обновления
                 GridWithPatient();
             }
         }
     }
 }