Exemple #1
0
        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
        }
Exemple #2
0
        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
        }
Exemple #3
0
        public static void SaveNewCase(DbConnection Connection, DbTransaction Transaction, Guid treatment_doctor_id, SessionSecurityTicket securityTicket, Guid patient_id, Guid diagnose_id, Guid drug_id, Guid case_id, string localization, Guid aftercare_doctor_practice_id, DateTime treatment_date, Guid practice_id)
        {
            var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823()
            {
                DoctorID = treatment_doctor_id
            }, securityTicket).Result.SingleOrDefault();
            var patient_details = cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_PA_GPDfPID_1729()
            {
                PatientID = patient_id
            }, securityTicket).Result;
            var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1357()
            {
                DiagnoseID = diagnose_id
            }, securityTicket).Result;
            var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614()
            {
                DrugID = drug_id
            }, securityTicket).Result;

            #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           = case_id.ToString();
            case_model_elastic.localization = diagnose_id == Guid.Empty ? "-" : localization;
            case_model_elastic.previous_status_drug_order = "";
            case_model_elastic.status_treatment           = "OP1";

            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 = 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;

                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 = aftercare_doctor_practice_id
                }, securityTicket).Result.FirstOrDefault();
                if (aftercare_practice_details != null)
                {
                    case_model_elastic.aftercare_name = aftercare_practice_details.practice_name;
                    aftercare_name = aftercare_practice_details.practice_name;
                }
                else
                {
                    case_model_elastic.aftercare_name = "-";
                }
            }

            case_model_elastic.is_aftercare_doctor       = is_aftercare_doctor;
            case_model_elastic.treatment_date            = treatment_date;
            case_model_elastic.treatment_date_day_month  = treatment_date.ToString("dd.MM.");
            case_model_elastic.treatment_date_month_year = 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          = 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
        }