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.
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