protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_CAS_CPASfPAID_1654 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here

            String[] treatment_gpos = cls_Get_All_GPOS_Billing_Codes_for_GlobalPropertyMatchingID.Invoke(Connection, Transaction, new P_CAS_GAGPOSBCfGPMID_1516()
            {
                GlobalPropertyMatchingID = "mm.docconnect.gpos.catalog.operation"
            }, securityTicket).Result.Select(gpos => gpos.BillingCode).ToArray();
            String[] aftercare_gpos = cls_Get_All_GPOS_Billing_Codes_for_GlobalPropertyMatchingID.Invoke(Connection, Transaction, new P_CAS_GAGPOSBCfGPMID_1516()
            {
                GlobalPropertyMatchingID = "mm.docconnect.gpos.catalog.nachsorge"
            }, securityTicket).Result.Select(gpos => gpos.BillingCode).ToArray();

            var is_treatment = cls_Get_PerformedActionType_GlobalPropertyMatchingID_for_PlannedActionID.Invoke(Connection, Transaction, new P_CAS_GPAGPMIDfPAID_1652()
            {
                PlannedActionID = Parameter.planned_action_id
            }, securityTicket).Result.GlobalPropertyMatchingID.Equals("mm.docconect.doc.app.performed.action.treatment");
            var case_id = Guid.Empty;
            if (is_treatment)
            {
                ORM_HEC_ACT_PlannedAction.Query planned_actionQ = new ORM_HEC_ACT_PlannedAction.Query();
                planned_actionQ.HEC_ACT_PlannedActionID = Parameter.planned_action_id;
                planned_actionQ.Tenant_RefID            = securityTicket.TenantID;
                planned_actionQ.IsDeleted = false;
                var planned_action = ORM_HEC_ACT_PlannedAction.Query.Search(Connection, Transaction, planned_actionQ).SingleOrDefault();
                if (planned_action != null)
                {
                    ORM_HEC_CAS_Case_RelevantPerformedAction.Query relevant_performed_actionQ = new ORM_HEC_CAS_Case_RelevantPerformedAction.Query();
                    relevant_performed_actionQ.PerformedAction_RefID = planned_action.IfPlannedFollowup_PreviousAction_RefID;
                    relevant_performed_actionQ.Tenant_RefID          = securityTicket.TenantID;
                    relevant_performed_actionQ.IsDeleted             = false;

                    var relevant_performed_action = ORM_HEC_CAS_Case_RelevantPerformedAction.Query.Search(Connection, Transaction, relevant_performed_actionQ).SingleOrDefault();
                    if (relevant_performed_action != null)
                    {
                        case_id = relevant_performed_action.Case_RefID;
                    }
                }
            }
            else
            {
                ORM_HEC_CAS_Case_RelevantPlannedAction.Query relevant_planned_actionQ = new ORM_HEC_CAS_Case_RelevantPlannedAction.Query();
                relevant_planned_actionQ.PlannedAction_RefID = Parameter.planned_action_id;
                relevant_planned_actionQ.Tenant_RefID        = securityTicket.TenantID;
                relevant_planned_actionQ.IsDeleted           = false;
                var relevant_planned_action = ORM_HEC_CAS_Case_RelevantPlannedAction.Query.Search(Connection, Transaction, relevant_planned_actionQ).SingleOrDefault();
                if (relevant_planned_action != null)
                {
                    case_id = relevant_planned_action.Case_RefID;
                }
            }

            var case_to_submit = cls_Get_Case_Details_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GCDfCID_1435()
            {
                CaseID = case_id
            }, securityTicket).Result;
            if (case_to_submit != null)
            {
                var current_status   = "FS1";
                var diagnose_details = cls_Get_Diagnose_Details_for_DiagnoseID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1357()
                {
                    DiagnoseID = case_to_submit.diagnose_id
                }, securityTicket).Result;
                var drug_details = cls_Get_Drug_Details_for_DrugID.Invoke(Connection, Transaction, new P_CAS_GDDfDID_1614()
                {
                    DrugID = case_to_submit.drug_id
                }, securityTicket).Result;
                var treatment_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823()
                {
                    DoctorID = case_to_submit.op_doctor_id
                }, securityTicket).Result.SingleOrDefault();
                var patient_details = cls_Get_Patient_Details_for_PatientID.Invoke(Connection, Transaction, new P_PA_GPDfPID_1729()
                {
                    PatientID = case_to_submit.patient_id
                }, securityTicket).Result;
                var aftercare_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823()
                {
                    DoctorID = case_to_submit.ac_doctor_id
                }, securityTicket).Result.SingleOrDefault();
                var treatment_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
                {
                    PracticeID = case_to_submit.practice_id
                }, securityTicket).Result.FirstOrDefault();
                var aftercare_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
                {
                    PracticeID = case_to_submit.aftercare_doctors_practice_id
                }, securityTicket).Result.FirstOrDefault();
                var practice_defaults = cls_Get_Practice_Default_Settings_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDSfPID_0909()
                {
                    PracticeID = case_to_submit.practice_id
                }, securityTicket).Result;

                if (is_treatment)
                {
                    #region CHANGE TREATMENT STATUS
                    var bill_positions = cls_Get_BillPositionIDs_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GBPIDsfCID_0928()
                    {
                        CaseID = case_id
                    }, securityTicket).Result;
                    foreach (var bill_position in bill_positions)
                    {
                        var billing_code = cls_Get_BillingCode_for_CaseBillCodeID.Invoke(Connection, Transaction, new P_CAS_GBCfCBCID_1334()
                        {
                            CaseBillCodeID = bill_position.hec_case_bill_code_id
                        }, securityTicket).Result;

                        if (!aftercare_gpos.Contains(billing_code.BillingCode))
                        {
                            ORM_BIL_BillPosition_TransmitionStatus.Query transmition_statusQ = new ORM_BIL_BillPosition_TransmitionStatus.Query();
                            transmition_statusQ.BillPosition_RefID   = bill_position.bill_position_id;
                            transmition_statusQ.TransmitionStatusKey = "treatment";
                            transmition_statusQ.Tenant_RefID         = securityTicket.TenantID;
                            transmition_statusQ.IsDeleted            = false;
                            transmition_statusQ.IsActive             = true;

                            var transmition_status = ORM_BIL_BillPosition_TransmitionStatus.Query.Search(Connection, Transaction, transmition_statusQ).SingleOrDefault();
                            if (transmition_status != null)
                            {
                                if (Parameter.change_status)
                                {
                                    transmition_status.IsActive = false;
                                    transmition_status.Modification_Timestamp = Parameter.status_date;
                                    transmition_status.Save(Connection, Transaction);

                                    ORM_BIL_BillPosition_TransmitionStatus position_status = new ORM_BIL_BillPosition_TransmitionStatus();
                                    position_status.BIL_BillPosition_TransmitionStatusID = Guid.NewGuid();
                                    position_status.BillPosition_RefID     = bill_position.bill_position_id;
                                    position_status.Creation_Timestamp     = Parameter.status_date;
                                    position_status.IsActive               = true;
                                    position_status.PrimaryComment         = Parameter.primary_comment;
                                    position_status.SecondaryComment       = Parameter.secondary_comment;
                                    position_status.Modification_Timestamp = Parameter.status_date;
                                    position_status.TransmitionCode        = Parameter.new_status;
                                    position_status.TransmittedOnDate      = Parameter.status_date;
                                    position_status.Tenant_RefID           = securityTicket.TenantID;
                                    position_status.TransmitionStatusKey   = "treatment";

                                    #region CREATE SNAPSHOT
                                    DateTime today = DateTime.Today;
                                    int      age   = today.Year - patient_details.birthday.Year;
                                    if (patient_details.birthday > today.AddYears(-age))
                                    {
                                        age--;
                                    }

                                    var snapshot = cls_Create_XML_for_Immutable_Fields.Invoke(Connection, Transaction, new P_CAS_CXFIF_0830()
                                    {
                                        DiagnosisCatalogCode             = diagnose_details.diagnose_icd_10,
                                        DiagnosisCatalogName             = diagnose_details.catalog_display_name,
                                        DiagnosisName                    = diagnose_details.diagnose_name,
                                        IFPerformedMedicalPracticeName   = treatment_practice_details.practice_name,
                                        IFPerformedResponsibleBPFullName = treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name,
                                        Localization     = case_to_submit.localization,
                                        PatientBirthDate = patient_details.birthday.ToString("dd.MM.yyyy"),
                                        PatientFirstName = patient_details.patient_first_name,
                                        PatientGender    = patient_details.gender.ToString(),
                                        PatientLastName  = patient_details.patient_last_name,
                                        PatientAge       = age.ToString()
                                    }, securityTicket).Result;

                                    if (snapshot != null)
                                    {
                                        position_status.TransmissionDataXML = snapshot.XmlFileString;
                                    }

                                    #endregion

                                    position_status.Save(Connection, Transaction);
                                }
                                else
                                {
                                    current_status = "FS" + transmition_status.TransmitionCode;
                                }
                            }
                        }
                    }
                    #endregion
                }
                else
                {
                    var bill_positions = cls_Get_BillPositionIDs_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GBPIDsfCID_0928()
                    {
                        CaseID = case_id
                    }, securityTicket).Result;

                    foreach (var bill_position in bill_positions)
                    {
                        #region CHANGE AFTERCARE STATUS
                        var billing_code = cls_Get_BillingCode_for_CaseBillCodeID.Invoke(Connection, Transaction, new P_CAS_GBCfCBCID_1334()
                        {
                            CaseBillCodeID = bill_position.hec_case_bill_code_id
                        }, securityTicket).Result;

                        if (aftercare_gpos.Contains(billing_code.BillingCode))
                        {
                            ORM_BIL_BillPosition_TransmitionStatus.Query transmition_statusQ = new ORM_BIL_BillPosition_TransmitionStatus.Query();
                            transmition_statusQ.BillPosition_RefID   = bill_position.bill_position_id;
                            transmition_statusQ.TransmitionStatusKey = "aftercare";
                            transmition_statusQ.Tenant_RefID         = securityTicket.TenantID;
                            transmition_statusQ.IsDeleted            = false;
                            transmition_statusQ.IsActive             = true;

                            var transmition_status = ORM_BIL_BillPosition_TransmitionStatus.Query.Search(Connection, Transaction, transmition_statusQ).SingleOrDefault();
                            if (transmition_status != null)
                            {
                                if (Parameter.change_status)
                                {
                                    transmition_status.IsActive = false;
                                    transmition_status.Modification_Timestamp = Parameter.status_date;
                                    transmition_status.Save(Connection, Transaction);

                                    ORM_BIL_BillPosition_TransmitionStatus position_status = new ORM_BIL_BillPosition_TransmitionStatus();
                                    position_status.BIL_BillPosition_TransmitionStatusID = Guid.NewGuid();
                                    position_status.BillPosition_RefID     = bill_position.bill_position_id;
                                    position_status.Creation_Timestamp     = Parameter.status_date;
                                    position_status.IsActive               = true;
                                    position_status.PrimaryComment         = Parameter.primary_comment;
                                    position_status.SecondaryComment       = Parameter.secondary_comment;
                                    position_status.Modification_Timestamp = Parameter.status_date;
                                    position_status.TransmitionCode        = Parameter.new_status;
                                    position_status.TransmittedOnDate      = Parameter.status_date;
                                    position_status.Tenant_RefID           = securityTicket.TenantID;
                                    position_status.TransmitionStatusKey   = "aftercare";

                                    #region CREATE SNAPSHOT
                                    DateTime today = DateTime.Today;
                                    int      age   = today.Year - patient_details.birthday.Year;
                                    if (patient_details.birthday > today.AddYears(-age))
                                    {
                                        age--;
                                    }

                                    var snapshot = cls_Create_XML_for_Immutable_Fields.Invoke(Connection, Transaction, new P_CAS_CXFIF_0830()
                                    {
                                        DiagnosisCatalogCode             = diagnose_details.diagnose_icd_10,
                                        DiagnosisCatalogName             = diagnose_details.catalog_display_name,
                                        DiagnosisName                    = diagnose_details.diagnose_name,
                                        IFPerformedMedicalPracticeName   = treatment_practice_details.practice_name,
                                        IFPerformedResponsibleBPFullName = treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name,
                                        Localization     = case_to_submit.localization,
                                        PatientBirthDate = patient_details.birthday.ToString("dd.MM.yyyy"),
                                        PatientFirstName = patient_details.patient_first_name,
                                        PatientGender    = patient_details.gender.ToString(),
                                        PatientLastName  = patient_details.patient_last_name,
                                        PatientAge       = age.ToString()
                                    }, securityTicket).Result;

                                    if (snapshot != null)
                                    {
                                        position_status.TransmissionDataXML = snapshot.XmlFileString;
                                    }

                                    #endregion

                                    position_status.Save(Connection, Transaction);
                                }
                                else
                                {
                                    current_status = "FS" + transmition_status.TransmitionCode;
                                }
                            }
                        }
                        #endregion
                    }
                }

                Submitted_Case_Model submitted_case_model_elastic = new Submitted_Case_Model();
                submitted_case_model_elastic.diagnose                  = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : "";
                submitted_case_model_elastic.id                        = is_treatment ? case_to_submit.treatment_planned_action_id.ToString() : case_to_submit.aftercare_planned_action_id.ToString();
                submitted_case_model_elastic.case_id                   = case_id.ToString();
                submitted_case_model_elastic.localization              = case_to_submit.localization;
                submitted_case_model_elastic.management_pauschale      = practice_defaults.WaiveServiceFee ? "waived" : "deducted";
                submitted_case_model_elastic.patient_birthdate         = DateTime.SpecifyKind(case_to_submit.Patient_BirthDate.AddHours(2).AddMinutes(33).AddSeconds(44), DateTimeKind.Local);
                submitted_case_model_elastic.patient_birthdate_string  = case_to_submit.Patient_BirthDate.ToString("dd.MM.yyyy");
                submitted_case_model_elastic.patient_name              = patient_details != null ? patient_details.patient_last_name + ", " + patient_details.patient_first_name : "";
                submitted_case_model_elastic.status                    = "FS" + Parameter.new_status;
                submitted_case_model_elastic.status_date               = Parameter.status_date;
                submitted_case_model_elastic.status_date_string        = Parameter.status_date.ToString("dd.MM.yyyy");
                submitted_case_model_elastic.treatment_date            = case_to_submit.treatment_date;
                submitted_case_model_elastic.treatment_date_day_month  = case_to_submit.treatment_date.ToString("dd.MM.");
                submitted_case_model_elastic.treatment_date_month_year = case_to_submit.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true));
                submitted_case_model_elastic.drug                      = drug_details != null ? drug_details.drug_name : "";
                submitted_case_model_elastic.type                      = is_treatment ? "op" : "ac";
                submitted_case_model_elastic.treatment_date_string     = case_to_submit.treatment_date.ToString("dd.MM.yyyy");
                submitted_case_model_elastic.patient_insurance_number  = patient_details.insurance_id;

                if (is_treatment)
                {
                    submitted_case_model_elastic.doctor_name   = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name : "-";
                    submitted_case_model_elastic.practice_name = treatment_doctor_details.practice;
                    submitted_case_model_elastic.doctor_lanr   = treatment_doctor_details.lanr;
                    submitted_case_model_elastic.practice_bsnr = treatment_practice_details.practice_BSNR;
                }
                else
                {
                    submitted_case_model_elastic.doctor_name   = aftercare_doctor_details.title + " " + aftercare_doctor_details.last_name + " " + aftercare_doctor_details.first_name;
                    submitted_case_model_elastic.practice_name = aftercare_doctor_details.practice;
                    submitted_case_model_elastic.doctor_lanr   = aftercare_doctor_details.lanr;
                    submitted_case_model_elastic.practice_bsnr = aftercare_practice_details.practice_BSNR;
                }

                submitted_case_model_elastic.hip_name = patient_details != null ? patient_details.health_insurance_provider : "-";

                List <Submitted_Case_Model> cases_to_submit = new List <Submitted_Case_Model>();
                cases_to_submit.Add(submitted_case_model_elastic);

                Add_New_Submitted_Case.Import_Submitted_Case_Data_to_ElasticDB(cases_to_submit, securityTicket.TenantID.ToString());
            }

            return(returnValue);

            #endregion UserCode
        }
示例#2
0
        public static void SubmitCase(DbConnection Connection,
                                      DbTransaction Transaction, SessionSecurityTicket securityTicket,
                                      bool is_treatment, Guid treatment_doctor_id, Guid patient_id,
                                      Guid diagnose_id, Guid drug_id, Guid case_id, string localization,
                                      Guid aftercare_doctor_id, DateTime treatment_date, Guid practice_id, Guid aftercare_practice_id, DateTime status_date)
        {
            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;
            var treatment_practice_default_settings = cls_Get_Practice_Default_Settings_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDSfPID_0909()
            {
                PracticeID = practice_id
            }, securityTicket).Result;
            var aftercare_practice_default_settings = cls_Get_Practice_Default_Settings_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDSfPID_0909()
            {
                PracticeID = aftercare_practice_id
            }, securityTicket).Result;
            var treatment_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
            {
                PracticeID = practice_id
            }, securityTicket).Result.FirstOrDefault();
            var aftercare_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
            {
                PracticeID = aftercare_practice_id
            }, securityTicket).Result.FirstOrDefault();
            var aftercare_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823()
            {
                DoctorID = aftercare_doctor_id
            }, securityTicket).Result.SingleOrDefault();

            #region IMPORT TO ELASTIC
            var submitted_case_id = Guid.Empty;
            if (is_treatment)
            {
                submitted_case_id = cls_Get_Treatment_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GTPAfCID_0946()
                {
                    CaseID = case_id
                }, securityTicket).Result.planned_action_id;
                Add_New_Case.Delete_Case_After_Submitting(securityTicket.TenantID.ToString(), "case", case_id.ToString());
            }
            else
            {
                submitted_case_id = cls_Get_Aftercare_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GAPAfCID_0959()
                {
                    CaseID = case_id
                }, securityTicket).Result.planned_action_id;
                Add_New_Aftercare.Delete_Aftercare_Submitting(securityTicket.TenantID.ToString(), "aftercare", submitted_case_id.ToString());
            }

            #region IMPORT SUBMITTED CASE TO ELASTIC
            Submitted_Case_Model submitted_case_model_elastic = new Submitted_Case_Model();
            submitted_case_model_elastic.diagnose                  = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : "";
            submitted_case_model_elastic.id                        = submitted_case_id.ToString();
            submitted_case_model_elastic.case_id                   = case_id.ToString();
            submitted_case_model_elastic.localization              = localization;
            submitted_case_model_elastic.management_pauschale      = is_treatment ? treatment_practice_default_settings.WaiveServiceFee ? "waived" : "deducted" : aftercare_practice_default_settings.WaiveServiceFee ? "waived" : "deducted";
            submitted_case_model_elastic.patient_birthdate         = patient_details.birthday;
            submitted_case_model_elastic.patient_birthdate_string  = patient_details.birthday.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.patient_name              = patient_details.patient_last_name + ", " + patient_details.patient_first_name;
            submitted_case_model_elastic.status                    = "FS1";
            submitted_case_model_elastic.status_date               = status_date;
            submitted_case_model_elastic.status_date_string        = status_date.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.treatment_date            = treatment_date;
            submitted_case_model_elastic.treatment_date_day_month  = treatment_date.ToString("dd.MM.");
            submitted_case_model_elastic.treatment_date_month_year = treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true));
            submitted_case_model_elastic.drug                      = drug_details != null ? drug_details.drug_name : "";
            submitted_case_model_elastic.type                      = is_treatment ? "op" : "ac";
            submitted_case_model_elastic.treatment_date_string     = treatment_date.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.patient_insurance_number  = patient_details.insurance_id;

            if (is_treatment)
            {
                submitted_case_model_elastic.doctor_name   = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name : "-";
                submitted_case_model_elastic.practice_name = treatment_doctor_details.practice;
                submitted_case_model_elastic.doctor_lanr   = treatment_doctor_details.lanr;
                submitted_case_model_elastic.practice_bsnr = treatment_practice_details.practice_BSNR;
            }
            else
            {
                submitted_case_model_elastic.doctor_name   = aftercare_doctor_details.title + " " + aftercare_doctor_details.last_name + " " + aftercare_doctor_details.first_name;
                submitted_case_model_elastic.practice_name = aftercare_doctor_details.practice;
                submitted_case_model_elastic.doctor_lanr   = aftercare_doctor_details.lanr;
                submitted_case_model_elastic.practice_bsnr = aftercare_practice_details.practice_BSNR;
            }

            submitted_case_model_elastic.hip_name = patient_details != null ? patient_details.health_insurance_provider : "-";

            List <Submitted_Case_Model> cases_to_submit = new List <Submitted_Case_Model>();
            cases_to_submit.Add(submitted_case_model_elastic);

            Add_New_Submitted_Case.Import_Submitted_Case_Data_to_ElasticDB(cases_to_submit, securityTicket.TenantID.ToString());
            #endregion

            if (is_treatment)
            {
                submitted_case_id = cls_Get_Aftercare_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GAPAfCID_0959()
                {
                    CaseID = case_id
                }, securityTicket).Result.planned_action_id;

                #region IMPORT AFTERCARE TO ELASTIC
                Aftercare_Model aftercare = new Aftercare_Model();
                aftercare.aftercare_doctor_name = aftercare_doctor_details.title + " " + aftercare_doctor_details.first_name + " " + aftercare_doctor_details.last_name;
                aftercare.diagnose                 = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : "";
                aftercare.id                       = submitted_case_id.ToString();
                aftercare.localization             = localization;
                aftercare.patient_birthdate        = patient_details.birthday;
                aftercare.patient_birthdate_string = patient_details.birthday.ToString("dd.MM.yyyy");
                aftercare.patient_name             = patient_details != null ? patient_details.patient_last_name + ", " + patient_details.patient_first_name : "";
                aftercare.practice_id              = cls_Get_PracticeID_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GPIDfDID_1353()
                {
                    DoctorID = aftercare_doctor_id
                }, securityTicket).Result.SingleOrDefault().HEC_MedicalPractiseID.ToString();
                aftercare.status                         = "AC1";
                aftercare.treatment_date                 = treatment_date;
                aftercare.treatment_date_day_month       = treatment_date.ToString("dd.MM.");
                aftercare.treatment_date_month_year      = treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true));
                aftercare.treatment_doctor_name          = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.first_name + " " + treatment_doctor_details.last_name : "-";
                aftercare.treatment_doctor_practice_name = treatment_doctor_details.practice;
                aftercare.case_id                        = case_id.ToString();
                var aftercare_doctor_account_id = cls_Get_Doctor_AccountID_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDAIDfDID_1549()
                {
                    DoctorID = aftercare_doctor_id
                }, securityTicket).Result.accountID;
                aftercare.aftercare_doctor_account_id = aftercare_doctor_account_id.ToString();

                List <Aftercare_Model> aftercares = new List <Aftercare_Model>()
                {
                    aftercare
                };
                Add_New_Aftercare.Import_Aftercare_Data_to_ElasticDB(aftercares, securityTicket.TenantID.ToString());
                #endregion
            }
            #endregion IMPORT TO ELASTIC
        }
示例#3
0
        public Guid[] GetEligibleCases(bool all_selected, Guid[] selected_action_ids, Guid[] deselected_action_ids, FilterObject filter, CaseStatus?case_status, string connectionString, string sessionTicket, out TransactionalInformation transaction)
        {
            var method = MethodInfo.GetCurrentMethod();
            var ipInfo = Util.GetIPInfo(HttpContext.Current.Request);

            transaction = new TransactionalInformation();
            var securityTicket = VerifySessionToken(sessionTicket);

            Submitted_Case_Model[] selected_cases = new Submitted_Case_Model[] { };

            try
            {
                if (all_selected || deselected_action_ids.Length != 0)
                {
                    ElasticParameterObject filter_by = new ElasticParameterObject();
                    filter_by.date_from = filter.date_from;
                    filter_by.date_to   = filter.date_to;
                    filter_by.filter_by.filter_status = filter.filter_by.filter_status;
                    filter_by.filter_by.filter_type   = filter.filter_by.filter_type;
                    filter_by.search_params           = filter.search_params;

                    selected_cases = Get_Submitted_Cases.GetSubmittedCasesFilteredIDs(filter_by, case_status.HasValue ? case_status.Value.ToString().ToLower() : null, securityTicket);
                }
                else
                {
                    selected_cases = Get_Submitted_Cases.GetSubmittedCaseforIDArray(Array.ConvertAll(selected_action_ids, x => x.ToString()), case_status.HasValue ? case_status.Value.ToString().ToLower() : null, securityTicket);
                }

                selected_action_ids = selected_cases.Select(ac =>
                {
                    if (ac.status == "FS13")
                    {
                        return(Guid.Empty);
                    }

                    if (ac.type == "op")
                    {
                        return(Guid.Parse(ac.id));
                    }
                    else
                    {
                        var acs  = selected_cases.Where(selAc => selAc.type == "ac" && selAc.status == "FS8").GroupBy(selAc => selAc.case_id, selAc => selAc.id, (key, value) => new { CaseID = key, AcIDs = value.ToList() });
                        var data = acs.Where(t => t.CaseID == ac.case_id);
                        if (data.Count() != 0 && data.Single().AcIDs.Count > 1)
                        {
                            return(Guid.Empty);
                        }
                        else
                        {
                            if (ac.status != "FS8")
                            {
                                return(Guid.Parse(ac.id));
                            }
                            else if (cls_Get_is_Aftercares_Status_Editable_for_CaseID.Invoke(connectionString, new P_CAS_GiASEfCID_1127()
                            {
                                CaseID = Guid.Parse(ac.case_id)
                            }, securityTicket).Result.IsEditable)
                            {
                                return(Guid.Parse(ac.id));
                            }
                        }
                    }

                    return(Guid.Empty);
                }).Where(id => id != Guid.Empty).ToArray();

                if (deselected_action_ids.Length != 0)
                {
                    selected_action_ids = selected_action_ids.Except(deselected_action_ids).ToArray();
                }
            }
            catch (Exception ex)
            {
                Logger.LogInfo(new LogEntry(ipInfo.address, ipInfo.agent, connectionString, method, securityTicket, ex));

                transaction.ReturnMessage = new List <string>();
                string errorMessage = ex.Message;
                transaction.ReturnStatus = false;
                transaction.ReturnMessage.Add(errorMessage);
                transaction.IsAuthenicated = true;
                transaction.IsException    = true;
            }

            return(selected_action_ids);
        }
示例#4
0
        public static void ChangeCaseStatus(DbConnection Connection,
                                            DbTransaction Transaction, SessionSecurityTicket securityTicket,
                                            bool is_treatment, Guid treatment_doctor_id, Guid patient_id,
                                            Guid diagnose_id, Guid drug_id, Guid case_id, string localization,
                                            Guid aftercare_doctor_id, DateTime treatment_date, Guid practice_id, Guid aftercare_practice_id, DateTime status_date, int new_status)
        {
            var submitted_case_id = is_treatment ?
                                    cls_Get_Treatment_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GTPAfCID_0946()
            {
                CaseID = case_id
            }, securityTicket).Result.planned_action_id :
                                    cls_Get_Aftercare_Planned_Action_for_CaseID.Invoke(Connection, Transaction, new P_CAS_GAPAfCID_0959()
            {
                CaseID = case_id
            }, securityTicket).Result.planned_action_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;
            var treatment_practice_default_settings = cls_Get_Practice_Default_Settings_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDSfPID_0909()
            {
                PracticeID = practice_id
            }, securityTicket).Result;
            var aftercare_practice_default_settings = cls_Get_Practice_Default_Settings_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDSfPID_0909()
            {
                PracticeID = aftercare_practice_id
            }, securityTicket).Result;
            var treatment_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
            {
                PracticeID = practice_id
            }, securityTicket).Result.FirstOrDefault();
            var aftercare_practice_details = cls_Get_Practice_Details_for_PracticeID.Invoke(Connection, Transaction, new P_DO_GPDfPID_1432()
            {
                PracticeID = aftercare_practice_id
            }, securityTicket).Result.FirstOrDefault();
            var aftercare_doctor_details = cls_Get_Doctor_Details_for_DoctorID.Invoke(Connection, Transaction, new P_DO_GDDfDID_0823()
            {
                DoctorID = aftercare_doctor_id
            }, securityTicket).Result.SingleOrDefault();

            Submitted_Case_Model submitted_case_model_elastic = new Submitted_Case_Model();

            submitted_case_model_elastic.diagnose                  = diagnose_details != null ? diagnose_details.diagnose_name + " (" + diagnose_details.catalog_display_name + ": " + diagnose_details.diagnose_icd_10 + ")" : "";
            submitted_case_model_elastic.id                        = submitted_case_id.ToString();
            submitted_case_model_elastic.case_id                   = case_id.ToString();
            submitted_case_model_elastic.localization              = localization;
            submitted_case_model_elastic.management_pauschale      = is_treatment ? treatment_practice_default_settings.WaiveServiceFee ? "waived" : "deducted" : aftercare_practice_default_settings.WaiveServiceFee ? "waived" : "deducted";
            submitted_case_model_elastic.patient_birthdate         = patient_details.birthday;
            submitted_case_model_elastic.patient_birthdate_string  = patient_details.birthday.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.patient_name              = patient_details.patient_last_name + ", " + patient_details.patient_first_name;
            submitted_case_model_elastic.status                    = "FS" + new_status;
            submitted_case_model_elastic.status_date               = status_date;
            submitted_case_model_elastic.status_date_string        = status_date.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.treatment_date            = treatment_date;
            submitted_case_model_elastic.treatment_date_day_month  = treatment_date.ToString("dd.MM.");
            submitted_case_model_elastic.treatment_date_month_year = treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true));
            submitted_case_model_elastic.drug                      = drug_details != null ? drug_details.drug_name : "";
            submitted_case_model_elastic.type                      = is_treatment ? "op" : "ac";
            submitted_case_model_elastic.treatment_date_string     = treatment_date.ToString("dd.MM.yyyy");
            submitted_case_model_elastic.patient_insurance_number  = patient_details.insurance_id;

            if (is_treatment)
            {
                submitted_case_model_elastic.doctor_name   = treatment_doctor_details != null ? treatment_doctor_details.title + " " + treatment_doctor_details.last_name + " " + treatment_doctor_details.first_name : "-";
                submitted_case_model_elastic.practice_name = treatment_doctor_details.practice;
                submitted_case_model_elastic.doctor_lanr   = treatment_doctor_details.lanr;
                submitted_case_model_elastic.practice_bsnr = treatment_practice_details.practice_BSNR;
            }
            else
            {
                submitted_case_model_elastic.doctor_name   = aftercare_doctor_details.title + " " + aftercare_doctor_details.last_name + " " + aftercare_doctor_details.first_name;
                submitted_case_model_elastic.practice_name = aftercare_doctor_details.practice;
                submitted_case_model_elastic.doctor_lanr   = aftercare_doctor_details.lanr;
                submitted_case_model_elastic.practice_bsnr = aftercare_practice_details.practice_BSNR;
            }

            submitted_case_model_elastic.hip_name = patient_details != null ? patient_details.health_insurance_provider : "-";

            List <Submitted_Case_Model> cases_to_submit = new List <Submitted_Case_Model>();

            cases_to_submit.Add(submitted_case_model_elastic);

            Add_New_Submitted_Case.Import_Submitted_Case_Data_to_ElasticDB(cases_to_submit, securityTicket.TenantID.ToString());
        }