Api-PWA/DocuMed.PWA/Pages/MedicalHistoryActionParts/MedicalHistoryActionStep5.r...

167 lines
6.2 KiB
Plaintext

<MudStack class="pb-20 font-iranyekan">
<BasePartDivider Index="9" Title="ظاهر کلی بیمار ( GA )" />
<div class="grid grid-cols-2 gap-1 md:grid-cols-4 sm:grid-cols-2">
@foreach (var question in GaQuestions)
{
<BaseMedicalQuestionTemplate Question="@question" OldAnswer="@question.Answer" AnswerChanged="GaAnswerChanged" />
}
</div>
<MudTextField T="string"
Value="@GaDetail" ValueChanged="async detail => { GaDetail = detail; await GaDetailChanged.InvokeAsync(detail); }"
Label="توضیحاتـــ تکمیلی" Lines="2" Variant="Variant.Outlined" />
<BasePartDivider Index="10" Title="علائم حیاتی ( VS )" />
<MudFocusTrap>
<div class="flex flex-row">
<p class="my-auto mr-5 font-extrabold text-md grow">فشــــار خون</p>
<MudNumericField Value="@SystolicBloodPressure" ValueChanged="async detail => { SystolicBloodPressure = detail; await SystolicBloodPressureChanged.InvokeAsync(detail); }"
Label="سیستولیک"
Step=".5"
Min="0.0"
Margin="Margin.Dense"
class="mx-3 my-3 basis-1/12" T="double" Variant="Variant.Outlined" />
<MudNumericField Value="@DiastolicBloodPressure" ValueChanged="async detail => { DiastolicBloodPressure = detail; await DiastolicBloodPressureChanged.InvokeAsync(detail); }"
Label="دیاستولیک"
Step=".5"
Min="0.0"
Margin="Margin.Dense"
class="my-3 basis-1/12" T="double" Variant="Variant.Outlined" />
</div>
<div class="grid grid-cols-3">
<MudNumericField Min="0"
Value="@PulseRate" ValueChanged="async detail => { PulseRate = detail; await PulseRateChanged.InvokeAsync(detail); }"
Margin="Margin.Dense" class="my-3" Label="نبض" T="double" Variant="Variant.Outlined" />
<MudNumericField Min="0"
Value="@SPO2" ValueChanged="async detail => { SPO2 = detail; await SPO2Changed.InvokeAsync(detail); }"
class="mx-2 my-3" Margin="Margin.Dense" Max="100" Label="اکسیژن" T="double" Variant="Variant.Outlined" />
<MudNumericField Value="@Temperature"
Step=".1"
ValueChanged="async detail => { Temperature = detail; await TemperatureChanged.InvokeAsync(detail); }"
Margin="Margin.Dense" class="my-3" Format="F1" Min="0.0" Label="دمای بدن" T="double" Variant="Variant.Outlined" />
</div>
</MudFocusTrap>
<BasePartDivider Index="11" Title="بررسی سیستماتیک ( ROS )" />
<div class="grid gap-1 md:grid-cols-2">
@foreach (var question in RosQuestions)
{
<BaseMedicalQuestionTemplate Question="@question" OldAnswer="@question.Answer" AnswerChanged="RosAnswerChanged" />
}
</div>
<MudTextField T="string"
Value="@RosDetail" ValueChanged="async detail => { RosDetail = detail; await RosDetailChanged.InvokeAsync(detail); }"
Label="توضیحاتـــ تکمیلی" Lines="2" Variant="Variant.Outlined" />
</MudStack>
@code {
protected override void OnParametersSet()
{
if (GaAnswers.Count > 0)
{
foreach (var question in GaQuestions)
{
var answer = GaAnswers.FirstOrDefault(a => a.Question == question.Question && a.Part == question.Part);
if (answer != null)
question.Answer = answer;
}
}
if (RosAnswers.Count > 0)
{
foreach (var question in RosQuestions)
{
var answer = RosAnswers.FirstOrDefault(a => a.Question == question.Question && a.Part == question.Part);
if (answer != null)
question.Answer = answer;
}
}
base.OnParametersSet();
}
[Parameter]
public string RosDetail { get; set; } = string.Empty;
[Parameter]
public EventCallback<string> RosDetailChanged { get; set; }
[Parameter]
public List<MedicalHistoryAnswerSDto> GaAnswers { get; set; } = new();
[Parameter]
public List<MedicalHistoryQuestionSDto> GaQuestions { get; set; } = new();
private void GaAnswerChanged(MedicalHistoryAnswerSDto dto)
{
var findAnswer = GaAnswers.FirstOrDefault(pi => pi.Question == dto.Question && pi.Part == dto.Part);
if (findAnswer != null)
findAnswer.Answer = dto.Answer;
else
GaAnswers.Add(dto);
}
[Parameter]
public List<MedicalHistoryAnswerSDto> RosAnswers { get; set; } = new();
[Parameter]
public List<MedicalHistoryQuestionSDto> RosQuestions { get; set; } = new();
[Parameter]
public string GaDetail { get; set; } = string.Empty;
[Parameter]
public EventCallback<string> GaDetailChanged { get; set; }
private void RosAnswerChanged(MedicalHistoryAnswerSDto dto)
{
var findAnswer = RosAnswers.FirstOrDefault(pi => pi.Question == dto.Question && pi.Part == dto.Part);
if (findAnswer != null)
findAnswer.Answer = dto.Answer;
else
RosAnswers.Add(dto);
}
[Parameter]
public double SystolicBloodPressure { get; set; }
[Parameter]
public EventCallback<double> SystolicBloodPressureChanged { get; set; }
[Parameter]
public double DiastolicBloodPressure { get; set; }
[Parameter]
public EventCallback<double> DiastolicBloodPressureChanged { get; set; }
[Parameter]
public double PulseRate { get; set; }
[Parameter]
public EventCallback<double> PulseRateChanged { get; set; }
[Parameter]
public double SPO2 { get; set; }
[Parameter]
public EventCallback<double> SPO2Changed { get; set; }
[Parameter]
public double Temperature { get; set; }
[Parameter]
public EventCallback<double> TemperatureChanged { get; set; }
}