using adas_core.Domain.Enums; using adas_core.Domain.Models; using adas_core.Domain.Models.GroupedObservations; using adas_core.Domain.Models.Masters; using adas_core.Domain.Models.MongoModels; using MongoDB.Bson; namespace adas_core.Test.Utilities; public class TestUtilities { public static PointOfCare CreateValidPointOfCare() { return new PointOfCare { Id = ObjectId.GenerateNewId(), Room = "Test Room", Bed = "Test Bed", UnitId = ObjectId.GenerateNewId(), Configuration = new PointOfCareConfiguration(), Status = StatusEnum.PointOfCare.Available, AdmissionId = ObjectId.GenerateNewId(), Unit = CreateValidUnit(), UnitName = "Test Unit" }; } public static Discharge CreateValidDischarge() { return new Discharge { Id = ObjectId.GenerateNewId(), PointOfCareId = ObjectId.GenerateNewId(), UnitId = ObjectId.GenerateNewId(), DischargeDate = DateTime.UtcNow, PatientId = ObjectId.GenerateNewId(), Destination = "Test Destination", DestinationOption = CreateValidOptionList(), ServiceOption = CreateValidOptionList(), Service = "Test Service", MedicalDischarge = DateTime.UtcNow, AdminDischarge = DateTime.UtcNow, NurseDischarge = DateTime.UtcNow }; } public static Patient CreateValidPatient() { return new Patient { Id = ObjectId.GenerateNewId(), PatientNumber = "TestPatientNumber", PatientId = "TestPatientId", AdmTime = DateTime.UtcNow, DischargeStatus = new OptionList { OptionType = "TestDischargeStatus", Name = "TestDischargeStatusName", IconDefault = "TestIcon", Color = "TestColor", Description = "TestDescription", InitDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddDays(7) // Example end date }, Altable = new OptionList { OptionType = "TestAltable", Name = "TestAltableName", IconDefault = "TestAltableIcon", Color = "TestAltableColor", Description = "TestAltableDescription", InitDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddDays(7) // Example end date }, Origin = new OptionList { OptionType = "TestOrigin", Name = "TestOriginName", IconDefault = "TestOriginIcon", Color = "TestOriginColor", Description = "TestOriginDescription", InitDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddDays(7) // Example end date } // Initialize other properties as needed }; } public static OptionList CreateValidOptionList() { return new OptionList { OptionType = "Test Option", Name = "Test Name", IconDefault = "Test Icon", Color = "Test Color", Description = "Test Description", InitDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddDays(1) }; } private static PatientLocation CreateValidPatientLocation() { return new PatientLocation { UnitName = "Test Unit", Bed = "Test Bed", Room = "Test Room" }; } public static Unit CreateValidUnit() { return new Unit { Id = ObjectId.GenerateNewId(), Title = "Test Unit", Name = "Test Unit", LastUpdate = null, PointOfCareIds = [], Status = StatusEnum.Type.Ok, Configuration = new UnitConfiguration { AutoAdt = true, } }; } public static Admission CreateValidAdmission() { return new Admission { //Id = ObjectId.GenerateNewId(), AdmissionDate = DateTime.UtcNow, Nhc = ObjectId.GenerateNewId().ToString(), UnitId = ObjectId.GenerateNewId(), PointOfCareId = ObjectId.GenerateNewId(), Person = new Person { FirstName = "Test First Name", LastName = "Test Last Name" // Initialize other properties as needed }, Origin = CreateValidOptionList(), OriginAux = "Test Origin Aux", Diagnosis = CreateValidOptionList(), DiagnosisAux = "Test Diagnosis Aux", Allergies = [ CreateValidOptionList(), CreateValidOptionList() // Add more allergies as needed ], Insulation = CreateValidOptionList(), LanguageBarrier = [CreateValidOptionList()], PatientLocation = CreateValidPatientLocation() // Initialize other properties as needed }; } public static CardConfig CreateValidCardConfig(ObjectId? id = null) { return new CardConfig { Id = id ?? ObjectId.GenerateNewId(), Rows = new List { new() { Cells = new List { new() { Type = DisplayConfigEnums.CellType.DemographicCell } }, GrowPriority = 1, Type = DisplayConfigEnums.CellType.CellWrapper } } }; } public static CardDetailsConfig CreateValidCardDetailsNurseConfig(ObjectId? id = null) { return new CardDetailsConfig { Id = id ?? ObjectId.GenerateNewId(), NurseRows = new List { new() { Type = DisplayConfigEnums.RowType.Demographic, Title = "Title details", Cells = new List { new() { Type = DisplayConfigEnums.CellType.CellWrapper, Cells = new List { new() { Type = DisplayConfigEnums.CellType.AllergyCell }, new() { Type = DisplayConfigEnums.CellType.DemographicCell } } } } } } }; } public static CardDetailsConfig CreateValidCardDetailsSmartConfig(ObjectId? id = null) { return new CardDetailsConfig { Id = id ?? ObjectId.GenerateNewId(), SmartSections = new List { new() { Type = DisplayConfigEnums.RowType.General, Name = "Title details", Rows = new List { new() { Type = DisplayConfigEnums.CellType.CellWrapper, Observations = new List { new() { Type = DisplayConfigEnums.CellType.BeaconColor }, new() { Type = DisplayConfigEnums.CellType.Isolation } } } } } } }; } public static DisplayConfig CreateValidDisplayConfig(DisplayConfigEnums.DisplayType type, ObjectId? id, ObjectId? idCard, ObjectId? idDetail) { return new DisplayConfig { Id = id ?? ObjectId.GenerateNewId(), CardConfigId = idCard ?? ObjectId.GenerateNewId(), DetailConfigId = idDetail ?? ObjectId.GenerateNewId(), Type = type, FieldList = new List { new() { Name = "FR", Last = 2 } }, Hospital = "Test Hospital" }; } }