ez7gen 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/ez7gen +6 -0
- data/lib/ez7gen.rb +23 -0
- data/lib/ez7gen/config/schema/2.4/2.4.HL7.xml +13904 -0
- data/lib/ez7gen/config/schema/2.4/VAZ2.4.HL7.xml +3085 -0
- data/lib/ez7gen/config/schema/2.4/added/coded-tables.xml +730 -0
- data/lib/ez7gen/config/schema/2.4/rules/2.4.HL7.yml +4 -0
- data/lib/ez7gen/config/schema/2.4/rules/VAZ2.4.HL7.yml +6 -0
- data/lib/ez7gen/config/schema/2.5/2.5.HL7.xml +10008 -0
- data/lib/ez7gen/config/schema/2.5/VAZ2.5.HL7.xml +7 -0
- data/lib/ez7gen/config/schema/2.5/added/coded-tables.xml +549 -0
- data/lib/ez7gen/config/schema/readme.txt +0 -0
- data/lib/ez7gen/config/templates/2.4/eiv table update-mfn_m01 20151201.xml +416 -0
- data/lib/ez7gen/config/templates/2.4/eiv table update-mfn_y01.xml +416 -0
- data/lib/ez7gen/config/templates/2.4/eiv-ec-MFN_X01_reg request 20160126.xml +659 -0
- data/lib/ez7gen/config/templates/2.4/examples/ADT_A60.txt +69 -0
- data/lib/ez7gen/config/templates/2.4/examples/eiv table update-mfn_m01 20151201.txt +21 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_dss_units-query_qbp_q13-qbp_q13.txt +26 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.txt +26 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_patient eligibility_response-rsp_k11-080714.txt +44 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.txt +21 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11.txt +42 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13.txt +49 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.txt +31 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.txt +21 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_esc_procedures_response_rtb_k13-rtb_k13.txt +40 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.txt +21 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.txt +21 -0
- data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patinet_problems_response_rsp_k11-rsp_k11.txt +33 -0
- data/lib/ez7gen/config/templates/2.4/examples/orur01rvbecv2.txt +31 -0
- data/lib/ez7gen/config/templates/2.4/examples/sqwm vitals-oru_ro1.txt +52 -0
- data/lib/ez7gen/config/templates/2.4/examples/vista sqwm-adt_a60.txt +40 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_dss_units_query_qbp_q13-qbp_q13.xml +312 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.xml +314 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_patient eligibility_response-rsp_k11-080714.xml +640 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml +284 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11-rsp_k11.xml +563 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml +365 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml +2172 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.xml +269 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml +354 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.xml +284 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml +282 -0
- data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml +565 -0
- data/lib/ez7gen/config/templates/2.4/orur01rvbecv2.xml +1529 -0
- data/lib/ez7gen/config/templates/2.4/sqwm vitals-oru_r01.xml +2975 -0
- data/lib/ez7gen/config/templates/2.4/vista sqwm-adt_a60.xml +1360 -0
- data/lib/ez7gen/message_factory.rb +142 -0
- data/lib/ez7gen/msg_error_handler.rb +33 -0
- data/lib/ez7gen/profile_parser.rb +321 -0
- data/lib/ez7gen/resources/properties-with-comments.yml +51 -0
- data/lib/ez7gen/resources/properties.yml +325 -0
- data/lib/ez7gen/service/2.4/dynamic_field_generator.rb +45 -0
- data/lib/ez7gen/service/2.4/field_generator.rb +1586 -0
- data/lib/ez7gen/service/2.5/field_generator.rb +75 -0
- data/lib/ez7gen/service/base_field_generator.rb +451 -0
- data/lib/ez7gen/service/segment_generator.rb +218 -0
- data/lib/ez7gen/service/segment_picker.rb +147 -0
- data/lib/ez7gen/service/template_generator.rb +213 -0
- data/lib/ez7gen/service/type_aware_field_generator.rb +1583 -0
- data/lib/ez7gen/service/utils.rb +75 -0
- data/lib/ez7gen/structure_parser.rb +331 -0
- data/lib/ez7gen/version.rb +38 -0
- data/test/Additional Tables with values_v1.1.txt +1653 -0
- data/test/added_shema_test.rb +143 -0
- data/test/app-tmp.rb +225 -0
- data/test/at.txt +1 -0
- data/test/backburner.zip +0 -0
- data/test/codes.txt +262 -0
- data/test/codes1.txt +1240 -0
- data/test/data_types_exploration_test.rb +213 -0
- data/test/dynamic_field_generated_test.rb +292 -0
- data/test/message_factory_24_custom_test.rb +648 -0
- data/test/message_factory_25_test.rb +50 -0
- data/test/message_factory_adm_test.rb +558 -0
- data/test/message_factory_gen_test.rb +63 -0
- data/test/message_factory_lab_test.rb +107 -0
- data/test/message_factory_pharm_test.rb +121 -0
- data/test/message_factory_template_24_test.rb +730 -0
- data/test/message_factory_test.rb +220 -0
- data/test/msg_error_handler_test.rb +59 -0
- data/test/profile_parser_test.rb +542 -0
- data/test/quick_run.rb +880 -0
- data/test/segment_generator_test.rb +656 -0
- data/test/segment_picker_test.rb +279 -0
- data/test/structrure_parser_test.rb +355 -0
- data/test/template_generator_test.rb +164 -0
- data/test/type_aware_field_generator_test.rb +582 -0
- data/test/utils_test.rb +97 -0
- metadata +215 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative "../lib/ez7gen/message_factory"
|
3
|
+
|
4
|
+
class MessageFactoryGenTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
# alias :orig_run :run
|
7
|
+
# def run(*args,&blk)
|
8
|
+
# 10.times { orig_run(*args,&blk) }
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# # set to true to write messages to a file
|
12
|
+
# @@PERSIST = true
|
13
|
+
|
14
|
+
@@VS =
|
15
|
+
[
|
16
|
+
{:std=>"2.4", :path=>"../test/test-config/schema/2.4", :profiles=>[{:doc=>"2.4.HL7", :name=>"2.4", :std=>"1", :path=>"../test/test-config/schema/2.4/2.4.HL7.xml"}, {:doc=>"VAZ2.4.HL7", :name=>"VAZ2.4", :description=>"2.4 schema with VA defined tables and Z segments", :base=>"2.4", :path=>"../test/test-config/schema/2.4/VAZ2.4.HL7.xml.bkp"}]},
|
17
|
+
{:std=>"2.5", :path=>"../test/test-config/schema/2.5", :profiles=>[{:doc=>"2.5.HL7", :name=>"2.5", :std=>"1", :path=>"../test/test-config/schema/2.5/2.5.HL7.xml"}, {:doc=>"TEST2.5.HL7", :name=>"TEST2.5", :description=>"2.5 mockup schema for testing", :base=>"2.4", :path=>"../test/test-config/schema/2.5/VAZ2.5.HL7.xml"}]}
|
18
|
+
]
|
19
|
+
|
20
|
+
# helper message to persist the
|
21
|
+
def saveMsg(event, hl7, ver)
|
22
|
+
if(defined?(@@PERSIST) && @@PERSIST) then
|
23
|
+
# File.open("../msg-samples/#{ver}/#{event}.txt", 'a') { |f| f.write(hl7); f.write("\n\n") }
|
24
|
+
File.write("../msg-samples/#{ver}/#{event}-#{Time.new.strftime('%Y%m%d%H%M%S%L')}.txt", hl7);
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# general messages
|
29
|
+
def test_OMG_O19
|
30
|
+
ver= '2.4.HL7'
|
31
|
+
event='OMG_O19'
|
32
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
33
|
+
saveMsg(event, hl7, ver)
|
34
|
+
puts hl7
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_ORG_O20
|
38
|
+
ver= '2.4.HL7'
|
39
|
+
event='ORG_O20'
|
40
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
41
|
+
saveMsg(event, hl7, ver)
|
42
|
+
puts hl7
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_OSQ_Q06
|
46
|
+
ver= '2.4.HL7'
|
47
|
+
event='OSQ_Q06'
|
48
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
49
|
+
saveMsg(event, hl7, ver)
|
50
|
+
puts hl7
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_OSR_Q06
|
54
|
+
ver= '2.4.HL7'
|
55
|
+
event='OSR_Q06'
|
56
|
+
# 'MSH~MSA~[~ERR~]~[~{~NTE~}~]~QRD~[~QRF~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~<~OBR~|~RQD~|~RQ1~|~RXO~|~ODS~|~ODT~>~[~{~NTE~}~]~[~{~CTI~}~]~}~]~[~DSC~]' />
|
57
|
+
|
58
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate() #loadFactor: 1
|
59
|
+
saveMsg(event, hl7, ver)
|
60
|
+
puts hl7
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative "../lib/ez7gen/message_factory"
|
3
|
+
|
4
|
+
class MessageFactoryLabTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
# alias :orig_run :run
|
7
|
+
# def run(*args,&blk)
|
8
|
+
# 10.times { orig_run(*args,&blk) }
|
9
|
+
# end
|
10
|
+
#
|
11
|
+
# #set to true to write messages to a file
|
12
|
+
# @@PERSIST = true
|
13
|
+
|
14
|
+
@@VS =
|
15
|
+
[
|
16
|
+
{:std=>"2.4", :path=>"../test/test-config/schema/2.4", :profiles=>[{:doc=>"2.4.HL7", :name=>"2.4", :std=>"1", :path=>"../test/test-config/schema/2.4/2.4.HL7.xml"}, {:doc=>"VAZ2.4.HL7", :name=>"VAZ2.4", :description=>"2.4 schema with VA defined tables and Z segments", :base=>"2.4", :path=>"../test/test-config/schema/2.4/VAZ2.4.HL7.xml.bkp"}]},
|
17
|
+
{:std=>"2.5", :path=>"../test/test-config/schema/2.5", :profiles=>[{:doc=>"2.5.HL7", :name=>"2.5", :std=>"1", :path=>"../test/test-config/schema/2.5/2.5.HL7.xml"}, {:doc=>"TEST2.5.HL7", :name=>"TEST2.5", :description=>"2.5 mockup schema for testing", :base=>"2.4", :path=>"../test/test-config/schema/2.5/VAZ2.5.HL7.xml"}]}
|
18
|
+
]
|
19
|
+
|
20
|
+
# helper message to persist the
|
21
|
+
def saveMsg(event, hl7, ver)
|
22
|
+
if(defined?(@@PERSIST) && @@PERSIST) then
|
23
|
+
# File.open("../msg-samples/#{ver}/#{event}.txt", 'a') { |f| f.write(hl7); f.write("\n\n") }
|
24
|
+
File.write("../msg-samples/#{ver}/#{event}-#{Time.new.strftime('%Y%m%d%H%M%S%L')}.txt", hl7);
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# lab messages
|
29
|
+
def test_ORU_R01
|
30
|
+
ver= '2.4.HL7'
|
31
|
+
event='ORU_R01'
|
32
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
33
|
+
saveMsg(event, hl7, ver)
|
34
|
+
puts hl7
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_OUL_R21
|
38
|
+
ver= '2.4.HL7'
|
39
|
+
event='OUL_R21'
|
40
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
41
|
+
saveMsg(event, hl7, ver)
|
42
|
+
puts hl7
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_QRY_R02
|
46
|
+
ver= '2.4.HL7'
|
47
|
+
event='QRY_R02'
|
48
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
49
|
+
saveMsg(event, hl7, ver)
|
50
|
+
puts hl7
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_ORF_R04
|
54
|
+
ver= '2.4.HL7'
|
55
|
+
event='ORF_R04'
|
56
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
57
|
+
saveMsg(event, hl7, ver)
|
58
|
+
puts hl7
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_OML_O21
|
62
|
+
ver= '2.4.HL7'
|
63
|
+
event='OML_O21'
|
64
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()
|
65
|
+
saveMsg(event, hl7, ver)
|
66
|
+
puts hl7
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_ORL_O22
|
70
|
+
ver= '2.4.HL7'
|
71
|
+
event='ORL_O22'
|
72
|
+
# MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~{~[~SAC~[~{~OBX~}~]~]~[~{~ORC~[~OBR~[~{~SAC~}~]~]~}~]~}~]~]
|
73
|
+
# MSH
|
74
|
+
# ~MSA~
|
75
|
+
# [~ERR~]
|
76
|
+
# ~[~{~NTE~}~]~
|
77
|
+
# [~
|
78
|
+
# [~PID~
|
79
|
+
# {~[~SAC~[~{~OBX~}~]~]
|
80
|
+
# ~[~
|
81
|
+
# {~ORC~
|
82
|
+
# [~OBR~[~{~SAC~}~]~]
|
83
|
+
# ~}
|
84
|
+
# ~]~
|
85
|
+
# }
|
86
|
+
# ~ ]
|
87
|
+
# ~]
|
88
|
+
# MSH
|
89
|
+
# ~MSA~
|
90
|
+
# [~ERR~]
|
91
|
+
# ~[~{~NTE~}~]~
|
92
|
+
# [~ group starts g1
|
93
|
+
# [
|
94
|
+
# ~PID~ g11
|
95
|
+
# {
|
96
|
+
# ~[ g12 group beg
|
97
|
+
# ~SAC~ g121
|
98
|
+
# [~{~OBX~}~] g122
|
99
|
+
# ~]~ g12 end
|
100
|
+
# ~[
|
101
|
+
# ~{~ORC~[~OBR~[~{~SAC~}~]~]~}~]~}~]~]
|
102
|
+
|
103
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event: event, version_store: @@VS}).generate()
|
104
|
+
saveMsg(event, hl7, ver)
|
105
|
+
puts hl7
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require_relative "../lib/ez7gen/message_factory"
|
3
|
+
|
4
|
+
class MessageFactoryPharmTest < Test::Unit::TestCase
|
5
|
+
alias :orig_run :run
|
6
|
+
def run(*args,&blk)
|
7
|
+
10.times { orig_run(*args,&blk) }
|
8
|
+
end
|
9
|
+
|
10
|
+
# set to true to write messages to a file
|
11
|
+
@@PERSIST = true
|
12
|
+
|
13
|
+
@@VS =
|
14
|
+
[
|
15
|
+
{:std=>"2.4", :path=>"../test/test-config/schema/2.4", :profiles=>[{:doc=>"2.4.HL7", :name=>"2.4", :std=>"1", :path=>"../test/test-config/schema/2.4/2.4.HL7.xml"}, {:doc=>"VAZ2.4.HL7", :name=>"VAZ2.4", :description=>"2.4 schema with VA defined tables and Z segments", :base=>"2.4", :path=>"../test/test-config/schema/2.4/VAZ2.4.HL7.xml.bkp"}]},
|
16
|
+
{:std=>"2.5", :path=>"../test/test-config/schema/2.5", :profiles=>[{:doc=>"2.5.HL7", :name=>"2.5", :std=>"1", :path=>"../test/test-config/schema/2.5/2.5.HL7.xml"}, {:doc=>"TEST2.5.HL7", :name=>"TEST2.5", :description=>"2.5 mockup schema for testing", :base=>"2.4", :path=>"../test/test-config/schema/2.5/VAZ2.5.HL7.xml"}]}
|
17
|
+
]
|
18
|
+
|
19
|
+
# helper message to persist the
|
20
|
+
def saveMsg(event, hl7, ver)
|
21
|
+
if(defined?(@@PERSIST) && @@PERSIST) then
|
22
|
+
# File.open("../msg-samples/#{ver}/#{event}.txt", 'a') { |f| f.write(hl7); f.write("\n\n") }
|
23
|
+
File.write("../msg-samples/#{ver}/#{event}-#{Time.new.strftime('%Y%m%d%H%M%S%L')}.txt", hl7);
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Pharmacy messages
|
28
|
+
|
29
|
+
def test_RRE_O12
|
30
|
+
#1 MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~[~RXE~{~RXR~}~[~{~RXC~}~]~]~}~]
|
31
|
+
ver= '2.4.HL7'
|
32
|
+
event='RRE_O12'
|
33
|
+
# loadFactor = 1
|
34
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
35
|
+
saveMsg(event, hl7, ver)
|
36
|
+
puts hl7
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_RRD_O14
|
40
|
+
#2 'MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~[~RXD~{~RXR~}~[~{~RXC~}~]~]~}~]'
|
41
|
+
ver= '2.4.HL7'
|
42
|
+
event='RRD_O14'
|
43
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
44
|
+
saveMsg(event, hl7, ver)
|
45
|
+
puts hl7
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_RRG_O16
|
49
|
+
#3 MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~[~RXG~{~RXR~}~[~{~RXC~}~]~]~}~]
|
50
|
+
ver= '2.4.HL7'
|
51
|
+
event='RRG_O16'
|
52
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
53
|
+
saveMsg(event, hl7, ver)
|
54
|
+
puts hl7
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_RRA_O18
|
58
|
+
#4 MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~[~{~RXA~}~RXR~]~}~]
|
59
|
+
ver= '2.4.HL7'
|
60
|
+
event='RRA_O18'
|
61
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
62
|
+
saveMsg(event, hl7, ver)
|
63
|
+
puts hl7
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_ORP_O10
|
67
|
+
#5 definition='MSH~MSA~[~ERR~]~[~{~NTE~}~]~[~[~PID~[~{~NTE~}~]~]~{~ORC~[~RXO~[~{~NTE~}~]~{~RXR~}~[~{~RXC~}~]~[~{~NTE~}~]~]~}~]' />
|
68
|
+
ver= '2.4.HL7'
|
69
|
+
event='ORP_O10'
|
70
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, loadFactor: 1}).generate()#loadFactor: 1
|
71
|
+
saveMsg(event, hl7, ver)
|
72
|
+
puts hl7
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_OMP_O09
|
76
|
+
#6 'MSH~[~{~NTE~}~]~[~PID~[~PD1~]~[~{~NTE~}~]~[~PV1~[~PV2~]~]~[~{~IN1~[~IN2~]~[~IN3~]~}~]~[~GT1~]~[~{~AL1~}~]~]~{~ORC~RXO~[~{~NTE~}~]~{~RXR~}~[~{~RXC~}~[~{~NTE~}~]~]~[~{~OBX~[~{~NTE~}~]~}~]~[~{~FT1~}~]~[~BLG~]~}' />
|
77
|
+
ver= '2.4.HL7'
|
78
|
+
event='OMP_O09'
|
79
|
+
mf = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS})#loadFactor: 1
|
80
|
+
hl7 = mf.generate()
|
81
|
+
saveMsg(event, hl7, ver)
|
82
|
+
puts hl7
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_RDE_O11
|
86
|
+
#7 MSH~[~{~NTE~}~]~[~PID~[~PD1~]~[~{~NTE~}~]~[~PV1~[~PV2~]~]~[~{~IN1~[~IN2~]~[~IN3~]~}~]~[~GT1~]~[~{~AL1~}~]~]~{~ORC~[~RXO~[~{~NTE~}~]~{~RXR~}~[~{~RXC~}~[~{~NTE~}~]~]~]~RXE~{~RXR~}~[~{~RXC~}~]~[~{~OBX~[~{~NTE~}~]~}~]~[~{~CTI~}~]~}
|
87
|
+
ver= '2.4.HL7'
|
88
|
+
event='RDE_O11'
|
89
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
90
|
+
saveMsg(event, hl7, ver)
|
91
|
+
puts hl7
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_RDS_O13
|
95
|
+
#8 'MSH~[~{~NTE~}~]~[~PID~[~PD1~]~[~{~NTE~}~]~[~{~AL1~}~]~[~PV1~[~PV2~]~]~]~{~ORC~[~RXO~[~{~NTE~}~{~RXR~}~[~{~RXC~}~[~{~NTE~}~]~]~]~]~[~RXE~{~RXR~}~[~{~RXC~}~]~]~RXD~{~RXR~}~[~{~RXC~}~]~[~{~OBX~[~{~NTE~}~]~}~]~[~{~FT1~}~]~}
|
96
|
+
ver= '2.4.HL7'
|
97
|
+
event='RDS_O13'
|
98
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
99
|
+
saveMsg(event, hl7, ver)
|
100
|
+
puts hl7
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_RGV_O15
|
104
|
+
#9 'MSH~[~{~NTE~}~]~[~PID~[~{~NTE~}~]~[~{~AL1~}~]~[~PV1~[~PV2~]~]~]~{~ORC~[~RXO~[~{~NTE~}~{~RXR~}~[~{~RXC~}~[~{~NTE~}~]~]~]~]~[~RXE~{~RXR~}~[~{~RXC~}~]~]~{~RXG~{~RXR~}~[~{~RXC~}~]~{~[~OBX~]~[~{~NTE~}~]~}~}~}
|
105
|
+
ver= '2.4.HL7'
|
106
|
+
event='RGV_O15'
|
107
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
108
|
+
saveMsg(event, hl7, ver)
|
109
|
+
puts hl7
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_RAS_O17
|
113
|
+
#10 MSH~[~{~NTE~}~]~[~PID~[~PD1~]~[~{~NTE~}~]~[~{~AL1~}~]~[~PV1~[~PV2~]~]~]~{~ORC~[~RXO~[~{~NTE~}~{~RXR~}~[~{~RXC~}~[~{~NTE~}~]~]~]~]~[~RXE~{~RXR~}~[~{~RXC~}~]~]~{~RXA~}~RXR~{~[~OBX~[~{~NTE~}~]~]~}~[~{~CTI~}~]~}
|
114
|
+
ver= '2.4.HL7'
|
115
|
+
event='RAS_O17'
|
116
|
+
hl7 = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS}).generate()#loadFactor: 1
|
117
|
+
saveMsg(event, hl7, ver)
|
118
|
+
puts hl7
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
@@ -0,0 +1,730 @@
|
|
1
|
+
# require "minitest/autorun"
|
2
|
+
require 'test/unit'
|
3
|
+
require_relative "../lib/ez7gen/message_factory"
|
4
|
+
require_relative "../lib/ez7gen/version"
|
5
|
+
|
6
|
+
class MessageFactoryTemplate24Test < Test::Unit::TestCase
|
7
|
+
|
8
|
+
|
9
|
+
# alias :orig_run :run
|
10
|
+
# def run(*args,&blk)
|
11
|
+
# 10.times { orig_run(*args,&blk) }
|
12
|
+
# end
|
13
|
+
|
14
|
+
# set to true to write messages to a file
|
15
|
+
# @@PERSIST = true
|
16
|
+
|
17
|
+
@@VS =
|
18
|
+
[
|
19
|
+
# {:std=>"2.4", :path=>"../test/test-config/schema/2.4", :profiles=>[{:doc=>"2.4.HL7", :name=>"2.4", :std=>"1", :path=>"../test/test-config/schema/2.4/2.4.HL7.xml"}, {:doc=>"VAZ2.4.HL7", :name=>"VAZ2.4", :description=>"2.4 schema with VA defined tables and Z segments", :base=>"2.4", :path=>"../test/test-config/schema/2.4/VAZ2.4.HL7.xml.bkp"}]},
|
20
|
+
{:std=>"2.4", :path=>"../test/test-config/schema/2.4", :profiles=>[{:doc=>"2.4.HL7", :name=>"2.4", :std=>"1", :path=>"../test/test-config/schema/2.4/2.4.HL7.xml"}, {:doc=>"VAZ2.4.HL7", :name=>"VAZ2.4", :description=>"2.4 schema with VA defined tables and Z segments", :base=>"2.4", :path=>"../test/test-config/schema/2.4/VAZ2.4.HL7.xml"}]},
|
21
|
+
{:std=>"2.5", :path=>"../test/test-config/schema/2.5", :profiles=>[{:doc=>"2.5.HL7", :name=>"2.5", :std=>"1", :path=>"../test/test-config/schema/2.5/2.5.HL7.xml"}, {:doc=>"TEST2.5.HL7", :name=>"TEST2.5", :description=>"2.5 mockup schema for testing", :base=>"2.4", :path=>"../test/test-config/schema/2.5/VAZ2.5.HL7.xml"}]}
|
22
|
+
]
|
23
|
+
|
24
|
+
|
25
|
+
# helper message to persist the
|
26
|
+
def saveMsg(event, hl7, ver)
|
27
|
+
if(defined?(@@PERSIST) && @@PERSIST) then
|
28
|
+
# File.open("../msg-samples/#{ver}/#{event}.txt", 'a') { |f| f.write(hl7); f.write("\n\n") }
|
29
|
+
File.write("../msg-samples/#{ver}/#{event}-#{Time.new.strftime('%Y%m%d%H%M%S%L')}.txt", hl7);
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# Message Factory Stub to set usage to required and optional elements
|
34
|
+
class MessageFactoryStub < MessageFactory
|
35
|
+
def generate_message_from_template(parsers, templatePath, useExVal)
|
36
|
+
templatePath.sub!('ez7gen-web/config', '/test/test-config')
|
37
|
+
|
38
|
+
hl7Msg = HL7::Message.new
|
39
|
+
templateGenerator = TemplateGenerator.new(templatePath, parsers)
|
40
|
+
templateGenerator.class.const_set('USAGES_REQ', ['R','RE']) # force to build both for testing
|
41
|
+
return templateGenerator.generate(hl7Msg, useExVal)
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# ADT_A60, QBP_Q11(3), RTB_K13 (2), DFT_P03, ACK_P03, ORU_R01(2)
|
47
|
+
def test_ADT_A60_no_ExValue # Error SAD as type
|
48
|
+
# Testing started at 10:33 AM ...
|
49
|
+
# MSH|173|CANNF|^969^ISO|CANBC|^463^DNS|625||OML^U07^OUL_R21|979|T|2.0|||AL|AL
|
50
|
+
# EVN||749
|
51
|
+
# PID|||834^^NPI^CANAB&&^AM^477||419^305^742||547|F|||^^616^982||||||CNF^Confucian|||||H^^ATC^^^FDDC
|
52
|
+
# IAM|7784|MA|650|SV||D|944
|
53
|
+
# ---- ADT_A60 using tables ---
|
54
|
+
#
|
55
|
+
# NameError: undefined method `SAD' for class `TypeAwareFieldGenerator'
|
56
|
+
# /Users/romansova/RubymineProjects/ez7gen/lib/ez7gen/service/template_generator.rb:126:in `method'
|
57
|
+
# /Users/romansova/RubymineProjects/ez7gen/lib/ez7gen/service/template_generator.rb:126:in `build_partial_field_data'
|
58
|
+
# /Users/romansova/RubymineProjects/ez7gen/lib/ez7gen/service/template_generator.rb:104:in `process_partials'
|
59
|
+
|
60
|
+
# ver='vaz2.4'
|
61
|
+
# view xml as grid http://xmlgrid.net/
|
62
|
+
ver='VAZ2.4.HL7'
|
63
|
+
event='ADT_A60'
|
64
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60.xml'})
|
65
|
+
# factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60.xml'})
|
66
|
+
# switch template path to test dir
|
67
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista sqwm-adt_a60.xml"
|
68
|
+
hl7 = factory.generate() # useExValue = false by default
|
69
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
70
|
+
|
71
|
+
puts hl7
|
72
|
+
assert_equal 'MSH', hl7[0].e0
|
73
|
+
assert_equal 'EVN', hl7[1].e0
|
74
|
+
assert_equal 'PID', hl7[2].e0
|
75
|
+
assert_equal 'IAM', hl7[3].e0
|
76
|
+
|
77
|
+
puts "---- #{event} using tables ---"
|
78
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60.xml'})
|
79
|
+
hl7 = factory.generate(false)
|
80
|
+
puts hl7
|
81
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_ADT_A60_ExValue
|
85
|
+
# ver='vaz2.4'
|
86
|
+
# view xml as grid http://xmlgrid.net/
|
87
|
+
ver='VAZ2.4.HL7'
|
88
|
+
event='ADT_A60'
|
89
|
+
useExValue = true
|
90
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60.xml'})
|
91
|
+
# switch template path to test dir
|
92
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista sqwm-adt_a60.xml"
|
93
|
+
|
94
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista+sqwm-adt_a60 (1).xml"
|
95
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista+sqwm-adt_a60 (2).xml"
|
96
|
+
#factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS})
|
97
|
+
hl7 = factory.generate(useExValue)
|
98
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
99
|
+
|
100
|
+
puts hl7
|
101
|
+
assert_equal 'MSH|^~\&|VISTA SQWM|442^HL7.CHEYENNE.MED.VA.GOV:5274^DNS|SQWM|442^VAAUSSQWAPP80:8010^DNS|20040328134602.1234+0600||ADT^A60^ADT_A60|442 744187|T|2.4|||AL|NE', hl7[0].to_s
|
102
|
+
assert_equal 'EVN||20140325164408-0400', hl7[1].to_s
|
103
|
+
assert_equal 'PID|||7209590^4^M10^USCDC&&L^PI^USCDC^20140325||SQWMGW^ALLERGIC^ONE||19880301|M||2054-5-SLF^^UPC^2054-5^^UPC|100 MAIN STREET^^PORTLAND^OR^76100|||||M|29|||||2186-5-SLF^^ACR^2186-5^^ART', hl7[2].to_s
|
104
|
+
assert_equal 'IAM|2|F|GLUTENS|MO|DROWSY|U|168;GMRD(120.82,', hl7[3].to_s
|
105
|
+
|
106
|
+
puts "---- #{event} using tables ---"
|
107
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60.xml'})
|
108
|
+
hl7 = factory.generate(false)
|
109
|
+
puts hl7
|
110
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_ADT_A60_ExValue_Race
|
114
|
+
# ver='vaz2.4'
|
115
|
+
# view xml as grid http://xmlgrid.net/
|
116
|
+
ver='VAZ2.4.HL7'
|
117
|
+
event='ADT_A60'
|
118
|
+
useExValue = true
|
119
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60_race.xml'})
|
120
|
+
# factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60_race.xml'})
|
121
|
+
# switch template path to test dir
|
122
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista sqwm-adt_a60_race.xml"
|
123
|
+
#factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS})
|
124
|
+
|
125
|
+
hl7 = factory.generate(useExValue)
|
126
|
+
# saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
127
|
+
puts hl7
|
128
|
+
assert_equal 'MSH|^~\&|VISTA SQWM|442^HL7.CHEYENNE.MED.VA.GOV:5274^DNS|SQWM|442^VAAUSSQWAPP80:8010^DNS|20040328134602.1234+0600||ADT^A60^ADT_A60|442 744187|T|2.4|||AL|NE', hl7[0].to_s
|
129
|
+
assert_equal 'EVN||20140325164408-0400', hl7[1].to_s
|
130
|
+
assert_equal 'PID|||7209590^4^M10^USCDC&&L^PI^USCDC^20140325||SQWMGW^ALLERGIC^ONE||19880301|M||2054-5-SLF^^UPC^2054-5^^UPC|100 MAIN STREET^^PORTLAND^OR^76100|||||M|29|||||2186-5-SLF^^ACR^2186-5^^ART', hl7[2].to_s
|
131
|
+
assert_equal 'IAM|2|F|GLUTENS|MO|DROWSY|U|168;GMRD(120.82,', hl7[3].to_s
|
132
|
+
|
133
|
+
puts "---- #{event} using tables ---"
|
134
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'vista sqwm-adt_a60_race.xml'})
|
135
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/vista sqwm-adt_a60_race.xml"
|
136
|
+
hl7 = factory.generate(false)
|
137
|
+
puts hl7
|
138
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_QBP_Q11_diagnosis
|
142
|
+
# ver='vaz2.4'
|
143
|
+
# view xml as grid http://xmlgrid.net/
|
144
|
+
ver='VAZ2.4.HL7'
|
145
|
+
event='QBP_Q11'
|
146
|
+
useExValue = true
|
147
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml'})
|
148
|
+
# switch template path to test dir
|
149
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml"
|
150
|
+
|
151
|
+
hl7 = factory.generate(useExValue)
|
152
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
153
|
+
puts hl7
|
154
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20140320145617||QBP^Q11^QBP_Q11|500000000000011828|T|2.4'
|
155
|
+
assert_equal hl7[1].to_s, 'QPD|Q11^SMDIAGNOSES^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMDiagnoses^pain^757.01'
|
156
|
+
assert_equal hl7[2].to_s, 'RCP|I'
|
157
|
+
|
158
|
+
puts "---- #{event} using tables ---"
|
159
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml'})
|
160
|
+
# switch template path to test dir
|
161
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml"
|
162
|
+
|
163
|
+
hl7 = factory.generate(false)
|
164
|
+
puts hl7
|
165
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_QBP_Q11_patient_eclass
|
169
|
+
# ver='vaz2.4'
|
170
|
+
# view xml as grid http://xmlgrid.net/
|
171
|
+
ver='VAZ2.4.HL7'
|
172
|
+
event='QBP_Q11'
|
173
|
+
useExValue = true
|
174
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.xml'})
|
175
|
+
# switch template path to test dir
|
176
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.xml"
|
177
|
+
|
178
|
+
hl7 = factory.generate(useExValue)
|
179
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
180
|
+
puts hl7
|
181
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20140320145617||QBP^Q11^QBP_Q11|500000000000011828|T|2.4'
|
182
|
+
assert_equal hl7[1].to_s, 'QPD|Q11^SMPATIENTECLASS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMPatientEClass^1012662214V507576^3489'
|
183
|
+
assert_equal hl7[2].to_s, 'RCP|I'
|
184
|
+
|
185
|
+
puts "---- #{event} using tables ---"
|
186
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.xml'})
|
187
|
+
hl7 = factory.generate(false)
|
188
|
+
puts hl7
|
189
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
def test_QBP_Q11_patient_problems
|
194
|
+
# ver='vaz2.4'
|
195
|
+
# view xml as grid http://xmlgrid.net/
|
196
|
+
ver='VAZ2.4.HL7'
|
197
|
+
event='QBP_Q11'
|
198
|
+
useExValue = true
|
199
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml'})
|
200
|
+
# switch template path to test dir
|
201
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml"
|
202
|
+
|
203
|
+
hl7 = factory.generate(useExValue)
|
204
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
205
|
+
puts hl7
|
206
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20140320145617||QBP^Q11^QBP_Q11|500000000000011828|T|2.4'
|
207
|
+
assert_equal hl7[1].to_s, 'QPD|Q11^PATIENT PROBLEMS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMPatientProblems^1012662214V507576'
|
208
|
+
assert_equal hl7[2].to_s, 'RCP|I'
|
209
|
+
|
210
|
+
puts "---- #{event} using tables ---"
|
211
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml'})
|
212
|
+
# switch template path to test dir
|
213
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml"
|
214
|
+
|
215
|
+
hl7 = factory.generate(false)
|
216
|
+
puts hl7
|
217
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
218
|
+
|
219
|
+
end
|
220
|
+
|
221
|
+
# RTB_K13(2)
|
222
|
+
def test_RTB_K13_dss_units
|
223
|
+
# ver='vaz2.4'
|
224
|
+
# view xml as grid http://xmlgrid.net/
|
225
|
+
ver='VAZ2.4.HL7'
|
226
|
+
event='QBP_Q11'
|
227
|
+
useExValue = true
|
228
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml'})
|
229
|
+
# switch template path to test dir
|
230
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml"
|
231
|
+
|
232
|
+
hl7 = factory.generate(useExValue)
|
233
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
234
|
+
puts hl7
|
235
|
+
|
236
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20140320155617-0500||RTB^K13^RTB_K13|99146086191|T|2.4'
|
237
|
+
assert_equal hl7[1].to_s, 'MSA|AA|500000000000011828|INVALID DATA LINK'
|
238
|
+
assert_equal hl7[2].to_s, 'QAK|B350C65E-B069-11E3-9CA9-50569E013100|OK|Q13^SMDSSUNITS^HL70471|4|4|0'
|
239
|
+
assert_equal hl7[3].to_s, 'QPD|Q13^SMDSSUNITS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMDSSUnitsByProviderAndClinic^3878^59788'
|
240
|
+
assert_equal hl7[4].to_s, 'RDF|6|Location IEN^NM^10936'
|
241
|
+
assert_equal hl7[5].to_s, 'RDT|10936|SLC4 TEST LAB|67|SM DENTAL HISTORICAL SLC4|0|N'
|
242
|
+
|
243
|
+
puts "---- #{event} using tables ---"
|
244
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml'})
|
245
|
+
# switch template path to test dir
|
246
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml"
|
247
|
+
|
248
|
+
hl7 = factory.generate(false)
|
249
|
+
puts hl7
|
250
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
251
|
+
|
252
|
+
end
|
253
|
+
|
254
|
+
def test_RTB_K13_procedures
|
255
|
+
# ver='vaz2.4'
|
256
|
+
# view xml as grid http://xmlgrid.net/
|
257
|
+
ver='VAZ2.4.HL7'
|
258
|
+
event='QBP_Q11'
|
259
|
+
useExValue = true
|
260
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml'})
|
261
|
+
# switch template path to test dir
|
262
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml"
|
263
|
+
|
264
|
+
hl7 = factory.generate(useExValue)
|
265
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
266
|
+
puts hl7
|
267
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20140320155617-0500||RTB^K13^RTB_K13|99146086191|T|2.4'
|
268
|
+
assert_equal hl7[1].to_s, 'MSA|AA|500000000000011828|INVALID DATA LINK'
|
269
|
+
assert_equal hl7[2].to_s, 'QAK|B350C65E-B069-11E3-9CA9-50569E013100|OK|Q13^SMECSPROCEDURES^HL70471|4|4|0'
|
270
|
+
assert_equal hl7[3].to_s, 'QPD|Q13^SMECSPROCEDURES^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMECSProcedures^10936^66'
|
271
|
+
assert_equal hl7[4].to_s, 'RDF|4|ECProcIEN^ST^30'
|
272
|
+
assert_equal hl7[5].to_s, 'RDT|3708;EC(725,|SECURE MSGEVAL NONMD|SECURE MSGEVAL MD|MD USE ONLY'
|
273
|
+
|
274
|
+
puts "---- #{event} using tables ---"
|
275
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml'})
|
276
|
+
# switch template path to test dir
|
277
|
+
#factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml"
|
278
|
+
|
279
|
+
hl7 = factory.generate(false)
|
280
|
+
puts hl7
|
281
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
282
|
+
end
|
283
|
+
|
284
|
+
# DFT_P03
|
285
|
+
def test_DFT_P03
|
286
|
+
# ver='vaz2.4'
|
287
|
+
# view xml as grid http://xmlgrid.net/
|
288
|
+
ver='VAZ2.4.HL7'
|
289
|
+
event='DFT_P03'
|
290
|
+
useExValue = true
|
291
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml'})
|
292
|
+
# switch template path to test dir
|
293
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml"
|
294
|
+
|
295
|
+
hl7 = factory.generate(useExValue)
|
296
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
297
|
+
puts hl7
|
298
|
+
|
299
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20040328134602.1234+0600||DFT^P03^DFT_P03|500000000000011828|T|2.4'
|
300
|
+
assert_equal hl7[1].to_s, 'EVN|P03|20040328134602.1234+0600|||3878||^9876'
|
301
|
+
assert_equal hl7[2].to_s, 'PID|||1012662214V507576'
|
302
|
+
assert_equal hl7[3].to_s, 'PV1||O|^^^&100||||97832'
|
303
|
+
assert_equal hl7[4].to_s, 'ZEL|0001|1|||||||ALLIED VETERAN|V||||||||E|E|E|||Y||||||||||||500|||||E||E||Y'
|
304
|
+
|
305
|
+
puts "---- #{event} using tables ---"
|
306
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml'})
|
307
|
+
# switch template path to test dir
|
308
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml"
|
309
|
+
|
310
|
+
hl7 = factory.generate(false)
|
311
|
+
puts hl7
|
312
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
313
|
+
end
|
314
|
+
|
315
|
+
# ACK_P03
|
316
|
+
def test_ACK_P03
|
317
|
+
# ver='vaz2.4'
|
318
|
+
# view xml as grid http://xmlgrid.net/
|
319
|
+
ver='VAZ2.4.HL7'
|
320
|
+
event='ACK_P03'
|
321
|
+
useExValue = true
|
322
|
+
# use message factory stub to generate all required adn optional elements: R and RE
|
323
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.xml'})
|
324
|
+
# switch template path to test dir
|
325
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.xml"
|
326
|
+
|
327
|
+
hl7 = factory.generate(useExValue)
|
328
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
329
|
+
puts hl7
|
330
|
+
|
331
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV ECS|989^DAYT29.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20140611091820-0400||ACK^P03^DFT_P03|98958869583|T|2.4|||AL|NE'
|
332
|
+
assert_equal hl7[1].to_s, 'MSA|AA|300000000000016958|INVALID DATA LINK'
|
333
|
+
#assert_equal hl7[2].to_s, 'ERR|6^5^8^0&Record Filed|69621|6658665'
|
334
|
+
|
335
|
+
puts "---- #{event} using tables ---"
|
336
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.xml'})
|
337
|
+
|
338
|
+
hl7 = factory.generate(false)
|
339
|
+
puts hl7
|
340
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
341
|
+
end
|
342
|
+
|
343
|
+
# ORU_R01(2)
|
344
|
+
def test_ORU_R01_vitals
|
345
|
+
# ver='vaz2.4'
|
346
|
+
# view xml as grid http://xmlgrid.net/
|
347
|
+
ver='VAZ2.4.HL7'
|
348
|
+
event='ORU_R01'
|
349
|
+
useExValue = true
|
350
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'sqwm vitals-oru_r01.xml'})
|
351
|
+
# switch template path to test dir
|
352
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/sqwm vitals-oru_r01.xml"
|
353
|
+
|
354
|
+
hl7 = factory.generate(useExValue)
|
355
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
356
|
+
puts hl7
|
357
|
+
|
358
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|SQWM|442|SQWM VITALS|442|20040328134602-0600||ORU^R01^ORU_R01|12345|P|2.4|||AL|NE'
|
359
|
+
assert_equal hl7[1].to_s, 'PID|1||7209623^^^USVHA&&442^PI^VA FACILITY ID&442||LASTNAME^FIRSTNAME^^JR^DR||20040328134602.1234'
|
360
|
+
assert_equal hl7[2].to_s, 'PV1|1|O|SURG CLINIC'
|
361
|
+
assert_equal hl7[3].to_s,'OBR|1|||VITALS|||20040328134602.1234'
|
362
|
+
assert_equal hl7[4].to_s, 'OBX|1|ST|BP||71|KG|||||F|||20040328134602.1234+0600||12345679^NURSELASTNM^NURSEFIRSTNM^^III^MS.'
|
363
|
+
|
364
|
+
puts "---- #{event} using tables ---"
|
365
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'sqwm vitals-oru_r01.xml'})
|
366
|
+
hl7 = factory.generate(false)
|
367
|
+
puts hl7
|
368
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
369
|
+
end
|
370
|
+
|
371
|
+
def test_ORU_R01_rvbecv
|
372
|
+
# ver='vaz2.4'
|
373
|
+
# view xml as grid http://xmlgrid.net/
|
374
|
+
ver='VAZ2.4.HL7'
|
375
|
+
event='ORU_R01'
|
376
|
+
useExValue = true
|
377
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'orur01rvbecv2.xml'})
|
378
|
+
# switch template path to test dir
|
379
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/orur01rvbecv2.xml"
|
380
|
+
|
381
|
+
hl7 = factory.generate(useExValue)
|
382
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
383
|
+
puts hl7
|
384
|
+
|
385
|
+
# template has variations
|
386
|
+
#assert_equal hl7[0].to_s, 'MSH|466|||CANON|USCDC|20040328134602.1234+0600||ORU^R01|123|P|2.4|2||AL|NE'
|
387
|
+
#assert_equal hl7[1].to_s, 'OBR|1|2952012345^CANNS||TAS|||||||||||WNDA|||ProVueSanDiego'
|
388
|
+
assert_equal hl7[2].to_s, 'OBX|1||AntiA||4+||||||F|||20040328134602.1234+0600||vhaishvbecs1'
|
389
|
+
|
390
|
+
|
391
|
+
puts "---- #{event} using tables ---"
|
392
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'orur01rvbecv2.xml'})
|
393
|
+
hl7 = factory.generate(false)
|
394
|
+
puts hl7
|
395
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
396
|
+
end
|
397
|
+
|
398
|
+
# black listed
|
399
|
+
# MFN_M01, QBP_Q13(dss units,ecs procedures), RSP_K11 (patient eligibility,diagnosis,problems)
|
400
|
+
def test_MFN_M01
|
401
|
+
# ver='vaz2.4'
|
402
|
+
# view xml as grid http://xmlgrid.net/
|
403
|
+
ver='VAZ2.4.HL7'
|
404
|
+
event='MFN_M01'
|
405
|
+
useExValue = true
|
406
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'eiv table update-mfn_m01 20151201.xml'})
|
407
|
+
# switch template path to test dir
|
408
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/eiv table update-mfn_m01 20151201.xml"
|
409
|
+
|
410
|
+
hl7 = factory.generate(useExValue)
|
411
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
412
|
+
puts hl7
|
413
|
+
|
414
|
+
# template has variations
|
415
|
+
#assert_equal hl7[0].to_s, 'MSH|^~\&|CANNB|^IIV.VITRIA-EDI-TEST.AAC.VA.GOV^DNS|CANMB|^ISPA07.FO-BAYPINES.MED.VA.GOV^DNS|20130715114123-0006^D||MFN^M01|137390648330947|T|2.4|||AL|NE|USA'
|
416
|
+
assert_equal hl7[1].to_s, 'MFI|350.9^IB SITE PARAMETERS||UPD|||NE'
|
417
|
+
assert_equal hl7[2].to_s, 'MFE|MAD|653|20130715114123-0006^D|180^51.01|CE'
|
418
|
+
|
419
|
+
puts "---- #{event} using tables ---"
|
420
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'eiv table update-mfn_m01 20151201.xml'})
|
421
|
+
hl7 = factory.generate(false)
|
422
|
+
puts hl7
|
423
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
424
|
+
end
|
425
|
+
|
426
|
+
#QBP_Q13(dss units,ecs procedures)
|
427
|
+
def test_QBP_Q13_unts
|
428
|
+
# ver='vaz2.4'
|
429
|
+
# view xml as grid http://xmlgrid.net/
|
430
|
+
ver='VAZ2.4.HL7'
|
431
|
+
event='QBP_Q13'
|
432
|
+
useExValue = true
|
433
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_dss_units_query_qbp_q13-qbp_q13.xml'})
|
434
|
+
# switch template path to test dir
|
435
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_dss_units_query_qbp_q13-qbp_q13.xml"
|
436
|
+
|
437
|
+
hl7 = factory.generate(useExValue)
|
438
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
439
|
+
puts hl7
|
440
|
+
|
441
|
+
# template has variations
|
442
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20140320145617||QBP^Q13^QBP_Q13|500000000000011828|T|2.4'
|
443
|
+
assert_equal hl7[1].to_s, 'QPD|Q13^SMDSSUNITS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMDSSUnitsByProviderAndClinic^3878^59788'
|
444
|
+
assert_equal hl7[2].to_s, 'RDF|6|Location IEN^NM^10936'
|
445
|
+
# assert_equal hl7[2].to_s, 'RCP|I'
|
446
|
+
|
447
|
+
puts "---- #{event} using tables ---"
|
448
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_dss_units_query_qbp_q13-qbp_q13.xml'})
|
449
|
+
|
450
|
+
hl7 = factory.generate(false)
|
451
|
+
puts hl7
|
452
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
453
|
+
end
|
454
|
+
|
455
|
+
def test_QBP_Q13_ecs
|
456
|
+
# ver='vaz2.4'
|
457
|
+
# view xml as grid http://xmlgrid.net/
|
458
|
+
ver='VAZ2.4.HL7'
|
459
|
+
event='QBP_Q13'
|
460
|
+
useExValue = true
|
461
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.xml'})
|
462
|
+
# switch template path to test dir
|
463
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.xml"
|
464
|
+
|
465
|
+
hl7 = factory.generate(useExValue)
|
466
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
467
|
+
puts hl7
|
468
|
+
|
469
|
+
# template has variations
|
470
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|20140320145617||QBP^Q13^QBP_Q13|500000000000011828|T|2.4'
|
471
|
+
assert_equal hl7[1].to_s, 'QPD|Q13^SMDSSUNITS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMECSProcedures^10936^66'
|
472
|
+
assert_equal hl7[2].to_s, 'RDF|5|Location IEN^NM^10936'
|
473
|
+
assert_equal hl7[3].to_s, 'RCP|I'
|
474
|
+
|
475
|
+
puts "---- #{event} using tables ---"
|
476
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.xml'})
|
477
|
+
hl7 = factory.generate(false)
|
478
|
+
puts hl7
|
479
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
480
|
+
end
|
481
|
+
|
482
|
+
#RSP_K11 (patient eligibility,diagnosis,problems)
|
483
|
+
def test_RSP_K11_eligability
|
484
|
+
# ver='vaz2.4'
|
485
|
+
# view xml as grid http://xmlgrid.net/
|
486
|
+
ver='VAZ2.4.HL7'
|
487
|
+
event='RSP_K11'
|
488
|
+
useExValue = true
|
489
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_patient eligibility_response-rsp_k11-080714.xml'})
|
490
|
+
# switch template path to test dir
|
491
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_patient eligibility_response-rsp_k11-080714.xml"
|
492
|
+
|
493
|
+
hl7 = factory.generate(useExValue)
|
494
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
495
|
+
puts hl7
|
496
|
+
|
497
|
+
# template has variations
|
498
|
+
# assert_equal hl7[0].to_s, 'MSH|727|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20040328134602+0600||RSP^K11|99146086193|T|2.4'
|
499
|
+
assert_equal hl7[1].to_s, 'MSA|AA|500000000000011830|INVALID DATA LINK'
|
500
|
+
assert_equal hl7[2].to_s, 'QAK|B81548A4-B069-11E3-9CA9-50569E013100|OK|Q11^SMPATIENTECLASS^HL70471|4|4|0'
|
501
|
+
assert_equal hl7[3].to_s, 'ZEL|0001|1|||||||O|P||||||||E|E|E|||N||||||||||||500|||||E||E||Y'
|
502
|
+
|
503
|
+
|
504
|
+
puts "---- #{event} using tables ---"
|
505
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_patient eligibility_response-rsp_k11-080714.xml'})
|
506
|
+
|
507
|
+
hl7 = factory.generate(false)
|
508
|
+
puts hl7
|
509
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
510
|
+
end
|
511
|
+
|
512
|
+
def test_RSP_K11_diagnosis
|
513
|
+
# ver='vaz2.4'
|
514
|
+
# view xml as grid http://xmlgrid.net/
|
515
|
+
ver='VAZ2.4.HL7'
|
516
|
+
event='RSP_K11'
|
517
|
+
useExValue = true
|
518
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
519
|
+
# switch template path to test dir
|
520
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11-rsp_k11.xml"
|
521
|
+
|
522
|
+
hl7 = factory.generate(useExValue)
|
523
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
524
|
+
puts hl7
|
525
|
+
|
526
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20140320155617-0500||RSP^K11^RTB_K13|99146086191|T|2.4'
|
527
|
+
assert_equal hl7[1].to_s, 'MSA|AA|500000000000011828|INVALID DATA LINK'
|
528
|
+
assert_equal hl7[2].to_s, 'QAK||OK|Q13^SMDIAGNOSES^HL70471|4|4|0'
|
529
|
+
assert_equal hl7[3].to_s, 'QPD|Q13^SMDIAGNOSES^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMDiagnoses^pain^757.01'
|
530
|
+
assert_equal hl7[4].to_s, 'DG1|3||799.9^Other specified disorders of stomach and duodenum (ICD-9-CM 537.89)^I9^5570^^L||20040328134602.1234+0600|F'
|
531
|
+
|
532
|
+
|
533
|
+
puts "---- #{event} using tables ---"
|
534
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
535
|
+
hl7 = factory.generate(false)
|
536
|
+
puts hl7
|
537
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
538
|
+
end
|
539
|
+
|
540
|
+
def test_RSP_K11_problem
|
541
|
+
# ver='vaz2.4'
|
542
|
+
# view xml as grid http://xmlgrid.net/
|
543
|
+
ver='VAZ2.4.HL7'
|
544
|
+
event='RSP_K11'
|
545
|
+
useExValue = true
|
546
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
547
|
+
# switch template path to test dir
|
548
|
+
# factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml"
|
549
|
+
|
550
|
+
hl7 = factory.generate(useExValue)
|
551
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
552
|
+
puts hl7
|
553
|
+
|
554
|
+
# template has variations
|
555
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|MHV VISTA|991^SLC4.FO-BAYPINES.MED.VA.GOV^DNS|MHV SM|200MHS^SYS.MHV.MED.VA.GOV^DNS|20140320155617-0500||RSP^K11^RTB_K11|99146086191|T|2.4'
|
556
|
+
assert_equal hl7[1].to_s, 'MSA|AA|500000000000011828|INVALID DATA LINK'
|
557
|
+
assert_equal hl7[2].to_s, 'QAK||OK|Q13^PATIENT PROBLEMS^HL70471|4|4|0'
|
558
|
+
assert_equal hl7[3].to_s, 'QPD|Q13^PATIENT PROBLEMS^HL70471|B350C65E-B069-11E3-9CA9-50569E013100|SMPatientProblems^1012664530V239151'
|
559
|
+
assert_equal hl7[4].to_s, 'DG1|3||799.9^Other specified disorders of stomach and duodenum (ICD-9-CM 537.89)^I9^5570^^L||20040328134602.1234+0600|F'
|
560
|
+
|
561
|
+
puts "---- #{event} using tables ---"
|
562
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
563
|
+
|
564
|
+
hl7 = factory.generate(false)
|
565
|
+
puts hl7
|
566
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
567
|
+
end
|
568
|
+
|
569
|
+
# Templates from other schemas then 2.4
|
570
|
+
def test_ORF_Z11 # 2.3.1 ? - change template to validate against 2.4
|
571
|
+
# ver='vaz2.4'
|
572
|
+
# view xml as grid http://xmlgrid.net/
|
573
|
+
ver='VAZ2.4.HL7'
|
574
|
+
event='ORF_Z11'
|
575
|
+
useExValue = true
|
576
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'ORF_Z11_2_3_1.xml'})
|
577
|
+
# switch template path to test dir
|
578
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.3.1/ORF_Z11_2_3_1.xml"
|
579
|
+
|
580
|
+
hl7 = factory.generate(useExValue)
|
581
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
582
|
+
puts hl7
|
583
|
+
|
584
|
+
# template has variations
|
585
|
+
# assert_equal hl7[0].to_s, 'MSH|161|||||472||ORF^Z11|552492821|T|2.2'
|
586
|
+
assert_equal hl7[1].to_s, 'MSA|AA|55294822'
|
587
|
+
# assert_equal hl7[2].to_s, 'QRD|20141015092714|R|I|46370291||813|1||OTH|IVM'
|
588
|
+
# assert_equal hl7[3].to_s, 'QRF|IVM|216|147||||||^^^860^554'
|
589
|
+
assert_equal hl7[4].to_s, 'PID|1||545254||ABCDEFG^ABCDEFG||20070601145007|F||W^WHITE^a^a^a^est|123 Lane^abc^Harrisville^ny^60150^USA^abc^abc^dav||(888)999-9999^^^^123^123^1112222|||Married|LDS|851851851|851851851'
|
590
|
+
assert_equal hl7[5].to_s, 'ZPD|0001|None|LAKELAND|FL|E|HL7ZFATHERRNAME|HL7ZMOTHERNAME|0|20021225|HL7PFSSZPDSRNAME^HL7PFSSZPDGVNNAME^J^MD|1|1|20010123|||1|Y|0|0|WORLD WAR II - PACIFIC|WC|1|100000|20040323|500|20040101|500|20010128|20011003|1|1|20040101|PP||AUSTRALIA|||||1|1'
|
591
|
+
assert_equal hl7[6].to_s, 'ZIE|0001|20001231|DISHONORABLE DISCHARGE|DUE TO Dishonerable discharge|MEMPHIS|1|TN|19480113|BOSSIER CITY|1|LA'
|
592
|
+
assert_equal hl7[7].to_s, 'ZIO|1|2|2|20030117|Y|20050415|1'
|
593
|
+
assert_equal hl7[8].to_s, 'ZEL|0001|1|||0|1212134|541CLEVELAND-RO|0|ALLIED VETERAN|P|20041203|20041103|Interview|0|0|0|1|0|0|0|1000.00||N|||19890908|19890908|12345||19780405|19780405|19780405|20041203|20061203|500|ESR|1||1|1|1|20140221|660|CLEAR'
|
594
|
+
# assert_equal hl7[9].to_s, 'ZE2|20040101^480|31'
|
595
|
+
#assert_equal hl7[10].to_s, 'ZHP|123|352||POSTMASTER|123'
|
596
|
+
assert_equal hl7[11].to_s, 'ZEN|0001|19991228|1|2|1|CANCELED REMARKS TEST||512 9AC|1|19951230|19940223|20070101|1'
|
597
|
+
assert_equal hl7[12].to_s, 'ZMT|0001||E'
|
598
|
+
assert_equal hl7[13].to_s, 'ZCD|1|20140312|LAST,FIRST M.D.|512 9AC|20140315|2^Medical Record Review^VA0041|369.4|25900|4|2|2|Y|1|20050916|20050916|20050916|1^123^ABC^XYZ'
|
599
|
+
assert_equal hl7[14].to_s, 'ZSP|0001|1|75|2|0|0|0|19931201|20001231|20030506'
|
600
|
+
#assert_equal hl7[15].to_s, 'ZMH|1|SL|NAVY|989^645|R'
|
601
|
+
assert_equal hl7[16].to_s, 'ZRD|0001|5018^HYDRARTHROSIS|10|1|BAD FOOT|20|Y|N|20011030|AVERAGE|20001023'
|
602
|
+
#assert_equal hl7[17].to_s, 'OBX||CE|38|VISTA|||||||R|668||616'
|
603
|
+
|
604
|
+
puts "---- #{event} using tables ---"
|
605
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
606
|
+
|
607
|
+
hl7 = factory.generate(false)
|
608
|
+
puts hl7
|
609
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
610
|
+
end
|
611
|
+
|
612
|
+
# Templates from other schemas then 2.4
|
613
|
+
def test_DFT_P11_AJ # 2.5 ? - change template to validate against 2.4
|
614
|
+
# ver='vaz2.4'
|
615
|
+
# view xml as grid http://xmlgrid.net/
|
616
|
+
ver='VAZ2.4.HL7'
|
617
|
+
event='DFT_P03'
|
618
|
+
useExValue = true
|
619
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'DFT_P11_AJ_2_5.xml'})
|
620
|
+
# switch template path to test dir
|
621
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.5/DFT_P11_AJ_2_5.xml"
|
622
|
+
|
623
|
+
hl7 = factory.generate(useExValue)
|
624
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
625
|
+
puts hl7
|
626
|
+
|
627
|
+
# template has variations
|
628
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|^PRCHCPS|^200|^PRCHCPR|^500|||DFT^P03|20018202|P|2.5|||AL|AL|USA'
|
629
|
+
assert_equal hl7[1].to_s, 'EVN|P03|20040328134623.1234'
|
630
|
+
assert_equal hl7[2].to_s, 'PID|||1234^5004400231V123112||^PATIENTFIRST'
|
631
|
+
|
632
|
+
puts "---- #{event} using tables ---"
|
633
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
634
|
+
|
635
|
+
hl7 = factory.generate(false)
|
636
|
+
puts hl7
|
637
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
638
|
+
end
|
639
|
+
|
640
|
+
# undefined method `DTM' for class `TypeAwareFieldGenerator': only in 2.5
|
641
|
+
def test_DFT_P11_PY # 2.5 ? - change template to validate against 2.4
|
642
|
+
# ver='vaz2.4'
|
643
|
+
# view xml as grid http://xmlgrid.net/
|
644
|
+
ver='VAZ2.4.HL7'
|
645
|
+
event='DFT_P03'
|
646
|
+
useExValue = true
|
647
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'DFT_P11_PY_2_5.xml'})
|
648
|
+
# switch template path to test dir
|
649
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.5/DFT_P11_PY_2_5.xml"
|
650
|
+
|
651
|
+
hl7 = factory.generate(useExValue)
|
652
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
653
|
+
puts hl7
|
654
|
+
|
655
|
+
# template has variations
|
656
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|^PRC HCP SEND|^500|^PRC HCP RECEIVE|^200|20040328134623||DFT^P03|20018202|P|2.5|||NE|AL|USA'
|
657
|
+
assert_equal hl7[1].to_s, 'EVN|P03|20120203120912-0500'
|
658
|
+
assert_equal hl7[2].to_s, 'PID|1||1234^5004400231V123112||TESTONE^PATFIRST'
|
659
|
+
|
660
|
+
#undefined method `DTM'
|
661
|
+
puts "---- #{event} using tables ---"
|
662
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'DFT_P11_PY_2_5.xml'})
|
663
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.5/DFT_P11_PY_2_5.xml"
|
664
|
+
|
665
|
+
hl7 = factory.generate(false)
|
666
|
+
puts hl7
|
667
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
668
|
+
end
|
669
|
+
|
670
|
+
# undefined method `DTM' for class `TypeAwareFieldGenerator': only in 2.5
|
671
|
+
def test_DFT_P11_VAAQ # 2.5 ? - change template to validate against 2.4
|
672
|
+
# ver='vaz2.4'
|
673
|
+
# view xml as grid http://xmlgrid.net/
|
674
|
+
ver='VAZ2.4.HL7'
|
675
|
+
event='DFT_P03'
|
676
|
+
useExValue = true
|
677
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'DFT_P11_VAAQ_2_5.xml'})
|
678
|
+
# switch template path to test dir
|
679
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.5/DFT_P11_VAAQ_2_5.xml"
|
680
|
+
|
681
|
+
hl7 = factory.generate(useExValue)
|
682
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
683
|
+
puts hl7
|
684
|
+
|
685
|
+
# template has variations
|
686
|
+
assert_equal hl7[0].to_s, 'MSH|^~\&|^PRCCHPS|^500|^PRCHCPR|^200|20040328134623||DFT^P11|123456789|P|2.5|||AL|AL|USA'
|
687
|
+
assert_equal hl7[1].to_s, 'EVN|P11|20120203120912-0500'
|
688
|
+
# assert_equal hl7[2].to_s, 'PID|5273||9999^5004400231V123112||^PATIENTFIRST'
|
689
|
+
|
690
|
+
puts "---- #{event} using tables ---"
|
691
|
+
factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'DFT_P11_VAAQ_2_5.xml'})
|
692
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.5/DFT_P11_VAAQ_2_5.xml"
|
693
|
+
|
694
|
+
hl7 = factory.generate(false)
|
695
|
+
puts hl7
|
696
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
697
|
+
end
|
698
|
+
|
699
|
+
|
700
|
+
def test_MFN_X01_with_group # with segment group
|
701
|
+
# ver='vaz2.4'
|
702
|
+
# view xml as grid http://xmlgrid.net/
|
703
|
+
ver='VAZ2.4.HL7'
|
704
|
+
event='MFN_X01'
|
705
|
+
useExValue = true
|
706
|
+
factory = MessageFactoryStub.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'eiv-ec-MFN_X01_reg_request_w_group.xml'})
|
707
|
+
# switch template path to test dir
|
708
|
+
factory.templatePath = "/Users/romansova/RubymineProjects/ez7gen/test/test-config/templates/2.4/eiv-ec-MFN_X01_reg_request_w_group.xml"
|
709
|
+
|
710
|
+
hl7 = factory.generate(useExValue)
|
711
|
+
saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
712
|
+
puts hl7
|
713
|
+
|
714
|
+
# template has variations
|
715
|
+
assert_true hl7[0].to_s.start_with?('MSH')
|
716
|
+
assert_equal hl7[1].to_s, 'MFI|Facility Table||UPD|20030620|20030620|NE'
|
717
|
+
assert_equal hl7[2].to_s, 'MFE|MUP||20030620|509|CE'
|
718
|
+
assert_equal hl7[3].to_s, 'ZRR|1|101100001||||180|I||N|7'
|
719
|
+
assert_equal hl7[4].to_s, 'NTE|1||N\R\0'
|
720
|
+
|
721
|
+
# assert_equal hl7[2].to_s, 'PID|5273||9999^5004400231V123112||^PATIENTFIRST'
|
722
|
+
|
723
|
+
puts "---- #{event} using tables ---"
|
724
|
+
# factory = MessageFactory.new({std: '2.4', version: ver, event:event, version_store: @@VS, use_template: 'mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml'})
|
725
|
+
#
|
726
|
+
# hl7 = factory.generate(false)
|
727
|
+
# puts hl7
|
728
|
+
# saveMsg(Ez7gen::VERSION+event, hl7, ver)
|
729
|
+
end
|
730
|
+
end
|