public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { // RSL 8/15/13: I have no idea where this GetModel call goes, but it is NOT the one in this file. // this model does not need the editing/lookup support (using InitializeModel) var m = post.GetModel <ConditionsModel>(); m.RequestType = ConditionsRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); IList <string> errorMessages; if (!Validate(m, out errorMessages)) { return new DnsRequestTransaction { ErrorMessages = errorMessages, IsFailed = true } } ; byte[] requestBuilderBytes = BuildRequest(request, m); byte[] modelBytes = BuildUIArgs(m); var newDocuments = new List <DocumentDTO> { new DocumentDTO(REQUEST_FILENAME, "application/xml", false, DocumentKind.Request, requestBuilderBytes), new DocumentDTO(REQUEST_ARGS_FILENAME, "application/lpp-dns-uiargs", true, DocumentKind.Request, modelBytes), }; return(new DnsRequestTransaction { NewDocuments = newDocuments, UpdateDocuments = null, RemoveDocuments = request.Documents }); }
public DnsResult Validate(IDnsRequestContext context) { if (context.RequestType.IsMetadataRequest) { return(DnsResult.Success); } var datacontext = System.Web.HttpContext.Current.DataContext(); if (AsyncHelpers.RunSync <bool>(() => datacontext.HasPermission(Auth.ApiIdentity, Lpp.Dns.DTO.Security.PermissionIdentifiers.Portal.SkipTwoDataMartRule))) { return(DnsResult.Success); } var success = (from r in datacontext.Requests let totalCount = r.DataMarts.Where(d => d.Status != DTO.Enums.RoutingStatus.Canceled).Count() let ownCount = r.DataMarts.Where(d => d.Status != DTO.Enums.RoutingStatus.Canceled).Count(d => d.DataMart.OrganizationID == r.UpdatedBy.OrganizationID) let otherCount = r.DataMarts.Where(d => d.Status != DTO.Enums.RoutingStatus.Canceled).Count(d => d.DataMart.OrganizationID != r.UpdatedBy.OrganizationID) where r.ID == context.RequestID select totalCount >= 2 && otherCount >= 1).First(); if (success) { return(DnsResult.Success); } return(DnsResult.Failed("The system requires that you submit your query to 2 or more DataMarts from different organizations. Please select at least 1 DataMart from 2 separate organizations.")); }
private byte[] BuildComposerRequest(IDnsRequestContext request, ConditionsModel m) { request_builder requestBuilder = LoadReportHeader(request); requestBuilder.request.criteria = new criteria(); IList <variablesType> IncludeList = new List <variablesType>(); IList <variablesType> ExcludeList = new List <variablesType>(); foreach (var criteriaGroup in m.CriteriaGroups) { if (criteriaGroup.ExcludeCriteriaGroup == true) { ExcludeList.Add(BuildTerms(criteriaGroup)); } else { IncludeList.Add(BuildTerms(criteriaGroup)); } } if (IncludeList.Count > 0) { requestBuilder.request.criteria.inclusion_criteria = IncludeList.ToArray(); } if (ExcludeList.Count > 0) { requestBuilder.request.criteria.exclusion_criteria = ExcludeList.ToArray(); } LoadReportSelector(m, requestBuilder); return(SerializeRequest(requestBuilder)); }
public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { var newDocuments = new System.Collections.Generic.List <DocumentDTO>(); var removeDocuments = new System.Collections.Generic.List <Document>(); var m = post.GetModel <SqlDistributionModel>(); newDocuments.Add(new DocumentDTO { FileName = request.Header.Name, Name = request.Header.Name, Kind = DocumentKind.Request, MimeType = "text/plain", Viewable = true, Data = GetBytes(m.SqlQuery) }); var doc = request.Documents.FirstOrDefault(s => s.Kind == DocumentKind.Request); if (doc != null) { removeDocuments.Add(doc); } return(new DnsRequestTransaction { NewDocuments = newDocuments, UpdateDocuments = null, RemoveDocuments = removeDocuments }); }
public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { var newDocuments = new List <DocumentDTO>(); var m = post.GetModel <SASDistributionModel>(); var removedFiles = ConvertJSONtoStringList(m.RemovedFilesList); Document[] removedDocuments = null; if (removedFiles.Any()) { var removedFileIDs = removedFiles.Select(f => new Guid(f)); using (var db = new DataContext()) { removedDocuments = (from d in db.Documents where removedFileIDs.Contains(d.ID) select d).ToArray(); db.Documents.RemoveRange(removedDocuments); db.SaveChanges(); } } return(new DnsRequestTransaction { NewDocuments = newDocuments, UpdateDocuments = null, RemoveDocuments = removedDocuments }); }
public Func <HtmlHelper, IHtmlString> EditRequestView(IDnsRequestContext context) { var gm = InitializeModel(GetModel(context)); var model = InitializeModel(gm, context); return(html => html.Partial <Create>().WithModel(model)); }
public static SASDistributionModel InitializeModel(SASDistributionModel m, IDnsRequestContext request) { m.RequestType = SASDistributionRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.RequestID = request.RequestID; m.RequestFileList = new List <FileSelection>(); request.Documents.Where(s => s.Kind == DocumentKind.User).ForEach(s => m.RequestFileList.Add(new Lpp.Dns.HealthCare.Models.FileSelection(s.Name, s.Length))); return(m); }
public IEnumerable <IDnsResponseAggregationMode> GetAggregationModes(IDnsRequestContext context) { // // TODO: Dynamically configure the view options based on the request type // //return new[] { DataCheckerViewOptions.TableView, DataCheckerViewOptions.BarChartView, DataCheckerViewOptions.PieChartView }; return(null); }
public Func <HtmlHelper, IHtmlString> EditRequestView(IDnsRequestContext context) { return(html => html.Partial <Views.Summary.Create>(new Models.MedicalRequestModel { RequestType = SummaryRequestType.All.FirstOrDefault(rt => rt.Id == context.RequestType.Id), Stratifications = Stratifications.All.Where(s => s.StratificationType == "age").ToList() })); }
public Func <HtmlHelper, IHtmlString> EditRequestReDisplay(IDnsRequestContext request, IDnsPostContext post) { // RSL 8/15/13: I have no idea where this GetModel call goes, but it is NOT the one in this file. var gm = InitializeModel(post.GetModel <ConditionsModel>()); var model = InitializeModel(gm, request); return(html => html.Partial <Create>().WithModel(model)); }
public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { return(new DnsRequestTransaction { NewDocuments = null, UpdateDocuments = null, RemoveDocuments = null }); }
public DnsResult Validate(IDnsRequestContext context) { if (System.Web.HttpContext.Current.DataContext().RequestDataMarts.Any(dm => dm.RequestID == context.RequestID && dm.Status != DTO.Enums.RoutingStatus.Canceled)) { return(DnsResult.Success); } return(DnsResult.Failed("Please select at least one DataMart")); }
public static ModularProgramModel InitializeModel(ModularProgramModel m, IDnsRequestContext request) { m.RequestType = ModularProgramRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.RequestTypeName = request.RequestType.Name; m.RequestId = request.RequestID; string requestName = GetRequestName(request.RequestType.ID.ToString()); string requestViewName = GetRequestViewName(request.RequestType.ID.ToString()); return(m); }
public IEnumerable <IDnsResponseAggregationMode> GetAggregationModes(IDnsRequestContext context) { using (DataContext db = new DataContext()) { bool canViewIndividualResults = db.CanViewIndividualResults(Auth.ApiIdentity, Auth.CurrentUserID, context.RequestID); return(canViewIndividualResults ? new[] { SampleViewOptions.AggregateView, SampleViewOptions.IndividualView } : null); } }
public IEnumerable <IDnsResponseAggregationMode> GetAggregationModes(IDnsRequestContext context) { using (var db = new DataContext()) { //bool canViewIndividualResults = Lpp.Utilities.AsyncHelpers.RunSync<bool>(() => db.HasPermissions<Request>(Auth.ApiIdentity, context.RequestID, DTO.Security.PermissionIdentifiers.Request.ViewIndividualResults)); bool canViewIndividualResults = db.CanViewIndividualResults(Auth.ApiIdentity, Auth.CurrentUserID, context.RequestID); return(canViewIndividualResults ? new[] { SQLViewOptions.AggregateView, SQLViewOptions.IndividualView } : null); } }
DataCheckerModel InitializeModel(DataCheckerModel m, IDnsRequestContext request) { m.RequestType = DataCheckerRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.RequestId = request.RequestID; m.DataPartners = (from o in DataContext.Organizations where o.DataMarts.Any(dm => dm.Deleted == false && dm.Projects.Any(p => p.Project.Active && p.Project.Deleted == false && p.Project.Requests.Any(r => r.ID == m.RequestId))) && o.Deleted == false orderby o.Name ascending select new { o.Name, o.Acronym }).ToArray() .Select(x => new KeyValuePair <string, string>(x.Name, x.Acronym)).ToArray(); return(m); }
private SessionMetadata GetSessionMetadata(PluginSession sess, IDnsRequestContext req) { throw new Lpp.Utilities.CodeToBeUpdatedException(); //return new SessionMetadata //{ // RequestId = sess.RequestID, // ReturnUrl = sess.ReturnUrl, // ModelId = req.Model.Id.ToString(), // RequestTypeId = req.RequestType.Id.ToString() //}; }
public Func <HtmlHelper, IHtmlString> DisplayRequest(IDnsRequestContext context) { var gm = InitializeModel(GetModel(context)); var m = InitializeModel(gm, context); var codeIds = (m.Codes ?? "").Split(','); return(html => html .Partial <Display>() .WithModel(new ConditionsViewModel { Base = m, })); }
public DnsResult ValidateForSubmission(IDnsRequestContext context) { PubHealthModel m = GetModel(context); IList <string> errorMessages; if (Validate(m, out errorMessages)) { return(DnsResult.Success); } else { return(DnsResult.Failed(errorMessages.ToArray <string>())); } }
/// <summary> /// Initializes the model for editing, relying on static lists /// </summary> /// <param name="m"></param> /// <returns></returns> private static ConditionsModel InitializeModel(ConditionsModel m, IDnsRequestContext request) { var periodStratification = PeriodStratificationSelectionList.periods.Select(period => new StratificationCategoryLookUp { CategoryText = period.Name, StratificationCategoryId = period.Code }); var ageStratification = AgeStratificationSelectionList.ages.Select(age => new StratificationCategoryLookUp { CategoryText = age.Display, StratificationCategoryId = age.Code }); m.DiseaseSelections = DiseaseSelectionList.diseases.Select(disease => new ConditionsSelection { Name = disease.Name, Display = disease.Display, Value = disease.Code }); m.RaceSelections = RaceSelectionList.races.Select(race => new StratificationCategoryLookUp { CategoryText = race.Name, StratificationCategoryId = race.Code }); m.EthnicitySelections = RaceSelectionList.ethnicities.Select(ethnicity => new StratificationCategoryLookUp { CategoryText = ethnicity.Name, StratificationCategoryId = ethnicity.Code }); // this is only set by our GetModel, not the generic one, so ensure it is set here m.RequestType = ConditionsRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.SexSelections = SexSelectionList.sexes.Select(sex => new StratificationCategoryLookUp { CategoryText = sex.Name, StratificationCategoryId = sex.Code }); m.ZipCodeSelections = ZipCodeSelectionList.zipCodes.Select(zip => new StratificationCategoryLookUp { CategoryText = zip.ZipCode, ClassificationText = zip.Name, StratificationCategoryId = zip.Code }); m.ReportSelections = new[] { new ReportSelection { Name = "PeriodStratification", Display = "Period", Value = (int)ReportSelectionCode.Period, SelectionList = periodStratification }, new ReportSelection { Name = "AgeStratification", Display = "Age", Value = (int)ReportSelectionCode.Age, SelectionList = ageStratification }, new ReportSelection { Name = "SexStratification", Display = "Sex", Value = (int)ReportSelectionCode.Sex }, new ReportSelection { Name = "RaceStratification", Display = "Race", Value = (int)ReportSelectionCode.Race }, new ReportSelection { Name = "CenterStratification", Display = "Center", Value = (int)ReportSelectionCode.Center }, new ReportSelection { Name = "ZipStratification", Display = "Zip", Value = (int)ReportSelectionCode.Zip }, }; return(m); }
public Func <HtmlHelper, IHtmlString> DisplayRequest(IDnsRequestContext context) { var doc = context.Documents.FirstOrDefault(); if (doc == null) { return(html => new MvcHtmlString("Query not yet created")); } return(html => { using (var s = doc.OpenBody()) return new MvcHtmlString(new StreamReader(s).ReadToEnd()); }); }
public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { using (var db = new DataContext()) { var newDocuments = new List <DocumentDTO>(); var m = post.GetModel <ModularProgramModel>(); var removedFiles = SplitToGuids(m.RemovedFileList); var removedDocuments = new List <Document>(); if (removedFiles != null && removedFiles.Any()) { removedDocuments.AddRange((from d in db.Documents where removedFiles.Contains(d.ID) select d).ToArray()); db.Documents.RemoveRange(removedDocuments); db.SaveChanges(); } m.PackageManifest = ConvertJSONtoProgramItems(m.ModularProgramList); m.Files = db.Documents.Where(d => d.ItemID == request.RequestID && !d.FileName.StartsWith("ModularProgramRequest.")).Select(d => new FileItem { MimeType = d.MimeType, Name = d.Name, Size = d.Length.ToString() }).ToList(); // Serialize the request XML document containing the manifest, add it to the new document list, add the old one to the remove list. string requestName = GetRequestName(request.RequestType.ID.ToString()); byte[] requestBuilderBytes = BuildRequest(request, m); newDocuments.Add(new DocumentDTO(requestName, "application/xml", false, DocumentKind.SystemGeneratedNoLog, requestBuilderBytes)); request.Documents.Where(s => s.Name == requestName).ForEach(s => removedDocuments.Add(s)); //Serialize the request view as an HTML document var viewDocument = BuildRequestViewDocument(new MemoryStream(requestBuilderBytes)).ToArray(); string requestViewName = GetRequestViewName(request.RequestType.ID.ToString()); newDocuments.Add(new DocumentDTO(requestViewName, "text/html", true, DocumentKind.SystemGeneratedNoLog, viewDocument)); request.Documents.Where(s => s.Name == requestViewName).ForEach(s => removedDocuments.Add(s)); return(new DnsRequestTransaction { NewDocuments = newDocuments, UpdateDocuments = null, RemoveDocuments = removedDocuments, //SearchTerms = GetSearchTerms(request, m) }); } }
public DnsRequestTransaction EditRequestPost(IDnsRequestContext request, IDnsPostContext post) { throw new Lpp.Utilities.CodeToBeUpdatedException(); //var session = Sessions.FindSession(request.RequestId); //if (session == null) return DnsRequestTransaction.Failed("Unknown Request ID"); //if (session.IsAborted) return DnsRequestTransaction.Failed("Request has been aborted"); //if (!session.IsCommitted) return DnsRequestTransaction.Failed("Request creation is not finished yet"); //return new DnsRequestTransaction //{ // RemoveDocuments = request.Documents, // NewDocuments = DocumentsFrom(session) //}; }
public DnsResult ValidateForSubmission(IDnsRequestContext context) { // this model does not need the editing/lookup support (using InitializeModel) ConditionsModel m = GetModel(context); IList <string> errorMessages; if (!Validate(m, out errorMessages)) { return(DnsResult.Failed(errorMessages.ToArray <string>())); } else { return(DnsResult.Success); } }
public Func <HtmlHelper, IHtmlString> DisplayRequest(IDnsRequestContext context) { List <FileSelection> Files = new List <FileSelection>(); foreach (var doc in context.Documents) { Files.Add(new FileSelection(doc.Name, doc.Length, doc.ID, null, doc.MimeType)); } return(html => html .Partial <Views.SASDistribution.Display>() .WithModel(new Models.SASDistributionModel { RequestFileList = Files })); }
private ConditionsModel GetModel(IDnsRequestContext context) { var m = new ConditionsModel { StartPeriodDate = DateTime.Now, EndPeriodDate = DateTime.Now, RequestType = ConditionsRequestType.All.FirstOrDefault(rt => rt.ID == context.RequestType.ID) }; if (context.Documents != null && context.Documents.Count() > 0) { var doc = (from aDoc in context.Documents where aDoc.Name == REQUEST_ARGS_FILENAME select aDoc).FirstOrDefault(); XmlSerializer serializer = new XmlSerializer(typeof(ConditionsModel)); using (var db = new DataContext()) { using (var docStream = new DocumentStream(db, doc.ID)) { using (XmlTextReader reader = new XmlTextReader(docStream)) { ConditionsModel deserializedModel = (ConditionsModel)serializer.Deserialize(reader); m.AgeStratification = deserializedModel.AgeStratification; m.Codes = deserializedModel.Codes; m.Disease = deserializedModel.Disease; m.EndPeriodDate = deserializedModel.EndPeriodDate; m.ICD9Stratification = deserializedModel.ICD9Stratification; m.MaxAge = deserializedModel.MaxAge; m.MinAge = deserializedModel.MinAge; m.MinVisits = deserializedModel.MinVisits; m.PeriodStratification = deserializedModel.PeriodStratification; m.Race = deserializedModel.Race; m.Ethnicity = deserializedModel.Ethnicity; m.Report = deserializedModel.Report; m.Sex = deserializedModel.Sex; m.TobaccoUse = deserializedModel.TobaccoUse; m.StartPeriodDate = deserializedModel.StartPeriodDate; } } } } return(m); }
public static FileDistributionModel InitializeModel(FileDistributionModel m, IDnsRequestContext request) { using (var db = new DataContext()) { m.RequestType = FileDistributionRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.RequestId = request.RequestID; m.RequestFileList = (from d in db.Documents where d.ItemID == request.RequestID select new FileSelection { DataMartName = null, FileName = d.FileName, ID = d.ID, MimeType = d.MimeType, Size = d.Length }).ToList(); return(m); } }
public static SqlDistributionModel InitializeModel(SqlDistributionModel m, IDnsRequestContext request) { m.RequestType = SqlDistributionRequestType.All.FirstOrDefault(rt => rt.ID == request.RequestType.ID); m.RequestID = request.RequestID; m.SqlQuery = ""; if (request.Documents != null && request.Documents.Count() > 0) { using (var db = new DataContext()) { var doc = request.Documents.FirstOrDefault(s => s.Kind == DocumentKind.Request); if (doc != null) { m.SqlQuery = System.Text.UTF8Encoding.UTF8.GetString(doc.GetData(db)); } } } return(m); }
private byte[] BuildRequest(IDnsRequestContext request, ModularProgramModel m) { request_builder requestBuilder = new request_builder(); requestBuilder.header = new header(); requestBuilder.header.request_type = request.RequestType.Name; requestBuilder.header.request_name = request.Header.Name; requestBuilder.header.request_description = request.Header.Description; if (request.Header.DueDate != null) { requestBuilder.header.due_date = (DateTime)request.Header.DueDate; } requestBuilder.header.activity = request.Header.Activity != null ? request.Header.Activity.Name : null; requestBuilder.header.activity_description = request.Header.ActivityDescription; requestBuilder.header.submitter_email = request.Header.AuthorEmail; requestBuilder.request = new request(); // Build package manifest IList <Lpp.Dns.HealthCare.ModularProgram.Data.Serializer.ModularProgramItem> list = new List <Lpp.Dns.HealthCare.ModularProgram.Data.Serializer.ModularProgramItem>(); m.PackageManifest.ForEach(s => list.Add(new Data.Serializer.ModularProgramItem() { ProgramName = s.ProgramName, Description = s.Description, TypeCode = s.TypeCode, Scenarios = s.Scenarios })); requestBuilder.request.PackageManifest = list.ToArray(); requestBuilder.request.Files = m.Files.ToArray(); byte[] requestBuilderBytes; XmlSerializer serializer = new XmlSerializer(typeof(request_builder)); using (StringWriter sw = new StringWriter()) { using (XmlWriter xw = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true })) { serializer.Serialize(xw, requestBuilder, null); requestBuilderBytes = Encoding.UTF8.GetBytes(sw.ToString()); } } return(requestBuilderBytes); }
/// <summary> /// Helper function to load up the report header from the request /// </summary> /// <param name="request"></param> /// <returns></returns> private request_builder LoadReportHeader(IDnsRequestContext request) { request_builder requestBuilder = new request_builder(); requestBuilder.header = new header(); requestBuilder.header.request_type = request.RequestType.Name; requestBuilder.header.request_name = request.Header.Name; requestBuilder.header.request_description = request.Header.Description; if (request.Header.DueDate != null) { requestBuilder.header.due_date = (DateTime)request.Header.DueDate; } requestBuilder.header.activity = request.Header.Activity != null ? request.Header.Activity.Name : null; requestBuilder.header.activity_description = request.Header.ActivityDescription; requestBuilder.request = new request(); return(requestBuilder); }