3
  1. 我想通过段名获取特定的段 hl7,例如,我正在使用 Pipeparser 类,但我仍然不知道如何通过结构名称 ( MSH,PID,OBX,...) 获取每个段。

  2. 有时我有一个重复的段,如 DG1 或 PV1 或 OBX(见附件)如何从 Pentaho 水壶中的每个行段获取数据文件(我应该在水壶中使用 java 代码,如果有这样的解决方案,请帮助)。

OBX|1|TX|PTH_SITE1^Site A|1|left||||||F|||||||
OBX|2|TX|PTH_SPEC1^Specimen A||C-FNA^Fine Needle Aspiration||||||F|||||||

或者

DG1|1|I10C|G30.0|Alzheimer's disease with early onset|20160406|W|||||||||
DG1|2|I10C|E87.70|Fluid overload, unspecified|20160406|W|||||||||
4

1 回答 1

1

您应该使用HL7 Parser正确/准确地解析任何 HL7 格式的消息。

在 HAPI 的帮助下,您可以将消息解析为 Stream

// Open an InputStream to read from the file
        File file = new File("hl7_messages.txt");
        InputStream is = new FileInputStream(file);

        // It's generally a good idea to buffer file IO
        is = new BufferedInputStream(is);

        // The following class is a HAPI utility that will iterate over
        // the messages which appear over an InputStream
        Hl7InputStreamMessageIterator iter = new Hl7InputStreamMessageIterator(is);

        while (iter.hasNext()) {

            Message next = iter.next();

            // Do something with the message

        }

或者您可以将其读取为字符串

File file = new File("hl7_messages.txt");
        is = new FileInputStream(file);
        is = new BufferedInputStream(is);
        Hl7InputStreamMessageStringIterator iter2 = new Hl7InputStreamMessageStringIterator(is); 

        while (iter2.hasNext()) {

            String next = iter2.next();

            // Do something with the message

        }

希望这可以帮助您朝着正确的方向前进。

于 2016-04-28T10:01:20.563 回答