public IS1ParameterElementFactory CreateS1ParameterElementFactory()
        {
            IS1ParameterElementFactory factory = null;

            try
            {
                factory = new S1ParameterElementFactory();
            }
            catch (Exception exception)
            {
                this.Log.Error("Exception message: " + exception.Message + " and stacktrace " + exception.StackTrace);
            }

            return(factory);
        }
 public IS1 Calculate(
     IS1ParameterElementFactory S1ParameterElementFactory,
     IS1Factory S1Factory,
     Ir r,
     Ix x,
     IΔ Δ)
 {
     return(S1Factory.Create(
                r.Value
                .Select(
                    i => Tuple.Create(
                        i,
                        x.Value
                        .Where(j => j.rIndexElement == i && j.Value.Value.Value)
                        .Select(j => j.sIndexElement)
                        .Select(j => Δ.GetSurgicalSpecialtyOfSurgeon(j).Value)
                        .Distinct()
                        .Count()))
                .Where(i => i.Item2 > 1)
                .Select(i => S1ParameterElementFactory.Create(i.Item1))
                .ToImmutableList()));
 }