Example #1
0
        private void downloadWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            downloadWorker.ReportProgress(0);

            // Add new scriptures to library
            int i     = 0;
            int total = scriptures.allReferences.Count();

            foreach (ScriptureReference reference in scriptures.allReferences)
            {
                /* Checks for existing scriptures that match.
                 * Library now is reset to empty, so this is unnecessary.
                 * int exists = -1;
                 * foreach (int id in library.ResourceIDs)
                 * {
                 *  ScriptureReference existing = ScriptureReference.Parse(library.GetResource(id).reference);
                 *
                 *  if (existing != null && existing.Overlap(reference) > 1)
                 *  {
                 *      exists = id;
                 *      break;
                 *  }
                 * }*/

                StudyResource newResource = new StudyResource(reference, scriptures.Topics(reference));
                if (newResource != null)
                {
                    library.resources.Add(newResource);
                }


                i++;
                downloadWorker.ReportProgress((int)(100 * ((float)i / total)));
            }
        }
Example #2
0
        public IActionResult CreateStudy([FromBody] StudyResource studyResource)
        {
            Guid studyId = Guid.NewGuid();

            // TODO: Clean up null checking to not duplicate checks
            Guid     facilityId                  = studyResource.Facility != null ? studyResource.Facility.Id : Guid.Empty;
            string   facilityName                = studyResource.Facility != null ? studyResource.Facility.Name : string.Empty;
            Guid     procedureId                 = studyResource.Procedure != null ? studyResource.Procedure.Id : Guid.Empty;
            string   procedureName               = studyResource.Procedure != null ? studyResource.Procedure.Name : string.Empty;
            Guid     imageSetId                  = studyResource.ImageSet != null ? studyResource.ImageSet.Id : Guid.Empty;
            string   dicomInstanceId             = studyResource.ImageSet != null ? studyResource.ImageSet.DicomInstanceId : string.Empty;
            int      totalImages                 = studyResource.ImageSet != null ? studyResource.ImageSet.TotalImages : 0;
            string   patientFirstName            = studyResource.Patient != null ? studyResource.Patient.FirstName : string.Empty;
            string   patientLastName             = studyResource.Patient != null ? studyResource.Patient.LastName : string.Empty;
            string   patientGender               = studyResource.Patient != null ? studyResource.Patient.Gender : string.Empty;
            string   patientMrn                  = studyResource.Patient != null ? studyResource.Patient.Mrn : string.Empty;
            DateTime?patientDateOfBirth          = studyResource.Patient != null ? studyResource.Patient.DateOfBirth : null;
            string   referringPhysicianFirstName = studyResource.ReferringPhysician != null ? studyResource.ReferringPhysician.FirstName : string.Empty;
            string   referringPhysicianLastName  = studyResource.ReferringPhysician != null ? studyResource.ReferringPhysician.LastName : string.Empty;

            var command = new CreateStudyCommand(studyId, facilityId, facilityName,
                                                 studyResource.AccessionNumber, procedureId, procedureName,
                                                 studyResource.ProcedureDate, studyResource.Reason, imageSetId, dicomInstanceId,
                                                 totalImages, totalImages, patientFirstName, patientLastName, patientGender, patientDateOfBirth,
                                                 patientMrn, referringPhysicianFirstName, referringPhysicianLastName);

            Task.Run(() => _commandBus.Send(command));

            return(Ok(studyId.ToString() + " created"));
        }
 public void SetResource(StudyResource resource)
 {
     this.resource = resource;
     UpdateView();
 }
        public Task <ReturnStudyResource> GetStudyResource(int moduleID, string Sorting)
        {
            return(Task.Run(() =>
            {
                using (MIUEntities db = new MIUEntities())
                {
                    ReturnStudyResource StudyResource = new ReturnStudyResource();
                    List <RecommendedEbookInfo> BookInfoList = new List <RecommendedEbookInfo>();
                    List <StudyResourceDetailInfo> SRInfoList = new List <StudyResourceDetailInfo>();
                    StudyResourceInfoList studyResourceInfoList = new StudyResourceInfoList();
                    try
                    {
                        #region LearningOutcome

                        LearningOutcomeInfo learningOutcomeInfo = new LearningOutcomeInfo();

                        List <LearningOutcome> lcs = db.LearningOutcomes.Where(x => x.ModuleID == moduleID).ToList();

                        List <LearningOutcomeInfoList> LearningOutcomeInfoList = new List <LearningOutcomeInfoList>();

                        List <AssignmentCriteriaInfo> AssignmentCriterias = new List <AssignmentCriteriaInfo>();

                        List <AssignmentCriteriaDetailInfo> AssignmentCriteriaDetails = new List <AssignmentCriteriaDetailInfo>();
                        foreach (var lc in lcs)
                        {
                            LearningOutcomeInfoList LearningOutcome = new LearningOutcomeInfoList();
                            LearningOutcome.AssignmentCriteriaInfo = new List <AssignmentCriteriaInfo>();
                            LearningOutcome.AssignmentCriteriaDetailInfo = new List <AssignmentCriteriaDetailInfo>();
                            PropertyCopier <LearningOutcome, LearningOutcomeInfoList> .Copy(lc, LearningOutcome);

                            foreach (var ac in lc.AssignmentCriterias)
                            {
                                if (lc.ID == ac.LearningOutcomeID)
                                {
                                    AssignmentCriteriaInfo AssignmentCriteriaInfo = new AssignmentCriteriaInfo();
                                    PropertyCopier <AssignmentCriteria, AssignmentCriteriaInfo> .Copy(ac, AssignmentCriteriaInfo);
                                    LearningOutcome.AssignmentCriteriaInfo.Add(AssignmentCriteriaInfo);
                                }


                                foreach (var acd in ac.AssignmentCriteriaDetails)
                                {
                                    if (acd.AssignmentCriteriaID == ac.ID)
                                    {
                                        AssignmentCriteriaDetailInfo AssignmentCriteriaDetailInfo = new AssignmentCriteriaDetailInfo();
                                        PropertyCopier <AssignmentCriteriaDetail, AssignmentCriteriaDetailInfo> .Copy(acd, AssignmentCriteriaDetailInfo);
                                        LearningOutcome.AssignmentCriteriaDetailInfo.Add(AssignmentCriteriaDetailInfo);
                                    }
                                }
                            }
                            LearningOutcomeInfoList.Add(LearningOutcome);
                        }

                        learningOutcomeInfo.LearningOutcomeInfoList = LearningOutcomeInfoList;

                        #endregion

                        var items = db.StudyResources.Where(s => s.ModuleID == moduleID);
                        if (items != null && items.Count() > 0)
                        {
                            StudyResource studyResource = new StudyResource();
                            studyResource = items.First();
                            PropertyCopier <StudyResource, StudyResourceInfoList> .Copy(studyResource, studyResourceInfoList);

                            List <StudyResourceDetail> StudyResourceDetails = studyResource.StudyResourceDetails.ToList();
                            foreach (var StudyResourceDetail in StudyResourceDetails)
                            {
                                StudyResourceDetailInfo srinfo = new StudyResourceDetailInfo();
                                PropertyCopier <StudyResourceDetail, StudyResourceDetailInfo> .Copy(StudyResourceDetail, srinfo);
                                srinfo.Name = MIUFileServer.GetFileUrl("Resource/" + moduleID, srinfo.Name);
                                SRInfoList.Add(srinfo);
                            }

                            List <RecommendedEbook> recommendedEbooks = studyResource.RecommendedEbooks.ToList();
                            foreach (var recommendedEbook in recommendedEbooks)
                            {
                                RecommendedEbookInfo bookinfo = new RecommendedEbookInfo();
                                PropertyCopier <RecommendedEbook, RecommendedEbookInfo> .Copy(recommendedEbook, bookinfo);
                                bookinfo.Name = MIUFileServer.GetFileUrl("Resource/" + moduleID, bookinfo.Name);
                                BookInfoList.Add(bookinfo);
                            }
                        }
                        StudyResource.LearningOutcomeInfo = learningOutcomeInfo;

                        switch (Sorting)
                        {
                        case "all": StudyResource.RecommendedEbookInfo = BookInfoList.OrderByDescending(a => a.ModifiedDate).ToList(); break;

                        case "ascending": StudyResource.RecommendedEbookInfo = BookInfoList.OrderBy(a => a.Name).ToList(); break;

                        case "descending": StudyResource.RecommendedEbookInfo = BookInfoList.OrderByDescending(a => a.Name).ToList(); break;
                        }

                        switch (Sorting)
                        {
                        case "all": StudyResource.ModuleMaterials = SRInfoList.OrderByDescending(a => a.ModifiedDate).ToList(); break;

                        case "ascending": StudyResource.ModuleMaterials = SRInfoList.OrderBy(a => a.Name).ToList(); break;

                        case "descending": StudyResource.ModuleMaterials = SRInfoList.OrderByDescending(a => a.Name).ToList(); break;
                        }

                        StudyResource.StudyResourceInfo.Reference = studyResourceInfoList.Reference;
                        return StudyResource;
                    }
                    catch (Exception)
                    {
                        return StudyResource;
                    }
                }
            }));
        }