cqm-parsers 3.2.0.1 → 4.0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1d7cfc3048482ace367aee6b37323d498c6bc20c481bba3b1075d6edbc7821a
4
- data.tar.gz: cf9cec02b26259ac4648a0b6c4d19c80eda36b7a256de7a487bf3feab26d8277
3
+ metadata.gz: d42976fc653ecb9c5a69de2d4ff1cb23a56880bbfc45f53cc7f159f45e7929a4
4
+ data.tar.gz: 4d66c6e37db1a5a4ad9ea4134eda9388817092031ebe0aa7cec9e1c1b69057ac
5
5
  SHA512:
6
- metadata.gz: f1b6a6a29ff5a36c09f04e5f3d5f8f40fc272425ea24f9a4288fe2f5951bb7c4cac1a9fc062e83103b3c1f459ee22d22f85827949a8707125b7b499d6cdc4ea7
7
- data.tar.gz: 46b75dc77fde42d44a97eb405ed947063aee7388fe936ccf236379af11e49ddc28e5b075b355fd495ee5b06b59ecca61065159ed25a5cd95515f30df01fc1c59
6
+ metadata.gz: 33eca35212fcfc098812f2959c1390771bc2fb8453161b1b243cca5c59fdb30398a74ca01e285d4799d5978704012cedf581a3e22e62c226f8881804fac66d75
7
+ data.tar.gz: efcfb1116851ac81d5ec7659821f5f4547e8c93ab9e41e28bf8f9895e99bfd3be2e3a00f93cea238776bd3192b94cca6cbe5d759cbed74e52fbe23adfa81b062
data/Gemfile CHANGED
@@ -2,9 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec :development_group => :test
4
4
 
5
- gem 'mongoid', '~> 7.0.5'
5
+ gem 'mongoid', '~> 6.4.2'
6
6
 
7
- # gem 'cqm-models', '~> 3.0.0'
8
7
  # gem 'cqm-models', git: 'https://github.com/projecttacoma/cqm-models.git', branch: 'master'
9
8
  # gem 'cqm-models', :path => '../cqm-models'
10
9
 
data/README.md CHANGED
@@ -42,22 +42,9 @@ bundle exec rake test
42
42
 
43
43
  ```
44
44
 
45
-
46
45
  ## Versioning
47
46
 
48
- Starting with version **2.0.0** released on 6/20/19, cqm-parsers versioning has the format **X.Y.Z**, where:
49
-
50
- * **X** maps to a version of the CQL-based HQMF IG. See the table below to see the existing mapping to CQL-based HQMF IG versions.
51
-
52
- | X | CQL-based HQMF IG|
53
- | --- | --- |
54
- | 2 | R1 STU3 |
55
-
56
- * **Y** indicates major changes (incompatible API changes)
57
-
58
- * **Z** indicates minor changes (added functionality in a backwards-compatible manner) and patch changes (backwards-compatible bug fixes)
59
-
60
- For the versions available, see [tags on this repository](https://github.com/projecttacoma/cqm-parsers/tags).
47
+ We use [SemVer](http://semver.org/) for versioning. For the versions available, see [tags on this repository](https://github.com/projecttacoma/cqm-parsers/tags).
61
48
 
62
49
  ## License
63
50
 
@@ -58,7 +58,7 @@ module Measures
58
58
  pn = Pathname(f.name)
59
59
  next if '__MACOSX'.in? pn.each_filename # ignore anything in a __MACOSX folder
60
60
  next unless pn.basename.extname.in? ['.xml','.cql','.json','.html']
61
- folders[pn.dirname][:files] << { basename: pn.basename, contents: f.get_input_stream.read }
61
+ folders[pn.dirname][:files] << { basename: pn.basename, contents: f.get_input_stream.read.force_encoding('UTF-8') }
62
62
  folders[pn.dirname][:depth] = pn.each_filename.count # this is just a count of how many folders are in the path
63
63
  end
64
64
  end
@@ -135,4 +135,4 @@ module Measures
135
135
 
136
136
  end
137
137
  end
138
- end
138
+ end
@@ -46,7 +46,8 @@ module Measures
46
46
  def extract_fields_from_single_code_reference_data_criteria(criteria)
47
47
  single_code_reference = criteria.at_css('value[codeSystem][code]') || criteria.at_css('code[codeSystem][code]')
48
48
  system_id = "#{single_code_reference['codeSystem']}_#{single_code_reference['codeSystemVersion']}".to_sym
49
- concept = @single_code_concepts[system_id][single_code_reference['code'].to_sym] || get_concept_from_participation(criteria.at_css('participation'))
49
+ # concept = @single_code_concepts[system_id]&[single_code_reference['code'].to_sym] || get_concept_from_participation(criteria.at_css('participation'))
50
+ concept = @single_code_concepts&.dig(system_id, single_code_reference['code']&.to_sym) || get_concept_from_participation(criteria.at_css('participation'))
50
51
  value_set = concept._parent
51
52
  return {
52
53
  description: concept.display_name,
@@ -7,8 +7,7 @@ module Measures
7
7
  options.symbolize_keys!
8
8
  @vsac_options = options[:options]
9
9
  @vsac_ticket_granting_ticket = options[:ticket_granting_ticket]
10
- @vsac_username = options[:username]
11
- @vsac_password = options[:password]
10
+ @vsac_api_key = options[:api_key]
12
11
  @vs_model_cache = {}
13
12
  end
14
13
 
@@ -48,7 +47,7 @@ module Measures
48
47
 
49
48
  def load_api
50
49
  return @api if @api.present?
51
- @api = Util::VSAC::VSACAPI.new(config: APP_CONFIG['vsac'], ticket_granting_ticket: @vsac_ticket_granting_ticket, username: @vsac_username, password: @vsac_password)
50
+ @api = Util::VSAC::VSACAPI.new(config: APP_CONFIG['vsac'], ticket_granting_ticket: @vsac_ticket_granting_ticket, api_key: @vsac_api_key)
52
51
  return @api
53
52
  end
54
53
 
@@ -219,10 +219,6 @@
219
219
  "definition":"care_goal",
220
220
  "status":"",
221
221
  "negation":false},
222
- "2.16.840.1.113883.10.20.28.4.13":{
223
- "definition":"device",
224
- "status":"applied",
225
- "negation":false},
226
222
  "2.16.840.1.113883.10.20.28.4.11":{
227
223
  "definition":"device_adverse_event",
228
224
  "status":"",
data/lib/util/vsac_api.rb CHANGED
@@ -7,7 +7,7 @@ module Util
7
7
  class VSACError < StandardError
8
8
  end
9
9
 
10
- # Error represnting a not found response from the API. Includes OID for reporting to user.
10
+ # Error representing a not found response from the API. Includes OID for reporting to user.
11
11
  class VSNotFoundError < VSACError
12
12
  attr_reader :oid
13
13
  def initialize(oid)
@@ -23,7 +23,7 @@ module Util
23
23
  end
24
24
  end
25
25
 
26
- # Error represnting a program not found response from the API.
26
+ # Error representing a program not found response from the API.
27
27
  class VSACProgramNotFoundError < VSACError
28
28
  attr_reader :oid
29
29
  def initialize(program)
@@ -31,7 +31,7 @@ module Util
31
31
  end
32
32
  end
33
33
 
34
- # Error represnting a response from the API that had no concepts.
34
+ # Error representing a response from the API that had no concepts.
35
35
  class VSEmptyError < VSACError
36
36
  attr_reader :oid
37
37
  def initialize(oid)
@@ -50,14 +50,14 @@ module Util
50
50
  # Raised when the user credentials were invalid.
51
51
  class VSACInvalidCredentialsError < VSACError
52
52
  def initialize
53
- super('VSAC ULMS credentials are invalid.')
53
+ super('VSAC UMLS credentials are invalid.')
54
54
  end
55
55
  end
56
56
 
57
57
  # Raised when a call requiring auth is attempted when no ticket_granting_ticket or credentials were provided.
58
58
  class VSACNoCredentialsError < VSACError
59
59
  def initialize
60
- super('VSAC ULMS credentials were not provided.')
60
+ super('VSAC UMLS credentials were not provided.')
61
61
  end
62
62
  end
63
63
 
@@ -93,7 +93,7 @@ module Util
93
93
  end
94
94
 
95
95
  # if a ticket_granting_ticket was passed in, check it and raise errors if found
96
- # username and password will be ignored
96
+ # VSAC API Key will be ignored
97
97
  if !options[:ticket_granting_ticket].nil?
98
98
  provided_ticket_granting_ticket = options[:ticket_granting_ticket]
99
99
  if provided_ticket_granting_ticket[:ticket].nil? || provided_ticket_granting_ticket[:expires].nil?
@@ -105,9 +105,9 @@ module Util
105
105
  @ticket_granting_ticket = { ticket: provided_ticket_granting_ticket[:ticket],
106
106
  expires: provided_ticket_granting_ticket[:expires] }
107
107
 
108
- # if username and password were provided use them to get a ticket granting ticket
109
- elsif !options[:username].nil? && !options[:password].nil?
110
- @ticket_granting_ticket = get_ticket_granting_ticket(options[:username], options[:password])
108
+ # if api key was provided use it to get a ticket granting ticket
109
+ elsif !options[:api_key].nil?
110
+ @ticket_granting_ticket = get_ticket_granting_ticket(options[:api_key])
111
111
  end
112
112
  end
113
113
 
@@ -304,13 +304,11 @@ module Util
304
304
  params: { service: TICKET_SERVICE_PARAM})
305
305
  end
306
306
 
307
- # Use your username and password to retrive a ticket granting ticket from VSAC
308
- def get_ticket_granting_ticket(username, password)
307
+ # Use your API Key to retrive a ticket granting ticket from VSAC
308
+ def get_ticket_granting_ticket(api_key)
309
309
  response = Typhoeus.post(
310
310
  "#{@config[:auth_url]}/Ticket",
311
- # looks like typheous sometimes switches the order of username/password when encoding
312
- # which vsac cant handle (!?), so encode first
313
- body: URI.encode_www_form(username: username, password: password)
311
+ body: URI.encode_www_form(apikey: api_key)
314
312
  )
315
313
  raise VSACInvalidCredentialsError.new if response.response_code == 401
316
314
  validate_http_status(response.response_code)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cqm-parsers
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0.1
4
+ version: 4.0.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The MITRE Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-01 00:00:00.000000000 Z
11
+ date: 2021-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cqm-models
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: 4.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: 4.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mustache
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,56 +58,42 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 7.0.5
61
+ version: 6.4.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 7.0.5
68
+ version: 6.4.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mongoid-tree
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.1'
75
+ version: 2.1.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.1'
82
+ version: 2.1.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.0'
89
+ version: 5.2.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '6.0'
97
- - !ruby/object:Gem::Dependency
98
- name: protected_attributes_continued
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 1.4.0
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 1.4.0
96
+ version: 5.2.1
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: uuid
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -343,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
343
329
  - !ruby/object:Gem::Version
344
330
  version: '0'
345
331
  requirements: []
346
- rubygems_version: 3.1.4
332
+ rubygems_version: 3.0.2
347
333
  signing_key:
348
334
  specification_version: 4
349
335
  summary: A library for parsing HQMF documents.