public static void InsertDataIntoElastic(IEnumerable <IEnumerable <IElasticMapper> > data, string index_name) { foreach (var data_list in data) { if (data_list.Any()) { switch (data_list.First().GetType().Name) { case "Case_Model": Add_New_Case.Import_Case_Data_to_ElasticDB(data_list.Cast <Case_Model>().ToList(), index_name); break; case "Aftercare_Model": Add_New_Aftercare.Import_Aftercare_Data_to_ElasticDB(data_list.Cast <Aftercare_Model>().ToList(), index_name); break; case "Settlement_Model": Add_new_Settlement.Import_Settlement_to_ElasticDB(data_list.Cast <Settlement_Model>().ToList(), index_name); break; case "Order_Model": Add_New_Order.Import_Order_Data_to_ElasticDB(data_list.Cast <Order_Model>().ToList(), index_name); break; case "Patient_Model": Add_New_Patient.Import_Patients_to_ElasticDB(data_list.Cast <Patient_Model>().ToList(), index_name); break; case "Submitted_Case_Model": Add_New_Submitted_Case.Import_Submitted_Case_Data_to_ElasticDB(data_list.Cast <Submitted_Case_Model>().ToList(), index_name); break; case "PatientDetailViewModel": Add_New_Patient.ImportPatientDetailsToElastic(data_list.Cast <PatientDetailViewModel>().ToList(), index_name); break; case "Oct_Model": Add_New_Oct.Import_Oct_Data_to_ElasticDB(data_list.Cast <Oct_Model>().ToList(), index_name); break; default: break; } } } }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_OR_COS_0840 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); List <Case_Model> cases = new List <Case_Model>(); List <PatientDetailViewModel> patientDetailList = new List <PatientDetailViewModel>(); List <Order_Model> OrderModelL = new List <Order_Model>(); //Put your code here foreach (var ParameterInstance in Parameter.ParameterArray) { var procurmentHeader = ORM_ORD_PRC_ProcurementOrder_Header.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Header.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, ORD_PRC_ProcurementOrder_HeaderID = ParameterInstance.Order_ID }).Single(); var newOrderStatus = new ORM_ORD_PRC_ProcurementOrder_Status(); newOrderStatus.Tenant_RefID = securityTicket.TenantID; newOrderStatus.Status_Code = ParameterInstance.Status_To; newOrderStatus.Modification_Timestamp = DateTime.Now; newOrderStatus.Save(Connection, Transaction); var newOrderStatusHistory = new ORM_ORD_PRC_ProcurementOrder_StatusHistory(); newOrderStatusHistory.Tenant_RefID = securityTicket.TenantID; newOrderStatusHistory.ProcurementOrder_Status_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; newOrderStatusHistory.IsStatus_RejectedBySupplier = true; newOrderStatusHistory.ProcurementOrder_Header_RefID = procurmentHeader.ORD_PRC_ProcurementOrder_HeaderID; newOrderStatusHistory.Save(Connection, Transaction); procurmentHeader.Current_ProcurementOrderStatus_RefID = newOrderStatus.ORD_PRC_ProcurementOrder_StatusID; procurmentHeader.Save(Connection, Transaction); #region Update Case Elastic var caseForUpdate = cls_Get_Case_Details_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GCDfCID_1435() { CaseID = ParameterInstance.CaseID }, securityTicket).Result; var patient_details = cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_P_PA_GPDfPID_1124() { PatientID = caseForUpdate.patient_id }, securityTicket).Result; var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1608() { DiagnoseID = caseForUpdate.diagnose_id }, securityTicket).Result; var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614() { DrugID = caseForUpdate.drug_id }, securityTicket).Result; var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = caseForUpdate.op_doctor_id }, securityTicket).Result.SingleOrDefault(); var case_status = cls_Check_Case_Status.Invoke(Connection, Transaction, new P_CAS_CCS_1639() { CaseID = ParameterInstance.CaseID }, securityTicket).Result; if (case_status == null) { var case_model_elastic = Get_Cases.GetCaseforCaseID(caseForUpdate.case_id.ToString(), securityTicket); if (case_model_elastic != null) { case_model_elastic.status_drug_order = ParameterInstance.Status_To_Str; case_model_elastic.order_modification_timestamp = caseForUpdate.order_modification_timestamp; case_model_elastic.order_modification_timestamp_string = caseForUpdate.order_modification_timestamp.ToString("dd.MM.yyyy"); cases.Add(case_model_elastic); } } #endregion var orderM = Get_Orders.GetOrderforOrderID(procurmentHeader.ORD_PRC_ProcurementOrder_HeaderID.ToString(), securityTicket); if (orderM != null) { orderM.status_drug_order = ParameterInstance.Status_To_Str; orderM.order_modification_timestamp = DateTime.Now; orderM.order_modification_timestamp_string = DateTime.Now.ToString("dd.MM.yyyy"); OrderModelL.Add(orderM); var patientDetalTreatmentWithOrder = Retrieve_Patients.Get_PatientDetaiForIDandOrderID(orderM.id, securityTicket).Where(i => i.detail_type == "op").SingleOrDefault(); if (patientDetalTreatmentWithOrder == null) { PatientDetailViewModel patient_detail = new PatientDetailViewModel(); patient_detail.case_id = orderM.case_id; patient_detail.date = orderM.treatment_date; patient_detail.date_string = patient_detail.date.ToString("dd.MM."); patient_detail.detail_type = "order"; patient_detail.diagnose_or_medication = orderM.drug; patient_detail.practice_id = orderM.practice_id; patient_detail.id = orderM.id; patient_detail.order_id = orderM.id; patient_detail.case_id = orderM.case_id; patient_detail.order_status = orderM.status_drug_order; patient_detail.patient_id = patient_details.id.ToString(); patient_detail.drug_id = orderM.drug_id; patientDetailList.Add(patient_detail); } else { patientDetalTreatmentWithOrder.date = orderM.treatment_date; patientDetalTreatmentWithOrder.date_string = patientDetalTreatmentWithOrder.date.ToString("dd.MM."); patientDetalTreatmentWithOrder.case_id = orderM.case_id; patientDetalTreatmentWithOrder.order_id = orderM.id; patientDetalTreatmentWithOrder.practice_id = orderM.practice_id; patientDetalTreatmentWithOrder.drug = orderM.drug; patientDetalTreatmentWithOrder.drug_id = orderM.drug_id; patientDetalTreatmentWithOrder.order_status = orderM.status_drug_order; patientDetalTreatmentWithOrder.patient_id = patient_details.id.ToString(); patientDetailList.Add(patientDetalTreatmentWithOrder); } } } if (patientDetailList.Count != 0) { Add_New_Patient.ImportPatientDetailsToElastic(patientDetailList, securityTicket.TenantID.ToString()); } if (OrderModelL.Count != 0) { Add_New_Order.Import_Order_Data_to_ElasticDB(OrderModelL, securityTicket.TenantID.ToString()); } if (cases.Count != 0) { Add_New_Case.Import_Case_Data_to_ElasticDB(cases, securityTicket.TenantID.ToString()); } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_CAS_SC_1711 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here ORM_CMN_Language.Query all_languagesQ = new ORM_CMN_Language.Query(); all_languagesQ.Tenant_RefID = securityTicket.TenantID; all_languagesQ.IsDeleted = false; var all_languagesL = ORM_CMN_Language.Query.Search(Connection, Transaction, all_languagesQ).ToArray(); var intraocular_procedure_id = Guid.Empty; var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Parameter.treatment_doctor_id }, securityTicket).Result.SingleOrDefault(); var patient_details = cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_PA_GPDfPID_1729() { PatientID = Parameter.patient_id }, securityTicket).Result; var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1357() { DiagnoseID = Parameter.diagnose_id }, securityTicket).Result; var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614() { DrugID = Parameter.drug_id }, securityTicket).Result; #region NEW CASE ORM_HEC_CAS_Case new_case = new ORM_HEC_CAS_Case(); new_case.HEC_CAS_CaseID = Guid.NewGuid(); new_case.Creation_Timestamp = DateTime.Now; new_case.Patient_RefID = Parameter.patient_id; new_case.Patient_FirstName = patient_details.patient_first_name; new_case.Patient_LastName = patient_details.patient_last_name; new_case.Patient_Gender = patient_details.gender; new_case.Patient_BirthDate = patient_details.birthday; new_case.CaseNumber = cls_Get_Next_Case_Number.Invoke(Connection, Transaction, securityTicket).Result.case_number; new_case.Modification_Timestamp = DateTime.Now; DateTime today = DateTime.Today; int age = today.Year - patient_details.birthday.Year; if (patient_details.birthday > today.AddYears(-age)) { age--; } new_case.Patient_Age = age; new_case.Tenant_RefID = securityTicket.TenantID; new_case.Save(Connection, Transaction); returnValue.Result = new_case.HEC_CAS_CaseID; #endregion NEW CASE #region INITIAL PERFORMED ACTION var initial_performed_action_id = cls_Create_Initial_Performed_Action.Invoke(Connection, Transaction, new P_CAS_CIPA_1140() { all_languagesL = all_languagesL, case_id = new_case.HEC_CAS_CaseID, patient_id = Parameter.patient_id, practice_id = Parameter.practice_id }, securityTicket).Result; #endregion INITIAL PERFORMED ACTION #region POTENTIAL PROCEDURE ORM_HEC_TRE_PotentialProcedure_Package.Query intraocular_packageQ = new ORM_HEC_TRE_PotentialProcedure_Package.Query(); intraocular_packageQ.Tenant_RefID = securityTicket.TenantID; intraocular_packageQ.IsDeleted = false; intraocular_packageQ.GlobalPropertyMatchingID = "mm.docconect.doc.app.intraocular.package"; var intraocular_package = ORM_HEC_TRE_PotentialProcedure_Package.Query.Search(Connection, Transaction, intraocular_packageQ).FirstOrDefault(); if (intraocular_package != null) { ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query procedure_2_packageQ = new ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query(); procedure_2_packageQ.Tenant_RefID = securityTicket.TenantID; procedure_2_packageQ.IsDeleted = false; procedure_2_packageQ.HEC_TRE_PotentialProcedure_Package_RefID = intraocular_package.HEC_TRE_PotentialProcedure_PackageID; var procedure_2_package = ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query.Search(Connection, Transaction, procedure_2_packageQ).FirstOrDefault(); if (procedure_2_package != null) { intraocular_procedure_id = procedure_2_package.HEC_TRE_PotentialProcedure_RefID; } else { intraocular_procedure_id = cls_Create_Potential_Procedure.Invoke(Connection, Transaction, securityTicket).Result; } } else { intraocular_procedure_id = cls_Create_Potential_Procedure.Invoke(Connection, Transaction, securityTicket).Result; } #endregion POTENTIAL PROCEDURE #region TREATMENT PLANNED ACTION cls_Create_Treatment_Planned_Action.Invoke(Connection, Transaction, new P_CAS_CTPA_1225() { all_languagesL = all_languagesL, case_id = new_case.HEC_CAS_CaseID, diagnose_id = Parameter.diagnose_id, initial_performed_action_id = initial_performed_action_id, drug_id = Parameter.drug_id, intraocular_procedure_id = intraocular_procedure_id, is_confirmed = Parameter.is_confirmed, is_left_eye = Parameter.is_left_eye, patient_id = Parameter.patient_id, practice_id = Parameter.practice_id, treatment_date = Parameter.treatment_date, treatment_doctor_id = Parameter.treatment_doctor_id }, securityTicket); #endregion TREATMENT PLANNED ACTION #region AFTERCARE PLANNED ACTION if (Parameter.aftercare_doctor_practice_id != Guid.Empty) { cls_Create_Aftercare_Planned_Action.Invoke(Connection, Transaction, new P_CAS_CAPA_1237() { aftercare_doctor_practice_id = Parameter.aftercare_doctor_practice_id, all_languagesL = all_languagesL, case_id = new_case.HEC_CAS_CaseID, patient_id = Parameter.patient_id, practice_id = Parameter.practice_id, treatment_date = Parameter.treatment_date }, securityTicket); } #endregion AFTERCARE PLANNED ACTION #region ADD GPOS TO THE CASE cls_Add_GPOS_to_Case.Invoke(Connection, Transaction, new P_CAS_AGPOStC_0906() { ac_doctor_id = Parameter.aftercare_doctor_practice_id, all_languagesL = all_languagesL, case_id = new_case.HEC_CAS_CaseID, diagnose_id = Parameter.diagnose_id, drug_id = Parameter.drug_id, patient_id = Parameter.patient_id, treatment_doctor_id = Parameter.treatment_doctor_id, localization = Parameter.is_left_eye ? "L" : "R", treatment_gpos = Parameter.treatment_gpos, aftercare_gpos = Parameter.aftercare_gpos, bevacizumab_gpos = Parameter.bevacizumab_gpos, management_fee_gpos = Parameter.management_fee_gpos }, securityTicket); #endregion #region IMPORT TO ELASTIC Case_Model case_model_elastic = new Case_Model(); case_model_elastic.diagnose = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : ""; case_model_elastic.drug = drug_details != null ? drug_details.drug_name : ""; case_model_elastic.id = new_case.HEC_CAS_CaseID.ToString(); case_model_elastic.localization = Parameter.diagnose_id == Guid.Empty ? "-" : Parameter.is_left_eye ? "L" : "R"; case_model_elastic.previous_status_drug_order = ""; case_model_elastic.status_treatment = "OP1"; case_model_elastic.diagnose_id = Parameter.diagnose_id.ToString(); case_model_elastic.drug_id = Parameter.drug_id.ToString(); case_model_elastic.patient_id = Parameter.patient_id.ToString(); case_model_elastic.treatment_doctor_id = Parameter.treatment_doctor_id.ToString(); case_model_elastic.aftercare_doctor_practice_id = Parameter.aftercare_doctor_practice_id.ToString(); case_model_elastic.patient_name = patient_details != null ? patient_details.patient_last_name + ", " + patient_details.patient_first_name : ""; case_model_elastic.patient_birthdate_string = patient_details.birthday.ToString("dd.MM.yyyy"); case_model_elastic.patient_birthdate = patient_details.birthday; var is_aftercare_doctor = true; string aftercare_name = ""; var aftercare_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Parameter.aftercare_doctor_practice_id }, securityTicket).Result.SingleOrDefault(); if (aftercare_doctor_details != null) { case_model_elastic.aftercare_name = aftercare_doctor_details.title + " " + aftercare_doctor_details.last_name + " " + aftercare_doctor_details.first_name; case_model_elastic.aftercare_doctors_practice_name = aftercare_doctor_details.practice; case_model_elastic.aftercare_practice_bsnr = aftercare_doctor_details.BSNR; aftercare_name = aftercare_doctor_details.title + " " + aftercare_doctor_details.first_name + " " + aftercare_doctor_details.last_name; } else { is_aftercare_doctor = false; var aftercare_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432() { PracticeID = Parameter.aftercare_doctor_practice_id }, securityTicket).Result.FirstOrDefault(); if (aftercare_practice_details != null) { case_model_elastic.aftercare_name = aftercare_practice_details.practice_name; case_model_elastic.aftercare_practice_bsnr = aftercare_doctor_details.BSNR; aftercare_name = aftercare_practice_details.practice_name; } else { case_model_elastic.aftercare_name = "-"; } } case_model_elastic.is_aftercare_doctor = is_aftercare_doctor; DateTime treatment_date = DateTime.SpecifyKind(Parameter.treatment_date, DateTimeKind.Local); case_model_elastic.treatment_date = Parameter.treatment_date; case_model_elastic.treatment_date_day_month = Parameter.treatment_date.ToString("dd.MM."); case_model_elastic.treatment_date_month_year = Parameter.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true)); case_model_elastic.treatment_doctor_name = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.first_name + " " + treatment_doctor_details.last_name : "-"; case_model_elastic.practice_id = Parameter.practice_id.ToString(); case_model_elastic.delivery_time_string = case_model_elastic.delivery_time_from.ToString("HH:mm") + " - " + case_model_elastic.delivery_time_to.ToString("HH:mm"); List <Case_Model> cases = new List <Case_Model>(); cases.Add(case_model_elastic); Add_New_Case.Import_Case_Data_to_ElasticDB(cases, securityTicket.TenantID.ToString()); #endregion IMPORT TO ELASTIC return(returnValue); #endregion UserCode }
public static void Import_Data_From_DB_To_Elastic(DbConnection Connection, DbTransaction Transaction, SessionSecurityTicket securityTicket) { #region add Practices and Doctors to Elastic List <Practice_Doctors_Model> LdoctorPracticeM = new List <Practice_Doctors_Model>(); var dataPractice = cls_Get_All_Practices_from_DB.Invoke(Connection, Transaction, securityTicket).Result; IAccountServiceProvider accountService; var _providerFactory = ProviderFactory.Instance; accountService = _providerFactory.CreateAccountServiceProvider(); if (dataPractice != null) { foreach (var practice in dataPractice) { Practice_Doctors_Model doctorPracticeM = new Practice_Doctors_Model(); bool statusAcc = accountService.GetAccountStatusHistory(securityTicket.TenantID, practice.AccountID).OrderBy(st => st.CreationTimestamp).Reverse().FirstOrDefault().Status == EAccountStatus.BANNED; doctorPracticeM.account_status = statusAcc ? "inaktiv" : "aktiv"; doctorPracticeM.id = practice.PracticeID.ToString(); doctorPracticeM.name = practice.Name; doctorPracticeM.name_untouched = practice.Name; doctorPracticeM.salutation = ""; doctorPracticeM.type = "Practice"; doctorPracticeM.address = practice.Street_Name + " " + practice.Street_Number; doctorPracticeM.zip = practice.ZIP; doctorPracticeM.city = practice.City; if (practice.Contact_Email != null) { doctorPracticeM.email = practice.Contact_Email; } doctorPracticeM.phone = doctorPracticeM.phone; doctorPracticeM.bank_untouched = practice.BankName != null ? practice.BankName : ""; doctorPracticeM.bank = practice.BankName != null ? practice.BankName : ""; if (practice.IBAN != null) { doctorPracticeM.iban = practice.IBAN; } if (practice.BICCode != null) { doctorPracticeM.bic = practice.BICCode; } doctorPracticeM.bsnr_lanr = practice.BSNR; doctorPracticeM.aditional_info = ""; doctorPracticeM.tenantid = securityTicket.TenantID.ToString(); doctorPracticeM.role = practice.IsSurgeryPractice ? "op" : "ac"; DO_GPCN_1133[] dataContract = cls_Get_Practice_Contract_Numbers.Invoke(Connection, Transaction, new P_DO_GPCN_1133() { PracticeID = practice.PracticeID }, securityTicket).Result; doctorPracticeM.contract = dataContract.Count(); LdoctorPracticeM.Add(doctorPracticeM); } } var dataDoc = cls_Get_All_Doctors_from_DB.Invoke(Connection, Transaction, securityTicket).Result; if (dataDoc != null) { foreach (var doctor in dataDoc) { Practice_Doctors_Model doctorPracticeM = new Practice_Doctors_Model(); bool statusAcc = accountService.GetAccountStatusHistory(securityTicket.TenantID, doctor.AccountID).OrderBy(st => st.CreationTimestamp).Reverse().FirstOrDefault().Status == EAccountStatus.BANNED; doctorPracticeM.account_status = statusAcc ? "inaktiv" : "aktiv"; doctorPracticeM.id = doctor.Id.ToString(); var title = string.IsNullOrEmpty(doctor.Title) ? "" : doctor.Title.Trim(); doctorPracticeM.tenantid = securityTicket.TenantID.ToString(); doctorPracticeM.name = title + " " + doctor.LastName + " " + doctor.FirstName; doctorPracticeM.name_untouched = doctor.LastName + " " + doctor.FirstName; doctorPracticeM.bsnr_lanr = doctor.Lanr.ToString(); doctorPracticeM.salutation = title; doctorPracticeM.type = "Doctor"; doctorPracticeM.bank = string.IsNullOrEmpty(doctor.BankName) ? "" : doctor.BankName; doctorPracticeM.bank_untouched = string.IsNullOrEmpty(doctor.BankName) ? "" : doctor.BankName; doctorPracticeM.phone = doctor.Phone; doctorPracticeM.email = string.IsNullOrEmpty(doctor.Email) ? "" : doctor.Email; doctorPracticeM.iban = string.IsNullOrEmpty(doctor.IBAN) ? "" : doctor.IBAN; doctorPracticeM.bic = string.IsNullOrEmpty(doctor.BICCode) ? "" : doctor.BICCode; var practice = dataPractice.Where(pr => pr.PracticeID == doctor.Practice_ID).SingleOrDefault(); doctorPracticeM.practice_for_doctor_id = practice.PracticeID.ToString(); doctorPracticeM.practice_name_for_doctor = practice.Name; doctorPracticeM.address = practice.Street_Name + " " + practice.Street_Number; doctorPracticeM.zip = practice.ZIP; doctorPracticeM.city = practice.City; doctorPracticeM.role = practice.IsSurgeryPractice ? "op" : "ac"; if (doctor.BankAccountID == practice.BankAccountID) { doctorPracticeM.bank_id = practice.BankAccountID.ToString(); doctorPracticeM.bank_info_inherited = true; doctorPracticeM.bank_untouched = practice.BankName != null ? practice.BankName : ""; doctorPracticeM.bank = practice.BankName != null ? practice.BankName : ""; if (practice.IBAN != null) { doctorPracticeM.iban = practice.IBAN; } if (practice.BICCode != null) { doctorPracticeM.bic = practice.BICCode; } } else { doctorPracticeM.bank_id = doctor.BankAccountID.ToString(); doctorPracticeM.bank_info_inherited = false; doctorPracticeM.bank_untouched = doctor.BankName != null ? doctor.BankName : ""; doctorPracticeM.bank = doctor.BankName != null ? doctor.BankName : ""; if (doctor.IBAN != null) { doctorPracticeM.iban = doctor.IBAN; } if (doctor.BICCode != null) { doctorPracticeM.bic = doctor.BICCode; } } var docContracts = cls_Get_Doctor_Contract_Numbers.Invoke(Connection, Transaction, new P_DO_CDCD_1505() { DoctorID = doctor.Id }, securityTicket).Result; doctorPracticeM.contract = docContracts.Count(); LdoctorPracticeM.Add(doctorPracticeM); } } //first delete Tenant index try { Add_Practice_Doctors_to_Elastic.Delete_index_on_Elastic(securityTicket.TenantID.ToString()); // Add_Practice_Doctors_to_Elastic.Delete_index_on_Elastic(securityTicket.TenantID.ToString() + "/" + "user"); Console.Write("Type Doctors_Practices deleted"); } catch { Console.Write("Type Doctors_Practices do not exsists"); } //import items to Elastic if (dataDoc != null | dataPractice != null) { Add_Practice_Doctors_to_Elastic.Import_Practice_Data_to_ElasticDB(LdoctorPracticeM, securityTicket.TenantID.ToString()); } #endregion #region add Patients to Elastic var dataPatients = cls_Get_All_Patients_from_DB.Invoke(Connection, Transaction, securityTicket).Result; if (dataPatients != null) { try { // Add_Practice_Doctors_to_Elastic.Delete_index_on_Elastic(securityTicket.TenantID.ToString() + "/" + "patient"); Console.Write("Type Patients deleted"); } catch { Console.Write("Type Patients do not exsists"); } foreach (var patient in dataPatients) { Patient_Model patientModel = new Patient_Model(); var HIPLIst = cls_Get_All_HIPs.Invoke(Connection, Transaction, securityTicket).Result.ToList(); string HIP = HIPLIst.Where(i => i.id == patient.HIPID).Single().name; IFormatProvider culture = new System.Globalization.CultureInfo("de", true); patientModel.birthday = DateTime.Parse(patient.BirthDate.ToString("dd.MM.yyyy"), culture, System.Globalization.DateTimeStyles.AssumeLocal); patientModel.birthday_string = patient.BirthDate.ToString("dd.MM.yyyy"); patientModel.name = patient.LastName + ", " + patient.FirstName; patientModel.health_insurance_provider = HIP; patientModel.name_with_birthdate = patient.FirstName + " " + patient.LastName + " (" + patient.BirthDate.ToString("dd.MM.yyyy") + ")"; patientModel.id = patient.Id.ToString(); patientModel.insurance_id = patient.HipNumber; patientModel.insurance_status = patient.InsuranceStatus; patientModel.practice_id = patient.PracticeID.ToString(); if (patient.Gender == 0) { patientModel.sex = "M"; } else if (patient.Gender == 1) { patientModel.sex = "W"; } else if (patient.Gender == 2) { patientModel.sex = "o.A."; } //Add patient participation consent if (patient.ValidFrom != DateTime.MinValue) { patientModel.participation_consent_from = patient.ValidFrom; patientModel.has_participation_consent = true; } if (patient.ValidThrough != DateTime.MinValue) { patientModel.participation_consent_to = patient.ValidThrough; } Add_New_Patient.Import_Patients_to_ElasticDB(patientModel, securityTicket.TenantID.ToString()); } Console.Write("Patients imported to elastic"); } #endregion #region Add Cases to Elastic List <Case_Model> cases = new List <Case_Model>(); List <Order_Model> OrderModelL = new List <Order_Model>(); var dataCases = cls_Get_All_Cases_from_DB.Invoke(Connection, Transaction, securityTicket).Result; if (dataCases != null) { foreach (var Case in dataCases) { if (Case.case_status == null) { var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1357() { DiagnoseID = Case.diagnose_id }, securityTicket).Result; var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614() { DrugID = Case.drug_id }, securityTicket).Result; Case_Model case_model_elastic = new Case_Model(); case_model_elastic.diagnose = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : ""; case_model_elastic.drug = drug_details != null ? drug_details.drug_name : ""; case_model_elastic.id = Case.case_id.ToString(); case_model_elastic.localization = Case.localization; case_model_elastic.status_drug_order = Case.order_id != Guid.Empty ? "MO1" : ""; case_model_elastic.status_treatment = Case.diagnose_id != Guid.Empty ? "OP1" : ""; case_model_elastic.patient_name = Case.patient_id != Guid.Empty ? Case.Patient_LastName + ", " + Case.Patient_FirstName : ""; case_model_elastic.patient_birthdate_string = Case.Patient_BirthDate.ToString("dd.MM.yyyy"); case_model_elastic.patient_birthdate = Case.Patient_BirthDate; if (Case.is_aftercare_practice) { case_model_elastic.aftercare_name = Case.aftercare_practice_display_name; } else if (Case.is_aftercare_doctor) { case_model_elastic.aftercare_name = Case.aftercare_doctor_display_name; } else { case_model_elastic.aftercare_name = "-"; } var aftercare_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Case.ac_doctor_id }, securityTicket).Result.SingleOrDefault(); if (aftercare_doctor_details != null) { case_model_elastic.aftercare_name = aftercare_doctor_details.title + " " + aftercare_doctor_details.last_name + " " + aftercare_doctor_details.first_name; case_model_elastic.aftercare_doctors_practice_name = aftercare_doctor_details.practice; } case_model_elastic.is_aftercare_doctor = Case.is_aftercare_doctor; case_model_elastic.treatment_date_day_month = Case.treatment_date.ToString("dd.MM."); case_model_elastic.treatment_date_month_year = Case.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true)); var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Case.treatment_doctor_id }, securityTicket).Result.SingleOrDefault(); case_model_elastic.treatment_doctor_name = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name : "-"; case_model_elastic.practice_id = Case.practice_id.ToString(); case_model_elastic.order_modification_timestamp = Case.order_modification_timestamp; case_model_elastic.order_modification_timestamp_string = Case.order_modification_timestamp.ToString("dd.MM.yyyy"); case_model_elastic.delivery_time_from = Case.order_id != Guid.Empty ? Case.alternative_delivery_date_from : Case.treatment_date; case_model_elastic.delivery_time_to = Case.order_id != Guid.Empty ? Case.alternative_delivery_date_to : Case.treatment_date.AddHours(23).AddMinutes(59); case_model_elastic.delivery_time_string = case_model_elastic.delivery_time_from.ToString("HH:mm") + " - " + case_model_elastic.delivery_time_to.ToString("HH:mm"); Order_Model orderM = new Order_Model(); if (Case.order_id != Guid.Empty) { case_model_elastic.is_orders_drug = true; OR_GOSfCID_0858[] OrderCtatusList = cls_Get_Order_Status_for_CaseID.Invoke(Connection, Transaction, new P_OR_GOSfCID_0858() { CaseID = Case.case_id }, securityTicket).Result; OrderCtatusList = OrderCtatusList.OrderBy(tmp => tmp.StatusCreated).Reverse().ToArray(); case_model_elastic.status_drug_order = OrderCtatusList.Count() > 0 ? "MO" + OrderCtatusList.First().StatusCode : "MO1"; if (OrderCtatusList.Count() > 1) { case_model_elastic.previous_status_drug_order = "MO" + OrderCtatusList[1].StatusCode; } else { case_model_elastic.previous_status_drug_order = "MO1"; } orderM.status_drug_order = OrderCtatusList.Count() > 0 ? "MO" + OrderCtatusList.First().StatusCode : "MO1"; } else { case_model_elastic.is_orders_drug = false; } cases.Add(case_model_elastic); if (Case.order_id != Guid.Empty) { orderM.case_id = case_model_elastic.id; orderM.id = Case.OrderHeaderID.ToString(); orderM.delivery_time_from = Case.alternative_delivery_date_from != null ? Case.alternative_delivery_date_from : Case.treatment_date; orderM.delivery_time_to = Case.alternative_delivery_date_from != null ? Case.alternative_delivery_date_to : Case.treatment_date.AddHours(23).AddMinutes(59); orderM.delivery_time_string = case_model_elastic.delivery_time_from.ToString("HH:mm") + " - " + case_model_elastic.delivery_time_to.ToString("HH:mm"); orderM.practice_id = Case.practice_id.ToString(); orderM.order_modification_timestamp = DateTime.Now; orderM.order_modification_timestamp_string = DateTime.Now.ToString("dd.MM.yyyy"); orderM.is_orders_drug = true; orderM.treatment_date = Case.treatment_date; orderM.treatment_date_day_month = Case.treatment_date.ToString("dd.MM."); orderM.treatment_date_month_year = Case.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true)); orderM.treatment_doctor_name = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name : "-"; orderM.treatment_doctor_practice_name = treatment_doctor_details != null ? treatment_doctor_details.practice : "-"; orderM.localization = Case.diagnose_id != Guid.Empty ? Case.localization : "-"; orderM.diagnose = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : "-"; orderM.drug = drug_details != null ? drug_details.drug_name : ""; orderM.patient_name = Case.patient_id != Guid.Empty ? Case.Patient_LastName + ", " + Case.Patient_FirstName : ""; orderM.patient_birthdate_string = Case.Patient_BirthDate.ToString("dd.MM.yyyy"); orderM.patient_birthdate = Case.Patient_BirthDate; OrderModelL.Add(orderM); } } } try { Add_Practice_Doctors_to_Elastic.Delete_index_on_Elastic(securityTicket.TenantID.ToString() + "/" + "case"); Console.Write("Type Case deleted"); } catch { Console.Write("Type do not exsists"); } Add_New_Case.Import_Case_Data_to_ElasticDB(cases, securityTicket.TenantID.ToString()); Add_New_Order.Import_Order_Data_to_ElasticDB(OrderModelL, securityTicket.TenantID.ToString()); Console.Write("Cases and Orders imported to Elastic"); } #endregion }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_DO_MD_1321 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here returnValue.Result = Parameter.DoctorID; var temporary_doctor_bpt_id = Guid.Empty; List <Guid> case_ids = new List <Guid>(); var BusinessParticipantID = Guid.Empty; #region PURGE TEMPORARY DOCTOR var temporary_doctor = ORM_HEC_Doctor.Query.Search(Connection, Transaction, new ORM_HEC_Doctor.Query() { HEC_DoctorID = Parameter.TemporaryDoctorID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (temporary_doctor != null) { temporary_doctor.IsDeleted = true; temporary_doctor.Save(Connection, Transaction); var temporary_doctor_bpt = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant.Query() { CMN_BPT_BusinessParticipantID = temporary_doctor.BusinessParticipant_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (temporary_doctor_bpt != null) { temporary_doctor_bpt_id = temporary_doctor_bpt.CMN_BPT_BusinessParticipantID; temporary_doctor_bpt.IsDeleted = true; temporary_doctor_bpt.Save(Connection, Transaction); var temporary_doctor_person_info = ORM_CMN_PER_PersonInfo.Query.Search(Connection, Transaction, new ORM_CMN_PER_PersonInfo.Query() { CMN_PER_PersonInfoID = temporary_doctor_bpt.IfNaturalPerson_CMN_PER_PersonInfo_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (temporary_doctor_person_info != null) { temporary_doctor_person_info.IsDeleted = true; temporary_doctor_person_info.Save(Connection, Transaction); var temporary_doctor_communication_contact = ORM_CMN_PER_CommunicationContact.Query.Search(Connection, Transaction, new ORM_CMN_PER_CommunicationContact.Query() { PersonInfo_RefID = temporary_doctor_person_info.CMN_PER_PersonInfoID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); foreach (var tdc in temporary_doctor_communication_contact) { tdc.IsDeleted = true; tdc.Save(Connection, Transaction); } } } var temporary_doctor_universal_property_value = ORM_HEC_Doctor_UniversalPropertyValue.Query.Search(Connection, Transaction, new ORM_HEC_Doctor_UniversalPropertyValue.Query() { HEC_Doctor_RefID = temporary_doctor.HEC_DoctorID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (temporary_doctor_universal_property_value != null) { temporary_doctor_universal_property_value.IsDeleted = true; temporary_doctor_universal_property_value.Save(Connection, Transaction); var temporary_doctor_universal_property = ORM_HEC_Doctor_UniversalProperty.Query.Search(Connection, Transaction, new ORM_HEC_Doctor_UniversalProperty.Query() { PropertyName = "Comment", HEC_Doctor_UniversalPropertyID = temporary_doctor_universal_property_value.HEC_Doctor_UniversalPropertyValueID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (temporary_doctor_universal_property != null) { temporary_doctor_universal_property.IsDeleted = true; temporary_doctor_universal_property.Save(Connection, Transaction); } } } #endregion #region GET MERGED DOCTOR BPT var merge_doctor = ORM_HEC_Doctor.Query.Search(Connection, Transaction, new ORM_HEC_Doctor.Query() { HEC_DoctorID = Parameter.DoctorID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (merge_doctor != null) { BusinessParticipantID = merge_doctor.BusinessParticipant_RefID; } else { throw new Exception("Doctor not found"); } #endregion #region LINK AFTERCARES TO MERGED DOCTOR var aftercare_planned_actions = ORM_HEC_ACT_PlannedAction.Query.Search(Connection, Transaction, new ORM_HEC_ACT_PlannedAction.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, IsPerformed = false, IsCancelled = false, ToBePerformedBy_BusinessParticipant_RefID = temporary_doctor_bpt_id }); foreach (var aftercare in aftercare_planned_actions) { aftercare.ToBePerformedBy_BusinessParticipant_RefID = BusinessParticipantID; aftercare.Modification_Timestamp = DateTime.Now; aftercare.Save(Connection, Transaction); var case_id = ORM_HEC_CAS_Case_RelevantPlannedAction.Query.Search(Connection, Transaction, new ORM_HEC_CAS_Case_RelevantPlannedAction.Query() { PlannedAction_RefID = aftercare.HEC_ACT_PlannedActionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (case_id != null) { case_ids.Add(case_id.Case_RefID); } } #endregion #region UPDATE ELASTIC List <Case_Model> cases = new List <Case_Model>(); List <Aftercare_Model> aftercares = new List <Aftercare_Model>(); List <PatientDetailViewModel> patientDetailList = new List <PatientDetailViewModel>(); List <Settlement_Model> settlements = new List <Settlement_Model>(); Dictionary <Guid, CAS_GDDfDID_1608> diagnose_data_cache = new Dictionary <Guid, CAS_GDDfDID_1608>(); Dictionary <Guid, CAS_GDDfDID_1614> drug_data_cache = new Dictionary <Guid, CAS_GDDfDID_1614>(); Dictionary <Guid, DO_GDDfDID_0823> treatment_doctor_data_cache = new Dictionary <Guid, DO_GDDfDID_0823>(); Dictionary <Guid, P_PA_GPDfPID_1124> patient_data_cache = new Dictionary <Guid, P_PA_GPDfPID_1124>(); Dictionary <Guid, DO_GPDfPID_1432> treatment_practice_data_cache = new Dictionary <Guid, DO_GPDfPID_1432>(); var merged_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Parameter.DoctorID }, securityTicket).Result.SingleOrDefault(); var doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = Parameter.DoctorID }, securityTicket).Result.SingleOrDefault(); if (doctor_details != null) { foreach (var case_id in case_ids) { var treatment_planned_action = cls_Get_Treatment_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GTPAfCID_0946() { CaseID = case_id }, securityTicket).Result; if (treatment_planned_action != null) { #region IF CASE SUBMITTED, CREATE AFTERCARE if (treatment_planned_action.is_treatment_performed) { var case_details = cls_Get_Case_Details_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GCDfCID_1435() { CaseID = case_id }, securityTicket).Result; #region CACHE if (!diagnose_data_cache.ContainsKey(case_details.diagnose_id)) { diagnose_data_cache.Add(case_details.diagnose_id, cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1608() { DiagnoseID = case_details.diagnose_id }, securityTicket).Result); } var diagnose_details = diagnose_data_cache[case_details.diagnose_id]; if (!drug_data_cache.ContainsKey(case_details.drug_id)) { drug_data_cache.Add(case_details.drug_id, cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614() { DrugID = case_details.drug_id }, securityTicket).Result); } var drug_details = drug_data_cache[case_details.drug_id]; if (!treatment_doctor_data_cache.ContainsKey(case_details.op_doctor_id)) { treatment_doctor_data_cache.Add(case_details.op_doctor_id, cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823() { DoctorID = case_details.op_doctor_id }, securityTicket).Result.SingleOrDefault()); } var treatment_doctor_details = treatment_doctor_data_cache[case_details.op_doctor_id]; if (!patient_data_cache.ContainsKey(case_details.patient_id)) { patient_data_cache.Add(case_details.patient_id, cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_P_PA_GPDfPID_1124() { PatientID = case_details.patient_id }, securityTicket).Result); } var patient_details = patient_data_cache[case_details.patient_id]; if (!treatment_practice_data_cache.ContainsKey(case_details.practice_id)) { treatment_practice_data_cache.Add(case_details.practice_id, cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432() { PracticeID = case_details.practice_id }, securityTicket).Result.FirstOrDefault()); } var treatment_practice_details = treatment_practice_data_cache[case_details.practice_id]; #endregion if (case_details != null) { #region CREATE NEW AFTERCARE Aftercare_Model aftercare = new Aftercare_Model(); aftercare.hip_ik_number = patient_details.HealthInsurance_IKNumber; aftercare.aftercare_doctor_name = MMDocConnectDocApp.GenericUtils.GetDoctorName(merged_doctor_details); aftercare.diagnose = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : ""; aftercare.id = case_details.aftercare_planned_action_id.ToString(); aftercare.localization = case_details.localization; aftercare.patient_birthdate = case_details.Patient_BirthDate; aftercare.patient_birthdate_string = case_details.Patient_BirthDate.ToString("dd.MM.yyyy"); aftercare.patient_name = patient_details != null ? patient_details.patient_last_name + ", " + patient_details.patient_first_name : ""; aftercare.practice_id = merged_doctor_details.practice_id.ToString(); aftercare.status = "AC1"; aftercare.treatment_date = case_details.treatment_date; aftercare.treatment_date_day_month = case_details.treatment_date.ToString("dd.MM."); aftercare.treatment_date_month_year = case_details.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true)); aftercare.treatment_doctor_name = treatment_doctor_details != null?MMDocConnectDocApp.GenericUtils.GetDoctorName(treatment_doctor_details) : "-"; aftercare.treatment_doctor_practice_name = treatment_doctor_details.practice; aftercare.case_id = case_id.ToString(); aftercare.hip = patient_details.health_insurance_provider; aftercare.patient_insurance_number = patient_details.insurance_id; aftercare.op_lanr = treatment_doctor_details == null ? "" : treatment_doctor_details.lanr; aftercare.ac_lanr = merged_doctor_details.lanr; aftercare.bsnr = treatment_doctor_details == null ? "" : treatment_doctor_details.BSNR; aftercare.aftercare_doctor_account_id = merged_doctor_details.doctor_account_id.ToString(); aftercare.aftercare_doctor_practice_id = Parameter.DoctorID.ToString(); aftercare.treatment_doctor_id = treatment_doctor_details == null ? "" : treatment_doctor_details.id.ToString(); aftercare.diagnose_id = case_details.diagnose_id.ToString(); aftercare.drug_id = case_details.drug_id.ToString(); aftercare.patient_id = case_details.patient_id.ToString(); aftercare.treatment_doctors_practice_id = case_details.practice_id.ToString(); aftercares.Add(aftercare); PatientDetailViewModel patientDetal_elastic = new PatientDetailViewModel(); patientDetal_elastic.id = aftercare.id; patientDetal_elastic.drug_id = aftercare.drug_id; patientDetal_elastic.practice_id = aftercare.practice_id; patientDetal_elastic.case_id = aftercare.case_id; patientDetal_elastic.date = aftercare.treatment_date; patientDetal_elastic.date_string = aftercare.treatment_date.ToString("dd.MM."); patientDetal_elastic.detail_type = "ac"; patientDetal_elastic.diagnose_or_medication = aftercare.diagnose; patientDetal_elastic.doctor = aftercare.aftercare_doctor_name; patientDetal_elastic.localisation = aftercare.localization; patientDetal_elastic.patient_id = aftercare.patient_id; patientDetal_elastic.treatment_doctor_id = aftercare.treatment_doctor_id; patientDetal_elastic.aftercare_doctor_practice_id = aftercare.aftercare_doctor_practice_id; patientDetal_elastic.diagnose_id = aftercare.diagnose_id; patientDetal_elastic.status = "FS0"; patientDetal_elastic.hip_ik = patient_details.HealthInsurance_IKNumber; patientDetailList.Add(patientDetal_elastic); #endregion #region Update settlement var settlement = Get_Settlement.GetSettlementForID(case_details.treatment_planned_action_id.ToString(), securityTicket); if (settlement != null) { settlement.acpractice = merged_doctor_details.practice; settlement.aftercare_doctor_practice_id = merged_doctor_details.id.ToString(); settlements.Add(settlement); } #endregion } } #endregion #region IF CASE NOT SUMBITTED, EDIT AFTERCARE DATA else { var planning_case = Get_Cases.GetCaseforCaseID(case_id.ToString(), securityTicket); planning_case.aftercare_doctor_lanr = merge_doctor.DoctorIDNumber; planning_case.aftercare_doctor_practice_id = merge_doctor.HEC_DoctorID.ToString(); var practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432() { PracticeID = doctor_details.practice_id }, securityTicket).Result.FirstOrDefault(); if (practice_details != null) { planning_case.aftercare_doctors_practice_name = practice_details.practice_name; planning_case.aftercare_name = MMDocConnectDocApp.GenericUtils.GetDoctorName(doctor_details); planning_case.aftercare_practice_bsnr = practice_details.practice_BSNR; planning_case.is_aftercare_doctor = true; } cases.Add(planning_case); } #endregion } } #region UPDATE LAST USED AFTERCARE DOCTORS LIST var types = Elastic_Utils.GetAllTypes(securityTicket.TenantID.ToString()); var length = Guid.Empty.ToString().Length; length += 5; List <string> last_used_types = new List <string>(); for (int i = 0; i < types.Length; i += length) { int index = types.IndexOf("user_", i); if (index != -1 && !last_used_types.Contains(types.Substring(index, length))) { last_used_types.Add(types.Substring(index, length)); } } foreach (var type in last_used_types) { Practice_Doctor_Last_Used_Model new_last_used = new Practice_Doctor_Last_Used_Model(); try { var last_used = Get_Practices_and_Doctors.GetLastUsedDoctorPracticeForID(Parameter.TemporaryDoctorID.ToString(), type, securityTicket); new_last_used.display_name = GenericUtils.GetDoctorName(doctor_details) + "(" + doctor_details.lanr + ")"; new_last_used.id = Parameter.DoctorID.ToString(); new_last_used.practice_id = doctor_details.practice_id.ToString(); new_last_used.date_of_use = last_used.date_of_use; Add_New_Practice_Last_Used.Delete_Practice_Last_Used(securityTicket.TenantID.ToString(), type, Parameter.TemporaryDoctorID.ToString()); Add_New_Practice_Last_Used.Import_Practice_Last_Used_Data_to_ElasticDB(new List <Practice_Doctor_Last_Used_Model>() { new_last_used }, securityTicket.TenantID.ToString(), type.Substring(5)); } catch (Exception ex) { // left empty because it's not really an exception, rather a check whether object with given id exists } } #endregion if (aftercares.Count != 0) { Add_New_Aftercare.Import_Aftercare_Data_to_ElasticDB(aftercares, securityTicket.TenantID.ToString()); } if (patientDetailList.Count != 0) { Add_New_Patient.ImportPatientDetailsToElastic(patientDetailList, securityTicket.TenantID.ToString()); } if (cases.Count != 0) { Add_New_Case.Import_Case_Data_to_ElasticDB(cases, securityTicket.TenantID.ToString()); } if (settlements.Count != 0) { Add_new_Settlement.Import_Settlement_to_ElasticDB(settlements, securityTicket.TenantID.ToString()); } Add_New_Practice.Delete_Doctor_Practice(securityTicket.TenantID.ToString(), Parameter.TemporaryDoctorID.ToString()); } else { throw new Exception("Doctor not found"); } return(returnValue); #endregion #endregion UserCode }