【问题标题】:HL7 Parsing with Multiple Messages using pythonHL7 使用 python 解析多条消息
【发布时间】:2015-07-27 13:49:37
【问题描述】:

我正在处理 HL7 文件解析。

我每天都会收到 HL7 文件日志,其中包含单个文件中的多条消息。

我选择了http://python-hl7.readthedocs.org/en/latest/api.html 库进行解析,但这只是解析一条消息。如果我给一个文件流,它不会解析它。

我们如何使用python解析文件流中的多条消息。

【问题讨论】:

  • 我正在尝试做完全相同的事情,但还没有弄清楚。有没有找到任何方法来做到这一点?
  • @venkat 我想将此库用于我的制作。您的体验如何?是否值得使用。如果您知道,请建议任何其他用于 HL7 解析的 python 包。

标签: python hl7


【解决方案1】:

您可能希望在解析之前将文件拆分为单独的消息。如果文件包含 HL7 消息开始和结束字符,那么您可以将它们用作标记。另一种方法是在每个 MSH 段处拆分文件,因为每条消息都应包含一个 MSH 作为第一个段。

【讨论】:

    【解决方案2】:

    一个文件中的多条消息应该用HL7 Batch File Protocol 括起来。 您可以使用 hl7.isfile(line) 进行测试,并使用 hl7.split_file(hl7file) 获得消息。

    来自python hl7 api parse documentation

    hl7.isfile(line)
       Files are wrapped in FHS / FTS FHS = file header segment FTS = file trailer segment
    
    hl7.split_file(hl7file)
       Given a file, split out the messages. Does not do any validation on the message. Throws away batch and file segments.
    

    【讨论】:

      【解决方案3】:

      这是我的解决方案,我在 MSH 段进行拆分,以便单独解析 msg:

      with open('file_path/file_name.txt') as msgs:
      start = False
      for line in msgs.readlines():
          if line[:3] == 'MSH':
              if start:
                  parsed_msg = hl7.parse(msg)
                  print(parsed_msg)
                  start = False
              msg = line
              start = True
          else:
              msg += line
      

      【讨论】:

      • 我不确定你在说什么。这是问题的解决方案,还是关于您的代码的新问题?如果这是一个解决方案,请编辑答案以使其清楚。如果这是一个问题,我建议将其作为一个单独的问题提出,如果它提供相关的上下文,可能会链接到这个问题。
      • 这是一个解决方案@joanis 如果一个文件中一个接一个地有多个消息,没有分隔符,并且您无法控制在文件创建端添加分隔符。
      猜你喜欢
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 2023-03-30
      • 1970-01-01
      • 2020-12-29
      • 2012-05-28
      相关资源
      最近更新 更多