// note: this operation is not protected with ClearCanvas.Ris.Application.Common.AuthorityTokens.StaffAdmin // because it is used in non-admin situations - perhaps we need to create a separate operation??? public ListStaffResponse ListStaff(ListStaffRequest request) { var assembler = new StaffAssembler(); var criteria = new StaffSearchCriteria(); criteria.Name.FamilyName.SortAsc(0); if (!string.IsNullOrEmpty(request.StaffID)) ApplyCondition(criteria.Id, request.StaffID, request.ExactMatch); if (!string.IsNullOrEmpty(request.GivenName)) ApplyCondition(criteria.Name.GivenName, request.GivenName, request.ExactMatch); if (!string.IsNullOrEmpty(request.FamilyName)) ApplyCondition(criteria.Name.FamilyName, request.FamilyName, request.ExactMatch); if (!string.IsNullOrEmpty(request.UserName)) criteria.UserName.EqualTo(request.UserName); if (!request.IncludeDeactivated) criteria.Deactivated.EqualTo(false); ApplyStaffTypesFilter(request.StaffTypesFilter, new [] { criteria }); return new ListStaffResponse( CollectionUtils.Map<Staff, StaffSummary, List<StaffSummary>>( PersistenceContext.GetBroker<IStaffBroker>().Find(criteria, request.Page), s => assembler.CreateStaffSummary(s, PersistenceContext))); }
public AddStaffResponse AddStaff(AddStaffRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.StaffDetail, "StaffDetail"); // if trying to associate with a user account, check the account is free if (!string.IsNullOrEmpty(request.StaffDetail.UserName)) { ValidateUserNameFree(request.StaffDetail.UserName); } // create new staff var staff = new Staff(); // set properties from request var assembler = new StaffAssembler(); var groupsEditable = Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup); assembler.UpdateStaff(request.StaffDetail, staff, groupsEditable, groupsEditable, PersistenceContext); PersistenceContext.Lock(staff, DirtyState.New); // ensure the new staff is assigned an OID before using it in the return value PersistenceContext.SynchState(); return(new AddStaffResponse(assembler.CreateStaffSummary(staff, PersistenceContext))); }
public UpdateStaffResponse UpdateStaff(UpdateStaffRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.StaffDetail, "StaffDetail"); var staff = PersistenceContext.Load <Staff>(request.StaffDetail.StaffRef); // ensure user has access to edit this staff CheckWriteAccess(staff); // if trying to associate with a new user account, check the account is free if (!string.IsNullOrEmpty(request.StaffDetail.UserName) && request.StaffDetail.UserName != staff.UserName) { ValidateUserNameFree(request.StaffDetail.UserName); } var assembler = new StaffAssembler(); assembler.UpdateStaff(request.StaffDetail, staff, request.UpdateElectiveGroups && (Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup) || staff.UserName == this.CurrentUser), request.UpdateNonElectiveGroups && Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup), PersistenceContext); return(new UpdateStaffResponse(assembler.CreateStaffSummary(staff, PersistenceContext))); }
private StaffSummary GetUniqueAssignedInterpreter(Order order) { StaffSummary uniqueAssignedInterpreter = null; var staffAssembler = new StaffAssembler(); // establish whether there is a unique assigned interpreter for all procedures var interpreters = new HashedSet <Staff>(); foreach (var procedure in order.Procedures) { var pendingInterpretationStep = procedure.GetProcedureStep( ps => ps.Is <InterpretationStep>() && ps.State == ActivityStatus.SC); if (pendingInterpretationStep != null && pendingInterpretationStep.AssignedStaff != null) { interpreters.Add(pendingInterpretationStep.AssignedStaff); } } if (interpreters.Count == 1) { uniqueAssignedInterpreter = staffAssembler.CreateStaffSummary( CollectionUtils.FirstElement(interpreters), this.PersistenceContext); } return(uniqueAssignedInterpreter); }
public GetConversationEditorFormDataResponse GetConversationEditorFormData( GetConversationEditorFormDataRequest request) { var staffAssembler = new StaffAssembler(); var groupAssembler = new StaffGroupAssembler(); var response = new GetConversationEditorFormDataResponse( CollectionUtils.Map( this.CurrentUserStaff.ActiveGroups, // only active staff groups should be choices (StaffGroup sg) => groupAssembler.CreateSummary(sg))); if (request.RecipientStaffIDs != null && request.RecipientStaffIDs.Count > 0) { var criteria = new StaffSearchCriteria(); criteria.Id.In(request.RecipientStaffIDs); response.RecipientStaffs = CollectionUtils.Map( PersistenceContext.GetBroker <IStaffBroker>().Find(criteria), (Staff s) => staffAssembler.CreateStaffSummary(s, PersistenceContext)); } if (request.RecipientStaffGroupNames != null && request.RecipientStaffGroupNames.Count > 0) { var criteria = new StaffGroupSearchCriteria(); criteria.Name.In(request.RecipientStaffGroupNames); response.RecipientStaffGroups = CollectionUtils.Map( PersistenceContext.GetBroker <IStaffGroupBroker>().Find(criteria), (StaffGroup sg) => groupAssembler.CreateSummary(sg)); } return(response); }
public OrderNoteboxItemSummary CreateSummary(OrderNoteboxItem item, IPersistenceContext context) { var mrnAssembler = new MrnAssembler(); var nameAssembler = new PersonNameAssembler(); var staffAssembler = new StaffAssembler(); var groupAssembler = new StaffGroupAssembler(); var staffRecipients = new List <StaffSummary>(); var groupRecipients = new List <StaffGroupSummary>(); foreach (var recipient in item.Recipients) { if (recipient is Staff) { staffRecipients.Add(staffAssembler.CreateStaffSummary((Staff)recipient, context)); } if (recipient is StaffGroup) { groupRecipients.Add(groupAssembler.CreateSummary((StaffGroup)recipient)); } } return(new OrderNoteboxItemSummary( item.NoteRef, item.OrderRef, item.PatientRef, item.PatientProfileRef, mrnAssembler.CreateMrnDetail(item.Mrn), nameAssembler.CreatePersonNameDetail(item.PatientName), item.DateOfBirth, item.AccessionNumber, item.DiagnosticServiceName, item.Category, item.Urgent, item.PostTime, staffAssembler.CreateStaffSummary(item.Author, context), item.OnBehalfOfGroup == null ? null : groupAssembler.CreateSummary(item.OnBehalfOfGroup), item.IsAcknowledged, staffRecipients, groupRecipients)); }
public CannedTextSummary GetCannedTextSummary(CannedText cannedText, IPersistenceContext context) { StaffAssembler staffAssembler = new StaffAssembler(); StaffGroupAssembler groupAssembler = new StaffGroupAssembler(); return(new CannedTextSummary( cannedText.GetRef(), cannedText.Name, cannedText.Category, cannedText.Staff == null ? null : staffAssembler.CreateStaffSummary(cannedText.Staff, context), cannedText.StaffGroup == null ? null : groupAssembler.CreateSummary(cannedText.StaffGroup), cannedText.Text)); }
public CannedTextSummary GetCannedTextSummary(CannedText cannedText, IPersistenceContext context) { StaffAssembler staffAssembler = new StaffAssembler(); StaffGroupAssembler groupAssembler = new StaffGroupAssembler(); return new CannedTextSummary( cannedText.GetRef(), cannedText.Name, cannedText.Category, cannedText.Staff == null ? null : staffAssembler.CreateStaffSummary(cannedText.Staff, context), cannedText.StaffGroup == null ? null : groupAssembler.CreateSummary(cannedText.StaffGroup), cannedText.Text); }
/// <summary> /// Create worklist summary. /// </summary> /// <param name="worklist"></param> /// <param name="context"></param> /// <returns></returns> public WorklistAdminSummary CreateWorklistSummary(Worklist worklist, IPersistenceContext context) { var isStatic = Worklist.GetIsStatic(worklist.GetClass()); var staffAssembler = new StaffAssembler(); var groupAssembler = new StaffGroupAssembler(); return(new WorklistAdminSummary( isStatic ? null : worklist.GetRef(), isStatic ? Worklist.GetDisplayName(worklist.GetClass()) : worklist.Name, isStatic ? Worklist.GetDescription(worklist.GetClass()) : worklist.Description, CreateClassSummary(worklist.GetClass()), worklist.Owner.IsStaffOwner ? staffAssembler.CreateStaffSummary(worklist.Owner.Staff, context) : null, worklist.Owner.IsGroupOwner ? groupAssembler.CreateSummary(worklist.Owner.Group) : null)); }
public TextQueryResponse <StaffSummary> TextQuery(StaffTextQueryRequest request) { var broker = PersistenceContext.GetBroker <IStaffBroker>(); var assembler = new StaffAssembler(); var helper = new TextQueryHelper <Staff, StaffSearchCriteria, StaffSummary>( delegate { var rawQuery = request.TextQuery; // this will hold all criteria var criteria = new List <StaffSearchCriteria>(); // build criteria against names var names = TextQueryHelper.ParsePersonNames(rawQuery); criteria.AddRange(CollectionUtils.Map(names, (PersonName n) => { var sc = new StaffSearchCriteria(); sc.Name.FamilyName.StartsWith(n.FamilyName); if (n.GivenName != null) { sc.Name.GivenName.StartsWith(n.GivenName); } return(sc); })); // build criteria against identifiers var ids = TextQueryHelper.ParseIdentifiers(rawQuery); criteria.AddRange(CollectionUtils.Map(ids, (string word) => { var c = new StaffSearchCriteria(); c.Id.StartsWith(word); return(c); })); ApplyStaffTypesFilter(request.StaffTypesFilter, criteria); return(criteria.ToArray()); }, staff => assembler.CreateStaffSummary(staff, PersistenceContext), (criteria, threshold) => broker.Count(criteria) <= threshold, broker.Find); return(helper.Query(request)); }
private static WorklistAdminDetail.StaffList GetFilterSummary(WorklistStaffFilter filter, IPersistenceContext context) { if (!filter.IsEnabled) { return(new WorklistAdminDetail.StaffList()); } var assembler = new StaffAssembler(); return(new WorklistAdminDetail.StaffList { Staff = CollectionUtils.Map(filter.Values, (Staff staff) => assembler.CreateStaffSummary(staff, context)), IncludeCurrentUser = filter.IncludeCurrentStaff }); }
// note: this operation is not protected with ClearCanvas.Ris.Application.Common.AuthorityTokens.StaffAdmin // because it is used in non-admin situations - perhaps we need to create a separate operation??? public ListStaffResponse ListStaff(ListStaffRequest request) { var assembler = new StaffAssembler(); var criteria = new StaffSearchCriteria(); criteria.Name.FamilyName.SortAsc(0); if (!string.IsNullOrEmpty(request.StaffID)) { ApplyCondition(criteria.Id, request.StaffID, request.ExactMatch); } if (!string.IsNullOrEmpty(request.GivenName)) { ApplyCondition(criteria.Name.GivenName, request.GivenName, request.ExactMatch); } if (!string.IsNullOrEmpty(request.FamilyName)) { ApplyCondition(criteria.Name.FamilyName, request.FamilyName, request.ExactMatch); } if (!string.IsNullOrEmpty(request.UserName)) { criteria.UserName.EqualTo(request.UserName); } if (!request.IncludeDeactivated) { criteria.Deactivated.EqualTo(false); } ApplyStaffTypesFilter(request.StaffTypesFilter, new [] { criteria }); return(new ListStaffResponse( CollectionUtils.Map <Staff, StaffSummary, List <StaffSummary> >( PersistenceContext.GetBroker <IStaffBroker>().Find(criteria, request.Page), s => assembler.CreateStaffSummary(s, PersistenceContext)))); }
public LoadStaffGroupEditorFormDataResponse LoadStaffGroupEditorFormData(LoadStaffGroupEditorFormDataRequest request) { var allStaff = PersistenceContext.GetBroker <IStaffBroker>().FindAll(false); var worklistClasses = WorklistAdminService.ListClassesHelper(null, null, false); // grab the persistent worklists var broker = PersistenceContext.GetBroker <IWorklistBroker>(); var persistentClassNames = CollectionUtils.Select(worklistClasses, t => !Worklist.GetIsStatic(t)) .ConvertAll(t => Worklist.GetClassName(t)); var adminWorklists = broker.Find(null, false, persistentClassNames, null); var staffAssembler = new StaffAssembler(); var worklistAssembler = new WorklistAssembler(); return(new LoadStaffGroupEditorFormDataResponse( CollectionUtils.Map(allStaff, (Staff staff) => staffAssembler.CreateStaffSummary(staff, PersistenceContext)), CollectionUtils.Map(adminWorklists, (Worklist worklist) => worklistAssembler.GetWorklistSummary(worklist, PersistenceContext)) )); }
private GetWorklistEditFormChoicesResponse GetWorklistEditFormChoices(GetWorklistEditFormChoicesRequest request) { var response = new GetWorklistEditFormChoicesResponse(); var assembler = new WorklistAdminAssembler(); response.WorklistClasses = CollectionUtils.Map <Type, WorklistClassSummary>( ListClassesHelper(null, null, false), assembler.CreateClassSummary); var staffAssembler = new StaffAssembler(); response.StaffChoices = CollectionUtils.Map <Staff, StaffSummary>( this.PersistenceContext.GetBroker <IStaffBroker>().FindAll(false), item => staffAssembler.CreateStaffSummary(item, PersistenceContext)); var staffGroupAssembler = new StaffGroupAssembler(); response.GroupSubscriberChoices = CollectionUtils.Map <StaffGroup, StaffGroupSummary>( this.PersistenceContext.GetBroker <IStaffGroupBroker>().FindAll(false), staffGroupAssembler.CreateSummary); var facilityAssembler = new FacilityAssembler(); response.FacilityChoices = CollectionUtils.Map <Facility, FacilitySummary>( this.PersistenceContext.GetBroker <IFacilityBroker>().FindAll(false), facilityAssembler.CreateFacilitySummary); var departmentAssembler = new DepartmentAssembler(); response.DepartmentChoices = CollectionUtils.Map( this.PersistenceContext.GetBroker <IDepartmentBroker>().FindAll(false), (Department item) => departmentAssembler.CreateSummary(item, PersistenceContext)); var locationAssembler = new LocationAssembler(); response.PatientLocationChoices = CollectionUtils.Map <Location, LocationSummary>( this.PersistenceContext.GetBroker <ILocationBroker>().FindAll(false), locationAssembler.CreateLocationSummary); response.OrderPriorityChoices = EnumUtils.GetEnumValueList <OrderPriorityEnum>(PersistenceContext); response.PatientClassChoices = EnumUtils.GetEnumValueList <PatientClassEnum>(PersistenceContext); response.CurrentServerConfigurationRequiresTimeFilter = Worklist.CurrentServerConfigurationRequiresTimeFilter(); response.CurrentServerConfigurationMaxSpanDays = Worklist.CurrentServerConfigurationMaxSpanDays(); // add extra data iff editing a user-defined worklist (bug #4871) if (request.UserDefinedWorklist) { response.OwnerGroupChoices = CollectionUtils.Map <StaffGroup, StaffGroupSummary>( this.CurrentUserStaff.ActiveGroups, // only current user's active staff groups should be choosable staffGroupAssembler.CreateSummary); } var proceduerTypesAssembler = new ProcedureTypeAssembler(); response.ProcedureTypeChoices = CollectionUtils.Map <ProcedureType, ProcedureTypeSummary>( this.PersistenceContext.GetBroker <IProcedureTypeBroker>().FindAll(false), proceduerTypesAssembler.CreateSummary); return(response); }
public AddStaffResponse AddStaff(AddStaffRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.StaffDetail, "StaffDetail"); // if trying to associate with a user account, check the account is free if(!string.IsNullOrEmpty(request.StaffDetail.UserName)) { ValidateUserNameFree(request.StaffDetail.UserName); } // create new staff var staff = new Staff(); // set properties from request var assembler = new StaffAssembler(); var groupsEditable = Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup); assembler.UpdateStaff(request.StaffDetail, staff, groupsEditable, groupsEditable, PersistenceContext); PersistenceContext.Lock(staff, DirtyState.New); // ensure the new staff is assigned an OID before using it in the return value PersistenceContext.SynchState(); return new AddStaffResponse(assembler.CreateStaffSummary(staff, PersistenceContext)); }
public UpdateStaffResponse UpdateStaff(UpdateStaffRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.StaffDetail, "StaffDetail"); var staff = PersistenceContext.Load<Staff>(request.StaffDetail.StaffRef); // ensure user has access to edit this staff CheckWriteAccess(staff); // if trying to associate with a new user account, check the account is free if (!string.IsNullOrEmpty(request.StaffDetail.UserName) && request.StaffDetail.UserName != staff.UserName) { ValidateUserNameFree(request.StaffDetail.UserName); } var assembler = new StaffAssembler(); assembler.UpdateStaff(request.StaffDetail, staff, request.UpdateElectiveGroups && (Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup) || staff.UserName == this.CurrentUser), request.UpdateNonElectiveGroups && Thread.CurrentPrincipal.IsInRole(AuthorityTokens.Admin.Data.StaffGroup), PersistenceContext); return new UpdateStaffResponse(assembler.CreateStaffSummary(staff, PersistenceContext)); }
public LoadStaffGroupEditorFormDataResponse LoadStaffGroupEditorFormData(LoadStaffGroupEditorFormDataRequest request) { var allStaff = PersistenceContext.GetBroker<IStaffBroker>().FindAll(false); var worklistClasses = WorklistAdminService.ListClassesHelper(null, null, false); // grab the persistent worklists var broker = PersistenceContext.GetBroker<IWorklistBroker>(); var persistentClassNames = CollectionUtils.Select(worklistClasses, t => !Worklist.GetIsStatic(t)) .ConvertAll(t => Worklist.GetClassName(t)); var adminWorklists = broker.Find(null, false, persistentClassNames, null); var staffAssembler = new StaffAssembler(); var worklistAssembler = new WorklistAssembler(); return new LoadStaffGroupEditorFormDataResponse( CollectionUtils.Map(allStaff, (Staff staff) => staffAssembler.CreateStaffSummary(staff, PersistenceContext)), CollectionUtils.Map(adminWorklists, (Worklist worklist) => worklistAssembler.GetWorklistSummary(worklist, PersistenceContext)) ); }
private StaffSummary GetUniqueAssignedInterpreter(Order order) { StaffSummary uniqueAssignedInterpreter = null; var staffAssembler = new StaffAssembler(); // establish whether there is a unique assigned interpreter for all procedures var interpreters = new HashedSet<Staff>(); foreach (var procedure in order.Procedures) { var pendingInterpretationStep = procedure.GetProcedureStep( ps => ps.Is<InterpretationStep>() && ps.State == ActivityStatus.SC); if (pendingInterpretationStep != null && pendingInterpretationStep.AssignedStaff != null) interpreters.Add(pendingInterpretationStep.AssignedStaff); } if (interpreters.Count == 1) { uniqueAssignedInterpreter = staffAssembler.CreateStaffSummary( CollectionUtils.FirstElement(interpreters), this.PersistenceContext); } return uniqueAssignedInterpreter; }
public TextQueryResponse<StaffSummary> TextQuery(StaffTextQueryRequest request) { var broker = PersistenceContext.GetBroker<IStaffBroker>(); var assembler = new StaffAssembler(); var helper = new TextQueryHelper<Staff, StaffSearchCriteria, StaffSummary>( delegate { var rawQuery = request.TextQuery; // this will hold all criteria var criteria = new List<StaffSearchCriteria>(); // build criteria against names var names = TextQueryHelper.ParsePersonNames(rawQuery); criteria.AddRange(CollectionUtils.Map(names, (PersonName n) => { var sc = new StaffSearchCriteria(); sc.Name.FamilyName.StartsWith(n.FamilyName); if (n.GivenName != null) sc.Name.GivenName.StartsWith(n.GivenName); return sc; })); // build criteria against identifiers var ids = TextQueryHelper.ParseIdentifiers(rawQuery); criteria.AddRange(CollectionUtils.Map(ids, (string word) => { var c = new StaffSearchCriteria(); c.Id.StartsWith(word); return c; })); ApplyStaffTypesFilter(request.StaffTypesFilter, criteria); return criteria.ToArray(); }, staff => assembler.CreateStaffSummary(staff, PersistenceContext), (criteria, threshold) => broker.Count(criteria) <= threshold, broker.Find); return helper.Query(request); }
/// <summary> /// Create worklist detail. /// </summary> /// <param name="worklist"></param> /// <param name="context"></param> /// <returns></returns> public WorklistAdminDetail CreateWorklistDetail(Worklist worklist, IPersistenceContext context) { var detail = new WorklistAdminDetail(worklist.GetRef(), worklist.Name, worklist.Description, CreateClassSummary(worklist.GetClass())); var staffAssembler = new StaffAssembler(); var staffGroupAssembler = new StaffGroupAssembler(); detail.OwnerStaff = worklist.Owner.IsStaffOwner ? staffAssembler.CreateStaffSummary(worklist.Owner.Staff, context) : null; detail.OwnerGroup = worklist.Owner.IsGroupOwner ? staffGroupAssembler.CreateSummary(worklist.Owner.Group) : null; // proc types var ptAssembler = new ProcedureTypeAssembler(); detail.ProcedureTypes = GetFilterSummary(worklist.ProcedureTypeFilter, item => ptAssembler.CreateSummary(item)); // proc type groups var ptgAssembler = new ProcedureTypeGroupAssembler(); detail.ProcedureTypeGroups = GetFilterSummary(worklist.ProcedureTypeGroupFilter, item => ptgAssembler.GetProcedureTypeGroupSummary(item, context)); // facilities var facilityAssembler = new FacilityAssembler(); detail.Facilities = GetFilterSummary(worklist.FacilityFilter, item => facilityAssembler.CreateFacilitySummary(item)); detail.FilterByWorkingFacility = worklist.FacilityFilter.IsEnabled && worklist.FacilityFilter.IncludeWorkingFacility; // departments var departmentAssembler = new DepartmentAssembler(); detail.Departments = GetFilterSummary(worklist.DepartmentFilter, item => departmentAssembler.CreateSummary(item, context)); // patient class detail.PatientClasses = GetFilterSummary(worklist.PatientClassFilter, item => EnumUtils.GetEnumValueInfo(item)); // location var locationAssembler = new LocationAssembler(); detail.PatientLocations = GetFilterSummary(worklist.PatientLocationFilter, item => locationAssembler.CreateLocationSummary(item)); // order priority detail.OrderPriorities = GetFilterSummary(worklist.OrderPriorityFilter, item => EnumUtils.GetEnumValueInfo(item)); // ordering prac var practitionerAssembler = new ExternalPractitionerAssembler(); detail.OrderingPractitioners = GetFilterSummary(worklist.OrderingPractitionerFilter, item => practitionerAssembler.CreateExternalPractitionerSummary(item, context)); // portable if (worklist.PortableFilter.IsEnabled) { detail.Portabilities = new List <bool> { worklist.PortableFilter.Value }; } // time window if (worklist.TimeFilter.IsEnabled && worklist.TimeFilter.Value != null) { if (worklist.TimeFilter.Value.Start != null) { detail.StartTime = CreateTimePointContract(worklist.TimeFilter.Value.Start); } if (worklist.TimeFilter.Value.End != null) { detail.EndTime = CreateTimePointContract(worklist.TimeFilter.Value.End); } } detail.StaffSubscribers = CollectionUtils.Map(worklist.StaffSubscribers, (Staff staff) => staffAssembler.CreateStaffSummary(staff, context)); detail.GroupSubscribers = CollectionUtils.Map(worklist.GroupSubscribers, (StaffGroup group) => staffGroupAssembler.CreateSummary(group)); // Some ReportingWorklists can support staff role filters, if that is true for this worklist, // add those filters to the WorklistAdminDetail if (Worklist.GetSupportsReportingStaffRoleFilter(worklist.GetClass())) { var reportingWorklist = worklist.As <ReportingWorklist>(); detail.InterpretedByStaff = GetFilterSummary(reportingWorklist.InterpretedByStaffFilter, context); detail.TranscribedByStaff = GetFilterSummary(reportingWorklist.TranscribedByStaffFilter, context); detail.VerifiedByStaff = GetFilterSummary(reportingWorklist.VerifiedByStaffFilter, context); detail.SupervisedByStaff = GetFilterSummary(reportingWorklist.SupervisedByStaffFilter, context); } return(detail); }
private GetWorklistEditFormChoicesResponse GetWorklistEditFormChoices(GetWorklistEditFormChoicesRequest request) { var response = new GetWorklistEditFormChoicesResponse(); var assembler = new WorklistAdminAssembler(); response.WorklistClasses = CollectionUtils.Map<Type, WorklistClassSummary>( ListClassesHelper(null, null, false), assembler.CreateClassSummary); var staffAssembler = new StaffAssembler(); response.StaffChoices = CollectionUtils.Map<Staff, StaffSummary>( this.PersistenceContext.GetBroker<IStaffBroker>().FindAll(false), item => staffAssembler.CreateStaffSummary(item, PersistenceContext)); var staffGroupAssembler = new StaffGroupAssembler(); response.GroupSubscriberChoices = CollectionUtils.Map<StaffGroup, StaffGroupSummary>( this.PersistenceContext.GetBroker<IStaffGroupBroker>().FindAll(false), staffGroupAssembler.CreateSummary); var facilityAssembler = new FacilityAssembler(); response.FacilityChoices = CollectionUtils.Map<Facility, FacilitySummary>( this.PersistenceContext.GetBroker<IFacilityBroker>().FindAll(false), facilityAssembler.CreateFacilitySummary); var departmentAssembler = new DepartmentAssembler(); response.DepartmentChoices = CollectionUtils.Map( this.PersistenceContext.GetBroker<IDepartmentBroker>().FindAll(false), (Department item) => departmentAssembler.CreateSummary(item, PersistenceContext)); var locationAssembler = new LocationAssembler(); response.PatientLocationChoices = CollectionUtils.Map<Location, LocationSummary>( this.PersistenceContext.GetBroker<ILocationBroker>().FindAll(false), locationAssembler.CreateLocationSummary); response.OrderPriorityChoices = EnumUtils.GetEnumValueList<OrderPriorityEnum>(PersistenceContext); response.PatientClassChoices = EnumUtils.GetEnumValueList<PatientClassEnum>(PersistenceContext); response.CurrentServerConfigurationRequiresTimeFilter = Worklist.CurrentServerConfigurationRequiresTimeFilter(); response.CurrentServerConfigurationMaxSpanDays = Worklist.CurrentServerConfigurationMaxSpanDays(); // add extra data iff editing a user-defined worklist (bug #4871) if (request.UserDefinedWorklist) { response.OwnerGroupChoices = CollectionUtils.Map<StaffGroup, StaffGroupSummary>( this.CurrentUserStaff.ActiveGroups, // only current user's active staff groups should be choosable staffGroupAssembler.CreateSummary); } var proceduerTypesAssembler = new ProcedureTypeAssembler(); response.ProcedureTypeChoices = CollectionUtils.Map<ProcedureType, ProcedureTypeSummary>( this.PersistenceContext.GetBroker<IProcedureTypeBroker>().FindAll(false), proceduerTypesAssembler.CreateSummary); return response; }