ez7gen 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +7 -0
  2. data/bin/ez7gen +6 -0
  3. data/lib/ez7gen.rb +23 -0
  4. data/lib/ez7gen/config/schema/2.4/2.4.HL7.xml +13904 -0
  5. data/lib/ez7gen/config/schema/2.4/VAZ2.4.HL7.xml +3085 -0
  6. data/lib/ez7gen/config/schema/2.4/added/coded-tables.xml +730 -0
  7. data/lib/ez7gen/config/schema/2.4/rules/2.4.HL7.yml +4 -0
  8. data/lib/ez7gen/config/schema/2.4/rules/VAZ2.4.HL7.yml +6 -0
  9. data/lib/ez7gen/config/schema/2.5/2.5.HL7.xml +10008 -0
  10. data/lib/ez7gen/config/schema/2.5/VAZ2.5.HL7.xml +7 -0
  11. data/lib/ez7gen/config/schema/2.5/added/coded-tables.xml +549 -0
  12. data/lib/ez7gen/config/schema/readme.txt +0 -0
  13. data/lib/ez7gen/config/templates/2.4/eiv table update-mfn_m01 20151201.xml +416 -0
  14. data/lib/ez7gen/config/templates/2.4/eiv table update-mfn_y01.xml +416 -0
  15. data/lib/ez7gen/config/templates/2.4/eiv-ec-MFN_X01_reg request 20160126.xml +659 -0
  16. data/lib/ez7gen/config/templates/2.4/examples/ADT_A60.txt +69 -0
  17. data/lib/ez7gen/config/templates/2.4/examples/eiv table update-mfn_m01 20151201.txt +21 -0
  18. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_dss_units-query_qbp_q13-qbp_q13.txt +26 -0
  19. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.txt +26 -0
  20. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_patient eligibility_response-rsp_k11-080714.txt +44 -0
  21. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.txt +21 -0
  22. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11.txt +42 -0
  23. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13.txt +49 -0
  24. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.txt +31 -0
  25. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.txt +21 -0
  26. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_esc_procedures_response_rtb_k13-rtb_k13.txt +40 -0
  27. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.txt +21 -0
  28. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.txt +21 -0
  29. data/lib/ez7gen/config/templates/2.4/examples/mhvsm_standardhl7lib_patinet_problems_response_rsp_k11-rsp_k11.txt +33 -0
  30. data/lib/ez7gen/config/templates/2.4/examples/orur01rvbecv2.txt +31 -0
  31. data/lib/ez7gen/config/templates/2.4/examples/sqwm vitals-oru_ro1.txt +52 -0
  32. data/lib/ez7gen/config/templates/2.4/examples/vista sqwm-adt_a60.txt +40 -0
  33. data/lib/ez7gen/config/templates/2.4/mhvsm_dss_units_query_qbp_q13-qbp_q13.xml +312 -0
  34. data/lib/ez7gen/config/templates/2.4/mhvsm_ecs_procedures_query_qbp_q13-qbp_q13.xml +314 -0
  35. data/lib/ez7gen/config/templates/2.4/mhvsm_patient eligibility_response-rsp_k11-080714.xml +640 -0
  36. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_diagnosis_query_qbp_q11-qbp_q11.xml +284 -0
  37. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_diagnosis_response_rsp_k11-rsp_k11-rsp_k11.xml +563 -0
  38. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_dss_units_response_rtb_k13-rtb_k13-rtb_k13.xml +365 -0
  39. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_request_dft_p03-dft_p03-080714.xml +2172 -0
  40. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_filer_response_ack_p03-ack_p03.xml +269 -0
  41. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_ecs_procedures_response_rtb_k13-rtb_k13-rtb_k13.xml +354 -0
  42. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_eclass_query_qbp_q11-qbp_q11.xml +284 -0
  43. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_problems_query_qbp_q11-qbp_q11.xml +282 -0
  44. data/lib/ez7gen/config/templates/2.4/mhvsm_standardhl7lib_patient_problems_response_rsp_k11-rsp_k11-rsp_k11.xml +565 -0
  45. data/lib/ez7gen/config/templates/2.4/orur01rvbecv2.xml +1529 -0
  46. data/lib/ez7gen/config/templates/2.4/sqwm vitals-oru_r01.xml +2975 -0
  47. data/lib/ez7gen/config/templates/2.4/vista sqwm-adt_a60.xml +1360 -0
  48. data/lib/ez7gen/message_factory.rb +142 -0
  49. data/lib/ez7gen/msg_error_handler.rb +33 -0
  50. data/lib/ez7gen/profile_parser.rb +321 -0
  51. data/lib/ez7gen/resources/properties-with-comments.yml +51 -0
  52. data/lib/ez7gen/resources/properties.yml +325 -0
  53. data/lib/ez7gen/service/2.4/dynamic_field_generator.rb +45 -0
  54. data/lib/ez7gen/service/2.4/field_generator.rb +1586 -0
  55. data/lib/ez7gen/service/2.5/field_generator.rb +75 -0
  56. data/lib/ez7gen/service/base_field_generator.rb +451 -0
  57. data/lib/ez7gen/service/segment_generator.rb +218 -0
  58. data/lib/ez7gen/service/segment_picker.rb +147 -0
  59. data/lib/ez7gen/service/template_generator.rb +213 -0
  60. data/lib/ez7gen/service/type_aware_field_generator.rb +1583 -0
  61. data/lib/ez7gen/service/utils.rb +75 -0
  62. data/lib/ez7gen/structure_parser.rb +331 -0
  63. data/lib/ez7gen/version.rb +38 -0
  64. data/test/Additional Tables with values_v1.1.txt +1653 -0
  65. data/test/added_shema_test.rb +143 -0
  66. data/test/app-tmp.rb +225 -0
  67. data/test/at.txt +1 -0
  68. data/test/backburner.zip +0 -0
  69. data/test/codes.txt +262 -0
  70. data/test/codes1.txt +1240 -0
  71. data/test/data_types_exploration_test.rb +213 -0
  72. data/test/dynamic_field_generated_test.rb +292 -0
  73. data/test/message_factory_24_custom_test.rb +648 -0
  74. data/test/message_factory_25_test.rb +50 -0
  75. data/test/message_factory_adm_test.rb +558 -0
  76. data/test/message_factory_gen_test.rb +63 -0
  77. data/test/message_factory_lab_test.rb +107 -0
  78. data/test/message_factory_pharm_test.rb +121 -0
  79. data/test/message_factory_template_24_test.rb +730 -0
  80. data/test/message_factory_test.rb +220 -0
  81. data/test/msg_error_handler_test.rb +59 -0
  82. data/test/profile_parser_test.rb +542 -0
  83. data/test/quick_run.rb +880 -0
  84. data/test/segment_generator_test.rb +656 -0
  85. data/test/segment_picker_test.rb +279 -0
  86. data/test/structrure_parser_test.rb +355 -0
  87. data/test/template_generator_test.rb +164 -0
  88. data/test/type_aware_field_generator_test.rb +582 -0
  89. data/test/utils_test.rb +97 -0
  90. 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~&lt;~OBR~|~RQD~|~RQ1~|~RXO~|~ODS~|~ODT~&gt;~[~{~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