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 }
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 }
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); }
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()); }