diff --git a/ccu_htm_db_schema.png b/ccu_htm_db_schema.png deleted file mode 100644 index 81067858690cbc90f6a1bab913aa0545cd050e3c..0000000000000000000000000000000000000000 Binary files a/ccu_htm_db_schema.png and /dev/null differ diff --git a/generate_db_schema_diagram.py b/generate_db_schema_diagram.py deleted file mode 100644 index 9d5dcc023c29697fb4d940712e080d4f76c8e410..0000000000000000000000000000000000000000 --- a/generate_db_schema_diagram.py +++ /dev/null @@ -1,86 +0,0 @@ -from diagrams import Diagram, Cluster, Edge, Node -from diagrams.onprem.database import MySQL # Chỉ cần MySQL icon - -# Đặt tên file output không có phần mở rộng -diagram_filename = "ccu_htm_db_schema" - -# Hướng của biểu đồ: TB (Top to Bottom), LR (Left to Right) -diagram_direction = "LR" - -with Diagram(f"{diagram_filename}", show=False, direction=diagram_direction, filename=diagram_filename) as diag: - # Định nghĩa database cluster - with Cluster("CCU HTM Database Schema (MySQL: ccu)") as db_cluster: - # Định nghĩa các bảng chính - user_table = Node("User\n(users)\nPK: userID") - dietitian_table = Node("Dietitian\n(dietitians)\nPK: dietitianID") - patient_table = Node("Patient\n(patients)\nPK: patientID") - encounter_table = Node("Encounter\n(encounters)\nPK: encounterID") - measurement_table = Node("PhysiologicalMeasurement\n(physiologicalmeasurements)\nPK: measurementID") - procedure_table = Node("Procedure\n(procedures)\nPK: procedureID") - referral_table = Node("Referral\n(referrals)\nPK: referralID") - report_table = Node("Report\n(reports)\nPK: reportID") - support_msg_table = Node("SupportMessage\n(support_messages)\nPK: messageID") - activity_log_table = Node("ActivityLog\n(activity_logs)\nPK: logID") - - # Định nghĩa các mối quan hệ từ models - - # 1. User <-> Dietitian (One-to-One) - user_table << Edge(label="1..1 (user_id)") >> dietitian_table - - # 2. User (Dietitian) <-> Patient (One-to-Many) - user_table << Edge(label="1..N (assigned_dietitian_user_id)") << patient_table - - # 3. Patient <-> Encounter (One-to-Many) - patient_table >> Edge(label="1..N (patient_id)") >> encounter_table - - # 4. Patient <-> PhysiologicalMeasurement (One-to-Many) - patient_table >> Edge(label="1..N (patient_id)") >> measurement_table - - # 5. Patient <-> Procedure (One-to-Many) - patient_table >> Edge(label="1..N (patient_id)") >> procedure_table - - # 6. Patient <-> Referral (One-to-Many) - patient_table >> Edge(label="1..N (patient_id)") >> referral_table - - # 7. Patient <-> Report (One-to-Many) - patient_table >> Edge(label="1..N (patient_id)") >> report_table - - # 8. Encounter <-> PhysiologicalMeasurement (One-to-Many) - encounter_table >> Edge(label="1..N (encounter_id)") >> measurement_table - - # 9. Encounter <-> Procedure (One-to-Many) - encounter_table >> Edge(label="1..N (encounter_id)") >> procedure_table - - # 10. Encounter <-> Referral (One-to-Many) - encounter_table >> Edge(label="1..N (encounter_id)") >> referral_table - - # 11. Encounter <-> Report (One-to-Many) - encounter_table >> Edge(label="1..N (encounter_id)") >> report_table - - # 12. User <-> Report (One-to-Many) - author relationship - user_table >> Edge(label="1..N (author_id)") >> report_table - - # 13. User <-> Report (One-to-Many) - dietitian assignment - user_table >> Edge(label="1..N (dietitian_id)", style="dashed") >> report_table - - # 14. User <-> Referral (One-to-Many) - dietitian assignment - user_table >> Edge(label="1..N (assigned_dietitian_user_id)", style="dashed") >> referral_table - - # 15. User <-> Encounter (One-to-Many) - dietitian assignment - user_table >> Edge(label="1..N (dietitian_id)", style="dashed") >> encounter_table - - # 16. User <-> SupportMessage (One-to-Many) - user_table >> Edge(label="1..N (sender)") >> support_msg_table - - # 17. User <-> ActivityLog (One-to-Many) - user_table >> Edge(label="1..N (user_id)") >> activity_log_table - - # 18. Procedure <-> Report (One-to-Many) - procedure_table >> Edge(label="1..N (related_procedure_id)") >> report_table - - # 19. Referral <-> Report (One-to-One) - referral_table >> Edge(label="1..1 (referral_id)") >> report_table - -diag - -print(f"Comprehensive database schema diagram generated: {diagram_filename}.png") \ No newline at end of file