Beispiel #1
0
        public string GetPlotData(SpectralPlotParameters plotParameters)
        {
            _logger.LogInformation("Get the plot data for the Spectral Panel");

            plotParameters.YAxis = plotParameters.PlotName;

            // set up the absorber concentrations
            var chromophoreAbsorbers = new List <IChromophoreAbsorber>();

            foreach (var absorber in plotParameters.AbsorberConcentration)
            {
                chromophoreAbsorbers.Add(new ChromophoreAbsorber(Enum.Parse <ChromophoreType>(absorber.Label, true), absorber.Value));
            }

            // set up the scatterer
            IScatterer scatterer;

            switch (plotParameters.ScatteringType)
            {
            case ScatteringType.PowerLaw:
                scatterer = plotParameters.PowerLawScatterer;
                break;

            case ScatteringType.Intralipid:
                scatterer = plotParameters.IntralipidScatterer;
                break;

            case ScatteringType.Mie:
                scatterer = plotParameters.MieScatterer;
                break;

            default:
                scatterer = new PowerLawScatterer();
                break;
            }

            // get the wavelength
            plotParameters.Wavelengths = plotParameters.XAxis.AsEnumerable().ToArray();
            // set up the tissue
            plotParameters.Tissue = new Tissue(chromophoreAbsorbers, scatterer, plotParameters.TissueType);

            return(_plotFactory.GetPlot(PlotType.Spectral, plotParameters));
        }
Beispiel #2
0
 public string Post([FromBody] SpectralPlotParameters plotParameters)
 {
     return(_spectralService.GetPlotData(plotParameters));
 }