Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

--Patient POV

SELECT p.firstname, p.lastname


FROM "Patient" p

SELECT p."PatientID"
FROM "Patient" p

SELECT p.address
FROM "Patient" p

SELECT p.gender
FROM "Patient" p

SELECT p.dob
FROM "Patient" p

SELECT p.BMI
FROM "Patient" p

SELECT p.weight
FROM "Patient" p

SELECT p."height" -- chua co


FROM "Patient" p

SELECT p.blood_pressure
FROM "Patient" p

SELECT p.contact_number
FROM "Patient" p

SELECT p.email
FROM "Patient" p

SELECT p.CCCD -- chua co


FROM "Patient" p

--Timeline

SELECT a.appointment_date, s.service_name, r.room_name


FROM "Appointment" a
JOIN "Patient" p USING ("PatientID")
JOIN service s USING (service_id)
JOIN room r ON a."roomID" = r.room_id
WHERE status = '0' AND "PatientID" = --Patient_input_var;
ORDER BY a.appointment_date DESC

--thu ngay thang nam hien tai


SELECT TO_CHAR(now(), 'FMDay') AS day_of_week ;
SELECT date_part('day', now()) ;
SELECT date_part('month', now()) ;
SELECT date_part('year', now()) ;

--Appointment History
SELECT a."appointmentID", a.appointment_date AS "Date", a.start_time, r.room_name,
d.firstname, d.lastname ,a.status
FROM "Appointment" a
JOIN "MedicalHistory" mh ON mh."Appointment_ID" = a."appointmentID"
JOIN "Doctor" d using ("DoctorID")
JOIN room r ON a."roomID" = r.room_id
WHERE mh."PatientID" = --input_var
ORDER BY a.appointment_date DESC
LIMIT 4 OFFSET 5

--Payment History

SELECT p.*
FROM payment p
JOIN "Appointment" a using("appointmentID")
JOIN "Patient" p2 USING ("PatientID")
WHERE p."PatientID" = --input_var
ORDER BY p.payment_date DESC
LIMIT 4 OFFSET 5

SELECT m.discount_percent
FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE p."PatientID" = --input_var

SELECT m."type"
FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE p."PatientID" = --input_var

SELECT sum(p.amount) AS total_payment


FROM payment p
JOIN "Appointment" a using("appointmentID")
JOIN "Patient" p2 USING ("PatientID")
WHERE p2."PatientID" = --input_var

--Doctor POV
SELECT d.firstname, d.lastname
FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d."DoctorID"
FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.address -- chua co


FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.gender -- chua co


FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.dob -- chua co


FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.contact_number
FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.email -- chua co


FROM "Doctor" d
WHERE d."DoctorID" = --input_var

SELECT d.CCCD -- chua co


FROM "Doctor" d
WHERE d."DoctorID" = --input_var

--Doctor_timeline
SELECT a.appointment_date, s.service_name, r.room_name
FROM "Appointment" a
JOIN "Doctor" d USING ("DoctorID")
JOIN service s USING (service_id)
JOIN room r ON a."roomID" = r.room_id
WHERE status = '0' AND "DoctorID" = --input_var
ORDER BY a.appointment_date DESC

--Work Schedule
EXPLAIN ANALYSE SELECT a."appointmentID", a.appointment_date AS "Date",
a.start_time, r.room_name, p.firstname, p.lastname ,a.status
FROM "Appointment" a
JOIN "Patient" p USING ("PatientID")
JOIN "Doctor" d using ("DoctorID")
JOIN room r ON a."roomID" = r.room_id
ORDER BY a.appointment_date DESC
LIMIT 4 OFFSET 5

--booking input
ALTER TABLE service
ADD COLUMN summary TEXT

SELECT s.service_name, s.summary


FROM service s

--Booking double check page


SELECT s.service_name, s.price
FROM service s
WHERE s.service_id -- IS picked

SELECT s.price AS total


FROM service s
WHERE s.service_id -- IS picked

-- pay
SELECT m."type"
FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE p."PatientID" = --INPUT

SELECT m.discount_percent
FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE p."PatientID" = --INPUT

SELECT s.price/10 AS VAT


FROM service s
WHERE s.service_id -- IS picked

SELECT s.price*(1-m.discount_percent/100) + s.price/10 AS bill


FROM "Appointment" a
JOIN "Patient" p USING ("PatientID")
JOIN service s USING (service_id)
JOIN membership m on p.membership_type = m.mbs_id
WHERE "appointmentID" = -- INPUT;

-- appointment pop up

SELECT a."appointmentID", a.appointment_date , a.start_time ,p.email,


FROM "Appointment" a
JOIN "Patient" p USING ("PatientID")
JOIN room r USING r.room_id = a."roomID"
WHERE "PatientID" = -- INPUT;

SELECT p.firstname, p.lastname


FROM "Patient" p
WHERE "PatientID" = -- INPUT;

SELECT d.firstname, d.lastname


FROM "Doctor" d
WHERE "DoctorID" = -- INPUT;

SELECT s.service_name
FROM "Appointment" a
JOIN service s using(service_id)
JOIN "Patient" p USING ("PatientID")
WHERE "PatientID" = -- INPUT;

SELECT
FROM prescription p

--Blog
-- *topic
SELECT c.title
FROM category c
WHERE

-- post
SELECT p2.firstname, p2.lastname
FROM post p
JOIN "user" u ON p.authorid = u.user_id
JOIN "Patient" p2 ON p2."PatientID" = u.user_id
WHERE p.postid = --input

SELECT p.createat
FROM post p
JOIN "user" u ON p.authorid = u.user_id
WHERE p.postid = --input

SELECT p2."Content"
FROM post p
JOIN postdetail p2 USING ("postid")
WHERE p.postid = --INPUT

--Comment
SELECT p.firstname , p.lastname
FROM "Comment" c
JOIN "Patient" p ON p."PatientID" = c.commenterid
WHERE c.cmtid = --INPUT;

-- statistic User

SELECT count(*)
FROM "Doctor" d

SELECT count(*)
FROM "Patient" p

SELECT count(*)
FROM "Appointment" a
WHERE a.status = 'Completed';

SELECT count(*)
FROM "Appointment" a
WHERE a.status != 'Completed';

SELECT p.firstname, p.lastname, d.firstname, d.lastname, a.start_time, a.status


FROM "Appointment" a
JOIN "Patient" p USING ("PatientID")
JOIN "Doctor" d USING ("DoctorID")
ORDER BY a.appointment_date, a.start_time DESC
LIMIT 6 OFFSET 7;

--statistic payment

SELECT count (*) AS Aclass


FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE m."type" = 'A'

SELECT count (*) AS Bclass


FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE m."type" = 'B'

SELECT count (*) AS Cclass


FROM membership m
JOIN "Patient" p ON p.membership_type = m.mbs_id
WHERE m."type" = 'C'

-- statistic patient

SELECT p."PatientID", p.firstname, p.lastname, u.date_joined, u.last_login,


sum(p2.amount), count(a."appointmentID")
FROM "Patient" p
JOIN "user" u ON p."PatientID" = u.user_id
JOIN membership m ON m.mbs_id = p.membership_type
JOIN "Appointment" a USING ("PatientID")
JOIN payment p2 ON p2."appointmentID" = a."appointmentID"
GROUP BY p."PatientID"

-- Statistic doctor

SELECT d."DoctorID", d.firstname, d.lastname, u.date_joined, u.last_login, -


FROM "Doctor" d
JOIN "user" u ON d."DoctorID" = u.user_id

You might also like