Class: SimpleHL7::Message
- Inherits:
-
Object
- Object
- SimpleHL7::Message
- Defined in:
- lib/simple_hl7/message.rb
Instance Method Summary collapse
-
#add_segment(name) ⇒ Segment
Add a segment to the message.
-
#append_segment(segment) ⇒ Segment
Appends a segment to the message.
-
#initialize(options = nil) ⇒ Message
constructor
Constructor.
- #method_missing(meth, *args, &block) ⇒ Object
-
#segment(name, index = 1) ⇒ Object
Get the specified segment.
-
#to_a ⇒ Array
Get an array representation of the HL7 message.
-
#to_hl7 ⇒ String
Generate a HL7 string from this message.
-
#to_llp ⇒ String
Generate a LLP string from this message Commonly used for transmitting HL7 messages via TCP/IP.
Constructor Details
#initialize(options = nil) ⇒ Message
Constructor
10 11 12 13 14 15 16 |
# File 'lib/simple_hl7/message.rb', line 10 def initialize( = nil) default_opts = {default_msh: true, segment_separator: "\r"} opts = default_opts.merge( || {}) @segment_separator = opts[:segment_separator] @segments = [] @segments << MSHSegment.new if opts[:default_msh] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &block) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/simple_hl7/message.rb', line 18 def method_missing(meth, *args, &block) if meth.to_s =~ /^[a-zA-Z][a-zA-Z0-9]{2}$/ get_named_segment(meth) elsif meth.to_s =~ /^[a-zA-Z][a-zA-Z0-9]{2}_all$/ seg_name = meth[0..3] all_segments(seg_name) else super end end |
Instance Method Details
#add_segment(name) ⇒ Segment
Add a segment to the message
71 72 73 74 75 |
# File 'lib/simple_hl7/message.rb', line 71 def add_segment(name) segment = Segment.new(name) @segments << segment segment end |
#append_segment(segment) ⇒ Segment
Appends a segment to the message
81 82 83 84 |
# File 'lib/simple_hl7/message.rb', line 81 def append_segment(segment) @segments << segment segment end |
#segment(name, index = 1) ⇒ Object
Get the specified segment
60 61 62 63 64 65 |
# File 'lib/simple_hl7/message.rb', line 60 def segment(name, index=1) all = all_segments(name) seg = nil seg = all[index - 1] if all.size >= index seg end |
#to_a ⇒ Array
Get an array representation of the HL7 message. This can be useful to help debug problems.
50 51 52 |
# File 'lib/simple_hl7/message.rb', line 50 def to_a @segments.reduce([]) {|a, s| a << s.to_a} end |
#to_hl7 ⇒ String
Generate a HL7 string from this message
32 33 34 35 |
# File 'lib/simple_hl7/message.rb', line 32 def to_hl7 separator_chars = get_named_segment('MSH').separator_chars @segments.map {|s| s.to_hl7(separator_chars)}.join(@segment_separator) end |
#to_llp ⇒ String
Generate a LLP string from this message Commonly used for transmitting HL7 messages via TCP/IP
41 42 43 |
# File 'lib/simple_hl7/message.rb', line 41 def to_llp "\x0b#{to_hl7}\x1c\r" end |