internal static string PutMessageCollectedStatus(string gp2gpTransferID)
        {
            try
            {
                int dbKey = int.Parse(gp2gpTransferID);

                // get message file name
                HiMessageFile mf = new HiMessageFile();
                mf.messageFileName = Gp2GpTransfer.GetMessageFileName(dbKey);

                if (string.IsNullOrEmpty(mf.messageFileName))
                {
                    Log.Write("ERROR: unable to identify Message File for ID = " + dbKey.ToString(), LogLevel.ExceptionOnly);
                }
                else
                {
                    // delete message file from disk (if this can't be done, it's still been received - will to be reviewed by SysOp)
                    if (!mf.DeleteMessageFromDisk(mf.messageFileName))
                    {
                        Log.Write("ERROR: unable to delete collected file: " + mf.messageFileName, LogLevel.ExceptionOnly);
                    }

                    // update Collected Flag in DB (even if it can't be deleted - as it has been collected)
                    Gp2GpTransfer.UpdateMessageCollectedStatus(dbKey);
                }
            }
            catch (Exception ex)
            {
                Log.Write("ERROR: " + ex.ToString(), LogLevel.ExceptionOnly);
                throw;
            }

            return("OK");
        }
        internal static bool PostHpiMessage(string fileName, string messageHeader, string replyToMessageID, string encryptedMessage)
        {
            try
            {
                // instantiate message file object and populated properties from header
                HiMessageFile mf = new HiMessageFile(messageHeader);
                mf.replyToMessageId = replyToMessageID;

                // message will be empty if this is a notification (hashed PID will be in replyToMessageID)
                if (!string.IsNullOrEmpty(encryptedMessage))
                {
                    // save file to disk and populate message file name and size properties
                    mf.messageFileName = mf.SaveMessageToDisk(fileName, encryptedMessage);
                    mf.fileSize        = mf.GetFileSize(mf.messageFileName);
                }

                // record in Patients First DB - Gp2GpTransfer table
                Gp2GpTransfer.AddGp2GpTransfer(mf);
            }
            catch (Exception ex)
            {
                Log.Write("ERROR: " + ex.ToString(), LogLevel.ExceptionOnly);
                throw;
            }

            return(true);
        }
示例#3
0
        public static void AddGp2GpTransfer(HiMessageFile mf)
        {
            mf.applicationType = "GP2GP"; // some PMS omit this in Ack messages

            using (PatientsFirstDataContext dc = new PatientsFirstDataContext())
            {
                dc.Gp2GpTransfers_Insert(
                    mf.senderEDI,
                    mf.receiverEDI,
                    mf.messageId,
                    mf.messageYear,
                    mf.messageMonth,
                    mf.messageDay,
                    mf.applicationType,
                    mf.fileSize,
                    mf.sendingApplication,
                    mf.responseMessageIndicator,
                    mf.replyToMessageId,
                    mf.messageFileName);
            }
        }
示例#4
0
        public static List <HiMessageFile> GetUncollectedMessages(string hpiFacilityID)
        {
            List <HiMessageFile> hpiMessageList = new List <HiMessageFile>();

            List <GetUncollectedGp2GpTransfersResult> transfers = new List <GetUncollectedGp2GpTransfersResult>();

            using (PatientsFirstDataContext dc = new PatientsFirstDataContext())
            {
                transfers = dc.GetUncollectedGp2GpTransfers(hpiFacilityID).ToList();
            }

            foreach (GetUncollectedGp2GpTransfersResult tx in transfers)
            {
                HiMessageFile mf = new HiMessageFile();
                mf.dbKey           = tx.Gp2GpTransferId;
                mf.messageFileName = tx.MessageFileName;
                mf.messageId       = tx.MessageId;

                hpiMessageList.Add(mf);
            }

            return(hpiMessageList);
        }