infermedica 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24b61b9bf801f88cc86903f5234fccdf80990856
4
- data.tar.gz: e8a6749ee08a349c3b15a06113767d4b0e47354f
3
+ metadata.gz: d5edc440a2af82943c1d9ff4f3b008bac9ecff99
4
+ data.tar.gz: 588b22792865559b692ff5d3fda1de5720273bdc
5
5
  SHA512:
6
- metadata.gz: c2647ded5c5f09e2ff7b58b2f9c23e99fb8fdbee3c6dcef4dee11b4e410a1c64b1875fc6a138138b6c8ec5fe74e7a6eaf12d4e0ea2a1b3d15c9172492b42e67f
7
- data.tar.gz: 671d82890a14f988e08d2fba0fa35a72def0a460ee2e77419b9bd4fda71c11562d93073c51264632f5d39f910ec11f7729a82097945ba0deeb823cfaa2132e37
6
+ metadata.gz: 1f25cad0a7c461ddecd943ca885b29c43dfca08746d4fe474e75a362b5c12252f0856211cc65da4b6b4af3ce673012382196cac1931520cb3d8359f41cabc27f
7
+ data.tar.gz: 0b3175ca8b2f30f6d7a72dd55053783befbad0b4b1fa1356339fcc34151fc7f148b506a01c4c5a3313ad5316855e09e1cb1cabfded9183fb1445c6d529085784
@@ -0,0 +1,63 @@
1
+ # infermedica
2
+ Ruby interface to the infermedica REST API
3
+
4
+ ## Description
5
+
6
+ This is a Ruby interface to the Infermedica REST API: https://developer.infermedica.com/docs/api
7
+
8
+ It is (very) loosely based on the Python library: https://github.com/infermedica/python-api.
9
+
10
+ ## Installation
11
+
12
+ ```gem install infermedica```
13
+
14
+ ## Dependencies
15
+
16
+ * json. I have tested with 1.8.x
17
+ * Ruby 2.x
18
+
19
+ ## Quick Start
20
+
21
+ You will first need to get an API **Id** and *Key* from the **Infermedica** site
22
+ https://developer.infermedica.com/docs/api
23
+
24
+ To start using the API, require the infermedica gem and create an **Infermedica::Api** object,
25
+ passing the api_id and api_key to the constructor.
26
+
27
+ The constructor takes a hash as argument, so you have different options to pass the id and key:
28
+
29
+ ```
30
+ require 'infermedica'
31
+ api = Infermedica::Api.new(api_id: 'xxxxx', api_key: 'xxxxxxxxxxx')
32
+ ```
33
+
34
+ Or put the key and id in a .yaml file, read it, and pass the resulting hash to the constructor
35
+
36
+ In **config.yaml**
37
+ ```
38
+ :api_id: xxxxx
39
+ :api_key: xxxxxxxxxxxxxx
40
+ :dev_mode: true
41
+ ```
42
+
43
+ In **your script**
44
+ ```
45
+ require 'infermedica'
46
+ require 'yaml'
47
+
48
+ access = YAML.load(File.read('.config.yaml'))
49
+ api = Infermedica::Api.new(access)
50
+ ```
51
+
52
+ ## Examples
53
+
54
+ The **examples** directory has some examples to get you started. They all assume that you have a **config.yaml**
55
+ in the same directory. Just create one with your own **api_id** and **api_key** and you should be able to just invoke
56
+ ruby on each example.
57
+
58
+ ## Legal
59
+
60
+ The Infermedica REST API is copyrighted by [Infermedica](http://infermedica.com).
61
+
62
+ The Ruby code itself is released under the [MIT](https://opensource.org/licenses/MIT) license.
63
+
@@ -0,0 +1,22 @@
1
+ require 'pp'
2
+ require 'yaml'
3
+ require 'infermedica'
4
+
5
+ access = YAML.load(File.read('./config.yaml'))
6
+ api = Infermedica::Api.new(access)
7
+
8
+ # Create a diagnosis object with some initial patient info
9
+
10
+ diag = Infermedica::Diagnosis.new(sex: 'male', age: '35')
11
+
12
+ diag.add_symptom('s_1193', 'present')
13
+ diag.add_symptom('s_488', 'present')
14
+ diag.add_symptom('s_418', 'present')
15
+
16
+ # Call the triage endpoint
17
+
18
+ resp = api.triage(diag)
19
+
20
+ # Print the resulting data structure
21
+
22
+ pp resp
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'infermedica'
3
- s.version = '0.0.1'
4
- s.date = '2017-01-09'
3
+ s.version = '0.0.2'
4
+ s.date = '2017-02-27'
5
5
  s.summary = 'Provide a Ruby interface to the Infermedica REST API'
6
6
  s.description = 'A Ruby interface to the Infermedica REST API'
7
7
  s.authors = ['Bruno Melli']
@@ -9,6 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.files = `git ls-files`.split($\)
10
10
  s.require_paths = ['lib']
11
11
  s.license = 'MIT'
12
+ s.required_ruby_version = '>= 2.0'
12
13
  s.homepage = 'https://github.com/mjskier/infermedica'
13
14
  s.add_runtime_dependency 'json', '~>1.8', '>= 1.8.3'
14
15
  end
@@ -105,6 +105,12 @@ module Infermedica
105
105
  response = @connection.post('/diagnosis', diag.to_json)
106
106
  end
107
107
 
108
+ # Submit a diagnosis object to get a triage
109
+ # See examples/triage.rb for an example
110
+ def triage(diag)
111
+ response = @connection.post('/triage', diag.to_json)
112
+ end
113
+
108
114
  # Submit a diagnosis object to get an explanation
109
115
  # See examples/explain.rb for an example
110
116
  def explain(req, args = {})
@@ -2,7 +2,7 @@ module Infermedica
2
2
 
3
3
  # = Diagnosis
4
4
  #
5
- # Interface to the /diagnosis and /explain endpoints
5
+ # Interface to the /diagnosis, /triage, and /explain endpoints
6
6
  # See examples/diagnosis.rb and examples/explain.rb for example use
7
7
 
8
8
  class Diagnosis
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infermedica
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno Melli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-09 00:00:00.000000000 Z
11
+ date: 2017-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -37,6 +37,7 @@ extensions: []
37
37
  extra_rdoc_files: []
38
38
  files:
39
39
  - ".gitignore"
40
+ - README.md
40
41
  - examples/condition.rb
41
42
  - examples/diagnosis.rb
42
43
  - examples/explain.rb
@@ -45,6 +46,7 @@ files:
45
46
  - examples/risk_factor.rb
46
47
  - examples/search.rb
47
48
  - examples/symptom.rb
49
+ - examples/triage.rb
48
50
  - infermedica.gemspec
49
51
  - lib/infermedica.rb
50
52
  - lib/infermedica/conditions.rb
@@ -74,7 +76,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
76
  requirements:
75
77
  - - ">="
76
78
  - !ruby/object:Gem::Version
77
- version: '0'
79
+ version: '2.0'
78
80
  required_rubygems_version: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - ">="