roqua-healthy 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 535dbe075acc71ad6cfb216f74c0459d30076680
4
- data.tar.gz: d0ca4037f6610614aa35350fc9f7e3ac80f83c4e
3
+ metadata.gz: dc744ebcaa5350b012790082bce06fbfdcee8b50
4
+ data.tar.gz: cfe48aa98ec98439b7778fbea68005136fc35b90
5
5
  SHA512:
6
- metadata.gz: 768b8effbda52101455902040e0ba9357778ab73070bf36626ce6f2addf1311dba1c5cf175c104bd894d09fb13cad530fff4602aca8f0b31d4c7e7b37f7295a4
7
- data.tar.gz: 7559755407e7e2ba44079dd4e89e2b0f8bc2243fcf6d5b7eee88ca5cb9b4297728f8cc0cbe87957c63d7ed631a9862b6b8475e5663c80eb49918935802e6af19
6
+ metadata.gz: c151b7bad6d9070c4975376e79cdc0fd5400f103f9b3b5db795e9060b0c42641f08abf707b9f1de124be947ee371e2e29fcd385f824e5b0c77f52802f56c896a
7
+ data.tar.gz: 1e877165f35a47a7140f7f35a40133ce1b7b24ed6673acad7c8ab09c76214e214bd1b1fe7b21090e312572479a718b440e138189c17c1de80dbee7efb2c58052
data/.rubocop.yml CHANGED
@@ -1,17 +1,12 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`.
2
- # The point is for the user to remove these configuration records
3
- # one by one as the offences are removed from the code base.
1
+ inherit_from: .rubocop_todo.yml
4
2
 
5
3
  AllCops:
6
- Excludes:
7
- - vendor/**
4
+ Exclude:
5
+ - vendor/**/*
8
6
 
9
7
  Documentation:
10
8
  Enabled: false
11
9
 
12
- LineLength:
13
- Enabled: false
14
-
15
10
  Encoding:
16
11
  Enabled: false
17
12
 
@@ -24,8 +19,5 @@ SpaceInsideHashLiteralBraces:
24
19
  MethodLength:
25
20
  Max: 20
26
21
 
27
- FinalNewline:
28
- Enabled: False
29
-
30
22
  SignalException:
31
23
  Enabled: False
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,22 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2016-06-24 14:47:51 +0200 using RuboCop version 0.40.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 7
10
+ Metrics/AbcSize:
11
+ Max: 26
12
+
13
+ # Offense count: 1
14
+ # Configuration parameters: CountComments.
15
+ Metrics/ClassLength:
16
+ Max: 102
17
+
18
+ # Offense count: 80
19
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
20
+ # URISchemes: http, https
21
+ Metrics/LineLength:
22
+ Max: 234
data/ChangeLog.md CHANGED
@@ -1,3 +1,7 @@
1
+ ### 1.2.1
2
+
3
+ * Improved heuristic to pick cell phone numbers out of commonly used hl7 messages
4
+
1
5
  ### 1.2.0
2
6
 
3
7
  * Added support for MEDOQ hl7 a19 identities encoded in JSON
data/Gemfile CHANGED
@@ -5,4 +5,4 @@ gemspec
5
5
  # Only add dependencies here if they're only used by CI or other services.
6
6
  # Normal development dependencies should go in the gemspec. People shouldn't
7
7
  # need to use bundler to develop on our gem.
8
- gem "codeclimate-test-reporter", group: :test, require: nil
8
+ gem "codeclimate-test-reporter", group: :test, require: nil
data/Guardfile CHANGED
@@ -1,11 +1,11 @@
1
1
  guard 'rspec', cmd: 'bundle exec rspec -f Fuubar' do
2
2
  watch(%r{^spec/.+_spec\.rb$})
3
3
  watch(%r{^lib/healthy/(.+)\.rb$}) { |m| ["spec/unit/#{m[1]}_spec.rb", "spec/integration"] }
4
- watch('spec/spec_helper.rb') { "spec" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
5
  watch(%r{^spec/fixtures/([^_]+)_.*.xml}) { |m| "spec/integration/#{m[1]}_spec.rb" }
6
6
  end
7
7
 
8
8
  guard :rubocop, cli: ['-D'] do
9
- watch(%r{.+\.rb$})
9
+ watch(/.+\.rb$/)
10
10
  watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
11
11
  end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Healthy [![Code Climate](https://codeclimate.com/repos/524944dd56b10217490074e8/badges/5dd696b69c4614c83c2d/gpa.png)](https://codeclimate.com/repos/524944dd56b10217490074e8/feed) [![CircleCi](https://circleci.com/gh/roqua/healthy.png?circle-token=ece8f36798b00bc8659d5c76f720b22693d6600a)](https://circleci.com/gh/roqua/healthy)
1
+ # Healthy [![Code Climate](https://codeclimate.com/github/roqua/healthy/badges/gpa.svg)](https://codeclimate.com/github/roqua/healthy) [![CircleCi](https://circleci.com/gh/roqua/healthy.png?circle-token=ece8f36798b00bc8659d5c76f720b22693d6600a)](https://circleci.com/gh/roqua/healthy)
2
2
 
3
3
  ## Patient details aka QRY\^A19
4
4
 
@@ -31,8 +31,10 @@ There are two helpers in `bin`: `get_xml_for_patient` and `parse_local_xml`. The
31
31
 
32
32
  These two commands are then chained together by `bin/get`:
33
33
 
34
- `bin/get 7767853 10.20.11.100:60201`
34
+ `bin/get 7767853 10.20.11.100:60201` NB: replace the client id and the ip and port of the a19 channel you want to use
35
35
 
36
36
  ## Copyright
37
37
 
38
- Copyright (c) 2013 Marten Veldthuis. Publicly available under an MIT license. See [LICENSE.txt](https://github.com/roqua/healthy/blob/master/LICENSE.txt) for details.
38
+ Copyright (c) 2016 Marten Veldthuis, Jorn van de Beek, Samuel Esposito, Henk van der Veen
39
+
40
+ Publicly available under an MIT license. See [LICENSE.txt](https://github.com/roqua/healthy/blob/master/LICENSE.txt) for details.
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ begin
7
7
  rescue LoadError => e
8
8
  warn e.message
9
9
  warn "Run `gem install bundler` to install Bundler."
10
- exit -1
10
+ exit(-1)
11
11
  end
12
12
 
13
13
  begin
@@ -23,11 +23,11 @@ require 'rake'
23
23
  require 'rspec/core/rake_task'
24
24
  RSpec::Core::RakeTask.new
25
25
 
26
- task :test => :spec
27
- task :default => :spec
26
+ task test: :spec
27
+ task default: :spec
28
28
 
29
29
  require "bundler/gem_tasks"
30
30
 
31
31
  require 'yard'
32
- YARD::Rake::YardocTask.new
33
- task :doc => :yard
32
+ YARD::Rake::YardocTask.new
33
+ task doc: :yard
data/bin/get CHANGED
@@ -5,4 +5,4 @@ unless ARGV[0] && ARGV[1]
5
5
  exit 1
6
6
  end
7
7
 
8
- exec "bin/get_xml_for_patient #{ARGV[0]} '#{ARGV[1]}' | ruby -Ilib bin/parse_local_xml"
8
+ exec "bin/get_xml_for_patient #{ARGV[0]} '#{ARGV[1]}' | ruby -Ilib bin/parse_local_xml"
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
3
  COMMAND="curl --data \"method=A19&application=healthy&patient_id=$1\" \"http://$2\""
4
- XML=$(ssh mirth "$COMMAND")
4
+ XML=$(ssh prod-mirth "$COMMAND")
5
5
 
6
6
  echo $XML | xmllint --format -
data/circle.yml ADDED
@@ -0,0 +1,5 @@
1
+ machine:
2
+ timezone:
3
+ Europe/Amsterdam
4
+ ruby:
5
+ version: 2.2.4
@@ -43,4 +43,4 @@ module Roqua
43
43
  end
44
44
  end
45
45
  end
46
- end
46
+ end
@@ -20,9 +20,7 @@ module Roqua
20
20
  response = mirth_response
21
21
  parser = ResponseParser.new(response)
22
22
 
23
- if ResponseValidator.new(response.code, parser, patient_id).validate
24
- parser.fetch("HL7Message")
25
- end
23
+ parser.fetch("HL7Message") if ResponseValidator.new(response.code, parser, patient_id).validate
26
24
  end
27
25
 
28
26
  def mirth_response
@@ -60,4 +58,4 @@ module Roqua
60
58
  end
61
59
  end
62
60
  end
63
- end
61
+ end
@@ -40,8 +40,7 @@ module Roqua
40
40
  names[:display] = record
41
41
  when 'N'
42
42
  names[:nick] = record
43
- else
44
- # ignore record
43
+ # else ignore record
45
44
  end
46
45
  end
47
46
  names
@@ -24,4 +24,4 @@ module Roqua
24
24
  end
25
25
  end
26
26
  end
27
- end
27
+ end
@@ -90,18 +90,30 @@ module Roqua
90
90
  email_address
91
91
  end
92
92
 
93
+ # this is a heuristic to pick likely dutch cell phone numbers
94
+ # out of the peculiar hl7 messages we receive
93
95
  def phone_cell
94
- phone_cell_record = message.fetch('PID').fetch('PID.13').find do |record|
95
- record.fetch('PID.13.2', :unknown_type_of_phone_record) == 'ORN'
96
+ pid_13 = message.fetch('PID').fetch('PID.13')
97
+
98
+ # prefer ORN (Other Residence Number, usually used for cell phone) that contains '06'
99
+ phone_cell_record = pid_13.find do |record|
100
+ phone_number = record.fetch('PID.13.1', '') || ''
101
+ phone_number.start_with?('06') &&
102
+ record.fetch('PID.13.2', :unknown_type_of_phone_record) == 'ORN'
96
103
  end
97
104
 
98
- phone_cell_record ||= message.fetch('PID').fetch('PID.13').find do |record|
99
- record.fetch('PID.13.1', '') =~ /\A06/
105
+ # otherwise choose the first occuring '06' number
106
+ phone_cell_record ||= pid_13.find do |record|
107
+ phone_number = record.fetch('PID.13.1', '') || ''
108
+ phone_number.start_with?('06')
100
109
  end
101
110
 
102
- return nil unless phone_cell_record
111
+ # in the last case (possibly a +316 number), just choose the ORN number
112
+ phone_cell_record ||= pid_13.find do |record|
113
+ record.fetch('PID.13.2', :unknown_type_of_phone_record) == 'ORN'
114
+ end
103
115
 
104
- phone_cell_record.fetch('PID.13.1', "")
116
+ phone_cell_record.try(:fetch, 'PID.13.1', '')
105
117
  end
106
118
 
107
119
  def gender
@@ -16,4 +16,4 @@ end
16
16
 
17
17
  require_relative 'a19/fetcher'
18
18
  require_relative 'a19/transformer'
19
- require_relative 'a19/correct_patient_check'
19
+ require_relative 'a19/correct_patient_check'
@@ -41,4 +41,4 @@ module Roqua
41
41
  end
42
42
  end
43
43
  end
44
- end
44
+ end
@@ -1,6 +1,6 @@
1
1
  module Roqua
2
2
  module Healthy
3
3
  # healthy version
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.1".freeze
5
5
  end
6
6
  end
data/lib/roqua/healthy.rb CHANGED
@@ -12,4 +12,4 @@ module Roqua
12
12
  attr_accessor :a19_endpoint
13
13
  end
14
14
  end
15
- end
15
+ end
data/lib/roqua-healthy.rb CHANGED
@@ -1 +1,2 @@
1
+ # rubocop:disable Style/FileName
1
2
  require 'roqua/healthy'
@@ -5,14 +5,14 @@ require File.expand_path('../lib/roqua/healthy/version', __FILE__)
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "roqua-healthy"
7
7
  gem.version = Roqua::Healthy::VERSION
8
- gem.summary = %q{Arranges communication between Mirth and RoQua}
9
- gem.description = %q{Receives queries from RoQua, sends them to Mirth, and translates Mirth's responses back into Rubyland.}
8
+ gem.summary = 'Arranges communication between Mirth and RoQua'
9
+ gem.description = "Receives queries from RoQua, sends them to Mirth, and translates Mirth's responses back into Rubyland."
10
10
  gem.license = "MIT"
11
- gem.authors = ["Marten Veldthuis", "Jorn van de Beek"]
11
+ gem.authors = ["Marten Veldthuis", "Jorn van de Beek", 'Samuel Esposito', 'Henk van der Veen']
12
12
  gem.email = "support@roqua.nl"
13
13
  gem.homepage = "https://github.com/roqua/healthy"
14
14
 
15
- gem.files = `git ls-files`.split($/)
15
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
16
16
  gem.executables = [] # executables in bin/ are helpers for use during development
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ['lib']
@@ -33,8 +33,8 @@ Gem::Specification.new do |gem|
33
33
  gem.add_development_dependency 'guard', '~> 2.1'
34
34
  gem.add_development_dependency 'guard-rspec', '~> 4.2.4'
35
35
  gem.add_development_dependency 'listen', '~> 2.1'
36
- gem.add_development_dependency 'guard-rubocop', '~> 1.0.1'
37
- gem.add_development_dependency 'rubocop', '= 0.17.0'
36
+ gem.add_development_dependency 'guard-rubocop', '~> 1.2.0'
37
+ gem.add_development_dependency 'rubocop', '~> 0.40'
38
38
  gem.add_development_dependency 'fuubar'
39
39
 
40
40
  # Documentation generation
@@ -0,0 +1,314 @@
1
+ <?xml version="1.0"?>
2
+ <HL7Message>
3
+ <MSH>
4
+ <MSH.1>|</MSH.1>
5
+ <MSH.2>^~\\&amp;</MSH.2>
6
+ <MSH.3>
7
+ <MSH.3.1>XMCARE</MSH.3.1>
8
+ </MSH.3>
9
+ <MSH.4>
10
+ <MSH.4.1>XMCARE</MSH.4.1>
11
+ </MSH.4>
12
+ <MSH.5>
13
+ <MSH.5.1>ROQUA</MSH.5.1>
14
+ </MSH.5>
15
+ <MSH.6>
16
+ <MSH.6.1>RGOC</MSH.6.1>
17
+ </MSH.6>
18
+ <MSH.7>
19
+ <MSH.7.1>20160621111111</MSH.7.1>
20
+ </MSH.7>
21
+ <MSH.8/>
22
+ <MSH.9>
23
+ <MSH.9.1>ADR</MSH.9.1>
24
+ <MSH.9.2>A19</MSH.9.2>
25
+ <MSH.9.3>ADR_A19</MSH.9.3>
26
+ </MSH.9>
27
+ <MSH.10>
28
+ <MSH.10.1>8000000</MSH.10.1>
29
+ </MSH.10>
30
+ <MSH.11>
31
+ <MSH.11.1>P</MSH.11.1>
32
+ </MSH.11>
33
+ <MSH.12>
34
+ <MSH.12.1>2.4</MSH.12.1>
35
+ </MSH.12>
36
+ <MSH.13/>
37
+ <MSH.14/>
38
+ <MSH.15>
39
+ <MSH.15.1>NE</MSH.15.1>
40
+ </MSH.15>
41
+ <MSH.16>
42
+ <MSH.16.1>NE</MSH.16.1>
43
+ </MSH.16>
44
+ </MSH>
45
+ <MSA>
46
+ <MSA.1>
47
+ <MSA.1.1>CA</MSA.1.1>
48
+ </MSA.1>
49
+ <MSA.2>
50
+ <MSA.2.1>f00bf00b00</MSA.2.1>
51
+ </MSA.2>
52
+ </MSA>
53
+ <QRD>
54
+ <QRD.1>
55
+ <QRD.1.1>20160621000000</QRD.1.1>
56
+ </QRD.1>
57
+ <QRD.2>
58
+ <QRD.2.1>R</QRD.2.1>
59
+ </QRD.2>
60
+ <QRD.3>
61
+ <QRD.3.1>I</QRD.3.1>
62
+ </QRD.3>
63
+ <QRD.4>
64
+ <QRD.4.1>f00bf00b00</QRD.4.1>
65
+ </QRD.4>
66
+ <QRD.5/>
67
+ <QRD.6/>
68
+ <QRD.7>
69
+ <QRD.7.1>1</QRD.7.1>
70
+ <QRD.7.2>RD</QRD.7.2>
71
+ </QRD.7>
72
+ <QRD.8>
73
+ <QRD.8.1>88888888888</QRD.8.1>
74
+ </QRD.8>
75
+ <QRD.9>
76
+ <QRD.9.1>DEM</QRD.9.1>
77
+ </QRD.9>
78
+ </QRD>
79
+ <PID>
80
+ <PID.1>
81
+ <PID.1.1>1</PID.1.1>
82
+ </PID.1>
83
+ <PID.2/>
84
+ <PID.3>
85
+ <PID.3.1>88888888888</PID.3.1>
86
+ <PID.3.2/>
87
+ <PID.3.3/>
88
+ <PID.3.4>XMCARE</PID.3.4>
89
+ <PID.3.5>PI</PID.3.5>
90
+ </PID.3>
91
+ <PID.3>
92
+ <PID.3.1>222222222</PID.3.1>
93
+ <PID.3.2/>
94
+ <PID.3.3/>
95
+ <PID.3.4>NLMINBIZA</PID.3.4>
96
+ <PID.3.5>NNNLD</PID.3.5>
97
+ <PID.3.6/>
98
+ <PID.3.7>20160101</PID.3.7>
99
+ </PID.3>
100
+ <PID.3>
101
+ <PID.3.1>""</PID.3.1>
102
+ <PID.3.2/>
103
+ <PID.3.3/>
104
+ <PID.3.4/>
105
+ <PID.3.5>IBAN</PID.3.5>
106
+ </PID.3>
107
+ <PID.3>
108
+ <PID.3.1>""</PID.3.1>
109
+ <PID.3.2/>
110
+ <PID.3.3/>
111
+ <PID.3.4>GIRO</PID.3.4>
112
+ <PID.3.5>BA</PID.3.5>
113
+ </PID.3>
114
+ <PID.3>
115
+ <PID.3.1>""</PID.3.1>
116
+ <PID.3.2/>
117
+ <PID.3.3/>
118
+ <PID.3.4>BANK</PID.3.4>
119
+ <PID.3.5>BA</PID.3.5>
120
+ </PID.3>
121
+ <PID.4/>
122
+ <PID.5>
123
+ <PID.5.1>
124
+ <PID.5.1.1>Achternom</PID.5.1.1>
125
+ <PID.5.1.2>""</PID.5.1.2>
126
+ <PID.5.1.3>Achternom</PID.5.1.3>
127
+ <PID.5.1.4>""</PID.5.1.4>
128
+ <PID.5.1.5>""</PID.5.1.5>
129
+ </PID.5.1>
130
+ <PID.5.2>V</PID.5.2>
131
+ <PID.5.3/>
132
+ <PID.5.4/>
133
+ <PID.5.5/>
134
+ <PID.5.6/>
135
+ <PID.5.7>L</PID.5.7>
136
+ </PID.5>
137
+ <PID.5>
138
+ <PID.5.1>Achternom</PID.5.1>
139
+ <PID.5.2/>
140
+ <PID.5.3/>
141
+ <PID.5.4/>
142
+ <PID.5.5/>
143
+ <PID.5.6/>
144
+ <PID.5.7>D</PID.5.7>
145
+ </PID.5>
146
+ <PID.5>
147
+ <PID.5.1/>
148
+ <PID.5.2>Voorname</PID.5.2>
149
+ <PID.5.3/>
150
+ <PID.5.4/>
151
+ <PID.5.5/>
152
+ <PID.5.6/>
153
+ <PID.5.7>N</PID.5.7>
154
+ </PID.5>
155
+ <PID.6/>
156
+ <PID.7>
157
+ <PID.7.1>19900101</PID.7.1>
158
+ </PID.7>
159
+ <PID.8>
160
+ <PID.8.1>F</PID.8.1>
161
+ </PID.8>
162
+ <PID.9/>
163
+ <PID.10/>
164
+ <PID.11/>
165
+ <PID.11>
166
+ <PID.11.1>
167
+ <PID.11.1.1>Straat 8</PID.11.1.1>
168
+ <PID.11.1.2>Straat</PID.11.1.2>
169
+ <PID.11.1.3>8</PID.11.1.3>
170
+ </PID.11.1>
171
+ <PID.11.2>""</PID.11.2>
172
+ <PID.11.3>GRONINGEN</PID.11.3>
173
+ <PID.11.4/>
174
+ <PID.11.5>9711CR</PID.11.5>
175
+ <PID.11.6>NED</PID.11.6>
176
+ <PID.11.7>H</PID.11.7>
177
+ </PID.11>
178
+ <PID.11>
179
+ <PID.11.1>
180
+ <PID.11.1.1/>
181
+ <PID.11.1.2>""</PID.11.1.2>
182
+ <PID.11.1.3>""</PID.11.1.3>
183
+ </PID.11.1>
184
+ <PID.11.2>""</PID.11.2>
185
+ <PID.11.3>GRONINGEN</PID.11.3>
186
+ <PID.11.4/>
187
+ <PID.11.5>""</PID.11.5>
188
+ <PID.11.6>NED</PID.11.6>
189
+ <PID.11.7>N</PID.11.7>
190
+ </PID.11>
191
+ <PID.11>
192
+ <PID.11.1>
193
+ <PID.11.1.1/>
194
+ <PID.11.1.2>""</PID.11.1.2>
195
+ <PID.11.1.3>""</PID.11.1.3>
196
+ </PID.11.1>
197
+ <PID.11.2>""</PID.11.2>
198
+ <PID.11.3>""</PID.11.3>
199
+ <PID.11.4/>
200
+ <PID.11.5>""</PID.11.5>
201
+ <PID.11.6>""</PID.11.6>
202
+ <PID.11.7>C</PID.11.7>
203
+ </PID.11>
204
+ <PID.12/>
205
+ <PID.13>
206
+ <PID.13.1>0612345678</PID.13.1>
207
+ <PID.13.2>PRN</PID.13.2>
208
+ <PID.13.3>PH</PID.13.3>
209
+ </PID.13>
210
+ <PID.13>
211
+ <PID.13.1>""</PID.13.1>
212
+ <PID.13.2>ORN</PID.13.2>
213
+ <PID.13.3>PH</PID.13.3>
214
+ </PID.13>
215
+ <PID.13>
216
+ <PID.13.1>""</PID.13.1>
217
+ <PID.13.2>ORN</PID.13.2>
218
+ <PID.13.3>FX</PID.13.3>
219
+ </PID.13>
220
+ <PID.13>
221
+ <PID.13.1/>
222
+ <PID.13.2>NET</PID.13.2>
223
+ <PID.13.3>Internet</PID.13.3>
224
+ <PID.13.4>support@roqua.nl</PID.13.4>
225
+ </PID.13>
226
+ <PID.14/>
227
+ <PID.15/>
228
+ <PID.16/>
229
+ <PID.17/>
230
+ <PID.18/>
231
+ <PID.19/>
232
+ <PID.20/>
233
+ <PID.21/>
234
+ <PID.22/>
235
+ <PID.23/>
236
+ <PID.24/>
237
+ <PID.25/>
238
+ <PID.26>
239
+ <PID.26.1>""</PID.26.1>
240
+ </PID.26>
241
+ <PID.27/>
242
+ <PID.28/>
243
+ <PID.29>
244
+ <PID.29.1>""</PID.29.1>
245
+ </PID.29>
246
+ <PID.30>
247
+ <PID.30.1>N</PID.30.1>
248
+ </PID.30>
249
+ <PID.31>
250
+ <PID.31.1>N</PID.31.1>
251
+ </PID.31>
252
+ </PID>
253
+ <PV1>
254
+ <PV1.1/>
255
+ <PV1.2>
256
+ <PV1.2.1>O</PV1.2.1>
257
+ </PV1.2>
258
+ </PV1>
259
+ <IN1>
260
+ <IN1.1>
261
+ <IN1.1.1>1</IN1.1.1>
262
+ </IN1.1>
263
+ <IN1.2>
264
+ <IN1.2.1>""</IN1.2.1>
265
+ </IN1.2>
266
+ <IN1.3>
267
+ <IN1.3.1>VERZEKER CODE</IN1.3.1>
268
+ <IN1.3.2/>
269
+ <IN1.3.3/>
270
+ <IN1.3.4>LOCAL</IN1.3.4>
271
+ </IN1.3>
272
+ <IN1.4>
273
+ <IN1.4.1>Verzekeraar Zorgverz</IN1.4.1>
274
+ </IN1.4>
275
+ <IN1.5/>
276
+ <IN1.6/>
277
+ <IN1.7/>
278
+ <IN1.8/>
279
+ <IN1.9/>
280
+ <IN1.10/>
281
+ <IN1.11/>
282
+ <IN1.12>
283
+ <IN1.12.1>20140101</IN1.12.1>
284
+ </IN1.12>
285
+ <IN1.13>
286
+ <IN1.13.1>""</IN1.13.1>
287
+ </IN1.13>
288
+ <IN1.14/>
289
+ <IN1.15/>
290
+ <IN1.16/>
291
+ <IN1.17/>
292
+ <IN1.18/>
293
+ <IN1.19/>
294
+ <IN1.20/>
295
+ <IN1.21/>
296
+ <IN1.22/>
297
+ <IN1.23/>
298
+ <IN1.24/>
299
+ <IN1.25/>
300
+ <IN1.26/>
301
+ <IN1.27/>
302
+ <IN1.28/>
303
+ <IN1.29/>
304
+ <IN1.30/>
305
+ <IN1.31/>
306
+ <IN1.32/>
307
+ <IN1.33/>
308
+ <IN1.34/>
309
+ <IN1.35/>
310
+ <IN1.36>
311
+ <IN1.36.1>111111111</IN1.36.1>
312
+ </IN1.36>
313
+ </IN1>
314
+ </HL7Message>