Работает редактирование пациентов, врачей, также добавил редактирование по двойному клику
This commit is contained in:
parent
2becaa2045
commit
440a888011
@ -4,7 +4,7 @@ namespace MedicalDatabaseContracts.Models
|
|||||||
{
|
{
|
||||||
public class Patient : AbstractPersonModel
|
public class Patient : AbstractPersonModel
|
||||||
{
|
{
|
||||||
public char Gender { get; set; }
|
public string Gender { get; set; } = string.Empty;
|
||||||
public DateTime Birthday { get; set; }
|
public DateTime Birthday { get; set; }
|
||||||
public int Weight { get; set; }
|
public int Weight { get; set; }
|
||||||
public int Height { get; set; }
|
public int Height { get; set; }
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
{
|
{
|
||||||
public class PatientSearchModel : AbstractPersonSearchModel
|
public class PatientSearchModel : AbstractPersonSearchModel
|
||||||
{
|
{
|
||||||
public char? Gender { get; set; }
|
public string? Gender { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ namespace MedicalDatabaseContracts.ViewModels
|
|||||||
public class PatientViewModel : AbstractPersonViewModel
|
public class PatientViewModel : AbstractPersonViewModel
|
||||||
{
|
{
|
||||||
[DisplayName("Пол")]
|
[DisplayName("Пол")]
|
||||||
public char Gender { get; set; }
|
public string Gender { get; set; }
|
||||||
[DisplayName("Дата рождения")]
|
[DisplayName("Дата рождения")]
|
||||||
public DateTime Birthday { get; set; }
|
public DateTime Birthday { get; set; }
|
||||||
[DisplayName("Вес, кг")]
|
[DisplayName("Вес, кг")]
|
||||||
|
@ -18,7 +18,7 @@ namespace MedicalPostgresqlDatabase.Storages
|
|||||||
Surname = Convert.ToString(reader.GetValue("surname")),
|
Surname = Convert.ToString(reader.GetValue("surname")),
|
||||||
Patronymic = Convert.ToString(reader.GetValue("patronymic")),
|
Patronymic = Convert.ToString(reader.GetValue("patronymic")),
|
||||||
PhoneNumber = Convert.ToString(reader.GetValue("phone_number")),
|
PhoneNumber = Convert.ToString(reader.GetValue("phone_number")),
|
||||||
Gender = Convert.ToChar(reader.GetValue("gender")),
|
Gender = Convert.ToString(reader.GetValue("gender")),
|
||||||
Birthday = Convert.ToDateTime(reader.GetValue("birthday")),
|
Birthday = Convert.ToDateTime(reader.GetValue("birthday")),
|
||||||
Weight = Convert.ToInt32(reader.GetValue("weight")),
|
Weight = Convert.ToInt32(reader.GetValue("weight")),
|
||||||
Height = Convert.ToInt32(reader.GetValue("height")),
|
Height = Convert.ToInt32(reader.GetValue("height")),
|
||||||
|
@ -19,6 +19,8 @@ namespace MedicalView
|
|||||||
public FormAbstractList(ILogger<FormAbstractList<M, V, S, F>> logger, ILogic<M, V, S> logic)
|
public FormAbstractList(ILogger<FormAbstractList<M, V, S, F>> logger, ILogic<M, V, S> logic)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
dataGridView.CellDoubleClick += EditItemToolStripMenuItem_Click;
|
||||||
|
dataGridView.CellContentDoubleClick += EditItemToolStripMenuItem_Click;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_logic = logic;
|
_logic = logic;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,8 @@ namespace MedicalView.Visits
|
|||||||
public FormMain(ILogger<FormMain> logger, ILogic<Visit, VisitViewModel, VisitSearchModel> visitLogic)
|
public FormMain(ILogger<FormMain> logger, ILogic<Visit, VisitViewModel, VisitSearchModel> visitLogic)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
dataGridView.CellDoubleClick += buttonEdit_Click;
|
||||||
|
dataGridView.CellContentDoubleClick += buttonEdit_Click;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_visitLogic = visitLogic;
|
_visitLogic = visitLogic;
|
||||||
}
|
}
|
||||||
|
68
Medical/MedicalView/Patients/FormPatient.Designer.cs
generated
68
Medical/MedicalView/Patients/FormPatient.Designer.cs
generated
@ -28,11 +28,11 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
numericUpDown2 = new NumericUpDown();
|
numericUpDownWeight = new NumericUpDown();
|
||||||
numericUpDown1 = new NumericUpDown();
|
numericUpDownHeight = new NumericUpDown();
|
||||||
radioButtonGenderFemale = new RadioButton();
|
radioButtonGenderFemale = new RadioButton();
|
||||||
radioButtonGenderMale = new RadioButton();
|
radioButtonGenderMale = new RadioButton();
|
||||||
dateTimePicker1 = new DateTimePicker();
|
datePickerBirthday = new DateTimePicker();
|
||||||
label8 = new Label();
|
label8 = new Label();
|
||||||
label7 = new Label();
|
label7 = new Label();
|
||||||
label6 = new Label();
|
label6 = new Label();
|
||||||
@ -48,24 +48,28 @@
|
|||||||
label3 = new Label();
|
label3 = new Label();
|
||||||
label2 = new Label();
|
label2 = new Label();
|
||||||
label1 = new Label();
|
label1 = new Label();
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown2).BeginInit();
|
((System.ComponentModel.ISupportInitialize)numericUpDownWeight).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)numericUpDownHeight).BeginInit();
|
||||||
menuStrip.SuspendLayout();
|
menuStrip.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// numericUpDown2
|
// numericUpDownWeight
|
||||||
//
|
//
|
||||||
numericUpDown2.Location = new Point(86, 263);
|
numericUpDownWeight.Location = new Point(86, 263);
|
||||||
numericUpDown2.Name = "numericUpDown2";
|
numericUpDownWeight.Maximum = new decimal(new int[] { 500, 0, 0, 0 });
|
||||||
numericUpDown2.Size = new Size(150, 27);
|
numericUpDownWeight.Name = "numericUpDownWeight";
|
||||||
numericUpDown2.TabIndex = 44;
|
numericUpDownWeight.Size = new Size(150, 27);
|
||||||
|
numericUpDownWeight.TabIndex = 44;
|
||||||
|
numericUpDownWeight.Value = new decimal(new int[] { 50, 0, 0, 0 });
|
||||||
//
|
//
|
||||||
// numericUpDown1
|
// numericUpDownHeight
|
||||||
//
|
//
|
||||||
numericUpDown1.Location = new Point(86, 230);
|
numericUpDownHeight.Location = new Point(86, 230);
|
||||||
numericUpDown1.Name = "numericUpDown1";
|
numericUpDownHeight.Maximum = new decimal(new int[] { 300, 0, 0, 0 });
|
||||||
numericUpDown1.Size = new Size(150, 27);
|
numericUpDownHeight.Name = "numericUpDownHeight";
|
||||||
numericUpDown1.TabIndex = 43;
|
numericUpDownHeight.Size = new Size(150, 27);
|
||||||
|
numericUpDownHeight.TabIndex = 43;
|
||||||
|
numericUpDownHeight.Value = new decimal(new int[] { 150, 0, 0, 0 });
|
||||||
//
|
//
|
||||||
// radioButtonGenderFemale
|
// radioButtonGenderFemale
|
||||||
//
|
//
|
||||||
@ -74,27 +78,30 @@
|
|||||||
radioButtonGenderFemale.Name = "radioButtonGenderFemale";
|
radioButtonGenderFemale.Name = "radioButtonGenderFemale";
|
||||||
radioButtonGenderFemale.Size = new Size(43, 24);
|
radioButtonGenderFemale.Size = new Size(43, 24);
|
||||||
radioButtonGenderFemale.TabIndex = 42;
|
radioButtonGenderFemale.TabIndex = 42;
|
||||||
radioButtonGenderFemale.TabStop = true;
|
radioButtonGenderFemale.Tag = "Ж";
|
||||||
radioButtonGenderFemale.Text = "Ж";
|
radioButtonGenderFemale.Text = "Ж";
|
||||||
radioButtonGenderFemale.UseVisualStyleBackColor = true;
|
radioButtonGenderFemale.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// radioButtonGenderMale
|
// radioButtonGenderMale
|
||||||
//
|
//
|
||||||
radioButtonGenderMale.AutoSize = true;
|
radioButtonGenderMale.AutoSize = true;
|
||||||
|
radioButtonGenderMale.Checked = true;
|
||||||
radioButtonGenderMale.Location = new Point(71, 199);
|
radioButtonGenderMale.Location = new Point(71, 199);
|
||||||
radioButtonGenderMale.Name = "radioButtonGenderMale";
|
radioButtonGenderMale.Name = "radioButtonGenderMale";
|
||||||
radioButtonGenderMale.Size = new Size(43, 24);
|
radioButtonGenderMale.Size = new Size(43, 24);
|
||||||
radioButtonGenderMale.TabIndex = 41;
|
radioButtonGenderMale.TabIndex = 41;
|
||||||
radioButtonGenderMale.TabStop = true;
|
radioButtonGenderMale.TabStop = true;
|
||||||
|
radioButtonGenderMale.Tag = "М";
|
||||||
radioButtonGenderMale.Text = "М";
|
radioButtonGenderMale.Text = "М";
|
||||||
radioButtonGenderMale.UseVisualStyleBackColor = true;
|
radioButtonGenderMale.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// dateTimePicker1
|
// datePickerBirthday
|
||||||
//
|
//
|
||||||
dateTimePicker1.Location = new Point(140, 165);
|
datePickerBirthday.Format = DateTimePickerFormat.Short;
|
||||||
dateTimePicker1.Name = "dateTimePicker1";
|
datePickerBirthday.Location = new Point(140, 165);
|
||||||
dateTimePicker1.Size = new Size(185, 27);
|
datePickerBirthday.Name = "datePickerBirthday";
|
||||||
dateTimePicker1.TabIndex = 40;
|
datePickerBirthday.Size = new Size(120, 27);
|
||||||
|
datePickerBirthday.TabIndex = 40;
|
||||||
//
|
//
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
@ -147,12 +154,14 @@
|
|||||||
ApplyToolStripMenuItem.Name = "ApplyToolStripMenuItem";
|
ApplyToolStripMenuItem.Name = "ApplyToolStripMenuItem";
|
||||||
ApplyToolStripMenuItem.Size = new Size(97, 24);
|
ApplyToolStripMenuItem.Size = new Size(97, 24);
|
||||||
ApplyToolStripMenuItem.Text = "Сохранить";
|
ApplyToolStripMenuItem.Text = "Сохранить";
|
||||||
|
ApplyToolStripMenuItem.Click += ApplyToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// CancelToolStripMenuItem
|
// CancelToolStripMenuItem
|
||||||
//
|
//
|
||||||
CancelToolStripMenuItem.Name = "CancelToolStripMenuItem";
|
CancelToolStripMenuItem.Name = "CancelToolStripMenuItem";
|
||||||
CancelToolStripMenuItem.Size = new Size(76, 24);
|
CancelToolStripMenuItem.Size = new Size(76, 24);
|
||||||
CancelToolStripMenuItem.Text = "Отмена";
|
CancelToolStripMenuItem.Text = "Отмена";
|
||||||
|
CancelToolStripMenuItem.Click += CancelToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// textBoxPhoneNumber
|
// textBoxPhoneNumber
|
||||||
//
|
//
|
||||||
@ -227,11 +236,11 @@
|
|||||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(570, 297);
|
ClientSize = new Size(570, 297);
|
||||||
Controls.Add(numericUpDown2);
|
Controls.Add(numericUpDownWeight);
|
||||||
Controls.Add(numericUpDown1);
|
Controls.Add(numericUpDownHeight);
|
||||||
Controls.Add(radioButtonGenderFemale);
|
Controls.Add(radioButtonGenderFemale);
|
||||||
Controls.Add(radioButtonGenderMale);
|
Controls.Add(radioButtonGenderMale);
|
||||||
Controls.Add(dateTimePicker1);
|
Controls.Add(datePickerBirthday);
|
||||||
Controls.Add(label8);
|
Controls.Add(label8);
|
||||||
Controls.Add(label7);
|
Controls.Add(label7);
|
||||||
Controls.Add(label6);
|
Controls.Add(label6);
|
||||||
@ -248,8 +257,9 @@
|
|||||||
MinimumSize = new Size(0, 344);
|
MinimumSize = new Size(0, 344);
|
||||||
Name = "FormPatient";
|
Name = "FormPatient";
|
||||||
Text = "Редактировать пациента";
|
Text = "Редактировать пациента";
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown2).EndInit();
|
Load += FormPatient_Load;
|
||||||
((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit();
|
((System.ComponentModel.ISupportInitialize)numericUpDownWeight).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)numericUpDownHeight).EndInit();
|
||||||
menuStrip.ResumeLayout(false);
|
menuStrip.ResumeLayout(false);
|
||||||
menuStrip.PerformLayout();
|
menuStrip.PerformLayout();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
@ -258,11 +268,11 @@
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private NumericUpDown numericUpDown2;
|
private NumericUpDown numericUpDownWeight;
|
||||||
private NumericUpDown numericUpDown1;
|
private NumericUpDown numericUpDownHeight;
|
||||||
private RadioButton radioButtonGenderFemale;
|
private RadioButton radioButtonGenderFemale;
|
||||||
private RadioButton radioButtonGenderMale;
|
private RadioButton radioButtonGenderMale;
|
||||||
private DateTimePicker dateTimePicker1;
|
private DateTimePicker datePickerBirthday;
|
||||||
private Label label8;
|
private Label label8;
|
||||||
private Label label7;
|
private Label label7;
|
||||||
private Label label6;
|
private Label label6;
|
||||||
|
@ -1,10 +1,116 @@
|
|||||||
namespace MedicalView.Patients
|
using MedicalDatabaseContracts.Models;
|
||||||
|
using MedicalDatabaseContracts.SearchModels;
|
||||||
|
using MedicalDatabaseContracts.ViewModels;
|
||||||
|
using MedicalDatabaseContracts;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using MedicalBusinessLogic.BusinessLogics;
|
||||||
|
|
||||||
|
namespace MedicalView.Patients
|
||||||
{
|
{
|
||||||
public partial class FormPatient : FormAbstractDetail
|
public partial class FormPatient : FormAbstractDetail
|
||||||
{
|
{
|
||||||
public FormPatient()
|
private readonly ILogger<FormPatient> _logger;
|
||||||
|
private readonly ILogic<Patient, PatientViewModel, PatientSearchModel> _logic;
|
||||||
|
public FormPatient(
|
||||||
|
ILogger<FormPatient> logger,
|
||||||
|
ILogic<Patient, PatientViewModel, PatientSearchModel> logic)
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplyToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(textBoxName.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните имя", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (string.IsNullOrEmpty(textBoxSurname.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните фамилию", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (string.IsNullOrEmpty(textBoxPhoneNumber.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Заполните номер телефона", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (!radioButtonGenderMale.Checked && !radioButtonGenderFemale.Checked)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Укажите пол", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_logger.LogInformation("Сохранение модели пациента");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var model = new Patient
|
||||||
|
{
|
||||||
|
Id = ModelId ?? 0,
|
||||||
|
Name = textBoxName.Text,
|
||||||
|
Surname = textBoxSurname.Text,
|
||||||
|
Patronymic = textBoxPatronymic.Text,
|
||||||
|
PhoneNumber = textBoxPhoneNumber.Text,
|
||||||
|
Birthday = datePickerBirthday.Value,
|
||||||
|
Gender = (string)(radioButtonGenderMale.Checked ? radioButtonGenderMale.Tag : radioButtonGenderFemale.Tag),
|
||||||
|
Weight = (int)numericUpDownWeight.Value,
|
||||||
|
Height = (int)numericUpDownHeight.Value
|
||||||
|
};
|
||||||
|
var operationResult = ModelId.HasValue ? _logic.Update(model) : _logic.Create(model);
|
||||||
|
if (!operationResult)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка при сохранении. Дополнительная информация в логах.");
|
||||||
|
}
|
||||||
|
MessageBox.Show("Сохранение прошло успешно", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
DialogResult = DialogResult.OK;
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка сохранения пациента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CancelToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Cancel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormPatient_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (ModelId.HasValue)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.LogInformation("Получение модели врача");
|
||||||
|
var view = _logic.ReadElement(ModelId.Value);
|
||||||
|
if (view != null)
|
||||||
|
{
|
||||||
|
textBoxName.Text = view.Name;
|
||||||
|
textBoxSurname.Text = view.Surname;
|
||||||
|
textBoxPatronymic.Text = view.Patronymic;
|
||||||
|
textBoxPhoneNumber.Text = view.PhoneNumber;
|
||||||
|
datePickerBirthday.Value = view.Birthday;
|
||||||
|
if (view.Gender == (string)radioButtonGenderMale.Tag)
|
||||||
|
{
|
||||||
|
radioButtonGenderMale.Checked = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
radioButtonGenderFemale.Checked = true;
|
||||||
|
}
|
||||||
|
numericUpDownHeight.Value = view.Height;
|
||||||
|
numericUpDownWeight.Value = view.Weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения модели пациента");
|
||||||
|
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user