public override object GetValue(DocumentObject dom, GV flags) { if (!Enum.IsDefined(typeof(GV), flags)) { throw new ArgumentException("flags"); } //throw new InvalidEnumArgumentException("flags", (int)flags, typeof(GV)); object val; if (FieldInfo != null) { val = FieldInfo.GetValue(dom); } else { val = PropertyInfo.GetGetMethod(true).Invoke(dom, Type.EmptyTypes); } INullableValue ival = val as INullableValue; if (ival != null && ival.IsNull && flags == GV.GetNull) { return(null); } return(val); }
public INullableValue <T> Create <T>( T?value) where T : struct { INullableValue <T> instance = null; try { PrimitiveType primitiveType = value switch { bool b => new FhirBoolean( b), decimal d => new FhirDecimal( d), int i => new PositiveInt( i), { } => throw new ArgumentNullException(nameof(value)), _ => null }; instance = (INullableValue <T>)primitiveType; }
public IHM4InputContext Create( ImmutableList <INullableValue <int> > weekdays, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > surgicalSpecialties, ImmutableList <INullableValue <int> > lengthOfStayDays, Bundle operatingRooms, Bundle surgeons, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > planningHorizon, ImmutableList <INullableValue <int> > scenarios, Duration timeBlockLength, ImmutableList <Tuple <Organization, INullableValue <int>, Duration> > surgeonScenarioWeightedAverageSurgicalDurations, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonLengthOfStayMaximums, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonScenarioMaximumNumberPatients, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int>, INullableValue <decimal> > > surgeonDayScenarioLengthOfStayProbabilities, INullableValue <int> numberDaysPerWeek, ImmutableList <Tuple <Organization, Location, INullableValue <bool> > > surgeonOperatingRoomAssignments, ImmutableList <Tuple <Organization, Location, INullableValue <int>, INullableValue <int> > > surgeonOperatingRoomDayNumberAssignedTimeBlocks, ImmutableList <Tuple <Location, FhirDateTime, INullableValue <bool> > > operatingRoomDayAssignedAvailabilities, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientMeans, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <decimal> > > scenarioProbabilities, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientStandardDeviations, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int>, INullableValue <decimal> > > surgeonDayScenarioCumulativeNumberPatients, INullableValue <int> maximumNumberRecoveryWardBeds) { IHM4InputContext context = null; try { context = new HM4InputContext( weekdays, surgicalSpecialties, lengthOfStayDays, operatingRooms, surgeons, planningHorizon, scenarios, timeBlockLength, surgeonScenarioWeightedAverageSurgicalDurations, surgeonLengthOfStayMaximums, surgeonScenarioMaximumNumberPatients, surgeonDayScenarioLengthOfStayProbabilities, numberDaysPerWeek, surgeonOperatingRoomAssignments, surgeonOperatingRoomDayNumberAssignedTimeBlocks, operatingRoomDayAssignedAvailabilities, surgeonScenarioMaximumNumberPatientMeans, scenarioProbabilities, surgeonScenarioMaximumNumberPatientStandardDeviations, surgeonDayScenarioCumulativeNumberPatients, maximumNumberRecoveryWardBeds); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(context); }
public TPInputContext( ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > activeDays, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > days, ImmutableList <INullableValue <int> > blockTypes, ImmutableList <INullableValue <int> > lengthOfStayDays, ImmutableList <INullableValue <int> > patientGroups, Bundle operatingRooms, Bundle surgeonGroups, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > wards, INullableValue <int> numberBeds, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > patientGroupSurgeryDurations, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > blockTypeTimeBlockLengths, ImmutableList <Tuple <FhirDateTime, Location, Duration> > dayOperatingRoomOperatingCapacities, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonGroupSubsetPatientGroups, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > wardSubsetPatientGroups, ImmutableList <Tuple <INullableValue <int>, INullableValue <int>, FhirDecimal> > patientGroupDayLengthOfStayProbabilities, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupThroughputs, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardα, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardβ, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardγ) { this.ActiveDays = activeDays; this.Days = days; this.BlockTypes = blockTypes; this.LengthOfStayDays = lengthOfStayDays; this.PatientGroups = patientGroups; this.OperatingRooms = operatingRooms; this.SurgeonGroups = surgeonGroups; this.Wards = wards; this.NumberBeds = numberBeds; this.PatientGroupSurgeryDurations = patientGroupSurgeryDurations; this.BlockTypeTimeBlockLengths = blockTypeTimeBlockLengths; this.DayOperatingRoomOperatingCapacities = dayOperatingRoomOperatingCapacities; this.SurgeonGroupSubsetPatientGroups = surgeonGroupSubsetPatientGroups; this.WardSubsetPatientGroups = wardSubsetPatientGroups; this.PatientGroupDayLengthOfStayProbabilities = patientGroupDayLengthOfStayProbabilities; this.PatientGroupThroughputs = patientGroupThroughputs; this.Wardα = wardα; this.Wardβ = wardβ; this.Wardγ = wardγ; }
/// <summary> /// Write attribute of type Unit, Color, int, float, double, bool, string or enum. /// </summary> public void WriteSimpleAttribute(string valueName, object value) { INullableValue ival = value as INullableValue; if (ival != null) { value = ival.GetValue(); } Type type = value.GetType(); if (type == typeof(Unit)) { string strUnit = value.ToString(); if (((Unit)value).Type == UnitType.Point) { WriteLine(valueName + " = " + strUnit); } else { WriteLine(valueName + " = \"" + strUnit + "\""); } } else if (type == typeof(float)) { WriteLine(valueName + " = " + ((float)value).ToString(CultureInfo.InvariantCulture)); } else if (type == typeof(double)) { WriteLine(valueName + " = " + ((double)value).ToString(CultureInfo.InvariantCulture)); } else if (type == typeof(bool)) { WriteLine(valueName + " = " + value.ToString().ToLower()); } else if (type == typeof(string)) { StringBuilder sb = new StringBuilder(value.ToString()); sb.Replace("\\", "\\\\"); sb.Replace("\"", "\\\""); WriteLine(valueName + " = \"" + sb + "\""); } #if !NETFX_CORE else if (type == typeof(int) || type.BaseType == typeof(Enum) || type == typeof(Color)) #else else if (type == typeof(int) || type.GetTypeInfo().BaseType == typeof(Enum) || type == typeof(Color)) #endif { WriteLine(valueName + " = " + value); } else { string message = String.Format("Type '{0}' of value '{1}' not supported", type, valueName); Debug.Assert(false, message); } }
public ITPInputContext Create( ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > activeDays, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > days, ImmutableList <INullableValue <int> > blockTypes, ImmutableList <INullableValue <int> > lengthOfStayDays, ImmutableList <INullableValue <int> > patientGroups, Bundle operatingRooms, Bundle surgeonGroups, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > wards, INullableValue <int> numberBeds, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > patientGroupSurgeryDurations, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > blockTypeTimeBlockLengths, ImmutableList <Tuple <FhirDateTime, Location, Duration> > dayOperatingRoomOperatingCapacities, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonGroupSubsetPatientGroups, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > wardSubsetPatientGroups, ImmutableList <Tuple <INullableValue <int>, INullableValue <int>, FhirDecimal> > patientGroupDayLengthOfStayProbabilities, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupThroughputs, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardα, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardβ, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > wardγ) { ITPInputContext context = null; try { context = new TPInputContext( activeDays, days, blockTypes, lengthOfStayDays, patientGroups, operatingRooms, surgeonGroups, wards, numberBeds, patientGroupSurgeryDurations, blockTypeTimeBlockLengths, dayOperatingRoomOperatingCapacities, surgeonGroupSubsetPatientGroups, wardSubsetPatientGroups, patientGroupDayLengthOfStayProbabilities, patientGroupThroughputs, wardα, wardβ, wardγ); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(context); }
/// <summary> /// Determines whether the given DocumentObject is null (not set). /// </summary> public override bool IsNull(DocumentObject dom) { #if !NETFX_CORE object val = FieldInfo != null?FieldInfo.GetValue(dom) : PropertyInfo.GetGetMethod(true).Invoke(dom, null); #else object val = FieldInfo != null?FieldInfo.GetValue(dom) : PropertyInfo.GetValue(dom); #endif INullableValue ival = val as INullableValue; if (ival != null) { return(ival.IsNull); } return(false); }
public SPInputContext( ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > activeDays, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > days, ImmutableList <INullableValue <int> > patientGroups, Bundle surgeonGroups, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > wards, ImmutableList <Tuple <INullableValue <int>, FhirDateTime, FhirDateTime> > patientGroupDaySubsetActiveDays, INullableValue <int> numberBeds, INullableValue <int> numberBlocks, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > patientGroupSurgeryDurations, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupNumberPatientLowerBounds, Duration timeBlockLength, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonGroupSubsetPatientGroups, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > wardSubsetPatientGroups, ImmutableList <KeyValuePair <INullableValue <int>, Money> > patientGroupProfits, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupThroughputs, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupNumberPatientUpperBounds) { this.ActiveDays = activeDays; this.Days = days; this.PatientGroups = patientGroups; this.SurgeonGroups = surgeonGroups; this.Wards = wards; this.PatientGroupDaySubsetActiveDays = patientGroupDaySubsetActiveDays; this.NumberBeds = numberBeds; this.NumberBlocks = numberBlocks; this.PatientGroupSurgeryDurations = patientGroupSurgeryDurations; this.PatientGroupNumberPatientLowerBounds = patientGroupNumberPatientLowerBounds; this.TimeBlockLength = timeBlockLength; this.SurgeonGroupSubsetPatientGroups = surgeonGroupSubsetPatientGroups; this.WardSubsetPatientGroups = wardSubsetPatientGroups; this.PatientGroupProfits = patientGroupProfits; this.PatientGroupThroughputs = patientGroupThroughputs; this.PatientGroupNumberPatientUpperBounds = patientGroupNumberPatientUpperBounds; }
public ISPInputContext Create( ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > activeDays, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > days, ImmutableList <INullableValue <int> > patientGroups, Bundle surgeonGroups, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > wards, ImmutableList <Tuple <INullableValue <int>, FhirDateTime, FhirDateTime> > patientGroupDaySubsetActiveDays, INullableValue <int> numberBeds, INullableValue <int> numberBlocks, ImmutableList <KeyValuePair <INullableValue <int>, Duration> > patientGroupSurgeryDurations, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupNumberPatientLowerBounds, Duration timeBlockLength, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonGroupSubsetPatientGroups, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > wardSubsetPatientGroups, ImmutableList <KeyValuePair <INullableValue <int>, Money> > patientGroupProfits, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupThroughputs, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <int> > > patientGroupNumberPatientUpperBounds) { ISPInputContext context = null; try { context = new SPInputContext( activeDays, days, patientGroups, surgeonGroups, wards, patientGroupDaySubsetActiveDays, numberBeds, numberBlocks, patientGroupSurgeryDurations, patientGroupNumberPatientLowerBounds, timeBlockLength, surgeonGroupSubsetPatientGroups, wardSubsetPatientGroups, patientGroupProfits, patientGroupThroughputs, patientGroupNumberPatientUpperBounds); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(context); }
public IHM1BInputContext Create( ImmutableList <Tuple <Organization, ImmutableList <Organization> > > surgicalSpecialties, Bundle operatingRooms, Bundle surgeons, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > planningHorizon, ImmutableList <INullableValue <int> > scenarios, ImmutableList <INullableValue <int> > operatingRoomServiceLevels, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonServiceLevelNumberTimeBlocks, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonStrategicTargets, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonScenarioMaximumNumberPatients, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <decimal> > > scenarioProbabilities, INullableValue <int> optimalOperatingRoomServiceLevel, INullableValue <int> nextOperatingRoomServiceLevel, ImmutableList <KeyValuePair <FhirDateTime, INullableValue <bool> > > dayAvailabilities, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > surgeonPenaltyWeights) { IHM1BInputContext context = null; try { context = new HM1BInputContext( surgicalSpecialties, operatingRooms, surgeons, planningHorizon, scenarios, operatingRoomServiceLevels, surgeonServiceLevelNumberTimeBlocks, surgeonStrategicTargets, surgeonScenarioMaximumNumberPatients, scenarioProbabilities, optimalOperatingRoomServiceLevel, nextOperatingRoomServiceLevel, dayAvailabilities, surgeonPenaltyWeights); } catch (Exception exception) { this.Log.Error( exception.Message, exception); } return(context); }
public HM1BInputContext( ImmutableList <Tuple <Organization, ImmutableList <Organization> > > surgicalSpecialties, Bundle operatingRooms, Bundle surgeons, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > planningHorizon, ImmutableList <INullableValue <int> > scenarios, ImmutableList <INullableValue <int> > operatingRoomServiceLevels, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonServiceLevelNumberTimeBlocks, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonStrategicTargets, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonScenarioMaximumNumberPatients, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <decimal> > > scenarioProbabilities, INullableValue <int> optimalOperatingRoomServiceLevel, INullableValue <int> nextOperatingRoomServiceLevel, ImmutableList <KeyValuePair <FhirDateTime, INullableValue <bool> > > dayAvailabilities, ImmutableList <KeyValuePair <Organization, INullableValue <decimal> > > surgeonPenaltyWeights) { this.SurgicalSpecialties = surgicalSpecialties; this.OperatingRooms = operatingRooms; this.Surgeons = surgeons; this.PlanningHorizon = planningHorizon; this.Scenarios = scenarios; this.OperatingRoomServiceLevels = operatingRoomServiceLevels; this.SurgeonServiceLevelNumberTimeBlocks = surgeonServiceLevelNumberTimeBlocks; this.SurgeonStrategicTargets = surgeonStrategicTargets; this.SurgeonScenarioMaximumNumberPatients = surgeonScenarioMaximumNumberPatients; this.ScenarioProbabilities = scenarioProbabilities; this.OptimalOperatingRoomServiceLevel = optimalOperatingRoomServiceLevel; this.NextOperatingRoomServiceLevel = nextOperatingRoomServiceLevel; this.DayAvailabilities = dayAvailabilities; this.SurgeonPenaltyWeights = surgeonPenaltyWeights; }
public override object GetValue(DocumentObject dom, GV flags) { if (!Enum.IsDefined(typeof(GV), flags)) { throw new /*InvalidEnum*/ ArgumentException(DomSR.InvalidEnumValue(flags), "flags"); } #if !NETFX_CORE object val = FieldInfo != null?FieldInfo.GetValue(dom) : PropertyInfo.GetGetMethod(true).Invoke(dom, null); #else object val = FieldInfo != null?FieldInfo.GetValue(dom) : PropertyInfo.GetValue(dom); #endif INullableValue ival = val as INullableValue; if (ival != null && ival.IsNull && flags == GV.GetNull) { return(null); } return(val); }
/// <summary> /// Determines whether the given DocumentObject is null (not set). /// </summary> public override bool IsNull(DocumentObject dom) { object val; if (FieldInfo != null) { val = FieldInfo.GetValue(dom); } else { val = PropertyInfo.GetGetMethod(true).Invoke(dom, Type.EmptyTypes); } INullableValue ival = val as INullableValue; if (ival != null) { return(ival.IsNull); } return(false); }
public override object GetValue(DocumentObject dom, GV flags) { object val; if (FieldInfo != null) { val = FieldInfo.GetValue(dom); } else { val = PropertyInfo.GetGetMethod(true).Invoke(dom, Type.EmptyTypes); } INullableValue ival = val as INullableValue; if (ival != null && ival.IsNull && flags == GV.GetNull) { return(null); } return(val); }
public HM1BOutputContext( ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgicalSpecialtyNumberAssignedTimeBlocks, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonNumberAssignedTimeBlocks, INullableValue <decimal> bestBound, INullableValue <decimal> gap, long numberOfExploredNodes, INullableValue <decimal> objectiveValue, TimeSpan overallWallTime) { this.SurgicalSpecialtyNumberAssignedTimeBlocks = surgicalSpecialtyNumberAssignedTimeBlocks; this.SurgeonNumberAssignedTimeBlocks = surgeonNumberAssignedTimeBlocks; this.BestBound = bestBound; this.Gap = gap; this.NumberOfExploredNodes = numberOfExploredNodes; this.ObjectiveValue = objectiveValue; this.OverallWallTime = overallWallTime; }
public HM3BInputContext( ImmutableList <INullableValue <int> > weekdays, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > surgicalSpecialties, ImmutableList <INullableValue <int> > lengthOfStayDays, Bundle machines, Bundle operatingRooms, Bundle surgeons, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > planningHorizon, ImmutableList <INullableValue <int> > scenarios, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgicalSpecialtyNumberAssignedTimeBlocks, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonNumberAssignedTimeBlocks, Duration timeBlockLength, ImmutableList <Tuple <Organization, INullableValue <int>, Duration> > surgeonScenarioWeightedAverageSurgicalDurations, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonLengthOfStayMaximums, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonScenarioMaximumNumberPatients, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int>, INullableValue <decimal> > > surgeonDayScenarioLengthOfStayProbabilities, ImmutableList <Tuple <Device, Location, INullableValue <bool> > > machineOperatingRoomAssignments, INullableValue <int> numberDaysPerWeek, ImmutableList <Tuple <Organization, Location, INullableValue <bool> > > surgicalSpecialtyOperatingRoomAssignments, ImmutableList <Tuple <Organization, Location, INullableValue <bool> > > surgeonOperatingRoomAssignments, ImmutableList <Tuple <Organization, Device, INullableValue <bool> > > surgeonMachineRequirements, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientMeans, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <decimal> > > scenarioProbabilities, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientStandardDeviations, ImmutableList <KeyValuePair <FhirDateTime, INullableValue <bool> > > dayAvailabilities, INullableValue <int> maximumNumberRecoveryWardBeds) { this.Weekdays = weekdays; this.SurgicalSpecialties = surgicalSpecialties; this.LengthOfStayDays = lengthOfStayDays; this.Machines = machines; this.OperatingRooms = operatingRooms; this.Surgeons = surgeons; this.PlanningHorizon = planningHorizon; this.Scenarios = scenarios; this.SurgicalSpecialtyNumberAssignedTimeBlocks = surgicalSpecialtyNumberAssignedTimeBlocks; this.SurgeonNumberAssignedTimeBlocks = surgeonNumberAssignedTimeBlocks; this.TimeBlockLength = timeBlockLength; this.SurgeonScenarioWeightedAverageSurgicalDurations = surgeonScenarioWeightedAverageSurgicalDurations; this.SurgeonLengthOfStayMaximums = surgeonLengthOfStayMaximums; this.SurgeonScenarioMaximumNumberPatients = surgeonScenarioMaximumNumberPatients; this.SurgeonDayScenarioLengthOfStayProbabilities = surgeonDayScenarioLengthOfStayProbabilities; if (machineOperatingRoomAssignments != null && machineOperatingRoomAssignments.Count > 0) { this.MachineOperatingRoomAssignments = machineOperatingRoomAssignments; } else { this.MachineOperatingRoomAssignments = null; } this.NumberDaysPerWeek = numberDaysPerWeek; if (surgicalSpecialtyOperatingRoomAssignments != null && surgicalSpecialtyOperatingRoomAssignments.Count > 0) { this.SurgicalSpecialtyOperatingRoomAssignments = surgicalSpecialtyOperatingRoomAssignments; } else { this.SurgicalSpecialtyOperatingRoomAssignments = null; } if (surgeonOperatingRoomAssignments != null && surgeonOperatingRoomAssignments.Count > 0) { this.SurgeonOperatingRoomAssignments = surgeonOperatingRoomAssignments; } else { this.SurgeonOperatingRoomAssignments = null; } this.SurgeonMachineRequirements = surgeonMachineRequirements; this.SurgeonScenarioMaximumNumberPatientMeans = surgeonScenarioMaximumNumberPatientMeans; this.ScenarioProbabilities = scenarioProbabilities; this.SurgeonScenarioMaximumNumberPatientStandardDeviations = surgeonScenarioMaximumNumberPatientStandardDeviations; this.DayAvailabilities = dayAvailabilities; this.MaximumNumberRecoveryWardBeds = maximumNumberRecoveryWardBeds; }
public HM4InputContext( ImmutableList <INullableValue <int> > weekdays, ImmutableList <Tuple <Organization, ImmutableList <Organization> > > surgicalSpecialties, ImmutableList <INullableValue <int> > lengthOfStayDays, Bundle operatingRooms, Bundle surgeons, ImmutableList <KeyValuePair <INullableValue <int>, FhirDateTime> > planningHorizon, ImmutableList <INullableValue <int> > scenarios, Duration timeBlockLength, ImmutableList <Tuple <Organization, INullableValue <int>, Duration> > surgeonScenarioWeightedAverageSurgicalDurations, ImmutableList <KeyValuePair <Organization, INullableValue <int> > > surgeonLengthOfStayMaximums, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int> > > surgeonScenarioMaximumNumberPatients, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int>, INullableValue <decimal> > > surgeonDayScenarioLengthOfStayProbabilities, INullableValue <int> numberDaysPerWeek, ImmutableList <Tuple <Organization, Location, INullableValue <bool> > > surgeonOperatingRoomAssignments, ImmutableList <Tuple <Organization, Location, INullableValue <int>, INullableValue <int> > > surgeonOperatingRoomDayNumberAssignedTimeBlocks, ImmutableList <Tuple <Location, FhirDateTime, INullableValue <bool> > > operatingRoomDayAssignedAvailabilities, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientMeans, ImmutableList <KeyValuePair <INullableValue <int>, INullableValue <decimal> > > scenarioProbabilities, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <decimal> > > surgeonScenarioMaximumNumberPatientStandardDeviations, ImmutableList <Tuple <Organization, INullableValue <int>, INullableValue <int>, INullableValue <decimal> > > surgeonDayScenarioCumulativeNumberPatients, INullableValue <int> maximumNumberRecoveryWardBeds) { this.Weekdays = weekdays; this.SurgicalSpecialties = surgicalSpecialties; this.LengthOfStayDays = lengthOfStayDays; this.OperatingRooms = operatingRooms; this.Surgeons = surgeons; this.PlanningHorizon = planningHorizon; this.Scenarios = scenarios; this.TimeBlockLength = timeBlockLength; this.SurgeonScenarioWeightedAverageSurgicalDurations = surgeonScenarioWeightedAverageSurgicalDurations; this.SurgeonLengthOfStayMaximums = surgeonLengthOfStayMaximums; this.SurgeonScenarioMaximumNumberPatients = surgeonScenarioMaximumNumberPatients; this.SurgeonDayScenarioLengthOfStayProbabilities = surgeonDayScenarioLengthOfStayProbabilities; this.NumberDaysPerWeek = numberDaysPerWeek; this.SurgeonOperatingRoomAssignments = surgeonOperatingRoomAssignments; this.SurgeonOperatingRoomDayNumberAssignedTimeBlocks = surgeonOperatingRoomDayNumberAssignedTimeBlocks; this.OperatingRoomDayAssignedAvailabilities = operatingRoomDayAssignedAvailabilities; this.SurgeonScenarioMaximumNumberPatientMeans = surgeonScenarioMaximumNumberPatientMeans; this.ScenarioProbabilities = scenarioProbabilities; this.SurgeonScenarioMaximumNumberPatientStandardDeviations = surgeonScenarioMaximumNumberPatientStandardDeviations; this.SurgeonDayScenarioCumulativeNumberPatients = surgeonDayScenarioCumulativeNumberPatients; this.MaximumNumberRecoveryWardBeds = maximumNumberRecoveryWardBeds; }