package de.randi2.simulation.service; import java.util.List; import de.randi2.model.Trial; import de.randi2.model.TrialSite; import de.randi2.simulation.distribution.AbstractDistribution; import de.randi2.simulation.model.DistributionSubjectProperty; import de.randi2.simulation.model.SimulationResult; public interface SimulationService { /** * The method simulated a trial with the passed parameters and return the simulation result. * @param trial The simulation trial. * @param properties The patient properties with their specified distribution. * @param distributionTrialSites The trial sites with their specified distribution. * @param runs The count of the simulation runs. * @param maxTime The maximal time for the simulation. * @return The simulation result. */ public SimulationResult simulateTrial(Trial trial,List<DistributionSubjectProperty> properties,AbstractDistribution<TrialSite> distributionTrialSites, int runs, long maxTime, boolean collectRawData); // public long estimateSimulationDuration(Trial trial, List<DistributionSubjectProperty> properties, AbstractDistribution<TrialSite> distributionTrialSites, int runs, long maxTime); }