Exemple #1
0
        protected static FR_L6BH_IAOKR_1652 Execute(DbConnection Connection, DbTransaction Transaction, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L6BH_IAOKR_1652();
            returnValue.Result = new L6BH_IAOKR_1652();
            List <L6BH_IAOKR_1652_ImportedErrors> importedErrorsList = new List <L6BH_IAOKR_1652_ImportedErrors>();
            returnValue.Result.ImportedErrors = importedErrorsList.ToArray();
            List <int> ProcessNumberDoNotExist = new List <int>();
            returnValue.Result.ProcessNumberDoesNotExist = ProcessNumberDoNotExist.ToArray();
            List <int> ProcessNumberCouldNotBeChangedBack = new List <int>();
            returnValue.Result.ProcessNumberCouldNotBeChangedBack = ProcessNumberCouldNotBeChangedBack.ToArray();

            foreach (var edifactFileLocation in Parameter.EdifactFileList.ToList())
            {
                System.IO.StreamReader  srInputFile = new System.IO.StreamReader(edifactFileLocation);
                EdifactInterface.Parser edifactFile = new EdifactInterface.Parser(srInputFile);
                var edifactFileList = edifactFile.getParsedPositions();

                foreach (var treatment in edifactFileList)
                {
                    var billPositionQuery = new ORM_BIL_BillPosition.Query();
                    billPositionQuery.Tenant_RefID = securityTicket.TenantID;
                    billPositionQuery.IsDeleted    = false;
                    billPositionQuery.External_PositionReferenceField = (Int64.Parse(treatment.strProcessNumber) % 10000000000).ToString();

                    var billPosition = ORM_BIL_BillPosition.Query.Search(Connection, Transaction, billPositionQuery).FirstOrDefault();

                    if (billPosition != null)
                    {
                        //find if there is a higher status then one to be updated
                        var activeStatusesQuery = new ORM_BIL_BillPosition_TransmitionStatus.Query();
                        activeStatusesQuery.Tenant_RefID       = securityTicket.TenantID;
                        activeStatusesQuery.BillPosition_RefID = billPosition.BIL_BillPositionID;
                        activeStatusesQuery.IsDeleted          = false;
                        activeStatusesQuery.IsActive           = true;

                        var activeStatuss = ORM_BIL_BillPosition_TransmitionStatus.Query.Search(Connection, Transaction, activeStatusesQuery).FirstOrDefault();

                        if (activeStatuss.TransmitionCode >= 4)
                        {
                            ProcessNumberCouldNotBeChangedBack.Add(Int32.Parse(treatment.strProcessNumber));
                        }
                        else
                        {
                            activeStatuss.IsActive  = false;
                            activeStatuss.IsDeleted = true;
                            activeStatuss.Save(Connection, Transaction);

                            //create status 4
                            var transmitionStatus = new ORM_BIL_BillPosition_TransmitionStatus();
                            transmitionStatus.BIL_BillPosition_TransmitionStatusID = Guid.NewGuid();
                            transmitionStatus.BillPosition_RefID = billPosition.BIL_BillPositionID;
                            transmitionStatus.TransmitionCode    = 4;
                            transmitionStatus.TransmittedOnDate  = DateTime.Now;
                            transmitionStatus.PrimaryComment     = "AOK Fehlermeldung";
                            transmitionStatus.SecondaryComment   = treatment.strErrorComment;
                            transmitionStatus.Tenant_RefID       = securityTicket.TenantID;
                            transmitionStatus.Creation_Timestamp = DateTime.Now;
                            transmitionStatus.IsActive           = true;
                            transmitionStatus.Save(Connection, Transaction);//save

                            L6BH_IAOKR_1652_ImportedErrors errorMessage = new L6BH_IAOKR_1652_ImportedErrors();
                            errorMessage.Comment       = treatment.strErrorComment;
                            errorMessage.Patient       = treatment.strPatientFirstName + " " + treatment.strPatientLastName;
                            errorMessage.ProcessNumber = Int32.Parse(treatment.strProcessNumber);

                            importedErrorsList.Add(errorMessage);
                        }
                    }
                    else
                    {
                        ProcessNumberDoNotExist.Add(Int32.Parse(treatment.strProcessNumber));
                    }
                }
            }
            returnValue.Result.ProcessNumberCouldNotBeChangedBack = ProcessNumberCouldNotBeChangedBack.ToArray();
            returnValue.Result.ImportedErrors            = importedErrorsList.ToArray();
            returnValue.Result.ProcessNumberDoesNotExist = ProcessNumberDoNotExist.ToArray();
            return(returnValue);

            #endregion UserCode
        }
Exemple #2
0
 ///<summary>
 /// Invokes the method for the given Connection, and Transaction, leaving them open/not commited if no exceptions occured
 ///<summary>
 public static FR_L6BH_IAOKR_1652 Invoke(DbConnection Connection, DbTransaction Transaction, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
 {
     return(Invoke(Connection, Transaction, null, Parameter, securityTicket));
 }
Exemple #3
0
        ///<summary>
        /// Method Invocation of wrapper classes
        ///<summary>
        protected static FR_L6BH_IAOKR_1652 Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            bool cleanupConnection  = Connection == null;
            bool cleanupTransaction = Transaction == null;

            FR_L6BH_IAOKR_1652 functionReturn = new FR_L6BH_IAOKR_1652();

            try
            {
                if (cleanupConnection == true)
                {
                    Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString);
                    Connection.Open();
                }
                if (cleanupTransaction == true)
                {
                    Transaction = Connection.BeginTransaction();
                }

                functionReturn = Execute(Connection, Transaction, Parameter, securityTicket);

                #region Cleanup Connection/Transaction
                //Commit the transaction
                if (cleanupTransaction == true)
                {
                    Transaction.Commit();
                }
                //Close the connection
                if (cleanupConnection == true)
                {
                    Connection.Close();
                }
                #endregion
            }
            catch (Exception ex)
            {
                try
                {
                    if (cleanupTransaction == true && Transaction != null)
                    {
                        Transaction.Rollback();
                    }
                }
                catch { }

                try
                {
                    if (cleanupConnection == true && Connection != null)
                    {
                        Connection.Close();
                    }
                }
                catch { }

                throw new Exception("Exception occured in method cls_Import_AOK_response", ex);
            }
            return(functionReturn);
        }
Exemple #4
0
 ///<summary>
 /// Opens the connection/transaction for the given connectionString, and closes them when complete
 ///<summary>
 public static FR_L6BH_IAOKR_1652 Invoke(string ConnectionString, P_L6BH_IAOKR_1652 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
 {
     return(Invoke(null, null, ConnectionString, Parameter, securityTicket));
 }