Class: Renalware::Letters::ReviseLetter

Inherits:
Object
  • Object
show all
Includes:
LetterPathology, Wisper::Publisher
Defined in:
app/models/renalware/letters/revise_letter.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from LetterPathology

#build_pathology_snapshot

Class Method Details

.buildObject



11
12
13
# File 'app/models/renalware/letters/revise_letter.rb', line 11

def self.build
  new
end

Instance Method Details

#call(patient, letter_id, params = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/models/renalware/letters/revise_letter.rb', line 15

def call(patient, letter_id, params = {})
  letter = patient.letters.pending.find(letter_id)
  Letter.transaction do
    # See e.g. Letter::Draft.revise
    letter.revise(params)
    if letter.changes.key?(:pathology_timestamp)
      letter.pathology_snapshot = build_pathology_snapshot(patient)
    end
    letter.save!
  end
  broadcast(:revise_letter_successful, letter)
rescue ActiveRecord::RecordInvalid
  broadcast(:revise_letter_failed, letter)
end