Пример #1
0
        public string Run([FromBody] StudySettings revisedMappings)
        {
            // Apply Ex setting used for reference computation
            revisedMappings.UseEx = revisedMappings.UseExRef;

            DataSet data = revisedMappings.ToMappingDataSet(true);

            // Delete old analysis results
            DeleteAnalysisResults(revisedMappings);

            // Run the analysis code
            return(SasClientObject.NewJob(data, "RunStudyAnalysis").ToString());
        }
        public IDictionary <string, IEnumerable <string> > GetReference([FromBody] StudySettings revisedMappings)
        {
            // Apply Ex setting for reference computation
            revisedMappings.UseEx = revisedMappings.UseExRef;

            DataSet     data = revisedMappings.ToMappingDataSet();
            JobResponse response;

            var id = SasClientObject.NewJob(data, "ListReferences");

            do
            {
                System.Threading.Thread.Sleep(500);
                response = SasClientObject.Getjob(id);
            } while (response.Status == SasJobs.Messages.StatusCode.Running);

            // return the potential references
            if (response.Status == SasJobs.Messages.StatusCode.Done)
            {
                var resultsTable = response.Data.Tables[0];
                if (resultsTable.Rows.Count > 0)
                {
                    var referenceTable = new Dictionary <string, IEnumerable <string> >();
                    foreach (var row in resultsTable.AsEnumerable())
                    {
                        var cohort = row["CohortDescription"].ToString();

                        if (!referenceTable.ContainsKey(cohort))
                        {
                            referenceTable.Add(cohort, new List <string>());
                        }

                        var reference = row["Reference"].ToString().Trim();
                        if (!String.IsNullOrWhiteSpace(reference))
                        {
                            ((List <string>)referenceTable[cohort])
                            .Add(reference);
                        }
                    }
                    return(referenceTable);
                }
            }

            return(null);
        }
Пример #3
0
        public int GenerateDemographicSummary([FromBody] StudySettings revisedMappings)
        {
            // Apply Ex setting for reference computation
            revisedMappings.UseEx = revisedMappings.UseExRef;

            DataSet     data = revisedMappings.ToMappingDataSet(true);
            JobResponse response;
            Guid        id;

            id = SasClientObject.NewJob(data, "Reports_DemographicSummary");

            // Wait for job response
            do
            {
                System.Threading.Thread.Sleep(500);
                response = SasClientObject.Getjob(id);
            } while (response.Status == SasJobs.Messages.StatusCode.Running);

            // Return the completion code
            return(response.Status == SasJobs.Messages.StatusCode.Done ? 0 : -1);
        }
        public int?DetermineStudyDesign([FromBody] StudySettings revisedMappings)
        {
            DataSet     data = revisedMappings.ToMappingDataSet();
            JobResponse response;

            var id = SasClientObject.NewJob(data, "DetermineStudyDesign");

            //var id = SasClientObject.NewJob(data, "variabilitytest4");
            do
            {
                System.Threading.Thread.Sleep(500);
                response = SasClientObject.Getjob(id);
            } while (response.Status == SasJobs.Messages.StatusCode.Running);

            // return the potential references
            if (response.Status == SasJobs.Messages.StatusCode.Done)
            {
                var resultsTable = response.Data.Tables[0];
                if (resultsTable.Rows.Count > 0)
                {
                    var studyDesign = resultsTable.AsEnumerable().First()["StudyDesign"].ToString();
                    switch (studyDesign.ToLower())
                    {
                    case "unknown": return(1);

                    case "sequential": return(2);

                    case "parallel": return(3);

                    case "crossover": return(4);

                    default: return(0);
                    }
                }
            }

            return(null);
        }