Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop
This commit is contained in:
@@ -0,0 +1,489 @@
|
||||
using System.Text.Json;
|
||||
using adas_core.Domain.Enums;
|
||||
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class ApiSettings
|
||||
{
|
||||
public const string Api = "ApiSettings";
|
||||
public string? Customize { get; set; }
|
||||
public PointOfCareMapping? PointOfCareMapping { get; set; }
|
||||
public ConfigObservationSettings? ConfigObservation { get; set; }
|
||||
|
||||
public RetentionPolicy RetentionPolicy { get; set; }
|
||||
public int RetentionPolicyValue { get; set; }
|
||||
|
||||
//public CacheSettings? CacheSettings { get; set; }
|
||||
public bool CreatePatientWithOru { get; set; }
|
||||
public bool PushPatientWithOru { get; set; }
|
||||
public bool CreatePatientWithSiu { get; set; }
|
||||
public bool CreatePatientWithoutLocation { get; set; }
|
||||
public bool CreatePatientWithoutPatientNumber { get; set; }
|
||||
public bool CreatePatientWithLocation { get; set; }
|
||||
public bool CreatePatientWithAdtA08 { get; set; }
|
||||
public bool UpdatePatientDataWithOru { get; set; }
|
||||
public bool UpdatePatientDataWithAdtA02 { get; set; }
|
||||
public bool UpdatePatientLocationWithOru { get; set; }
|
||||
public bool UpdatePatientNumberWithOru { get; set; }
|
||||
|
||||
public bool ActivateSchedulerCheckNewsJob { get; set; }
|
||||
|
||||
public int CheckNewsJobIntervalMinutes { get; set; } = 15;
|
||||
|
||||
public string? PatientsAppointments { get; set; }
|
||||
public string? PatientsDiagnosis { get; set; }
|
||||
public string? PatientsObservations { get; set; }
|
||||
public string? PatientsAlarms { get; set; }
|
||||
public string? Patients { get; set; }
|
||||
public string? PoCSettings { get; set; }
|
||||
public string? PumpObservations { get; set; }
|
||||
public string? PumpStates { get; set; }
|
||||
public string? PumpAlarmEvent { get; set; }
|
||||
public string? PumpAlarmState { get; set; }
|
||||
|
||||
public string? PatientsRecordingAlerts { get; set; }
|
||||
public string? PatientsTreatments { get; set; }
|
||||
public string Mappings { get; set; } = "mappings";
|
||||
public string? ConfigSections { get; set; }
|
||||
public string? Units { get; set; } = "units";
|
||||
public string? ConfigObservations { get; set; }
|
||||
public string? HistoricalConfigChanges { get; set; }
|
||||
|
||||
public string Admissions { get; set; } = "admissions";
|
||||
public string Discharges { get; set; } = "discharges";
|
||||
public string Notices { get; set; } = "notices";
|
||||
public string Locations { get; set; } = "pointOfCares";
|
||||
public string Relays { get; set; } = "relays";
|
||||
public string Cameras { get; set; } = "cameras";
|
||||
public string LightBeacons { get; set; } = "light_beacons";
|
||||
public string Displays { get; set; } = "displays";
|
||||
public string DisplaysConfig { get; set; } = "config_displays";
|
||||
public string DisplayCardConfig { get; set; } = "config_displays_card";
|
||||
public string DisplayDetailConfig { get; set; } = "config_displays_detail";
|
||||
public string DisplayChartConfig { get; set; } = "config_displays_chart";
|
||||
public string Authorizations { get; set; } = "authorizations";
|
||||
|
||||
|
||||
public string AltableOptionList { get; set; } = "list_altable";
|
||||
public string AllergyList { get; set; } = "list_allergy";
|
||||
public string DestinationList { get; set; } = "list_destinations";
|
||||
public string DiagnosisList { get; set; } = "list_diagnosis";
|
||||
public string DischargeStatusList { get; set; } = "list_dischargeStatus";
|
||||
public string DoctorList { get; set; } = "list_doctor";
|
||||
public string DoctorTypeList { get; set; } = "list_doctorType";
|
||||
public string InternalDestinationList { get; set; } = "list_internalDestination";
|
||||
public string InsulationList { get; set; } = "list_insulation";
|
||||
public string LanguageBarrierList { get; set; } = "list_languageBarrier";
|
||||
public string MobilityOptionList { get; set; } = "list_mobility";
|
||||
public string OriginList { get; set; } = "list_origin";
|
||||
public string PatientStatusList { get; set; } = "list_patientStatus";
|
||||
public string ProcedureList { get; set; } = "list_procedure";
|
||||
public string TestList { get; set; } = "list_test";
|
||||
public string ServiceList { get; set; } = "list_service";
|
||||
public string TherapeuticCeilingList { get; set; } = "list_therapeuticCeiling";
|
||||
public string TreatmentList { get; set; } = "list_treatment";
|
||||
public string VisitOptionList { get; set; } = "list_visitOption";
|
||||
public string AccessControlList { get; set; } = "list_accessControl";
|
||||
public string PassiveSittingList { get; set; } = "list_passiveSitting";
|
||||
public string GenericList { get; set; } = "list_generic";
|
||||
|
||||
|
||||
public string? ConfigUnits { get; set; }
|
||||
public bool ConfigUnitsRequired { get; set; } = true;
|
||||
public string? ConfigUnitsKey { get; set; }
|
||||
|
||||
public string? ConfigPumps { get; set; }
|
||||
public bool ConfigPumpsRequired { get; set; } = true;
|
||||
public string? ConfigPumpsKey { get; set; }
|
||||
|
||||
public string? ServiceConfig { get; set; }
|
||||
public string Users { get; set; } = "users";
|
||||
public string? Medicines { get; set; }
|
||||
|
||||
|
||||
public string? Devices { get; set; }
|
||||
public string? ArchivePatientsAppointments { get; set; }
|
||||
public string? ArchivePatientsDiagnosis { get; set; }
|
||||
public string? ArchivePatientsObservations { get; set; }
|
||||
public string? ArchivePatient { get; set; }
|
||||
public string? ArchivePatientsPumpobservations { get; set; }
|
||||
public string? ArchivePatientsRecordingalerts { get; set; }
|
||||
public string? ArchivePatientsTreatments { get; set; }
|
||||
public string? ArchivePatientProcedure { get; set; }
|
||||
public string? PatientCarePlan { get; set; }
|
||||
public bool CretatePatientWithoutPatientNumber { get; set; }
|
||||
public bool ArchivePatientWithOru { get; set; }
|
||||
public string? OnArchivePatientAction { get; set; }
|
||||
public int? ArchivePatientsWithoutObservationsSinceHours { get; set; }
|
||||
public int? CheckInactivePatientSchedulerIntervalHours { get; set; }
|
||||
public int? CheckActiveTreatmentsSchedulerIntervalMinutes { get; set; }
|
||||
public int? CheckActiveAppointmentsSchedulerIntervalMinutes { get; set; }
|
||||
|
||||
public int? GetProvidersObservationsSchedulerIntervalMinutes { get; set; }
|
||||
public int? SinceDischargeTimeToArchive { get; set; }
|
||||
public int? CheckErrorQueues { get; set; }
|
||||
|
||||
public bool ActivateCheckExpiredAlerts { get; set; } = true;
|
||||
public bool ActivateSchedulerCheckExpiredObservation { get; set; }
|
||||
public bool ActivateSchedulerGetProvidersObservations { get; set; }
|
||||
public bool ActivateCheckInactivePatients { get; set; }
|
||||
public bool ActivateSchedulerCheckOpiateBoluses { get; set; }
|
||||
public bool ActivateSchedulerCheckActiveTreatmentsJob { get; set; }
|
||||
public bool ActivateSchedulerCheckActiveAppointmentsJob { get; set; }
|
||||
|
||||
public bool ActivateSchedulerCheckHydricBalance { get; set; }
|
||||
|
||||
|
||||
public int? SchedulerCheckExpiredObservationsIntervalMinutes { get; set; }
|
||||
public int? SchedulerCheckExpiredAlertsIntervalSeconds { get; set; }
|
||||
|
||||
public bool StartRecordingWithoutPatientNumber { get; set; } = true;
|
||||
|
||||
public List<string>? Shift { get; set; }
|
||||
public bool FindPatientByLocationWithoutId { get; set; }
|
||||
public bool PersistObservationCodes { get; set; }
|
||||
public string? IccaFacility { get; set; }
|
||||
public List<string>? SendingFacility { get; set; }
|
||||
public List<string> AllergiesCode { get; set; } = [];
|
||||
public List<string> DrainageCode { get; set; } = [];
|
||||
public List<string> PositionCode { get; set; } = [];
|
||||
public List<string> IsolationCode { get; set; } = [];
|
||||
public List<string>? HighFrequencyVentilation { get; set; }
|
||||
public List<string>? InvasiveVentilation { get; set; }
|
||||
public List<string>? NonInvasiveVentilation { get; set; }
|
||||
public List<string>? Ecmo { get; set; }
|
||||
public List<string>? Surgery { get; set; }
|
||||
public List<string>? Sedation { get; set; }
|
||||
public List<string>? AntibioticList { get; set; }
|
||||
public List<string>? AnxiolyticList { get; set; }
|
||||
public List<string>? AntipsicoticList { get; set; }
|
||||
public List<string>? AntidepressantsList { get; set; }
|
||||
public List<string>? NeuroMedicationList { get; set; }
|
||||
public List<string>? SerumCrystalloidList { get; set; }
|
||||
public List<string>? SerumColloidList { get; set; }
|
||||
public List<string>? AntihypertensivesList { get; set; }
|
||||
public List<string>? SurgeryText { get; set; }
|
||||
public List<string>? Transcutaneous { get; set; }
|
||||
public List<string>? RegionalBrainSaturation { get; set; }
|
||||
public List<string>? MedicationBolus { get; set; }
|
||||
public List<string>? NotesIndicatingMedication { get; set; }
|
||||
public List<string>? IntravenousLinesCode { get; set; }
|
||||
public List<string>? Electroencephalogram { get; set; }
|
||||
public List<string>? Respiratory { get; set; }
|
||||
public List<string>? Oni { get; set; }
|
||||
public List<string>? PumPressureAlarm { get; set; }
|
||||
public List<string>? VolumetricAirOcclusionAlarm { get; set; }
|
||||
public List<string>? VolumetricAirInLineAlarm { get; set; }
|
||||
|
||||
public List<string>? EndContinuousInfusionAlarm { get; set; }
|
||||
public List<string>? InotropicEndInfusionAlarm { get; set; }
|
||||
|
||||
public List<string>? InotropicMedicines { get; set; }
|
||||
public int IgnoreCalcObservationsOlderInMinutesThan { get; set; }
|
||||
public int PumpExpiresSeconds { get; set; } = 60;
|
||||
public bool SendPumpsZero { get; set; } = true;
|
||||
|
||||
public string? BalizaUrl { get; set; }
|
||||
public string? BalizaPassword { get; set; }
|
||||
public string? DiagnosisSystem { get; set; }
|
||||
public List<string> DiagnosisCode { get; set; } = [];
|
||||
|
||||
|
||||
public string[]? PathUpdateFiles { get; set; }
|
||||
public int? TimeToSendGroupedObs { get; set; }
|
||||
public string[]? PathToDisplayAssets { get; set; }
|
||||
public List<string>? DefaultIdRecord { get; set; }
|
||||
|
||||
public bool CalculateExtremeEvents { get; set; } = true;
|
||||
public double CalculateRespRateVentExpires { get; set; } = 2;
|
||||
|
||||
public bool ActivateExpireAlertsTimer { get; set; }
|
||||
public int ExpireAlertIntervalSeconds { get; set; } = 5;
|
||||
|
||||
public ArchiveNurseData ArchiveNurseData { get; set; } = new();
|
||||
public List<MappingInterventions>? MappingInterventions { get; set; }
|
||||
public Dictionary<string, int>? ComplexityMappingObservation { get; set; }
|
||||
|
||||
|
||||
public string? NoCalculateStatusWithCodingSystem { get; set; }
|
||||
}
|
||||
|
||||
public class ArchiveNurseData
|
||||
{
|
||||
public bool Active { get; set; } = false;
|
||||
public ArchiveNurseDataConfig ArchiveTest { get; set; } = new();
|
||||
public ArchiveNurseDataConfig ArchiveProcedure { get; set; } = new();
|
||||
public ArchiveNurseDataConfig ArchiveTreatment { get; set; } = new();
|
||||
public int IntervalMinutes { get; set; } = 15;
|
||||
}
|
||||
|
||||
public class ArchiveNurseDataConfig
|
||||
{
|
||||
public bool Active { get; set; } = false;
|
||||
public int EndDateAfterMinutes { get; set; } = 60;
|
||||
}
|
||||
|
||||
public class PointOfCareMapping
|
||||
{
|
||||
public string? Key { get; set; }
|
||||
public bool Required { get; set; }
|
||||
public int? Refresh { get; set; } = 600; //10min
|
||||
}
|
||||
|
||||
public class ConfigObservationSettings
|
||||
{
|
||||
public bool IgnoreUnknownObservation { get; set; }
|
||||
public bool IgnoreUnknownTreatment { get; set; }
|
||||
public int? Refresh { get; set; }
|
||||
}
|
||||
|
||||
#region CCC mapping config
|
||||
|
||||
public class InterventionsCodes
|
||||
{
|
||||
private object? _finalValue;
|
||||
private object? _initialValue;
|
||||
|
||||
public object? InitialValue
|
||||
{
|
||||
get => _initialValue switch
|
||||
{
|
||||
double d => d,
|
||||
string s => s,
|
||||
int i => (double)i,
|
||||
_ => null
|
||||
};
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case double:
|
||||
case string:
|
||||
_initialValue = value;
|
||||
break;
|
||||
case int intValue:
|
||||
_initialValue = (double)intValue;
|
||||
break;
|
||||
case JsonElement element:
|
||||
switch (element.ValueKind)
|
||||
{
|
||||
case JsonValueKind.Number:
|
||||
_initialValue = element.GetDouble();
|
||||
return;
|
||||
case JsonValueKind.String:
|
||||
_initialValue = element.GetString();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
{
|
||||
if (value != null)
|
||||
try
|
||||
{
|
||||
_initialValue = Convert.ToDouble(value);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
try
|
||||
{
|
||||
_initialValue = value.ToString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
else
|
||||
_initialValue = null;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public object? FinalValue
|
||||
{
|
||||
get => _finalValue switch
|
||||
{
|
||||
double d => d,
|
||||
string s => s,
|
||||
_ => null
|
||||
};
|
||||
set
|
||||
{
|
||||
// Apply the same JsonElement handling logic here as well
|
||||
if (value is double)
|
||||
_finalValue = value;
|
||||
else if (value is string)
|
||||
_finalValue = value;
|
||||
else if (value is JsonElement element)
|
||||
switch (element.ValueKind)
|
||||
{
|
||||
case JsonValueKind.Number:
|
||||
_finalValue = element.GetDouble();
|
||||
return;
|
||||
case JsonValueKind.String:
|
||||
_finalValue = element.GetString();
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
else if (value != null)
|
||||
try
|
||||
{
|
||||
_finalValue = Convert.ToDouble(value);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
try
|
||||
{
|
||||
_finalValue = value.ToString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
else
|
||||
_finalValue = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class InterventionsValues
|
||||
{
|
||||
private object? _finalValue;
|
||||
private object? _initialValue;
|
||||
|
||||
public object? InitialValue
|
||||
{
|
||||
get => _initialValue switch
|
||||
{
|
||||
double d => d,
|
||||
string s => s,
|
||||
_ => null
|
||||
};
|
||||
set
|
||||
{
|
||||
if (value is double)
|
||||
_initialValue = value;
|
||||
else if (value is string)
|
||||
_initialValue = value;
|
||||
else if (value is JsonElement element)
|
||||
switch (element.ValueKind)
|
||||
{
|
||||
case JsonValueKind.Number:
|
||||
_initialValue = element.GetDouble();
|
||||
return;
|
||||
case JsonValueKind.String:
|
||||
_initialValue = element.GetString();
|
||||
break;
|
||||
}
|
||||
else if (value != null)
|
||||
try
|
||||
{
|
||||
_initialValue = Convert.ToDouble(value);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
try
|
||||
{
|
||||
_initialValue = value.ToString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
else
|
||||
_initialValue = null;
|
||||
}
|
||||
}
|
||||
|
||||
public object? FinalValue
|
||||
{
|
||||
get => _finalValue switch
|
||||
{
|
||||
double d => d,
|
||||
string s => s,
|
||||
_ => null
|
||||
};
|
||||
set
|
||||
{
|
||||
if (value is double)
|
||||
_finalValue = value;
|
||||
else if (value is string)
|
||||
_finalValue = value;
|
||||
else if (value is JsonElement element)
|
||||
switch (element.ValueKind)
|
||||
{
|
||||
case JsonValueKind.Number:
|
||||
_finalValue = element.GetDouble();
|
||||
return;
|
||||
case JsonValueKind.String:
|
||||
_finalValue = element.GetString();
|
||||
break;
|
||||
}
|
||||
else if (value != null)
|
||||
try
|
||||
{
|
||||
_finalValue = Convert.ToDouble(value);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
try
|
||||
{
|
||||
_finalValue = value.ToString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"The value must be a double or a string. Received type: {value.GetType()}, Value: {value}, Error: {ex.Message}");
|
||||
}
|
||||
else
|
||||
_finalValue = null;
|
||||
}
|
||||
}
|
||||
|
||||
public int ValueContributed { get; set; } = 0;
|
||||
}
|
||||
|
||||
public class MappingInterventions
|
||||
{
|
||||
public string? Type { get; set; }
|
||||
public string? Group { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public ObservationEnum.Category? Category { get; set; }
|
||||
public List<InterventionsCodes> Codes { get; set; } = [];
|
||||
public List<InterventionsValues>? Value { get; set; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -0,0 +1,50 @@
|
||||
using adas_core.Domain.Models.MongoModels;
|
||||
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class AuthSettings
|
||||
{
|
||||
public JwtConfig? JwtConfig { get; set; }
|
||||
public UsersWhiteListConfig UsersWhiteListConfig { get; set; } = [];
|
||||
public List<string> LoginMethods { get; set; } = [];
|
||||
}
|
||||
|
||||
public class JwtConfig : JwtExtConfig
|
||||
{
|
||||
public string? Issuer { get; set; }
|
||||
public bool ValidateIssuer { get; set; } = true;
|
||||
|
||||
public int TokenValidityInMinutes { get; set; } = 10;
|
||||
public int RefreshTokenValidityInMinutes { get; set; } = 1440;
|
||||
|
||||
public Dictionary<string, JwtExtConfig>? ExternalProviders { get; set; } = null;
|
||||
}
|
||||
|
||||
public class JwtExtConfig
|
||||
{
|
||||
public string? Key { get; set; }
|
||||
public string? Audience { get; set; }
|
||||
public bool ValidateAudience { get; set; } = true;
|
||||
}
|
||||
|
||||
public class UsersWhiteListConfig : List<string>
|
||||
{
|
||||
public bool IsValid(User user)
|
||||
{
|
||||
return this.Any(username => username.ToLowerInvariant().Equals(user.UserName.ToLowerInvariant()));
|
||||
}
|
||||
}
|
||||
|
||||
public class ValidGroupsConfig : List<ValidGroup>
|
||||
{
|
||||
public bool IsValid(User? user)
|
||||
{
|
||||
return user != null;
|
||||
}
|
||||
}
|
||||
|
||||
public class ValidGroup
|
||||
{
|
||||
public string? Name { get; set; }
|
||||
public bool IsRegex { get; set; } = false;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class AutoRecordingSettings
|
||||
{
|
||||
public AutoStart? AutoStart { get; set; }
|
||||
public AutoStop? AutoStop { get; set; }
|
||||
public MustSendAlert? MustSendAlert { get; set; }
|
||||
}
|
||||
|
||||
public class AutoStart
|
||||
{
|
||||
public int BlueCode { get; set; }
|
||||
public int HemoFilterAlert { get; set; }
|
||||
public int RespirationAlert { get; set; }
|
||||
}
|
||||
|
||||
public class AutoStop
|
||||
{
|
||||
public int BlueCode { get; set; }
|
||||
public int HemoFilterAlert { get; set; }
|
||||
public int RespirationAlert { get; set; }
|
||||
}
|
||||
|
||||
public class MustSendAlert
|
||||
{
|
||||
public bool BlueCode { get; set; }
|
||||
public bool HemoFilterAlert { get; set; }
|
||||
public bool RespirationAlert { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
using adas_core.Domain.Enums;
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
|
||||
public class CacheSettings
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Activa o desactiva por completo el sistema de caché.
|
||||
/// Si es false, se usará NoCacheService para todas las entidades.
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; } = true;
|
||||
|
||||
// Cada propiedad define cómo debe cachearse la entidad correspondiente:
|
||||
// CacheMode None → no cachea nunca
|
||||
// CacheMode Cache → in-memory (CacheService)
|
||||
// CacheMode Redis → RedisService
|
||||
|
||||
public CacheEnum.Mode Patients { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode Displays { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode PumpObservations { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode Appointments { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode PointOfCares { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode GroupedObservations { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode PatientObservations { get; set; } = CacheEnum.Mode.Cache;
|
||||
public CacheEnum.Mode ConfigObservations { get; set; } = CacheEnum.Mode.Cache;
|
||||
|
||||
|
||||
|
||||
// Configuración específica del backend InMemory
|
||||
public InMemorySettings InMemory { get; set; } = new();
|
||||
|
||||
// Configuración específica del backend Redis
|
||||
public RedisSettings Redis { get; set; } = new();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// -------------------- InMemory Cache --------------------
|
||||
|
||||
public class InMemorySettings
|
||||
{
|
||||
public TtlSettings Ttl { get; set; } = new();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// -------------------- TTL por entidad --------------------
|
||||
|
||||
public class TtlSettings
|
||||
{
|
||||
public int? GlobalSeconds { get; set; }
|
||||
|
||||
public int? PatientsSeconds { get; set; }
|
||||
public int? DisplaysSeconds { get; set; }
|
||||
public int? PumpObservationsSeconds { get; set; }
|
||||
public int? AppointmentsSeconds { get; set; }
|
||||
public int? ConfigObservationsSeconds { get; set; }
|
||||
public int? PointOfCaresSeconds { get; set; }
|
||||
public int? GroupedObservationsSeconds { get; set; }
|
||||
public int? PatientObservationsSeconds { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class DatabaseSettings
|
||||
{
|
||||
public const string Database = "DatabaseSettings";
|
||||
|
||||
public string? ConnectionString { get; set; }
|
||||
public string? DatabaseName { get; set; }
|
||||
public int MaxConnectionPoolSize { get; set; } = 200;
|
||||
public int MinConnectionPoolSize { get; set; } = 20;
|
||||
public int MaxConnectionIdleTime { get; set; } = 60;
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class ListSettings
|
||||
{
|
||||
public ListSettingItem AltableOptionList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "AltableOptionObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem AllergyList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "AllergyObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem DestinationList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "DestinationObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem DiagnosisList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "DiagnosisObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem DischargeStatusList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "DischargeStatusObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem DoctorList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "DoctorObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem DoctorTypeList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "DoctorTypeObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem InternalDestinationList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "InternalDestinationObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem InsulationList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "InsulationObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem LanguageBarrierList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "LanguageBarrierObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem PassiveSittingList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "PassiveSittingObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
public ListSettingItem GenericList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "GenericObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem MobilityOptionList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "MobilityOptionObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem OriginList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "OriginObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem PatientStatusList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "PatientStatusObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem ProcedureList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "ProcedureObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem ServiceList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "ServiceObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem TherapeuticCeilingList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "TherapeuticCeilingObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem TreatmentList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "TreatmentObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem VisitOptionList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "VisitOptionObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem AccessControlList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "AccessControlObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
|
||||
public ListSettingItem TestList { get; set; } = new()
|
||||
{
|
||||
ManualObservationName = "TestObs",
|
||||
AutoObservationName = []
|
||||
};
|
||||
}
|
||||
|
||||
public class ListSettingItem
|
||||
{
|
||||
public string? ManualObservationName { get; set; }
|
||||
public List<string> AutoObservationName { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,339 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class PermissionSettings
|
||||
{
|
||||
public SourcePermissions Admin { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions Developer { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
new UserActions(true, true, true, true, true),
|
||||
true
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions DoctorChief { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
false
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
false
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions Doctor { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions NursingSupervisor { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
false
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
new UserActions(false, true, false, true, false),
|
||||
false
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions Nurse { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
)
|
||||
);
|
||||
|
||||
public SourcePermissions Guest { get; set; } = new(
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new DisplayPermissionTypes(
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
new UserActions(false, false, false, true, false),
|
||||
false
|
||||
),
|
||||
new PanelPermissionTypes(
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
new UserActions(false, false, false, true, true),
|
||||
false
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public class SourcePermissions(
|
||||
DisplayPermissionTypes unit,
|
||||
DisplayPermissionTypes display,
|
||||
PanelPermissionTypes panel)
|
||||
{
|
||||
public DisplayPermissionTypes Unit { get; set; } = unit;
|
||||
public DisplayPermissionTypes Display { get; set; } = display;
|
||||
public PanelPermissionTypes Panel { get; set; } = panel;
|
||||
}
|
||||
|
||||
public class DisplayPermissionTypes(
|
||||
UserActions admissions,
|
||||
UserActions discharges,
|
||||
UserActions obs,
|
||||
UserActions demographicData,
|
||||
UserActions boxBlocking,
|
||||
UserActions notices,
|
||||
UserActions cell,
|
||||
bool useDemoMode)
|
||||
{
|
||||
public UserActions Admissions { get; set; } = admissions;
|
||||
public UserActions Discharges { get; set; } = discharges;
|
||||
public UserActions Obs { get; set; } = obs;
|
||||
public UserActions Cell { get; set; } = cell;
|
||||
public UserActions DemographicData { get; set; } = demographicData;
|
||||
public UserActions BoxBlocking { get; set; } = boxBlocking;
|
||||
public UserActions Notices { get; set; } = notices;
|
||||
public bool UseDemoMode { get; set; } = useDemoMode;
|
||||
}
|
||||
|
||||
public class PanelPermissionTypes(
|
||||
UserActions units,
|
||||
UserActions displays,
|
||||
UserActions displayConfigs,
|
||||
UserActions masterLists,
|
||||
UserActions treatments,
|
||||
UserActions patients,
|
||||
UserActions medicines,
|
||||
UserActions pumps,
|
||||
UserActions users,
|
||||
UserActions configObservations,
|
||||
UserActions observations,
|
||||
UserActions audits,
|
||||
bool useDemoMode)
|
||||
{
|
||||
public UserActions Units { get; set; } = units;
|
||||
public UserActions Displays { get; set; } = displays;
|
||||
public UserActions DisplayConfigs { get; set; } = displayConfigs;
|
||||
public UserActions MasterLists { get; set; } = masterLists;
|
||||
public UserActions Treatments { get; set; } = treatments;
|
||||
public UserActions Patients { get; set; } = patients;
|
||||
public UserActions Medicines { get; set; } = medicines;
|
||||
public UserActions Pumps { get; set; } = pumps;
|
||||
public UserActions Users { get; set; } = users;
|
||||
public UserActions ConfigObservations { get; set; } = configObservations;
|
||||
public UserActions Observations { get; set; } = observations;
|
||||
public UserActions Audits { get; set; } = audits;
|
||||
public bool UseDemoMode { get; set; } = useDemoMode;
|
||||
}
|
||||
|
||||
public class UserActions(bool create, bool update, bool delete, bool read, bool execute)
|
||||
{
|
||||
public bool Create { get; set; } = create;
|
||||
public bool Update { get; set; } = update;
|
||||
public bool Delete { get; set; } = delete;
|
||||
public bool Read { get; set; } = read;
|
||||
public bool Execute { get; set; } = execute;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class RabbitMqSettings
|
||||
{
|
||||
public string ConnectionString { get; set; } = string.Empty;
|
||||
public string PatientsQueue { get; set; } = "patients";
|
||||
public string TreatmentsQueue { get; set; } = "treatments";
|
||||
public string ObservationsQueue { get; set; } = "observations";
|
||||
public string PumpsQueue { get; set; } = "pumps";
|
||||
public string RecordingQueue { get; set; } = "recordings";
|
||||
public string AppointmentsQueue { get; set; } = "appointments";
|
||||
public int MaxRetries { get; set; } = 2;
|
||||
public string RecordingAlertQueue { get; set; } = "recordingAlert";
|
||||
public string AlarmObservationQueue { get; set; } = "alarms";
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace adas_core.Domain.Models.AppSettings;
|
||||
|
||||
public class RecordingSettings
|
||||
{
|
||||
public const string Recording = "RecordingSettings";
|
||||
|
||||
public string RecordingApiUrl { get; set; } = "";
|
||||
public string RecordingOrApiClientId { get; set; } = "";
|
||||
public string RecordingOrApiClientSecret { get; set; } = "";
|
||||
public int HttpClientTimeout { get; set; } = 6;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
namespace adas_core.Domain.Models.AppSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Configuración Redis.
|
||||
/// No contiene lógica de qué entidades usan Redis (eso está en CacheSettings).
|
||||
/// Esta clase solo define:
|
||||
/// - Conexión
|
||||
/// - Cluster/Scalability
|
||||
/// - SSL/password
|
||||
/// - TTL global y por entidad
|
||||
/// - Generación de claves CacheKeys
|
||||
/// </summary>
|
||||
public class RedisSettings
|
||||
{
|
||||
// Conexión y networking
|
||||
public string? ConnectionString { get; set; }
|
||||
public bool EnableScalable { get; set; }
|
||||
public bool Ssl { get; set; }
|
||||
public string? Password { get; set; }
|
||||
public IEnumerable<RedisEndpoint> Endpoints { get; set; } = [];
|
||||
public string ChannelPrefix { get; set; } = "MedDisCore";
|
||||
|
||||
// TTL global y TTL específico por entidad
|
||||
// (no determina si la entidad se cachea o no)
|
||||
public int? ExpireKeyInSeconds { get; set; }
|
||||
|
||||
public TtlSettings Ttl { get; set; } = new();
|
||||
|
||||
// Submodelos
|
||||
public class RedisEndpoint
|
||||
{
|
||||
public string Host { get; set; } = null!;
|
||||
public int Port { get; set; }
|
||||
}
|
||||
|
||||
// CacheKeys: claves estandarizadas y unificadas para todas las entidades
|
||||
// Estas claves son fundamentales para:
|
||||
|
||||
public static class CacheKeys
|
||||
{
|
||||
// ----------------- Patients -----------------
|
||||
public static string Patient(string patientId)
|
||||
=> $"patients:{patientId}";
|
||||
|
||||
// ----------------- ConfigDisplays -----------------
|
||||
public static string ConfigDisplay(string id)
|
||||
=> $"configDisplays:{id}";
|
||||
|
||||
public static string ConfigDisplaysAll()
|
||||
=> "configDisplays:all";
|
||||
|
||||
// ----------------- PumpObservations -----------------
|
||||
public static string PumpObservation(string obsId)
|
||||
=> $"pumpObs:{obsId}";
|
||||
|
||||
public static string PumpDaily(string pumpId, DateTime date)
|
||||
=> $"pumpObs:pump:{pumpId}:{date:yyyyMMdd}";
|
||||
|
||||
// ----------------- Appointments -----------------
|
||||
public static string Appointment(string apptId)
|
||||
=> $"appointments:{apptId}";
|
||||
|
||||
public static string AppointmentsByPatientDay(string patientId, DateTime date)
|
||||
=> $"appointments:patient:{patientId}:{date:yyyyMMdd}";
|
||||
|
||||
public static string AppointmentsByPatientMonth(string patientId, DateTime date)
|
||||
=> $"appointments:patient:{patientId}:{date:yyyyMM}";
|
||||
|
||||
// ----------------- GroupedObservations -----------------
|
||||
public static string GroupedObservationsByPatient(string patientId, string? groupedField)
|
||||
=> $"groupedObs:{groupedField}:patient:{patientId}";
|
||||
|
||||
public static string GroupedObservationsByPatientDay(string patientId, string groupedField, DateTime date)
|
||||
=> $"groupedObs:{groupedField}:patient:{patientId}:{date:yyyyMMdd}";
|
||||
|
||||
public static string GroupedObservationsByPatientMonth(string patientId, string groupedField, DateTime date)
|
||||
=> $"groupedObs:{groupedField}:patient:{patientId}:{date:yyyyMM}";
|
||||
|
||||
public static string GroupedObservationsLatest(string patientId, string groupedField, int take)
|
||||
=> $"groupedObs:{groupedField}:patient:{patientId}:latest:{take}";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user