-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.rb
More file actions
58 lines (45 loc) · 1.89 KB
/
script.rb
File metadata and controls
58 lines (45 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require 'cqm-parsers'
require 'json'
require 'fileutils'
require 'dotenv'
Dotenv.load('.env')
# To be compatible with the eCQM calculator, the measure models must have the _type fields
Mongoid.include_type_for_serialization = true
APP_CONFIG = {'vsac'=> {'auth_url'=> 'https://vsac.nlm.nih.gov/vsac/ws',
'content_url' => 'https://vsac.nlm.nih.gov/vsac/svs',
'utility_url' => 'https://vsac.nlm.nih.gov/vsac',
'default_profile' => 'eCQM Update 2019-05-10'}}
# To see available VSAC profiles https://vsac.nlm.nih.gov/vsac/profiles
# To get your VSAC API key https://uts.nlm.nih.gov/uts/profile
vsac_options = {
options: {
profile: 'eCQM Update 2021-05-06'
},
api_key: ENV['VSAC_API_KEY']
}
# Set the measure details. For defaults, you can just pass in {}.
measure_details = {}
# Initialize a value set loader, in this case we are using the VSACValueSetLoader.
value_set_loader = Measures::VSACValueSetLoader.new(vsac_options)
measure_files = Dir.entries('cms_measures')
measure_files.each do |measure_file_name|
next if File.directory? measure_file_name
# Load a MAT package from test fixtures.
measure_file = File.new('cms_measures/' + measure_file_name)
# Initialize the CqlLoader with the needed parameters.
loader = Measures::CqlLoader.new(measure_file, measure_details, value_set_loader)
# Build an array of measure models.
measures = loader.extract_measures
measure_name = File.basename(measure_file_name, '.zip')
measures.each do |measure|
dirname = 'json_measures/' + measure_name
unless File.directory?(dirname)
FileUtils.mkdir_p(dirname)
end
value_sets_json = measure.value_sets.to_json
measure_json = measure.to_json
# puts measure.to_json
File.write(dirname + '/' + 'value_sets.json', value_sets_json)
File.write(dirname + '/' + measure_name + '.json', measure_json)
end
end