Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class AccessControlList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class AllergyList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class AltableOptionList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class DestinationList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class DiagnosisList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class DischargeStatusList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class DoctorList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class DoctorTypeList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class GenericList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class InsulationList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class InternalDestinationList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class LanguageBarrierList : MasterList;
|
||||
@@ -0,0 +1,102 @@
|
||||
using adas_core.Domain.Enums;
|
||||
using MongoDB.Bson;
|
||||
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class MasterList
|
||||
{
|
||||
public ObjectId Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public string ManualObservationName { get; set; } = "UnknownMasterList";
|
||||
public List<string> AutoObservationName { get; set; } = [];
|
||||
public MasterListType ListType { get; set; }
|
||||
public bool CanAddElement { get; set; }
|
||||
public OptionListDetails? OptionListDetails { get; set; }
|
||||
public LocaleEnum? DefaultLocale { get; set; }
|
||||
public List<OptionList> Options { get; set; } = [];
|
||||
|
||||
public MasterList ReturnMasterListOptionsInLocaleIfExist(LocaleEnum? localeToReturn)
|
||||
{
|
||||
if (localeToReturn == null) return this;
|
||||
var optionsConverted = new List<OptionList>();
|
||||
|
||||
foreach (var opt in Options)
|
||||
{
|
||||
// 1. Obtener traducción del locale
|
||||
string? translatedName = null;
|
||||
|
||||
if (opt.LocaleItems != null)
|
||||
{
|
||||
var localeProp = opt.LocaleItems
|
||||
.GetType()
|
||||
.GetProperty(localeToReturn.Value.ToString());
|
||||
|
||||
var localeItem = localeProp?.GetValue(opt.LocaleItems) as LocaleItem;
|
||||
translatedName = localeItem?.Name;
|
||||
}
|
||||
|
||||
// 2. Usar traducción si existe, sino fallback
|
||||
var finalName = !string.IsNullOrWhiteSpace(translatedName)
|
||||
? translatedName
|
||||
: opt.Name;
|
||||
|
||||
// 3. Crear nueva opción convertida
|
||||
var newOpt = new OptionList
|
||||
{
|
||||
Id = opt.Id,
|
||||
Name = finalName,
|
||||
OptionType = opt.OptionType,
|
||||
Description = opt.Description,
|
||||
Color = opt.Color,
|
||||
BgColor = opt.BgColor,
|
||||
IconDefault = opt.IconDefault,
|
||||
IconCategory = opt.IconCategory,
|
||||
IconColor = opt.IconColor,
|
||||
InitDate = opt.InitDate,
|
||||
EndDate = opt.EndDate,
|
||||
IsDefault = opt.IsDefault,
|
||||
|
||||
// Mantener todos los LocaleItems originales
|
||||
LocaleItems = opt.LocaleItems
|
||||
};
|
||||
|
||||
optionsConverted.Add(newOpt);
|
||||
}
|
||||
|
||||
// 4. Clonar el master pero con las opciones nuevas
|
||||
return new MasterList
|
||||
{
|
||||
Id = Id,
|
||||
Name = Name,
|
||||
Description = Description,
|
||||
ManualObservationName = ManualObservationName,
|
||||
AutoObservationName = new List<string>(AutoObservationName),
|
||||
ListType = ListType,
|
||||
CanAddElement = CanAddElement,
|
||||
OptionListDetails = OptionListDetails,
|
||||
DefaultLocale = DefaultLocale,
|
||||
Options = optionsConverted
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class OptionListDetails
|
||||
{
|
||||
public Element? OptionType { get; set; }
|
||||
public Element? Name { get; set; }
|
||||
public Element? IconDefault { get; set; }
|
||||
public Element? IconCategory { get; set; }
|
||||
public Element? IconColor { get; set; }
|
||||
public Element? Color { get; set; }
|
||||
public Element? BgColor { get; set; }
|
||||
public Element? Description { get; set; }
|
||||
}
|
||||
|
||||
public class Element
|
||||
{
|
||||
public string Title { get; set; } = string.Empty;
|
||||
public bool IsRequired { get; set; }
|
||||
public bool IsList { get; set; } = false;
|
||||
public string ListName { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class MobilityOptionList : MasterList;
|
||||
@@ -0,0 +1,73 @@
|
||||
using MongoDB.Bson;
|
||||
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class OptionList
|
||||
{
|
||||
public ObjectId? Id { get; set; }
|
||||
public Locale? LocaleItems { get; set; }
|
||||
public string? OptionType { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? IconDefault { get; set; }
|
||||
public string? IconCategory { get; set; }
|
||||
public string? IconColor { get; set; }
|
||||
public string? Color { get; set; }
|
||||
public string? BgColor { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public DateTime? InitDate { get; set; }
|
||||
public DateTime? EndDate { get; set; }
|
||||
public bool? IsDefault { get; set; }
|
||||
|
||||
public bool AreEqual(OptionList a, OptionList b)
|
||||
{
|
||||
return a.OptionType == b.OptionType &&
|
||||
a.Name == b.Name &&
|
||||
a.IconDefault == b.IconDefault &&
|
||||
a.IconCategory == b.IconCategory &&
|
||||
a.IconColor == b.IconColor &&
|
||||
a.Color == b.Color &&
|
||||
a.BgColor == b.BgColor &&
|
||||
a.IsDefault == b.IsDefault &&
|
||||
a.Description == b.Description &&
|
||||
a.InitDate == b.InitDate &&
|
||||
a.EndDate == b.EndDate;
|
||||
}
|
||||
|
||||
public bool AreEqualExcludeDescription(OptionList a, OptionList b)
|
||||
{
|
||||
return a.OptionType == b.OptionType &&
|
||||
a.Name == b.Name &&
|
||||
a.IconDefault == b.IconDefault &&
|
||||
a.IconCategory == b.IconCategory &&
|
||||
a.IconColor == b.IconColor &&
|
||||
a.Color == b.Color &&
|
||||
a.BgColor == b.BgColor &&
|
||||
a.IsDefault == b.IsDefault &&
|
||||
a.InitDate == b.InitDate &&
|
||||
a.EndDate == b.EndDate;
|
||||
}
|
||||
}
|
||||
|
||||
public class Locale
|
||||
{
|
||||
public LocaleItem? Es { get; set; }
|
||||
public LocaleItem? Pt { get; set; }
|
||||
public LocaleItem? Ca { get; set; }
|
||||
public LocaleItem? Eng { get; set; }
|
||||
public LocaleItem? Zh { get; set; }
|
||||
}
|
||||
|
||||
public class LocaleItem
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
}
|
||||
|
||||
public enum LocaleEnum
|
||||
{
|
||||
Default,
|
||||
Es,
|
||||
Pt,
|
||||
Ca,
|
||||
Eng,
|
||||
Zh
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class OriginList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class PassiveSittingList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class PatientStatusList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class ProcedureList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class ServiceList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class TestList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class TherapeuticCeilingList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class TreatmentList : MasterList;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace adas_core.Domain.Models.Masters;
|
||||
|
||||
public class VisitOptionList : MasterList;
|
||||
Reference in New Issue
Block a user