diff options
| -rw-r--r-- | assignments/final/program.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/assignments/final/program.rb b/assignments/final/program.rb new file mode 100644 index 0000000..0cea58a --- /dev/null +++ b/assignments/final/program.rb @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby + +require 'bundler/inline' + +gemfile do + source 'https://rubygems.org' + + gem 'pg' +end + +connection = PG.connect( + dbname: ENV.fetch('PGDBNAME', 'postgres'), + host: ENV.fetch('PGHOST', Pathname.pwd.join('tmp/sockets')) +) + +print "Patient Number: " +sql = <<~SQL +SELECT p.name AS p_name, c.name as c_name, n.name as n_name +FROM Patients p +INNER JOIN Care_centres c ON c.cid = p.care_centre_id +INNER JOIN Nurses n ON n.nid = c.nurse_charge_id +WHERE pid = $1; +SQL +patient_id = gets.to_i +connection.exec_params(sql, [patient_id]) do |result| + result.each do |row| + puts "Patient Name: #{row['p_name']}" + puts "Care Centre Name: #{row['c_name']}" + puts "Name of Nurse-in-Charge: #{row['n_name']}" + end +end +puts "Treatment ID | Treatment Name | Physician ID | Date" +connection.exec_params("SELECT * FROM Treatments WHERE patient_id = $1;", [patient_id]) do |treatments| + treatments.each do |x| + puts [x['tid'].ljust(12), x['treatment_name'].ljust(14), x['physician_id'].ljust(12), x['date']].join(' | ') + end +end |
