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); }
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; } }