roqua-healthy 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog.md +4 -0
- data/lib/roqua/healthy/a19/response_validator.rb +14 -3
- data/lib/roqua/healthy/version.rb +2 -2
- data/spec/fixtures/user_patient_not_found.xml +131 -0
- data/spec/integration/user_spec.rb +9 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3592ec2e660920a456d96a84c0592a2e06feb6a6
|
|
4
|
+
data.tar.gz: 314df1d2cc8921c18b68e30b19f29d09047273b3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 389a5a8552e049f2cbec4028ca093928625eea1eb8f56740a0b50db01767e5e8658d0a85b8d8d22621e7729a49aab21b146701028d905622878f7a4e1462a070
|
|
7
|
+
data.tar.gz: edd69073fd2923ea17007687dd81b0c4cbb0c30200a3dea2fb4d9d57fc7ba05521a8e3478067d600304e6a2bf5b9dbe1f60166b00c07de7a79bf670d5348044c
|
data/ChangeLog.md
CHANGED
|
@@ -30,9 +30,9 @@ module Roqua
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def validate_200
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
parsed_message = parser.fetch("HL7Message")
|
|
34
|
+
ensure_patient_found(parsed_message)
|
|
35
|
+
ensure_correct_patient(parsed_message)
|
|
36
36
|
true
|
|
37
37
|
end
|
|
38
38
|
|
|
@@ -51,6 +51,17 @@ module Roqua
|
|
|
51
51
|
raise ::Roqua::Healthy::ConnectionRefused, failure["error"] if failure["error"] == "Unable to connect to destination\tConnectException\tConnection refused"
|
|
52
52
|
raise ::Roqua::Healthy::UnknownFailure, failure["error"]
|
|
53
53
|
end
|
|
54
|
+
|
|
55
|
+
private
|
|
56
|
+
|
|
57
|
+
def ensure_patient_found(parsed_message)
|
|
58
|
+
raise ::Roqua::Healthy::PatientNotFound if parsed_message.key?("ERR") && parsed_message.fetch("ERR").fetch("ERR.1").fetch("ERR.1.4").fetch("ERR.1.4.2") =~ /Patient \(@\) niet gevonden\(.*\)/
|
|
59
|
+
raise ::Roqua::Healthy::PatientNotFound if parsed_message.key?("QAK") && parsed_message.fetch("QAK").fetch("QAK.2").fetch("QAK.2.1") == "NF"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def ensure_correct_patient(parsed_message)
|
|
63
|
+
raise ::Roqua::Healthy::MirthErrors::WrongPatient if parsed_message.key?('QRD') && parsed_message.fetch("QRD").fetch("QRD.8").fetch("QRD.8.1") != patient_id
|
|
64
|
+
end
|
|
54
65
|
end
|
|
55
66
|
end
|
|
56
67
|
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<HL7Message>
|
|
3
|
+
<MSH>
|
|
4
|
+
<MSH.1>|</MSH.1>
|
|
5
|
+
<MSH.2>^~\&</MSH.2>
|
|
6
|
+
<MSH.3>
|
|
7
|
+
<MSH.3.1>USER</MSH.3.1>
|
|
8
|
+
</MSH.3>
|
|
9
|
+
<MSH.4>
|
|
10
|
+
<MSH.4.1>IMPULSE</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>201405081100</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>
|
|
26
|
+
<MSH.10>
|
|
27
|
+
<MSH.10.1>00000000000003589431</MSH.10.1>
|
|
28
|
+
</MSH.10>
|
|
29
|
+
<MSH.11>
|
|
30
|
+
<MSH.11.1>P</MSH.11.1>
|
|
31
|
+
</MSH.11>
|
|
32
|
+
<MSH.12>
|
|
33
|
+
<MSH.12.1>2.4</MSH.12.1>
|
|
34
|
+
</MSH.12>
|
|
35
|
+
<MSH.13/>
|
|
36
|
+
<MSH.14/>
|
|
37
|
+
<MSH.15>
|
|
38
|
+
<MSH.15.1>NE</MSH.15.1>
|
|
39
|
+
</MSH.15>
|
|
40
|
+
<MSH.16>
|
|
41
|
+
<MSH.16.1>NE</MSH.16.1>
|
|
42
|
+
</MSH.16>
|
|
43
|
+
<MSH.17>
|
|
44
|
+
<MSH.17.1>NLD</MSH.17.1>
|
|
45
|
+
</MSH.17>
|
|
46
|
+
<MSH.18>
|
|
47
|
+
<MSH.18.1>UNICODE</MSH.18.1>
|
|
48
|
+
</MSH.18>
|
|
49
|
+
<MSH.19/>
|
|
50
|
+
<MSH.20/>
|
|
51
|
+
<MSH.21/>
|
|
52
|
+
<MSH.22/>
|
|
53
|
+
</MSH>
|
|
54
|
+
<MSA>
|
|
55
|
+
<MSA.1>
|
|
56
|
+
<MSA.1.1>CA</MSA.1.1>
|
|
57
|
+
</MSA.1>
|
|
58
|
+
<MSA.2>
|
|
59
|
+
<MSA.2.1>a00dd41161</MSA.2.1>
|
|
60
|
+
</MSA.2>
|
|
61
|
+
<MSA.3/>
|
|
62
|
+
<MSA.4/>
|
|
63
|
+
<MSA.5/>
|
|
64
|
+
<MSA.6/>
|
|
65
|
+
<MSA.7/>
|
|
66
|
+
</MSA>
|
|
67
|
+
<QAK>
|
|
68
|
+
<QAK.1/>
|
|
69
|
+
<QAK.2>
|
|
70
|
+
<QAK.2.1>NF</QAK.2.1>
|
|
71
|
+
</QAK.2>
|
|
72
|
+
<QAK.3/>
|
|
73
|
+
<QAK.4/>
|
|
74
|
+
<QAK.5/>
|
|
75
|
+
<QAK.6/>
|
|
76
|
+
<QAK.7/>
|
|
77
|
+
</QAK>
|
|
78
|
+
<QRD>
|
|
79
|
+
<QRD.1>
|
|
80
|
+
<QRD.1.1>201405080000</QRD.1.1>
|
|
81
|
+
</QRD.1>
|
|
82
|
+
<QRD.2>
|
|
83
|
+
<QRD.2.1>R</QRD.2.1>
|
|
84
|
+
</QRD.2>
|
|
85
|
+
<QRD.3>
|
|
86
|
+
<QRD.3.1>I</QRD.3.1>
|
|
87
|
+
</QRD.3>
|
|
88
|
+
<QRD.4>
|
|
89
|
+
<QRD.4.1>a00dd41161</QRD.4.1>
|
|
90
|
+
</QRD.4>
|
|
91
|
+
<QRD.5/>
|
|
92
|
+
<QRD.6/>
|
|
93
|
+
<QRD.7>
|
|
94
|
+
<QRD.7.1>1</QRD.7.1>
|
|
95
|
+
<QRD.7.2>RD</QRD.7.2>
|
|
96
|
+
</QRD.7>
|
|
97
|
+
<QRD.8>
|
|
98
|
+
<QRD.8.1>123456</QRD.8.1>
|
|
99
|
+
<QRD.8.2>
|
|
100
|
+
<QRD.8.2.1/>
|
|
101
|
+
<QRD.8.2.2/>
|
|
102
|
+
<QRD.8.2.3/>
|
|
103
|
+
<QRD.8.2.4/>
|
|
104
|
+
<QRD.8.2.5/>
|
|
105
|
+
</QRD.8.2>
|
|
106
|
+
<QRD.8.3/>
|
|
107
|
+
<QRD.8.4/>
|
|
108
|
+
<QRD.8.5/>
|
|
109
|
+
<QRD.8.6/>
|
|
110
|
+
<QRD.8.7/>
|
|
111
|
+
<QRD.8.8/>
|
|
112
|
+
<QRD.8.9/>
|
|
113
|
+
<QRD.8.10/>
|
|
114
|
+
<QRD.8.11/>
|
|
115
|
+
<QRD.8.12/>
|
|
116
|
+
<QRD.8.13/>
|
|
117
|
+
<QRD.8.14/>
|
|
118
|
+
<QRD.8.15/>
|
|
119
|
+
<QRD.8.16/>
|
|
120
|
+
<QRD.8.17/>
|
|
121
|
+
<QRD.8.18/>
|
|
122
|
+
</QRD.8>
|
|
123
|
+
<QRD.9>
|
|
124
|
+
<QRD.9.1>DEM</QRD.9.1>
|
|
125
|
+
</QRD.9>
|
|
126
|
+
<QRD.10/>
|
|
127
|
+
<QRD.11/>
|
|
128
|
+
<QRD.12/>
|
|
129
|
+
<QRD.13/>
|
|
130
|
+
</QRD>
|
|
131
|
+
</HL7Message>
|
|
@@ -69,4 +69,12 @@ describe 'Fetching A19 from USER' do
|
|
|
69
69
|
it { expect(subject[:gender]).to eq('M') }
|
|
70
70
|
it { expect(subject[:phone_cell]).to eq('0611223344') }
|
|
71
71
|
end
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
describe 'a patient that does not exist' do
|
|
74
|
+
before { load_fixture 'user_patient_not_found', '123456' }
|
|
75
|
+
|
|
76
|
+
it 'raises PatientNotFound' do
|
|
77
|
+
expect { Roqua::Healthy::A19.fetch("123456") }.to raise_error(Roqua::Healthy::PatientNotFound)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: roqua-healthy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marten Veldthuis
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-05-
|
|
11
|
+
date: 2014-05-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -278,6 +278,7 @@ files:
|
|
|
278
278
|
- spec/fixtures/oru-requests/spsyl.hl7
|
|
279
279
|
- spec/fixtures/oru-responses/xmcare_nack.hl7
|
|
280
280
|
- spec/fixtures/user_patient.xml
|
|
281
|
+
- spec/fixtures/user_patient_not_found.xml
|
|
281
282
|
- spec/fixtures/user_patient_with_gsm_and_email.xml
|
|
282
283
|
- spec/fixtures/user_patient_with_maiden_name.xml
|
|
283
284
|
- spec/fixtures/xmcare_impersonating_cdis.xml
|
|
@@ -341,6 +342,7 @@ test_files:
|
|
|
341
342
|
- spec/fixtures/oru-requests/spsyl.hl7
|
|
342
343
|
- spec/fixtures/oru-responses/xmcare_nack.hl7
|
|
343
344
|
- spec/fixtures/user_patient.xml
|
|
345
|
+
- spec/fixtures/user_patient_not_found.xml
|
|
344
346
|
- spec/fixtures/user_patient_with_gsm_and_email.xml
|
|
345
347
|
- spec/fixtures/user_patient_with_maiden_name.xml
|
|
346
348
|
- spec/fixtures/xmcare_impersonating_cdis.xml
|