Module: HL7::MessageBatchParser

Included in:
Message
Defined in:
lib/message_parser.rb

Instance Method Summary collapse

Instance Method Details

#parse(inobj) ⇒ Object

parse a String or Enumerable object into an HL7::Message if possible

  • returns a new HL7::Message if successful



26
27
28
29
30
# File 'lib/message_parser.rb', line 26

def parse(inobj)
  HL7::Message.new do |msg|
    msg.parse(inobj)
  end
end

#parse_batch(batch) ⇒ Object

:yields: message

Raises:



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/message_parser.rb', line 4

def parse_batch(batch) # :yields: message
  raise HL7::ParseError, "badly_formed_batch_message" unless
    batch.hl7_batch?

  batch = clean_batch_for_jruby batch

  raise HL7::ParseError, "empty_batch_message" unless
    match = /\rMSH/.match(batch)

  match.post_match.split("\rMSH").each do |_msg|
    if md = /\rBTS/.match(_msg)
      # TODO: Validate the message count in the BTS segment
      # should == index + 1
      _msg = md.pre_match
    end

    yield "MSH#{_msg}"
  end
end