Esempio n. 1
0
 private void fillPotentialTasks()
 {
     if (Item != null)
     {
         //Need to find all DoseAdministrationTasks where
         //completed == false
         //RadiopharmaceuticalID = item.RadiopharmaceuticalID
         //scheduledCompletionDate == Today
         if (true == true)
         {
             RetrievalCriteria        rc1    = new RetrievalCriteria("ScheduledCompletionTime", CriteraType.GreaterThanOrEqual, DateTime.Today);
             RetrievalCriteria        rc2    = new RetrievalCriteria("Completed", CriteraType.Equals, false);
             RetrievalCriteria        rc3    = new RetrievalCriteria("ScheduledCompletionTime", CriteraType.LessThan, DateTime.Today.AddDays(1));
             List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();
             rcList.Add(rc1);
             rcList.Add(rc2);
             rcList.Add(rc3);
             _potentialTasks = DesktopApplication.Librarian.GetItems(typeof(DoseAdministrationTask), rcList).ToList();
             _potentialTasks = _potentialTasks.Where(y => (y as DoseAdministrationTask).PrescribedRadioPharmaceutical != null && (y as DoseAdministrationTask).UnitDose == null).Where(x => (x as DoseAdministrationTask).PrescribedRadioPharmaceutical.ID == (Item as BaseBulkDose).Radiopharmaceutical.ID).ToList();
         }
     }
     else
     {
         _potentialTasks = DesktopApplication.Librarian.GetItems(typeof(DoseAdministrationTask), new List <RetrievalCriteria>()).ToList();
     }
 }
Esempio n. 2
0
        public static User AutheticateUser(string username, string password)
        {
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            RetrievalCriteria rc = new RetrievalCriteria("LoginName", CriteraType.ExactTextMatch, username);

            rcList.Add(rc);

            if (Platform.Retriever.RetrieveItems(typeof(User), rcList).Any())
            {
                User   u      = (User)Platform.Retriever.RetrieveItems(typeof(User), rcList).First();
                string hashed = HashPassword(password);
                if (u.Password == hashed)
                {
                    Properties.Settings.Default.LastLoginName = username;
                    Properties.Settings.Default.Save();

                    logger.Info("User authenticated");
                    return(u);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Esempio n. 3
0
        public RadioactiveGasModule(DoseAdministrationTask dat) : base()
        {
            SaveDoseCommand    = new RelayCommand(SaveItem);
            CalibrationDate    = DateTime.Now;
            AdministrationDate = DateTime.Now;
            ExpiryDate         = DateTime.Now.AddMinutes(15);
            SetItem(dat);
            DoseAdministrationTask = dat;
            _potentialIngredients  = new List <IDataStoreItem>();
            //RetrievalCriteria rc = new RetrievalCriteria("Radiopharmaceutical", CriteraType.Equals, dat.PrescribedRadioPharmaceutical);
            RetrievalCriteria        rc1    = new RetrievalCriteria("ExpiryDate", CriteraType.GreaterThan, DateTime.Now);
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            //rcList.Add(rc);
            rcList.Add(rc1);

            //get all elutions that match the isotope from  Radioactive Gas Module
            //RetrievalCriteria rc = new RetrievalCriteria("IsExpired", CriteraType.Equals, false);
            //List<RetrievalCriteria> rcList = new List<RetrievalCriteria>();
            rcList.Add(rc1);
            var result = Platform.Retriever.RetrieveItems(typeof(BaseBulkDose), rcList);

            foreach (IDataStoreItem i  in result)
            {
                if (i is Elution)
                {
                    if ((i as Elution).Isotope.ID == dat.PrescribedRadioPharmaceutical.Isotope.ID)
                    {
                        _potentialIngredients.Add(i);
                    }
                }
            }
        }
Esempio n. 4
0
        public User AuthenticateUserByPin(string PIN)
        {
            try
            {
                List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();
                RetrievalCriteria        rc0    = new RetrievalCriteria("PinNumber", CriteraType.IsNotNull, PIN);
                RetrievalCriteria        rc     = new RetrievalCriteria("PinNumber", CriteraType.ExactTextMatch, PIN);
                rcList.Add(rc0);
                rcList.Add(rc);

                if (DesktopApplication.Librarian.GetItems(typeof(User), rcList).Any())
                {
                    User u = (User)DesktopApplication.Librarian.GetItems(typeof(User), rcList).First();

                    //Properties.Settings.Default.LastLoginName = login;
                    //Properties.Settings.Default.Save();
                    logger.Info("User authenticated by PIN");
                    return(u);
                }
                else
                {
                    logger.Info("Did not find a user to match that PIN.");
                    return(null);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
            return(null);
        }
 protected override void _whiteboard_SelectionChanged(object sender, EventArgs e)
 {
     if (Whiteboard.SelectedAppointment != null)
     {
         Appointment a = Whiteboard.SelectedAppointment as Appointment;
         if (a.Completed)
         {
             Available = false;
             return;
         }
         if (a.Cancelled)
         {
             Available = false;
             return;
         }
         if (a.Tasks.Where(x => x.Deleted == false && x.IsCancelled == false && x.Completed == false && x is DoseAdministrationTask).Where(y => (y as DoseAdministrationTask).UnitDose == null).Any())
         {
             //do we have a bulk dose to draw from?
             //Get the next dose administration task
             dat = a.Tasks.Where(x => x.Deleted == false && x.IsCancelled == false && x.Completed == false && x is DoseAdministrationTask).Where(y => (y as DoseAdministrationTask).UnitDose == null).OrderBy(y => y.SchedulingTime).First() as DoseAdministrationTask;
             //Get the list of bulk doses which are not expired and have the right radiopharmaceuical
             RetrievalCriteria        rc1    = new RetrievalCriteria("Expired", CriteraType.Equals, false);
             RetrievalCriteria        rc2    = new RetrievalCriteria("Radiopharmaceutical", CriteraType.Equals, dat.PrescribedRadioPharmaceutical);
             RetrievalCriteria        rc3    = new RetrievalCriteria("IsDisposed", CriteraType.Equals, false);
             List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();
             rcList.Add(rc1);
             rcList.Add(rc2);
             rcList.Add(rc3);
             var bulkDoses = DesktopApplication.Librarian.DataRetriever.RetrieveItems(typeof(BaseBulkDose), rcList);
             if (bulkDoses.Any())
             {
                 bulkDose  = bulkDoses.First() as BaseBulkDose;
                 Available = true;
             }
             else
             {
                 Available = false;
             }
         }
         else
         {
             Available = false;
         }
     }
     else
     {
         Available = false;
     }
 }
Esempio n. 6
0
        public override void GetData()
        {
            List <RetrievalCriteria> rcList   = new List <RetrievalCriteria>();
            RetrievalCriteria        rcstart  = new RetrievalCriteria("ReservationStart", CriteraType.GreaterThan, new DateTime(DateTime.Today.Year, 1, 1));
            RetrievalCriteria        rcfinish = new RetrievalCriteria("ReservationFinish", CriteraType.LessThan, new DateTime(DateTime.Today.Year + 2, 1, 1));

            rcList.Add(rcstart);
            rcList.Add(rcfinish);
            //Reservations = Application.GetLibrarian().GetViewModels(typeof(RoomReservation), rcList);
            //ReservationsView = Application.CreateCollectionView(Reservations);
            //ReservationsView.Filter = CustomerFilter;

            //viewSource = new CollectionViewSource();
            //viewSource.Source = Reservations;
        }
Esempio n. 7
0
        public static void FillRadiopharmaceuticals()
        {
            DataTable dt = iRadiate.Common.IO.TextFileReader.ReadCSVFile("Radiopharmacueticals.csv", true);

            foreach (DataRow r in dt.Rows)
            {
                Console.WriteLine(r["AtomicSymbol"].ToString() + " " + r["AtomicWeight"].ToString());
                Chemical rp = new Chemical();
                List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();
                RetrievalCriteria        rc1    = new RetrievalCriteria("Abbreviation", CriteraType.ExactTextMatch, r["AtomicSymbol"].ToString() + "-" + r["AtomicWeight"].ToString());
                rcList.Add(rc1);
                Isotope iso = lib.GetItems(typeof(Isotope), rcList).First() as Isotope;
                rp.Isotope            = iso;
                rp.LigandAbbreviation = r["Ligand"].ToString();
                lib.SaveItem(rp);
            }
        }
Esempio n. 8
0
        private static Workstation GetThisWorkstation()
        {
            string                   name   = System.Environment.MachineName;
            RetrievalCriteria        rc     = new RetrievalCriteria("Name", CriteraType.Equals, name);
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rc);
            var result = retriever.RetrieveItems(typeof(Workstation), rcList);

            if (result.Any())
            {
                return(result.First() as Workstation);
            }
            else
            {
                return(AddThisWorkstation());
            }
        }
Esempio n. 9
0
        public ReconstitutionViewModel(DataStoreItem item) : base(item)
        {
            if (item is Kit)
            {
                (item as Kit).ColdKitReconstituted += ColdKitReconstituted;
            }
            RetrievalCriteria        rc     = new RetrievalCriteria("Radiopharmaceutical", CriteraType.Equals, (item as Kit).KitDefinition.RadioactiveIngredient);
            RetrievalCriteria        rc1    = new RetrievalCriteria("ExpiryDate", CriteraType.GreaterThan, DateTime.Now);
            RetrievalCriteria        rc2    = new RetrievalCriteria("IsDisposed", CriteraType.Equals, false);
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rc);
            rcList.Add(rc1);
            rcList.Add(rc2);
            _potentialIngredients = DesktopApplication.Librarian.GetItems(typeof(BaseBulkDose), rcList);
            SaveDoseCommand       = new RelayCommand(SaveBulkDose);
            ReadActivityCommand   = new RelayCommand(ReadActivity);
            BdExpiryDate          = DateTime.Now.AddDays(1);
        }
Esempio n. 10
0
        private void Search()
        {
            RetrievalCriteria rc  = new RetrievalCriteria("Date", CriteraType.GreaterThan, _startDate);
            RetrievalCriteria rc1 = new RetrievalCriteria("Date", CriteraType.LessThan, _endDate);


            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rc);
            rcList.Add(rc1);

            if (SelectedStudyType != null)
            {
                RetrievalCriteria rc2 = new RetrievalCriteria("StudyTypeID", CriteraType.Equals, SelectedStudyType.ID);
                rcList.Add(rc2);
            }

            RetrievedStudies = DesktopApplication.GetLibrarian().GetItems(typeof(Study), rcList);
            //RetrievedStudies =  Application.GetLibrarian().GetViewModels(typeof(Study), rcList);
            StudiesView        = CollectionViewSource.GetDefaultView(RetrievedStudies);
            StudiesView.Filter = new Predicate <object>(FilterStudy);
        }
Esempio n. 11
0
        private void search()
        {
            if (SearchCriteriaEntered())
            {
                object           p      = new object();
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += (o, ea) =>
                {
                    List <RetrievalCriteria> criter = new List <RetrievalCriteria>();
                    if (SurnameSearch != null && SurnameSearch.Trim() != "")
                    {
                        RetrievalCriteria rc = new RetrievalCriteria("Surname", CriteraType.TextMatch, SurnameSearch);
                        criter.Add(rc);
                    }
                    if (GivenNamesSearch != null && GivenNamesSearch.Trim() != "")
                    {
                        RetrievalCriteria rc = new RetrievalCriteria("GivenNames", CriteraType.TextMatch, GivenNamesSearch);
                        criter.Add(rc);
                    }
                    if (MrnSearch != null && MrnSearch.Trim() != "")
                    {
                        RetrievalCriteria rc = new RetrievalCriteria("PatientID", CriteraType.TextMatch, MrnSearch);
                        criter.Add(rc);
                    }


                    _patients = DesktopApplication.Librarian.GetItems(typeof(Patient), criter);
                    RaisePropertyChanged("Patients");
                    //ViewModelCollection = Application.GetLibrarian().GetViewModels(typeof(iRadiate.DataModel.HealthCare.Patient), criter);
                };
                worker.RunWorkerCompleted += (o, ea) =>
                {
                    Busy = false;
                };
                Busy = true;
                worker.RunWorkerAsync();
            }
        }
Esempio n. 12
0
        public override void GetData()
        {
            logger.Trace("GetData()....");



            base.GetData();
            RetrievalCriteria        rc1    = new RetrievalCriteria("ValidCompletionTime", CriteraType.GreaterThan, SelectedDate.Date);
            RetrievalCriteria        rc2    = new RetrievalCriteria("ValidCompletionTime", CriteraType.LessThan, SelectedDate.Date.AddDays(1));
            RetrievalCriteria        rc3    = new RetrievalCriteria("Cancelled", CriteraType.Equals, false);
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rc1);
            rcList.Add(rc2);
            rcList.Add(rc3);
            var col = DesktopApplication.Librarian.GetItems(typeof(ScanTask), rcList);

            if (ScanTasks.Any())
            {
                logger.Trace("ScanTasks already found during GetData(), Clear()");
                ScanTasks.Clear();
            }

            foreach (IDataStoreItem i in col)
            {
                logger.Trace("Created new DiaryEventWrapper..");
                DiaryEventWrapper dew = new DiaryEventWrapper(i as ScanTask, this);
                dew.RoomChanged += Dew_RoomChanged;
                dew.Selected    += Dew_Selected;
                ScanTasks.Add(dew);
            }
            RaisePropertyChanged("Diaries");


            logger.Trace("GetData()....Complete");
        }
Esempio n. 13
0
        public override void GetData()
        {
            base.GetData();
            KitDefinitions       = DesktopApplication.Librarian.GetItems(typeof(KitDefinition), new List <RetrievalCriteria>());
            Radiopharmaceuticals = DesktopApplication.Librarian.GetItems(typeof(Chemical), new List <RetrievalCriteria>());

            RetrievalCriteria        rcMin  = new RetrievalCriteria("DateAdded", CriteraType.GreaterThan, BulkDoseDateMinimum);
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rcMin);
            InventoryItems = DesktopApplication.Librarian.GetItems(typeof(BaseBulkDose), rcList);



            foreach (IDataStoreItem d in InventoryItems)
            {
                (d as BaseBulkDose).UnitDoseDrawn += InventoryItemAdded;
                if (d is Elution && (d as Elution).CalibrationDate.Date == DateTime.Today)
                {
                    //&& (d as Elution).CalibrationDate.Date == DateTime.Today
                    NumberOfElutionsToday++;
                    ActivityOfElutionsToday = ActivityOfElutionsToday + ((d as Elution).CurrentActivity);
                    if ((d as IInventory).Expired)
                    {
                        DisposableItems++;
                        DisposableActivity += (d as BaseRadioactiveInventoryItem).CurrentActivity;
                    }
                }
                else if (d is ReconstitutedColdKit)
                {
                    NumberOfColdKitsToday++;
                    ActivityOfColdKitsToday += (d as ReconstitutedColdKit).CurrentActivity;
                    if ((d as IInventory).Expired)
                    {
                        DisposableItems++;
                        DisposableActivity += (d as BaseRadioactiveInventoryItem).CurrentActivity;
                    }
                }
            }

            rcMin = new RetrievalCriteria("DateAdded", CriteraType.GreaterThan, UnitDoseDateMinimum);
            rcList.Clear();
            rcList.Add(rcMin);
            foreach (IDataStoreItem d in DesktopApplication.Librarian.GetItems(typeof(BaseUnitDose), rcList))
            {
                InventoryItems.Add(d);
                NumberOfUnitDosesToday++;
                ActivityOfUnitDosesToday += (d as BaseUnitDose).CurrentActivity;
                if ((d as IInventory).Expired)
                {
                    DisposableItems++;
                    DisposableActivity += (d as BaseRadioactiveInventoryItem).CurrentActivity;
                }
            }
            rcMin = new RetrievalCriteria("DateAdded", CriteraType.GreaterThan, GeneratorDateMinimum);
            rcList.Clear();
            rcList.Add(rcMin);
            foreach (IDataStoreItem d in DesktopApplication.Librarian.GetItems(typeof(Generator), rcList))
            {
                InventoryItems.Add(d);
                (d as Generator).GeneratorEluted += InventoryItemAdded;
            }

            rcMin = new RetrievalCriteria("DateAdded", CriteraType.GreaterThan, ColdKitDateMinimum);
            rcList.Clear();
            rcList.Add(rcMin);
            foreach (IDataStoreItem d in DesktopApplication.Librarian.GetItems(typeof(Kit), rcList))
            {
                InventoryItems.Add(d);
                (d as Kit).ColdKitReconstituted += InventoryItemAdded;
            }

            foreach (IDataStoreItem d in InventoryItems)
            {
                (d as IInventory).ItemDisposed   += RadiopharmacyModule_ItemDeleted;
                (d as IInventory).ItemUnDisposed += RadiopharmacyModule_ItemUnDisposed;
            }


            var isotopes = Platform.Retriever.RetrieveItems(typeof(Isotope), new List <RetrievalCriteria>());

            System.Diagnostics.Debug.WriteLine("Isotopes.count = " + isotopes.Count);
            foreach (var i in isotopes)
            {
                IsotopeLevel lvl = new IsotopeLevel();
                lvl.Isotope         = (Isotope)i;
                lvl.CurrentActivity = InventoryItems.Where(x => x is BaseRadioactiveInventoryItem).Where(y => (y as BaseRadioactiveInventoryItem).Disposed == DisposalStatus.NotDisposed && (y as BaseRadioactiveInventoryItem).Isotope == i).Sum(z => (z as BaseRadioactiveInventoryItem).CurrentActivity);
                if (lvl.CurrentActivity > 0)
                {
                    IsotopeLevels.Add(lvl);
                }
            }
            try
            {
                var a = Platform.Retriever.RetrieveItems(typeof(BaseUnitDose)).Where(x => (x as BaseUnitDose).Disposed == DisposalStatus.NotDisposed && (x as BaseUnitDose).Expired == true);
                var b = Platform.Retriever.RetrieveItems(typeof(BaseBulkDose)).Where(x => (x as BaseBulkDose).Disposed == DisposalStatus.NotDisposed && (x as BaseBulkDose).Expired == true);
                var c = Platform.Retriever.RetrieveItems(typeof(Generator)).Where(x => (x as BaseBulkDose).Disposed == DisposalStatus.NotDisposed && (x as BaseBulkDose).Expired == true);

                NumberOfExpiredItems  = a.Count();
                NumberOfExpiredItems += b.Count();
                NumberOfExpiredItems += c.Count();

                ActivityOfExpiredItems  = a.Select(x => (x as BaseRadioactiveInventoryItem).CurrentActivity).Sum();
                ActivityOfExpiredItems += b.Select(x => (x as BaseRadioactiveInventoryItem).CurrentActivity).Sum();
                ActivityOfExpiredItems += c.Select(x => (x as BaseRadioactiveInventoryItem).CurrentActivity).Sum();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("Exception:  " + ex.Message);
            }
        }
Esempio n. 14
0
        static void Main(string[] args)
        {
            DateTime starttime = DateTime.Now;

            logger.Info("DicomTest start " + DateTime.Now);
            DicomConnector dc    = new DicomConnector();
            var            links = dc.GetPatientImageByStudy(DateTime.Today.AddDays(0));

            logger.Info("links has returned");
            if (links.Any())
            {
                logger.Info(links.Count + " links found");

                foreach (DicomLink link in links)
                {
                    if (link == null)
                    {
                        logger.Warn("A null link was returned by the DicomConnector");
                        continue;
                    }

                    if (link.PatientImage == null)
                    {
                        logger.Warn("A link was returned by the dataconnector with a null patientIage");
                        continue;
                    }
                    ScanTask t = link.PatientImage.ScanTask;
                    if (t == null)
                    {
                        logger.Error("Null ScanTaskFound for PatientImage " + link.PatientImage.ID);
                        continue;
                    }
                    logger.Info("PatientImage.SeriesDescription = " + link.PatientImage.SeriesDescription);
                    //link.PatientImage.Debug();
                    //DicomMassage.MassageScanTask(link.PatientImage.ScanTask);
                }
            }
            else
            {
                logger.Info("No links returned");
            }


            RetrievalCriteria        rc1    = new RetrievalCriteria("ScheduledArrivalTime", CriteraType.GreaterThan, DateTime.Today);
            RetrievalCriteria        rc2    = new RetrievalCriteria("ScheduledArrivalTime", CriteraType.LessThan, DateTime.Today.AddDays(1));
            List <RetrievalCriteria> rcList = new List <RetrievalCriteria>();

            rcList.Add(rc1);
            rcList.Add(rc2);
            var appointments = Platform.Retriever.RetrieveItems(typeof(Appointment), rcList);

            foreach (Appointment a in appointments)
            {
                foreach (ScanTask st in a.Tasks.Where(x => x is ScanTask))
                {
                    DicomMassage.MassageScanTask(st);
                }
            }



            logger.Info("DicomTest finish " + DateTime.Now + " - total " + (DateTime.Now - starttime).TotalMinutes + " minutes");
            //Console.ReadLine();
        }