summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assignments/final/program.rb37
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