Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class BoolObservation : Observation
|
||||
{
|
||||
public bool Value { get; set; }
|
||||
|
||||
internal static BoolObservation? From(List<PatientObservation> obs)
|
||||
{
|
||||
if (obs.Count > 0)
|
||||
return new BoolObservation
|
||||
{
|
||||
Value = (bool)obs[0].Value
|
||||
};
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class ChartObservation : Observation
|
||||
{
|
||||
public List<double> Values { get; set; } = [];
|
||||
public List<double> SecondaryValues { get; set; } = [];
|
||||
public List<double> Labels { get; set; } = [];
|
||||
public double Min { get; set; }
|
||||
public double Max { get; set; }
|
||||
public double? MinWarn { get; set; }
|
||||
public double? MaxWarn { get; set; }
|
||||
|
||||
internal static ChartObservation From(List<PatientObservation> obs)
|
||||
{
|
||||
return obs == null ? throw new ArgumentNullException(nameof(obs)) : new ChartObservation();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using adas_core.Domain.Utils;
|
||||
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class DoubleObservation : Observation
|
||||
{
|
||||
public double? Value { get; set; }
|
||||
public double? LastValue { get; set; }
|
||||
|
||||
public static DoubleObservation? From(List<PatientObservation> obs)
|
||||
{
|
||||
if (obs.Count > 0)
|
||||
{
|
||||
var val = new DoubleObservation
|
||||
{
|
||||
Value = obs[0].Value.ToDouble()
|
||||
};
|
||||
if (obs.Count > 1) val.LastValue = obs[1].Value.ToDouble();
|
||||
return val;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class FullObservation : Observation
|
||||
{
|
||||
public DateTime LastObservationDate;
|
||||
|
||||
public DateTime ObservationDate;
|
||||
public string? Text { get; set; }
|
||||
public required object Value { get; set; }
|
||||
public object? LastValue { get; set; }
|
||||
public double? Min { get; set; }
|
||||
public double? Max { get; set; }
|
||||
|
||||
public double? MinAlert { get; set; }
|
||||
public double? MaxAlert { get; set; }
|
||||
|
||||
public double? MinWarn { get; set; }
|
||||
public double? MaxWarn { get; set; }
|
||||
|
||||
public static FullObservation? From(List<PatientObservation> obs)
|
||||
{
|
||||
if (obs.Count > 0)
|
||||
return new FullObservation
|
||||
{
|
||||
Text = obs[0].Name,
|
||||
Value = obs[0].Value,
|
||||
Min = obs[0].Min,
|
||||
Max = obs[0].Max,
|
||||
ObservationDate = obs[0].Time,
|
||||
LastValue = obs.Count > 1 ? obs[1].Value : null,
|
||||
LastObservationDate = obs.Count > 1 ? obs[1].Time : DateTime.MinValue
|
||||
};
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
using adas_core.Domain.Models.MongoModels;
|
||||
using adas_core.Domain.Utils;
|
||||
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class Medication : Observation
|
||||
{
|
||||
public Medication()
|
||||
{
|
||||
}
|
||||
|
||||
public Medication(string id, Dictionary<string, PumpElement> obj)
|
||||
{
|
||||
if (obj.TryGetValue("MDC_184504", out var mode)) PumpMode = new PumpMode(mode);
|
||||
|
||||
if (obj.TryGetValue("MDC_184519", out var status)) PumpStatus = new PumpStatus(status);
|
||||
|
||||
if (obj.TryGetValue("MDC_157784", out var flow)) FlowFluid = new FlowFluid(flow);
|
||||
|
||||
if (obj.TryGetValue("MDC_157993", out var fluid)) VolFluidTotal = new VolumeFluidDeliveryTotal(fluid);
|
||||
|
||||
if (obj.TryGetValue("MDCX_PUMP_DELIVERY_PRESSURE", out var pressure))
|
||||
PumpDeliveryPressure = new PumpDeliveryPressure(pressure);
|
||||
|
||||
if (obj.TryGetValue("MDC_DEV_PUMP_ACTIVE_SOURCES", out var source))
|
||||
PumpActiveSources = new PumpActiveSources(source);
|
||||
|
||||
if (obj.TryGetValue("MDC_184514", out var drug)) Drug = new Drug(drug);
|
||||
|
||||
if (obj.TryGetValue("MDC_157872", out var volume)) VolumeFluidTbiRemain = new VolumeFluidTbiRemain(volume);
|
||||
|
||||
if (obj.TryGetValue("MDC_157916", out var remain)) VolumeFluidTimeRemain = new VolumeFluidTimePdRemain(remain);
|
||||
|
||||
Id = id;
|
||||
}
|
||||
|
||||
public string? Id { get; set; }
|
||||
public PumpMode? PumpMode { get; set; }
|
||||
public PumpStatus? PumpStatus { get; set; }
|
||||
public FlowFluid? FlowFluid { get; set; }
|
||||
public VolumeFluidDeliveryTotal? VolFluidTotal { get; set; }
|
||||
public VolumeFluidTbiRemain? VolumeFluidTbiRemain { get; set; }
|
||||
public VolumeFluidTimePdRemain? VolumeFluidTimeRemain { get; set; }
|
||||
public PumpDeliveryPressure? PumpDeliveryPressure { get; set; }
|
||||
public PumpActiveSources? PumpActiveSources { get; set; }
|
||||
public Drug? Drug { get; set; }
|
||||
}
|
||||
|
||||
public class DrugValue
|
||||
{
|
||||
public DrugValue()
|
||||
{
|
||||
}
|
||||
|
||||
public DrugValue(PumpElement pumpElement)
|
||||
{
|
||||
Id = pumpElement.Id;
|
||||
Text = pumpElement.Text;
|
||||
Time = pumpElement.Time;
|
||||
Units = pumpElement.Units;
|
||||
CodingSystem = pumpElement.CodingSystem;
|
||||
Result = pumpElement.Result;
|
||||
}
|
||||
|
||||
public string? Id { get; set; }
|
||||
public string? Text { get; set; }
|
||||
public string? Units { get; set; }
|
||||
public DateTime? Time { get; set; }
|
||||
public string? CodingSystem { get; set; }
|
||||
public char? Result { get; set; } = 'R';
|
||||
|
||||
public void Copy(DrugValue common)
|
||||
{
|
||||
Id = common.Id;
|
||||
Text = common.Text;
|
||||
Units = common.Units;
|
||||
Time = common.Time;
|
||||
CodingSystem = common.CodingSystem;
|
||||
Result = common.Result;
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class DrugDoubleValue : DrugValue
|
||||
{
|
||||
protected DrugDoubleValue(PumpElement pumpElement) : base(pumpElement)
|
||||
{
|
||||
if (double.TryParse(pumpElement.Value?.ToString(), out var valueParsed))
|
||||
Value = valueParsed;
|
||||
}
|
||||
|
||||
public double? Value { get; set; }
|
||||
}
|
||||
|
||||
public abstract class DrugStringValue(PumpElement pumpElement) : DrugValue(pumpElement)
|
||||
{
|
||||
public string? Value { get; set; } = pumpElement.Value?.ToString();
|
||||
}
|
||||
|
||||
public class FlowFluid(PumpElement pumpElement) : DrugDoubleValue(pumpElement);
|
||||
|
||||
public class VolumeFluidDeliveryTotal(PumpElement pumpElement) : DrugDoubleValue(pumpElement);
|
||||
|
||||
public class PumpDeliveryPressure(PumpElement pumpElement) : DrugDoubleValue(pumpElement);
|
||||
|
||||
public class VolumeFluidTbiRemain(PumpElement pumpElement) : DrugDoubleValue(pumpElement);
|
||||
|
||||
public class VolumeFluidTimePdRemain(PumpElement pumpElement) : DrugDoubleValue(pumpElement);
|
||||
|
||||
public class PumpActiveSources(PumpElement pumpElement) : DrugStringValue(pumpElement)
|
||||
{
|
||||
public string? ValueId { get; set; } = pumpElement.ValueId;
|
||||
public string? ValueCodingSystem { get; set; } = pumpElement.ValueCodingSystem;
|
||||
}
|
||||
|
||||
public class Drug(PumpElement pumpElement) : DrugStringValue(pumpElement);
|
||||
|
||||
public class PumpMode : DrugStringValue
|
||||
{
|
||||
public PumpMode(PumpElement pumpElement) : base(pumpElement)
|
||||
{
|
||||
Value = pumpElement.Value?.ToString()?.SubstringAfter("pump-mode-").Replace("-", "_");
|
||||
}
|
||||
}
|
||||
|
||||
public class PumpStatus : DrugStringValue
|
||||
{
|
||||
public PumpStatus(PumpElement pumpElement) : base(pumpElement)
|
||||
{
|
||||
Value = pumpElement.Value?.ToString()?.SubstringAfter("pump-status-").Replace("-", "_");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class Observation
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class ObservationPaginatedResult
|
||||
{
|
||||
public int Count { get; set; } = 0;
|
||||
public List<PatientObservation> Data { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class ObservationsRequest
|
||||
{
|
||||
public string? PatientNumber { get; set; }
|
||||
|
||||
public List<string>? ObservationNames { get; set; }
|
||||
|
||||
public DateTime? StartTime { get; set; }
|
||||
public DateTime? EndTime { get; set; }
|
||||
|
||||
public int PageNumber { get; set; } = 1;
|
||||
public int PageSize { get; set; } = 10;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class PredictMedicationObservation
|
||||
{
|
||||
public string MedicineText { get; set; } = string.Empty;
|
||||
public double DegreeSimilarity { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
namespace adas_core.Domain.Models.Observations;
|
||||
|
||||
public class StringObservation : Observation
|
||||
{
|
||||
public string Value { get; set; } = string.Empty;
|
||||
|
||||
public static StringObservation? From(List<PatientObservation> obs)
|
||||
{
|
||||
if (obs.Count > 0)
|
||||
return new StringObservation
|
||||
{
|
||||
Value = (string)obs[0].Value
|
||||
};
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user