Beispiel #1
0
        public ActionResult ManageMedDRA()
        {
            ViewBag.MenuItem = CurrentMenuItem;

            var configValue = _unitOfWork.Repository <Config>().Queryable().Single(c => c.ConfigType == ConfigType.MedDRAVersion).ConfigValue;
            var version     = !String.IsNullOrEmpty(configValue) ? configValue : "Not Set";

            var model = new MedDRAListModel {
                CurrentVersion = version
            };

            model.ListItems = _unitOfWork.Repository <TerminologyMedDra>()
                              .Queryable().Include("Parent")
                              .Where(tm => tm.MedDraTermType == "SOC")
                              .ToArray()
                              .Select(tm => new MedDRAListItemModel
            {
                Code       = tm.MedDraCode,
                MedDRAId   = tm.Id,
                ParentTerm = tm.Parent != null ? tm.Parent.DisplayName : "",
                Term       = tm.MedDraTerm,
                TermType   = tm.MedDraTermType,
                Version    = tm.MedDraVersion
            })
                              .ToArray();

            // Prepare drop downs
            ViewBag.TermTypes = new[]
            {
                new SelectListItem {
                    Value = "ALL", Text = "All Classes"
                },
                new SelectListItem {
                    Value = "SOC", Text = "System Organ Class", Selected = true
                },
                new SelectListItem {
                    Value = "HLGT", Text = "High Level Group Term"
                },
                new SelectListItem {
                    Value = "HLT", Text = "High Level Term"
                },
                new SelectListItem {
                    Value = "PT", Text = "Preferred Term"
                },
                new SelectListItem {
                    Value = "LLT", Text = "Lowest Level Term"
                }
            };

            return(View(model));
        }
Beispiel #2
0
        public ActionResult ManageMedDRA(MedDRAListModel model, string button)
        {
            ViewBag.MenuItem = CurrentMenuItem;

            if (button == "Search")
            {
                if (!String.IsNullOrWhiteSpace(model.FindTerm))
                {
                    if (Regex.Matches(model.FindTerm, @"[a-zA-Z]").Count < model.FindTerm.Length)
                    {
                        ModelState.AddModelError("FindTerm", "Term contains invalid characters (Enter A-Z, a-z)");
                    }
                    if (model.FindTerm.Length < 4)
                    {
                        ModelState.AddModelError("FindTerm", "Term must be at least 4 characters");
                    }
                }
                else
                {
                    ModelState.AddModelError("FindTerm", "Term must be entered");
                }

                if (ModelState.IsValid)
                {
                    if (model.TermType == "All")
                    {
                        model.ListItems = _unitOfWork.Repository <TerminologyMedDra>()
                                          .Queryable().Include("Parent")
                                          .Where(tm => tm.MedDraTerm.Contains(model.FindTerm))
                                          .ToArray()
                                          .Select(tm => new MedDRAListItemModel
                        {
                            Code       = tm.MedDraCode,
                            MedDRAId   = tm.Id,
                            ParentTerm = tm.Parent != null ? tm.Parent.DisplayName : "",
                            Term       = tm.MedDraTerm,
                            TermType   = tm.MedDraTermType,
                            Version    = tm.MedDraVersion
                        })
                                          .ToArray();
                    }
                    else
                    {
                        model.ListItems = _unitOfWork.Repository <TerminologyMedDra>()
                                          .Queryable().Include("Parent")
                                          .Where(tm => tm.MedDraTermType == model.TermType && tm.MedDraTerm.Contains(model.FindTerm))
                                          .ToArray()
                                          .Select(tm => new MedDRAListItemModel
                        {
                            Code       = tm.MedDraCode,
                            MedDRAId   = tm.Id,
                            ParentTerm = tm.Parent != null ? tm.Parent.DisplayName : "",
                            Term       = tm.MedDraTerm,
                            TermType   = tm.MedDraTermType,
                            Version    = tm.MedDraVersion
                        })
                                          .ToArray();
                    }

                    // Prepare drop downs
                    ViewBag.TermTypes = new[]
                    {
                        new SelectListItem {
                            Value = "ALL", Text = "All Classes"
                        },
                        new SelectListItem {
                            Value = "SOC", Text = "System Organ Class"
                        },
                        new SelectListItem {
                            Value = "HLGT", Text = "High Level Group Term"
                        },
                        new SelectListItem {
                            Value = "HLT", Text = "High Level Term"
                        },
                        new SelectListItem {
                            Value = "PT", Text = "Preferred Term"
                        },
                        new SelectListItem {
                            Value = "LLT", Text = "Lowest Level Term", Selected = true
                        }
                    };

                    return(View(model));
                }
            }
            else // Import
            {
                string fileName = Path.GetFileName(model.InputFile.FileName);

                bool err = false;

                /*****************************************
                * Validation
                *****************************************/
                if (Path.GetExtension(fileName).ToLower() != ".zip")
                {
                    _summary += String.Format("<li>ERROR: File is not of type ZIP...</li>");
                    err       = true;
                }
                if (Path.GetFileNameWithoutExtension(fileName).ToLower() != "medascii")
                {
                    _summary += String.Format("<li>ERROR: File name incorrect...</li>");
                    err       = true;
                }

                if (err == false)
                {
                    try
                    {
                        var generatedDate = DateTime.Now.ToString("med_yyyyMMddhhmmss");

                        _mainDirectory = String.Format("{0}\\Temp\\", System.AppDomain.CurrentDomain.BaseDirectory);
                        _subDirectory  = String.Format("{0}\\Temp\\{1}\\", System.AppDomain.CurrentDomain.BaseDirectory, generatedDate);

                        // Create folder for purposes of storing zip file content
                        model.InputFile.SaveAs(_mainDirectory + fileName);
                        _summary += String.Format("<li>INFO: Zip file uploaded ...</li>");

                        // create a sub directory for the decompression
                        System.IO.Directory.CreateDirectory(_subDirectory);

                        // Now uncompress file
                        var zip = new ZipFile(_mainDirectory + fileName);
                        zip.ExtractAll(_subDirectory);
                        zip       = null;
                        _summary += String.Format("<li>INFO: Zip file extracted to {0}...</li>", generatedDate);

                        _summary += _meddraService.ValidateSourceData(fileName, _subDirectory);
                        _summary += _meddraService.ImportSourceData(fileName, _subDirectory);
                    }
                    catch (Exception ex)
                    {
                        _summary += String.Format("<li>ERROR: {0}...</li>", ex.Message);
                        err       = true;
                    }
                }

                _summary     += "</ul>";
                model.Summary = _summary;

                model.ListItems = _unitOfWork.Repository <TerminologyMedDra>()
                                  .Queryable().Include("Parent")
                                  .Where(tm => tm.MedDraTerm.Contains(model.FindTerm))
                                  .ToArray()
                                  .Select(tm => new MedDRAListItemModel
                {
                    Code       = tm.MedDraCode,
                    MedDRAId   = tm.Id,
                    ParentTerm = tm.Parent != null ? tm.Parent.DisplayName : "",
                    Term       = tm.MedDraTerm,
                    TermType   = tm.MedDraTermType,
                    Version    = tm.MedDraVersion
                })
                                  .ToArray();

                // Prepare drop downs
                ViewBag.TermTypes = new[]
                {
                    new SelectListItem {
                        Value = "ALL", Text = "All Classes"
                    },
                    new SelectListItem {
                        Value = "SOC", Text = "System Organ Class"
                    },
                    new SelectListItem {
                        Value = "HLGT", Text = "High Level Group Term"
                    },
                    new SelectListItem {
                        Value = "HLT", Text = "High Level Term"
                    },
                    new SelectListItem {
                        Value = "PT", Text = "Preferred Term"
                    },
                    new SelectListItem {
                        Value = "LLT", Text = "Lowest Level Term", Selected = true
                    }
                };

                return(View(model));
            }

            model.ListItems = _unitOfWork.Repository <TerminologyMedDra>()
                              .Queryable().Include("Parent")
                              .Where(tm => tm.MedDraTermType == "SOC")
                              .ToArray()
                              .Select(tm => new MedDRAListItemModel
            {
                Code       = tm.MedDraCode,
                MedDRAId   = tm.Id,
                ParentTerm = tm.Parent != null ? tm.Parent.DisplayName : "",
                Term       = tm.MedDraTerm,
                TermType   = tm.MedDraTermType,
                Version    = tm.MedDraVersion
            })
                              .ToArray();

            // Prepare drop downs
            ViewBag.TermTypes = new[]
            {
                new SelectListItem {
                    Value = "ALL", Text = "All Classes"
                },
                new SelectListItem {
                    Value = "SOC", Text = "System Organ Class"
                },
                new SelectListItem {
                    Value = "HLGT", Text = "High Level Group Term"
                },
                new SelectListItem {
                    Value = "HLT", Text = "High Level Term"
                },
                new SelectListItem {
                    Value = "PT", Text = "Preferred Term"
                },
                new SelectListItem {
                    Value = "LLT", Text = "Lowest Level Term", Selected = true
                }
            };

            return(View(model));
        }