ez7gen 1.0.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 +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
|