protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here
            #region POTENTIAL PROCEDURE

            ORM_HEC_TRE_PotentialProcedure_Package.Query intraocular_procedure_packageQ = new ORM_HEC_TRE_PotentialProcedure_Package.Query();
            intraocular_procedure_packageQ.Tenant_RefID             = securityTicket.TenantID;
            intraocular_procedure_packageQ.GlobalPropertyMatchingID = "mm.docconect.doc.app.intraocular.package";
            intraocular_procedure_packageQ.IsDeleted = false;

            var intraocular_procedure_package = ORM_HEC_TRE_PotentialProcedure_Package.Query.Search(Connection, Transaction, intraocular_procedure_packageQ).SingleOrDefault();

            if (intraocular_procedure_package == null)
            {
                intraocular_procedure_package = new ORM_HEC_TRE_PotentialProcedure_Package();
                intraocular_procedure_package.GlobalPropertyMatchingID = "mm.docconect.doc.app.intraocular.package";
                intraocular_procedure_package.Tenant_RefID             = securityTicket.TenantID;
                intraocular_procedure_package.IsDeleted              = false;
                intraocular_procedure_package.Creation_Timestamp     = DateTime.Now;
                intraocular_procedure_package.Modification_Timestamp = DateTime.Now;
                intraocular_procedure_package.HEC_TRE_PotentialProcedure_PackageID = Guid.NewGuid();

                intraocular_procedure_package.Save(Connection, Transaction);
            }

            ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query procedure_2_packageQ = new ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query();
            procedure_2_packageQ.HEC_TRE_PotentialProcedure_Package_RefID = intraocular_procedure_package.HEC_TRE_PotentialProcedure_PackageID;
            procedure_2_packageQ.Tenant_RefID = securityTicket.TenantID;
            procedure_2_packageQ.IsDeleted    = false;

            var procedure_2_package = ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage.Query.Search(Connection, Transaction, procedure_2_packageQ).SingleOrDefault();
            if (procedure_2_package == null)
            {
                ORM_HEC_TRE_PotentialProcedure intraocular_procedure = new ORM_HEC_TRE_PotentialProcedure();
                intraocular_procedure.Creation_Timestamp           = DateTime.Now;
                intraocular_procedure.HEC_TRE_PotentialProcedureID = Guid.NewGuid();
                intraocular_procedure.Modification_Timestamp       = DateTime.Now;
                intraocular_procedure.Tenant_RefID = securityTicket.TenantID;

                returnValue.Result = intraocular_procedure.HEC_TRE_PotentialProcedureID;

                intraocular_procedure.Save(Connection, Transaction);

                procedure_2_package = new ORM_HEC_TRE_PotentialProcedure_2_ProcedurePackage();
                procedure_2_package.HEC_TRE_PotentialProcedure_Package_RefID = intraocular_procedure_package.HEC_TRE_PotentialProcedure_PackageID;
                procedure_2_package.HEC_TRE_PotentialProcedure_RefID         = intraocular_procedure.HEC_TRE_PotentialProcedureID;
                procedure_2_package.Tenant_RefID       = securityTicket.TenantID;
                procedure_2_package.Creation_Timestamp = DateTime.Now;
                procedure_2_package.AssignmentID       = Guid.NewGuid();

                procedure_2_package.Save(Connection, Transaction);
            }
            else
            {
                ORM_HEC_TRE_PotentialProcedure.Query intraocular_procedureQ = new ORM_HEC_TRE_PotentialProcedure.Query();
                intraocular_procedureQ.Tenant_RefID = securityTicket.TenantID;
                intraocular_procedureQ.IsDeleted    = false;
                intraocular_procedureQ.HEC_TRE_PotentialProcedureID = procedure_2_package.HEC_TRE_PotentialProcedure_RefID;

                var intraocular_procedure = ORM_HEC_TRE_PotentialProcedure.Query.Search(Connection, Transaction, intraocular_procedureQ).SingleOrDefault();
                if (intraocular_procedure != null)
                {
                    returnValue.Result = intraocular_procedure.HEC_TRE_PotentialProcedureID;
                }
                else
                {
                    intraocular_procedure.Creation_Timestamp           = DateTime.Now;
                    intraocular_procedure.HEC_TRE_PotentialProcedureID = Guid.NewGuid();
                    intraocular_procedure.Modification_Timestamp       = DateTime.Now;
                    intraocular_procedure.Tenant_RefID = securityTicket.TenantID;

                    returnValue.Result = intraocular_procedure.HEC_TRE_PotentialProcedureID;

                    intraocular_procedure.Save(Connection, Transaction);
                    procedure_2_package.HEC_TRE_PotentialProcedure_Package_RefID = intraocular_procedure_package.HEC_TRE_PotentialProcedure_PackageID;
                    procedure_2_package.HEC_TRE_PotentialProcedure_RefID         = intraocular_procedure.HEC_TRE_PotentialProcedureID;
                    procedure_2_package.Tenant_RefID       = securityTicket.TenantID;
                    procedure_2_package.Creation_Timestamp = DateTime.Now;
                    procedure_2_package.AssignmentID       = Guid.NewGuid();

                    procedure_2_package.Save(Connection, Transaction);
                }
            }
            #endregion POTENTIAL PROCEDURE
            return(returnValue);

            #endregion UserCode
        }
Example #2
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
        }