public ProcedureTypeGroup FindOne(ProcedureTypeGroupSearchCriteria criteria, Type subClass) { IList<ProcedureTypeGroup> groups = Find(criteria, subClass); if(groups.Count == 0) throw new EntityNotFoundException(null); return CollectionUtils.FirstElement(groups); }
public IList <ProcedureTypeGroup> Find(ProcedureTypeGroupSearchCriteria criteria, Type subClass, SearchResultPage page) { HqlQuery query = new HqlQuery(string.Format("from {0} x", subClass.Name)); query.Conditions.AddRange(HqlCondition.FromSearchCriteria("x", criteria)); query.Sorts.AddRange(HqlSort.FromSearchCriteria("x", criteria)); query.Page = page; return(ExecuteHql <ProcedureTypeGroup>(query)); }
public IList<ProcedureTypeGroup> Find(ProcedureTypeGroupSearchCriteria criteria, Type subClass, SearchResultPage page) { HqlQuery query = new HqlQuery(string.Format("from {0} x", subClass.Name)); query.Conditions.AddRange(HqlCondition.FromSearchCriteria("x", criteria)); query.Sorts.AddRange(HqlSort.FromSearchCriteria("x", criteria)); query.Page = page; return ExecuteHql<ProcedureTypeGroup>(query); }
public ProcedureTypeGroup FindOne(ProcedureTypeGroupSearchCriteria criteria, Type subClass) { IList <ProcedureTypeGroup> groups = Find(criteria, subClass); if (groups.Count == 0) { throw new EntityNotFoundException(null); } return(CollectionUtils.FirstElement(groups)); }
public ListProcedureTypeGroupsResponse ListProcedureTypeGroups( ListProcedureTypeGroupsRequest request) { var response = new ListProcedureTypeGroupsResponse(); var assembler = new ProcedureTypeGroupAssembler(); var criteria = new ProcedureTypeGroupSearchCriteria(); criteria.Name.SortAsc(0); var result = request.CategoryFilter == null ? PersistenceContext.GetBroker<IProcedureTypeGroupBroker>().Find(criteria, request.Page) : PersistenceContext.GetBroker<IProcedureTypeGroupBroker>().Find(criteria, Type.GetType(request.CategoryFilter.Code), request.Page); response.Items = CollectionUtils.Map(result, (ProcedureTypeGroup rptGroup) => assembler.GetProcedureTypeGroupSummary(rptGroup, this.PersistenceContext)); return response; }
public ListProcedureTypeGroupsResponse ListProcedureTypeGroups( ListProcedureTypeGroupsRequest request) { var response = new ListProcedureTypeGroupsResponse(); var assembler = new ProcedureTypeGroupAssembler(); var criteria = new ProcedureTypeGroupSearchCriteria(); criteria.Name.SortAsc(0); var result = request.CategoryFilter == null? PersistenceContext.GetBroker <IProcedureTypeGroupBroker>().Find(criteria, request.Page) : PersistenceContext.GetBroker <IProcedureTypeGroupBroker>().Find(criteria, Type.GetType(request.CategoryFilter.Code), request.Page); response.Items = CollectionUtils.Map(result, (ProcedureTypeGroup rptGroup) => assembler.GetProcedureTypeGroupSummary(rptGroup, this.PersistenceContext)); return(response); }
private ProcedureTypeGroup LoadOrCreateProcedureTypeGroup(string name, string className, IPersistenceContext context) { Type groupClass = ProcedureTypeGroup.GetSubClass(className, context); ProcedureTypeGroupSearchCriteria criteria = new ProcedureTypeGroupSearchCriteria(); criteria.Name.EqualTo(name); ProcedureTypeGroup group = null; try { group = context.GetBroker <IProcedureTypeGroupBroker>().FindOne(criteria, groupClass); } catch (EntityNotFoundException) { group = (ProcedureTypeGroup)Activator.CreateInstance(groupClass); group.Name = name; context.Lock(group, DirtyState.New); } return(group); }
protected override IList <ProcedureTypeGroup> GetItemsForExport(IReadContext context, int firstRow, int maxRows) { ProcedureTypeGroupSearchCriteria where = new ProcedureTypeGroupSearchCriteria(); where.Name.SortAsc(0); return(context.GetBroker <IProcedureTypeGroupBroker>().Find(where, new SearchResultPage(firstRow, maxRows))); }
public IList<ProcedureTypeGroup> Find(ProcedureTypeGroupSearchCriteria criteria, Type subClass) { return Find(criteria, subClass, null); }
public IList <ProcedureTypeGroup> Find(ProcedureTypeGroupSearchCriteria criteria, Type subClass) { return(Find(criteria, subClass, null)); }
protected override void Import(WorklistData data, IUpdateContext context) { var worklist = LoadOrCreateWorklist(data.Name, data.Class, context); worklist.Description = data.Description; if (data.StaffSubscribers != null) { foreach (var s in data.StaffSubscribers) { var criteria = new StaffSearchCriteria(); criteria.Id.EqualTo(s.StaffId); var staff = context.GetBroker <IStaffBroker>().Find(criteria); if (staff.Count == 1) { worklist.StaffSubscribers.Add(CollectionUtils.FirstElement(staff)); } } } if (data.GroupSubscribers != null) { foreach (var s in data.GroupSubscribers) { var criteria = new StaffGroupSearchCriteria(); criteria.Name.EqualTo(s.StaffGroupName); var groups = context.GetBroker <IStaffGroupBroker>().Find(criteria); if (groups.Count == 1) { worklist.GroupSubscribers.Add(CollectionUtils.FirstElement(groups)); } } } // proc type filter ImportFilter( worklist.ProcedureTypeFilter, data.Filters.ProcedureTypes, delegate(WorklistData.ProcedureTypeData s) { var criteria = new ProcedureTypeSearchCriteria(); criteria.Id.EqualTo(s.Id); var broker = context.GetBroker <IProcedureTypeBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria))); }); // proc type group filter ImportFilter( worklist.ProcedureTypeGroupFilter, data.Filters.ProcedureTypeGroups, delegate(WorklistData.ProcedureTypeGroupData s) { var criteria = new ProcedureTypeGroupSearchCriteria(); criteria.Name.EqualTo(s.Name); var broker = context.GetBroker <IProcedureTypeGroupBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria, ProcedureTypeGroup.GetSubClass(s.Class, context)))); }); //Bug #2284: don't forget to set the IncludeWorkingFacility property // facility filter worklist.FacilityFilter.IncludeWorkingFacility = data.Filters.Facilities.IncludeWorkingFacility; ImportFilter( worklist.FacilityFilter, data.Filters.Facilities, delegate(WorklistData.EnumValueData s) { var criteria = new FacilitySearchCriteria(); criteria.Code.EqualTo(s.Code); var broker = context.GetBroker <IFacilityBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria))); }); // department filter ImportFilter( worklist.DepartmentFilter, data.Filters.Departments, delegate(WorklistData.DepartmentData s) { var criteria = new DepartmentSearchCriteria(); criteria.Id.EqualTo(s.Id); var broker = context.GetBroker <IDepartmentBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria))); }); // priority filter ImportFilter( worklist.OrderPriorityFilter, data.Filters.OrderPriorities, delegate(WorklistData.EnumValueData s) { var broker = context.GetBroker <IEnumBroker>(); return(broker.Find <OrderPriorityEnum>(s.Code)); }); // ordering prac filter ImportFilter( worklist.OrderingPractitionerFilter, data.Filters.OrderingPractitioners, delegate(WorklistData.PractitionerData s) { var criteria = new ExternalPractitionerSearchCriteria(); criteria.Name.FamilyName.EqualTo(s.FamilyName); criteria.Name.GivenName.EqualTo(s.GivenName); // these criteria may not be provided (the data may not existed when exported), // but if available, they help to ensure the correct practitioner is being mapped if (!string.IsNullOrEmpty(s.BillingNumber)) { criteria.BillingNumber.EqualTo(s.BillingNumber); } if (!string.IsNullOrEmpty(s.LicenseNumber)) { criteria.LicenseNumber.EqualTo(s.LicenseNumber); } var broker = context.GetBroker <IExternalPractitionerBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria))); }); // patient class filter ImportFilter( worklist.PatientClassFilter, data.Filters.PatientClasses, delegate(WorklistData.EnumValueData s) { var broker = context.GetBroker <IEnumBroker>(); return(broker.Find <PatientClassEnum>(s.Code)); }); // patient location filter ImportFilter( worklist.PatientLocationFilter, data.Filters.PatientLocations, delegate(WorklistData.LocationData s) { var criteria = new LocationSearchCriteria(); criteria.Id.EqualTo(s.Id); var broker = context.GetBroker <ILocationBroker>(); return(CollectionUtils.FirstElement(broker.Find(criteria))); }); // portable filter worklist.PortableFilter.IsEnabled = data.Filters.Portable.Enabled; worklist.PortableFilter.Value = data.Filters.Portable.Value; //Bug #2429: don't forget to include the time filter // time filter worklist.TimeFilter.IsEnabled = data.Filters.TimeWindow.Enabled; worklist.TimeFilter.Value = data.Filters.TimeWindow == null || data.Filters.TimeWindow.Value == null ? null : data.Filters.TimeWindow.Value.CreateTimeRange(); // reporting filters if (Worklist.GetSupportsReportingStaffRoleFilter(worklist.GetClass())) { ImportReportingWorklistFilters(data, worklist.As <ReportingWorklist>(), context); } }