示例#1
0
        public LoadPatientProfileEditorFormDataResponse LoadPatientProfileEditorFormData(LoadPatientProfileEditorFormDataRequest request)
        {
            var workflowConfig = new WorkflowConfigurationReader();

            // ignore request
            // Sort the category from High to Low, then sort by name
            var categoryAssembler = new PatientNoteCategoryAssembler();
            IList <PatientNoteCategory> sortedCategoryList = CollectionUtils.Sort(
                PersistenceContext.GetBroker <IPatientNoteCategoryBroker>().FindAll(false),
                (x, y) => string.Compare(x.Name, y.Name));

            var response = new LoadPatientProfileEditorFormDataResponse
            {
                MrnAutoGenerated   = workflowConfig.AutoGenerateMrn,
                AddressTypeChoices = EnumUtils.GetEnumValueList <AddressTypeEnum>(PersistenceContext),
                ContactPersonRelationshipChoices    = EnumUtils.GetEnumValueList <ContactPersonRelationshipEnum>(PersistenceContext),
                ContactPersonTypeChoices            = EnumUtils.GetEnumValueList <ContactPersonTypeEnum>(PersistenceContext),
                HealthcardAssigningAuthorityChoices = EnumUtils.GetEnumValueList <InsuranceAuthorityEnum>(PersistenceContext),
                MrnAssigningAuthorityChoices        = EnumUtils.GetEnumValueList <InformationAuthorityEnum>(PersistenceContext),
                PrimaryLanguageChoices = EnumUtils.GetEnumValueList <SpokenLanguageEnum>(PersistenceContext),
                ReligionChoices        = EnumUtils.GetEnumValueList <ReligionEnum>(PersistenceContext),
                SexChoices             = EnumUtils.GetEnumValueList <SexEnum>(PersistenceContext),
                PhoneTypeChoices       = (new SimplifiedPhoneTypeAssembler()).GetPatientPhoneTypeChoices(),
                NoteCategoryChoices    = CollectionUtils.Map <PatientNoteCategory, PatientNoteCategorySummary, List <PatientNoteCategorySummary> >(sortedCategoryList,
                                                                                                                                                   category => categoryAssembler.CreateNoteCategorySummary(category, this.PersistenceContext)),

                // Allergies related choices
                AllergenTypeChoices           = EnumUtils.GetEnumValueList <AllergyAllergenTypeEnum>(PersistenceContext),
                AllergySeverityChoices        = EnumUtils.GetEnumValueList <AllergySeverityEnum>(PersistenceContext),
                AllergySensitivityTypeChoices = EnumUtils.GetEnumValueList <AllergySensitivityTypeEnum>(PersistenceContext),
                PersonRelationshipTypeChoices = EnumUtils.GetEnumValueList <PersonRelationshipTypeEnum>(PersistenceContext)
            };

            return(response);
        }
示例#2
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;
            }
        }