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