示例#1
0
        //This method ensures that anything which is added to the inventory
        //will actually appear on the list. This method is tightly coupled to the model
        //and if new IInventoryItems are created it will be necessary to rewrite this model.

        private void InventoryItem_ItemSaved(object sender, EventArgs e)
        {
            //throw new NotImplementedException();
            if ((sender as IDataStoreItem).ID == 0)
            {
                InventoryItems.Add(sender as IDataStoreItem);
            }

            if (sender is Generator)
            {
                Generator g = sender as Generator;
                if (g.Elutions.Where(x => x.ID == 0).Any())
                {
                    foreach (Elution t in g.Elutions.Where(x => x.ID == 0))
                    {
                        InventoryItems.Add(t);
                    }
                }
            }

            if (sender is BaseBulkDose)
            {
                BaseBulkDose bd = sender as BaseBulkDose;
                foreach (BaseUnitDose ud in bd.UnitDoses.Where(x => x.ID == 0))
                {
                    InventoryItems.Add(ud);
                }
            }

            resetView();
            (sender as IDataStoreItem).ItemSaving -= InventoryItem_ItemSaved;
        }
 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;
     }
 }