Files

82 lines
3.2 KiB
C#

using adas_core.Domain.Enums;
using MongoDB.Bson;
namespace adas_core.Domain.Models.Pumps
{
/// <summary>
/// Snapshot vivo de la bomba, indexado por DeviceId.
/// Se sobrescribe con cada mensaje del HL7.
/// Contiene siempre el último valor conocido de la bomba.
/// </summary>
public class PumpState
{
public ObjectId Id { get; set; }
// Identificación bomba
public string? DeviceId { get; set; }
public string? RackId { get; set; }
public string? DeviceTypeMdc { get; set; }
// Ubicación física
public string? DeviceIp { get; set; }
public string? PillarAssembly { get; set; }
public string? PillarRackSlot { get; set; }
// Paciente asociado (si existe)
public ObjectId? PatientId { get; set; }
// Infusión activa
public string? InfusionId { get; set; }
public DateTime LastUpdated { get; set; }
// Estado general
public bool IsInfusing { get; set; }
public PumpEnum.InfusingStatus? InfusingStatus { get; set; }
public PumpEnum.Status? Status { get; set; }
public PumpEnum.Mode? PumpMode { get; set; }
public string? InfusionModeDetail { get; set; }
public string? ActiveSourceInfo { get; set; }
public string? NotDeliveringReason { get; set; }
public string? Source { get; set; }
// Métricas
public CommonPumpTypes.PumpValue? FlowFluid { get; set; }
public CommonPumpTypes.PumpValue? Rate { get; set; }
public CommonPumpTypes.PumpValue? VolumeInfused { get; set; }
public CommonPumpTypes.PumpValue? FluidDelivTotal { get; set; }
public CommonPumpTypes.PumpValue? FluidDelivTotalSet { get; set; }
public CommonPumpTypes.PumpValue? VolumeRemaining { get; set; }
public CommonPumpTypes.PumpValue? Vtbi { get; set; }
public CommonPumpTypes.PumpValue? TimeRemaining { get; set; }
public CommonPumpTypes.PumpValue? TimeProgrammed { get; set; }
// Medicación
public string? DrugName { get; set; }
public string? DrugId { get; set; }
public CommonPumpTypes.PumpValue? Concentration { get; set; }
public CommonPumpTypes.PumpValue? DoseRate { get; set; }
public CommonPumpTypes.PumpValue? DrugAmount { get; set; }
public CommonPumpTypes.PumpValue? DrugDoseDelivered { get; set; }
public CommonPumpTypes.PumpValue? PatientWeight { get; set; }
public CommonPumpTypes.SyringeDetails? Syringe { get; set; }
// Última alarma recibida
public PumpEnum.AlarmType? AlarmType { get; set; }
public string? AlarmDescription { get; set; }
public string? AlarmState { get; set; }
public string? AlarmInactivationState { get; set; }
public string? AlarmPriority { get; set; }
public string? AlarmCodeMdc { get; set; }
// Evento último
public PumpEnum.Event? Event { get; set; }
public PumpEnum.EventPhase? EventPhase { get; set; }
// Comunicación / Relay
public string? CommStatus { get; set; }
public string? RelayState { get; set; }
public string? RelayGuid { get; set; }
}
}