class HL7::Message::SegmentGenerator

Methods for creating segments in Message

Attributes

delimiter[R]
element[R]
last_seg[R]
seg_name[RW]
seg_parts[RW]

Public Class Methods

new(element, last_seg, delimiter) click to toggle source
# File lib/segment_generator.rb, line 20
def initialize(element, last_seg, delimiter)
  @element = element
  @last_seg = last_seg
  @delimiter = delimiter

  @seg_parts = HL7::MessageParser.split_by_delimiter( element,
                                                      delimiter.element )
end

Public Instance Methods

build() click to toggle source
# File lib/segment_generator.rb, line 39
def build
  klass = get_segment_class
  new_seg = klass.new( @element, [@delimiter.element, @delimiter.item] )
  new_seg
end
get_segment_class() click to toggle source
# File lib/segment_generator.rb, line 45
def get_segment_class
  segment_to_search = @seg_name.to_sym
  segment_to_search = @seg_name if RUBY_VERSION < "1.9"

  if HL7::Message::Segment.constants.index(segment_to_search)
    eval("HL7::Message::Segment::%s" % @seg_name)
  else
    HL7::Message::Segment::Default
  end
end
valid_segments_parts?() click to toggle source
# File lib/segment_generator.rb, line 29
def valid_segments_parts?
  return true if @seg_parts && @seg_parts.length > 0

  if HL7.ParserConfig[:empty_segment_is_error]
    raise HL7::EmptySegmentNotAllowed
  else
    return false
  end
end