ruby-hl7 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +6 -0
- data/.travis.yml +15 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +37 -0
- data/NOTES.md +53 -0
- data/Rakefile +149 -0
- data/VERSION +1 -0
- data/VERSION.yml +4 -0
- data/examples/proxy_server.rb +26 -0
- data/lib/segment.rb +1 -1
- data/lib/segment_fields.rb +1 -1
- data/lib/segments/obr.rb +2 -2
- data/ruby-hl7.gemspec +44 -0
- data/spec/basic_parsing_spec.rb +320 -0
- data/spec/batch_parsing_spec.rb +52 -0
- data/spec/child_segment_spec.rb +66 -0
- data/spec/core_ext/date_time_spec.rb +43 -0
- data/spec/default_segment_spec.rb +31 -0
- data/spec/dynamic_segment_def_spec.rb +37 -0
- data/spec/err_segment_spec.rb +26 -0
- data/spec/evn_segment_spec.rb +23 -0
- data/spec/msa_segment_spec.rb +27 -0
- data/spec/msh_segment_spec.rb +28 -0
- data/spec/nk1_segment_spec.rb +26 -0
- data/spec/obr_segment_spec.rb +45 -0
- data/spec/obx_segment_spec.rb +46 -0
- data/spec/orc_segment_spec.rb +27 -0
- data/spec/pid_segment_spec.rb +70 -0
- data/spec/prd_segment_spec.rb +29 -0
- data/spec/pv1_segment_spec.rb +23 -0
- data/spec/rf1_segment_spec.rb +29 -0
- data/spec/segment_field_spec.rb +92 -0
- data/spec/segment_generator_spec.rb +32 -0
- data/spec/segment_list_storage_spec.rb +47 -0
- data/spec/segment_spec.rb +27 -0
- data/spec/sft_segment_spec.rb +26 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/speed_parsing_spec.rb +19 -0
- data/spec/spm_segment_spec.rb +26 -0
- metadata +52 -15
@@ -0,0 +1,52 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message do
|
5
|
+
context 'batch parsing' do
|
6
|
+
it 'should have a class method HL7::Message.parse_batch' do
|
7
|
+
HL7::Message.should respond_to(:parse_batch)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should raise an exception when parsing an empty batch' do
|
11
|
+
# :empty_batch message contains a valid batch envelope with no
|
12
|
+
# contents
|
13
|
+
lambda do
|
14
|
+
HL7::Message.parse_batch HL7MESSAGES[:empty_batch]
|
15
|
+
end.should raise_exception(HL7::ParseError, 'empty_batch_message')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should raise an exception when parsing a single message as a batch' do
|
19
|
+
lambda do
|
20
|
+
HL7::Message.parse_batch HL7MESSAGES[:realm_minimal_message]
|
21
|
+
end.should raise_exception(HL7::ParseError, 'badly_formed_batch_message')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should yield multiple messages from a valid batch' do
|
25
|
+
count = 0
|
26
|
+
HL7::Message.parse_batch(HL7MESSAGES[:realm_batch]) do |m|
|
27
|
+
count += 1
|
28
|
+
end
|
29
|
+
count.should == 2
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'String extension' do
|
35
|
+
before :all do
|
36
|
+
@batch_message = HL7MESSAGES[:realm_batch]
|
37
|
+
@plain_message = HL7MESSAGES[:realm_minimal_message]
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should respond_to :hl7_batch?' do
|
41
|
+
@batch_message.hl7_batch?.should be true
|
42
|
+
@plain_message.should respond_to(:hl7_batch?)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should return true when passed a batch message' do
|
46
|
+
@batch_message.should be_an_hl7_batch
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should return false when passed a plain message' do
|
50
|
+
@plain_message.should_not be_an_hl7_batch
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message do
|
5
|
+
context 'child segments' do
|
6
|
+
before :all do
|
7
|
+
@base = open( './test_data/obxobr.hl7' ).readlines
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'allows access to child segments' do
|
11
|
+
msg = HL7::Message.new @base
|
12
|
+
msg.should_not be_nil
|
13
|
+
msg[:OBR].should_not be_nil
|
14
|
+
msg[:OBR].length.should == 3
|
15
|
+
msg[:OBR][0].children.should_not be_nil
|
16
|
+
msg[:OBR][0].children.length.should == 6
|
17
|
+
msg[:OBR][1].children.should_not be_nil
|
18
|
+
msg[:OBR][1].children.length.should == 3
|
19
|
+
msg[:OBR][2].children.should_not be_nil
|
20
|
+
msg[:OBR][2].children.length.should == 1
|
21
|
+
msg[:OBX][0].children.should_not be_nil
|
22
|
+
msg[:OBX][0].children.length.should == 1
|
23
|
+
|
24
|
+
msg[:OBR][0].children.each do |x|
|
25
|
+
x.should_not be_nil
|
26
|
+
end
|
27
|
+
msg[:OBR][1].children.each do |x|
|
28
|
+
x.should_not be_nil
|
29
|
+
end
|
30
|
+
msg[:OBR][2].children.each do |x|
|
31
|
+
x.should_not be_nil
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'allows adding child segments' do
|
36
|
+
msg = HL7::Message.new @base
|
37
|
+
msg.should_not be_nil
|
38
|
+
msg[:OBR].should_not be_nil
|
39
|
+
ob = HL7::Message::Segment::OBR.new
|
40
|
+
ob.should_not be_nil
|
41
|
+
|
42
|
+
msg << ob
|
43
|
+
ob.children.should_not be_nil
|
44
|
+
ob.segment_parent.should_not be_nil
|
45
|
+
ob.segment_parent.should == msg
|
46
|
+
orig_cnt = msg.length
|
47
|
+
|
48
|
+
(1..4).each do |x|
|
49
|
+
m = HL7::Message::Segment::OBX.new
|
50
|
+
m.observation_value = "taco"
|
51
|
+
m.should_not be_nil
|
52
|
+
/taco/.match(m.to_s).should_not be_nil
|
53
|
+
ob.children << m
|
54
|
+
ob.children.length.should == x
|
55
|
+
m.segment_parent.should_not be_nil
|
56
|
+
m.segment_parent.should == ob
|
57
|
+
end
|
58
|
+
|
59
|
+
@base.should_not == msg.to_hl7
|
60
|
+
msg.length.should_not == orig_cnt
|
61
|
+
text_ver = msg.to_hl7
|
62
|
+
/taco/.match(text_ver).should_not be_nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Date do
|
4
|
+
|
5
|
+
subject{ Date.parse('2013-12-02').to_hl7 }
|
6
|
+
|
7
|
+
it "should respond to the HL7 timestamp" do
|
8
|
+
subject.should eq "20131202"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "to_hl7 for time related classes" do
|
13
|
+
|
14
|
+
let(:formated_time){ time_now.strftime('%Y%m%d%H%M%S') }
|
15
|
+
let(:fraction_3){ "." + sprintf('%06d', time_now.to_time.usec)[0, 3] }
|
16
|
+
let(:fraction_9){ "." + sprintf('%06d', time_now.to_time.usec) + ("0" * 3) }
|
17
|
+
|
18
|
+
shared_examples "a time to_hl7" do
|
19
|
+
context "without fraction" do
|
20
|
+
it { time_now.to_time.to_hl7.should eq formated_time }
|
21
|
+
end
|
22
|
+
|
23
|
+
context "with_fraction" do
|
24
|
+
it { time_now.to_time.to_hl7(3).should eq formated_time + fraction_3 }
|
25
|
+
|
26
|
+
it { time_now.to_time.to_hl7(9).should eq formated_time + fraction_9 }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Time do
|
31
|
+
let(:time_now){ Time.now }
|
32
|
+
|
33
|
+
it_should_behave_like "a time to_hl7"
|
34
|
+
end
|
35
|
+
|
36
|
+
describe DateTime do
|
37
|
+
let(:time_now){ DateTime.now }
|
38
|
+
|
39
|
+
it_should_behave_like "a time to_hl7"
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::Default do
|
5
|
+
context 'general' do
|
6
|
+
|
7
|
+
before :all do
|
8
|
+
@base_msa = "MSA|AR|ZZ9380 ERR"
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'stores an existing segment' do
|
12
|
+
seg = HL7::Message::Segment::Default.new( @base_msa )
|
13
|
+
seg.to_s.should == @base_msa
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'converts to a string' do
|
17
|
+
seg = HL7::Message::Segment::Default.new( @base_msa )
|
18
|
+
seg.to_s.should == @base_msa
|
19
|
+
seg.to_hl7.should == seg.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'creates a raw segment' do
|
23
|
+
seg = HL7::Message::Segment::Default.new
|
24
|
+
seg.e0 = "NK1"
|
25
|
+
seg.e1 = "INFO"
|
26
|
+
seg.e2 = "MORE INFO"
|
27
|
+
seg.e5 = "LAST INFO"
|
28
|
+
seg.to_s.should == "NK1|INFO|MORE INFO|||LAST INFO"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe 'dynamic segment definition' do
|
5
|
+
context 'general' do
|
6
|
+
it 'accepts a block with a parameter' do
|
7
|
+
seg = HL7::Message::Segment.new do |s|
|
8
|
+
s.e0 = "MSK"
|
9
|
+
s.e1 = "1234"
|
10
|
+
s.e2 = "5678"
|
11
|
+
end
|
12
|
+
|
13
|
+
seg.to_s.should == "MSK|1234|5678"
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'accepts a block without a parameter' do
|
17
|
+
seg = HL7::Message::Segment.new do
|
18
|
+
e0 "MSK"
|
19
|
+
e1 "1234"
|
20
|
+
e2 "5678"
|
21
|
+
end
|
22
|
+
|
23
|
+
seg.to_s.should == "MSK|1234|5678"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "doesn't pollute the caller namespace" do
|
27
|
+
seg = HL7::Message::Segment.new do |s|
|
28
|
+
s.e0 = "MSK"
|
29
|
+
s.e1 = "1234"
|
30
|
+
s.e2 = "5678"
|
31
|
+
end
|
32
|
+
|
33
|
+
lambda { e3 "TEST" }.should raise_error(NoMethodError)
|
34
|
+
seg.to_s.should == "MSK|1234|5678"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::ERR do
|
5
|
+
context 'general' do
|
6
|
+
before :all do
|
7
|
+
@base_err = 'ERR||OBR^1|100^Segment sequence error^HL70357|E|||Missing required OBR segment|Email help desk for further information on this error||||^NET^Internet^helpdesk@hl7.org'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'creates an ERR segment' do
|
11
|
+
lambda do
|
12
|
+
err = HL7::Message::Segment::ERR.new( @base_err )
|
13
|
+
err.should_not be_nil
|
14
|
+
err.to_s.should == @base_err
|
15
|
+
end.should_not raise_error
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'allows access to an ERR segment' do
|
19
|
+
lambda do
|
20
|
+
err = HL7::Message::Segment::ERR.new( @base_err )
|
21
|
+
err.severity.should == 'E'
|
22
|
+
err.error_location.should == 'OBR^1'
|
23
|
+
end.should_not raise_error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::EVN do
|
5
|
+
context 'general' do
|
6
|
+
before :all do
|
7
|
+
@base = "EVN|A04|20060705000000"
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'allows access to an EVN segment' do
|
11
|
+
evn = HL7::Message::Segment::EVN.new @base
|
12
|
+
evn.type_code.should == "A04"
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'allows creation of an EVN segment' do
|
16
|
+
evn = HL7::Message::Segment::EVN.new
|
17
|
+
evn.event_facility="A Facility"
|
18
|
+
evn.event_facility.should == 'A Facility'
|
19
|
+
evn.recorded_date = Date.new 2001,2,3
|
20
|
+
evn.recorded_date.should == "20010203"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
$: << '../lib'
|
3
|
+
require 'ruby-hl7'
|
4
|
+
|
5
|
+
describe HL7::Message::Segment::MSA do
|
6
|
+
context 'general' do
|
7
|
+
before :all do
|
8
|
+
@base_msa = "MSA|AR|ZZ9380 ERR"
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'creates an MSA segment' do
|
12
|
+
lambda do
|
13
|
+
msa = HL7::Message::Segment::MSA.new( @base_msa )
|
14
|
+
msa.should_not be_nil
|
15
|
+
msa.to_s.should == @base_msa
|
16
|
+
end.should_not raise_error
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'allows access to an MSA segment' do
|
20
|
+
lambda do
|
21
|
+
msa = HL7::Message::Segment::MSA.new( @base_msa )
|
22
|
+
msa.ack_code.should == "AR"
|
23
|
+
msa.control_id.should == "ZZ9380 ERR"
|
24
|
+
end.should_not raise_error
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::MSH do
|
5
|
+
context 'general' do
|
6
|
+
before :all do
|
7
|
+
@base = "MSH|^~\\&||ABCHS||AUSDHSV|20070101112951||ADT^A04^ADT_A01|12334456778890|P|2.5|||NE|NE|AU|ASCII|ENGLISH|||AN ORG|||RECNET.ORG"
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'allows access to an MSH segment' do
|
11
|
+
msh = HL7::Message::Segment::MSH.new @base
|
12
|
+
msh.enc_chars='^~\\&'
|
13
|
+
msh.version_id.should == '2.5'
|
14
|
+
msh.country_code.should=='AU'
|
15
|
+
msh.charset.should=='ASCII'
|
16
|
+
msh.sending_responsible_org.should=='AN ORG'
|
17
|
+
msh.receiving_network_address.should=='RECNET.ORG'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'allows creation of an MSH segment' do
|
21
|
+
msh = HL7::Message::Segment::MSH.new
|
22
|
+
msh.sending_facility="A Facility"
|
23
|
+
msh.sending_facility.should == 'A Facility'
|
24
|
+
msh.time = DateTime.iso8601('20010203T040506')
|
25
|
+
msh.time.should == '20010203040506'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::NK1 do
|
5
|
+
context 'general' do
|
6
|
+
before :all do
|
7
|
+
@base_nk1 = 'NK1|1|Mum^Martha^M^^^^L|MTH^Mother^HL70063^^^^2.5.1| 444 Home Street^Apt B^Ann Arbor^MI^99999^USA^H|^PRN^PH^^1^555^5552006'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'creates an NK1 segment' do
|
11
|
+
lambda do
|
12
|
+
nk1 = HL7::Message::Segment::NK1.new( @base_nk1 )
|
13
|
+
nk1.should_not be_nil
|
14
|
+
nk1.to_s.should == @base_nk1
|
15
|
+
end.should_not raise_error
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'allows access to an NK1 segment' do
|
19
|
+
lambda do
|
20
|
+
nk1 = HL7::Message::Segment::NK1.new( @base_nk1 )
|
21
|
+
nk1.name.should == 'Mum^Martha^M^^^^L'
|
22
|
+
nk1.phone_number.should == '^PRN^PH^^1^555^5552006'
|
23
|
+
end.should_not raise_error
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe HL7::Message::Segment::OBR do
|
5
|
+
context 'general' do
|
6
|
+
before :all do
|
7
|
+
@base = "OBR|2|^USSSA|0000000567^USSSA|37956^CT ABDOMEN^LN|||199405021550|||||||||||||0000763||||NMR|P||||||R/O TUMOR|202300&BAKER&MARK&E|||01&LOCHLEAR&JUDY|||||||||||||||123"
|
8
|
+
@obr = HL7::Message::Segment::OBR.new @base
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'allows access to an OBR segment' do
|
12
|
+
@obr.to_s.should == @base
|
13
|
+
@obr.e1.should == "2"
|
14
|
+
@obr.set_id.should == "2"
|
15
|
+
@obr.placer_order_number.should == "^USSSA"
|
16
|
+
@obr.filler_order_number.should == "0000000567^USSSA"
|
17
|
+
@obr.universal_service_id.should == "37956^CT ABDOMEN^LN"
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'allows modification of an OBR segment' do
|
21
|
+
@obr.set_id = 1
|
22
|
+
@obr.set_id.should == "1"
|
23
|
+
@obr.placer_order_number = "^DMCRES"
|
24
|
+
@obr.placer_order_number.should == "^DMCRES"
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'supports the diagnostic_serv_sect_id method' do
|
28
|
+
@obr.should respond_to(:diagnostic_serv_sect_id)
|
29
|
+
@obr.diagnostic_serv_sect_id.should == "NMR"
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'supports the result_status method' do
|
33
|
+
@obr.should respond_to(:result_status)
|
34
|
+
@obr.result_status.should == "P"
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'supports the reason_for_study method' do
|
38
|
+
@obr.reason_for_study.should == "R/O TUMOR"
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'supports the parent_universal_service_identifier method' do
|
42
|
+
@obr.parent_universal_service_identifier.should == "123"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'spec_helper'
|
3
|
+
describe HL7::Message::Segment::OBX do
|
4
|
+
context 'general' do
|
5
|
+
before :all do
|
6
|
+
@base = "OBX|1|NM|30341-2^Erythrocyte sedimentation rate^LN^815117^ESR^99USI^^^Erythrocyte sedimentation rate||10|mm/h^millimeter per hour^UCUM|0 to 17|N|0.1||F|||20110331140551-0800||Observer|||20110331150551-0800|^A Site|||Century Hospital^^^^^NIST-AA-1&2.16.840.1.113883.3.72.5.30.1&ISO^XX^^^987|2070 Test Park^^Los Angeles^CA^90067^USA^B^^06037|2343242^Knowsalot^Phil^J.^III^Dr.^^^NIST-AA-1&2.16.840.1.113883.3.72.5.30.1&ISO^L^^^DN"
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'allows access to an OBX segment' do
|
10
|
+
obx = HL7::Message::Segment::OBX.new @base
|
11
|
+
obx.set_id.should == "1"
|
12
|
+
obx.value_type.should == "NM"
|
13
|
+
obx.observation_id.should == "30341-2^Erythrocyte sedimentation rate^LN^815117^ESR^99USI^^^Erythrocyte sedimentation rate"
|
14
|
+
obx.observation_sub_id.should == ""
|
15
|
+
obx.observation_value.should == "10"
|
16
|
+
obx.units.should == "mm/h^millimeter per hour^UCUM"
|
17
|
+
obx.references_range.should == "0 to 17"
|
18
|
+
obx.abnormal_flags.should == "N"
|
19
|
+
obx.probability.should == "0.1"
|
20
|
+
obx.nature_of_abnormal_test.should == ""
|
21
|
+
obx.observation_result_status.should == "F"
|
22
|
+
obx.effective_date_of_reference_range.should == ""
|
23
|
+
obx.user_defined_access_checks.should == ""
|
24
|
+
obx.observation_date.should == "20110331140551-0800"
|
25
|
+
obx.producer_id.should == ""
|
26
|
+
obx.responsible_observer.should == "Observer"
|
27
|
+
obx.observation_site.should == '^A Site'
|
28
|
+
obx.observation_method.should == ""
|
29
|
+
obx.equipment_instance_id.should == ""
|
30
|
+
obx.analysis_date.should == "20110331150551-0800"
|
31
|
+
obx.performing_organization_name.should == "Century Hospital^^^^^NIST-AA-1&2.16.840.1.113883.3.72.5.30.1&ISO^XX^^^987"
|
32
|
+
obx.performing_organization_address.should == "2070 Test Park^^Los Angeles^CA^90067^USA^B^^06037"
|
33
|
+
obx.performing_organization_medical_director.should == "2343242^Knowsalot^Phil^J.^III^Dr.^^^NIST-AA-1&2.16.840.1.113883.3.72.5.30.1&ISO^L^^^DN"
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'allows creation of an OBX segment' do
|
37
|
+
lambda do
|
38
|
+
obx = HL7::Message::Segment::OBX.new
|
39
|
+
obx.value_type = "TESTIES"
|
40
|
+
obx.observation_id = "HR"
|
41
|
+
obx.observation_sub_id = "2"
|
42
|
+
obx.observation_value = "SOMETHING HAPPENned"
|
43
|
+
end.should_not raise_error
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|