Class: ONCCertificationG10TestKit::Tasks::GenerateRequirementsSpreadsheet
- Inherits:
-
Object
- Object
- ONCCertificationG10TestKit::Tasks::GenerateRequirementsSpreadsheet
- Defined in:
- lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb
Constant Summary collapse
- TEST_PROCEDURE_URL =
'https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#test_procedure'.freeze
- FILE_NAME =
File.join('lib', 'onc_certification_g10_test_kit', 'requirements', '(g)(10)-test-procedure_requirements.xlsx')
Instance Attribute Summary collapse
-
#row ⇒ Object
Returns the value of attribute row.
Instance Method Summary collapse
-
#add_test_procedure_requirements ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity.
- #clear_requirements_worksheet ⇒ Object
- #inferno_to_procedure_map ⇒ Object
- #next_row ⇒ Object
- #run ⇒ Object
- #test_procedure ⇒ Object
- #test_suite ⇒ Object
- #workbook ⇒ Object
Instance Attribute Details
#row ⇒ Object
Returns the value of attribute row.
8 9 10 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 8 def row @row end |
Instance Method Details
#add_test_procedure_requirements ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 56 def add_test_procedure_requirements # rubocop:disable Metrics/CyclomaticComplexity requirements_worksheet = workbook['Requirements'] self.row = 0 test_procedure.sections.each do |section| section.steps.group_by(&:group).each_value do |steps| steps.each do |step| next_row lines = step.s_u_t&.lines&.count || 0 requirements_worksheet.change_row_height(row, (lines * 16) + 10) requirements_worksheet.change_row_vertical_alignment(row, 'top') requirements_worksheet.add_cell(row, 0, "#{step.id.upcase} ") requirements_worksheet.add_cell(row, 1, TEST_PROCEDURE_URL) requirements_worksheet.add_cell(row, 2, step.s_u_t).change_text_wrap(true) requirements_worksheet.add_cell(row, 3, 'SHALL') requirements_worksheet.add_cell(row, 4, 'Server') requirements_worksheet.add_cell(row, 5, '') requirements_worksheet.add_cell(row, 6, 'FALSE') end end end end |
#clear_requirements_worksheet ⇒ Object
50 51 52 53 54 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 50 def clear_requirements_worksheet requirements_worksheet = workbook['Requirements'] requirements_worksheet.sheet_data[1] requirements_worksheet.delete_row(1) until requirements_worksheet.cell_at('A2').nil? end |
#inferno_to_procedure_map ⇒ Object
14 15 16 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 14 def inferno_to_procedure_map @inferno_to_procedure_map ||= Hash.new { |h, k| h[k] = [] } end |
#next_row ⇒ Object
38 39 40 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 38 def next_row self.row += 1 end |
#run ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 42 def run clear_requirements_worksheet add_test_procedure_requirements Inferno.logger.info "Writing to #{FILE_NAME}" workbook.write(FILE_NAME) end |
#test_procedure ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 18 def test_procedure @test_procedure ||= if File.file? File.join('lib', 'onc_certification_g10_test_kit', 'onc_program_procedure.yml') TestProcedure.new( YAML.load_file(File.join('lib', 'onc_certification_g10_test_kit', 'onc_program_procedure.yml')).deep_symbolize_keys ) else TestProcedure.new end end |
#test_suite ⇒ Object
30 31 32 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 30 def test_suite ONCCertificationG10TestKit::G10CertificationSuite end |
#workbook ⇒ Object
34 35 36 |
# File 'lib/onc_certification_g10_test_kit/tasks/generate_requirements_spreadsheet.rb', line 34 def workbook @workbook ||= RubyXL::Parser.parse(FILE_NAME) end |