def call(
given_name: nil,
family_name: nil,
gender: nil,
date_of_birth: nil,
date_of_death: nil,
email: nil,
phone: nil,
address_postcode: nil,
general_practitioner: nil,
max_results: 10,
fuzzy_match: false,
exact_match: false,
history: false
)
MavisCLI.load_rails
query = {
"_fuzzy-match" => fuzzy_match,
"_exact-match" => exact_match,
"_history" => history,
"_max-results" => max_results,
"given" => given_name,
"family" => family_name,
"gender" => gender,
"birthdate" => date_of_birth,
"death-date" => date_of_death,
"email" => email,
"phone" => phone,
"address-postalcode" => address_postcode,
"general-practitioner" => general_practitioner
}.compact
response = NHS::PDS.search_patients(query)
if response.nil?
puts "Response from NHS::PDS is `nil`"
else
puts response.status unless response.status == 200
puts response.env.url
puts ""
puts(response.headers.map { "#{_1}: #{_2}" })
puts ""
puts JSON.pretty_generate(response.body)
end
end