diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Doctor.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Doctor.cs new file mode 100644 index 0000000..30cc86a --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Doctor.cs @@ -0,0 +1,21 @@ +using ProjectPatientAccounting.Entities.Enums; +namespace ProjectPatientAccounting.Entities; + +public class Doctor +{ + public int Id { get; private set; } + public string Name { get; private set; } = string.Empty; + public string Surname { get; private set; } = string.Empty; + public Area DoctorArea { get; private set; } + + public static Doctor CreateEntity(int id, string name, string surname, Area doctorArea) + { + return new Doctor + { + Id = id, + Name = name ?? string.Empty, + Surname = surname ?? string.Empty, + DoctorArea = doctorArea + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/Area.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/Area.cs new file mode 100644 index 0000000..9180e5f --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/Area.cs @@ -0,0 +1,14 @@ +namespace ProjectPatientAccounting.Entities.Enums; + +public enum Area +{ + None = 0, + + Area1 = 1, + + Area2 = 2, + + Area3 = 3, + + Area4 = 4 +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/PatientDiagnosisStatus.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/PatientDiagnosisStatus.cs new file mode 100644 index 0000000..6c81665 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/PatientDiagnosisStatus.cs @@ -0,0 +1,13 @@ +namespace ProjectPatientAccounting.Entities.Enums; + +[Flags] +public enum PatientDiagnosisStatus +{ + None = 0, + + InTreatment = 1, + + TakingTests = 2, + + Closed = 4, +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/TypeMedicament.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/TypeMedicament.cs new file mode 100644 index 0000000..8686493 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Enums/TypeMedicament.cs @@ -0,0 +1,14 @@ +namespace ProjectPatientAccounting.Entities.Enums; + +public enum TypeMedicament +{ + None = 0, + + Vitamins = 1, + + Antibiotik = 2, + + Antiviral = 3, + + Recipe = 4 +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Medicament.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Medicament.cs new file mode 100644 index 0000000..10db1f2 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Medicament.cs @@ -0,0 +1,22 @@ +using ProjectPatientAccounting.Entities.Enums; +namespace ProjectPatientAccounting.Entities; + +public class Medicament +{ + public int Id { get; private set; } + public string Name { get; private set; } = string.Empty; + public string Description { get; private set; } = string.Empty; + public TypeMedicament TypeMedicament { get; private set; } + + public static Medicament CreateEntity(int id, string name, string description, TypeMedicament typeMedicament) + { + return new Medicament + { + Id = id, + Name = name ?? string.Empty, + Description = description ?? string.Empty, + TypeMedicament = typeMedicament, + + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/MedicamentReception.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/MedicamentReception.cs new file mode 100644 index 0000000..ceeada8 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/MedicamentReception.cs @@ -0,0 +1,19 @@ +namespace ProjectPatientAccounting.Entities; + +public class MedicamentReception +{ + public int Id { get; private set; } + public int MedicamentId { get; private set; } + public int Dosage { get; private set; } + + public static MedicamentReception CreateElement(int id, int medicamentId, int dosage) + { + return new MedicamentReception + { + Id = id, + MedicamentId = medicamentId, + Dosage = dosage + + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Patient.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Patient.cs new file mode 100644 index 0000000..df5beae --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Patient.cs @@ -0,0 +1,22 @@ +namespace ProjectPatientAccounting.Entities; + +public class Patient +{ + public int Id { get; private set; } + public string Name { get; private set; } = string.Empty; + public string Surname { get; private set; } = string.Empty; + public string Telephone { get; private set; } = string.Empty; + public int NumMedCard { get; private set; } + + public static Patient CreateEntity(int id, string name, string surname, string telephone, int numMedCard) + { + return new Patient + { + Id = id, + Name = name ?? string.Empty, + Surname = surname ?? string.Empty, + Telephone = telephone ?? string.Empty, + NumMedCard = numMedCard + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/PatientDiagnosis.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/PatientDiagnosis.cs new file mode 100644 index 0000000..c2fb48e --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/PatientDiagnosis.cs @@ -0,0 +1,21 @@ +using ProjectPatientAccounting.Entities.Enums; +namespace ProjectPatientAccounting.Entities; + +public class PatientDiagnosis +{ + public int Id { get; private set; } + public string Name { get; private set; } = string.Empty; + public int DiagnosisCode { get; private set; } + public PatientDiagnosisStatus PatientDiagnosisStatus { get; private set; } + + public static PatientDiagnosis CreateEntity(int id, string name, int diagnosisCode, PatientDiagnosisStatus patientDiagnosisStatus) + { + return new PatientDiagnosis + { + Id = id, + Name = name, + DiagnosisCode = diagnosisCode, + PatientDiagnosisStatus = patientDiagnosisStatus + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Reception.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Reception.cs new file mode 100644 index 0000000..d73cb11 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Entities/Reception.cs @@ -0,0 +1,26 @@ +namespace ProjectPatientAccounting.Entities; + +public class Reception +{ + public int Id { get; private set; } + public int PatientId { get; private set; } + public int DoctorId { get; private set; } + public int DiagnosisId { get; private set; } + public DateTime ReceptionDate { get; private set; } + public int NumTicket { get; private set; } + public IEnumerable MedicamentReceptions { get; private set; } = []; + + public static Reception CreateOperation(int id, int patientId, int doctorId, int diagnosisId, int numTicket, IEnumerable medicamentReceptions) + { + return new Reception + { + Id = id, + PatientId = patientId, + DoctorId = doctorId, + DiagnosisId = diagnosisId, + ReceptionDate = DateTime.Now, + NumTicket = numTicket, + MedicamentReceptions = medicamentReceptions + }; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Form1.Designer.cs deleted file mode 100644 index bc91284..0000000 --- a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace ProjectPatientAccounting -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Form1.cs deleted file mode 100644 index 6cb18ef..0000000 --- a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectPatientAccounting -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.Designer.cs new file mode 100644 index 0000000..927e38c --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.Designer.cs @@ -0,0 +1,138 @@ +namespace ProjectPatientAccounting +{ + partial class FormPolyclinic + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + menuStrip = new MenuStrip(); + справочникиToolStripMenuItem = new ToolStripMenuItem(); + пациентыToolStripMenuItem = new ToolStripMenuItem(); + участковыеВрачиToolStripMenuItem = new ToolStripMenuItem(); + диагнозыToolStripMenuItem = new ToolStripMenuItem(); + медикаментыToolStripMenuItem = new ToolStripMenuItem(); + операцииToolStripMenuItem = new ToolStripMenuItem(); + приемПациентаToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); + menuStrip.SuspendLayout(); + SuspendLayout(); + // + // menuStrip + // + menuStrip.ImageScalingSize = new Size(20, 20); + menuStrip.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, операцииToolStripMenuItem, отчетыToolStripMenuItem }); + menuStrip.Location = new Point(0, 0); + menuStrip.Name = "menuStrip"; + menuStrip.Size = new Size(882, 28); + menuStrip.TabIndex = 0; + menuStrip.Text = "menuStrip1"; + // + // справочникиToolStripMenuItem + // + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { пациентыToolStripMenuItem, участковыеВрачиToolStripMenuItem, диагнозыToolStripMenuItem, медикаментыToolStripMenuItem }); + справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; + справочникиToolStripMenuItem.Size = new Size(117, 24); + справочникиToolStripMenuItem.Text = "Справочники"; + // + // пациентыToolStripMenuItem + // + пациентыToolStripMenuItem.Name = "пациентыToolStripMenuItem"; + пациентыToolStripMenuItem.Size = new Size(219, 26); + пациентыToolStripMenuItem.Text = "Пациенты"; + пациентыToolStripMenuItem.Click += PatientsToolStripMenuItem_Click; + // + // участковыеВрачиToolStripMenuItem + // + участковыеВрачиToolStripMenuItem.Name = "участковыеВрачиToolStripMenuItem"; + участковыеВрачиToolStripMenuItem.Size = new Size(219, 26); + участковыеВрачиToolStripMenuItem.Text = "Участковые врачи"; + участковыеВрачиToolStripMenuItem.Click += DoctorsToolStripMenuItem_Click; + // + // диагнозыToolStripMenuItem + // + диагнозыToolStripMenuItem.Name = "диагнозыToolStripMenuItem"; + диагнозыToolStripMenuItem.Size = new Size(219, 26); + диагнозыToolStripMenuItem.Text = "Диагнозы"; + диагнозыToolStripMenuItem.Click += PatientDiagnosisesToolStripMenuItem_Click; + // + // медикаментыToolStripMenuItem + // + медикаментыToolStripMenuItem.Name = "медикаментыToolStripMenuItem"; + медикаментыToolStripMenuItem.Size = new Size(219, 26); + медикаментыToolStripMenuItem.Text = "Медикаменты"; + медикаментыToolStripMenuItem.Click += MedicamentsToolStripMenuItem_Click; + // + // операцииToolStripMenuItem + // + операцииToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { приемПациентаToolStripMenuItem }); + операцииToolStripMenuItem.Name = "операцииToolStripMenuItem"; + операцииToolStripMenuItem.Size = new Size(95, 24); + операцииToolStripMenuItem.Text = "Операции"; + // + // приемПациентаToolStripMenuItem + // + приемПациентаToolStripMenuItem.Name = "приемПациентаToolStripMenuItem"; + приемПациентаToolStripMenuItem.Size = new Size(210, 26); + приемПациентаToolStripMenuItem.Text = "Прием пациента"; + приемПациентаToolStripMenuItem.Click += ReceptionsToolStripMenuItem_Click; + // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(73, 24); + отчетыToolStripMenuItem.Text = "Отчеты"; + // + // FormPolyclinic + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + BackgroundImage = Properties.Resources.clynic; + BackgroundImageLayout = ImageLayout.Stretch; + ClientSize = new Size(882, 553); + Controls.Add(menuStrip); + MainMenuStrip = menuStrip; + Name = "FormPolyclinic"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Поликлиника"; + menuStrip.ResumeLayout(false); + menuStrip.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private MenuStrip menuStrip; + private ToolStripMenuItem справочникиToolStripMenuItem; + private ToolStripMenuItem пациентыToolStripMenuItem; + private ToolStripMenuItem участковыеВрачиToolStripMenuItem; + private ToolStripMenuItem диагнозыToolStripMenuItem; + private ToolStripMenuItem операцииToolStripMenuItem; + private ToolStripMenuItem приемПациентаToolStripMenuItem; + private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem медикаментыToolStripMenuItem; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.cs b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.cs new file mode 100644 index 0000000..8f80966 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.cs @@ -0,0 +1,86 @@ +using ProjectPatientAccounting.Forms; +using Unity; + +namespace ProjectPatientAccounting +{ + public partial class FormPolyclinic : Form + { + private readonly IUnityContainer _container; + + public FormPolyclinic(IUnityContainer container) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + } + + private void PatientsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void DoctorsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void PatientDiagnosisesToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + private void ReceptionsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void MedicamentsToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, " ", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.resx b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.resx new file mode 100644 index 0000000..31084d5 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/FormPolyclinic.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.Designer.cs new file mode 100644 index 0000000..5964521 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.Designer.cs @@ -0,0 +1,142 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormDoctor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelSurnameDoctor = new Label(); + labelNameDoctor = new Label(); + labelDoctorArea = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + textBoxSurnameDoctor = new TextBox(); + textBoxNameDoctor = new TextBox(); + comboBoxDoctorArea = new ComboBox(); + SuspendLayout(); + // + // labelSurnameDoctor + // + labelSurnameDoctor.AutoSize = true; + labelSurnameDoctor.Location = new Point(12, 34); + labelSurnameDoctor.Name = "labelSurnameDoctor"; + labelSurnameDoctor.Size = new Size(136, 20); + labelSurnameDoctor.TabIndex = 0; + labelSurnameDoctor.Text = "Фамилия доктора:"; + // + // labelNameDoctor + // + labelNameDoctor.AutoSize = true; + labelNameDoctor.Location = new Point(12, 104); + labelNameDoctor.Name = "labelNameDoctor"; + labelNameDoctor.Size = new Size(102, 20); + labelNameDoctor.TabIndex = 1; + labelNameDoctor.Text = "Имя доктора:"; + // + // labelDoctorArea + // + labelDoctorArea.AutoSize = true; + labelDoctorArea.Location = new Point(12, 174); + labelDoctorArea.Name = "labelDoctorArea"; + labelDoctorArea.Size = new Size(66, 20); + labelDoctorArea.TabIndex = 2; + labelDoctorArea.Text = "Участок:"; + // + // buttonSave + // + buttonSave.Location = new Point(40, 283); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(131, 46); + buttonSave.TabIndex = 3; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(227, 283); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(131, 46); + buttonCancel.TabIndex = 4; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // textBoxSurnameDoctor + // + textBoxSurnameDoctor.Location = new Point(178, 31); + textBoxSurnameDoctor.Name = "textBoxSurnameDoctor"; + textBoxSurnameDoctor.Size = new Size(209, 27); + textBoxSurnameDoctor.TabIndex = 5; + // + // textBoxNameDoctor + // + textBoxNameDoctor.Location = new Point(178, 101); + textBoxNameDoctor.Name = "textBoxNameDoctor"; + textBoxNameDoctor.Size = new Size(209, 27); + textBoxNameDoctor.TabIndex = 6; + // + // comboBoxDoctorArea + // + comboBoxDoctorArea.FormattingEnabled = true; + comboBoxDoctorArea.Location = new Point(178, 171); + comboBoxDoctorArea.Name = "comboBoxDoctorArea"; + comboBoxDoctorArea.Size = new Size(209, 28); + comboBoxDoctorArea.TabIndex = 7; + // + // FormDoctor + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(426, 368); + Controls.Add(comboBoxDoctorArea); + Controls.Add(textBoxNameDoctor); + Controls.Add(textBoxSurnameDoctor); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelDoctorArea); + Controls.Add(labelNameDoctor); + Controls.Add(labelSurnameDoctor); + Name = "FormDoctor"; + StartPosition = FormStartPosition.CenterParent; + Text = "Доктор"; + ResumeLayout(false); + PerformLayout(); + } + + + #endregion + + private Label labelSurnameDoctor; + private Label labelNameDoctor; + private Label labelDoctorArea; + private Button buttonSave; + private Button buttonCancel; + private TextBox textBoxSurnameDoctor; + private TextBox textBoxNameDoctor; + private ComboBox comboBoxDoctorArea; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.cs new file mode 100644 index 0000000..65165ad --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.cs @@ -0,0 +1,79 @@ +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Entities; +using ProjectPatientAccounting.Repositories; +namespace ProjectPatientAccounting.Forms; + +public partial class FormDoctor : Form +{ + private readonly IDoctorRepository _doctorRepository; + private int? _doctorId; + + public int Id + { + set + { + try + { + var doctor = + _doctorRepository.ReadDoctorById(value); + if (doctor == null) + { + throw new + InvalidDataException(nameof(doctor)); + } + textBoxNameDoctor.Text = doctor.Name; + textBoxSurnameDoctor.Text = doctor.Surname; + comboBoxDoctorArea.SelectedItem = doctor.DoctorArea; + _doctorId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormDoctor(IDoctorRepository doctorRepository) + { + InitializeComponent(); + _doctorRepository = doctorRepository ?? + throw new ArgumentNullException(nameof(doctorRepository)); + comboBoxDoctorArea.DataSource = Enum.GetValues(typeof(Area)); + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxNameDoctor.Text) || + string.IsNullOrWhiteSpace(textBoxSurnameDoctor.Text) || + comboBoxDoctorArea.SelectedIndex < 1) + { + throw new Exception("Имеются незаполненные поля"); + } + if (_doctorId.HasValue) + { + _doctorRepository.UpdateDoctor(CreateDoctor(_doctorId.Value)); + } + else + { + _doctorRepository.CreateDoctor(CreateDoctor(0)); + } + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private Doctor CreateDoctor(int id) => + Doctor.CreateEntity(id, textBoxNameDoctor.Text, textBoxSurnameDoctor.Text, + (Area)comboBoxDoctorArea.SelectedItem!); + +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.resx similarity index 92% rename from ProjectPatientAccounting/ProjectPatientAccounting/Form1.resx rename to ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.resx index 1af7de1..8b2ff64 100644 --- a/ProjectPatientAccounting/ProjectPatientAccounting/Form1.resx +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctor.resx @@ -1,17 +1,17 @@  - diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.Designer.cs new file mode 100644 index 0000000..1c53e4d --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.Designer.cs @@ -0,0 +1,127 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormDoctors + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panelButtons = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewDoctors = new DataGridView(); + panelButtons.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewDoctors).BeginInit(); + SuspendLayout(); + // + // panelButtons + // + panelButtons.Controls.Add(buttonDel); + panelButtons.Controls.Add(buttonUpd); + panelButtons.Controls.Add(buttonAdd); + panelButtons.Dock = DockStyle.Right; + panelButtons.Location = new Point(751, 0); + panelButtons.Name = "panelButtons"; + panelButtons.Size = new Size(181, 453); + panelButtons.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.del; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(40, 241); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(100, 80); + buttonDel.TabIndex = 3; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources.upd; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(40, 131); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(100, 80); + buttonUpd.TabIndex = 2; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.add; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(40, 23); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 80); + buttonAdd.TabIndex = 1; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewDoctors + // + dataGridViewDoctors.AllowUserToAddRows = false; + dataGridViewDoctors.AllowUserToDeleteRows = false; + dataGridViewDoctors.AllowUserToResizeColumns = false; + dataGridViewDoctors.AllowUserToResizeRows = false; + dataGridViewDoctors.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewDoctors.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewDoctors.Dock = DockStyle.Fill; + dataGridViewDoctors.Location = new Point(0, 0); + dataGridViewDoctors.MultiSelect = false; + dataGridViewDoctors.Name = "dataGridViewDoctors"; + dataGridViewDoctors.ReadOnly = true; + dataGridViewDoctors.RowHeadersVisible = false; + dataGridViewDoctors.RowHeadersWidth = 51; + dataGridViewDoctors.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewDoctors.Size = new Size(751, 453); + dataGridViewDoctors.TabIndex = 1; + // + // FormDoctors + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(932, 453); + Controls.Add(dataGridViewDoctors); + Controls.Add(panelButtons); + Name = "FormDoctors"; + StartPosition = FormStartPosition.CenterParent; + Text = "Доктора"; + Load += FormDoctors_Load; + panelButtons.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewDoctors).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panelButtons; + private DataGridView dataGridViewDoctors; + private Button buttonAdd; + private Button buttonUpd; + private Button buttonDel; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.cs new file mode 100644 index 0000000..7796df3 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.cs @@ -0,0 +1,103 @@ +using ProjectPatientAccounting.Repositories; +using Unity; +namespace ProjectPatientAccounting.Forms; + +public partial class FormDoctors : Form +{ + private readonly IUnityContainer _container; + private readonly IDoctorRepository _doctorRepository; + + public FormDoctors(IUnityContainer container, IDoctorRepository doctorRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _doctorRepository = doctorRepository ?? + throw new ArgumentNullException(nameof(doctorRepository)); + } + + private void FormDoctors_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewDoctors.DataSource = _doctorRepository.ReadDoctors(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewDoctors.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewDoctors.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", + MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _doctorRepository.DeleteDoctor(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormDoctors.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.Designer.cs new file mode 100644 index 0000000..663c986 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.Designer.cs @@ -0,0 +1,142 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormMedicament + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelNameMedicament = new Label(); + labelDescriptionMedicament = new Label(); + labelTypeMedicament = new Label(); + textBoxNameMedicament = new TextBox(); + textBoxDescription = new TextBox(); + comboBoxTypeMedicament = new ComboBox(); + buttonSave = new Button(); + buttonCancel = new Button(); + SuspendLayout(); + // + // labelNameMedicament + // + labelNameMedicament.AutoSize = true; + labelNameMedicament.Location = new Point(23, 36); + labelNameMedicament.Name = "labelNameMedicament"; + labelNameMedicament.Size = new Size(181, 20); + labelNameMedicament.TabIndex = 0; + labelNameMedicament.Text = "Название медикамента: "; + // + // labelDescriptionMedicament + // + labelDescriptionMedicament.AutoSize = true; + labelDescriptionMedicament.Location = new Point(27, 150); + labelDescriptionMedicament.Name = "labelDescriptionMedicament"; + labelDescriptionMedicament.Size = new Size(82, 20); + labelDescriptionMedicament.TabIndex = 1; + labelDescriptionMedicament.Text = "Описание:"; + // + // labelTypeMedicament + // + labelTypeMedicament.AutoSize = true; + labelTypeMedicament.Location = new Point(12, 270); + labelTypeMedicament.Name = "labelTypeMedicament"; + labelTypeMedicament.Size = new Size(135, 20); + labelTypeMedicament.TabIndex = 2; + labelTypeMedicament.Text = "Тип медикамента:"; + // + // textBoxNameMedicament + // + textBoxNameMedicament.Location = new Point(222, 33); + textBoxNameMedicament.Name = "textBoxNameMedicament"; + textBoxNameMedicament.Size = new Size(219, 27); + textBoxNameMedicament.TabIndex = 3; + // + // textBoxDescription + // + textBoxDescription.Location = new Point(214, 102); + textBoxDescription.Multiline = true; + textBoxDescription.Name = "textBoxDescription"; + textBoxDescription.Size = new Size(227, 123); + textBoxDescription.TabIndex = 4; + // + // comboBoxTypeMedicament + // + comboBoxTypeMedicament.FormattingEnabled = true; + comboBoxTypeMedicament.Location = new Point(214, 270); + comboBoxTypeMedicament.Name = "comboBoxTypeMedicament"; + comboBoxTypeMedicament.Size = new Size(227, 28); + comboBoxTypeMedicament.TabIndex = 5; + // + // buttonSave + // + buttonSave.Location = new Point(16, 380); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(131, 46); + buttonSave.TabIndex = 6; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(293, 380); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(131, 46); + buttonCancel.TabIndex = 7; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // FormMedicament + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(468, 453); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(comboBoxTypeMedicament); + Controls.Add(textBoxDescription); + Controls.Add(textBoxNameMedicament); + Controls.Add(labelTypeMedicament); + Controls.Add(labelDescriptionMedicament); + Controls.Add(labelNameMedicament); + Name = "FormMedicament"; + StartPosition = FormStartPosition.CenterParent; + Text = "Медикамент"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelNameMedicament; + private Label labelDescriptionMedicament; + private Label labelTypeMedicament; + private TextBox textBoxNameMedicament; + private TextBox textBoxDescription; + private ComboBox comboBoxTypeMedicament; + private Button buttonSave; + private Button buttonCancel; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.cs new file mode 100644 index 0000000..bd2e3a1 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.cs @@ -0,0 +1,78 @@ +using ProjectPatientAccounting.Entities; +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Repositories; +namespace ProjectPatientAccounting.Forms; + +public partial class FormMedicament : Form +{ + private readonly IMedicamentRepository _medicamentRepository; + private int? _medicamentId; + + public int Id + { + set + { + try + { + var medicament = _medicamentRepository.ReadMedicamentById(value); + if (medicament == null) + { + throw new InvalidDataException(nameof(medicament)); + } + + textBoxNameMedicament.Text = medicament.Name; + textBoxDescription.Text = medicament.Description; + comboBoxTypeMedicament.SelectedItem = medicament.TypeMedicament; + + _medicamentId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormMedicament(IMedicamentRepository medicamentRepository) + { + InitializeComponent(); + _medicamentRepository = medicamentRepository ?? + throw new ArgumentNullException(nameof(medicamentRepository)); + comboBoxTypeMedicament.DataSource = Enum.GetValues(typeof(TypeMedicament)); + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxNameMedicament.Text) || + string.IsNullOrWhiteSpace(textBoxDescription.Text) || + comboBoxTypeMedicament.SelectedIndex < 1) + { + throw new Exception("Имеются незаполненные поля"); + } + if (_medicamentId.HasValue) + { + _medicamentRepository.UpdateMedicament(CreateMedicament(_medicamentId.Value)); + } + else + { + _medicamentRepository.CreateMedicament(CreateMedicament(0)); + } + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private Medicament CreateMedicament(int id) => Medicament.CreateEntity(id, + textBoxNameMedicament.Text, textBoxDescription.Text, + (TypeMedicament)comboBoxTypeMedicament.SelectedItem!); + +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicament.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.Designer.cs new file mode 100644 index 0000000..75914bc --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.Designer.cs @@ -0,0 +1,127 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormMedicaments + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panelButtons = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewMedicaments = new DataGridView(); + panelButtons.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewMedicaments).BeginInit(); + SuspendLayout(); + // + // panelButtons + // + panelButtons.Controls.Add(buttonDel); + panelButtons.Controls.Add(buttonUpd); + panelButtons.Controls.Add(buttonAdd); + panelButtons.Dock = DockStyle.Right; + panelButtons.Location = new Point(747, 0); + panelButtons.Name = "panelButtons"; + panelButtons.Size = new Size(185, 427); + panelButtons.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.del; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(42, 259); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(100, 80); + buttonDel.TabIndex = 4; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources.upd; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(42, 142); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(100, 80); + buttonUpd.TabIndex = 3; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.add; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(42, 31); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 80); + buttonAdd.TabIndex = 2; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewMedicaments + // + dataGridViewMedicaments.AllowUserToAddRows = false; + dataGridViewMedicaments.AllowUserToDeleteRows = false; + dataGridViewMedicaments.AllowUserToResizeColumns = false; + dataGridViewMedicaments.AllowUserToResizeRows = false; + dataGridViewMedicaments.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewMedicaments.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewMedicaments.Dock = DockStyle.Fill; + dataGridViewMedicaments.Location = new Point(0, 0); + dataGridViewMedicaments.MultiSelect = false; + dataGridViewMedicaments.Name = "dataGridViewMedicaments"; + dataGridViewMedicaments.ReadOnly = true; + dataGridViewMedicaments.RowHeadersVisible = false; + dataGridViewMedicaments.RowHeadersWidth = 51; + dataGridViewMedicaments.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewMedicaments.Size = new Size(747, 427); + dataGridViewMedicaments.TabIndex = 1; + // + // FormMedicaments + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(932, 427); + Controls.Add(dataGridViewMedicaments); + Controls.Add(panelButtons); + Name = "FormMedicaments"; + StartPosition = FormStartPosition.CenterParent; + Text = "Медикаменты"; + Load += FormMedicaments_Load; + panelButtons.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewMedicaments).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panelButtons; + private Button buttonAdd; + private Button buttonUpd; + private Button buttonDel; + private DataGridView dataGridViewMedicaments; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.cs new file mode 100644 index 0000000..afe0d19 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.cs @@ -0,0 +1,102 @@ +using Unity; +using ProjectPatientAccounting.Repositories; +namespace ProjectPatientAccounting.Forms; + +public partial class FormMedicaments : Form +{ + private readonly IUnityContainer _container; + private readonly IMedicamentRepository _medicamentRepository; + + public FormMedicaments(IUnityContainer container, IMedicamentRepository medicamentRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _medicamentRepository = medicamentRepository ?? + throw new ArgumentNullException(nameof(medicamentRepository)); + } + + private void FormMedicaments_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewMedicaments.DataSource = _medicamentRepository.ReadMedicaments(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewMedicaments.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewMedicaments.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", + MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _medicamentRepository.DeleteMedicament(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormMedicaments.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.Designer.cs new file mode 100644 index 0000000..cbed23a --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.Designer.cs @@ -0,0 +1,164 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormPatient + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelSurnamePatient = new Label(); + labelNamePatient = new Label(); + labelTelephone = new Label(); + labelNumMedCard = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + textBoxSurnamePatient = new TextBox(); + textBoxNamePatient = new TextBox(); + textBoxTelephone = new TextBox(); + numericUpDownNumMedCard = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)numericUpDownNumMedCard).BeginInit(); + SuspendLayout(); + // + // labelSurnamePatient + // + labelSurnamePatient.AutoSize = true; + labelSurnamePatient.Location = new Point(12, 76); + labelSurnamePatient.Name = "labelSurnamePatient"; + labelSurnamePatient.Size = new Size(146, 20); + labelSurnamePatient.TabIndex = 0; + labelSurnamePatient.Text = "Фамилия пациента:"; + // + // labelNamePatient + // + labelNamePatient.AutoSize = true; + labelNamePatient.Location = new Point(30, 22); + labelNamePatient.Name = "labelNamePatient"; + labelNamePatient.Size = new Size(112, 20); + labelNamePatient.TabIndex = 1; + labelNamePatient.Text = "Имя пациента:"; + // + // labelTelephone + // + labelTelephone.AutoSize = true; + labelTelephone.Location = new Point(12, 144); + labelTelephone.Name = "labelTelephone"; + labelTelephone.Size = new Size(130, 20); + labelTelephone.TabIndex = 2; + labelTelephone.Text = "Номер телефона:"; + // + // labelNumMedCard + // + labelNumMedCard.AutoSize = true; + labelNumMedCard.Location = new Point(12, 206); + labelNumMedCard.Name = "labelNumMedCard"; + labelNumMedCard.Size = new Size(135, 20); + labelNumMedCard.TabIndex = 3; + labelNumMedCard.Text = "Номер мед.карты:"; + // + // buttonSave + // + buttonSave.Location = new Point(33, 304); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(125, 40); + buttonSave.TabIndex = 5; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(227, 304); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(125, 40); + buttonCancel.TabIndex = 6; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // textBoxSurnamePatient + // + textBoxSurnamePatient.Location = new Point(182, 76); + textBoxSurnamePatient.Name = "textBoxSurnamePatient"; + textBoxSurnamePatient.Size = new Size(202, 27); + textBoxSurnamePatient.TabIndex = 7; + // + // textBoxNamePatient + // + textBoxNamePatient.Location = new Point(182, 22); + textBoxNamePatient.Name = "textBoxNamePatient"; + textBoxNamePatient.Size = new Size(202, 27); + textBoxNamePatient.TabIndex = 8; + // + // textBoxTelephone + // + textBoxTelephone.Location = new Point(182, 141); + textBoxTelephone.Name = "textBoxTelephone"; + textBoxTelephone.Size = new Size(202, 27); + textBoxTelephone.TabIndex = 9; + // + // numericUpDownNumMedCard + // + numericUpDownNumMedCard.Location = new Point(202, 204); + numericUpDownNumMedCard.Name = "numericUpDownNumMedCard"; + numericUpDownNumMedCard.Size = new Size(150, 27); + numericUpDownNumMedCard.TabIndex = 10; + // + // FormPatient + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(420, 399); + Controls.Add(numericUpDownNumMedCard); + Controls.Add(textBoxTelephone); + Controls.Add(textBoxNamePatient); + Controls.Add(textBoxSurnamePatient); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelNumMedCard); + Controls.Add(labelTelephone); + Controls.Add(labelNamePatient); + Controls.Add(labelSurnamePatient); + Name = "FormPatient"; + StartPosition = FormStartPosition.CenterParent; + Text = "Пациент"; + ((System.ComponentModel.ISupportInitialize)numericUpDownNumMedCard).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelSurnamePatient; + private Label labelNamePatient; + private Label labelTelephone; + private Label labelNumMedCard; + private Button buttonSave; + private Button buttonCancel; + private TextBox textBoxSurnamePatient; + private TextBox textBoxNamePatient; + private TextBox textBoxTelephone; + private NumericUpDown numericUpDownNumMedCard; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.cs new file mode 100644 index 0000000..612a6cc --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.cs @@ -0,0 +1,81 @@ +using ProjectPatientAccounting.Entities; +using ProjectPatientAccounting.Repositories; +namespace ProjectPatientAccounting.Forms; + +public partial class FormPatient : Form +{ + private readonly IPatientRepository _patientRepository; + private int? _patientId; + + public int Id + { + set + { + try + { + var patient = + _patientRepository.ReadPatientById(value); + if (patient == null) + { + throw new + InvalidDataException(nameof(patient)); + } + textBoxNamePatient.Text = patient.Name; + textBoxSurnamePatient.Text = patient.Surname; + textBoxTelephone.Text = patient.Telephone; + numericUpDownNumMedCard.Value = patient.NumMedCard; + + _patientId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormPatient(IPatientRepository patientRepository) + { + InitializeComponent(); + _patientRepository = patientRepository ?? + throw new ArgumentNullException(nameof(patientRepository)); + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxNamePatient.Text) || + string.IsNullOrWhiteSpace(textBoxSurnamePatient.Text) || + string.IsNullOrWhiteSpace(textBoxTelephone.Text)) + { + throw new Exception("Имеются незаполненные поля"); + } + + if (_patientId.HasValue) + { + _patientRepository.UpdatePatient(CreatePatient(_patientId.Value)); + } + else + { + _patientRepository.CreatePatient(CreatePatient(0)); + } + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private Patient CreatePatient(int id) => + Patient.CreateEntity(id, textBoxNamePatient.Text, textBoxSurnamePatient.Text, + textBoxTelephone.Text, Convert.ToInt32(numericUpDownNumMedCard.Value)); + +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatient.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.Designer.cs new file mode 100644 index 0000000..fa5362c --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.Designer.cs @@ -0,0 +1,146 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormPatientDiagnosis + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelStatusDiagnosis = new Label(); + labelNameDiagnosis = new Label(); + labelCodeDiagnosis = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + checkedListBoxStatusDiagnosis = new CheckedListBox(); + textBoxNameDiagnosis = new TextBox(); + numericUpDownCodeDiagnosis = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)numericUpDownCodeDiagnosis).BeginInit(); + SuspendLayout(); + // + // labelStatusDiagnosis + // + labelStatusDiagnosis.AutoSize = true; + labelStatusDiagnosis.Location = new Point(12, 31); + labelStatusDiagnosis.Name = "labelStatusDiagnosis"; + labelStatusDiagnosis.Size = new Size(123, 20); + labelStatusDiagnosis.TabIndex = 0; + labelStatusDiagnosis.Text = "Статус диагноза:"; + // + // labelNameDiagnosis + // + labelNameDiagnosis.AutoSize = true; + labelNameDiagnosis.Location = new Point(12, 229); + labelNameDiagnosis.Name = "labelNameDiagnosis"; + labelNameDiagnosis.Size = new Size(148, 20); + labelNameDiagnosis.TabIndex = 1; + labelNameDiagnosis.Text = "Название диагноза:"; + // + // labelCodeDiagnosis + // + labelCodeDiagnosis.AutoSize = true; + labelCodeDiagnosis.Location = new Point(12, 300); + labelCodeDiagnosis.Name = "labelCodeDiagnosis"; + labelCodeDiagnosis.Size = new Size(106, 20); + labelCodeDiagnosis.TabIndex = 2; + labelCodeDiagnosis.Text = "Код диагноза:"; + // + // buttonSave + // + buttonSave.Location = new Point(40, 358); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(124, 42); + buttonSave.TabIndex = 3; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(255, 358); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(124, 42); + buttonCancel.TabIndex = 4; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // checkedListBoxStatusDiagnosis + // + checkedListBoxStatusDiagnosis.FormattingEnabled = true; + checkedListBoxStatusDiagnosis.Location = new Point(178, 31); + checkedListBoxStatusDiagnosis.Name = "checkedListBoxStatusDiagnosis"; + checkedListBoxStatusDiagnosis.Size = new Size(265, 158); + checkedListBoxStatusDiagnosis.TabIndex = 5; + // + // textBoxNameDiagnosis + // + textBoxNameDiagnosis.Location = new Point(178, 226); + textBoxNameDiagnosis.Name = "textBoxNameDiagnosis"; + textBoxNameDiagnosis.Size = new Size(265, 27); + textBoxNameDiagnosis.TabIndex = 6; + // + // numericUpDownCodeDiagnosis + // + numericUpDownCodeDiagnosis.Location = new Point(223, 298); + numericUpDownCodeDiagnosis.Maximum = new decimal(new int[] { 1500, 0, 0, 0 }); + numericUpDownCodeDiagnosis.Minimum = new decimal(new int[] { 1000, 0, 0, 0 }); + numericUpDownCodeDiagnosis.Name = "numericUpDownCodeDiagnosis"; + numericUpDownCodeDiagnosis.Size = new Size(166, 27); + numericUpDownCodeDiagnosis.TabIndex = 7; + numericUpDownCodeDiagnosis.Value = new decimal(new int[] { 1000, 0, 0, 0 }); + // + // FormPatientDiagnosis + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(472, 453); + Controls.Add(numericUpDownCodeDiagnosis); + Controls.Add(textBoxNameDiagnosis); + Controls.Add(checkedListBoxStatusDiagnosis); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelCodeDiagnosis); + Controls.Add(labelNameDiagnosis); + Controls.Add(labelStatusDiagnosis); + Name = "FormPatientDiagnosis"; + StartPosition = FormStartPosition.CenterParent; + Text = "Диагноз"; + ((System.ComponentModel.ISupportInitialize)numericUpDownCodeDiagnosis).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelStatusDiagnosis; + private Label labelNameDiagnosis; + private Label labelCodeDiagnosis; + private Button buttonSave; + private Button buttonCancel; + private CheckedListBox checkedListBoxStatusDiagnosis; + private TextBox textBoxNameDiagnosis; + private NumericUpDown numericUpDownCodeDiagnosis; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.cs new file mode 100644 index 0000000..6019146 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.cs @@ -0,0 +1,98 @@ +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Entities; +using ProjectPatientAccounting.Repositories; +namespace ProjectPatientAccounting.Forms; + +public partial class FormPatientDiagnosis : Form +{ + private readonly IPatientDiagnosisRepository _patientDiagnosisRepository; + private int? _patientDiagnosisId; + + public int Id + { + set + + { + try + { + var diagnosis = _patientDiagnosisRepository.ReadDiagnosisById(value); + if (diagnosis == null) + { + throw new + InvalidDataException(nameof(diagnosis)); + } + foreach (PatientDiagnosisStatus elem in Enum.GetValues(typeof(PatientDiagnosisStatus))) + { + if ((elem & diagnosis.PatientDiagnosisStatus) != 0) + { + checkedListBoxStatusDiagnosis.SetItemChecked(checkedListBoxStatusDiagnosis.Items.IndexOf( + elem), true); + } + } + textBoxNameDiagnosis.Text = diagnosis.Name; + numericUpDownCodeDiagnosis.Value = diagnosis.DiagnosisCode; + _patientDiagnosisId = value; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при получении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + } + } + + public FormPatientDiagnosis(IPatientDiagnosisRepository patientDiagnosisRepository) + { + InitializeComponent(); + + _patientDiagnosisRepository = patientDiagnosisRepository ?? + throw new ArgumentNullException(nameof(_patientDiagnosisRepository)); + + foreach (var elem in Enum.GetValues(typeof(PatientDiagnosisStatus))) + { + checkedListBoxStatusDiagnosis.Items.Add(elem); + } + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(textBoxNameDiagnosis.Text) || + checkedListBoxStatusDiagnosis.CheckedItems.Count == 0) + { + throw new Exception("Имеются незаполненные поля"); + } + + if (_patientDiagnosisId.HasValue) + { + _patientDiagnosisRepository.UpdateDiagnosis(CreateDiagnosis(_patientDiagnosisId.Value)); + } + else + { + _patientDiagnosisRepository.CreateDiagnosis(CreateDiagnosis(0)); + } + + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + + private PatientDiagnosis CreateDiagnosis(int id) + { + PatientDiagnosisStatus patientDiagnosisStatus = PatientDiagnosisStatus.None; + foreach (var elem in checkedListBoxStatusDiagnosis.CheckedItems) + { + patientDiagnosisStatus |= (PatientDiagnosisStatus)elem; + } + return PatientDiagnosis.CreateEntity(id, textBoxNameDiagnosis.Text, + Convert.ToInt32(numericUpDownCodeDiagnosis.Value), patientDiagnosisStatus); + } +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosis.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.Designer.cs new file mode 100644 index 0000000..3cc1991 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.Designer.cs @@ -0,0 +1,127 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormPatientDiagnosises + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panel = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewPatientDiagnosises = new DataGridView(); + panel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewPatientDiagnosises).BeginInit(); + SuspendLayout(); + // + // panel + // + panel.Controls.Add(buttonDel); + panel.Controls.Add(buttonUpd); + panel.Controls.Add(buttonAdd); + panel.Dock = DockStyle.Right; + panel.Location = new Point(749, 0); + panel.Name = "panel"; + panel.Size = new Size(183, 453); + panel.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.del; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(39, 244); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(100, 80); + buttonDel.TabIndex = 4; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources.upd; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(39, 133); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(100, 80); + buttonUpd.TabIndex = 3; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.add; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(39, 26); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 80); + buttonAdd.TabIndex = 2; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewPatientDiagnosises + // + dataGridViewPatientDiagnosises.AllowUserToAddRows = false; + dataGridViewPatientDiagnosises.AllowUserToDeleteRows = false; + dataGridViewPatientDiagnosises.AllowUserToResizeColumns = false; + dataGridViewPatientDiagnosises.AllowUserToResizeRows = false; + dataGridViewPatientDiagnosises.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewPatientDiagnosises.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewPatientDiagnosises.Dock = DockStyle.Fill; + dataGridViewPatientDiagnosises.Location = new Point(0, 0); + dataGridViewPatientDiagnosises.MultiSelect = false; + dataGridViewPatientDiagnosises.Name = "dataGridViewPatientDiagnosises"; + dataGridViewPatientDiagnosises.ReadOnly = true; + dataGridViewPatientDiagnosises.RowHeadersVisible = false; + dataGridViewPatientDiagnosises.RowHeadersWidth = 51; + dataGridViewPatientDiagnosises.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewPatientDiagnosises.Size = new Size(749, 453); + dataGridViewPatientDiagnosises.TabIndex = 1; + // + // FormPatientDiagnosises + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(932, 453); + Controls.Add(dataGridViewPatientDiagnosises); + Controls.Add(panel); + Name = "FormPatientDiagnosises"; + StartPosition = FormStartPosition.CenterParent; + Text = "Диагнозы"; + Load += FormPatientDiagnosises_Load; + panel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewPatientDiagnosises).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel; + private DataGridView dataGridViewPatientDiagnosises; + private Button buttonAdd; + private Button buttonUpd; + private Button buttonDel; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.cs new file mode 100644 index 0000000..94335ad --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.cs @@ -0,0 +1,106 @@ +using ProjectPatientAccounting.Repositories; +using Unity; +namespace ProjectPatientAccounting.Forms; + +public partial class FormPatientDiagnosises : Form +{ + private readonly IUnityContainer _container; + private readonly IPatientDiagnosisRepository _patientDiagnosisRepository; + + public FormPatientDiagnosises(IUnityContainer container, IPatientDiagnosisRepository patientDiagnosisRepository) + { + InitializeComponent(); + + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _patientDiagnosisRepository = patientDiagnosisRepository ?? + throw new ArgumentNullException(nameof(patientDiagnosisRepository)); + } + + private void FormPatientDiagnosises_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewPatientDiagnosises.DataSource = + _patientDiagnosisRepository.ReadDiagnosises(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewPatientDiagnosises.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewPatientDiagnosises.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", + MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _patientDiagnosisRepository.DeleteDiagnosis(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatientDiagnosises.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.Designer.cs new file mode 100644 index 0000000..ada02f6 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.Designer.cs @@ -0,0 +1,127 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormPatients + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panel = new Panel(); + buttonDel = new Button(); + buttonUpd = new Button(); + buttonAdd = new Button(); + dataGridViewPatients = new DataGridView(); + panel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewPatients).BeginInit(); + SuspendLayout(); + // + // panel + // + panel.Controls.Add(buttonDel); + panel.Controls.Add(buttonUpd); + panel.Controls.Add(buttonAdd); + panel.Dock = DockStyle.Right; + panel.Location = new Point(752, 0); + panel.Name = "panel"; + panel.Size = new Size(180, 453); + panel.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.del; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(39, 236); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(100, 80); + buttonDel.TabIndex = 2; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonUpd + // + buttonUpd.BackgroundImage = Properties.Resources.upd; + buttonUpd.BackgroundImageLayout = ImageLayout.Stretch; + buttonUpd.Location = new Point(39, 134); + buttonUpd.Name = "buttonUpd"; + buttonUpd.Size = new Size(100, 80); + buttonUpd.TabIndex = 1; + buttonUpd.UseVisualStyleBackColor = true; + buttonUpd.Click += ButtonUpd_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.add; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(39, 36); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 80); + buttonAdd.TabIndex = 0; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewPatients + // + dataGridViewPatients.AllowUserToAddRows = false; + dataGridViewPatients.AllowUserToDeleteRows = false; + dataGridViewPatients.AllowUserToResizeColumns = false; + dataGridViewPatients.AllowUserToResizeRows = false; + dataGridViewPatients.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewPatients.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewPatients.Dock = DockStyle.Fill; + dataGridViewPatients.Location = new Point(0, 0); + dataGridViewPatients.MultiSelect = false; + dataGridViewPatients.Name = "dataGridViewPatients"; + dataGridViewPatients.ReadOnly = true; + dataGridViewPatients.RowHeadersVisible = false; + dataGridViewPatients.RowHeadersWidth = 51; + dataGridViewPatients.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewPatients.Size = new Size(752, 453); + dataGridViewPatients.TabIndex = 1; + // + // FormPatients + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(932, 453); + Controls.Add(dataGridViewPatients); + Controls.Add(panel); + Name = "FormPatients"; + StartPosition = FormStartPosition.CenterParent; + Text = "Пациенты"; + Load += FormPatients_Load; + panel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewPatients).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel; + private Button buttonAdd; + private DataGridView dataGridViewPatients; + private Button buttonDel; + private Button buttonUpd; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.cs new file mode 100644 index 0000000..d4fd531 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.cs @@ -0,0 +1,103 @@ +using ProjectPatientAccounting.Repositories; +using Unity; +namespace ProjectPatientAccounting.Forms; + +public partial class FormPatients : Form +{ + private readonly IUnityContainer _container; + private readonly IPatientRepository _patientRepository; + + public FormPatients(IUnityContainer container, IPatientRepository patientRepository) + { + InitializeComponent(); + + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _patientRepository = patientRepository ?? + throw new ArgumentNullException(nameof(patientRepository)); + } + + private void FormPatients_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewPatients.DataSource = _patientRepository.ReadPatients(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewPatients.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewPatients.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonUpd_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + try + { + var form = _container.Resolve(); + form.Id = findId; + form.ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при изменении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", + MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _patientRepository.DeletePatient(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormPatients.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.Designer.cs new file mode 100644 index 0000000..f300f79 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.Designer.cs @@ -0,0 +1,241 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormReception + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + labelPatient = new Label(); + labelDoctor = new Label(); + labelDiagnosis = new Label(); + labelDate = new Label(); + labelNumTicket = new Label(); + buttonSave = new Button(); + buttonCancel = new Button(); + comboBoxPatient = new ComboBox(); + comboBoxDoctor = new ComboBox(); + comboBoxDiagnosis = new ComboBox(); + dateTimePickerData = new DateTimePicker(); + numericUpDownNumTicket = new NumericUpDown(); + groupBoxMedicaments = new GroupBox(); + dataGridViewMedicaments = new DataGridView(); + ColumnType = new DataGridViewComboBoxColumn(); + ColumnDosage = new DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)numericUpDownNumTicket).BeginInit(); + groupBoxMedicaments.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewMedicaments).BeginInit(); + SuspendLayout(); + // + // labelPatient + // + labelPatient.AutoSize = true; + labelPatient.Location = new Point(12, 28); + labelPatient.Name = "labelPatient"; + labelPatient.Size = new Size(72, 20); + labelPatient.TabIndex = 0; + labelPatient.Text = "Пациент:"; + // + // labelDoctor + // + labelDoctor.AutoSize = true; + labelDoctor.Location = new Point(12, 90); + labelDoctor.Name = "labelDoctor"; + labelDoctor.Size = new Size(46, 20); + labelDoctor.TabIndex = 1; + labelDoctor.Text = "Врач:"; + // + // labelDiagnosis + // + labelDiagnosis.AutoSize = true; + labelDiagnosis.Location = new Point(12, 157); + labelDiagnosis.Name = "labelDiagnosis"; + labelDiagnosis.Size = new Size(70, 20); + labelDiagnosis.TabIndex = 2; + labelDiagnosis.Text = "Диагноз:"; + // + // labelDate + // + labelDate.AutoSize = true; + labelDate.Location = new Point(12, 216); + labelDate.Name = "labelDate"; + labelDate.Size = new Size(44, 20); + labelDate.TabIndex = 3; + labelDate.Text = "Дата:"; + // + // labelNumTicket + // + labelNumTicket.AutoSize = true; + labelNumTicket.Location = new Point(12, 273); + labelNumTicket.Name = "labelNumTicket"; + labelNumTicket.Size = new Size(183, 20); + labelNumTicket.TabIndex = 4; + labelNumTicket.Text = "Номер талона на прием:"; + // + // buttonSave + // + buttonSave.Location = new Point(34, 379); + buttonSave.Name = "buttonSave"; + buttonSave.Size = new Size(122, 41); + buttonSave.TabIndex = 5; + buttonSave.Text = "Сохранить"; + buttonSave.UseVisualStyleBackColor = true; + buttonSave.Click += ButtonSave_Click; + // + // buttonCancel + // + buttonCancel.Location = new Point(237, 379); + buttonCancel.Name = "buttonCancel"; + buttonCancel.Size = new Size(122, 41); + buttonCancel.TabIndex = 6; + buttonCancel.Text = "Отмена"; + buttonCancel.UseVisualStyleBackColor = true; + buttonCancel.Click += ButtonCancel_Click; + // + // comboBoxPatient + // + comboBoxPatient.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxPatient.FormattingEnabled = true; + comboBoxPatient.Location = new Point(132, 28); + comboBoxPatient.Name = "comboBoxPatient"; + comboBoxPatient.Size = new Size(238, 28); + comboBoxPatient.TabIndex = 7; + // + // comboBoxDoctor + // + comboBoxDoctor.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxDoctor.FormattingEnabled = true; + comboBoxDoctor.Location = new Point(132, 90); + comboBoxDoctor.Name = "comboBoxDoctor"; + comboBoxDoctor.Size = new Size(238, 28); + comboBoxDoctor.TabIndex = 8; + // + // comboBoxDiagnosis + // + comboBoxDiagnosis.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxDiagnosis.FormattingEnabled = true; + comboBoxDiagnosis.Location = new Point(132, 154); + comboBoxDiagnosis.Name = "comboBoxDiagnosis"; + comboBoxDiagnosis.Size = new Size(238, 28); + comboBoxDiagnosis.TabIndex = 9; + // + // dateTimePickerData + // + dateTimePickerData.Enabled = false; + dateTimePickerData.Location = new Point(132, 211); + dateTimePickerData.Name = "dateTimePickerData"; + dateTimePickerData.Size = new Size(238, 27); + dateTimePickerData.TabIndex = 10; + // + // numericUpDownNumTicket + // + numericUpDownNumTicket.Location = new Point(221, 273); + numericUpDownNumTicket.Name = "numericUpDownNumTicket"; + numericUpDownNumTicket.Size = new Size(149, 27); + numericUpDownNumTicket.TabIndex = 11; + numericUpDownNumTicket.Value = new decimal(new int[] { 1, 0, 0, 0 }); + // + // groupBoxMedicaments + // + groupBoxMedicaments.Controls.Add(dataGridViewMedicaments); + groupBoxMedicaments.Location = new Point(425, 28); + groupBoxMedicaments.Name = "groupBoxMedicaments"; + groupBoxMedicaments.Size = new Size(307, 392); + groupBoxMedicaments.TabIndex = 12; + groupBoxMedicaments.TabStop = false; + groupBoxMedicaments.Text = "Медикаменты:"; + // + // dataGridViewMedicaments + // + dataGridViewMedicaments.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewMedicaments.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewMedicaments.Columns.AddRange(new DataGridViewColumn[] { ColumnType, ColumnDosage }); + dataGridViewMedicaments.Location = new Point(6, 26); + dataGridViewMedicaments.Name = "dataGridViewMedicaments"; + dataGridViewMedicaments.RowHeadersVisible = false; + dataGridViewMedicaments.RowHeadersWidth = 51; + dataGridViewMedicaments.Size = new Size(295, 360); + dataGridViewMedicaments.TabIndex = 0; + // + // ColumnType + // + ColumnType.HeaderText = "Медикамент"; + ColumnType.MinimumWidth = 6; + ColumnType.Name = "ColumnType"; + // + // ColumnDosage + // + ColumnDosage.HeaderText = "Дозировка"; + ColumnDosage.MinimumWidth = 6; + ColumnDosage.Name = "ColumnDosage"; + // + // FormReception + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(772, 453); + Controls.Add(groupBoxMedicaments); + Controls.Add(numericUpDownNumTicket); + Controls.Add(dateTimePickerData); + Controls.Add(comboBoxDiagnosis); + Controls.Add(comboBoxDoctor); + Controls.Add(comboBoxPatient); + Controls.Add(buttonCancel); + Controls.Add(buttonSave); + Controls.Add(labelNumTicket); + Controls.Add(labelDate); + Controls.Add(labelDiagnosis); + Controls.Add(labelDoctor); + Controls.Add(labelPatient); + Name = "FormReception"; + StartPosition = FormStartPosition.CenterParent; + Text = "Прием"; + ((System.ComponentModel.ISupportInitialize)numericUpDownNumTicket).EndInit(); + groupBoxMedicaments.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewMedicaments).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label labelPatient; + private Label labelDoctor; + private Label labelDiagnosis; + private Label labelDate; + private Label labelNumTicket; + private Button buttonSave; + private Button buttonCancel; + private ComboBox comboBoxPatient; + private ComboBox comboBoxDoctor; + private ComboBox comboBoxDiagnosis; + private DateTimePicker dateTimePickerData; + private NumericUpDown numericUpDownNumTicket; + private GroupBox groupBoxMedicaments; + private DataGridView dataGridViewMedicaments; + private DataGridViewComboBoxColumn ColumnType; + private DataGridViewTextBoxColumn ColumnDosage; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.cs new file mode 100644 index 0000000..b3eb05b --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.cs @@ -0,0 +1,82 @@ +using ProjectPatientAccounting.Entities; +using ProjectPatientAccounting.Repositories; + +namespace ProjectPatientAccounting.Forms +{ + public partial class FormReception : Form + { + private readonly IReceptionRepository _receptionRepository; + + public FormReception(IReceptionRepository receptionRepository, IPatientDiagnosisRepository patientDiagnosisRepository, + IDoctorRepository doctorRepository, IPatientRepository patientRepository, IMedicamentRepository medicamentRepository) + { + InitializeComponent(); + _receptionRepository = receptionRepository ?? + throw new ArgumentNullException(nameof(receptionRepository)); + + comboBoxPatient.DataSource = patientRepository.ReadPatients(); + comboBoxPatient.DisplayMember = "Surname"; + comboBoxPatient.ValueMember = "Id"; + + comboBoxDoctor.DataSource = doctorRepository.ReadDoctors(); + comboBoxDoctor.DisplayMember = "Surname"; + comboBoxDoctor.ValueMember = "Id"; + + comboBoxDiagnosis.DataSource = patientDiagnosisRepository.ReadDiagnosises(); + comboBoxDiagnosis.DisplayMember = "Name"; + comboBoxDiagnosis.ValueMember = "Id"; + + ColumnType.DataSource = medicamentRepository.ReadMedicaments(); + ColumnType.DisplayMember = "Name"; + ColumnType.ValueMember = "Id"; + } + + private void ButtonSave_Click(object sender, EventArgs e) + { + try + { + if (comboBoxPatient.SelectedIndex < 0 || + comboBoxDoctor.SelectedIndex < 0 || + comboBoxDiagnosis.SelectedIndex < 0 || + dataGridViewMedicaments.RowCount < 1) + + { + throw new Exception("Имеются незаполненные поля"); + } + _receptionRepository.CreateReception(Reception.CreateOperation(0, + (int)comboBoxPatient.SelectedValue!, + (int)comboBoxDoctor.SelectedValue!, + (int)comboBoxDiagnosis.SelectedValue!, + Convert.ToInt32(numericUpDownNumTicket.Value), + CreateListMedicamentReceptionsFromDataGrid())); + Close(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при сохранении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private List CreateListMedicamentReceptionsFromDataGrid() + { + var list = new List(); + foreach (DataGridViewRow row in dataGridViewMedicaments.Rows) + { + if (row.Cells["ColumnType"].Value == null || + row.Cells["ColumnDosage"].Value == null) + { + continue; + } + list.Add(MedicamentReception.CreateElement(0, + Convert.ToInt32(row.Cells["ColumnType"].Value), + Convert.ToInt32(row.Cells["ColumnDosage"].Value))); + } + return list; + + } + + private void ButtonCancel_Click(object sender, EventArgs e) => Close(); + } +} + diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.resx new file mode 100644 index 0000000..a6f1a47 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReception.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.Designer.cs new file mode 100644 index 0000000..5f6b928 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.Designer.cs @@ -0,0 +1,113 @@ +namespace ProjectPatientAccounting.Forms +{ + partial class FormReceptions + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + panel = new Panel(); + buttonDel = new Button(); + buttonAdd = new Button(); + dataGridViewReceptions = new DataGridView(); + panel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridViewReceptions).BeginInit(); + SuspendLayout(); + // + // panel + // + panel.Controls.Add(buttonDel); + panel.Controls.Add(buttonAdd); + panel.Dock = DockStyle.Right; + panel.Location = new Point(874, 0); + panel.Name = "panel"; + panel.Size = new Size(180, 453); + panel.TabIndex = 0; + // + // buttonDel + // + buttonDel.BackgroundImage = Properties.Resources.del; + buttonDel.BackgroundImageLayout = ImageLayout.Stretch; + buttonDel.Location = new Point(35, 275); + buttonDel.Name = "buttonDel"; + buttonDel.Size = new Size(100, 80); + buttonDel.TabIndex = 4; + buttonDel.UseVisualStyleBackColor = true; + buttonDel.Click += ButtonDel_Click; + // + // buttonAdd + // + buttonAdd.BackgroundImage = Properties.Resources.add; + buttonAdd.BackgroundImageLayout = ImageLayout.Stretch; + buttonAdd.Location = new Point(35, 43); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Size = new Size(100, 80); + buttonAdd.TabIndex = 3; + buttonAdd.UseVisualStyleBackColor = true; + buttonAdd.Click += ButtonAdd_Click; + // + // dataGridViewReceptions + // + dataGridViewReceptions.AllowUserToAddRows = false; + dataGridViewReceptions.AllowUserToDeleteRows = false; + dataGridViewReceptions.AllowUserToResizeColumns = false; + dataGridViewReceptions.AllowUserToResizeRows = false; + dataGridViewReceptions.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dataGridViewReceptions.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewReceptions.Dock = DockStyle.Fill; + dataGridViewReceptions.Location = new Point(0, 0); + dataGridViewReceptions.MultiSelect = false; + dataGridViewReceptions.Name = "dataGridViewReceptions"; + dataGridViewReceptions.ReadOnly = true; + dataGridViewReceptions.RowHeadersVisible = false; + dataGridViewReceptions.RowHeadersWidth = 51; + dataGridViewReceptions.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dataGridViewReceptions.Size = new Size(874, 453); + dataGridViewReceptions.TabIndex = 1; + // + // FormReceptions + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(1054, 453); + Controls.Add(dataGridViewReceptions); + Controls.Add(panel); + Name = "FormReceptions"; + StartPosition = FormStartPosition.CenterParent; + Text = "Приемы"; + Load += FormReceptions_Load; + panel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dataGridViewReceptions).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel panel; + private DataGridView dataGridViewReceptions; + private Button buttonAdd; + private Button buttonDel; + } +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.cs new file mode 100644 index 0000000..0f96329 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.cs @@ -0,0 +1,84 @@ +using ProjectPatientAccounting.Repositories; +using Unity; +namespace ProjectPatientAccounting.Forms; + +public partial class FormReceptions : Form +{ + private readonly IUnityContainer _container; + private readonly IReceptionRepository _receptionRepository; + + public FormReceptions(IUnityContainer container, IReceptionRepository receptionRepository) + { + InitializeComponent(); + _container = container ?? + throw new ArgumentNullException(nameof(container)); + _receptionRepository = receptionRepository ?? + throw new ArgumentNullException(nameof(receptionRepository)); + } + + private void FormReceptions_Load(object sender, EventArgs e) + { + try + { + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при загрузке", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadList() => dataGridViewReceptions.DataSource = + _receptionRepository.ReadReceptions(); + + private bool TryGetIdentifierFromSelectedRow(out int id) + { + id = 0; + if (dataGridViewReceptions.SelectedRows.Count < 1) + { + MessageBox.Show("Нет выбранной записи", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + id = Convert.ToInt32(dataGridViewReceptions.SelectedRows[0].Cells["Id"].Value); + return true; + } + + private void ButtonAdd_Click(object sender, EventArgs e) + { + try + { + _container.Resolve().ShowDialog(); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при добавлении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ButtonDel_Click(object sender, EventArgs e) + { + if (!TryGetIdentifierFromSelectedRow(out var findId)) + { + return; + } + if (MessageBox.Show("Удалить запись?", "Удаление", + MessageBoxButtons.YesNo) != DialogResult.Yes) + { + return; + } + try + { + _receptionRepository.DeleteReception(findId); + LoadList(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Ошибка при удалении", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Forms/FormReceptions.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Program.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Program.cs index 896a9d3..1ff8c08 100644 --- a/ProjectPatientAccounting/ProjectPatientAccounting/Program.cs +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Program.cs @@ -1,17 +1,33 @@ -namespace ProjectPatientAccounting +using ProjectPatientAccounting.Repositories.Implementations; +using ProjectPatientAccounting.Repositories; +using Unity; + +namespace ProjectPatientAccounting; + +internal static class Program { - internal static class Program + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); - } + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(CreateContainer().Resolve()); + } + + private static IUnityContainer CreateContainer() + { + var container = new UnityContainer(); + + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + container.RegisterType(); + + return container; } } \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/ProjectPatientAccounting.csproj b/ProjectPatientAccounting/ProjectPatientAccounting/ProjectPatientAccounting.csproj index 663fdb8..accbdf0 100644 --- a/ProjectPatientAccounting/ProjectPatientAccounting/ProjectPatientAccounting.csproj +++ b/ProjectPatientAccounting/ProjectPatientAccounting/ProjectPatientAccounting.csproj @@ -8,4 +8,23 @@ enable + + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.Designer.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3dbde7f --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectPatientAccounting.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectPatientAccounting.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap add { + get { + object obj = ResourceManager.GetObject("add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap clynic { + get { + object obj = ResourceManager.GetObject("clynic", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap del { + get { + object obj = ResourceManager.GetObject("del", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap upd { + get { + object obj = ResourceManager.GetObject("upd", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.resx b/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.resx new file mode 100644 index 0000000..b3a0464 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\upd.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\add.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\clynic.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\del.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IDoctorRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IDoctorRepository.cs new file mode 100644 index 0000000..942597a --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IDoctorRepository.cs @@ -0,0 +1,15 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories; + +public interface IDoctorRepository +{ + IEnumerable ReadDoctors(); + + Doctor ReadDoctorById(int id); + + void CreateDoctor(Doctor doctor); + + void UpdateDoctor(Doctor doctor); + + void DeleteDoctor(int id); +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IMedicamentRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IMedicamentRepository.cs new file mode 100644 index 0000000..5de1c99 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IMedicamentRepository.cs @@ -0,0 +1,15 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories; + +public interface IMedicamentRepository +{ + IEnumerable ReadMedicaments(); + + Medicament ReadMedicamentById(int id); + + void CreateMedicament(Medicament medicament); + + void UpdateMedicament(Medicament medicament); + + void DeleteMedicament(int id); +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientDiagnosisRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientDiagnosisRepository.cs new file mode 100644 index 0000000..eb11951 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientDiagnosisRepository.cs @@ -0,0 +1,15 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories; + +public interface IPatientDiagnosisRepository +{ + IEnumerable ReadDiagnosises(); + + PatientDiagnosis ReadDiagnosisById(int id); + + void CreateDiagnosis(PatientDiagnosis diagnosis); + + void UpdateDiagnosis(PatientDiagnosis diagnosis); + + void DeleteDiagnosis(int id); +} \ No newline at end of file diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientRepository.cs new file mode 100644 index 0000000..7d4df62 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IPatientRepository.cs @@ -0,0 +1,15 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories; + +public interface IPatientRepository +{ + IEnumerable ReadPatients(); + + Patient ReadPatientById(int id); + + void CreatePatient(Patient patient); + + void UpdatePatient(Patient patient); + + void DeletePatient(int id); +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IReceptionRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IReceptionRepository.cs new file mode 100644 index 0000000..5d8d270 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/IReceptionRepository.cs @@ -0,0 +1,12 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories; + +public interface IReceptionRepository +{ + IEnumerable ReadReceptions(DateTime? dateFrom = null, DateTime? dateTo = null, + int? patientId = null, int? diagnosisId = null, int? doctorId = null); + + void CreateReception(Reception reception); + + void DeleteReception(int id); +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/DoctorRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/DoctorRepository.cs new file mode 100644 index 0000000..de0ef06 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/DoctorRepository.cs @@ -0,0 +1,28 @@ +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories.Implementations; + +public class DoctorRepository : IDoctorRepository +{ + public void CreateDoctor(Doctor doctor) + { + } + + public void DeleteDoctor(int id) + { + } + + public Doctor ReadDoctorById(int id) + { + return Doctor.CreateEntity(0, string.Empty, string.Empty, Area.None); + } + + public IEnumerable ReadDoctors() + { + return []; + } + + public void UpdateDoctor(Doctor doctor) + { + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/MedicamentRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/MedicamentRepository.cs new file mode 100644 index 0000000..b5eb147 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/MedicamentRepository.cs @@ -0,0 +1,28 @@ +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories.Implementations; + +public class MedicamentRepository : IMedicamentRepository +{ + public void CreateMedicament(Medicament medicament) + { + } + + public void DeleteMedicament(int id) + { + } + + public Medicament ReadMedicamentById(int id) + { + return Medicament.CreateEntity(0, string.Empty, string.Empty, TypeMedicament.None); + } + + public IEnumerable ReadMedicaments() + { + return []; + } + + public void UpdateMedicament(Medicament medicament) + { + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientDiagnosisRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientDiagnosisRepository.cs new file mode 100644 index 0000000..6df7747 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientDiagnosisRepository.cs @@ -0,0 +1,28 @@ +using ProjectPatientAccounting.Entities.Enums; +using ProjectPatientAccounting.Entities; + +namespace ProjectPatientAccounting.Repositories.Implementations; +public class PatientDiagnosisRepository : IPatientDiagnosisRepository +{ + public void CreateDiagnosis(PatientDiagnosis diagnosis) + { + } + + public void DeleteDiagnosis(int id) + { + } + + public PatientDiagnosis ReadDiagnosisById(int id) + { + return PatientDiagnosis.CreateEntity(0, string.Empty, 0, PatientDiagnosisStatus.None); + } + + public IEnumerable ReadDiagnosises() + { + return []; + } + + public void UpdateDiagnosis(PatientDiagnosis diagnosis) + { + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientRepository.cs new file mode 100644 index 0000000..78d7c4d --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/PatientRepository.cs @@ -0,0 +1,27 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories.Implementations; + +public class PatientRepository : IPatientRepository +{ + public void CreatePatient(Patient patient) + { + } + + public void DeletePatient(int id) + { + } + + public Patient ReadPatientById(int id) + { + return Patient.CreateEntity(0, string.Empty, string.Empty, string.Empty, 0); + } + + public IEnumerable ReadPatients() + { + return []; + } + + public void UpdatePatient(Patient patient) + { + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/ReceptionRepository.cs b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/ReceptionRepository.cs new file mode 100644 index 0000000..77247a7 --- /dev/null +++ b/ProjectPatientAccounting/ProjectPatientAccounting/Repositories/Implementations/ReceptionRepository.cs @@ -0,0 +1,18 @@ +using ProjectPatientAccounting.Entities; +namespace ProjectPatientAccounting.Repositories.Implementations; + +public class ReceptionRepository : IReceptionRepository +{ + public void CreateReception(Reception reception) + { + } + + public void DeleteReception(int id) + { + } + + public IEnumerable ReadReceptions(DateTime? dateFrom = null, DateTime? dateTo = null, int? patientId = null, int? diagnosisId = null, int? doctorId = null) + { + return []; + } +} diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Resources/add.jpg b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/add.jpg new file mode 100644 index 0000000..4e0d8dd Binary files /dev/null and b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/add.jpg differ diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Resources/clynic.jpg b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/clynic.jpg new file mode 100644 index 0000000..01c3462 Binary files /dev/null and b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/clynic.jpg differ diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Resources/del.jpg b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/del.jpg new file mode 100644 index 0000000..5110cb0 Binary files /dev/null and b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/del.jpg differ diff --git a/ProjectPatientAccounting/ProjectPatientAccounting/Resources/upd.jpg b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/upd.jpg new file mode 100644 index 0000000..14b3684 Binary files /dev/null and b/ProjectPatientAccounting/ProjectPatientAccounting/Resources/upd.jpg differ