public GetProcedureTypeGroupSummaryFormDataResponse GetProcedureTypeGroupSummaryFormData(GetProcedureTypeGroupSummaryFormDataRequest request) { var ptgAssembler = new ProcedureTypeGroupAssembler(); var subClasses = ProcedureTypeGroup.ListSubClasses(PersistenceContext); // Category choices return new GetProcedureTypeGroupSummaryFormDataResponse( CollectionUtils.Map(subClasses, (Type t) => ptgAssembler.GetCategoryEnumValueInfo(t))); }
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 GetProcedureTypeGroupEditFormDataResponse GetProcedureTypeGroupEditFormData( GetProcedureTypeGroupEditFormDataRequest request) { var response = new GetProcedureTypeGroupEditFormDataResponse(); var ptgAssembler = new ProcedureTypeGroupAssembler(); var subClasses = ProcedureTypeGroup.ListSubClasses(PersistenceContext); // Category choices response.Categories = CollectionUtils.Map(subClasses, (Type t) => ptgAssembler.GetCategoryEnumValueInfo(t)); // ProcedureType choices var assembler = new ProcedureTypeAssembler(); response.ProcedureTypes = CollectionUtils.Map( PersistenceContext.GetBroker<IProcedureTypeBroker>().FindAll(request.IncludeDeactivated), (ProcedureType rpt) => assembler.CreateSummary(rpt)); return response; }
public AddProcedureTypeGroupResponse AddProcedureTypeGroup( AddProcedureTypeGroupRequest request) { if (string.IsNullOrEmpty(request.Detail.Name)) { throw new RequestValidationException(SR.ExceptionProcedureTypeGroupNameRequired); } // create appropriate class of group var group = (ProcedureTypeGroup)Activator.CreateInstance(Type.GetType(request.Detail.Category.Code)); var assembler = new ProcedureTypeGroupAssembler(); assembler.UpdateProcedureTypeGroup(group, request.Detail, this.PersistenceContext); PersistenceContext.Lock(group, DirtyState.New); PersistenceContext.SynchState(); return(new AddProcedureTypeGroupResponse( assembler.GetProcedureTypeGroupSummary(group, this.PersistenceContext))); }
public ListProcedureTypeGroupsResponse ListProcedureTypeGroups(ListProcedureTypeGroupsRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.ProcedureTypeGroupClass, "request.ProcedureTypeGroupClass"); var procedureTypeGroupClass = ProcedureTypeGroup.GetSubClass(request.ProcedureTypeGroupClass, PersistenceContext); if (procedureTypeGroupClass == null) { throw new ArgumentException("Invalid ProcedureTypeGroupClass name"); } var response = new ListProcedureTypeGroupsResponse(); var assembler = new ProcedureTypeGroupAssembler(); response.ProcedureTypeGroups = CollectionUtils.Map <ProcedureTypeGroup, ProcedureTypeGroupSummary>( PersistenceContext.GetBroker <IProcedureTypeGroupBroker>().Find(new ProcedureTypeGroupSearchCriteria(), procedureTypeGroupClass), group => assembler.GetProcedureTypeGroupSummary(group, PersistenceContext)); return(response); }
public AddProcedureTypeGroupResponse AddProcedureTypeGroup( AddProcedureTypeGroupRequest request) { if (string.IsNullOrEmpty(request.Detail.Name)) { throw new RequestValidationException(SR.ExceptionProcedureTypeGroupNameRequired); } // create appropriate class of group var group = (ProcedureTypeGroup)Activator.CreateInstance(Type.GetType(request.Detail.Category.Code)); var assembler = new ProcedureTypeGroupAssembler(); assembler.UpdateProcedureTypeGroup(group, request.Detail, this.PersistenceContext); PersistenceContext.Lock(group, DirtyState.New); PersistenceContext.SynchState(); return new AddProcedureTypeGroupResponse( assembler.GetProcedureTypeGroupSummary(group, this.PersistenceContext)); }
public LoadProcedureTypeGroupForEditResponse LoadProcedureTypeGroupForEdit( LoadProcedureTypeGroupForEditRequest request) { var rptGroup = PersistenceContext.GetBroker<IProcedureTypeGroupBroker>().Load(request.EntityRef); var assembler = new ProcedureTypeGroupAssembler(); var detail = assembler.GetProcedureTypeGroupDetail(rptGroup, this.PersistenceContext); return new LoadProcedureTypeGroupForEditResponse(rptGroup.GetRef(), detail); }
public UpdateProcedureTypeGroupResponse UpdateProcedureTypeGroup( UpdateProcedureTypeGroupRequest request) { var group = PersistenceContext.Load<ProcedureTypeGroup>(request.EntityRef, EntityLoadFlags.CheckVersion); var assembler = new ProcedureTypeGroupAssembler(); assembler.UpdateProcedureTypeGroup(group, request.Detail, this.PersistenceContext); return new UpdateProcedureTypeGroupResponse( assembler.GetProcedureTypeGroupSummary(group, this.PersistenceContext)); }
/// <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); }
public ListProcedureTypeGroupsResponse ListProcedureTypeGroups(ListProcedureTypeGroupsRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.ProcedureTypeGroupClass, "request.ProcedureTypeGroupClass"); var procedureTypeGroupClass = ProcedureTypeGroup.GetSubClass(request.ProcedureTypeGroupClass, PersistenceContext); if (procedureTypeGroupClass == null) throw new ArgumentException("Invalid ProcedureTypeGroupClass name"); var response = new ListProcedureTypeGroupsResponse(); var assembler = new ProcedureTypeGroupAssembler(); response.ProcedureTypeGroups = CollectionUtils.Map<ProcedureTypeGroup, ProcedureTypeGroupSummary>( PersistenceContext.GetBroker<IProcedureTypeGroupBroker>().Find(new ProcedureTypeGroupSearchCriteria(), procedureTypeGroupClass), group => assembler.GetProcedureTypeGroupSummary(group, PersistenceContext)); return response; }