roqua-healthy 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.document +3 -0
  3. data/.gitignore +8 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +31 -0
  6. data/.yardopts +1 -0
  7. data/ChangeLog.md +10 -0
  8. data/Gemfile +8 -0
  9. data/Guardfile +11 -0
  10. data/LICENSE.txt +20 -0
  11. data/README.md +31 -0
  12. data/Rakefile +33 -0
  13. data/bin/get +8 -0
  14. data/bin/get_old_mirth_processing_result +6 -0
  15. data/bin/get_xml_for_patient +6 -0
  16. data/bin/parse_local_xml +9 -0
  17. data/healthy.gemspec +42 -0
  18. data/lib/roqua/healthy/a19/address_parser.rb +46 -0
  19. data/lib/roqua/healthy/a19/cdis_name_parser.rb +23 -0
  20. data/lib/roqua/healthy/a19/correct_patient_check.rb +18 -0
  21. data/lib/roqua/healthy/a19/fetcher.rb +61 -0
  22. data/lib/roqua/healthy/a19/name_parser.rb +52 -0
  23. data/lib/roqua/healthy/a19/response_parser.rb +27 -0
  24. data/lib/roqua/healthy/a19/response_validator.rb +45 -0
  25. data/lib/roqua/healthy/a19/transformer.rb +102 -0
  26. data/lib/roqua/healthy/a19.rb +25 -0
  27. data/lib/roqua/healthy/errors.rb +16 -0
  28. data/lib/roqua/healthy/message_cleaner.rb +44 -0
  29. data/lib/roqua/healthy/version.rb +6 -0
  30. data/lib/roqua/healthy.rb +14 -0
  31. data/lib/roqua-healthy.rb +1 -0
  32. data/spec/fixtures/cdis_gerda_geit.xml +181 -0
  33. data/spec/fixtures/cdis_jan_fictief.xml +177 -0
  34. data/spec/fixtures/cdis_piet_fictief.xml +177 -0
  35. data/spec/fixtures/comez_patient.xml +259 -0
  36. data/spec/fixtures/medo_patient.xml +101 -0
  37. data/spec/fixtures/oru-requests/spsy1218j.hl7 +82 -0
  38. data/spec/fixtures/oru-requests/spsy1218o.hl7 +76 -0
  39. data/spec/fixtures/oru-requests/spsy1218o2.hl7 +77 -0
  40. data/spec/fixtures/oru-requests/spsy411o.hl7 +73 -0
  41. data/spec/fixtures/oru-requests/spsy411o2.hl7 +71 -0
  42. data/spec/fixtures/oru-requests/spsyl.hl7 +71 -0
  43. data/spec/fixtures/oru-responses/xmcare_nack.hl7 +5 -0
  44. data/spec/fixtures/user_patient.xml +251 -0
  45. data/spec/fixtures/user_patient_with_gsm_and_email.xml +281 -0
  46. data/spec/fixtures/user_patient_with_maiden_name.xml +251 -0
  47. data/spec/fixtures/xmcare_impersonating_cdis.xml +245 -0
  48. data/spec/fixtures/xmcare_patient.xml +252 -0
  49. data/spec/fixtures/xmcare_patient_email_in_field_number_four.xml +245 -0
  50. data/spec/fixtures/xmcare_patient_not_found.xml +93 -0
  51. data/spec/fixtures/xmcare_patient_with_maiden_name.xml +252 -0
  52. data/spec/fixtures/xmcare_patient_without_birthdate.xml +250 -0
  53. data/spec/fixtures/xmcare_timeout_waiting_for_ack.xml +4 -0
  54. data/spec/healthy_spec.rb +7 -0
  55. data/spec/integration/cdis_spec.rb +72 -0
  56. data/spec/integration/comez_spec.rb +26 -0
  57. data/spec/integration/medo_spec.rb +26 -0
  58. data/spec/integration/mirth_spec.rb +17 -0
  59. data/spec/integration/user_spec.rb +72 -0
  60. data/spec/integration/xmcare_spec.rb +127 -0
  61. data/spec/spec_helper.rb +29 -0
  62. data/spec/support/fixtures.rb +14 -0
  63. data/spec/unit/a19/address_parser_spec.rb +132 -0
  64. data/spec/unit/a19/correct_patient_check_spec.rb +22 -0
  65. data/spec/unit/a19/fetcher_spec.rb +54 -0
  66. data/spec/unit/a19_spec.rb +4 -0
  67. data/spec/unit/message_cleaner_spec.rb +47 -0
  68. metadata +361 -0
@@ -0,0 +1,16 @@
1
+ module Roqua
2
+ module Healthy
3
+ class UnknownFailure < StandardError; end
4
+ class IllegalMirthResponse < StandardError; end
5
+ class PatientIdNotInRemote < StandardError; end
6
+ class Timeout < StandardError; end
7
+ class HostUnreachable < StandardError; end
8
+ class ConnectionRefused < StandardError; end
9
+
10
+ class PatientNotFound < StandardError; end
11
+
12
+ module MirthErrors
13
+ class WrongPatient < StandardError; end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,44 @@
1
+ module Roqua
2
+ module Healthy
3
+ class MessageCleaner
4
+ def initialize(message)
5
+ @message = message
6
+ end
7
+
8
+ def message
9
+ clean_hash(@message)
10
+ end
11
+
12
+ def clean(thing)
13
+ case thing
14
+ when Hash
15
+ clean_hash(thing)
16
+ when Array
17
+ clean_array(thing)
18
+ when String
19
+ clean_string(thing)
20
+ else
21
+ thing
22
+ end
23
+ end
24
+
25
+ def clean_hash(hash)
26
+ hash.each do |key, value|
27
+ hash[key] = clean(value)
28
+ end
29
+ hash
30
+ end
31
+
32
+ def clean_array(array)
33
+ array.map do |value|
34
+ clean(value)
35
+ end
36
+ end
37
+
38
+ def clean_string(string)
39
+ return '' if string == '""'
40
+ string.strip
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,6 @@
1
+ module Roqua
2
+ module Healthy
3
+ # healthy version
4
+ VERSION = "1.0.0"
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ require 'roqua/support'
2
+
3
+ require 'roqua/healthy/version'
4
+ require 'roqua/healthy/message_cleaner'
5
+ require 'roqua/healthy/a19'
6
+ require 'roqua/healthy/errors'
7
+
8
+ module Roqua
9
+ module Healthy
10
+ class << self
11
+ attr_accessor :a19_endpoint
12
+ end
13
+ end
14
+ end
@@ -0,0 +1 @@
1
+ require 'roqua/healthy'
@@ -0,0 +1,181 @@
1
+ <HL7Message>
2
+ <MSH>
3
+ <MSH.1>|</MSH.1>
4
+ <MSH.2>^~\&amp;</MSH.2>
5
+ <MSH.3>
6
+ <MSH.3.1>CDIS</MSH.3.1>
7
+ </MSH.3>
8
+ <MSH.4>
9
+ <MSH.4.1>UMCG</MSH.4.1>
10
+ </MSH.4>
11
+ <MSH.5>
12
+ <MSH.5.1>ROQUA</MSH.5.1>
13
+ </MSH.5>
14
+ <MSH.6>
15
+ <MSH.6.1>RGOC</MSH.6.1>
16
+ </MSH.6>
17
+ <MSH.7>
18
+ <MSH.7.1>201309301202</MSH.7.1>
19
+ </MSH.7>
20
+ <MSH.8/>
21
+ <MSH.9>
22
+ <MSH.9.1>ADR</MSH.9.1>
23
+ <MSH.9.2>A19</MSH.9.2>
24
+ </MSH.9>
25
+ <MSH.10>
26
+ <MSH.10.1>a47cf06051</MSH.10.1>
27
+ </MSH.10>
28
+ <MSH.11>
29
+ <MSH.11.1>P</MSH.11.1>
30
+ </MSH.11>
31
+ <MSH.12>
32
+ <MSH.12.1>2.4</MSH.12.1>
33
+ </MSH.12>
34
+ <MSH.13/>
35
+ <MSH.14/>
36
+ <MSH.15>
37
+ <MSH.15.1>NE</MSH.15.1>
38
+ </MSH.15>
39
+ </MSH>
40
+ <MSA>
41
+ <MSA.1>
42
+ <MSA.1.1>AA</MSA.1.1>
43
+ </MSA.1>
44
+ <MSA.2>
45
+ <MSA.2.1>a47cf06051</MSA.2.1>
46
+ </MSA.2>
47
+ </MSA>
48
+ <QRD>
49
+ <QRD.1>
50
+ <QRD.1.1>20130930</QRD.1.1>
51
+ </QRD.1>
52
+ <QRD.2>
53
+ <QRD.2.1>R</QRD.2.1>
54
+ </QRD.2>
55
+ <QRD.3>
56
+ <QRD.3.1>I</QRD.3.1>
57
+ </QRD.3>
58
+ <QRD.4>
59
+ <QRD.4.1>a47cf06051</QRD.4.1>
60
+ </QRD.4>
61
+ <QRD.5/>
62
+ <QRD.6/>
63
+ <QRD.7>
64
+ <QRD.7.1>1</QRD.7.1>
65
+ <QRD.7.2>RD</QRD.7.2>
66
+ </QRD.7>
67
+ <QRD.8>
68
+ <QRD.8.1>7078387</QRD.8.1>
69
+ </QRD.8>
70
+ <QRD.9>
71
+ <QRD.9.1>DEM</QRD.9.1>
72
+ </QRD.9>
73
+ </QRD>
74
+ <PID>
75
+ <PID.1>
76
+ <PID.1.1>1</PID.1.1>
77
+ </PID.1>
78
+ <PID.2/>
79
+ <PID.3>
80
+ <PID.3.1>7078387</PID.3.1>
81
+ <PID.3.2/>
82
+ <PID.3.3/>
83
+ <PID.3.4/>
84
+ <PID.3.5>PI</PID.3.5>
85
+ </PID.3>
86
+ <PID.3>
87
+ <PID.3.1>003704397</PID.3.1>
88
+ <PID.3.2/>
89
+ <PID.3.3/>
90
+ <PID.3.4/>
91
+ <PID.3.5>NNNLD</PID.3.5>
92
+ </PID.3>
93
+ <PID.3>
94
+ <PID.3.1>&quot;&quot;</PID.3.1>
95
+ <PID.3.2/>
96
+ <PID.3.3/>
97
+ <PID.3.4>GIRO</PID.3.4>
98
+ <PID.3.5>BA</PID.3.5>
99
+ </PID.3>
100
+ <PID.3>
101
+ <PID.3.1>&quot;&quot;</PID.3.1>
102
+ <PID.3.2/>
103
+ <PID.3.3/>
104
+ <PID.3.4>BANK</PID.3.4>
105
+ <PID.3.5>BA</PID.3.5>
106
+ </PID.3>
107
+ <PID.4/>
108
+ <PID.5>
109
+ <PID.5.1>
110
+ <PID.5.1.1>Geit</PID.5.1.1>
111
+ <PID.5.1.2/>
112
+ <PID.5.1.3>Geit</PID.5.1.3>
113
+ <PID.5.1.4/>
114
+ <PID.5.1.5>&quot;&quot;</PID.5.1.5>
115
+ </PID.5.1>
116
+ <PID.5.2>Gerda</PID.5.2>
117
+ <PID.5.3>G.</PID.5.3>
118
+ <PID.5.4/>
119
+ <PID.5.5/>
120
+ <PID.5.6/>
121
+ <PID.5.7>L</PID.5.7>
122
+ </PID.5>
123
+ <PID.6/>
124
+ <PID.7>
125
+ <PID.7.1>19880101</PID.7.1>
126
+ </PID.7>
127
+ <PID.8>
128
+ <PID.8.1>F</PID.8.1>
129
+ </PID.8>
130
+ <PID.9/>
131
+ <PID.10/>
132
+ <PID.11>
133
+ <PID.11.1>
134
+ <PID.11.1.1>-Oostersnglfout </PID.11.1.1>
135
+ <PID.11.1.2>-Oostersnglfout</PID.11.1.2>
136
+ </PID.11.1>
137
+ <PID.11.2/>
138
+ <PID.11.3>Groningen</PID.11.3>
139
+ <PID.11.4>&quot;&quot;</PID.11.4>
140
+ <PID.11.5>9713EZ</PID.11.5>
141
+ <PID.11.6>NL</PID.11.6>
142
+ <PID.11.7>M</PID.11.7>
143
+ </PID.11>
144
+ <PID.12/>
145
+ <PID.13>
146
+ <PID.13.1>&quot;&quot;</PID.13.1>
147
+ </PID.13>
148
+ <PID.14>
149
+ <PID.14.1>050-3613621</PID.14.1>
150
+ </PID.14>
151
+ <PID.15/>
152
+ <PID.16>
153
+ <PID.16.1>S</PID.16.1>
154
+ </PID.16>
155
+ <PID.17/>
156
+ <PID.18/>
157
+ <PID.19/>
158
+ <PID.20/>
159
+ <PID.21/>
160
+ <PID.22/>
161
+ <PID.23>
162
+ <PID.23.1>&quot;&quot;</PID.23.1>
163
+ </PID.23>
164
+ <PID.24>
165
+ <PID.24.1>N</PID.24.1>
166
+ </PID.24>
167
+ <PID.25/>
168
+ <PID.26/>
169
+ <PID.27/>
170
+ <PID.28/>
171
+ <PID.29>
172
+ <PID.29.1>&quot;&quot;</PID.29.1>
173
+ </PID.29>
174
+ <PID.30>
175
+ <PID.30.1>N</PID.30.1>
176
+ </PID.30>
177
+ <PID.31>
178
+ <PID.31.1>N</PID.31.1>
179
+ </PID.31>
180
+ </PID>
181
+ </HL7Message>
@@ -0,0 +1,177 @@
1
+ <HL7Message>
2
+ <MSH>
3
+ <MSH.1>|</MSH.1>
4
+ <MSH.2>^~\&amp;</MSH.2>
5
+ <MSH.3>
6
+ <MSH.3.1>CDIS</MSH.3.1>
7
+ </MSH.3>
8
+ <MSH.4>
9
+ <MSH.4.1>UMCG</MSH.4.1>
10
+ </MSH.4>
11
+ <MSH.5>
12
+ <MSH.5.1>ROQUA</MSH.5.1>
13
+ </MSH.5>
14
+ <MSH.6>
15
+ <MSH.6.1>RGOC</MSH.6.1>
16
+ </MSH.6>
17
+ <MSH.7>
18
+ <MSH.7.1>201309301045</MSH.7.1>
19
+ </MSH.7>
20
+ <MSH.8/>
21
+ <MSH.9>
22
+ <MSH.9.1>ADR</MSH.9.1>
23
+ <MSH.9.2>A19</MSH.9.2>
24
+ </MSH.9>
25
+ <MSH.10>
26
+ <MSH.10.1>54ff8db701</MSH.10.1>
27
+ </MSH.10>
28
+ <MSH.11>
29
+ <MSH.11.1>P</MSH.11.1>
30
+ </MSH.11>
31
+ <MSH.12>
32
+ <MSH.12.1>2.4</MSH.12.1>
33
+ </MSH.12>
34
+ <MSH.13/>
35
+ <MSH.14/>
36
+ <MSH.15>
37
+ <MSH.15.1>NE</MSH.15.1>
38
+ </MSH.15>
39
+ </MSH>
40
+ <MSA>
41
+ <MSA.1>
42
+ <MSA.1.1>AA</MSA.1.1>
43
+ </MSA.1>
44
+ <MSA.2>
45
+ <MSA.2.1>54ff8db701</MSA.2.1>
46
+ </MSA.2>
47
+ </MSA>
48
+ <QRD>
49
+ <QRD.1>
50
+ <QRD.1.1>20130930</QRD.1.1>
51
+ </QRD.1>
52
+ <QRD.2>
53
+ <QRD.2.1>R</QRD.2.1>
54
+ </QRD.2>
55
+ <QRD.3>
56
+ <QRD.3.1>I</QRD.3.1>
57
+ </QRD.3>
58
+ <QRD.4>
59
+ <QRD.4.1>54ff8db701</QRD.4.1>
60
+ </QRD.4>
61
+ <QRD.5/>
62
+ <QRD.6/>
63
+ <QRD.7>
64
+ <QRD.7.1>1</QRD.7.1>
65
+ <QRD.7.2>RD</QRD.7.2>
66
+ </QRD.7>
67
+ <QRD.8>
68
+ <QRD.8.1>7767853</QRD.8.1>
69
+ </QRD.8>
70
+ <QRD.9>
71
+ <QRD.9.1>DEM</QRD.9.1>
72
+ </QRD.9>
73
+ </QRD>
74
+ <PID>
75
+ <PID.1>
76
+ <PID.1.1>1</PID.1.1>
77
+ </PID.1>
78
+ <PID.2/>
79
+ <PID.3>
80
+ <PID.3.1>7767853</PID.3.1>
81
+ <PID.3.2/>
82
+ <PID.3.3/>
83
+ <PID.3.4/>
84
+ <PID.3.5>PI</PID.3.5>
85
+ </PID.3>
86
+ <PID.3>
87
+ <PID.3.1>&quot;&quot;</PID.3.1>
88
+ <PID.3.2/>
89
+ <PID.3.3/>
90
+ <PID.3.4/>
91
+ <PID.3.5>NNNLD</PID.3.5>
92
+ </PID.3>
93
+ <PID.3>
94
+ <PID.3.1>&quot;&quot;</PID.3.1>
95
+ <PID.3.2/>
96
+ <PID.3.3/>
97
+ <PID.3.4>GIRO</PID.3.4>
98
+ <PID.3.5>BA</PID.3.5>
99
+ </PID.3>
100
+ <PID.3>
101
+ <PID.3.1>&quot;&quot;</PID.3.1>
102
+ <PID.3.2/>
103
+ <PID.3.3/>
104
+ <PID.3.4>BANK</PID.3.4>
105
+ <PID.3.5>BA</PID.3.5>
106
+ </PID.3>
107
+ <PID.4/>
108
+ <PID.5>
109
+ <PID.5.1>
110
+ <PID.5.1.1>Fictief</PID.5.1.1>
111
+ <PID.5.1.2/>
112
+ <PID.5.1.3>Fictief</PID.5.1.3>
113
+ </PID.5.1>
114
+ <PID.5.2>Jan</PID.5.2>
115
+ <PID.5.3>J.A.B.C.</PID.5.3>
116
+ <PID.5.4/>
117
+ <PID.5.5/>
118
+ <PID.5.6/>
119
+ <PID.5.7>L</PID.5.7>
120
+ </PID.5>
121
+ <PID.6/>
122
+ <PID.7>
123
+ <PID.7.1>19800101</PID.7.1>
124
+ </PID.7>
125
+ <PID.8>
126
+ <PID.8.1>M</PID.8.1>
127
+ </PID.8>
128
+ <PID.9/>
129
+ <PID.10/>
130
+ <PID.11>
131
+ <PID.11.1>
132
+ <PID.11.1.1>-Hanzepleinfout 1</PID.11.1.1>
133
+ <PID.11.1.2>-Hanzepleinfout</PID.11.1.2>
134
+ <PID.11.1.3>1</PID.11.1.3>
135
+ </PID.11.1>
136
+ <PID.11.2/>
137
+ <PID.11.3>Groningen</PID.11.3>
138
+ <PID.11.4>&quot;&quot;</PID.11.4>
139
+ <PID.11.5>42869</PID.11.5>
140
+ <PID.11.6>&quot;&quot;</PID.11.6>
141
+ <PID.11.7>M</PID.11.7>
142
+ </PID.11>
143
+ <PID.12/>
144
+ <PID.13>
145
+ <PID.13.1>050-1234568</PID.13.1>
146
+ </PID.13>
147
+ <PID.14>
148
+ <PID.14.1>&quot;&quot;</PID.14.1>
149
+ </PID.14>
150
+ <PID.15/>
151
+ <PID.16>
152
+ <PID.16.1>S</PID.16.1>
153
+ </PID.16>
154
+ <PID.17/>
155
+ <PID.18/>
156
+ <PID.19/>
157
+ <PID.20/>
158
+ <PID.21/>
159
+ <PID.22/>
160
+ <PID.23>
161
+ <PID.23.1>&quot;&quot;</PID.23.1>
162
+ </PID.23>
163
+ <PID.24>
164
+ <PID.24.1>Y</PID.24.1>
165
+ </PID.24>
166
+ <PID.25/>
167
+ <PID.26/>
168
+ <PID.27/>
169
+ <PID.28/>
170
+ <PID.29>
171
+ <PID.29.1>&quot;&quot;</PID.29.1>
172
+ </PID.29>
173
+ <PID.30>
174
+ <PID.30.1>N</PID.30.1>
175
+ </PID.30>
176
+ </PID>
177
+ </HL7Message>
@@ -0,0 +1,177 @@
1
+ <HL7Message>
2
+ <MSH>
3
+ <MSH.1>|</MSH.1>
4
+ <MSH.2>^~\&amp;</MSH.2>
5
+ <MSH.3>
6
+ <MSH.3.1>CDIS</MSH.3.1>
7
+ </MSH.3>
8
+ <MSH.4>
9
+ <MSH.4.1>UMCG</MSH.4.1>
10
+ </MSH.4>
11
+ <MSH.5>
12
+ <MSH.5.1>ROQUA</MSH.5.1>
13
+ </MSH.5>
14
+ <MSH.6>
15
+ <MSH.6.1>RGOC</MSH.6.1>
16
+ </MSH.6>
17
+ <MSH.7>
18
+ <MSH.7.1>201309301154</MSH.7.1>
19
+ </MSH.7>
20
+ <MSH.8/>
21
+ <MSH.9>
22
+ <MSH.9.1>ADR</MSH.9.1>
23
+ <MSH.9.2>A19</MSH.9.2>
24
+ </MSH.9>
25
+ <MSH.10>
26
+ <MSH.10.1>33946cdb33</MSH.10.1>
27
+ </MSH.10>
28
+ <MSH.11>
29
+ <MSH.11.1>P</MSH.11.1>
30
+ </MSH.11>
31
+ <MSH.12>
32
+ <MSH.12.1>2.4</MSH.12.1>
33
+ </MSH.12>
34
+ <MSH.13/>
35
+ <MSH.14/>
36
+ <MSH.15>
37
+ <MSH.15.1>NE</MSH.15.1>
38
+ </MSH.15>
39
+ </MSH>
40
+ <MSA>
41
+ <MSA.1>
42
+ <MSA.1.1>AA</MSA.1.1>
43
+ </MSA.1>
44
+ <MSA.2>
45
+ <MSA.2.1>33946cdb33</MSA.2.1>
46
+ </MSA.2>
47
+ </MSA>
48
+ <QRD>
49
+ <QRD.1>
50
+ <QRD.1.1>20130930</QRD.1.1>
51
+ </QRD.1>
52
+ <QRD.2>
53
+ <QRD.2.1>R</QRD.2.1>
54
+ </QRD.2>
55
+ <QRD.3>
56
+ <QRD.3.1>I</QRD.3.1>
57
+ </QRD.3>
58
+ <QRD.4>
59
+ <QRD.4.1>33946cdb33</QRD.4.1>
60
+ </QRD.4>
61
+ <QRD.5/>
62
+ <QRD.6/>
63
+ <QRD.7>
64
+ <QRD.7.1>1</QRD.7.1>
65
+ <QRD.7.2>RD</QRD.7.2>
66
+ </QRD.7>
67
+ <QRD.8>
68
+ <QRD.8.1>7718758</QRD.8.1>
69
+ </QRD.8>
70
+ <QRD.9>
71
+ <QRD.9.1>DEM</QRD.9.1>
72
+ </QRD.9>
73
+ </QRD>
74
+ <PID>
75
+ <PID.1>
76
+ <PID.1.1>1</PID.1.1>
77
+ </PID.1>
78
+ <PID.2/>
79
+ <PID.3>
80
+ <PID.3.1>7718758</PID.3.1>
81
+ <PID.3.2/>
82
+ <PID.3.3/>
83
+ <PID.3.4/>
84
+ <PID.3.5>PI</PID.3.5>
85
+ </PID.3>
86
+ <PID.3>
87
+ <PID.3.1>&quot;&quot;</PID.3.1>
88
+ <PID.3.2/>
89
+ <PID.3.3/>
90
+ <PID.3.4/>
91
+ <PID.3.5>NNNLD</PID.3.5>
92
+ </PID.3>
93
+ <PID.3>
94
+ <PID.3.1>&quot;&quot;</PID.3.1>
95
+ <PID.3.2/>
96
+ <PID.3.3/>
97
+ <PID.3.4>GIRO</PID.3.4>
98
+ <PID.3.5>BA</PID.3.5>
99
+ </PID.3>
100
+ <PID.3>
101
+ <PID.3.1>&quot;&quot;</PID.3.1>
102
+ <PID.3.2/>
103
+ <PID.3.3/>
104
+ <PID.3.4>BANK</PID.3.4>
105
+ <PID.3.5>BA</PID.3.5>
106
+ </PID.3>
107
+ <PID.4/>
108
+ <PID.5>
109
+ <PID.5.1>
110
+ <PID.5.1.1>Fictief</PID.5.1.1>
111
+ <PID.5.1.2/>
112
+ <PID.5.1.3>Fictief</PID.5.1.3>
113
+ </PID.5.1>
114
+ <PID.5.2>Piet</PID.5.2>
115
+ <PID.5.3>P.X.X.X.</PID.5.3>
116
+ <PID.5.4/>
117
+ <PID.5.5/>
118
+ <PID.5.6/>
119
+ <PID.5.7>L</PID.5.7>
120
+ </PID.5>
121
+ <PID.6/>
122
+ <PID.7>
123
+ <PID.7.1>19121212</PID.7.1>
124
+ </PID.7>
125
+ <PID.8>
126
+ <PID.8.1>M</PID.8.1>
127
+ </PID.8>
128
+ <PID.9/>
129
+ <PID.10/>
130
+ <PID.11>
131
+ <PID.11.1>
132
+ <PID.11.1.1>Ziekenhuisplein 1</PID.11.1.1>
133
+ <PID.11.1.2>Ziekenhuisplein</PID.11.1.2>
134
+ <PID.11.1.3>1</PID.11.1.3>
135
+ </PID.11.1>
136
+ <PID.11.2/>
137
+ <PID.11.3>Assen</PID.11.3>
138
+ <PID.11.4>&quot;&quot;</PID.11.4>
139
+ <PID.11.5>9402XX</PID.11.5>
140
+ <PID.11.6>NL</PID.11.6>
141
+ <PID.11.7>M</PID.11.7>
142
+ </PID.11>
143
+ <PID.12/>
144
+ <PID.13>
145
+ <PID.13.1>&quot;&quot;</PID.13.1>
146
+ </PID.13>
147
+ <PID.14>
148
+ <PID.14.1>0592-0611</PID.14.1>
149
+ </PID.14>
150
+ <PID.15/>
151
+ <PID.16>
152
+ <PID.16.1>M</PID.16.1>
153
+ </PID.16>
154
+ <PID.17/>
155
+ <PID.18/>
156
+ <PID.19/>
157
+ <PID.20/>
158
+ <PID.21/>
159
+ <PID.22/>
160
+ <PID.23>
161
+ <PID.23.1>Assen</PID.23.1>
162
+ </PID.23>
163
+ <PID.24>
164
+ <PID.24.1>N</PID.24.1>
165
+ </PID.24>
166
+ <PID.25/>
167
+ <PID.26/>
168
+ <PID.27/>
169
+ <PID.28/>
170
+ <PID.29>
171
+ <PID.29.1>&quot;&quot;</PID.29.1>
172
+ </PID.29>
173
+ <PID.30>
174
+ <PID.30.1>N</PID.30.1>
175
+ </PID.30>
176
+ </PID>
177
+ </HL7Message>