caren-api 0.11.1 → 0.12.0
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.
- data/VERSION +1 -1
- data/caren-api.gemspec +7 -2
- data/lib/caren/caren.rb +1 -0
- data/lib/caren/dossier/dossier_entry.rb +76 -0
- data/lib/caren/person.rb +40 -0
- data/lib/caren-api.rb +1 -0
- data/spec/dossier/dossier_entry_spec.rb +66 -0
- data/spec/fixtures/caren_dossier_entries.xml +41 -0
- data/spec/fixtures/caren_dossier_entry.xml +20 -0
- metadata +8 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.12.0
|
data/caren-api.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "caren-api"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.12.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andre Foeken"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-06-13"
|
13
13
|
s.description = "You can use this gem as inspiration of the base of your connections with Caren."
|
14
14
|
s.email = "andre.foeken@nedap.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
|
|
36
36
|
"lib/caren/chat_session.rb",
|
37
37
|
"lib/caren/chat_session_message.rb",
|
38
38
|
"lib/caren/client.rb",
|
39
|
+
"lib/caren/dossier/dossier_entry.rb",
|
39
40
|
"lib/caren/employee.rb",
|
40
41
|
"lib/caren/error.rb",
|
41
42
|
"lib/caren/event.rb",
|
@@ -43,6 +44,7 @@ Gem::Specification.new do |s|
|
|
43
44
|
"lib/caren/event_slot_container.rb",
|
44
45
|
"lib/caren/external_message.rb",
|
45
46
|
"lib/caren/link.rb",
|
47
|
+
"lib/caren/person.rb",
|
46
48
|
"lib/caren/store/account.rb",
|
47
49
|
"lib/caren/store/account_entry.rb",
|
48
50
|
"lib/caren/store/address.rb",
|
@@ -58,6 +60,7 @@ Gem::Specification.new do |s|
|
|
58
60
|
"spec/chat_session_message_spec.rb",
|
59
61
|
"spec/chat_session_spec.rb",
|
60
62
|
"spec/client_spec.rb",
|
63
|
+
"spec/dossier/dossier_entry_spec.rb",
|
61
64
|
"spec/employee_spec.rb",
|
62
65
|
"spec/event_slot_container_spec.rb",
|
63
66
|
"spec/event_slot_spec.rb",
|
@@ -83,6 +86,8 @@ Gem::Specification.new do |s|
|
|
83
86
|
"spec/fixtures/caren_chat_session_message.xml",
|
84
87
|
"spec/fixtures/caren_chat_session_messages.xml",
|
85
88
|
"spec/fixtures/caren_chat_sessions.xml",
|
89
|
+
"spec/fixtures/caren_dossier_entries.xml",
|
90
|
+
"spec/fixtures/caren_dossier_entry.xml",
|
86
91
|
"spec/fixtures/caren_event.xml",
|
87
92
|
"spec/fixtures/caren_events.xml",
|
88
93
|
"spec/fixtures/caren_external_message.xml",
|
data/lib/caren/caren.rb
CHANGED
@@ -123,6 +123,7 @@ module Caren
|
|
123
123
|
:chat_sessions => Caren::ChatSession,
|
124
124
|
:chat_session_messages => Caren::ChatSessionMessage,
|
125
125
|
:care_providers => Caren::CareProvider,
|
126
|
+
:dossier_entries => Caren::Dossier::DossierEntry,
|
126
127
|
:billable_categories => Caren::Store::BillableCategory,
|
127
128
|
:billables => Caren::Store::Billable,
|
128
129
|
:invoices => Caren::Store::Invoice,
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Caren::Dossier ; end
|
2
|
+
class Caren::Dossier::DossierEntry < Caren::Base
|
3
|
+
|
4
|
+
def self.keys
|
5
|
+
[ :id, # Integer (Caren dossier entry id)
|
6
|
+
:type, # String
|
7
|
+
:value, # Float
|
8
|
+
:reporting_time, # DateTime
|
9
|
+
:person_name, # String (CP person name)
|
10
|
+
:external_id, # String (Your dossier entry id)
|
11
|
+
:external_person_id, # String (Your person id)
|
12
|
+
:care_provider_id, # Integer (Caren CP id)
|
13
|
+
:comment, # Text
|
14
|
+
:subject_id, # Integer (Caren person id)
|
15
|
+
:systolic_pressure, # Integer
|
16
|
+
:diastolic_pressure, # Integer
|
17
|
+
:heart_rate, # Integer
|
18
|
+
:bmi, # Float
|
19
|
+
:weight, # Float
|
20
|
+
:length # Integer
|
21
|
+
] + super
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.all subject_id, session
|
25
|
+
from_xml session.get(self.resource_url(subject_id))
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.find subject_id, id, session
|
29
|
+
from_xml session.get(self.resource_url(subject_id,id))
|
30
|
+
end
|
31
|
+
|
32
|
+
def create session
|
33
|
+
self.class.from_xml session.post self.class.resource_url(self.subject_id), self.to_xml
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def self.array_root
|
38
|
+
:dossier_entries
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.node_root
|
42
|
+
:dossier_entry
|
43
|
+
end
|
44
|
+
|
45
|
+
def as_xml
|
46
|
+
{ :type => self.type,
|
47
|
+
:external_id => self.external_id,
|
48
|
+
:external_person_id => self.external_person_id,
|
49
|
+
:subject_id => self.subject_id,
|
50
|
+
:person_name => self.person_name,
|
51
|
+
:comment => self.comment,
|
52
|
+
:value => self.value,
|
53
|
+
:reporting_time => self.reporting_time,
|
54
|
+
:systolic_pressure => self.systolic_pressure,
|
55
|
+
:diastolic_pressure => self.diastolic_pressure,
|
56
|
+
:heart_rate => self.heart_rate,
|
57
|
+
:bmi => self.bmi,
|
58
|
+
:weight => self.weight,
|
59
|
+
:length => self.length }
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.resource_location
|
63
|
+
"/api/pro/people/%i/dossier_entries"
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def resource_url subject_id, id=nil
|
69
|
+
self.class.resource_url(subject_id,id)
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.resource_url subject_id, id=nil
|
73
|
+
"#{self.resource_location % subject_id}#{id}"
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
data/lib/caren/person.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
class Caren::Person < Caren::Base
|
2
|
+
|
3
|
+
def self.keys
|
4
|
+
[:id, # Integer (Caren id)
|
5
|
+
:first_name, # String
|
6
|
+
:last_name, # String
|
7
|
+
:male, # Boolean
|
8
|
+
:email, # String
|
9
|
+
:photo, # String
|
10
|
+
:link_id, # Integer
|
11
|
+
:external_id, # String
|
12
|
+
:citizen_service_number # String
|
13
|
+
] + super
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.search key, value, session
|
17
|
+
from_xml session.get( self.search_url(key,value) )
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.find id, session
|
21
|
+
from_xml session.get(self.resource_url(id))
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.all session
|
25
|
+
from_xml session.get(self.resource_url)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.array_root
|
29
|
+
:people
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.node_root
|
33
|
+
:person
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.resource_location
|
37
|
+
"/api/pro/people"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/lib/caren-api.rb
CHANGED
@@ -19,6 +19,7 @@ require "caren/external_message"
|
|
19
19
|
require "caren/chat_session"
|
20
20
|
require "caren/chat_session_message"
|
21
21
|
require "caren/link"
|
22
|
+
require "caren/dossier/dossier_entry"
|
22
23
|
require "caren/store/store"
|
23
24
|
require "caren/store/billable"
|
24
25
|
require "caren/store/billable_category"
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "DossierEntry", "converting to xml" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@dossier_entry_a = Caren::Dossier::DossierEntry.new :type => 'Dossier::TemperatureDossierEntry',
|
7
|
+
:external_person_id => 1,
|
8
|
+
:external_id => 1,
|
9
|
+
:person_name => 'Andre Foeken',
|
10
|
+
:comment => 'Burning up',
|
11
|
+
:value => 38.1
|
12
|
+
|
13
|
+
@dossier_entry_b = Caren::Dossier::DossierEntry.new :type => 'Dossier::BMIDossierEntry',
|
14
|
+
:external_person_id => 2,
|
15
|
+
:external_id => 2,
|
16
|
+
:person_name => 'Jan Willem Mooij',
|
17
|
+
:comment => 'Heavy weight',
|
18
|
+
:value => 38.1
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should be able to convert a dossier entry to valid xml" do
|
22
|
+
@dossier_entry_a.should convert_to_valid_caren_xml
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should be able to convert an array of dossier entries to valid xml" do
|
26
|
+
[@dossier_entry_a,@dossier_entry_b].should convert_to_valid_caren_array_xml
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "DossierEntry", "REST methods" do
|
32
|
+
|
33
|
+
before do
|
34
|
+
message = File.read("spec/fixtures/caren_dossier_entry.xml")
|
35
|
+
messages = File.read("spec/fixtures/caren_dossier_entries.xml")
|
36
|
+
|
37
|
+
entries_url = Caren::Api.session.url_for( Caren::Dossier::DossierEntry.resource_url(1) )
|
38
|
+
entry_url = Caren::Api.session.url_for( Caren::Dossier::DossierEntry.resource_url(1,1) )
|
39
|
+
timestamp = DateTime.now.to_i
|
40
|
+
|
41
|
+
FakeWeb.register_uri(:get, entries_url, :body => messages, :signature => Caren::Api.session.sign(timestamp,nil,messages), :timestamp => timestamp )
|
42
|
+
FakeWeb.register_uri(:get, entry_url, :body => message, :signature => Caren::Api.session.sign(timestamp,nil,message), :timestamp => timestamp )
|
43
|
+
FakeWeb.register_uri(:post, entries_url, :status => 201, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
|
44
|
+
FakeWeb.register_uri(:delete, entry_url, :signature => Caren::Api.session.sign(timestamp), :timestamp => timestamp )
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should be able to find all dossier entries" do
|
48
|
+
messages = Caren::Dossier::DossierEntry.all 1, Caren::Api.session
|
49
|
+
messages.should have(2).things
|
50
|
+
messages.first.comment.should == "Test"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should be able to find one dossier entry" do
|
54
|
+
message = Caren::Dossier::DossierEntry.find 1, 1, Caren::Api.session
|
55
|
+
message.comment.should == "Test"
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be able to create a dossier entry" do
|
59
|
+
lambda{ Caren::Dossier::DossierEntry.new :type => 'Dossier::ReportDossierEntry',
|
60
|
+
:external_person_id => 1,
|
61
|
+
:external_id => 1,
|
62
|
+
:person_name => 'Andre Foeken',
|
63
|
+
:comment => 'This guy is a dude' }.should_not raise_error
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<dossier-entries type="array">
|
3
|
+
<dossier-entry>
|
4
|
+
<bmi type="float" nil="true"/>
|
5
|
+
<care-provider-id type="integer">4098</care-provider-id>
|
6
|
+
<care-provider-name>Zuwe</care-provider-name>
|
7
|
+
<comment>Test</comment>
|
8
|
+
<diastolic-pressure type="integer" nil="true"/>
|
9
|
+
<external-id>1</external-id>
|
10
|
+
<external-person-id nil="true"/>
|
11
|
+
<heart-rate type="integer" nil="true"/>
|
12
|
+
<id type="integer">2065</id>
|
13
|
+
<length type="integer" nil="true"/>
|
14
|
+
<person-name>Ruben</person-name>
|
15
|
+
<reporting-time type="datetime">2013-04-19T14:17:44+02:00</reporting-time>
|
16
|
+
<subject-id type="integer">1</subject-id>
|
17
|
+
<systolic-pressure type="integer" nil="true"/>
|
18
|
+
<type>Dossier::ReportDossierEntry</type>
|
19
|
+
<value type="float" nil="true"/>
|
20
|
+
<weight type="float" nil="true"/>
|
21
|
+
</dossier-entry>
|
22
|
+
<dossier-entry>
|
23
|
+
<bmi type="float" nil="true"/>
|
24
|
+
<care-provider-id type="integer">4098</care-provider-id>
|
25
|
+
<care-provider-name>Zuwe</care-provider-name>
|
26
|
+
<comment>Something important concerning this dossier-entry</comment>
|
27
|
+
<diastolic-pressure type="integer" nil="true"/>
|
28
|
+
<external-id>1</external-id>
|
29
|
+
<external-person-id nil="true"/>
|
30
|
+
<heart-rate type="integer" nil="true"/>
|
31
|
+
<id type="integer">2066</id>
|
32
|
+
<length type="integer" nil="true"/>
|
33
|
+
<person-name>Ruben</person-name>
|
34
|
+
<reporting-time type="datetime">2013-04-19T14:17:44+02:00</reporting-time>
|
35
|
+
<subject-id type="integer">1</subject-id>
|
36
|
+
<systolic-pressure type="integer" nil="true"/>
|
37
|
+
<type>Dossier::BulletinBoardDossierEntry</type>
|
38
|
+
<value type="float" nil="true"/>
|
39
|
+
<weight type="float" nil="true"/>
|
40
|
+
</dossier-entry>
|
41
|
+
</dossier-entries>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<dossier-entry>
|
3
|
+
<bmi type="float" nil="true"/>
|
4
|
+
<care-provider-id type="integer">4100</care-provider-id>
|
5
|
+
<care-provider-name>Zuwe</care-provider-name>
|
6
|
+
<comment>Test</comment>
|
7
|
+
<diastolic-pressure type="integer" nil="true"/>
|
8
|
+
<external-id>1</external-id>
|
9
|
+
<external-person-id nil="true"/>
|
10
|
+
<heart-rate type="integer" nil="true"/>
|
11
|
+
<id type="integer">2072</id>
|
12
|
+
<length type="integer" nil="true"/>
|
13
|
+
<person-name>Ruben</person-name>
|
14
|
+
<reporting-time type="datetime">2013-04-19T14:22:14+02:00</reporting-time>
|
15
|
+
<subject-id type="integer">1</subject-id>
|
16
|
+
<systolic-pressure type="integer" nil="true"/>
|
17
|
+
<type>Dossier::ReportDossierEntry</type>
|
18
|
+
<value type="float" nil="true"/>
|
19
|
+
<weight type="float" nil="true"/>
|
20
|
+
</dossier-entry>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caren-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-06-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -183,6 +183,7 @@ files:
|
|
183
183
|
- lib/caren/chat_session.rb
|
184
184
|
- lib/caren/chat_session_message.rb
|
185
185
|
- lib/caren/client.rb
|
186
|
+
- lib/caren/dossier/dossier_entry.rb
|
186
187
|
- lib/caren/employee.rb
|
187
188
|
- lib/caren/error.rb
|
188
189
|
- lib/caren/event.rb
|
@@ -190,6 +191,7 @@ files:
|
|
190
191
|
- lib/caren/event_slot_container.rb
|
191
192
|
- lib/caren/external_message.rb
|
192
193
|
- lib/caren/link.rb
|
194
|
+
- lib/caren/person.rb
|
193
195
|
- lib/caren/store/account.rb
|
194
196
|
- lib/caren/store/account_entry.rb
|
195
197
|
- lib/caren/store/address.rb
|
@@ -205,6 +207,7 @@ files:
|
|
205
207
|
- spec/chat_session_message_spec.rb
|
206
208
|
- spec/chat_session_spec.rb
|
207
209
|
- spec/client_spec.rb
|
210
|
+
- spec/dossier/dossier_entry_spec.rb
|
208
211
|
- spec/employee_spec.rb
|
209
212
|
- spec/event_slot_container_spec.rb
|
210
213
|
- spec/event_slot_spec.rb
|
@@ -230,6 +233,8 @@ files:
|
|
230
233
|
- spec/fixtures/caren_chat_session_message.xml
|
231
234
|
- spec/fixtures/caren_chat_session_messages.xml
|
232
235
|
- spec/fixtures/caren_chat_sessions.xml
|
236
|
+
- spec/fixtures/caren_dossier_entries.xml
|
237
|
+
- spec/fixtures/caren_dossier_entry.xml
|
233
238
|
- spec/fixtures/caren_event.xml
|
234
239
|
- spec/fixtures/caren_events.xml
|
235
240
|
- spec/fixtures/caren_external_message.xml
|
@@ -271,7 +276,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
271
276
|
version: '0'
|
272
277
|
segments:
|
273
278
|
- 0
|
274
|
-
hash:
|
279
|
+
hash: 4515662501562381571
|
275
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
276
281
|
none: false
|
277
282
|
requirements:
|