add version 1.3.2.1

add PublicPrintingPage , add code to medical history
master
Amir Hossein Khademi 2023-11-28 14:18:00 +03:30
parent 303a62f009
commit d115064753
18 changed files with 1562 additions and 15 deletions

View File

@ -1 +1 @@
1.3.1.1
1.3.2.1

View File

@ -6,8 +6,8 @@
<ImplicitUsings>enable</ImplicitUsings>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
<AssemblyVersion>1.3.1.1</AssemblyVersion>
<FileVersion>1.3.1.1</FileVersion>
<AssemblyVersion>1.3.2.1</AssemblyVersion>
<FileVersion>1.3.2.1</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -1,4 +1,6 @@
namespace DocuMed.Common.Extensions
using System.Numerics;
namespace DocuMed.Common.Extensions
{
public static class StringExtensions
{
@ -121,6 +123,13 @@
return Guid.NewGuid().ToString("N").Substring(0, length);
}
public static string GetIntId(int length = 8)
{
var random = new Random(DateTime.Now.Millisecond);
var rand = random.Next(0, (int)Math.Pow(10,length));
return rand.ToString();
}
public static string ConvertTo3Digit(this string str)
{
str = string.Concat(str.Split(','));

View File

@ -11,6 +11,7 @@ public class MedicalHistoryLDto : BaseDto<MedicalHistoryLDto,MedicalHistory>
public string NationalId { get; set; } = string.Empty;
public int Age { get; set; } = 30;
public DateTime BirthDate { get; set; }
public string Code { get; set; } = string.Empty;
public SectionSDto Section { get; set; } = new();

View File

@ -13,6 +13,7 @@ public class MedicalHistorySDto : BaseDto<MedicalHistorySDto,MedicalHistory>
public Guid MedicalHistoryTemplateId { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
public string Code { get; set; } = string.Empty;
public string PresentIllnessDetail { get; set; } = string.Empty;
public string PastDiseasesHistoryDetail { get; set; } = string.Empty;

View File

@ -1,4 +1,6 @@
namespace DocuMed.Domain.Entities.MedicalHistory;
using DocuMed.Common.Extensions;
namespace DocuMed.Domain.Entities.MedicalHistory;
public partial class MedicalHistoryAnswer
@ -48,6 +50,7 @@ public partial class MedicalHistory
Guid applicationUserId,
Guid medicalHistoryTemplateId)
{
var code = StringExtensions.GetIntId(6);
return new MedicalHistory(presentIllnessDetail,
pastDiseasesHistoryDetail,
pastSurgeryHistoryDetail,
@ -70,7 +73,8 @@ public partial class MedicalHistory
diastolicBloodPressure,
pulseRate,
sPO2,
temperature,
temperature,
code,
applicationUserId,
medicalHistoryTemplateId);
}

View File

@ -34,6 +34,7 @@ public partial class MedicalHistory : ApiEntity
double pulseRate,
double spo2,
double temperature,
string code,
Guid applicationUserId,
Guid medicalHistoryTemplateId)
{
@ -60,6 +61,7 @@ public partial class MedicalHistory : ApiEntity
PulseRate = pulseRate;
SPO2 = spo2;
Temperature = temperature;
Code = code;
ApplicationUserId = applicationUserId;
MedicalHistoryTemplateId = medicalHistoryTemplateId;
}
@ -85,6 +87,7 @@ public partial class MedicalHistory : ApiEntity
public string VitalSignDetail { get; internal set; } = string.Empty;
public string GeneralAppearanceDetail { get; internal set; } = string.Empty;
public string Code { get; internal set; } = string.Empty;
public double SystolicBloodPressure { get; internal set; }
public double DiastolicBloodPressure { get; internal set; }

View File

@ -40,6 +40,7 @@ namespace DocuMed.Domain.Mappers
SystemReviewDetail = p1.SystemReviewDetail,
VitalSignDetail = p1.VitalSignDetail,
GeneralAppearanceDetail = p1.GeneralAppearanceDetail,
Code = p1.Code,
SystolicBloodPressure = p1.SystolicBloodPressure,
DiastolicBloodPressure = p1.DiastolicBloodPressure,
PulseRate = p1.PulseRate,
@ -79,6 +80,7 @@ namespace DocuMed.Domain.Mappers
result.SystemReviewDetail = p2.SystemReviewDetail;
result.VitalSignDetail = p2.VitalSignDetail;
result.GeneralAppearanceDetail = p2.GeneralAppearanceDetail;
result.Code = p2.Code;
result.SystolicBloodPressure = p2.SystolicBloodPressure;
result.DiastolicBloodPressure = p2.DiastolicBloodPressure;
result.PulseRate = p2.PulseRate;
@ -117,6 +119,7 @@ namespace DocuMed.Domain.Mappers
SystemReviewDetail = p8.SystemReviewDetail,
VitalSignDetail = p8.VitalSignDetail,
GeneralAppearanceDetail = p8.GeneralAppearanceDetail,
Code = p8.Code,
SystolicBloodPressure = p8.SystolicBloodPressure,
DiastolicBloodPressure = p8.DiastolicBloodPressure,
PulseRate = p8.PulseRate,
@ -142,6 +145,7 @@ namespace DocuMed.Domain.Mappers
MedicalHistoryTemplateId = p9.MedicalHistoryTemplateId,
Age = p9.Age,
BirthDate = p9.BirthDate,
Code = p9.Code,
PresentIllnessDetail = p9.PresentIllnessDetail,
PastDiseasesHistoryDetail = p9.PastDiseasesHistoryDetail,
PastSurgeryHistoryDetail = p9.PastSurgeryHistoryDetail,
@ -180,6 +184,7 @@ namespace DocuMed.Domain.Mappers
result.MedicalHistoryTemplateId = p10.MedicalHistoryTemplateId;
result.Age = p10.Age;
result.BirthDate = p10.BirthDate;
result.Code = p10.Code;
result.PresentIllnessDetail = p10.PresentIllnessDetail;
result.PastDiseasesHistoryDetail = p10.PastDiseasesHistoryDetail;
result.PastSurgeryHistoryDetail = p10.PastSurgeryHistoryDetail;
@ -213,6 +218,7 @@ namespace DocuMed.Domain.Mappers
MedicalHistoryTemplateId = p12.MedicalHistoryTemplateId,
Age = p12.Age,
BirthDate = p12.BirthDate,
Code = p12.Code,
PresentIllnessDetail = p12.PresentIllnessDetail,
PastDiseasesHistoryDetail = p12.PastDiseasesHistoryDetail,
PastSurgeryHistoryDetail = p12.PastSurgeryHistoryDetail,
@ -261,6 +267,7 @@ namespace DocuMed.Domain.Mappers
SystemReviewDetail = p13.SystemReviewDetail,
VitalSignDetail = p13.VitalSignDetail,
GeneralAppearanceDetail = p13.GeneralAppearanceDetail,
Code = p13.Code,
SystolicBloodPressure = p13.SystolicBloodPressure,
DiastolicBloodPressure = p13.DiastolicBloodPressure,
PulseRate = p13.PulseRate,
@ -300,6 +307,7 @@ namespace DocuMed.Domain.Mappers
result.SystemReviewDetail = p15.SystemReviewDetail;
result.VitalSignDetail = p15.VitalSignDetail;
result.GeneralAppearanceDetail = p15.GeneralAppearanceDetail;
result.Code = p15.Code;
result.SystolicBloodPressure = p15.SystolicBloodPressure;
result.DiastolicBloodPressure = p15.DiastolicBloodPressure;
result.PulseRate = p15.PulseRate;
@ -340,6 +348,7 @@ namespace DocuMed.Domain.Mappers
SystemReviewDetail = p21.SystemReviewDetail,
VitalSignDetail = p21.VitalSignDetail,
GeneralAppearanceDetail = p21.GeneralAppearanceDetail,
Code = p21.Code,
SystolicBloodPressure = p21.SystolicBloodPressure,
DiastolicBloodPressure = p21.DiastolicBloodPressure,
PulseRate = p21.PulseRate,
@ -371,6 +380,7 @@ namespace DocuMed.Domain.Mappers
NationalId = p23.NationalId,
Age = p23.Age,
BirthDate = p23.BirthDate,
Code = p23.Code,
Section = p23.Section == null ? null : new SectionSDto()
{
Name = p23.Section.Name,
@ -416,6 +426,7 @@ namespace DocuMed.Domain.Mappers
result.NationalId = p25.NationalId;
result.Age = p25.Age;
result.BirthDate = p25.BirthDate;
result.Code = p25.Code;
result.Section = funcMain7(p25.Section, result.Section);
result.PresentIllnessDetail = p25.PresentIllnessDetail;
result.PastDiseasesHistoryDetail = p25.PastDiseasesHistoryDetail;
@ -450,6 +461,7 @@ namespace DocuMed.Domain.Mappers
NationalId = p31.NationalId,
Age = p31.Age,
BirthDate = p31.BirthDate,
Code = p31.Code,
Section = p31.Section == null ? null : new SectionSDto()
{
Name = p31.Section.Name,

View File

@ -7,8 +7,8 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<AssemblyVersion>1.3.1.0</AssemblyVersion>
<FileVersion>1.3.1.0</FileVersion>
<AssemblyVersion>1.3.2.1</AssemblyVersion>
<FileVersion>1.3.2.1</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -7,8 +7,7 @@
background="transparent" speed="1" class="m-auto w-64 h-64" loop autoplay />
</div>
<p class="text-lg font-extrabold">افزودن پیش نویس شرح حال جدید</p>
<p class="text-center text-md">اطلاعات هر بخش شرح حال را میتوانید به صورت پیش نویس وارد کنید و در شرح حال نویسی خود را سریع و کارامد کنید
</p>
<p class="text-center text-md">اطلاعات هر بخش شرح حال را میتوانید به صورت پیش نویس وارد کنید و در شرح حال نویسی خود را سریع و کارامد کنید </p>
<BasePartDivider Index="1" Title="شکایت اصلی بیمار"/>
<MudTextField T="string" Value="@ChiefComplaint" ValueChanged="async cc => {ChiefComplaint = cc; await ChiefComplaintChanged.InvokeAsync(ChiefComplaint); }"
Label="شکایت اصلی بیمار ( CC )" Variant="Variant.Outlined" Margin="Margin.Normal"/>

View File

@ -4,7 +4,7 @@
<BasePageUi Description="شما میتوانید اوردرهای روزانه را وارد کنید" Title="اوردرها">
<MudStack class="pb-20 font-iranyekan my-auto">
<MudStack class="pb-20 px-5 font-iranyekan my-auto">
<div class="-mt-8 -mb-8">
<dotlottie-player src="https://lottie.host/5131235d-98fe-4d79-9149-f51d349612ef/UMuv72r1Cp.json"

View File

@ -0,0 +1,229 @@
@page "/PublicPrintingPage"
<style>
.mud-input-label {
background-color: #356859;
color: #eee !important;
}
.secondary-border > .mud-input-control-input-container > .mud-input.mud-input-outlined > input:focus ~ .mud-input-outlined-border {
border-color: rgba(253, 85, 35, 1);
color: white !important;
}
inpute {
color: white !important
}
</style>
<div class="w-screen h-screen bg-[#EEEEEE] p-0 flex flex-col-reverse md:flex-row overflow-hidden">
<div class="bg-[#356859] h-full basis-full md:basis-1/2 md:rounded-tr-none md:rounded-bl-xl md:rounded-tl-xl flex md:px-10 lg:px-20 py-8 px-4">
<MudStack class="text-white my-auto mx-auto">
<div class="hidden sm:flow-root">
<p class="text-lg text-center font-extrabold">دریافتـــ فایل شرح حال</p>
<p class="text-center text-md">اطلاعات هر بخش شرح حال را میتوانید به صورت پیش نویس وارد کنید و در شرح حال نویسی خود را سریع و کارامد کنید </p>
</div>
<p class="text-lg sm:mt-6 mb-3 font-extrabold">شماره تلفن شما</p>
<input class="bg-transparent text-[1.8rem] sm:py-3 font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
maxlength="11"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<p class="text-lg mt-6 mb-3 font-extrabold">کد 6 رقمی شرح حال</p>
<MudFocusTrap>
<div class="flex flex-row-reverse justify-between gap-2 mb-6">
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
@oninput="async(e)=>await OTPTextChangedAsync(e,0)"
@ref="_otpAInput"
maxlength="1"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
@ref="_otpBInput"
@oninput="async(e)=>await OTPTextChangedAsync(e,1)"
maxlength="1"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
@ref="_otpCInput"
@oninput="async(e)=>await OTPTextChangedAsync(e,2)"
maxlength="1"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
maxlength="1"
@ref="_otpDInput"
@oninput="async(e)=>await OTPTextChangedAsync(e,3)"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
@ref="_otpEInput"
@oninput="async(e)=>await OTPTextChangedAsync(e,4)"
maxlength="1"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
<input class="bg-transparent w-12 h-12 md:w-20 md:h-20 text-[2rem] sm:text-[2.3rem] font-extrabold text-center border rounded-md shadow-sm focus:border-teal-500 focus:ring-teal-500"
type="text"
@ref="_otpFInput"
@oninput="async(e)=>await OTPTextChangedAsync(e,5)"
maxlength="1"
pattern="[0-9]"
inputmode="numeric"
autocomplete="one-time-code" required>
</div>
</MudFocusTrap>
<BaseButtonUi Variant="Variant.Filled" Color="Color.Info" Icon="@Icons.Material.TwoTone.DocumentScanner" class="text-lg" Content="ثبت و تایید"></BaseButtonUi>
</MudStack>
</div>
<div class="h-full md:basis-1/2">
<div class="collapse h-0 sm:h-auto sm:visible">
<MudStack class="mx-auto px-8 lg:px-20 my-auto">
<div class="-mb-10">
<dotlottie-player src="https://lottie.host/e7dc67f6-baa3-44c1-b136-3b6e04685fb1/pb8uFg7FnQ.json"
background="transparent" speed="1" class="m-auto w-64 h-64 lg:w-80 lg:h-80" loop autoplay />
</div>
<p class="text-xl text-center font-extrabold">افزودن پیش نویس شرح حال جدید</p>
<p class="text-center text-md">اطلاعات هر بخش شرح حال را میتوانید به صورت پیش نویس وارد کنید و در شرح حال نویسی خود را سریع و کارامد کنید </p>
<div class="mt-3 overflow-y-hidden">
<MudTimeline TimelinePosition="TimelinePosition.Right">
<MudTimelineItem Color="Color.Info" Size="Size.Small">
<ItemOpposite>
<MudText Color="Color.Info" Typo="Typo.h5">1</MudText>
</ItemOpposite>
<ItemContent>
<MudText Color="Color.Info" Typo="Typo.h6" GutterBottom="true">وارد کردن شماره تلفن</MudText>
<MudText>شماره تلفن شخصی که شرح حال بیمار را در برنامه خود وارد کرده است را وارد کنید</MudText>
</ItemContent>
</MudTimelineItem>
<MudTimelineItem Color="Color.Success" Size="Size.Small">
<ItemOpposite>
<MudText Color="Color.Success" Typo="Typo.h5">2</MudText>
</ItemOpposite>
<ItemContent>
<MudText Color="Color.Success" Typo="Typo.h6" GutterBottom="true">وارد کردن کد شرح حال</MudText>
<MudText>کد شرح حال که در برنامه داکیومد ثبت شده است را وارد کنید</MudText>
</ItemContent>
</MudTimelineItem>
<MudTimelineItem Color="Color.Error" Size="Size.Small">
<ItemOpposite>
<MudText Color="Color.Error" Typo="Typo.h5">3</MudText>
</ItemOpposite>
<ItemContent>
<MudText Color="Color.Error" Typo="Typo.h6" GutterBottom="true">دریافت فایل شرح حال</MudText>
<MudText>دریافت فایل قابل چاپ شرح حال طبق بیمارستان و بخش بیمار ثبت شده</MudText>
</ItemContent>
</MudTimelineItem>
</MudTimeline>
</div>
</MudStack>
</div>
<div class="visible h-auto sm:h-0 sm:collapse px-5 mb-2 h-full">
<MudStack class="mt-14">
<div class="-mb-7 -mt-7">
<dotlottie-player src="https://lottie.host/e7dc67f6-baa3-44c1-b136-3b6e04685fb1/pb8uFg7FnQ.json"
background="transparent" speed="1" class="m-auto w-48 h-48" loop autoplay />
</div>
<p class="text-lg text-center font-extrabold">دریافتـــ فایل شرح حال</p>
<p class="text-center text-md">شماره تلفن فردی که شرح حال را ایجاد کرده است و کد شرح حال را وارد کنید تا فایل قابل چاپ شرح حال را دریافت کنید </p>
</MudStack>
</div>
</div>
</div>
@code {
ElementReference? _otpAInput;
ElementReference? _otpBInput;
ElementReference? _otpCInput;
ElementReference? _otpDInput;
ElementReference? _otpEInput;
ElementReference? _otpFInput;
char[] _otpKey = new[] { '0', '0', '0', '0', '0', '0' };
public async Task OTPTextChangedAsync(ChangeEventArgs e, int step)
{
switch (step)
{
case 0:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[0] = (e.Value.ToString())[0];
await _otpBInput!.Value.FocusAsync();
}
break;
case 1:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[1] = (e.Value.ToString())[0];
await _otpCInput!.Value.FocusAsync();
}
else
{
await _otpAInput!.Value.FocusAsync();
}
break;
case 2:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[2] = (e.Value.ToString())[0];
await _otpDInput!.Value.FocusAsync();
}
else
{
await _otpBInput!.Value.FocusAsync();
}
break;
case 3:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[3] = (e.Value.ToString())[0];
await _otpEInput!.Value.FocusAsync();
}
else
{
await _otpCInput!.Value.FocusAsync();
}
break;
case 4:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[4] = (e.Value.ToString())[0];
await _otpFInput!.Value.FocusAsync();
}
else
{
await _otpDInput!.Value.FocusAsync();
}
break;
case 5:
if (e.Value != null && !e.Value.ToString().IsNullOrEmpty())
{
_otpKey[5] = (e.Value.ToString())[0];
}
else
{
await _otpEInput!.Value.FocusAsync();
}
break;
}
}
}

View File

@ -6,9 +6,14 @@
<MudStack class="grow mx-3.5 my-4">
<div class="flex flex-row">
<p class="font-extrabold font-iranyekan text-base my-auto text-[#37966F]">@MedicalHistory.FullName</p>
<MudPaper Elevation="0" Class="bg-gray-200 text-center rounded-full mr-auto py-0.5 px-3 text-gray-700 text-xs">
سن : @MedicalHistory.Age ساله
</MudPaper>
<MudStack Row="true" class="mr-auto">
@* <MudPaper Elevation="0" Class="bg-gray-200 text-center rounded-full py-0.5 px-3 text-gray-700 text-xs">
سن : @MedicalHistory.Age ساله
</MudPaper> *@
<MudPaper Elevation="0" Class="bg-gray-200 text-center rounded-full pt-1 px-3 text-gray-700 text-xs">
کد : @MedicalHistory.Code
</MudPaper>
</MudStack>
</div>
<MudGrid Row="true" Class="items-center justify-stretch">
@ -20,7 +25,7 @@
</MudItem>
<MudItem xs="4">
<MudPaper Elevation="0" Class="bg-gray-200 text-center rounded-full py-0.5 px-3 text-gray-700 text-xs">
بخش @MedicalHistory.SectionName
@MedicalHistory.SectionName
</MudPaper>
</MudItem>
<MudItem xs="4">

View File

@ -495,6 +495,12 @@ video {
--tw-backdrop-saturate: ;
--tw-backdrop-sepia: ;
}
.visible {
visibility: visible;
}
.collapse {
visibility: collapse;
}
.fixed {
position: fixed;
}
@ -586,6 +592,9 @@ video {
.-mb-5 {
margin-bottom: -1.25rem;
}
.-mb-7 {
margin-bottom: -1.75rem;
}
.-mb-8 {
margin-bottom: -2rem;
}
@ -610,6 +619,9 @@ video {
.-mt-5 {
margin-top: -1.25rem;
}
.-mt-7 {
margin-top: -1.75rem;
}
.-mt-8 {
margin-top: -2rem;
}
@ -628,6 +640,9 @@ video {
.mb-4 {
margin-bottom: 1rem;
}
.mb-6 {
margin-bottom: 1.5rem;
}
.mb-8 {
margin-bottom: 2rem;
}
@ -667,6 +682,9 @@ video {
.mt-1\.5 {
margin-top: 0.375rem;
}
.mt-14 {
margin-top: 3.5rem;
}
.mt-2 {
margin-top: 0.5rem;
}
@ -682,6 +700,9 @@ video {
.mt-5 {
margin-top: 1.25rem;
}
.mt-6 {
margin-top: 1.5rem;
}
.mt-9 {
margin-top: 2.25rem;
}
@ -697,6 +718,12 @@ video {
.grid {
display: grid;
}
.hidden {
display: none;
}
.h-0 {
height: 0px;
}
.h-10 {
height: 2.5rem;
}
@ -706,6 +733,9 @@ video {
.h-2 {
height: 0.5rem;
}
.h-48 {
height: 12rem;
}
.h-5 {
height: 1.25rem;
}
@ -730,6 +760,9 @@ video {
.h-\[23rem\] {
height: 23rem;
}
.h-auto {
height: auto;
}
.h-full {
height: 100%;
}
@ -745,6 +778,9 @@ video {
.w-2 {
width: 0.5rem;
}
.w-48 {
width: 12rem;
}
.w-5 {
width: 1.25rem;
}
@ -803,6 +839,9 @@ video {
.basis-auto {
flex-basis: auto;
}
.basis-full {
flex-basis: 100%;
}
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
@ -818,15 +857,24 @@ video {
.flex-row {
flex-direction: row;
}
.flex-row-reverse {
flex-direction: row-reverse;
}
.flex-col {
flex-direction: column;
}
.flex-col-reverse {
flex-direction: column-reverse;
}
.items-center {
align-items: center;
}
.justify-center {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.justify-stretch {
justify-content: stretch;
}
@ -845,6 +893,9 @@ video {
.overflow-x-hidden {
overflow-x: hidden;
}
.overflow-y-hidden {
overflow-y: hidden;
}
.overflow-y-scroll {
overflow-y: scroll;
}
@ -927,6 +978,9 @@ video {
.bg-opacity-20 {
--tw-bg-opacity: 0.2;
}
.p-0 {
padding: 0px;
}
.p-1 {
padding: 0.25rem;
}
@ -947,10 +1001,22 @@ video {
padding-left: 0.75rem;
padding-right: 0.75rem;
}
.px-4 {
padding-left: 1rem;
padding-right: 1rem;
}
.px-5 {
padding-left: 1.25rem;
padding-right: 1.25rem;
}
.px-6 {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
.px-8 {
padding-left: 2rem;
padding-right: 2rem;
}
.py-0 {
padding-top: 0px;
padding-bottom: 0px;
@ -975,6 +1041,10 @@ video {
padding-top: 1rem;
padding-bottom: 1rem;
}
.py-8 {
padding-top: 2rem;
padding-bottom: 2rem;
}
.pb-10 {
padding-bottom: 2.5rem;
}
@ -1005,6 +1075,12 @@ video {
.text-4xl {
font-size: 2.25rem;
}
.text-\[1\.8rem\] {
font-size: 1.8rem;
}
.text-\[2rem\] {
font-size: 2rem;
}
.text-base {
font-size: 1rem;
}
@ -1078,6 +1154,11 @@ video {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.shadow-sm {
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.drop-shadow-md {
--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@ -1266,12 +1347,46 @@ a, .btn-link {
content: var(--blazor-load-percentage-text, "Loading");
}
.focus\:border-teal-500:focus {
--tw-border-opacity: 1;
border-color: rgb(20 184 166 / var(--tw-border-opacity));
}
.focus\:ring-teal-500:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity));
}
.group:hover .group-hover\:text-\[--color-primary\] {
color: var(--color-primary);
}
@media (min-width: 640px) {
.sm\:visible {
visibility: visible;
}
.sm\:collapse {
visibility: collapse;
}
.sm\:mt-6 {
margin-top: 1.5rem;
}
.sm\:flow-root {
display: flow-root;
}
.sm\:h-0 {
height: 0px;
}
.sm\:h-auto {
height: auto;
}
.sm\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@ -1279,10 +1394,31 @@ a, .btn-link {
.sm\:grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sm\:py-3 {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.sm\:text-\[2\.3rem\] {
font-size: 2.3rem;
}
}
@media (min-width: 768px) {
.md\:h-20 {
height: 5rem;
}
.md\:w-20 {
width: 5rem;
}
.md\:basis-1\/2 {
flex-basis: 50%;
}
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@ -1290,6 +1426,43 @@ a, .btn-link {
.md\:grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.md\:flex-row {
flex-direction: row;
}
.md\:rounded-bl-xl {
border-bottom-left-radius: 0.75rem;
}
.md\:rounded-tl-xl {
border-top-left-radius: 0.75rem;
}
.md\:rounded-tr-none {
border-top-right-radius: 0px;
}
.md\:px-10 {
padding-left: 2.5rem;
padding-right: 2.5rem;
}
}
@media (min-width: 1024px) {
.lg\:h-80 {
height: 20rem;
}
.lg\:w-80 {
width: 20rem;
}
.lg\:px-20 {
padding-left: 5rem;
padding-right: 5rem;
}
}
@media (min-width: 1280px) {

View File

@ -545,6 +545,14 @@ video {
--tw-backdrop-sepia: ;
}
.visible {
visibility: visible;
}
.collapse {
visibility: collapse;
}
.fixed {
position: fixed;
}
@ -661,6 +669,10 @@ video {
margin-bottom: -1.25rem;
}
.-mb-7 {
margin-bottom: -1.75rem;
}
.-mb-8 {
margin-bottom: -2rem;
}
@ -693,6 +705,10 @@ video {
margin-top: -1.25rem;
}
.-mt-7 {
margin-top: -1.75rem;
}
.-mt-8 {
margin-top: -2rem;
}
@ -717,6 +733,10 @@ video {
margin-bottom: 1rem;
}
.mb-6 {
margin-bottom: 1.5rem;
}
.mb-8 {
margin-bottom: 2rem;
}
@ -769,6 +789,10 @@ video {
margin-top: 0.375rem;
}
.mt-14 {
margin-top: 3.5rem;
}
.mt-2 {
margin-top: 0.5rem;
}
@ -789,6 +813,10 @@ video {
margin-top: 1.25rem;
}
.mt-6 {
margin-top: 1.5rem;
}
.mt-9 {
margin-top: 2.25rem;
}
@ -809,6 +837,14 @@ video {
display: grid;
}
.hidden {
display: none;
}
.h-0 {
height: 0px;
}
.h-10 {
height: 2.5rem;
}
@ -821,6 +857,10 @@ video {
height: 0.5rem;
}
.h-48 {
height: 12rem;
}
.h-5 {
height: 1.25rem;
}
@ -853,6 +893,10 @@ video {
height: 23rem;
}
.h-auto {
height: auto;
}
.h-full {
height: 100%;
}
@ -873,6 +917,10 @@ video {
width: 0.5rem;
}
.w-48 {
width: 12rem;
}
.w-5 {
width: 1.25rem;
}
@ -950,6 +998,10 @@ video {
flex-basis: auto;
}
.basis-full {
flex-basis: 100%;
}
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
@ -970,10 +1022,18 @@ video {
flex-direction: row;
}
.flex-row-reverse {
flex-direction: row-reverse;
}
.flex-col {
flex-direction: column;
}
.flex-col-reverse {
flex-direction: column-reverse;
}
.items-center {
align-items: center;
}
@ -982,6 +1042,10 @@ video {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.justify-stretch {
justify-content: stretch;
}
@ -1006,6 +1070,10 @@ video {
overflow-x: hidden;
}
.overflow-y-hidden {
overflow-y: hidden;
}
.overflow-y-scroll {
overflow-y: scroll;
}
@ -1111,6 +1179,10 @@ video {
--tw-bg-opacity: 0.2;
}
.p-0 {
padding: 0px;
}
.p-1 {
padding: 0.25rem;
}
@ -1137,11 +1209,26 @@ video {
padding-right: 0.75rem;
}
.px-4 {
padding-left: 1rem;
padding-right: 1rem;
}
.px-5 {
padding-left: 1.25rem;
padding-right: 1.25rem;
}
.px-6 {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
.px-8 {
padding-left: 2rem;
padding-right: 2rem;
}
.py-0 {
padding-top: 0px;
padding-bottom: 0px;
@ -1172,6 +1259,11 @@ video {
padding-bottom: 1rem;
}
.py-8 {
padding-top: 2rem;
padding-bottom: 2rem;
}
.pb-10 {
padding-bottom: 2.5rem;
}
@ -1196,6 +1288,14 @@ video {
padding-top: 1rem;
}
.pt-0 {
padding-top: 0px;
}
.pt-0\.5 {
padding-top: 0.125rem;
}
.text-center {
text-align: center;
}
@ -1212,6 +1312,14 @@ video {
font-size: 2.25rem;
}
.text-\[1\.8rem\] {
font-size: 1.8rem;
}
.text-\[2rem\] {
font-size: 2rem;
}
.text-base {
font-size: 1rem;
}
@ -1306,6 +1414,12 @@ video {
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.shadow-sm {
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.drop-shadow-md {
--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@ -1527,11 +1641,45 @@ a, .btn-link {
content: var(--blazor-load-percentage-text, "Loading");
}
.focus\:border-teal-500:focus {
--tw-border-opacity: 1;
border-color: rgb(20 184 166 / var(--tw-border-opacity));
}
.focus\:ring-teal-500:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity));
}
.group:hover .group-hover\:text-\[--color-primary\] {
color: var(--color-primary);
}
@media (min-width: 640px) {
.sm\:visible {
visibility: visible;
}
.sm\:collapse {
visibility: collapse;
}
.sm\:mt-6 {
margin-top: 1.5rem;
}
.sm\:flow-root {
display: flow-root;
}
.sm\:h-0 {
height: 0px;
}
.sm\:h-auto {
height: auto;
}
.sm\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@ -1539,9 +1687,30 @@ a, .btn-link {
.sm\:grid-cols-3 {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sm\:py-3 {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.sm\:text-\[2\.3rem\] {
font-size: 2.3rem;
}
}
@media (min-width: 768px) {
.md\:h-20 {
height: 5rem;
}
.md\:w-20 {
width: 5rem;
}
.md\:basis-1\/2 {
flex-basis: 50%;
}
.md\:grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@ -1549,6 +1718,42 @@ a, .btn-link {
.md\:grid-cols-4 {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.md\:flex-row {
flex-direction: row;
}
.md\:rounded-bl-xl {
border-bottom-left-radius: 0.75rem;
}
.md\:rounded-tl-xl {
border-top-left-radius: 0.75rem;
}
.md\:rounded-tr-none {
border-top-right-radius: 0px;
}
.md\:px-10 {
padding-left: 2.5rem;
padding-right: 2.5rem;
}
}
@media (min-width: 1024px) {
.lg\:h-80 {
height: 20rem;
}
.lg\:w-80 {
width: 20rem;
}
.lg\:px-20 {
padding-left: 5rem;
padding-right: 5rem;
}
}
@media (min-width: 1280px) {

View File

@ -0,0 +1,871 @@
// <auto-generated />
using System;
using DocuMed.Repository.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DocuMed.Repository.Migrations
{
[DbContext(typeof(ApplicationContext))]
[Migration("20231128085153_editMHAddCode")]
partial class editMHAddCode
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasDefaultSchema("public")
.HasAnnotation("ProductVersion", "7.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("DocuMed.Domain.Entities.City.City", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Cities", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.Section", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Detail")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("UniversityId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UniversityId");
b.ToTable("Sections", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.University", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Address")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("CityId")
.HasColumnType("uuid");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("CityId");
b.ToTable("Universities", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistory.MedicalHistory", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("AddictionHistoryDetail")
.IsRequired()
.HasColumnType("text");
b.Property<int>("Age")
.HasColumnType("integer");
b.Property<string>("AllergyDetail")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("ApplicationUserId")
.HasColumnType("uuid");
b.Property<DateTime>("BirthDate")
.HasColumnType("timestamp without time zone");
b.Property<string>("ChiefComplaint")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<double>("DiastolicBloodPressure")
.HasColumnType("double precision");
b.Property<string>("DrugHistoryDetail")
.IsRequired()
.HasColumnType("text");
b.Property<string>("FamilyHistoryDetail")
.IsRequired()
.HasColumnType("text");
b.Property<string>("FatherName")
.IsRequired()
.HasColumnType("text");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("text");
b.Property<string>("GeneralAppearanceDetail")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<string>("LastName")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("MedicalHistoryTemplateId")
.HasColumnType("uuid");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<string>("NationalId")
.IsRequired()
.HasColumnType("text");
b.Property<string>("PastDiseasesHistoryDetail")
.IsRequired()
.HasColumnType("text");
b.Property<string>("PastSurgeryHistoryDetail")
.IsRequired()
.HasColumnType("text");
b.Property<string>("PresentIllnessDetail")
.IsRequired()
.HasColumnType("text");
b.Property<double>("PulseRate")
.HasColumnType("double precision");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.Property<double>("SPO2")
.HasColumnType("double precision");
b.Property<Guid>("SectionId")
.HasColumnType("uuid");
b.Property<string>("SystemReviewDetail")
.IsRequired()
.HasColumnType("text");
b.Property<double>("SystolicBloodPressure")
.HasColumnType("double precision");
b.Property<double>("Temperature")
.HasColumnType("double precision");
b.Property<string>("VitalSignDetail")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("ApplicationUserId");
b.HasIndex("SectionId");
b.ToTable("MedicalHistories", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistory.MedicalHistoryAnswer", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Answer")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<Guid>("MedicalHistoryId")
.HasColumnType("uuid");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<int>("Part")
.HasColumnType("integer");
b.Property<string>("Question")
.IsRequired()
.HasColumnType("text");
b.Property<int>("QuestionType")
.HasColumnType("integer");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("MedicalHistoryId");
b.ToTable("MedicalHistoryAnswers", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryQuestion", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("BodySystem")
.HasColumnType("integer");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<bool>("IsSign")
.HasColumnType("boolean");
b.Property<bool>("IsSymptom")
.HasColumnType("boolean");
b.Property<Guid>("MedicalHistoryTemplateId")
.HasColumnType("uuid");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<int>("Part")
.HasColumnType("integer");
b.Property<string>("Question")
.IsRequired()
.HasColumnType("text");
b.Property<int>("QuestionType")
.HasColumnType("integer");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("MedicalHistoryTemplateId");
b.ToTable("MedicalHistoryQuestions", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryTemplate", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<Guid>("ApplicationUserId")
.HasColumnType("uuid");
b.Property<string>("ChiefComplaint")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("CreatedBy")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("IsRemoved")
.HasColumnType("boolean");
b.Property<DateTime>("ModifiedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("ModifiedBy")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("RemovedAt")
.HasColumnType("timestamp without time zone");
b.Property<string>("RemovedBy")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("SectionId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ApplicationUserId");
b.HasIndex("SectionId");
b.ToTable("MedicalHistoryTemplates", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.User.ApplicationRole", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnType("text");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("text");
b.Property<string>("EnglishName")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property<string>("NormalizedName")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property<string>("PersianName")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("NormalizedName")
.IsUnique()
.HasDatabaseName("RoleNameIndex");
b.ToTable("Roles", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.User.ApplicationUser", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("AccessFailedCount")
.HasColumnType("integer");
b.Property<DateTime>("BirthDate")
.HasColumnType("timestamp without time zone");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.HasColumnType("text");
b.Property<string>("Email")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property<bool>("EmailConfirmed")
.HasColumnType("boolean");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("text");
b.Property<int>("Gender")
.HasColumnType("integer");
b.Property<string>("LastName")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("LockoutEnabled")
.HasColumnType("boolean");
b.Property<DateTimeOffset?>("LockoutEnd")
.HasColumnType("timestamp with time zone");
b.Property<string>("NationalId")
.IsRequired()
.HasColumnType("text");
b.Property<string>("NormalizedEmail")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property<string>("NormalizedUserName")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.Property<string>("PasswordHash")
.HasColumnType("text");
b.Property<string>("PhoneNumber")
.HasColumnType("text");
b.Property<bool>("PhoneNumberConfirmed")
.HasColumnType("boolean");
b.Property<Guid?>("SectionId")
.HasColumnType("uuid");
b.Property<string>("SecurityStamp")
.HasColumnType("text");
b.Property<int>("SignUpStatus")
.HasColumnType("integer");
b.Property<string>("StudentId")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("TwoFactorEnabled")
.HasColumnType("boolean");
b.Property<Guid?>("UniversityId")
.HasColumnType("uuid");
b.Property<string>("UserName")
.HasMaxLength(256)
.HasColumnType("character varying(256)");
b.HasKey("Id");
b.HasIndex("NormalizedEmail")
.HasDatabaseName("EmailIndex");
b.HasIndex("NormalizedUserName")
.IsUnique()
.HasDatabaseName("UserNameIndex");
b.HasIndex("SectionId");
b.HasIndex("UniversityId");
b.ToTable("Users", "public");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("ClaimType")
.HasColumnType("text");
b.Property<string>("ClaimValue")
.HasColumnType("text");
b.Property<Guid>("RoleId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("RoleId");
b.ToTable("RoleClaims", "public");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<string>("ClaimType")
.HasColumnType("text");
b.Property<string>("ClaimValue")
.HasColumnType("text");
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Claims", "public");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.Property<string>("LoginProvider")
.HasColumnType("text");
b.Property<string>("ProviderKey")
.HasColumnType("text");
b.Property<string>("ProviderDisplayName")
.HasColumnType("text");
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.HasKey("LoginProvider", "ProviderKey");
b.HasIndex("UserId");
b.ToTable("Logins", "public");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
{
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.Property<Guid>("RoleId")
.HasColumnType("uuid");
b.HasKey("UserId", "RoleId");
b.HasIndex("RoleId");
b.ToTable("UserRoles", "public");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.Property<string>("LoginProvider")
.HasColumnType("text");
b.Property<string>("Name")
.HasColumnType("text");
b.Property<string>("Value")
.HasColumnType("text");
b.HasKey("UserId", "LoginProvider", "Name");
b.ToTable("Tokens", "public");
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.Section", b =>
{
b.HasOne("DocuMed.Domain.Entities.City.University", "University")
.WithMany("Sections")
.HasForeignKey("UniversityId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("University");
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.University", b =>
{
b.HasOne("DocuMed.Domain.Entities.City.City", "City")
.WithMany("Universities")
.HasForeignKey("CityId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("City");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistory.MedicalHistory", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", "ApplicationUser")
.WithMany()
.HasForeignKey("ApplicationUserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DocuMed.Domain.Entities.City.Section", "Section")
.WithMany()
.HasForeignKey("SectionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("ApplicationUser");
b.Navigation("Section");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistory.MedicalHistoryAnswer", b =>
{
b.HasOne("DocuMed.Domain.Entities.MedicalHistory.MedicalHistory", "MedicalHistory")
.WithMany("Answers")
.HasForeignKey("MedicalHistoryId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("MedicalHistory");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryQuestion", b =>
{
b.HasOne("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryTemplate", "MedicalHistoryTemplate")
.WithMany("Questions")
.HasForeignKey("MedicalHistoryTemplateId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("MedicalHistoryTemplate");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryTemplate", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", "ApplicationUser")
.WithMany()
.HasForeignKey("ApplicationUserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DocuMed.Domain.Entities.City.Section", "Section")
.WithMany()
.HasForeignKey("SectionId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("ApplicationUser");
b.Navigation("Section");
});
modelBuilder.Entity("DocuMed.Domain.Entities.User.ApplicationUser", b =>
{
b.HasOne("DocuMed.Domain.Entities.City.Section", "Section")
.WithMany()
.HasForeignKey("SectionId");
b.HasOne("DocuMed.Domain.Entities.City.University", "University")
.WithMany()
.HasForeignKey("UniversityId");
b.Navigation("Section");
b.Navigation("University");
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationRole", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationRole", null)
.WithMany()
.HasForeignKey("RoleId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
{
b.HasOne("DocuMed.Domain.Entities.User.ApplicationUser", null)
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.City", b =>
{
b.Navigation("Universities");
});
modelBuilder.Entity("DocuMed.Domain.Entities.City.University", b =>
{
b.Navigation("Sections");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistory.MedicalHistory", b =>
{
b.Navigation("Answers");
});
modelBuilder.Entity("DocuMed.Domain.Entities.MedicalHistoryTemplate.MedicalHistoryTemplate", b =>
{
b.Navigation("Questions");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DocuMed.Repository.Migrations
{
/// <inheritdoc />
public partial class editMHAddCode : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Code",
schema: "public",
table: "MedicalHistories",
type: "text",
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Code",
schema: "public",
table: "MedicalHistories");
}
}
}

View File

@ -185,6 +185,10 @@ namespace DocuMed.Repository.Migrations
.IsRequired()
.HasColumnType("text");
b.Property<string>("Code")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp without time zone");