Creado apartir del commit b888de6c92056de294456f581a56e25e734d4ab7 de develop
This commit is contained in:
@@ -0,0 +1,380 @@
|
||||
using adas_core.Domain.Enums;
|
||||
using adas_core.Domain.Models.MongoModels;
|
||||
using adas_core.Domain.Models.Pumps;
|
||||
using adas_core.Infrastructure.Utils.MongoMaps.Interfaz;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Bson.Serialization;
|
||||
using MongoDB.Bson.Serialization.Serializers;
|
||||
|
||||
namespace adas_core.Infrastructure.Utils.MongoMaps
|
||||
{
|
||||
public class PumpMapContributor : IEntityMapContributor
|
||||
{
|
||||
public void RegisterMaps()
|
||||
{
|
||||
// ============================================================
|
||||
// CommonPumpTypes: PumpValue
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(CommonPumpTypes.PumpValue)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<CommonPumpTypes.PumpValue>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapMember(c => c.Value).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Units).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// CommonPumpTypes: SyringeDetails
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(CommonPumpTypes.SyringeDetails)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<CommonPumpTypes.SyringeDetails>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapMember(c => c.Type).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Manufacturer).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Volume).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// PatientPumpObservation (nuevo modelo simplificado)
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(PumpObservation)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<PumpObservation>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapIdMember(c => c.Id).SetElementName("_id");
|
||||
|
||||
// Identificadores
|
||||
cm.MapMember(c => c.DeviceId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RackId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DeviceTypeMdc).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.InfusionId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.PatientId).SetIgnoreIfNull(true).SetElementName("patientid");
|
||||
|
||||
|
||||
//campos para Alaris
|
||||
cm.MapMember(c => c.Pressure).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DiluentVolume).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PatientHeight).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.BasalRate).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.TotalAux).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.GatewayNumber).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Number).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Total).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.IsAux).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Code).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Name).SetIgnoreIfNull(true);
|
||||
|
||||
cm.UnmapMember(c => c.UiConfiguration);
|
||||
cm.MapMember(c => c.AlarmMode)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmMode>(
|
||||
new EnumSerializer<PumpEnum.AlarmMode>(BsonType.String)));
|
||||
|
||||
// Tiempo
|
||||
cm.MapMember(c => c.Time).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.MessageType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new EnumSerializer<PumpEnum.PumpMessageType>(BsonType.String));
|
||||
|
||||
// Estado de infusión
|
||||
cm.MapMember(c => c.IsInfusing).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.InfusingStatus)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.InfusingStatus>(
|
||||
new EnumSerializer<PumpEnum.InfusingStatus>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.Status)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Status>(
|
||||
new EnumSerializer<PumpEnum.Status>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.PumpMode)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Mode>(
|
||||
new EnumSerializer<PumpEnum.Mode>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.ActiveSourceInfo).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.InfusionModeDetail).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.NotDeliveringReason).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Source).SetIgnoreIfNull(true);
|
||||
|
||||
// Métricas
|
||||
cm.MapMember(c => c.FlowFluid).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Rate).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.VolumeInfused).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.FluidDelivTotal).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.FluidDelivTotalSet).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.VolumeRemaining).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Vtbi).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.TimeRemaining).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.TimeProgrammed).SetIgnoreIfNull(true);
|
||||
|
||||
// Medicación
|
||||
cm.MapMember(c => c.DrugName).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Concentration).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DoseRate).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugAmount).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugDoseDelivered).SetIgnoreIfNull(true);
|
||||
|
||||
// Paciente
|
||||
cm.MapMember(c => c.PatientWeight).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Syringe).SetIgnoreIfNull(true);
|
||||
|
||||
// Ubicación
|
||||
cm.MapMember(c => c.DeviceIp).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarAssembly).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarRackSlot).SetIgnoreIfNull(true);
|
||||
|
||||
// ALARMAS
|
||||
cm.MapMember(c => c.AlarmType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmType>(
|
||||
new EnumSerializer<PumpEnum.AlarmType>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlarmDescription).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmInactivationState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmPriority).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmTypeMdc).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.EventPhase)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.EventPhase>(
|
||||
new EnumSerializer<PumpEnum.EventPhase>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlertSourceMdc).SetIgnoreIfNull(true);
|
||||
|
||||
// EVENTOS (PCD-10)
|
||||
cm.MapMember(c => c.Event)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Event>(
|
||||
new EnumSerializer<PumpEnum.Event>(BsonType.String)));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// ============================================================
|
||||
// PumpState
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(PumpState)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<PumpState>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapIdMember(c => c.Id).SetElementName("_id");
|
||||
|
||||
cm.MapMember(c => c.DeviceId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RackId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DeviceTypeMdc).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DeviceIp).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarAssembly).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarRackSlot).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.InfusionId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.PatientId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.LastUpdated).SetIgnoreIfNull(true);
|
||||
|
||||
// Estado
|
||||
cm.MapMember(c => c.IsInfusing).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.InfusingStatus)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.InfusingStatus>(
|
||||
new EnumSerializer<PumpEnum.InfusingStatus>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.Status)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Status>(
|
||||
new EnumSerializer<PumpEnum.Status>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.PumpMode)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Mode>(
|
||||
new EnumSerializer<PumpEnum.Mode>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.InfusionModeDetail).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.ActiveSourceInfo).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.NotDeliveringReason).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Source).SetIgnoreIfNull(true);
|
||||
|
||||
// Métricas
|
||||
cm.MapMember(c => c.FlowFluid).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Rate).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.VolumeInfused).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.FluidDelivTotal).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.FluidDelivTotalSet).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.VolumeRemaining).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Vtbi).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.TimeRemaining).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.TimeProgrammed).SetIgnoreIfNull(true);
|
||||
|
||||
// Medicación
|
||||
cm.MapMember(c => c.DrugName).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Concentration).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DoseRate).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugAmount).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DrugDoseDelivered).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PatientWeight).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Syringe).SetIgnoreIfNull(true);
|
||||
|
||||
// Última alarma resumen
|
||||
cm.MapMember(c => c.AlarmType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmType>(
|
||||
new EnumSerializer<PumpEnum.AlarmType>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlarmDescription).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmInactivationState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmPriority).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmCodeMdc).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.Event)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.Event>(
|
||||
new EnumSerializer<PumpEnum.Event>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.EventPhase)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.EventPhase>(
|
||||
new EnumSerializer<PumpEnum.EventPhase>(BsonType.String)));
|
||||
|
||||
// Relay / Comm
|
||||
cm.MapMember(c => c.CommStatus).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RelayState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RelayGuid).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// PumpAlarmEvent
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(PumpAlarmEvent)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<PumpAlarmEvent>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapIdMember(c => c.Id).SetElementName("_id");
|
||||
|
||||
cm.MapMember(c => c.DeviceId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RackId).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.DeviceTypeMdc).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.InfusionId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.PatientId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.Time).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.AlarmType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmType>(
|
||||
new EnumSerializer<PumpEnum.AlarmType>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlarmDescription).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmInactivationState).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmPriority).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmTypeMdc).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.EventPhase)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.EventPhase>(
|
||||
new EnumSerializer<PumpEnum.EventPhase>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlertSourceMdc).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.DeviceIp).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarAssembly).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.PillarRackSlot).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// PumpAlarmState
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(PumpAlarmState)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<PumpAlarmState>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapIdMember(c => c.Id).SetElementName("_id");
|
||||
|
||||
cm.MapMember(c => c.DeviceId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.PatientId).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.AlarmType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmType>(
|
||||
new EnumSerializer<PumpEnum.AlarmType>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.AlarmCodeMdc).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmDescription).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmPriority).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.AlarmState).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.LastPhase)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.EventPhase>(
|
||||
new EnumSerializer<PumpEnum.EventPhase>(BsonType.String)));
|
||||
|
||||
cm.MapMember(c => c.FirstSeen).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.LastUpdated).SetIgnoreIfNull(true);
|
||||
|
||||
cm.MapMember(c => c.AlertSourceMdc).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.InfusionId).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// ConfigPumps
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(ConfigPumps)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<ConfigPumps>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapIdMember(c => c.Id).SetElementName("_id");
|
||||
cm.MapMember(c => c.Items).SetIgnoreIfNull(true);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// ConfigPumpItem
|
||||
// ============================================================
|
||||
if (!BsonClassMap.IsClassMapRegistered(typeof(ConfigPumpItem)))
|
||||
{
|
||||
BsonClassMap.RegisterClassMap<ConfigPumpItem>(cm =>
|
||||
{
|
||||
cm.AutoMap();
|
||||
cm.MapMember(c => c.AlarmType)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.AlarmType>(
|
||||
new EnumSerializer<PumpEnum.AlarmType>(BsonType.String)));
|
||||
cm.MapMember(c => c.UiConfiguration).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.Type)
|
||||
.SetIgnoreIfNull(true)
|
||||
.SetSerializer(new NullableSerializer<PumpEnum.PumpMessageType>(
|
||||
new EnumSerializer<PumpEnum.PumpMessageType>(BsonType.String)));
|
||||
cm.MapMember(c => c.RetentionPolicy).SetIgnoreIfNull(true);
|
||||
cm.MapMember(c => c.RetentionPolicyValue).SetIgnoreIfNull(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user