Sha256: e8a0724a19ff3da44a03efbb8b7d347f37463b620c141844416fa1d81b7b43b8

Contents?: true

Size: 577 Bytes

Versions: 28

Compression:

Stored size: 577 Bytes

Contents

require_dependency "renalware/patient"

module Renalware
  module Patients
    class IdempotentCreatePatient
      attr_reader :params

      def initialize(user)
        @user = user
      end

      # TODO: Support different local_patient_id columns
      def call(params)
        patient_params = params.fetch(:patient).merge(by: @user)
        local_patient_id = patient_params.fetch(:local_patient_id)

        ::Renalware::Patient.create_with(patient_params)
                            .find_or_create_by!(local_patient_id: local_patient_id)
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
renalware-core-2.0.0.pre.beta11 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta10 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta9 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta8 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta7 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta6 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta5 app/models/renalware/patients/idempotent_create_patient.rb
renalware-core-2.0.0.pre.beta4 app/models/renalware/patients/idempotent_create_patient.rb