Sha256: 2c65ae327d6e0eabeabe69ec55c3e8aab933c2e64743c5a94301c5376a6e7670

Contents?: true

Size: 1.24 KB

Versions: 10

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/ukrdc"

require "benchmark"

module Renalware
  module UKRDC
    module TreatmentTimeline
      # Re-generates the ukrdc_treatments table
      class GenerateTreatments
        def self.call
          new.call
        end

        def call
          elapsed_ms = Benchmark.ms do
            generate_treatments
          end
          log("\nCreated #{UKRDC::Treatment.count} UKRDC Treatments in #{elapsed_ms / 1000.0}s")
        end

        private

        def patient_scope
          Renalware::Patient
            .select(:id)
            .where("send_to_renalreg = true or send_to_rpv = true")
        end

        # rubocop:disable Rails/Output
        def generate_treatments
          PrepareTables.call
          Rails.logger.info "#{patient_scope.count} patients"
          patient_scope.find_each.with_index do |patient, _index|
            print "\n#{patient.id}: "
            GenerateTimeline.new(patient).call
            # Start gargbage collection periodically to prevent server ram issues.
            # GC.start if (index % 50).zero?
          end
        end
        # rubocop:enable Rails/Output

        def log(msg)
          Rails.logger.info(msg)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.1.0 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.167 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.166 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.165 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.164 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.163 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.162 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.161 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb
renalware-core-2.0.160 app/models/renalware/ukrdc/treatment_timeline/generate_treatments.rb