在日志中检测并删除重复的HL7消息

时间:2019-06-25 19:54:45

标签: powershell hl7 mirth

我正在尝试使用现有环境中的数据填充新的EMR。我正在获取给定接口的所有活动的日志,并将其馈送到新环境中的入站通道。问题在于我们现有的渠道中存在重复的消息,这将在患者记录中创建重复的报告。

除了浏览整个Internet之外,我还尝试在Iguana,PowerShell和Excel中推送文本,而我对MirthConnect还不够熟悉,无法使用它。我没有任何一种解决方案,只需要 a 解决方案和PDQ。

我在https://www.secretgeek.net/ps_duplicates找到了一个不错的起点,并且一直在进行按摩,但仍然没有完整的解决方案。此时,我基本上已将其重置为零,因为我所做的任何事情都没有对其进行改进(大多数情况下我会反复将其破坏)。

$hash = @{}                                                 #Define an empty hashtable
gc "c:\Samples\Q12019.txt" | #Send the content of the file into the pipeline...
  % {
      if ($hash.$_ -eq $null) {                             #if that line isn't a key in the hash table
                                                              # $_ is data from the pipe
        $_                                                  #send the data down the pipe
      };
    $hash.$_ = 1                                            #add that line to the hash so it doesn't resend
  } > "c:\Samples\RadHx Test Q12019.txt"

这做了一些我不明白的令人毛骨悚然的东西。它提取文件,并且输出在文件中的每个单个字符处都有一个新的空格。我什至不知道它是否要删除重复项,而且我也无法使它停止这样做。我也不确定它正在读取包括其所有段的整个消息。示例2 https://healthstandards.com/blog/2007/09/10/variations-of-the-hl7-orur01-message-format/ 看起来与我要处理的摄取示例足够接近,只需在文本文件中再添加2000个即可。

简化说明: 我有一个文本文件,其中包含几个相关文本块。每个块都有相同的起始字符序列,例如“ ABC”。这些块的长度是任意的,不一定以相同的字符串结尾,而是所有块都以CRLF结尾。问题: 每个块可能不是唯一的,但是我需要消除重复的文本块,因此文件仅包含每个文本块的一个实例。

1 个答案:

答案 0 :(得分:0)

Mirth应该能够轻松地为您分批发送文件。如果邮件是完全重复的邮件,那么您可能只需跟踪几个应保证唯一性的MSH字段即可。

如果它们重发的是相同数据,但大多数情况下相同,但是某些字段(尤其是MSH段中的字段)可能会更新,则您可能希望排除某些段,然后对消息进行哈希处理,并进行跟踪(在罕见的哈希冲突情况下,可能带有患者ID或其他内容)

您可以将信息存储在globalChannelMap中,以比较消息中的值。该映射仅存在于内存中,不会在重新启动时幸免,但这对于您的一次转换来说应该不是问题。如果您需要更持久的东西,请将这些值存储在数据库中。