Changes between Initial Version and Version 1 of UseCase08


Ignore:
Timestamp:
06/12/26 18:07:16 (7 days ago)
Author:
236021
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase08

    v1 v1  
     1= UseCase08 - Doctor Requests Procedure =
     2
     3== Initiating Actor - `Doctor` ==
     4
     5== Description ==
     6A doctor requests a medical procedure for a patient. The system creates a performed procedure record linking the doctor, patient, and procedure, optionally links to a diagnosis.
     7
     8== Scenario ==
     9
     101. Doctor opens a patient's medical record.
     11
     12{{{
     13#!sql
     14SELECT
     15  mr.record_id,
     16  mr.patient_id
     17FROM medical_records mr
     18WHERE mr.patient_id = (
     19  SELECT patient_id FROM users WHERE username = 'maja.veljanova'
     20);
     21}}}
     22
     232. System displays all available procedures.
     24
     25{{{
     26#!sql
     27SELECT
     28  pr.procedure_id,
     29  pr.procedure_type,
     30  pr.description,
     31  pr.cost
     32FROM procedures pr
     33ORDER BY pr.procedure_type;
     34}}}
     35
     363. Doctor selects a procedure, specifies the date, optionally links a diagnosis, and submits the request.
     37
     38{{{
     39#!sql
     40INSERT INTO performed_procedures (patient_id, doctor_id, procedure_id, diagnosis_id, procedure_date, notes)
     41VALUES (
     42  (SELECT patient_id FROM users WHERE username = 'maja.veljanova'),
     43  (SELECT doctor_id FROM users WHERE username = 'elena.kirova'),
     44  (SELECT procedure_id FROM procedures WHERE procedure_type = 'ECG'),
     45  (SELECT diagnosis_id FROM diagnosis
     46WHERE name = 'Essential hypertension'
     47AND patient_id = (
     48SELECT patient_id
     49FROM users
     50WHERE username = 'maja.veljanova')),
     51  '2026-06-10',
     52  'ECG for hypertension monitoring'
     53)
     54RETURNING performed_id;
     55}}}
     56
     574. System calculates the total cost of procedures scheduled for that date.
     58
     59{{{
     60#!sql
     61SELECT SUM(pr.cost) AS total_cost
     62FROM performed_procedures pp
     63JOIN procedures pr ON pp.procedure_id = pr.procedure_id
     64WHERE pp.patient_id = (SELECT patient_id FROM users WHERE username = 'maja.veljanova')
     65  AND pp.procedure_date = '2026-06-10';
     66}}}
     67
     685. System creates a billing record for the patient.
     69
     70{{{
     71#!sql
     72INSERT INTO billing (total_cost, payment_status, record_id, admin_id)
     73VALUES (
     74  40.00,
     75  'PENDING',
     76  (SELECT record_id FROM medical_records WHERE patient_id = (
     77SELECT patient_id
     78FROM users WHERE username = 'maja.veljanova')),
     79  (SELECT admin_id FROM admin LIMIT 1)
     80)
     81RETURNING bill_id;
     82}}}
     83
     846. System links the billing record to the performed procedure.
     85
     86{{{
     87#!sql
     88INSERT INTO billing_procedures (bill_id, procedure_id)
     89VALUES (
     90  (SELECT MAX(bill_id) FROM billing),
     91  (SELECT procedure_id FROM procedures WHERE procedure_type = 'ECG')
     92);
     93}}}
     94
     957. System confirms the request and displays all procedures for the patient.
     96
     97{{{
     98#!sql
     99SELECT
     100  pp.performed_id,
     101  pr.procedure_type,
     102  pr.description,
     103  pp.procedure_date,
     104  pp.notes
     105FROM performed_procedures pp
     106JOIN procedures pr ON pp.procedure_id = pr.procedure_id
     107WHERE pp.patient_id = (
     108SELECT patient_id
     109FROM users
     110WHERE username = 'maja.veljanova');
     111}}}