public static List <PatientModelFront> Get_Patients_On_Tenant(ElasticParameterObject Parameter, SessionSecurityTicket securityTicket) { var TenantID = securityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection)) { string sort_by_second_key = "name"; string sort_by_third_key = "name"; var sortBY = Parameter.sort_by; switch (Parameter.sort_by) { case "name": sort_by_second_key = "name"; sort_by_third_key = "birthday"; break; case "participation_consent": Parameter.sort_by = "name"; sort_by_second_key = "birthday"; sort_by_third_key = "name"; break; case "last_first_op_doctor_name": sort_by_second_key = "name"; sort_by_third_key = "name"; break; case "last_first_ac_doctor_name": sort_by_second_key = "name"; sort_by_third_key = "name"; break; default: sort_by_second_key = "name"; sort_by_third_key = "birthday"; break; } var query = QueryBuilderPatients.BuildGetPatientsSearchAsYouTypeQueryTenant(Parameter.start_row_index, 100, Parameter.sort_by, Parameter.isAsc, Parameter.search_params, sort_by_second_key, sort_by_third_key); string searchCommand = Commands.Search(TenantID, elasticType).Pretty(); string result = connection.Post(searchCommand, query); var foundResults = serializer.ToSearchResult <Patient_Model>(result); return(foundResults.Documents.Select(item => { IFormatProvider culture = new System.Globalization.CultureInfo("de", true); var patient = new PatientModelFront(); patient.birthday_string = item.birthday_string; patient.birthday = DateTime.Parse(item.birthday_string, culture, System.Globalization.DateTimeStyles.AssumeLocal); patient.health_insurance_provider = item.health_insurance_provider; patient.id = item.id; patient.insurance_id = item.insurance_id; patient.insurance_status = item.insurance_status; patient.name = item.name; patient.sex = item.sex; patient.last_first_ac_doctor_name = item.last_first_ac_doctor_name; patient.last_first_op_doctor_name = item.last_first_op_doctor_name; patient.ac_practice = item.ac_practice; patient.practice = item.practice; if (!item.has_participation_consent) { patient.participation_consent_status = "/"; } else { var todaysDate = DateTime.Now.Date; int startCompare = item.participation_consent_from.Date.CompareTo(todaysDate); int endCompare = item.participation_consent_to == DateTime.MinValue ? 1 : item.participation_consent_to.Date.CompareTo(todaysDate); if (startCompare <= 0 && endCompare >= 0) { patient.participation_consent_status = "aktualisiert"; } else { patient.participation_consent_status = "abgelaufen"; } } switch (sortBY) { case "name": patient.group_name = string.IsNullOrEmpty(item.name) ? "-" : item.name.Substring(0, 1).ToUpper(); break; case "sex": patient.group_name = string.IsNullOrEmpty(item.sex) ? "-" : item.sex; break; case "health_insurance_provider": patient.group_name = string.IsNullOrEmpty(item.health_insurance_provider) ? "-" : item.health_insurance_provider; break; case "last_first_op_doctor_name": patient.group_name = string.IsNullOrEmpty(item.last_first_op_doctor_name) ? "-" : item.last_first_op_doctor_name; break; case "last_first_ac_doctor_name": patient.group_name = string.IsNullOrEmpty(item.last_first_ac_doctor_name) ? "-" : item.last_first_ac_doctor_name; break; case "participation_consent": patient.group_name = string.IsNullOrEmpty(patient.participation_consent_status) ? "-" : patient.participation_consent_status; break; } return patient; }).ToList()); } return(new List <PatientModelFront>()); }
public static List <PatientModelFront> Get_PatientsList(ElasticParameterObject Parameter, string practice_id, IEnumerable <Guid> patientsIdsWithInvalidConsent, SessionSecurityTicket securityTicket) { List <PatientModelFront> patientList = new List <PatientModelFront>(); var TenantID = securityTicket.TenantID.ToString(); var serializer = new JsonNetSerializer(); var connection = Elastic_Utils.ElsaticConnection(); if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection)) { string sort_by_second_key = "name"; string sort_by_third_key = "name"; switch (Parameter.sort_by) { case "name": sort_by_second_key = "name"; sort_by_third_key = "birthday"; break; case "participation_consent": Parameter.sort_by = "name"; sort_by_second_key = "name"; sort_by_third_key = "birthday"; break; } string query = String.Empty; var hip_name = !String.IsNullOrEmpty(Parameter.hip_name) ? Parameter.hip_name.ToLower() : null; if (Parameter.page_size == 0) { Parameter.page_size = 100; } var patient_ids_with_invalid_consent_array = Parameter.invalid_consent && patientsIdsWithInvalidConsent.Any() ? Array.ConvertAll(patientsIdsWithInvalidConsent.ToArray(), x => x.ToString()) : null; query = QueryBuilderPatients.BuildGetPatientsSearchAsYouTypeQuery(Parameter, Parameter.sort_by, practice_id, sort_by_second_key, sort_by_third_key, hip_name, patient_ids_with_invalid_consent_array); string searchCommand = Commands.Search(TenantID, elasticType).Pretty(); string result = connection.Post(searchCommand, query); var foundResults = serializer.ToSearchResult <Patient_Model>(result); foreach (var item in foundResults.Documents) { IFormatProvider culture = new System.Globalization.CultureInfo("de", true); PatientModelFront patient = new PatientModelFront(); patient.birthday_string = item.birthday_string; patient.birthday = DateTime.Parse(item.birthday_string, culture, System.Globalization.DateTimeStyles.AssumeLocal); patient.health_insurance_provider = item.health_insurance_provider; patient.id = item.id; patient.insurance_id = item.insurance_id; patient.insurance_status = item.insurance_status; patient.name = item.name; patient.sex = item.sex; patient.has_rejected_oct = item.has_rejected_oct; patient.originating_patient_id = item.originating_patient_id; patient.originating_practice_id = item.originating_practice_id; patient.originating_practice_name = item.originating_practice_name; patient.external_id = item.external_id; switch (Parameter.sort_by) { case "name": patient.group_name = string.IsNullOrEmpty(item.name) ? "-" : item.name.Substring(0, 1).ToUpper(); break; case "sex": patient.group_name = string.IsNullOrEmpty(item.sex) ? "-" : item.sex; break; case "health_insurance_provider": patient.group_name = string.IsNullOrEmpty(item.health_insurance_provider) ? "-" : item.health_insurance_provider; break; } patientList.Add(patient); } } return(patientList); }