Sha256: 5fa688d3bfe253ceef76743d4fa7a72c2e3bdb35a341c64f9368b8d5fdd92ea6

Contents?: true

Size: 1.93 KB

Versions: 62

Compression:

Stored size: 1.93 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/transplants"
require "document/base"

module Renalware
  module Transplants
    class RecipientFollowup < ApplicationRecord
      include Document::Base
      extend Enumerize

      enumerize :graft_function_onset, in: %w(immediate delayed primary_non_function)

      belongs_to :operation,
                 class_name: "RecipientOperation",
                 foreign_key: "operation_id",
                 touch: true
      belongs_to :transplant_failure_cause_description,
                 class_name: "Transplants::FailureCauseDescription",
                 foreign_key: "transplant_failure_cause_description_id"
      has_many :rejection_episodes,
               class_name: "RejectionEpisode",
               dependent: :restrict_with_exception,
               foreign_key: "followup_id",
               inverse_of: :followup

      accepts_nested_attributes_for :rejection_episodes,
                                    reject_if: :all_blank,
                                    allow_destroy: true

      has_paper_trail class_name: "Renalware::Transplants::Version",
                      on: [:create, :update, :destroy]
      has_document class_name: "Renalware::Transplants::RecipientFollowupDocument"

      validates :stent_removed_on, timeliness: { type: :date, allow_blank: true }
      validates :graft_nephrectomy_on, timeliness: { type: :date, allow_blank: true }
      validates :transplant_failed_on, timeliness: { type: :date, allow_blank: true }
      validates :transplant_failed_on,
                presence: true,
                if: ->(o) { o.transplant_failed }
      validates :transplant_failure_cause_description_id,
                presence: true,
                if: ->(o) { o.transplant_failed }
      validates :transplant_failure_cause_other,
                presence: true,
                if: ->(o) { o.transplant_failure_cause_description.try(:name) == "Other" }
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
renalware-core-2.0.148 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.147 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.146 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.145 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.144 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.143 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.142 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.141 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.140 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.139 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.138 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.137 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.136 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.135 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.134 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.133 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.132 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.131 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.130 app/models/renalware/transplants/recipient_followup.rb
renalware-core-2.0.129 app/models/renalware/transplants/recipient_followup.rb