private static void InitReferenceDataCacheOnce() { if (_refDataCachedInitialized) { return; } lock (_syncLock) { if (_refDataCachedInitialized) { return; } Platform.GetService( delegate(IPatientAdminService service) { _patientEditorFormData = service.LoadPatientProfileEditorFormData(new LoadPatientProfileEditorFormDataRequest()); }); Platform.GetService( delegate(IVisitAdminService service) { _visitEditorFormData = service.LoadVisitEditorFormData(new LoadVisitEditorFormDataRequest()); }); Platform.GetService( delegate(IOrderEntryService service) { _orderEntryFormData = service.GetOrderEntryFormData(new GetOrderEntryFormDataRequest()); }); // cache up to 1000 diagnostic services Platform.GetService( delegate(IDiagnosticServiceAdminService service) { var request = new ListDiagnosticServicesRequest { Page = { FirstRow = 0, MaxRows = 1000 } }; _diagnosticServices = service.ListDiagnosticServices(request).DiagnosticServices; }); // cache up to 500 practitioners Platform.GetService( delegate(IExternalPractitionerAdminService service) { var request = new ListExternalPractitionersRequest { Page = { FirstRow = 0, MaxRows = 500 }, QueryItems = true }; _practitioners = service.ListExternalPractitioners(request).Practitioners; }); _refDataCachedInitialized = true; } }
public LoadVisitEditorFormDataResponse LoadVisitEditorFormData(LoadVisitEditorFormDataRequest request) { // ignore request LoadVisitEditorFormDataResponse response = new LoadVisitEditorFormDataResponse(); response.AdmissionTypeChoices = EnumUtils.GetEnumValueList <AdmissionTypeEnum>(PersistenceContext); response.AmbulatoryStatusChoices = EnumUtils.GetEnumValueList <AmbulatoryStatusEnum>(PersistenceContext); response.PatientClassChoices = EnumUtils.GetEnumValueList <PatientClassEnum>(PersistenceContext); response.PatientTypeChoices = EnumUtils.GetEnumValueList <PatientTypeEnum>(PersistenceContext); response.VisitLocationRoleChoices = EnumUtils.GetEnumValueList <VisitLocationRoleEnum>(PersistenceContext); response.VisitNumberAssigningAuthorityChoices = EnumUtils.GetEnumValueList <InformationAuthorityEnum>(PersistenceContext); response.VisitPractitionerRoleChoices = EnumUtils.GetEnumValueList <VisitPractitionerRoleEnum>(PersistenceContext); response.VisitStatusChoices = EnumUtils.GetEnumValueList <VisitStatusEnum>(PersistenceContext); FacilityAssembler facilityAssembler = new FacilityAssembler(); response.FacilityChoices = CollectionUtils.Map <Facility, FacilitySummary, List <FacilitySummary> >( PersistenceContext.GetBroker <IFacilityBroker>().FindAll(false), delegate(Facility f) { return(facilityAssembler.CreateFacilitySummary(f)); }); LocationAssembler locationAssembler = new LocationAssembler(); response.CurrentLocationChoices = CollectionUtils.Map <Location, LocationSummary>( PersistenceContext.GetBroker <ILocationBroker>().FindAll(false), delegate(Location f) { return(locationAssembler.CreateLocationSummary(f)); }); return(response); }
public override void Start() { Platform.GetService <IVisitAdminService>( delegate(IVisitAdminService service) { LoadVisitEditorFormDataResponse response = service.LoadVisitEditorFormData(new LoadVisitEditorFormDataRequest()); this.Pages.Add(new NavigatorPage("Visit", _visitEditor = new VisitDetailsEditorComponent( response.VisitNumberAssigningAuthorityChoices, response.PatientClassChoices, response.PatientTypeChoices, response.AdmissionTypeChoices, response.AmbulatoryStatusChoices, response.VisitStatusChoices, response.FacilityChoices, response.CurrentLocationChoices))); // JR (may 2008): these pages are not currently needed, and they are not complete, so // better just to remove them for now //this.Pages.Add(new NavigatorPage("Visit/Practitioners", // _visitPractionersSummary = new VisitPractitionersSummaryComponent( // response.VisitPractitionerRoleChoices // ))); //this.Pages.Add(new NavigatorPage("Visit/Location", // _visitLocationsSummary = new VisitLocationsSummaryComponent( // response.VisitLocationRoleChoices // ))); if (_isNew) { _visit = new VisitDetail(); _visit.Patient = _patient; _visit.VisitNumber.AssigningAuthority = response.VisitNumberAssigningAuthorityChoices.Count > 0 ? response.VisitNumberAssigningAuthorityChoices[0] : null; _visit.PatientClass = response.PatientClassChoices[0]; _visit.PatientType = response.PatientTypeChoices[0]; _visit.AdmissionType = response.AdmissionTypeChoices[0]; _visit.Status = response.VisitStatusChoices[0]; _visit.Facility = response.FacilityChoices[0]; } else { LoadVisitForEditResponse loadVisitResponse = service.LoadVisitForEdit(new LoadVisitForEditRequest(_visitRef)); _patient = loadVisitResponse.VisitDetail.Patient; _visitRef = loadVisitResponse.VisitRef; _visit = loadVisitResponse.VisitDetail; } }); _visitEditor.Visit = _visit; //_visitPractionersSummary.Visit = _visit; //_visitLocationsSummary.Visit = _visit; // instantiate all extension pages _extensionPages = new List <IVisitEditorPage>(); foreach (IVisitEditorPageProvider pageProvider in new VisitEditorPageProviderExtensionPoint().CreateExtensions()) { _extensionPages.AddRange(pageProvider.GetPages(new EditorContext(this))); } // add extension pages to navigator // the navigator will start those components if the user goes to that page foreach (IVisitEditorPage page in _extensionPages) { this.Pages.Add(new NavigatorPage(page.Path, page.GetComponent())); } this.ValidationStrategy = new AllComponentsValidationStrategy(); base.Start(); }