示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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();
        }