public AddDiagnosticServiceResponse AddDiagnosticService(AddDiagnosticServiceRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticService, "request.DiagnosticService"); DiagnosticService item = new DiagnosticService(); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); assembler.UpdateDiagnosticService(item, request.DiagnosticService, PersistenceContext); PersistenceContext.Lock(item, DirtyState.New); PersistenceContext.SynchState(); return new AddDiagnosticServiceResponse(assembler.CreateSummary(item)); }
public ListDiagnosticServicesResponse ListDiagnosticServices(ListDiagnosticServicesRequest request) { Platform.CheckForNullReference(request, "request"); DiagnosticServiceSearchCriteria where = new DiagnosticServiceSearchCriteria(); where.Id.SortAsc(0); if (!string.IsNullOrEmpty(request.Id)) where.Id.StartsWith(request.Id); if (!string.IsNullOrEmpty(request.Name)) where.Name.Like(string.Format("%{0}%", request.Name)); if(!request.IncludeDeactivated) where.Deactivated.EqualTo(false); IDiagnosticServiceBroker broker = PersistenceContext.GetBroker<IDiagnosticServiceBroker>(); IList<DiagnosticService> items = broker.Find(where, request.Page); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); return new ListDiagnosticServicesResponse( CollectionUtils.Map<DiagnosticService, DiagnosticServiceSummary>(items, delegate(DiagnosticService item) { return assembler.CreateSummary(item); }) ); }
public ListDiagnosticServicesResponse ListDiagnosticServices(ListDiagnosticServicesRequest request) { Platform.CheckForNullReference(request, "request"); DiagnosticServiceSearchCriteria where = new DiagnosticServiceSearchCriteria(); where.Id.SortAsc(0); if (!string.IsNullOrEmpty(request.Id)) { where.Id.StartsWith(request.Id); } if (!string.IsNullOrEmpty(request.Name)) { where.Name.Like(string.Format("%{0}%", request.Name)); } if (!request.IncludeDeactivated) { where.Deactivated.EqualTo(false); } IDiagnosticServiceBroker broker = PersistenceContext.GetBroker <IDiagnosticServiceBroker>(); IList <DiagnosticService> items = broker.Find(where, request.Page); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); return(new ListDiagnosticServicesResponse( CollectionUtils.Map <DiagnosticService, DiagnosticServiceSummary>(items, delegate(DiagnosticService item) { return assembler.CreateSummary(item); }) )); }
public LoadDiagnosticServicePlanResponse LoadDiagnosticServicePlan(LoadDiagnosticServicePlanRequest request) { var dsBroker = this.PersistenceContext.GetBroker <IDiagnosticServiceBroker>(); var diagnosticService = dsBroker.Load(request.DiagnosticServiceRef); var assembler = new DiagnosticServiceAssembler(); return(new LoadDiagnosticServicePlanResponse(assembler.CreatePlanDetail(diagnosticService, request.IncludeDeactivatedProcedures, PersistenceContext))); }
public LoadDiagnosticServiceForEditResponse LoadDiagnosticServiceForEdit(LoadDiagnosticServiceForEditRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticServiceRef, "request.DiagnosticServiceRef"); DiagnosticService item = PersistenceContext.Load <DiagnosticService>(request.DiagnosticServiceRef); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); return(new LoadDiagnosticServiceForEditResponse(assembler.CreateDetail(item))); }
public AddDiagnosticServiceResponse AddDiagnosticService(AddDiagnosticServiceRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticService, "request.DiagnosticService"); DiagnosticService item = new DiagnosticService(); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); assembler.UpdateDiagnosticService(item, request.DiagnosticService, PersistenceContext); PersistenceContext.Lock(item, DirtyState.New); PersistenceContext.SynchState(); return(new AddDiagnosticServiceResponse(assembler.CreateSummary(item))); }
public UpdateDiagnosticServiceResponse UpdateDiagnosticService(UpdateDiagnosticServiceRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticService, "request.DiagnosticService"); Platform.CheckMemberIsSet(request.DiagnosticService.DiagnosticServiceRef, "request.DiagnosticService.DiagnosticServiceRef"); DiagnosticService item = PersistenceContext.Load <DiagnosticService>(request.DiagnosticService.DiagnosticServiceRef); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); assembler.UpdateDiagnosticService(item, request.DiagnosticService, PersistenceContext); PersistenceContext.SynchState(); return(new UpdateDiagnosticServiceResponse(assembler.CreateSummary(item))); }
public GetPriorsResponse GetPriors(GetPriorsRequest request) { Platform.CheckForNullReference(request, "request"); if (request.OrderRef == null && request.ReportRef == null) { throw new ArgumentException("Either OrderRef or ReportRef must be non-null"); } var priorReports = new HashedSet <Prior>(); var broker = this.PersistenceContext.GetBroker <IPriorReportBroker>(); // if an order was supplied, find relevant priors for the order if (request.OrderRef != null) { var order = this.PersistenceContext.Load <Order>(request.OrderRef, EntityLoadFlags.Proxy); priorReports.AddAll(broker.GetPriors(order, request.RelevantOnly)); } // if a report was supplied, find relevent priors for the report else if (request.ReportRef != null) { var report = this.PersistenceContext.Load <Report>(request.ReportRef, EntityLoadFlags.Proxy); priorReports.AddAll(broker.GetPriors(report, request.RelevantOnly)); } // assemble results var procedureTypeAssembler = new ProcedureTypeAssembler(); var diagnosticServiceAssembler = new DiagnosticServiceAssembler(); // Note: we use the ProcedureCheckin.CheckOutTime as the PerformedDate // because it is the closest to the end of modality procedure step completion time. // However, if we change the definition of CheckOutTime in the future, this won't be accurate var priorSummaries = CollectionUtils.Map(priorReports, (Prior prior) => new PriorProcedureSummary( prior.Order.GetRef(), prior.Procedure.GetRef(), prior.Report.GetRef(), prior.Order.AccessionNumber, diagnosticServiceAssembler.CreateSummary(prior.Order.DiagnosticService), procedureTypeAssembler.CreateSummary(prior.ProcedureType), prior.Procedure.Portable, EnumUtils.GetEnumValueInfo(prior.Procedure.Laterality, PersistenceContext), EnumUtils.GetEnumValueInfo(prior.Report.Status, PersistenceContext), prior.Procedure.ProcedureCheckIn.CheckOutTime)); return(new GetPriorsResponse(priorSummaries)); }
public TextQueryResponse <DiagnosticServiceSummary> TextQuery(TextQueryRequest request) { IDiagnosticServiceBroker broker = PersistenceContext.GetBroker <IDiagnosticServiceBroker>(); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); TextQueryHelper <DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary> helper = new TextQueryHelper <DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary>( delegate { string rawQuery = request.TextQuery; IList <string> terms = TextQueryHelper.ParseTerms(rawQuery); List <DiagnosticServiceSearchCriteria> criteria = new List <DiagnosticServiceSearchCriteria>(); // allow matching on name (assume entire query is a name which may contain spaces) DiagnosticServiceSearchCriteria nameCriteria = new DiagnosticServiceSearchCriteria(); nameCriteria.Name.StartsWith(rawQuery); criteria.Add(nameCriteria); // allow matching of any term against ID criteria.AddRange(CollectionUtils.Map <string, DiagnosticServiceSearchCriteria>(terms, delegate(string term) { DiagnosticServiceSearchCriteria c = new DiagnosticServiceSearchCriteria(); c.Id.StartsWith(term); return(c); })); return(criteria.ToArray()); }, delegate(DiagnosticService ds) { return(assembler.CreateSummary(ds)); }, delegate(DiagnosticServiceSearchCriteria[] criteria, int threshold) { return(broker.Count(criteria) <= threshold); }, delegate(DiagnosticServiceSearchCriteria[] criteria, SearchResultPage page) { return(broker.Find(criteria, page)); }); return(helper.Query(request)); }
public TextQueryResponse<DiagnosticServiceSummary> TextQuery(TextQueryRequest request) { IDiagnosticServiceBroker broker = PersistenceContext.GetBroker<IDiagnosticServiceBroker>(); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); TextQueryHelper<DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary> helper = new TextQueryHelper<DiagnosticService, DiagnosticServiceSearchCriteria, DiagnosticServiceSummary>( delegate { string rawQuery = request.TextQuery; IList<string> terms = TextQueryHelper.ParseTerms(rawQuery); List<DiagnosticServiceSearchCriteria> criteria = new List<DiagnosticServiceSearchCriteria>(); // allow matching on name (assume entire query is a name which may contain spaces) DiagnosticServiceSearchCriteria nameCriteria = new DiagnosticServiceSearchCriteria(); nameCriteria.Name.StartsWith(rawQuery); criteria.Add(nameCriteria); // allow matching of any term against ID criteria.AddRange(CollectionUtils.Map<string, DiagnosticServiceSearchCriteria>(terms, delegate(string term) { DiagnosticServiceSearchCriteria c = new DiagnosticServiceSearchCriteria(); c.Id.StartsWith(term); return c; })); return criteria.ToArray(); }, delegate(DiagnosticService ds) { return assembler.CreateSummary(ds); }, delegate(DiagnosticServiceSearchCriteria[] criteria, int threshold) { return broker.Count(criteria) <= threshold; }, delegate(DiagnosticServiceSearchCriteria[] criteria, SearchResultPage page) { return broker.Find(criteria, page); }); return helper.Query(request); }
public OrderRequisition CreateOrderRequisition(Order order, IPersistenceContext context) { var patientProfileAssembler = new PatientProfileAssembler(); var visitAssembler = new VisitAssembler(); var pracAssembler = new ExternalPractitionerAssembler(); var facilityAssembler = new FacilityAssembler(); var dsAssembler = new DiagnosticServiceAssembler(); var attachmentAssembler = new OrderAttachmentAssembler(); var noteAssembler = new OrderNoteAssembler(); var resultRecipientAssembler = new ResultRecipientAssembler(); var requisition = new OrderRequisition { OrderRef = order.GetRef(), Patient = patientProfileAssembler.CreatePatientProfileSummary( CollectionUtils.FirstElement(order.Procedures).PatientProfile, context), Visit = visitAssembler.CreateVisitSummary(order.Visit, context), DiagnosticService = dsAssembler.CreateSummary(order.DiagnosticService), SchedulingRequestTime = order.SchedulingRequestTime, OrderingPractitioner = pracAssembler.CreateExternalPractitionerSummary(order.OrderingPractitioner, context), OrderingFacility = facilityAssembler.CreateFacilitySummary(order.OrderingFacility), ReasonForStudy = order.ReasonForStudy, Priority = EnumUtils.GetEnumValueInfo(order.Priority, context), ResultRecipients = CollectionUtils.Map<ResultRecipient, ResultRecipientDetail>( order.ResultRecipients, r => resultRecipientAssembler.CreateResultRecipientDetail(r, context)), Procedures = CollectionUtils.Map<Procedure, ProcedureRequisition>( order.Procedures, procedure => CreateProcedureRequisition(procedure, context)), Attachments = CollectionUtils.Map<OrderAttachment, AttachmentSummary>( order.Attachments, attachment => attachmentAssembler.CreateOrderAttachmentSummary(attachment, context)), Notes = CollectionUtils.Map<OrderNote, OrderNoteDetail>( OrderNote.GetNotesForOrder(order), note => noteAssembler.CreateOrderNoteDetail(note, context)), ExtendedProperties = ExtendedPropertyUtils.Copy(order.ExtendedProperties), CanModify = !order.IsTerminated }; return requisition; }
public OrderRequisition CreateOrderRequisition(Order order, IPersistenceContext context) { var patientProfileAssembler = new PatientProfileAssembler(); var visitAssembler = new VisitAssembler(); var pracAssembler = new ExternalPractitionerAssembler(); var facilityAssembler = new FacilityAssembler(); var dsAssembler = new DiagnosticServiceAssembler(); var attachmentAssembler = new OrderAttachmentAssembler(); var noteAssembler = new OrderNoteAssembler(); var resultRecipientAssembler = new ResultRecipientAssembler(); var requisition = new OrderRequisition { OrderRef = order.GetRef(), Patient = patientProfileAssembler.CreatePatientProfileSummary( CollectionUtils.FirstElement(order.Procedures).PatientProfile, context), Visit = visitAssembler.CreateVisitSummary(order.Visit, context), DiagnosticService = dsAssembler.CreateSummary(order.DiagnosticService), SchedulingRequestTime = order.SchedulingRequestTime, OrderingPractitioner = pracAssembler.CreateExternalPractitionerSummary(order.OrderingPractitioner, context), OrderingFacility = facilityAssembler.CreateFacilitySummary(order.OrderingFacility), ReasonForStudy = order.ReasonForStudy, Priority = EnumUtils.GetEnumValueInfo(order.Priority, context), ResultRecipients = CollectionUtils.Map <ResultRecipient, ResultRecipientDetail>( order.ResultRecipients, r => resultRecipientAssembler.CreateResultRecipientDetail(r, context)), Procedures = CollectionUtils.Map <Procedure, ProcedureRequisition>( order.Procedures, procedure => CreateProcedureRequisition(procedure, context)), Attachments = CollectionUtils.Map <OrderAttachment, AttachmentSummary>( order.Attachments, attachment => attachmentAssembler.CreateOrderAttachmentSummary(attachment, context)), Notes = CollectionUtils.Map <OrderNote, OrderNoteDetail>( OrderNote.GetNotesForOrder(order), note => noteAssembler.CreateOrderNoteDetail(note, context)), ExtendedProperties = ExtendedPropertyUtils.Copy(order.ExtendedProperties), CanModify = !order.IsTerminated }; return(requisition); }
private static void UpdateListItem(OrderListItem data, Order order, IPersistenceContext context) { var practitionerAssembler = new ExternalPractitionerAssembler(); var dsAssembler = new DiagnosticServiceAssembler(); var facilityAssembler = new FacilityAssembler(); data.OrderRef = order.GetRef(); data.PlacerNumber = order.PlacerNumber; data.AccessionNumber = order.AccessionNumber; data.DiagnosticService = dsAssembler.CreateSummary(order.DiagnosticService); data.EnteredTime = order.EnteredTime; data.SchedulingRequestTime = order.SchedulingRequestTime; data.OrderingPractitioner = practitionerAssembler.CreateExternalPractitionerSummary(order.OrderingPractitioner, context); data.OrderingFacility = facilityAssembler.CreateFacilitySummary(order.OrderingFacility); data.ReasonForStudy = order.ReasonForStudy; data.OrderPriority = EnumUtils.GetEnumValueInfo(order.Priority, context); data.CancelReason = order.CancelInfo != null && order.CancelInfo.Reason != null ? EnumUtils.GetEnumValueInfo(order.CancelInfo.Reason) : null; data.OrderStatus = EnumUtils.GetEnumValueInfo(order.Status, context); data.OrderScheduledStartTime = order.ScheduledStartTime; }
private static void UpdateListItem(OrderListItem data, Order order, IPersistenceContext context) { var practitionerAssembler = new ExternalPractitionerAssembler(); var dsAssembler = new DiagnosticServiceAssembler(); var facilityAssembler = new FacilityAssembler(); data.OrderRef = order.GetRef(); data.PlacerNumber = order.PlacerNumber; data.AccessionNumber = order.AccessionNumber; data.DiagnosticService = dsAssembler.CreateSummary(order.DiagnosticService); data.EnteredTime = order.EnteredTime; data.SchedulingRequestTime = order.SchedulingRequestTime; data.OrderingPractitioner = practitionerAssembler.CreateExternalPractitionerSummary(order.OrderingPractitioner, context); data.OrderingFacility = facilityAssembler.CreateFacilitySummary(order.OrderingFacility); data.ReasonForStudy = order.ReasonForStudy; data.OrderPriority = EnumUtils.GetEnumValueInfo(order.Priority, context); data.CancelReason = order.CancelInfo != null && order.CancelInfo.Reason != null?EnumUtils.GetEnumValueInfo(order.CancelInfo.Reason) : null; data.OrderStatus = EnumUtils.GetEnumValueInfo(order.Status, context); data.OrderScheduledStartTime = order.ScheduledStartTime; }
public LoadDiagnosticServiceForEditResponse LoadDiagnosticServiceForEdit(LoadDiagnosticServiceForEditRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticServiceRef, "request.DiagnosticServiceRef"); DiagnosticService item = PersistenceContext.Load<DiagnosticService>(request.DiagnosticServiceRef); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); return new LoadDiagnosticServiceForEditResponse(assembler.CreateDetail(item)); }
public UpdateDiagnosticServiceResponse UpdateDiagnosticService(UpdateDiagnosticServiceRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.DiagnosticService, "request.DiagnosticService"); Platform.CheckMemberIsSet(request.DiagnosticService.DiagnosticServiceRef, "request.DiagnosticService.DiagnosticServiceRef"); DiagnosticService item = PersistenceContext.Load<DiagnosticService>(request.DiagnosticService.DiagnosticServiceRef); DiagnosticServiceAssembler assembler = new DiagnosticServiceAssembler(); assembler.UpdateDiagnosticService(item, request.DiagnosticService, PersistenceContext); PersistenceContext.SynchState(); return new UpdateDiagnosticServiceResponse(assembler.CreateSummary(item)); }
public GetPriorsResponse GetPriors(GetPriorsRequest request) { Platform.CheckForNullReference(request, "request"); if (request.OrderRef == null && request.ReportRef == null) throw new ArgumentException("Either OrderRef or ReportRef must be non-null"); var priorReports = new HashedSet<Prior>(); var broker = this.PersistenceContext.GetBroker<IPriorReportBroker>(); // if an order was supplied, find relevant priors for the order if (request.OrderRef != null) { var order = this.PersistenceContext.Load<Order>(request.OrderRef, EntityLoadFlags.Proxy); priorReports.AddAll(broker.GetPriors(order, request.RelevantOnly)); } // if a report was supplied, find relevent priors for the report else if (request.ReportRef != null) { var report = this.PersistenceContext.Load<Report>(request.ReportRef, EntityLoadFlags.Proxy); priorReports.AddAll(broker.GetPriors(report, request.RelevantOnly)); } // assemble results var procedureTypeAssembler = new ProcedureTypeAssembler(); var diagnosticServiceAssembler = new DiagnosticServiceAssembler(); // Note: we use the ProcedureCheckin.CheckOutTime as the PerformedDate // because it is the closest to the end of modality procedure step completion time. // However, if we change the definition of CheckOutTime in the future, this won't be accurate var priorSummaries = CollectionUtils.Map(priorReports, (Prior prior) => new PriorProcedureSummary( prior.Order.GetRef(), prior.Procedure.GetRef(), prior.Report.GetRef(), prior.Order.AccessionNumber, diagnosticServiceAssembler.CreateSummary(prior.Order.DiagnosticService), procedureTypeAssembler.CreateSummary(prior.ProcedureType), prior.Procedure.Portable, EnumUtils.GetEnumValueInfo(prior.Procedure.Laterality, PersistenceContext), EnumUtils.GetEnumValueInfo(prior.Report.Status, PersistenceContext), prior.Procedure.ProcedureCheckIn.CheckOutTime)); return new GetPriorsResponse(priorSummaries); }
public LoadDiagnosticServicePlanResponse LoadDiagnosticServicePlan(LoadDiagnosticServicePlanRequest request) { var dsBroker = this.PersistenceContext.GetBroker<IDiagnosticServiceBroker>(); var diagnosticService = dsBroker.Load(request.DiagnosticServiceRef); var assembler = new DiagnosticServiceAssembler(); return new LoadDiagnosticServicePlanResponse(assembler.CreatePlanDetail(diagnosticService, request.IncludeDeactivatedProcedures, PersistenceContext)); }