Make 3 months roadmap for my 2nd year university exam To complete my syllabus and gets ready for examination
I will send you syllabus
| Code | Subject | Marks |
|---|---|---|
| BRDT201 | Applied Anatomy & Physiology (Paper I) | 80 |
| BRDT202 | Pharmacology - Haemo & Peritoneal Dialysis (Paper II) | 80 |
| BRDT203 | Concepts of Renal Diseases & Management (Paper III) | 80 |
| BRDT204 | Applied Pathology & Microbiology (Paper IV) | 100 |
| BRDT205 | Sociology | Theory |
| BRDT206 | Indian Constitution | Theory |
| BRDT208 | Nutrition | Theory |
| BRDT209 | Basics of Renal Dialysis Technology | Theory |
| Day | Topic |
|---|---|
| Wed Aug 5 | Basic Anatomy of Urinary System - Kidney, Bladder, Ureter, Urethra, Prostate |
| Thu Aug 6 | Histology of Kidney + Blood Supply of Kidney |
| Fri Aug 7 | Development of Kidney in Brief + Anatomy of Peritoneum & Abdominal Hernias |
| Sat Aug 8 | Anatomy of Vascular System - Upper Limb Vessels (Course, Distribution, Branches) |
| Sun Aug 9 | Neck Vessels + Femoral Vessels (Course, Distribution, Branches, Abnormalities) |
| Mon Aug 10 | Mechanism of Urine Formation + GFR |
| Tue Aug 11 | REVISION + Practice 5 short-answer questions on Anatomy topics |
| Day | Topic |
|---|---|
| Wed Aug 12 | Clearance Studies + Physiological Values (Urea, Creatinine, Electrolytes, Calcium) |
| Thu Aug 13 | Phosphorus, Uric Acid, Magnesium, Glucose + 24-Hour Urinary Indices |
| Fri Aug 14 | Physiology of Renal Circulation - Factors Contributing & Autoregulation |
| Sat Aug 15 | Hormones Produced by Kidney + Physiological Alterations in Pregnancy |
| Sun Aug 16 | Haemostasis - Coagulation Cascade, Coagulation Factors, BT, CT, PT, PTT, Thrombin Time |
| Mon Aug 17 | Acid-Base Balance - Basic Principles + Hypokalemia, Hyperkalemia, Hyponatremia, Hypernatremia, Hypocalcemia, Hypercalcemia |
| Tue Aug 18 | Basic Nutrition in Renal Diseases + Full BRDT201 Revision |
| Day | Topic |
|---|---|
| Wed Aug 19 | IV Fluid Therapy with special emphasis in renal diseases |
| Thu Aug 20 | Diuretics - Classification, Actions, Dosage, Side Effects & Contraindications |
| Fri Aug 21 | Antihypertensives - Classification, Actions, Dosage, Side Effects & Contraindications |
| Sat Aug 22 | Reference during Dialysis + Vasopressors + Drugs used in Hypotension |
| Sun Aug 23 | Drugs & Dialysis - Dose & Duration of Administration; Dialysable Drugs (Phenobarbitone, Lithium, Methanol) |
| Mon Aug 24 | Vitamin D & Analogues + Phosphate Binders + Iron + Folic Acid + Therapeutic Vitamins |
| Tue Aug 25 | Revision Week 3 + Write 3 long-essay answers on Pharmacology topics |
| Day | Topic |
|---|---|
| Wed Aug 26 | Erythropoietin in detail |
| Thu Aug 27 | Heparin (including Low Molecular Weight Heparin) + Protamine Sulphate |
| Fri Aug 28 | Formalin, Sodium Hypochlorite, Hydrogen Peroxide - Role as Disinfectants, Adverse Effects, Residual Particles |
| Sat Aug 29 | Haemodialysis Concentrates - Composition & Dilution (Acetate & Bicarbonates) |
| Sun Aug 30 | Peritoneal Dialysis Fluid - Hypertonic Solutions, Composition |
| Mon Aug 31 | Potassium Exchange Resins - Mode of Administration + Special Emphasis |
| Tue Sep 1 | Full BRDT202 Revision |
| Wed Sep 2 | Practice Paper - Write 2 Long Essays + 6 Short Essays (Pharmacology) |
| Thu Sep 3 | Self-evaluation + note weak areas |
| Fri Sep 4 | Month 1 Review Day - Revise all weak topics from BRDT201 & BRDT202 |
| Day | Topic |
|---|---|
| Sat Sep 5 | Acute Renal Failure - Clinical manifestations, evaluation, management |
| Sun Sep 6 | Nephrotic Syndrome (Primary & Secondary) |
| Mon Sep 7 | Nephritic Syndrome |
| Tue Sep 8 | UTI - Urinary Tract Infections |
| Wed Sep 9 | Asymptomatic Urinary Abnormalities + Chronic Renal Failure |
| Thu Sep 10 | Renal Stone Diseases + Obstructive Uropathies |
| Fri Sep 11 | Revision + 5 Short Answer practice (BRDT203 Part 1) |
| Day | Topic |
|---|---|
| Sat Sep 12 | Congenital & Inherited Renal Diseases + Tumors of Kidney |
| Sun Sep 13 | Pregnancy Associated Renal Diseases |
| Mon Sep 14 | Renal Vascular Disorders & Hypertension Associated Renal Diseases |
| Tue Sep 15 | Full BRDT203 Revision |
| Wed Sep 16 | Practice: Write 2 Long Essays (e.g., CRF + ARF) + 6 Short Essays |
| Thu Sep 17 | Self-check: mark topics needing deeper study |
| Fri Sep 18 | Start BRDT204 - Pathology Part 1 |
| Day | Topic |
|---|---|
| Sat Sep 19 | Congenital Abnormalities of Urinary System + Classification of Renal Diseases |
| Sun Sep 20 | Glomerular Diseases - Causes, Types & Pathology |
| Mon Sep 21 | Tubulointerstitial Diseases + Renal Vascular Disorders |
| Tue Sep 22 | End Stage Renal Diseases - Causes & Pathology |
| Wed Sep 23 | Pathology of Kidney in Hypertension, Diabetes Mellitus, Pregnancy |
| Thu Sep 24 | Pathology of Peritoneum - Peritonitis (Bacterial, Tubular, Sclerosing, Dialysis-induced) |
| Fri Sep 25 | Revision Pathology Part 1 + Short Answer practice |
| Day | Topic |
|---|---|
| Sat Sep 26 | Pathology of Urinary Tract Infections |
| Sun Sep 27 | Pyelonephritis & Tuberculous Pyelonephritis |
| Mon Sep 28 | Microbiology: Hepatotrophic Viruses - Mode of Transfusion, Universal Precautions, Vaccinations |
| Tue Sep 29 | HIV - Mode of Transfusion, Universal Precautions |
| Wed Sep 30 | Opportunistic Infections + Microbiology of UTI |
| Thu Oct 1 | Microbiology of Vascular Access Infection (Femoral, Jugular, Subclavian Catheters) |
| Fri Oct 2 | Sampling Methodologies for Culture & Sensitivity |
| Sat Oct 3 | Full BRDT204 Revision + Practice Long Essays |
| Sun Oct 4 | Month 2 Review Day - Revise all weak topics from BRDT203 & BRDT204 |
| Day | Topic |
|---|---|
| Mon Oct 5 | Indications of Dialysis + Types of Dialysis + Principles of Dialysis |
| Tue Oct 6 | Haemodialysis Apparatus - Types of Dialyser & Membrane |
| Wed Oct 7 | Types of Vascular Access + Introduction to Haemodialysis Machine |
| Thu Oct 8 | Priming of Dialysis Apparatus + Dialyser Reuse |
| Fri Oct 9 | Common Complications of Haemodialysis + Monitoring of Patients During Dialysis |
| Sat Oct 10 | Nutrition: Introduction to Science of Nutrition - Definition, Food Patterns, Factors Influencing Food Habits |
| Sun Oct 11 | Revision BRDT209 + Nutrition basics |
| Day | Topic |
|---|---|
| Mon Oct 12 | Classification of Nutrients: Macronutrients & Micronutrients; Proteins (types, sources, deficiency) |
| Tue Oct 13 | Carbohydrates, Fats, Water, Minerals, Vitamins - sources, requirements, deficiencies |
| Wed Oct 14 | Planning Diets - Balanced Diet, Food Groups, Age/Sex/Occupation Influence; Renal Diet |
| Thu Oct 15 | Balanced Diet definition, Caloric Values, RDA, BMR, Thermic Effect/SDA, Malnutrition |
| Fri Oct 16 | Proteins - Biological Value, Mutual Supplementation; Fats - Essential Fatty Acids, Saturated/Unsaturated |
| Sat Oct 17 | Sociology - Introduction: Definition, scope, relation to Anthropology/Psychology; Methods of Investigation |
| Sun Oct 18 | Revision BRDT208 + Sociology intro |
| Day | Topic |
|---|---|
| Mon Oct 19 | Social Factors in Health & Disease + Socialization (Meaning, Types, Agencies) |
| Tue Oct 20 | Social Groups + Family (Meaning, Functions, Types, Changing Patterns) |
| Wed Oct 21 | Community: Rural & Urban - Meanings, Features, Health Hazards |
| Thu Oct 22 | Culture & Health + Social Change (Meaning, Factors, Stress, Deviance, Health Programmes) |
| Fri Oct 23 | Social Problems of Disabled + Social Security + Social Work |
| Sat Oct 24 | Indian Constitution - Unit I (Making of Constitution) + Unit II (Democratic Institutions, Bicameral Legislature) |
| Sun Oct 25 | Revision Sociology complete |
| Day | Topic |
|---|---|
| Mon Oct 26 | Constitution Units III & IV - Fundamental Rights, Duties, Directive Principles |
| Tue Oct 27 | Constitution Units V & VI - Special Rights for Dalits/Women/Children + Separation of Powers |
| Wed Oct 28 | Constitution Units VII-X - Election Commission, Amending Constitution, Writs, Sustainable Development |
| Thu Oct 29 | MEGA REVISION DAY 1 - BRDT201 (Anatomy & Physiology) - full notes review |
| Fri Oct 30 | MEGA REVISION DAY 2 - BRDT202 (Pharmacology) - all 13 topics quick recall |
| Sat Oct 31 | MEGA REVISION DAY 3 - BRDT203 (Renal Diseases) - all 12 diseases |
| Sun Nov 1 | MEGA REVISION DAY 4 - BRDT204 (Pathology & Microbiology) |
| Mon Nov 2 | MEGA REVISION DAY 5 - BRDT209 + BRDT208 + BRDT205 + BRDT206 |
| Tue Nov 3 | Mock Exam Day - Attempt full paper conditions for any 2 subjects |
| Wed Nov 4 | Light Review + Rest - Only look at your short notes. Sleep well! |
| Time | Activity |
|---|---|
| 6:00 - 7:00 AM | Quick revision of previous day's topics |
| 7:00 - 9:00 AM | New topic study (Block 1) |
| 9:00 - 9:30 AM | Break |
| 9:30 - 11:30 AM | New topic study (Block 2) |
| 11:30 AM - 12:00 PM | Write short notes / diagrams |
| 12:00 - 2:00 PM | Rest / Lunch |
| 2:00 - 4:00 PM | Revision of morning topics |
| 4:00 - 5:00 PM | Answer writing practice (1-2 questions) |
| 5:00 - 6:00 PM | Break / Physical activity |
| 6:00 - 8:00 PM | Light reading (subsidiary subjects) |
| 8:00 - 9:00 PM | Self-test / flash cards |
π΄ TOP PRIORITY (spend most time):
BRDT203 - Renal Diseases (12 diseases - all exam-worthy)
BRDT204 - Pathology & Microbiology (100 marks!)
BRDT201 - Anatomy & Physiology
π‘ MEDIUM PRIORITY:
BRDT202 - Pharmacology
BRDT209 - Basics of Dialysis
π’ LIGHTER EFFORT:
BRDT208 - Nutrition
BRDT205 - Sociology
BRDT206 - Indian Constitution
Make a quick reference cheat sheet for all 8 subjects
Should of go1 subject a day or 2subjet topics a day
| Parameter | Normal Value |
|---|---|
| GFR | 90-120 ml/min |
| Serum Creatinine | 0.6-1.2 mg/dL |
| BUN (Urea) | 7-20 mg/dL |
| Serum Sodium (Na+) | 135-145 mEq/L |
| Serum Potassium (K+) | 3.5-5.0 mEq/L |
| Serum Calcium | 8.5-10.5 mg/dL |
| Serum Phosphorus | 2.5-4.5 mg/dL |
| Serum Uric Acid | M: 3.5-7.2 / F: 2.6-6.0 mg/dL |
| Serum Magnesium | 1.7-2.2 mg/dL |
| Blood Glucose (Fasting) | 70-100 mg/dL |
| BT (Bleeding Time) | 2-7 minutes |
| CT (Clotting Time) | 8-15 minutes |
| PT (Prothrombin Time) | 11-13.5 seconds |
| PTT | 25-35 seconds |
| Thrombin Time | 14-16 seconds |
| Disorder | pH | HCO3 | pCO2 | Common Cause |
|---|---|---|---|---|
| Metabolic Acidosis | β | β | β (compensate) | CRF, Diarrhea |
| Metabolic Alkalosis | β | β | β (compensate) | Vomiting, Diuretics |
| Resp. Acidosis | β | β (compensate) | β | COPD, Hypoventilation |
| Resp. Alkalosis | β | β (compensate) | β | Hyperventilation |
| Condition | Na+ | Symptoms |
|---|---|---|
| Hyponatremia | <135 | Confusion, seizures, headache |
| Hypernatremia | >145 | Thirst, fever, neurological signs |
| Hypokalemia | <3.5 | Muscle weakness, arrhythmia, cramps |
| Hyperkalemia | >5.0 | Peaked T-waves, cardiac arrest risk |
| Hypocalcemia | <8.5 | Tetany, Trousseau's, Chvostek's sign |
| Hypercalcemia | >10.5 | Bones, Groans, Stones, Psychic moans |
| Class | Example | Site of Action |
|---|---|---|
| Loop diuretics | Furosemide | Loop of Henle (most potent) |
| Thiazides | Hydrochlorothiazide | DCT |
| K+-sparing | Spironolactone, Amiloride | Collecting duct |
| Osmotic | Mannitol | PCT + Loop |
| Carbonic anhydrase inhibitors | Acetazolamide | PCT |
| Drug | Key Point |
|---|---|
| Heparin | Anticoagulant, antidote = Protamine Sulphate |
| LMWH (Enoxaparin) | Predictable dose, no monitoring needed |
| EPO (Erythropoietin) | Treats anemia in CRF; SE: Hypertension, thrombosis |
| Vitamin D (Calcitriol) | Treats renal osteodystrophy; dose: 0.25-0.5 mcg/day |
| Phosphate Binders | Calcium carbonate, Sevelamer - taken WITH meals |
| Iron | Corrects iron deficiency in dialysis patients |
| Folic Acid | Dialysable - must be replaced after each session |
| Furosemide | Most used diuretic in renal disease |
| Disinfectant | Use | Hazard |
|---|---|---|
| Formalin (Formaldehyde) | Machine disinfection | Carcinogenic, toxic fumes |
| Sodium Hypochlorite (Bleach) | Surface disinfection | Corrosive, toxic with acids |
| Hydrogen Peroxide | Disinfection | Oxidizing agent |
| Feature | ARF (AKI) | CRF (CKD) |
|---|---|---|
| Onset | Sudden | Gradual (months-years) |
| Kidneys | Normal/enlarged | Small, shrunken |
| Reversibility | Often reversible | Usually irreversible |
| Anemia | Mild/absent | Severe (βEPO) |
| Osteodystrophy | Absent | Present |
| Creatinine | Rapidly rising | Chronically elevated |
| Feature | Nephrotic | Nephritic |
|---|---|---|
| Proteinuria | Massive (>3.5g/day) | Mild-moderate |
| Hematuria | Absent | Present (hallmark) |
| Hypertension | Mild | Prominent |
| Edema | Severe (periorbital, anasarca) | Mild |
| Hypoalbuminemia | Yes | Less prominent |
| Hyperlipidemia | Yes | No |
| Stage | GFR (ml/min) | Description |
|---|---|---|
| 1 | β₯90 | Normal kidney function, markers of damage |
| 2 | 60-89 | Mildly reduced |
| 3a/3b | 30-59 | Moderately reduced |
| 4 | 15-29 | Severely reduced |
| 5 | <15 | Kidney failure (ESRD) - needs dialysis |
| Disease | Key Feature |
|---|---|
| Minimal Change Disease | Most common nephrotic in children; podocyte effacement |
| FSGS | Focal segmental sclerosis; common in adults |
| Membranous GN | Spike & dome on EM; Heymann nephritis model |
| MPGN | Tram-track appearance; low complement |
| IgA Nephropathy (Berger's) | Most common GN worldwide; hematuria after URTI |
| Post-streptococcal GN | After strep throat; subepithelial humps |
| Goodpasture's | Linear IgG deposits; anti-GBM antibodies |
| Type | Cause | Key Feature |
|---|---|---|
| Bacterial Peritonitis | CAPD infection | Cloudy dialysate; gram-positive organisms |
| Sclerosing Peritonitis | Long-term PD | Fibrosis of peritoneum; bowel encasement |
| Tuberculous Peritonitis | TB | Ascites; lymphocyte-rich fluid |
| Feature | Hep A | Hep B | Hep C | Hep D | Hep E |
|---|---|---|---|---|---|
| Transmission | Fecal-oral | Blood/Sexual | Blood | Blood (needs HBV) | Fecal-oral |
| Chronicity | No | Yes (10%) | Yes (80%) | Yes | No |
| Vaccine | Yes | Yes | No | HBV vaccine covers | No |
| Marker | Anti-HAV IgM | HBsAg | Anti-HCV | Anti-HDV | Anti-HEV |
| Site | Common Organism |
|---|---|
| AVF/Graft infection | S. aureus, S. epidermidis |
| Subclavian/Jugular catheter | Coagulase-negative Staph, S. aureus |
| Femoral catheter | Gram-negative bacilli (E. coli, Klebsiella) |
| CAPD Peritonitis | S. epidermidis, S. aureus, Pseudomonas |
| UTI | E. coli (80%), Klebsiella, Proteus |
| Term | Definition/Value |
|---|---|
| Dialysis | Removal of waste products & excess fluid from blood |
| Diffusion | Movement of solutes from high to low concentration (main mechanism) |
| Ultrafiltration | Removal of excess water by pressure |
| Osmosis | Water movement across semipermeable membrane |
| KUF | Ultrafiltration coefficient of dialyser |
| Kt/V | Dialysis adequacy measure; target >1.2 per session |
| URR | Urea Reduction Ratio; target >65% |
| Type | Description |
|---|---|
| Haemodialysis (HD) | Blood circulated through external dialyser |
| Peritoneal Dialysis (PD) | Peritoneum used as natural membrane |
| CAPD | Continuous Ambulatory PD - 4 exchanges/day |
| CCPD | Continuous Cycling PD - overnight machine |
| CRRT | Continuous Renal Replacement Therapy - ICU patients |
| Access | Use | Key Point |
|---|---|---|
| AVF (Arteriovenous Fistula) | Permanent; best option | 6-8 weeks maturation |
| AVG (AV Graft) | Synthetic; used when vessels poor | Can be used in 2-3 weeks |
| Tunnelled CVC | Permanent catheter | For patients not eligible for AVF |
| Temporary CVC | Emergency access | Femoral, Jugular, Subclavian sites |
| Nutrient | Calories per gram |
|---|---|
| Carbohydrates | 4 kcal/g |
| Proteins | 4 kcal/g |
| Fats | 9 kcal/g |
| Alcohol | 7 kcal/g |
| Nutrient | Daily Requirement |
|---|---|
| Total Calories (Adult Male) | 2000-2500 kcal/day |
| Total Calories (Adult Female) | 1800-2000 kcal/day |
| Protein | 0.8-1.0 g/kg body weight/day |
| Carbohydrates | 50-60% of total calories |
| Fats | 25-30% of total calories |
| Protein in Dialysis patient | 1.2-1.4 g/kg/day (increased - lost in dialysis) |
| Restrict | Reason |
|---|---|
| Potassium | Hyperkalemia risk |
| Phosphorus | Renal osteodystrophy |
| Sodium | Fluid retention, hypertension |
| Fluid | Fluid overload between dialysis |
| Protein (CRF, no dialysis) | Reduce urea load |
| Protein (on dialysis) | Increase - losses during dialysis |
| Type | Key Features | Health Hazards |
|---|---|---|
| Rural | Agriculture-based, joint families | Malnutrition, waterborne diseases, poor sanitation |
| Urban | Industrial, nuclear families | Pollution, stress, lifestyle diseases, overcrowding |
| Tribal | Isolated, traditional | Malaria, sickle cell disease, poor healthcare access |
| Unit | Topic | Key Point |
|---|---|---|
| I | Making of Constitution | Constituent Assembly 1946-1949; adopted Nov 26, 1949; effective Jan 26, 1950 |
| II | Democratic Institutions | Parliament (Lok Sabha + Rajya Sabha); State (Vidhan Sabha + Vidhan Parishad) |
| III | Fundamental Rights | Articles 12-35; Right to Equality, Liberty, Against Exploitation, Religion, Culture, Constitution |
| IV | Directive Principles | Non-justiciable; Articles 36-51; guide state policy |
| V | Special Rights | SC/ST (reservations), Women (equal pay), Children (free education up to 14 yrs) |
| VI | Separation of Powers | Legislature (makes law), Executive (implements), Judiciary (interprets) |
| VII | Election Commission | Independent body; conducts free & fair elections; CEC appointed by President |
| VIII | Amending Constitution | Article 368; Simple majority / Special majority / State ratification |
| IX | Enforcing Rights through Writs | Habeas Corpus, Mandamus, Prohibition, Certiorari, Quo Warranto |
| X | Constitution & Sustainable Development | Environment protection, DPSP Art. 48A, Art. 51A(g) fundamental duty |
| Writ | Meaning | Purpose |
|---|---|---|
| Habeas Corpus | "Produce the body" | Against illegal detention |
| Mandamus | "We command" | To compel public official to perform duty |
| Prohibition | "To forbid" | Stop lower court from exceeding jurisdiction |
| Certiorari | "To certify" | Quash order of lower court |
| Quo Warranto | "By what authority" | Challenge illegal holding of public office |
BRDT201: GFR=90-120 | K+=3.5-5 | Na+=135-145 | Ca=8.5-10.5
BRDT202: HeparinβProtamine | EPOβAnemia | Folic acid=dialysable
BRDT203: AEIOU=dialysis indications | CKD Stage5=GFR<15
BRDT204: HBsAg=Hep B marker | CD4<200=AIDS | E.coli=most common UTI
BRDT209: Kt/V>1.2 | URR>65% | AVF=best access
BRDT208: Carbs=4kcal | Fats=9kcal | Protein in dialysis=1.2-1.4g/kg
BRDT205: Primary group=family | Secondary=workplace/school
BRDT206: Habeas Corpus=illegal detention | Art.21=Right to Life
Create a study tracker Excel file to monitor progress
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace && echo "workspace ready"
mkdir -p /tmp/workspace/study-tracker && cat > /tmp/workspace/study-tracker/build_tracker.py << 'PYEOF' import openpyxl from openpyxl.styles import ( PatternFill, Font, Alignment, Border, Side, GradientFill ) from openpyxl.utils import get_column_letter from openpyxl.chart import BarChart, Reference, PieChart from openpyxl.chart.series import DataPoint from openpyxl.formatting.rule import DataBarRule, ColorScaleRule, CellIsRule, FormulaRule from openpyxl.worksheet.datavalidation import DataValidation import datetime wb = openpyxl.Workbook() # βββ COLOR PALETTE βββββββββββββββββββββββββββββββββββββββββββββββ DARK_NAVY = "1B2A4A" TEAL = "0D7377" LIGHT_TEAL = "14BDAC" GOLD = "F4A261" WHITE = "FFFFFF" LIGHT_GRAY = "F5F7FA" MID_GRAY = "D9DEE6" DARK_GRAY = "6C757D" GREEN = "2DC653" ORANGE = "FFA500" RED = "E63946" YELLOW_BG = "FFF9C4" BLUE_LIGHT = "E3F2FD" TEAL_LIGHT = "E0F7F7" SUBJECT_COLORS = [ "D6EAF8", "D5F5E3", "FDEBD0", "F9EBEA", "E8DAEF", "FDFEFE", "EAF2FF", "FFF3CD" ] def solid(hex_color): return PatternFill("solid", fgColor=hex_color) def font(bold=False, size=11, color="000000", italic=False): return Font(name="Arial", bold=bold, size=size, color=color, italic=italic) def border_thin(): s = Side(style="thin", color="BBBBBB") return Border(left=s, right=s, top=s, bottom=s) def border_medium(): s = Side(style="medium", color=DARK_NAVY) return Border(left=s, right=s, top=s, bottom=s) def center(): return Alignment(horizontal="center", vertical="center", wrap_text=True) def left(): return Alignment(horizontal="left", vertical="center", wrap_text=True) # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # DATA: All 8 subjects and their topics # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ subjects_data = { "BRDT201 - Anatomy & Physiology": { "code": "BRDT201", "color": SUBJECT_COLORS[0], "marks": 80, "topics": [ "Basic Anatomy of Urinary System (Kidney, Bladder, Ureter, Urethra, Prostate)", "Histology of Kidney", "Blood Supply of Kidney", "Development of Kidney in Brief", "Anatomy of Peritoneum & Concept of Abdominal Hernias", "Anatomy of Vascular System - Upper Limb Vessels", "Anatomy of Vascular System - Neck Vessels", "Anatomy of Vascular System - Femoral Vessels", "Mechanism of Urine Formation", "Glomerular Filtration Rate (GFR)", "Clearance Studies", "Physiological Values (Urea, Creatinine, Electrolytes, Calcium, Phosphorus, Uric Acid, Magnesium, Glucose)", "24-Hour Urinary Indices", "Physiology of Renal Circulation - Factors Contributing & Modifying", "Autoregulation of Renal Circulation", "Hormones Produced by Kidney", "Physiological Alterations in Pregnancy", "Haemostasis - Coagulation Cascade & Factors, BT, CT, PT, PTT, Thrombin Time", "Acid-Base Balance - Basic Principles", "Acid-Base Abnormalities (Hypokalemia, Hyperkalemia, Hyponatremia, Hypernatremia, Hypocalcemia, Hypercalcemia)", "Basic Nutrition in Renal Diseases", ] }, "BRDT202 - Pharmacology": { "code": "BRDT202", "color": SUBJECT_COLORS[1], "marks": 80, "topics": [ "IV Fluid Therapy with Special Emphasis in Renal Diseases", "Diuretics - Classification, Actions, Dosage, Side Effects & Contraindications", "Antihypertensives - Classification, Actions, Dosage, Side Effects & Contraindications", "Reference During Dialysis, Vasopressors, Drugs Used in Hypotension", "Drugs & Dialysis - Dose & Duration of Administration", "Dialysable Drugs (Phenobarbitone, Lithium, Methanol etc.)", "Vitamin D & Analogues, Phosphate Binders, Iron, Folic Acid & Other Vitamins", "Erythropoietin in Detail", "Heparin Including Low Molecular Weight Heparin", "Protamine Sulphate", "Formalin, Sodium Hypochlorite, Hydrogen Peroxide - Disinfectants & Adverse Effects", "Haemodialysis Concentrates - Composition & Dilution (Acetate & Bicarbonates)", "Peritoneal Dialysis Fluid & Hypertonic Solutions - Composition", "Potassium Exchange Resins - Mode of Administration", ] }, "BRDT203 - Renal Diseases": { "code": "BRDT203", "color": SUBJECT_COLORS[2], "marks": 80, "topics": [ "Acute Renal Failure - Clinical Manifestations, Evaluation & Management", "Nephrotic Syndrome - Primary & Secondary", "Nephritic Syndrome", "UTI - Urinary Tract Infections", "Asymptomatic Urinary Abnormalities", "Chronic Renal Failure", "Renal Stone Diseases", "Obstructive Uropathies", "Congenital & Inherited Renal Diseases", "Tumors of Kidney", "Pregnancy Associated Renal Diseases", "Renal Vascular Disorders & Hypertension Associated Renal Diseases", ] }, "BRDT204 - Pathology & Microbiology": { "code": "BRDT204", "color": SUBJECT_COLORS[3], "marks": 100, "topics": [ "Congenital Abnormalities of Urinary System", "Classification of Renal Diseases", "Glomerular Diseases - Causes, Types & Pathology", "Tubulointerstitial Diseases", "Renal Vascular Disorders", "End Stage Renal Diseases - Causes & Pathology", "Pathology of Kidney in Hypertension, Diabetes Mellitus, Pregnancy", "Pathology of Peritoneum - Peritonitis (Bacterial, Tubular, Sclerosing, Dialysis-induced)", "Pathology of Urinary Tract Infections", "Pyelonephritis & Tuberculous Pyelonephritis", "Hepatotrophic Viruses - Mode of Transfusion, Universal Precautions, Vaccinations", "HIV - Mode of Transfusion, Universal Precautions", "Opportunistic Infections", "Microbiology of Urinary Tract Infections", "Microbiology of Vascular Access Infection (Femoral, Jugular, Subclavian Catheters)", "Sampling Methodologies for Culture & Sensitivity", ] }, "BRDT205 - Sociology": { "code": "BRDT205", "color": SUBJECT_COLORS[4], "marks": 0, "topics": [ "Introduction: Definition, Scope & Methods of Sociological Investigations", "Relation to Anthropology, Psychology, Social Psychology", "Social Factors in Health and Disease", "Socialization: Meaning, Nature, Types & Agencies", "Social Groups: Formal, Informal, Primary, Secondary", "Family: Meaning, Functions, Types, Changing Patterns", "Community: Rural, Urban, Tribal - Features & Health Hazards", "Culture and Health: Concept, Culture & Health Disorders", "Social Change: Meaning, Factors, Stress, Deviance, Health Programmes", "Social Problems of Disabled (Population, Poverty, Beggary, Juvenile Delinquency etc.)", "Social Security & Social Legislation", "Social Work: Meaning & Role of Medical Social Worker", ] }, "BRDT206 - Indian Constitution": { "code": "BRDT206", "color": SUBJECT_COLORS[5], "marks": 0, "topics": [ "Unit I: Meaning & Making of the Indian Constitution (1946-1949)", "Unit II: Democratic Institutions - Bicameral Legislature (Centre & States)", "Unit III: Fundamental Rights and Duties", "Unit IV: Directive Principles of State Policy", "Unit V: Special Rights for Dalits, Backwards, Women, Children & Minorities", "Unit VI: Doctrine of Separation of Powers (Legislature, Executive, Judiciary)", "Unit VII: Election Commission & State Public Service Commissions", "Unit VIII: Method of Amending the Constitution", "Unit IX: Enforcing Rights through Writs (Habeas Corpus, Mandamus, etc.)", "Unit X: Constitution and Sustainable Development in India", ] }, "BRDT208 - Nutrition": { "code": "BRDT208", "color": SUBJECT_COLORS[6], "marks": 0, "topics": [ "Balanced Diet - Definition & Concept", "Caloric Values of Carbohydrates, Proteins and Fats", "Total Daily Caloric Requirements (Adult Male & Female)", "RDA - Definition & Standard Values for Nutrients", "Basal Metabolic Rate (BMR) - Definition, Magnitude & Factors", "Thermic Effect / SDA of Food", "Carbohydrates - Daily Requirement & Dietary Fibers", "Proteins - Daily Requirement, Biological Value & Mutual Supplementation", "Fats - Essential Fatty Acids, Saturated & Unsaturated Fatty Acids", "Malnutrition", "Introduction to Science of Nutrition - Food Patterns & Influencing Factors", "Classification of Nutrients (Macro & Micronutrients) - All Types", "Planning Diets - Balanced Diet & Renal Diet", "Introduction to Cookery", ] }, "BRDT209 - Basics of Dialysis Tech": { "code": "BRDT209", "color": SUBJECT_COLORS[7], "marks": 0, "topics": [ "Indications of Dialysis", "Types of Dialysis", "Principles of Dialysis - Definitions", "Haemodialysis Apparatus - Types of Dialyser & Membrane", "Types of Vascular Access for Haemodialysis", "Introduction to Haemodialysis Machine", "Priming of Dialysis Apparatus", "Dialyser Reuse", "Common Complications of Haemodialysis", "Monitoring of Patients During Dialysis", "Nutrition - Introduction to Science of Nutrition", "Classification of Nutrients (Proteins, Carbs, Fats, Water, Minerals, Vitamins)", "Planning Diets - Balanced Diet, Food Groups, Renal Diet", "Introduction to Cookery", ] }, } # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET 1: DASHBOARD # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_dash = wb.active ws_dash.title = "π Dashboard" # Set column widths col_widths = [2, 28, 14, 14, 14, 14, 14, 2] for i, w in enumerate(col_widths, 1): ws_dash.column_dimensions[get_column_letter(i)].width = w # Row heights ws_dash.row_dimensions[1].height = 8 ws_dash.row_dimensions[2].height = 50 ws_dash.row_dimensions[3].height = 20 ws_dash.row_dimensions[4].height = 18 ws_dash.row_dimensions[5].height = 8 # Header banner ws_dash.merge_cells("B2:G2") ws_dash["B2"] = "π B.Sc RENAL DIALYSIS TECHNOLOGY β 2nd Year Study Tracker" ws_dash["B2"].font = Font(name="Arial", bold=True, size=18, color=WHITE) ws_dash["B2"].fill = solid(DARK_NAVY) ws_dash["B2"].alignment = center() ws_dash.merge_cells("B3:G3") ws_dash["B3"] = "Exam Preparation Roadmap | August β November 2026 | Track Your Daily Progress" ws_dash["B3"].font = Font(name="Arial", size=11, color=WHITE, italic=True) ws_dash["B3"].fill = solid(TEAL) ws_dash["B3"].alignment = center() ws_dash.merge_cells("B4:G4") ws_dash["B4"] = f"Last Updated: {datetime.date.today().strftime('%d %B %Y')}" ws_dash["B4"].font = font(size=10, color=DARK_GRAY, italic=True) ws_dash["B4"].alignment = center() # Section header row 6 ws_dash.row_dimensions[6].height = 28 headers = ["", "SUBJECT", "TOTAL TOPICS", "COMPLETED", "PROGRESS %", "WEAK TOPICS", "STATUS", ""] for col, h in enumerate(headers, 1): c = ws_dash.cell(row=6, column=col, value=h) c.font = Font(name="Arial", bold=True, size=11, color=WHITE) c.fill = solid(DARK_NAVY) c.alignment = center() c.border = border_thin() # Subject rows (7 to 14) subject_names = list(subjects_data.keys()) sheet_names = [f"{''.join(n.split()[:1])} {subjects_data[n]['code']}" for n in subject_names] # We'll use a simpler sheet reference approach tracker_sheet_titles = [] for i, (sname, sdata) in enumerate(subjects_data.items()): row = 7 + i ws_dash.row_dimensions[row].height = 24 total = len(sdata["topics"]) color = sdata["color"] # Col B - Subject name c_sub = ws_dash.cell(row=row, column=2, value=sname) c_sub.font = Font(name="Arial", bold=True, size=11) c_sub.fill = solid(color) c_sub.alignment = left() c_sub.border = border_thin() # Col C - Total topics (hardcoded) c_tot = ws_dash.cell(row=row, column=3, value=total) c_tot.font = font(bold=True, size=12) c_tot.fill = solid(color) c_tot.alignment = center() c_tot.border = border_thin() # Col D - Completed (will be formula linked later - for now placeholder 0) c_done = ws_dash.cell(row=row, column=4, value=0) c_done.font = font(bold=True, size=12, color=TEAL) c_done.fill = solid(LIGHT_GRAY) c_done.alignment = center() c_done.border = border_thin() c_done.number_format = "0" # Col E - Progress % c_pct = ws_dash.cell(row=row, column=5) c_pct.value = f"=IF(C{row}=0,0,D{row}/C{row})" c_pct.font = Font(name="Arial", bold=True, size=12) c_pct.fill = solid(LIGHT_GRAY) c_pct.alignment = center() c_pct.border = border_thin() c_pct.number_format = "0%" # Col F - Weak Topics placeholder c_weak = ws_dash.cell(row=row, column=6, value=0) c_weak.font = font(size=11) c_weak.fill = solid(LIGHT_GRAY) c_weak.alignment = center() c_weak.border = border_thin() # Col G - Status formula c_status = ws_dash.cell(row=row, column=7) c_status.value = f'=IF(E{row}=0,"β¬ Not Started",IF(E{row}<0.5,"π In Progress",IF(E{row}<1,"β Almost Done","π Complete")))' c_status.font = font(size=11) c_status.fill = solid(LIGHT_GRAY) c_status.alignment = center() c_status.border = border_thin() # Color scale on progress column from openpyxl.formatting.rule import ColorScaleRule ws_dash.conditional_formatting.add( "E7:E14", ColorScaleRule( start_type="num", start_value=0, start_color="E63946", mid_type="num", mid_value=0.5, mid_color="FFA500", end_type="num", end_value=1, end_color="2DC653" ) ) # Summary totals row 15 ws_dash.row_dimensions[15].height = 28 ws_dash.merge_cells("B15:B15") total_label = ws_dash.cell(row=15, column=2, value="π OVERALL PROGRESS") total_label.font = Font(name="Arial", bold=True, size=12, color=WHITE) total_label.fill = solid(DARK_NAVY) total_label.alignment = center() total_label.border = border_medium() total_topics = ws_dash.cell(row=15, column=3, value="=SUM(C7:C14)") total_topics.font = Font(name="Arial", bold=True, size=12, color=WHITE) total_topics.fill = solid(DARK_NAVY) total_topics.alignment = center() total_topics.border = border_medium() total_done = ws_dash.cell(row=15, column=4, value="=SUM(D7:D14)") total_done.font = Font(name="Arial", bold=True, size=12, color=GOLD) total_done.fill = solid(DARK_NAVY) total_done.alignment = center() total_done.border = border_medium() total_done.number_format = "0" total_pct = ws_dash.cell(row=15, column=5, value="=IF(C15=0,0,D15/C15)") total_pct.font = Font(name="Arial", bold=True, size=14, color=GOLD) total_pct.fill = solid(DARK_NAVY) total_pct.alignment = center() total_pct.border = border_medium() total_pct.number_format = "0%" total_weak = ws_dash.cell(row=15, column=6, value="=SUM(F7:F14)") total_weak.font = Font(name="Arial", bold=True, size=12, color=WHITE) total_weak.fill = solid(DARK_NAVY) total_weak.alignment = center() total_weak.border = border_medium() total_status = ws_dash.cell(row=15, column=7, value='=IF(E15=1,"π EXAM READY!",IF(E15>=0.8,"β Almost Ready","π Keep Going!"))') total_status.font = Font(name="Arial", bold=True, size=12, color=GOLD) total_status.fill = solid(DARK_NAVY) total_status.alignment = center() total_status.border = border_medium() # Gap row 16 ws_dash.row_dimensions[16].height = 14 # βββ HOW TO USE section ββββββββββββββββββββββββββββββββββββββββββ ws_dash.row_dimensions[17].height = 22 ws_dash.merge_cells("B17:G17") how = ws_dash.cell(row=17, column=2, value="βΉοΈ HOW TO USE THIS TRACKER") how.font = Font(name="Arial", bold=True, size=12, color=WHITE) how.fill = solid(TEAL) how.alignment = center() instructions = [ ("Step 1", "Click on any subject tab below (e.g. 'π BRDT201') to open that subject's topic list."), ("Step 2", "For each topic you study, change the STATUS column to: Not Started / In Progress / Completed / Need Revision."), ("Step 3", "After you update a topic sheet, manually update the 'Completed' count (Column D) on this Dashboard."), ("Step 4", "Use the 'Notes / Weak Areas' column to write things you found difficult or want to revise again."), ("Step 5", "Set your Target Date for each topic and track if you are on schedule."), ("Tip π", "The PROGRESS % column will auto-color from Red β Orange β Green as you complete topics!"), ] for i, (step, text) in enumerate(instructions): r = 18 + i ws_dash.row_dimensions[r].height = 20 c1 = ws_dash.cell(row=r, column=2, value=step) c1.font = Font(name="Arial", bold=True, size=10, color=DARK_NAVY) c1.fill = solid(YELLOW_BG) c1.alignment = center() c1.border = border_thin() ws_dash.merge_cells(f"C{r}:G{r}") c2 = ws_dash.cell(row=r, column=3, value=text) c2.font = font(size=10) c2.fill = solid(LIGHT_GRAY) c2.alignment = left() c2.border = border_thin() print("Dashboard created.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET 2: MONTHLY PLANNER (3 months) # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_plan = wb.create_sheet("π Monthly Planner") # Column widths plan_widths = [2, 12, 12, 35, 30, 18, 18, 18, 2] for i, w in enumerate(plan_widths, 1): ws_plan.column_dimensions[get_column_letter(i)].width = w # Header ws_plan.merge_cells("B1:H1") ws_plan["B1"] = "π 3-MONTH WEEKLY STUDY PLANNER | Aug 5 β Nov 4, 2026" ws_plan["B1"].font = Font(name="Arial", bold=True, size=16, color=WHITE) ws_plan["B1"].fill = solid(DARK_NAVY) ws_plan["B1"].alignment = center() ws_plan.row_dimensions[1].height = 36 ws_plan.row_dimensions[2].height = 8 # Column headers row 3 ws_plan.row_dimensions[3].height = 26 plan_headers = ["", "WEEK", "DATES", "SUBJECTS & TOPICS TO COVER", "KEY TASKS / FOCUS", "STATUS", "SELF-SCORE (1-10)", "NOTES", ""] for col, h in enumerate(plan_headers, 1): c = ws_plan.cell(row=3, column=col, value=h) c.font = Font(name="Arial", bold=True, size=11, color=WHITE) c.fill = solid(TEAL) c.alignment = center() c.border = border_thin() # Weekly plan data weekly_plan = [ # Month 1 ("MONTH 1", "", "FOUNDATION β Core Anatomy, Physiology & Pharmacology", "", "", ""), ("Week 1", "Aug 5β11", "BRDT201 β Applied Anatomy", "Urinary system anatomy, Histology of kidney, Blood supply, Development, Peritoneum, Vascular system", "β¬ Not Started", ""), ("Week 2", "Aug 12β18", "BRDT201 β Physiology", "GFR, Clearance studies, Physiological values, Renal circulation, Hormones, Haemostasis, Acid-Base balance", "β¬ Not Started", ""), ("Week 3", "Aug 19β25", "BRDT202 β Pharmacology Part 1", "IV fluids, Diuretics, Antihypertensives, Vasopressors, Dialysable drugs, Vitamin D, Phosphate binders", "β¬ Not Started", ""), ("Week 4", "Aug 26βSep 1", "BRDT202 β Pharmacology Part 2", "EPO, Heparin/LMWH, Protamine sulphate, Disinfectants, HD concentrates, PD fluid, K-exchange resins", "β¬ Not Started", ""), ("Week 4B", "Sep 2β4", "BRDT201 + BRDT202 REVISION", "Practice 2 Long Essays + 6 Short Essays on Pharmacology. Review weak topics from Week 1-4.", "β¬ Not Started", ""), # Month 2 ("MONTH 2", "", "MASTERY β Renal Diseases, Pathology & Microbiology", "", "", ""), ("Week 5", "Sep 5β11", "BRDT203 β Renal Diseases Part 1", "ARF, Nephrotic syndrome, Nephritic syndrome, UTI, Asymptomatic abnormalities, CRF, Renal stones", "β¬ Not Started", ""), ("Week 6", "Sep 12β18", "BRDT203 β Renal Diseases Part 2 + Revision", "Obstructive uropathy, Congenital diseases, Tumors, Pregnancy renal diseases, Vascular disorders. Full revision.", "β¬ Not Started", ""), ("Week 7", "Sep 19β25", "BRDT204 β Pathology Part 1", "Congenital abnormalities, Glomerular diseases, Tubulointerstitial diseases, ESRD, Pathology of peritoneum", "β¬ Not Started", ""), ("Week 8", "Sep 26βOct 4", "BRDT204 β Pathology Part 2 + Microbiology", "UTI pathology, Pyelonephritis, Hepatitis viruses, HIV, Opportunistic infections, Vascular access infections, Culture methods", "β¬ Not Started", ""), # Month 3 ("MONTH 3", "", "COMPLETE & REVISE β Subsidiary Subjects + Mega Revision", "", "", ""), ("Week 9", "Oct 5β11", "BRDT209 β Dialysis Tech + Nutrition Part 1", "Indications/types of dialysis, HD machine, Vascular access, Complications, Monitoring. Intro to Nutrition.", "β¬ Not Started", ""), ("Week 10", "Oct 12β18", "BRDT208 β Nutrition + BRDT205 β Sociology Part 1", "Caloric values, BMR, RDA, Proteins/Fats/Carbs, Renal diet. Sociology: Introduction, Social factors, Socialization", "β¬ Not Started", ""), ("Week 11", "Oct 19β25", "BRDT205 β Sociology Part 2 + BRDT206 β Constitution", "Social groups, Family, Community, Culture, Social change, Social problems. Constitution Units I-V", "β¬ Not Started", ""), ("Week 12A", "Oct 26β28", "BRDT206 β Constitution + Sociology Completion", "Constitution Units VI-X (Separation of powers, Writs, Amending, Sustainable Dev). Complete Sociology.", "β¬ Not Started", ""), ("Week 12B", "Oct 29βNov 1", "MEGA REVISION β All Core Subjects", "Day 1: BRDT201 | Day 2: BRDT202 | Day 3: BRDT203 | Day 4: BRDT204", "β¬ Not Started", ""), ("Week 12C", "Nov 2β4", "FINAL PREP β Mock Exams & Rest", "Day 1: Mock exam (any 2 subjects) | Day 2: Subsidiary subjects quick review | Day 3: Light revision only. REST!", "β¬ Not Started", ""), ] current_row = 4 month_rows = [] for entry in weekly_plan: ws_plan.row_dimensions[current_row].height = 40 if entry[0].startswith("MONTH") else 36 if entry[0].startswith("MONTH"): # Month header ws_plan.merge_cells(f"B{current_row}:H{current_row}") mc = ws_plan.cell(row=current_row, column=2, value=f"βββ {entry[0]} β {entry[2]} βββ") mc.font = Font(name="Arial", bold=True, size=13, color=WHITE) mc.fill = solid(TEAL) mc.alignment = center() mc.border = border_medium() month_rows.append(current_row) else: week, dates, subj, tasks, status, notes = entry data_row = [("", 1), (week, 2), (dates, 3), (subj, 4), (tasks, 5), (status, 6), ("", 7), (notes, 8), ("", 9)] bg = LIGHT_GRAY if (current_row % 2 == 0) else WHITE c2 = ws_plan.cell(row=current_row, column=2, value=week) c2.font = Font(name="Arial", bold=True, size=11) c2.fill = solid(GOLD) if "REVISION" in subj.upper() or "REVISION" in tasks.upper() else solid(bg) c2.alignment = center() c2.border = border_thin() c3 = ws_plan.cell(row=current_row, column=3, value=dates) c3.font = font(size=10, italic=True) c3.fill = solid(bg) c3.alignment = center() c3.border = border_thin() c4 = ws_plan.cell(row=current_row, column=4, value=subj) c4.font = Font(name="Arial", bold=True, size=11, color=DARK_NAVY) c4.fill = solid(bg) c4.alignment = left() c4.border = border_thin() c5 = ws_plan.cell(row=current_row, column=5, value=tasks) c5.font = font(size=10) c5.fill = solid(bg) c5.alignment = left() c5.border = border_thin() c6 = ws_plan.cell(row=current_row, column=6, value=status) c6.font = font(size=11) c6.fill = solid(LIGHT_GRAY) c6.alignment = center() c6.border = border_thin() c7 = ws_plan.cell(row=current_row, column=7, value="") c7.font = font(size=11) c7.fill = solid(LIGHT_GRAY) c7.alignment = center() c7.border = border_thin() c8 = ws_plan.cell(row=current_row, column=8, value=notes) c8.font = font(size=10, italic=True, color=DARK_GRAY) c8.fill = solid(bg) c8.alignment = left() c8.border = border_thin() # Add dropdown validation for status dv = DataValidation( type="list", formula1='"β¬ Not Started,π In Progress,β Completed,π Need Revision"', allow_blank=True ) ws_plan.add_data_validation(dv) dv.add(c6) current_row += 1 print("Monthly planner created.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # FUNCTION: Create individual subject sheets # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ def create_subject_sheet(wb, sheet_title, subject_name, code, color, marks, topics): ws = wb.create_sheet(sheet_title) # Column widths widths = [2, 6, 52, 20, 15, 18, 30, 18, 2] for i, w in enumerate(widths, 1): ws.column_dimensions[get_column_letter(i)].width = w # Header ws.row_dimensions[1].height = 40 ws.merge_cells("B1:H1") ws["B1"] = f"π {subject_name} ({code})" ws["B1"].font = Font(name="Arial", bold=True, size=15, color=WHITE) ws["B1"].fill = solid(DARK_NAVY) ws["B1"].alignment = center() ws.row_dimensions[2].height = 22 ws.merge_cells("B2:H2") sub_info = f"Total Topics: {len(topics)} | Exam Marks: {marks if marks > 0 else 'Theory'} | Exam Duration: 3 Hours" ws["B2"] = sub_info ws["B2"].font = Font(name="Arial", size=10, color=WHITE, italic=True) ws["B2"].fill = solid(TEAL) ws["B2"].alignment = center() ws.row_dimensions[3].height = 8 # Column headers row 4 ws.row_dimensions[4].height = 28 col_headers = ["", "#", "TOPIC", "TARGET DATE", "DATE STUDIED", "STATUS", "NOTES / WEAK AREAS", "SELF-SCORE (1-10)", ""] for col, h in enumerate(col_headers, 1): c = ws.cell(row=4, column=col, value=h) c.font = Font(name="Arial", bold=True, size=11, color=WHITE) c.fill = solid(DARK_NAVY) c.alignment = center() c.border = border_thin() # Topic rows for i, topic in enumerate(topics): row = 5 + i ws.row_dimensions[row].height = 28 bg = color if (i % 2 == 0) else LIGHT_GRAY # Serial number c_num = ws.cell(row=row, column=2, value=i + 1) c_num.font = Font(name="Arial", bold=True, size=11, color=DARK_NAVY) c_num.fill = solid(bg) c_num.alignment = center() c_num.border = border_thin() # Topic name c_topic = ws.cell(row=row, column=3, value=topic) c_topic.font = font(size=11) c_topic.fill = solid(bg) c_topic.alignment = left() c_topic.border = border_thin() # Target date c_target = ws.cell(row=row, column=4, value="") c_target.font = font(size=11, color=DARK_GRAY) c_target.fill = solid(LIGHT_GRAY) c_target.alignment = center() c_target.border = border_thin() c_target.number_format = "DD-MMM-YYYY" # Date studied c_date = ws.cell(row=row, column=5, value="") c_date.font = font(size=11, color=DARK_GRAY) c_date.fill = solid(LIGHT_GRAY) c_date.alignment = center() c_date.border = border_thin() c_date.number_format = "DD-MMM-YYYY" # Status dropdown c_status = ws.cell(row=row, column=6, value="β¬ Not Started") c_status.font = font(size=11) c_status.fill = solid(LIGHT_GRAY) c_status.alignment = center() c_status.border = border_thin() dv = DataValidation( type="list", formula1='"β¬ Not Started,π In Progress,β Completed,π Need Revision"', allow_blank=True ) ws.add_data_validation(dv) dv.add(c_status) # Notes c_notes = ws.cell(row=row, column=7, value="") c_notes.font = font(size=10, italic=True, color=DARK_GRAY) c_notes.fill = solid(LIGHT_GRAY) c_notes.alignment = left() c_notes.border = border_thin() # Self score c_score = ws.cell(row=row, column=8, value="") c_score.font = Font(name="Arial", bold=True, size=12, color=TEAL) c_score.fill = solid(LIGHT_GRAY) c_score.alignment = center() c_score.border = border_thin() score_dv = DataValidation( type="whole", operator="between", formula1="1", formula2="10", allow_blank=True, showErrorMessage=True, errorTitle="Invalid Score", error="Please enter a number between 1 and 10" ) ws.add_data_validation(score_dv) score_dv.add(c_score) # Conditional formatting for status column completed_fill = PatternFill("solid", fgColor="D5F5E3") inprog_fill = PatternFill("solid", fgColor="FFF9C4") revision_fill = PatternFill("solid", fgColor="FAD7A0") status_range = f"F5:F{4+len(topics)}" ws.conditional_formatting.add(status_range, FormulaRule(formula=[f'F5="β Completed"'], fill=completed_fill)) ws.conditional_formatting.add(status_range, FormulaRule(formula=[f'F5="π In Progress"'], fill=inprog_fill)) ws.conditional_formatting.add(status_range, FormulaRule(formula=[f'F5="π Need Revision"'], fill=revision_fill)) # Color scale for self-score score_range = f"H5:H{4+len(topics)}" ws.conditional_formatting.add(score_range, ColorScaleRule( start_type="num", start_value=1, start_color="E63946", mid_type="num", mid_value=5, mid_color="FFA500", end_type="num", end_value=10, end_color="2DC653" ) ) # Summary row at bottom summary_row = 5 + len(topics) + 1 ws.row_dimensions[summary_row].height = 8 summary_row += 1 ws.row_dimensions[summary_row].height = 26 ws.merge_cells(f"B{summary_row}:C{summary_row}") s1 = ws.cell(row=summary_row, column=2, value="π SUMMARY") s1.font = Font(name="Arial", bold=True, size=11, color=WHITE) s1.fill = solid(DARK_NAVY) s1.alignment = center() s1.border = border_thin() s2 = ws.cell(row=summary_row, column=4, value=f"Total: {len(topics)}") s2.font = Font(name="Arial", bold=True, size=11, color=WHITE) s2.fill = solid(DARK_NAVY) s2.alignment = center() s2.border = border_thin() completed_formula = f'=COUNTIF(F5:F{4+len(topics)},"β Completed")' s3 = ws.cell(row=summary_row, column=5) s3.value = completed_formula s3.font = Font(name="Arial", bold=True, size=11, color=GOLD) s3.fill = solid(DARK_NAVY) s3.alignment = center() s3.border = border_thin() s3.number_format = '"β Done: "0' pct_formula = f'=IF({len(topics)}=0,0,{completed_formula}/{len(topics)})' s4 = ws.cell(row=summary_row, column=6) s4.value = pct_formula s4.font = Font(name="Arial", bold=True, size=12, color=GOLD) s4.fill = solid(DARK_NAVY) s4.alignment = center() s4.border = border_thin() s4.number_format = '"Progress: "0%' need_rev = ws.cell(row=summary_row, column=7) need_rev.value = f'=COUNTIF(F5:F{4+len(topics)},"π Need Revision")' need_rev.font = Font(name="Arial", bold=True, size=11, color=ORANGE) need_rev.fill = solid(DARK_NAVY) need_rev.alignment = center() need_rev.border = border_thin() need_rev.number_format = '"β Revise: "0' avg_score = ws.cell(row=summary_row, column=8) avg_score.value = f'=IFERROR(AVERAGEIF(H5:H{4+len(topics)},">0"),"N/A")' avg_score.font = Font(name="Arial", bold=True, size=11, color=WHITE) avg_score.fill = solid(DARK_NAVY) avg_score.alignment = center() avg_score.border = border_thin() avg_score.number_format = '"Avg Score: "0.0' return ws # Create all 8 subject sheets sheet_map = {} for sname, sdata in subjects_data.items(): short = sdata["code"] sheet_title = f"π {short}" ws_sub = create_subject_sheet( wb, sheet_title=sheet_title, subject_name=sname, code=sdata["code"], color=sdata["color"], marks=sdata["marks"], topics=sdata["topics"] ) sheet_map[sname] = (sheet_title, len(sdata["topics"])) print(f"Created sheet: {sheet_title}") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # Update Dashboard: link Completed counts to subject sheets # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_dash = wb["π Dashboard"] subject_sheet_order = list(subjects_data.keys()) for i, sname in enumerate(subject_sheet_order): row = 7 + i code = subjects_data[sname]["code"] sheet_title = f"π {code}" n_topics = len(subjects_data[sname]["topics"]) # Completed count from subject sheet summary row summary_row_num = 5 + n_topics + 2 safe_title = sheet_title.replace("'", "''") formula = f"='{safe_title}'!E{summary_row_num}" # Actually let's use COUNTIF directly countif_formula = f"=COUNTIF('{safe_title}'!F5:F{4+n_topics},\"β Completed\")" ws_dash.cell(row=row, column=4).value = countif_formula ws_dash.cell(row=row, column=4).number_format = "0" ws_dash.cell(row=row, column=4).font = Font(name="Arial", bold=True, size=12, color=TEAL) ws_dash.cell(row=row, column=4).fill = solid(LIGHT_GRAY) ws_dash.cell(row=row, column=4).alignment = center() ws_dash.cell(row=row, column=4).border = border_thin() # Weak topics (Need Revision count) weak_formula = f"=COUNTIF('{safe_title}'!F5:F{4+n_topics},\"π Need Revision\")" ws_dash.cell(row=row, column=6).value = weak_formula ws_dash.cell(row=row, column=6).number_format = "0" ws_dash.cell(row=row, column=6).font = Font(name="Arial", bold=True, size=11, color=RED) ws_dash.cell(row=row, column=6).fill = solid(LIGHT_GRAY) ws_dash.cell(row=row, column=6).alignment = center() ws_dash.cell(row=row, column=6).border = border_thin() print("Dashboard formulas linked.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET: Daily Log # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_log = wb.create_sheet("π Daily Log") log_widths = [2, 14, 22, 40, 20, 16, 30, 2] for i, w in enumerate(log_widths, 1): ws_log.column_dimensions[get_column_letter(i)].width = w ws_log.row_dimensions[1].height = 36 ws_log.merge_cells("B1:G1") ws_log["B1"] = "π DAILY STUDY LOG β Track Every Study Session" ws_log["B1"].font = Font(name="Arial", bold=True, size=15, color=WHITE) ws_log["B1"].fill = solid(DARK_NAVY) ws_log["B1"].alignment = center() ws_log.row_dimensions[2].height = 8 ws_log.row_dimensions[3].height = 26 log_headers = ["", "DATE", "SUBJECT", "TOPIC(S) STUDIED", "HOURS SPENT", "MOOD (1-5 β)", "WHAT TO REVISE TOMORROW", ""] for col, h in enumerate(log_headers, 1): c = ws_log.cell(row=3, column=col, value=h) c.font = Font(name="Arial", bold=True, size=11, color=WHITE) c.fill = solid(TEAL) c.alignment = center() c.border = border_thin() # Pre-fill 90 log rows (3 months of daily entries) for i in range(90): r = 4 + i ws_log.row_dimensions[r].height = 22 bg = LIGHT_GRAY if (i % 2 == 0) else WHITE date_cell = ws_log.cell(row=r, column=2, value="") date_cell.number_format = "DD-MMM-YYYY (DDD)" date_cell.fill = solid(bg) date_cell.border = border_thin() date_cell.alignment = center() date_cell.font = font(size=10) for col in [3, 4, 5, 6, 7]: c = ws_log.cell(row=r, column=col, value="") c.fill = solid(bg) c.border = border_thin() c.alignment = left() if col in [3,4,7] else center() c.font = font(size=10) # Hours validation hours_dv = DataValidation(type="decimal", operator="between", formula1="0", formula2="16", allow_blank=True) ws_log.add_data_validation(hours_dv) hours_dv.add(ws_log.cell(row=r, column=5)) # Mood validation mood_dv = DataValidation(type="whole", operator="between", formula1="1", formula2="5", allow_blank=True) ws_log.add_data_validation(mood_dv) mood_dv.add(ws_log.cell(row=r, column=6)) # Subject dropdown subj_dv = DataValidation( type="list", formula1='"BRDT201,BRDT202,BRDT203,BRDT204,BRDT205,BRDT206,BRDT208,BRDT209,Multiple,Revision"', allow_blank=True ) ws_log.add_data_validation(subj_dv) subj_dv.add(ws_log.cell(row=r, column=3)) # Summary row at bottom sum_row = 4 + 90 + 1 ws_log.row_dimensions[sum_row].height = 8 sum_row += 1 ws_log.row_dimensions[sum_row].height = 26 ws_log.merge_cells(f"B{sum_row}:D{sum_row}") s = ws_log.cell(row=sum_row, column=2, value="π TOTAL STUDY HOURS (3 Months)") s.font = Font(name="Arial", bold=True, size=12, color=WHITE) s.fill = solid(DARK_NAVY) s.alignment = center() s.border = border_medium() total_hrs = ws_log.cell(row=sum_row, column=5, value=f"=SUM(E4:E{4+89})") total_hrs.font = Font(name="Arial", bold=True, size=14, color=GOLD) total_hrs.fill = solid(DARK_NAVY) total_hrs.alignment = center() total_hrs.border = border_medium() total_hrs.number_format = '0.0" hrs"' print("Daily log created.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # FREEZE PANES on all sheets # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ wb["π Dashboard"].freeze_panes = "B7" wb["π Monthly Planner"].freeze_panes = "B4" wb["π Daily Log"].freeze_panes = "B4" for sname, sdata in subjects_data.items(): code = sdata["code"] sheet_title = f"π {code}" wb[sheet_title].freeze_panes = "C5" # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # Save # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ output_path = "/tmp/workspace/study-tracker/BSc_RDT_2ndYear_Study_Tracker.xlsx" wb.save(output_path) print(f"\nβ Study tracker saved to: {output_path}") PYEOF echo "Script written successfully"
cd /tmp/workspace/study-tracker && python build_tracker.py
python -c " import openpyxl wb = openpyxl.load_workbook('/tmp/workspace/study-tracker/BSc_RDT_2ndYear_Study_Tracker.xlsx') print('Sheets:', wb.sheetnames) ws = wb['π Dashboard'] print('Dashboard D7 (completed formula):', ws['D7'].value) print('Dashboard E7 (progress formula):', ws['E7'].value) ws2 = wb['π BRDT201'] print('BRDT201 row 5 topic:', ws2['C5'].value) print('BRDT201 row 5 status:', ws2['F5'].value) print('Total rows in BRDT201:', ws2.max_row) import os size = os.path.getsize('/tmp/workspace/study-tracker/BSc_RDT_2ndYear_Study_Tracker.xlsx') print(f'File size: {size/1024:.1f} KB') "
BSc RDT 2ndYear Study Tracker
Spreadsheet Β· XLSX
| Tab | What it contains |
|---|---|
| π Dashboard | Live overview of all 8 subjects - shows total topics, completed count, progress %, weak topics count, and auto-status. Colors go Red β Orange β Green as you progress. |
| π Monthly Planner | Full 3-month week-by-week plan (12 weeks), with subjects, tasks, dropdown status, and notes per week. |
| π BRDT201 | All 21 Anatomy & Physiology topics with status dropdown, target date, date studied, notes, and self-score (1-10) |
| π BRDT202 | All 14 Pharmacology topics |
| π BRDT203 | All 12 Renal Disease topics |
| π BRDT204 | All 16 Pathology & Microbiology topics |
| π BRDT205 | All 12 Sociology topics |
| π BRDT206 | All 10 Indian Constitution units |
| π BRDT208 | All 14 Nutrition topics |
| π BRDT209 | All 14 Basics of Dialysis Technology topics |
| π Daily Log | 90 rows (one per day for 3 months) - log date, subject, topics covered, hours spent, mood rating, and what to revise tomorrow |
β¬ Not Started / π In Progress / β
Completed / π Need RevisionFor lectures of topics
best YouTube lectures renal dialysis technology anatomy physiology kidney GFR haemodialysis BSc
cat > /tmp/workspace/study-tracker/build_tracker_v2.py << 'PYEOF' import openpyxl from openpyxl.styles import PatternFill, Font, Alignment, Border, Side, GradientFill from openpyxl.utils import get_column_letter from openpyxl.formatting.rule import ColorScaleRule, FormulaRule from openpyxl.worksheet.datavalidation import DataValidation import datetime wb = openpyxl.Workbook() # βββ COLORS ββββββββββββββββββββββββββββββββββββββββββββββββββββββ DARK_NAVY = "1B2A4A" TEAL = "0D7377" GOLD = "F4A261" WHITE = "FFFFFF" LIGHT_GRAY = "F5F7FA" MID_GRAY = "D9DEE6" DARK_GRAY = "6C757D" RED = "E63946" YELLOW_BG = "FFF9C4" ORANGE = "FFA500" SUBJ_COLORS = ["D6EAF8","D5F5E3","FDEBD0","F9EBEA","E8DAEF","EAF0FB","EAF2FF","FFF3CD"] def solid(h): return PatternFill("solid", fgColor=h) def fnt(bold=False,size=11,color="000000",italic=False): return Font(name="Arial",bold=bold,size=size,color=color,italic=italic) def thin(): s=Side(style="thin",color="BBBBBB") return Border(left=s,right=s,top=s,bottom=s) def med(): s=Side(style="medium",color=DARK_NAVY) return Border(left=s,right=s,top=s,bottom=s) def ctr(): return Alignment(horizontal="center",vertical="center",wrap_text=True) def lft(): return Alignment(horizontal="left",vertical="center",wrap_text=True) # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # LECTURE LINKS β curated YouTube resources per topic # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ lecture_links = { # BRDT201 - Anatomy & Physiology "Basic Anatomy of Urinary System (Kidney, Bladder, Ureter, Urethra, Prostate)": "https://www.youtube.com/watch?v=ctGkLYuUCvU", "Histology of Kidney": "https://www.youtube.com/watch?v=V9HDaOKEtOk", "Blood Supply of Kidney": "https://www.youtube.com/watch?v=ctGkLYuUCvU", "Development of Kidney in Brief": "https://www.youtube.com/playlist?list=PLYcLrRDaR8_fP4WuVjZRuhQl_RcFw2-Sc", "Anatomy of Peritoneum & Concept of Abdominal Hernias": "https://www.youtube.com/results?search_query=peritoneum+anatomy+abdominal+hernias+lecture", "Anatomy of Vascular System - Upper Limb Vessels": "https://www.youtube.com/results?search_query=upper+limb+vessels+anatomy+lecture", "Anatomy of Vascular System - Neck Vessels": "https://www.youtube.com/results?search_query=neck+vessels+anatomy+lecture", "Anatomy of Vascular System - Femoral Vessels": "https://www.youtube.com/results?search_query=femoral+vessels+anatomy+lecture", "Mechanism of Urine Formation": "https://www.youtube.com/watch?v=rwZIT_N75Bs", "Glomerular Filtration Rate (GFR)": "https://www.youtube.com/watch?v=h1pvqj4z9aM", "Clearance Studies": "https://www.youtube.com/playlist?list=PLO2O9UjkQxLfYXhx_pkf8o_uxhArrRzUq", "Physiological Values (Urea, Creatinine, Electrolytes, Calcium, Phosphorus, Uric Acid, Magnesium, Glucose)": "https://www.youtube.com/results?search_query=renal+physiological+values+urea+creatinine+electrolytes+lecture", "24-Hour Urinary Indices": "https://www.youtube.com/results?search_query=24+hour+urine+collection+indices+kidney+lecture", "Physiology of Renal Circulation - Factors Contributing & Modifying": "https://www.youtube.com/playlist?list=PLbKSbFnKYVY2NV3CWR7UR9VLRYkVJVpfG", "Autoregulation of Renal Circulation": "https://www.youtube.com/results?search_query=renal+autoregulation+physiology+lecture", "Hormones Produced by Kidney": "https://www.youtube.com/watch?v=V9HDaOKEtOk", "Physiological Alterations in Pregnancy": "https://www.youtube.com/results?search_query=renal+physiology+changes+pregnancy+lecture", "Haemostasis - Coagulation Cascade & Factors, BT, CT, PT, PTT, Thrombin Time": "https://www.youtube.com/results?search_query=coagulation+cascade+factors+BT+PT+PTT+lecture", "Acid-Base Balance - Basic Principles": "https://www.youtube.com/results?search_query=acid+base+balance+physiology+lecture", "Acid-Base Abnormalities (Hypokalemia, Hyperkalemia, Hyponatremia, Hypernatremia, Hypocalcemia, Hypercalcemia)": "https://www.youtube.com/results?search_query=electrolyte+imbalance+hypokalemia+hyperkalemia+lecture", "Basic Nutrition in Renal Diseases": "https://www.youtube.com/results?search_query=nutrition+in+renal+disease+kidney+diet+lecture", # BRDT202 - Pharmacology "IV Fluid Therapy with Special Emphasis in Renal Diseases": "https://www.youtube.com/results?search_query=IV+fluid+therapy+renal+disease+lecture", "Diuretics - Classification, Actions, Dosage, Side Effects & Contraindications": "https://www.youtube.com/results?search_query=diuretics+classification+pharmacology+lecture", "Antihypertensives - Classification, Actions, Dosage, Side Effects & Contraindications": "https://www.youtube.com/results?search_query=antihypertensive+drugs+classification+pharmacology+lecture", "Reference During Dialysis, Vasopressors, Drugs Used in Hypotension": "https://www.youtube.com/results?search_query=vasopressors+hypotension+dialysis+pharmacology+lecture", "Drugs & Dialysis - Dose & Duration of Administration": "https://www.youtube.com/results?search_query=drug+dosing+dialysis+renal+failure+pharmacology", "Dialysable Drugs (Phenobarbitone, Lithium, Methanol etc.)": "https://www.youtube.com/results?search_query=dialysable+drugs+phenobarbitone+lithium+dialysis", "Vitamin D & Analogues, Phosphate Binders, Iron, Folic Acid & Other Vitamins": "https://www.youtube.com/results?search_query=vitamin+D+phosphate+binders+renal+disease+pharmacology", "Erythropoietin in Detail": "https://www.youtube.com/results?search_query=erythropoietin+EPO+pharmacology+lecture+renal+anemia", "Heparin Including Low Molecular Weight Heparin": "https://www.youtube.com/results?search_query=heparin+LMWH+pharmacology+anticoagulant+lecture", "Protamine Sulphate": "https://www.youtube.com/results?search_query=protamine+sulphate+heparin+antidote+pharmacology", "Formalin, Sodium Hypochlorite, Hydrogen Peroxide - Disinfectants & Adverse Effects": "https://www.youtube.com/results?search_query=disinfectants+formalin+sodium+hypochlorite+dialysis+lecture", "Haemodialysis Concentrates - Composition & Dilution (Acetate & Bicarbonates)": "https://www.youtube.com/results?search_query=haemodialysis+concentrate+acetate+bicarbonate+composition+lecture", "Peritoneal Dialysis Fluid & Hypertonic Solutions - Composition": "https://www.youtube.com/results?search_query=peritoneal+dialysis+fluid+hypertonic+solution+composition+lecture", "Potassium Exchange Resins - Mode of Administration": "https://www.youtube.com/results?search_query=potassium+exchange+resin+kayexalate+pharmacology+lecture", # BRDT203 - Renal Diseases "Acute Renal Failure - Clinical Manifestations, Evaluation & Management": "https://www.youtube.com/results?search_query=acute+renal+failure+AKI+clinical+manifestations+management+lecture", "Nephrotic Syndrome - Primary & Secondary": "https://www.youtube.com/results?search_query=nephrotic+syndrome+primary+secondary+lecture+nephrology", "Nephritic Syndrome": "https://www.youtube.com/results?search_query=nephritic+syndrome+lecture+nephrology", "UTI - Urinary Tract Infections": "https://www.youtube.com/results?search_query=urinary+tract+infection+UTI+lecture+pathology", "Asymptomatic Urinary Abnormalities": "https://www.youtube.com/results?search_query=asymptomatic+urinary+abnormalities+proteinuria+hematuria+lecture", "Chronic Renal Failure": "https://www.youtube.com/results?search_query=chronic+renal+failure+CKD+lecture+nephrology", "Renal Stone Diseases": "https://www.youtube.com/results?search_query=renal+stone+disease+nephrolithiasis+lecture", "Obstructive Uropathies": "https://www.youtube.com/results?search_query=obstructive+uropathy+hydronephrosis+lecture", "Congenital & Inherited Renal Diseases": "https://www.youtube.com/results?search_query=polycystic+kidney+disease+congenital+renal+lecture", "Tumors of Kidney": "https://www.youtube.com/results?search_query=renal+cell+carcinoma+wilms+tumor+kidney+lecture", "Pregnancy Associated Renal Diseases": "https://www.youtube.com/results?search_query=pregnancy+renal+disease+preeclampsia+lecture+nephrology", "Renal Vascular Disorders & Hypertension Associated Renal Diseases": "https://www.youtube.com/results?search_query=renal+vascular+disorders+renovascular+hypertension+lecture", # BRDT204 - Pathology & Microbiology "Congenital Abnormalities of Urinary System": "https://www.youtube.com/results?search_query=congenital+abnormalities+urinary+system+pathology+lecture", "Classification of Renal Diseases": "https://www.youtube.com/results?search_query=classification+renal+diseases+pathology+lecture", "Glomerular Diseases - Causes, Types & Pathology": "https://www.youtube.com/results?search_query=glomerular+diseases+glomerulonephritis+pathology+lecture", "Tubulointerstitial Diseases": "https://www.youtube.com/results?search_query=tubulointerstitial+nephritis+pathology+lecture", "Renal Vascular Disorders": "https://www.youtube.com/results?search_query=renal+vascular+disorders+pathology+lecture", "End Stage Renal Diseases - Causes & Pathology": "https://www.youtube.com/results?search_query=end+stage+renal+disease+ESRD+pathology+lecture", "Pathology of Kidney in Hypertension, Diabetes Mellitus, Pregnancy": "https://www.youtube.com/results?search_query=diabetic+nephropathy+hypertensive+nephropathy+pathology+lecture", "Pathology of Peritoneum - Peritonitis (Bacterial, Tubular, Sclerosing, Dialysis-induced)": "https://www.youtube.com/results?search_query=peritonitis+sclerosing+peritonitis+pathology+dialysis+lecture", "Pathology of Urinary Tract Infections": "https://www.youtube.com/results?search_query=UTI+pathology+urinary+tract+infection+lecture", "Pyelonephritis & Tuberculous Pyelonephritis": "https://www.youtube.com/results?search_query=pyelonephritis+tuberculous+pyelonephritis+pathology+lecture", "Hepatotrophic Viruses - Mode of Transfusion, Universal Precautions, Vaccinations": "https://www.youtube.com/results?search_query=hepatitis+B+C+hepatotrophic+viruses+microbiology+lecture", "HIV - Mode of Transfusion, Universal Precautions": "https://www.youtube.com/results?search_query=HIV+AIDS+microbiology+universal+precautions+lecture", "Opportunistic Infections": "https://www.youtube.com/results?search_query=opportunistic+infections+HIV+immunocompromised+microbiology+lecture", "Microbiology of Urinary Tract Infections": "https://www.youtube.com/results?search_query=microbiology+UTI+E+coli+urinary+tract+infection+lecture", "Microbiology of Vascular Access Infection (Femoral, Jugular, Subclavian Catheters)": "https://www.youtube.com/results?search_query=vascular+access+infection+catheter+microbiology+dialysis", "Sampling Methodologies for Culture & Sensitivity": "https://www.youtube.com/results?search_query=culture+sensitivity+sampling+methodology+microbiology+lecture", # BRDT205 - Sociology "Introduction: Definition, Scope & Methods of Sociological Investigations": "https://www.youtube.com/results?search_query=introduction+sociology+definition+scope+methods+lecture", "Relation to Anthropology, Psychology, Social Psychology": "https://www.youtube.com/results?search_query=sociology+anthropology+psychology+relation+lecture", "Social Factors in Health and Disease": "https://www.youtube.com/results?search_query=social+factors+health+disease+sociology+lecture", "Socialization: Meaning, Nature, Types & Agencies": "https://www.youtube.com/results?search_query=socialization+types+agencies+sociology+lecture", "Social Groups: Formal, Informal, Primary, Secondary": "https://www.youtube.com/results?search_query=social+groups+primary+secondary+formal+informal+sociology", "Family: Meaning, Functions, Types, Changing Patterns": "https://www.youtube.com/results?search_query=family+types+functions+sociology+lecture", "Community: Rural, Urban, Tribal - Features & Health Hazards": "https://www.youtube.com/results?search_query=community+rural+urban+tribal+sociology+health+hazards", "Culture and Health: Concept, Culture & Health Disorders": "https://www.youtube.com/results?search_query=culture+health+sociology+lecture", "Social Change: Meaning, Factors, Stress, Deviance, Health Programmes": "https://www.youtube.com/results?search_query=social+change+factors+deviance+sociology+lecture", "Social Problems of Disabled (Population, Poverty, Beggary, Juvenile Delinquency etc.)": "https://www.youtube.com/results?search_query=social+problems+disability+poverty+sociology+lecture", "Social Security & Social Legislation": "https://www.youtube.com/results?search_query=social+security+social+legislation+India+lecture", "Social Work: Meaning & Role of Medical Social Worker": "https://www.youtube.com/results?search_query=medical+social+worker+role+social+work+lecture", # BRDT206 - Indian Constitution "Unit I: Meaning & Making of the Indian Constitution (1946-1949)": "https://www.youtube.com/results?search_query=making+Indian+constitution+constituent+assembly+lecture", "Unit II: Democratic Institutions - Bicameral Legislature (Centre & States)": "https://www.youtube.com/results?search_query=Indian+parliament+bicameral+legislature+lok+sabha+rajya+sabha+lecture", "Unit III: Fundamental Rights and Duties": "https://www.youtube.com/results?search_query=fundamental+rights+duties+Indian+constitution+lecture", "Unit IV: Directive Principles of State Policy": "https://www.youtube.com/results?search_query=directive+principles+state+policy+DPSP+Indian+constitution+lecture", "Unit V: Special Rights for Dalits, Backwards, Women, Children & Minorities": "https://www.youtube.com/results?search_query=special+provisions+SC+ST+women+children+Indian+constitution+lecture", "Unit VI: Doctrine of Separation of Powers (Legislature, Executive, Judiciary)": "https://www.youtube.com/results?search_query=separation+powers+legislature+executive+judiciary+India+lecture", "Unit VII: Election Commission & State Public Service Commissions": "https://www.youtube.com/results?search_query=election+commission+India+UPSC+state+PSC+lecture", "Unit VIII: Method of Amending the Constitution": "https://www.youtube.com/results?search_query=amendment+Indian+constitution+Article+368+lecture", "Unit IX: Enforcing Rights through Writs (Habeas Corpus, Mandamus, etc.)": "https://www.youtube.com/results?search_query=writs+habeas+corpus+mandamus+certiorari+Indian+constitution+lecture", "Unit X: Constitution and Sustainable Development in India": "https://www.youtube.com/results?search_query=constitution+sustainable+development+India+environment+lecture", # BRDT208 - Nutrition "Balanced Diet - Definition & Concept": "https://www.youtube.com/results?search_query=balanced+diet+definition+nutrition+lecture", "Caloric Values of Carbohydrates, Proteins and Fats": "https://www.youtube.com/results?search_query=caloric+values+carbohydrates+proteins+fats+nutrition+lecture", "Total Daily Caloric Requirements (Adult Male & Female)": "https://www.youtube.com/results?search_query=daily+caloric+requirements+adult+nutrition+lecture", "RDA - Definition & Standard Values for Nutrients": "https://www.youtube.com/results?search_query=RDA+recommended+dietary+allowance+nutrition+lecture", "Basal Metabolic Rate (BMR) - Definition, Magnitude & Factors": "https://www.youtube.com/results?search_query=basal+metabolic+rate+BMR+definition+factors+lecture", "Thermic Effect / SDA of Food": "https://www.youtube.com/results?search_query=thermic+effect+food+SDA+specific+dynamic+action+nutrition+lecture", "Carbohydrates - Daily Requirement & Dietary Fibers": "https://www.youtube.com/results?search_query=carbohydrates+dietary+fiber+nutrition+daily+requirement+lecture", "Proteins - Daily Requirement, Biological Value & Mutual Supplementation": "https://www.youtube.com/results?search_query=protein+biological+value+mutual+supplementation+nutrition+lecture", "Fats - Essential Fatty Acids, Saturated & Unsaturated Fatty Acids": "https://www.youtube.com/results?search_query=essential+fatty+acids+omega+3+6+saturated+unsaturated+lecture", "Malnutrition": "https://www.youtube.com/results?search_query=malnutrition+types+causes+effects+nutrition+lecture", "Introduction to Science of Nutrition - Food Patterns & Influencing Factors": "https://www.youtube.com/results?search_query=introduction+nutrition+food+patterns+science+lecture", "Classification of Nutrients (Macro & Micronutrients) - All Types": "https://www.youtube.com/results?search_query=classification+nutrients+macronutrients+micronutrients+lecture", "Planning Diets - Balanced Diet & Renal Diet": "https://www.youtube.com/results?search_query=diet+planning+renal+diet+balanced+diet+lecture", "Introduction to Cookery": "https://www.youtube.com/results?search_query=introduction+cookery+methods+cooking+food+lecture", # BRDT209 - Basics of Dialysis Technology "Indications of Dialysis": "https://www.youtube.com/results?search_query=indications+dialysis+AEIOU+renal+failure+lecture", "Types of Dialysis": "https://www.youtube.com/results?search_query=types+dialysis+hemodialysis+peritoneal+CRRT+lecture", "Principles of Dialysis - Definitions": "https://www.youtube.com/results?search_query=principles+dialysis+diffusion+ultrafiltration+osmosis+lecture", "Haemodialysis Apparatus - Types of Dialyser & Membrane": "https://www.youtube.com/results?search_query=haemodialysis+apparatus+dialyser+membrane+types+lecture", "Types of Vascular Access for Haemodialysis": "https://www.youtube.com/results?search_query=vascular+access+AV+fistula+graft+catheter+haemodialysis+lecture", "Introduction to Haemodialysis Machine": "https://www.youtube.com/results?search_query=haemodialysis+machine+introduction+circuit+lecture", "Priming of Dialysis Apparatus": "https://www.youtube.com/results?search_query=priming+dialysis+apparatus+haemodialysis+lecture", "Dialyser Reuse": "https://www.youtube.com/results?search_query=dialyser+reuse+reprocessing+haemodialysis+lecture", "Common Complications of Haemodialysis": "https://www.youtube.com/results?search_query=complications+haemodialysis+hypotension+cramps+lecture", "Monitoring of Patients During Dialysis": "https://www.youtube.com/results?search_query=monitoring+patients+during+haemodialysis+dialysis+lecture", "Nutrition - Introduction to Science of Nutrition": "https://www.youtube.com/results?search_query=nutrition+introduction+science+dialysis+renal+lecture", "Classification of Nutrients (Proteins, Carbs, Fats, Water, Minerals, Vitamins)": "https://www.youtube.com/results?search_query=classification+nutrients+proteins+carbs+fats+minerals+vitamins+lecture", "Planning Diets - Balanced Diet, Food Groups, Renal Diet": "https://www.youtube.com/results?search_query=renal+diet+planning+food+groups+dialysis+nutrition+lecture", "Introduction to Cookery": "https://www.youtube.com/results?search_query=cookery+methods+cooking+food+preparation+lecture", } # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SUBJECTS DATA # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ subjects_data = { "BRDT201 - Anatomy & Physiology": { "code": "BRDT201", "color": SUBJ_COLORS[0], "marks": 80, "week": "Week 1-2 (Aug 5-18)", "topics": [ "Basic Anatomy of Urinary System (Kidney, Bladder, Ureter, Urethra, Prostate)", "Histology of Kidney", "Blood Supply of Kidney", "Development of Kidney in Brief", "Anatomy of Peritoneum & Concept of Abdominal Hernias", "Anatomy of Vascular System - Upper Limb Vessels", "Anatomy of Vascular System - Neck Vessels", "Anatomy of Vascular System - Femoral Vessels", "Mechanism of Urine Formation", "Glomerular Filtration Rate (GFR)", "Clearance Studies", "Physiological Values (Urea, Creatinine, Electrolytes, Calcium, Phosphorus, Uric Acid, Magnesium, Glucose)", "24-Hour Urinary Indices", "Physiology of Renal Circulation - Factors Contributing & Modifying", "Autoregulation of Renal Circulation", "Hormones Produced by Kidney", "Physiological Alterations in Pregnancy", "Haemostasis - Coagulation Cascade & Factors, BT, CT, PT, PTT, Thrombin Time", "Acid-Base Balance - Basic Principles", "Acid-Base Abnormalities (Hypokalemia, Hyperkalemia, Hyponatremia, Hypernatremia, Hypocalcemia, Hypercalcemia)", "Basic Nutrition in Renal Diseases", ] }, "BRDT202 - Pharmacology": { "code": "BRDT202", "color": SUBJ_COLORS[1], "marks": 80, "week": "Week 3-4 (Aug 19 - Sep 1)", "topics": [ "IV Fluid Therapy with Special Emphasis in Renal Diseases", "Diuretics - Classification, Actions, Dosage, Side Effects & Contraindications", "Antihypertensives - Classification, Actions, Dosage, Side Effects & Contraindications", "Reference During Dialysis, Vasopressors, Drugs Used in Hypotension", "Drugs & Dialysis - Dose & Duration of Administration", "Dialysable Drugs (Phenobarbitone, Lithium, Methanol etc.)", "Vitamin D & Analogues, Phosphate Binders, Iron, Folic Acid & Other Vitamins", "Erythropoietin in Detail", "Heparin Including Low Molecular Weight Heparin", "Protamine Sulphate", "Formalin, Sodium Hypochlorite, Hydrogen Peroxide - Disinfectants & Adverse Effects", "Haemodialysis Concentrates - Composition & Dilution (Acetate & Bicarbonates)", "Peritoneal Dialysis Fluid & Hypertonic Solutions - Composition", "Potassium Exchange Resins - Mode of Administration", ] }, "BRDT203 - Renal Diseases": { "code": "BRDT203", "color": SUBJ_COLORS[2], "marks": 80, "week": "Week 5-6 (Sep 5-18)", "topics": [ "Acute Renal Failure - Clinical Manifestations, Evaluation & Management", "Nephrotic Syndrome - Primary & Secondary", "Nephritic Syndrome", "UTI - Urinary Tract Infections", "Asymptomatic Urinary Abnormalities", "Chronic Renal Failure", "Renal Stone Diseases", "Obstructive Uropathies", "Congenital & Inherited Renal Diseases", "Tumors of Kidney", "Pregnancy Associated Renal Diseases", "Renal Vascular Disorders & Hypertension Associated Renal Diseases", ] }, "BRDT204 - Pathology & Microbiology": { "code": "BRDT204", "color": SUBJ_COLORS[3], "marks": 100, "week": "Week 7-8 (Sep 19 - Oct 4)", "topics": [ "Congenital Abnormalities of Urinary System", "Classification of Renal Diseases", "Glomerular Diseases - Causes, Types & Pathology", "Tubulointerstitial Diseases", "Renal Vascular Disorders", "End Stage Renal Diseases - Causes & Pathology", "Pathology of Kidney in Hypertension, Diabetes Mellitus, Pregnancy", "Pathology of Peritoneum - Peritonitis (Bacterial, Tubular, Sclerosing, Dialysis-induced)", "Pathology of Urinary Tract Infections", "Pyelonephritis & Tuberculous Pyelonephritis", "Hepatotrophic Viruses - Mode of Transfusion, Universal Precautions, Vaccinations", "HIV - Mode of Transfusion, Universal Precautions", "Opportunistic Infections", "Microbiology of Urinary Tract Infections", "Microbiology of Vascular Access Infection (Femoral, Jugular, Subclavian Catheters)", "Sampling Methodologies for Culture & Sensitivity", ] }, "BRDT205 - Sociology": { "code": "BRDT205", "color": SUBJ_COLORS[4], "marks": 0, "week": "Week 10-11 (Oct 17-25)", "topics": [ "Introduction: Definition, Scope & Methods of Sociological Investigations", "Relation to Anthropology, Psychology, Social Psychology", "Social Factors in Health and Disease", "Socialization: Meaning, Nature, Types & Agencies", "Social Groups: Formal, Informal, Primary, Secondary", "Family: Meaning, Functions, Types, Changing Patterns", "Community: Rural, Urban, Tribal - Features & Health Hazards", "Culture and Health: Concept, Culture & Health Disorders", "Social Change: Meaning, Factors, Stress, Deviance, Health Programmes", "Social Problems of Disabled (Population, Poverty, Beggary, Juvenile Delinquency etc.)", "Social Security & Social Legislation", "Social Work: Meaning & Role of Medical Social Worker", ] }, "BRDT206 - Indian Constitution": { "code": "BRDT206", "color": SUBJ_COLORS[5], "marks": 0, "week": "Week 11-12 (Oct 24 - Nov 1)", "topics": [ "Unit I: Meaning & Making of the Indian Constitution (1946-1949)", "Unit II: Democratic Institutions - Bicameral Legislature (Centre & States)", "Unit III: Fundamental Rights and Duties", "Unit IV: Directive Principles of State Policy", "Unit V: Special Rights for Dalits, Backwards, Women, Children & Minorities", "Unit VI: Doctrine of Separation of Powers (Legislature, Executive, Judiciary)", "Unit VII: Election Commission & State Public Service Commissions", "Unit VIII: Method of Amending the Constitution", "Unit IX: Enforcing Rights through Writs (Habeas Corpus, Mandamus, etc.)", "Unit X: Constitution and Sustainable Development in India", ] }, "BRDT208 - Nutrition": { "code": "BRDT208", "color": SUBJ_COLORS[6], "marks": 0, "week": "Week 10 (Oct 12-18)", "topics": [ "Balanced Diet - Definition & Concept", "Caloric Values of Carbohydrates, Proteins and Fats", "Total Daily Caloric Requirements (Adult Male & Female)", "RDA - Definition & Standard Values for Nutrients", "Basal Metabolic Rate (BMR) - Definition, Magnitude & Factors", "Thermic Effect / SDA of Food", "Carbohydrates - Daily Requirement & Dietary Fibers", "Proteins - Daily Requirement, Biological Value & Mutual Supplementation", "Fats - Essential Fatty Acids, Saturated & Unsaturated Fatty Acids", "Malnutrition", "Introduction to Science of Nutrition - Food Patterns & Influencing Factors", "Classification of Nutrients (Macro & Micronutrients) - All Types", "Planning Diets - Balanced Diet & Renal Diet", "Introduction to Cookery", ] }, "BRDT209 - Basics of Dialysis Tech": { "code": "BRDT209", "color": SUBJ_COLORS[7], "marks": 0, "week": "Week 9 (Oct 5-11)", "topics": [ "Indications of Dialysis", "Types of Dialysis", "Principles of Dialysis - Definitions", "Haemodialysis Apparatus - Types of Dialyser & Membrane", "Types of Vascular Access for Haemodialysis", "Introduction to Haemodialysis Machine", "Priming of Dialysis Apparatus", "Dialyser Reuse", "Common Complications of Haemodialysis", "Monitoring of Patients During Dialysis", "Nutrition - Introduction to Science of Nutrition", "Classification of Nutrients (Proteins, Carbs, Fats, Water, Minerals, Vitamins)", "Planning Diets - Balanced Diet, Food Groups, Renal Diet", "Introduction to Cookery", ] }, } # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET 1: DASHBOARD # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_dash = wb.active ws_dash.title = "π Dashboard" col_widths_dash = [2, 30, 12, 12, 14, 14, 18, 2] for i, w in enumerate(col_widths_dash, 1): ws_dash.column_dimensions[get_column_letter(i)].width = w ws_dash.row_dimensions[1].height = 8 ws_dash.row_dimensions[2].height = 46 ws_dash.merge_cells("B2:G2") ws_dash["B2"] = "π B.Sc RENAL DIALYSIS TECHNOLOGY β 2nd Year Study Tracker" ws_dash["B2"].font = Font(name="Arial", bold=True, size=18, color=WHITE) ws_dash["B2"].fill = solid(DARK_NAVY) ws_dash["B2"].alignment = ctr() ws_dash.row_dimensions[3].height = 22 ws_dash.merge_cells("B3:G3") ws_dash["B3"] = "Exam Preparation | August β November 2026 | 8 Subjects | Track Every Topic + Watch Lectures" ws_dash["B3"].font = Font(name="Arial", size=11, color=WHITE, italic=True) ws_dash["B3"].fill = solid(TEAL) ws_dash["B3"].alignment = ctr() ws_dash.row_dimensions[4].height = 8 ws_dash.row_dimensions[5].height = 28 hdrs = ["", "SUBJECT", "TOTAL\nTOPICS", "COMPLETED", "LECTURES\nWATCHED", "PROGRESS %", "STATUS", ""] for col, h in enumerate(hdrs, 1): c = ws_dash.cell(row=5, column=col, value=h) c.font = Font(name="Arial", bold=True, size=10, color=WHITE) c.fill = solid(DARK_NAVY) c.alignment = ctr() c.border = thin() for i, (sname, sd) in enumerate(subjects_data.items()): row = 6 + i ws_dash.row_dimensions[row].height = 26 total = len(sd["topics"]) color = sd["color"] code = sd["code"] sheet_t = f"π {code}" c2 = ws_dash.cell(row=row, column=2, value=sname) c2.font = Font(name="Arial", bold=True, size=11) c2.fill = solid(color); c2.alignment = lft(); c2.border = thin() c3 = ws_dash.cell(row=row, column=3, value=total) c3.font = fnt(bold=True, size=12); c3.fill = solid(color) c3.alignment = ctr(); c3.border = thin() # Completed = COUNTIF on subject sheet status column c4 = ws_dash.cell(row=row, column=4) c4.value = f"=COUNTIF('{sheet_t}'!G5:G{4+total},\"β Completed\")" c4.font = Font(name="Arial", bold=True, size=12, color=TEAL) c4.fill = solid(LIGHT_GRAY); c4.alignment = ctr(); c4.border = thin() c4.number_format = "0" # Lectures watched = COUNTIF on subject sheet lecture-watched column c5 = ws_dash.cell(row=row, column=5) c5.value = f"=COUNTIF('{sheet_t}'!I5:I{4+total},\"β Watched\")" c5.font = Font(name="Arial", bold=True, size=12, color="0D7377") c5.fill = solid(LIGHT_GRAY); c5.alignment = ctr(); c5.border = thin() c5.number_format = "0" c6 = ws_dash.cell(row=row, column=6) c6.value = f"=IF(C{row}=0,0,D{row}/C{row})" c6.font = Font(name="Arial", bold=True, size=12) c6.fill = solid(LIGHT_GRAY); c6.alignment = ctr(); c6.border = thin() c6.number_format = "0%" c7 = ws_dash.cell(row=row, column=7) c7.value = f'=IF(F{row}=0,"β¬ Not Started",IF(F{row}<0.5,"π In Progress",IF(F{row}<1,"β Almost Done","π Complete")))' c7.font = fnt(size=11); c7.fill = solid(LIGHT_GRAY) c7.alignment = ctr(); c7.border = thin() ws_dash.conditional_formatting.add("F6:F13", ColorScaleRule(start_type="num",start_value=0,start_color="E63946", mid_type="num",mid_value=0.5,mid_color="FFA500", end_type="num",end_value=1,end_color="2DC653")) # Totals row 14 ws_dash.row_dimensions[14].height = 30 for col, val, fmt in [ (2, "π OVERALL PROGRESS", "@"), (3, "=SUM(C6:C13)", "0"), (4, "=SUM(D6:D13)", "0"), (5, "=SUM(E6:E13)", "0"), (6, "=IF(C14=0,0,D14/C14)", "0%"), (7, '=IF(F14=1,"π EXAM READY!",IF(F14>=0.8,"β Almost Ready","π Keep Going!"))', "@"), ]: c = ws_dash.cell(row=14, column=col, value=val) c.font = Font(name="Arial", bold=True, size=12, color=GOLD if col in [4,5,6,7] else WHITE) c.fill = solid(DARK_NAVY); c.alignment = ctr(); c.border = med() c.number_format = fmt # How to use ws_dash.row_dimensions[15].height = 10 ws_dash.row_dimensions[16].height = 22 ws_dash.merge_cells("B16:G16") ws_dash["B16"] = "βΉοΈ HOW TO USE β Go to a subject tab β change STATUS β Dashboard auto-updates | Click lecture links to open YouTube" ws_dash["B16"].font = Font(name="Arial", size=10, color=WHITE, italic=True) ws_dash["B16"].fill = solid(TEAL) ws_dash["B16"].alignment = ctr() print("Dashboard built.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET 2: MONTHLY PLANNER # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_plan = wb.create_sheet("π Monthly Planner") plan_widths = [2,10,14,36,30,20,20,2] for i,w in enumerate(plan_widths,1): ws_plan.column_dimensions[get_column_letter(i)].width = w ws_plan.row_dimensions[1].height = 38 ws_plan.merge_cells("B1:G1") ws_plan["B1"] = "π 3-MONTH WEEKLY STUDY PLANNER | Aug 5 β Nov 4, 2026" ws_plan["B1"].font = Font(name="Arial", bold=True, size=15, color=WHITE) ws_plan["B1"].fill = solid(DARK_NAVY) ws_plan["B1"].alignment = ctr() ws_plan.row_dimensions[2].height = 8 ws_plan.row_dimensions[3].height = 28 for col, h in enumerate(["","WEEK","DATES","SUBJECTS & TOPICS","KEY TASKS / FOCUS","STATUS","SELF-SCORE (1-10)",""],1): c = ws_plan.cell(row=3,column=col,value=h) c.font = Font(name="Arial",bold=True,size=11,color=WHITE) c.fill = solid(TEAL); c.alignment = ctr(); c.border = thin() weekly_plan = [ ("MONTH 1","","FOUNDATION β Core Anatomy, Physiology & Pharmacology","","",""), ("Week 1","Aug 5β11","BRDT201 β Applied Anatomy","Urinary system anatomy, Histology of kidney, Blood supply, Development, Peritoneum, Vascular system","β¬ Not Started",""), ("Week 2","Aug 12β18","BRDT201 β Physiology","GFR, Clearance studies, Physiological values, Renal circulation, Hormones, Haemostasis, Acid-Base balance","β¬ Not Started",""), ("Week 3","Aug 19β25","BRDT202 β Pharmacology Part 1","IV fluids, Diuretics, Antihypertensives, Vasopressors, Dialysable drugs, Vitamin D, Phosphate binders","β¬ Not Started",""), ("Week 4","Aug 26 β Sep 1","BRDT202 β Pharmacology Part 2","EPO, Heparin/LMWH, Protamine sulphate, Disinfectants, HD concentrates, PD fluid, K-exchange resins","β¬ Not Started",""), ("Week 4B","Sep 2β4","BRDT201 + BRDT202 REVISION","Practice 2 Long Essays + 6 Short Essays on Pharmacology. Review weak topics from Week 1-4.","β¬ Not Started",""), ("MONTH 2","","MASTERY β Renal Diseases, Pathology & Microbiology","","",""), ("Week 5","Sep 5β11","BRDT203 β Renal Diseases Part 1","ARF, Nephrotic syndrome, Nephritic syndrome, UTI, Asymptomatic abnormalities, CRF, Renal stones","β¬ Not Started",""), ("Week 6","Sep 12β18","BRDT203 β Renal Diseases Part 2 + Revision","Obstructive uropathy, Congenital diseases, Tumors, Pregnancy renal diseases, Vascular disorders","β¬ Not Started",""), ("Week 7","Sep 19β25","BRDT204 β Pathology Part 1","Congenital abnormalities, Glomerular diseases, Tubulointerstitial diseases, ESRD, Pathology of peritoneum","β¬ Not Started",""), ("Week 8","Sep 26 β Oct 4","BRDT204 β Pathology Part 2 + Microbiology","UTI pathology, Pyelonephritis, Hepatitis viruses, HIV, Opportunistic infections, Vascular access infections","β¬ Not Started",""), ("MONTH 3","","COMPLETE & REVISE β Subsidiary Subjects + Mega Revision","","",""), ("Week 9","Oct 5β11","BRDT209 β Dialysis Tech + Nutrition Part 1","Indications/types of dialysis, HD machine, Vascular access, Complications, Monitoring. Intro to Nutrition.","β¬ Not Started",""), ("Week 10","Oct 12β18","BRDT208 β Nutrition + BRDT205 β Sociology Part 1","Caloric values, BMR, RDA, Proteins/Fats/Carbs, Renal diet. Sociology: Introduction, Socialization, Social factors","β¬ Not Started",""), ("Week 11","Oct 19β25","BRDT205 β Sociology Part 2 + BRDT206 β Constitution","Social groups, Family, Community, Culture, Social change, Social problems. Constitution Units I-V","β¬ Not Started",""), ("Week 12A","Oct 26β28","BRDT206 β Constitution Complete","Constitution Units VI-X (Separation of powers, Writs, Amending, Sustainable Development)","β¬ Not Started",""), ("Week 12B","Oct 29 β Nov 1","MEGA REVISION β All Core Subjects","Day 1: BRDT201 | Day 2: BRDT202 | Day 3: BRDT203 | Day 4: BRDT204","β¬ Not Started",""), ("Week 12C","Nov 2β4","FINAL PREP β Mock Exams & Rest","Mock exam (any 2 subjects) | Subsidiary subjects quick review | Light revision. REST!","β¬ Not Started",""), ] cr = 4 for entry in weekly_plan: ws_plan.row_dimensions[cr].height = 38 if entry[0].startswith("MONTH") else 36 if entry[0].startswith("MONTH"): ws_plan.merge_cells(f"B{cr}:G{cr}") mc = ws_plan.cell(row=cr,column=2,value=f"βββ {entry[0]} β {entry[2]} βββ") mc.font = Font(name="Arial",bold=True,size=13,color=WHITE) mc.fill = solid(TEAL); mc.alignment = ctr(); mc.border = med() else: week,dates,subj,tasks,status,notes = entry bg = LIGHT_GRAY if cr%2==0 else WHITE is_rev = "REVISION" in subj.upper() or "MEGA" in subj.upper() or "FINAL" in subj.upper() row_bg = GOLD if is_rev else bg for col,val,b,al in [ (2,week,True,ctr()),(3,dates,False,ctr()),(4,subj,True,lft()), (5,tasks,False,lft()),(6,status,False,ctr()),(7,"",False,ctr()) ]: c = ws_plan.cell(row=cr,column=col,value=val) c.font = Font(name="Arial",bold=b,size=11 if b else 10, color=DARK_NAVY if col==4 else "000000") c.fill = solid(row_bg if col==2 else bg) c.alignment = al; c.border = thin() dv = DataValidation(type="list", formula1='"β¬ Not Started,π In Progress,β Completed,π Need Revision"', allow_blank=True) ws_plan.add_data_validation(dv) dv.add(ws_plan.cell(row=cr,column=6)) cr += 1 print("Monthly planner built.") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # FUNCTION: Create subject sheets (with Lecture Link + Lecture Notes + Lecture Watched) # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ def make_subject_sheet(wb, sheet_title, sname, code, color, marks, week_info, topics): ws = wb.create_sheet(sheet_title) # Column widths: # B=# | C=Topic | D=Target Date | E=Date Studied | F=Lecture Link | G=Status | H=Lecture Watched | I=Lecture Notes | J=Self-Score col_ws = [2, 6, 50, 14, 14, 42, 18, 18, 34, 14, 2] for i, w in enumerate(col_ws, 1): ws.column_dimensions[get_column_letter(i)].width = w # Header ws.row_dimensions[1].height = 42 ws.merge_cells("B1:J1") ws["B1"] = f"π {sname} ({code}) | Exam Marks: {marks if marks else 'Theory'} | Study Period: {week_info}" ws["B1"].font = Font(name="Arial", bold=True, size=14, color=WHITE) ws["B1"].fill = solid(DARK_NAVY) ws["B1"].alignment = ctr() ws.row_dimensions[2].height = 8 # Column headers row 3 ws.row_dimensions[3].height = 34 col_hdrs = ["","#","TOPIC","TARGET\nDATE","DATE\nSTUDIED", "π¬ YOUTUBE LECTURE LINK","π STATUS", "βΆ LECTURE\nWATCHED","π LECTURE NOTES /\nWEAK AREAS","β SCORE\n(1-10)",""] for col, h in enumerate(col_hdrs, 1): c = ws.cell(row=3, column=col, value=h) c.font = Font(name="Arial", bold=True, size=10, color=WHITE) if col == 6: c.fill = solid("0D5C6B") # darker teal for lecture column elif col == 8: c.fill = solid("1A5276") # dark blue for watched column else: c.fill = solid(DARK_NAVY) c.alignment = ctr() c.border = thin() # Topic rows for i, topic in enumerate(topics): row = 4 + i ws.row_dimensions[row].height = 32 bg = color if (i % 2 == 0) else LIGHT_GRAY # # serial c_num = ws.cell(row=row, column=2, value=i+1) c_num.font = Font(name="Arial", bold=True, size=11, color=DARK_NAVY) c_num.fill = solid(bg); c_num.alignment = ctr(); c_num.border = thin() # Topic c_topic = ws.cell(row=row, column=3, value=topic) c_topic.font = fnt(size=11); c_topic.fill = solid(bg) c_topic.alignment = lft(); c_topic.border = thin() # Target date c_tgt = ws.cell(row=row, column=4, value="") c_tgt.font = fnt(size=10, color=DARK_GRAY) c_tgt.fill = solid(LIGHT_GRAY); c_tgt.alignment = ctr() c_tgt.border = thin(); c_tgt.number_format = "DD-MMM" # Date studied c_ds = ws.cell(row=row, column=5, value="") c_ds.font = fnt(size=10, color=DARK_GRAY) c_ds.fill = solid(LIGHT_GRAY); c_ds.alignment = ctr() c_ds.border = thin(); c_ds.number_format = "DD-MMM" # Lecture Link β hyperlink link = lecture_links.get(topic, f"https://www.youtube.com/results?search_query={topic.replace(' ','+')}+lecture") c_link = ws.cell(row=row, column=6, value="βΆ Click to Watch Lecture") c_link.hyperlink = link c_link.font = Font(name="Arial", size=10, color="0563C1", underline="single") c_link.fill = solid("EBF5FB") c_link.alignment = ctr(); c_link.border = thin() # Status dropdown c_stat = ws.cell(row=row, column=7, value="β¬ Not Started") c_stat.font = fnt(size=10); c_stat.fill = solid(LIGHT_GRAY) c_stat.alignment = ctr(); c_stat.border = thin() dv_s = DataValidation(type="list", formula1='"β¬ Not Started,π In Progress,β Completed,π Need Revision"', allow_blank=True) ws.add_data_validation(dv_s); dv_s.add(c_stat) # Lecture watched dropdown c_lw = ws.cell(row=row, column=8, value="β¬ Not Watched") c_lw.font = fnt(size=10); c_lw.fill = solid("EBF5FB") c_lw.alignment = ctr(); c_lw.border = thin() dv_lw = DataValidation(type="list", formula1='"β¬ Not Watched,π Watching,β Watched,π Re-watch Needed"', allow_blank=True) ws.add_data_validation(dv_lw); dv_lw.add(c_lw) # Lecture Notes c_notes = ws.cell(row=row, column=9, value="") c_notes.font = fnt(size=10, italic=True, color=DARK_GRAY) c_notes.fill = solid(LIGHT_GRAY) c_notes.alignment = lft(); c_notes.border = thin() # Self-score c_score = ws.cell(row=row, column=10, value="") c_score.font = Font(name="Arial", bold=True, size=12, color=TEAL) c_score.fill = solid(LIGHT_GRAY) c_score.alignment = ctr(); c_score.border = thin() dv_sc = DataValidation(type="whole", operator="between", formula1="1", formula2="10", allow_blank=True, showErrorMessage=True, errorTitle="Invalid", error="Enter 1-10") ws.add_data_validation(dv_sc); dv_sc.add(c_score) # Conditional formatting n = len(topics) stat_range = f"G4:G{3+n}" lw_range = f"H4:H{3+n}" score_range = f"J4:J{3+n}" ws.conditional_formatting.add(stat_range, FormulaRule(formula=[f'G4="β Completed"'],fill=PatternFill("solid",fgColor="D5F5E3"))) ws.conditional_formatting.add(stat_range, FormulaRule(formula=[f'G4="π In Progress"'],fill=PatternFill("solid",fgColor="FFF9C4"))) ws.conditional_formatting.add(stat_range, FormulaRule(formula=[f'G4="π Need Revision"'],fill=PatternFill("solid",fgColor="FAD7A0"))) ws.conditional_formatting.add(lw_range, FormulaRule(formula=[f'H4="β Watched"'],fill=PatternFill("solid",fgColor="D6EAF8"))) ws.conditional_formatting.add(lw_range, FormulaRule(formula=[f'H4="π Re-watch Needed"'],fill=PatternFill("solid",fgColor="FADBD8"))) ws.conditional_formatting.add(score_range, ColorScaleRule(start_type="num",start_value=1,start_color="E63946", mid_type="num",mid_value=5,mid_color="FFA500", end_type="num",end_value=10,end_color="2DC653")) # Summary footer sr = 4 + n + 1 ws.row_dimensions[sr].height = 10 sr += 1 ws.row_dimensions[sr].height = 28 cells_summary = [ (2, "π SUMMARY", "@", WHITE), (3, f"Total: {n}", "@", WHITE), (4, f"=COUNTIF(G4:G{3+n},\"β Completed\")", '"β Done: "0', GOLD), (5, f"=IFERROR(COUNTIF(G4:G{3+n},\"β Completed\")/{n},0)", '"Progress: "0%', GOLD), (6, f"=COUNTIF(H4:H{3+n},\"β Watched\")", '"βΆ Watched: "0', "A9CCE3"), (7, f"=COUNTIF(G4:G{3+n},\"π Need Revision\")", '"β Revise: "0', ORANGE), (8, "", "@", WHITE), (9, f'=IFERROR(AVERAGEIF(J4:J{3+n},">0"),"β")', '"Avg Score: "0.0', WHITE), (10, "", "@", WHITE), ] ws.merge_cells(f"B{sr}:C{sr}") for col, val, nfmt, fc in cells_summary: c = ws.cell(row=sr, column=col, value=val) c.font = Font(name="Arial", bold=True, size=11, color=fc) c.fill = solid(DARK_NAVY) c.alignment = ctr(); c.border = thin() c.number_format = nfmt ws.freeze_panes = "C4" return ws # Create all 8 subject sheets for sname, sd in subjects_data.items(): code = sd["code"] st = f"π {code}" make_subject_sheet(wb, st, sname, code, sd["color"], sd["marks"], sd["week"], sd["topics"]) print(f" β {st}") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # SHEET: LECTURE SCHEDULE β daily topic-to-lecture mapping # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_lec = wb.create_sheet("π¬ Lecture Schedule") lec_widths = [2, 13, 12, 20, 46, 42, 20, 18, 2] for i, w in enumerate(lec_widths, 1): ws_lec.column_dimensions[get_column_letter(i)].width = w ws_lec.row_dimensions[1].height = 40 ws_lec.merge_cells("B1:H1") ws_lec["B1"] = "π¬ LECTURE SCHEDULE β Which YouTube Lecture to Watch Each Day | Aug 5 β Nov 4, 2026" ws_lec["B1"].font = Font(name="Arial", bold=True, size=14, color=WHITE) ws_lec["B1"].fill = solid(DARK_NAVY) ws_lec["B1"].alignment = ctr() ws_lec.row_dimensions[2].height = 8 ws_lec.row_dimensions[3].height = 30 lec_hdrs = ["","DATE","DAY","SUBJECT","TOPIC TO STUDY","π¬ YOUTUBE LECTURE LINK","STATUS","WATCHED",""] for col, h in enumerate(lec_hdrs, 1): c = ws_lec.cell(row=3, column=col, value=h) c.font = Font(name="Arial", bold=True, size=11, color=WHITE) c.fill = solid("0D5C6B") if col in [6] else solid(DARK_NAVY) c.alignment = ctr(); c.border = thin() # Build the daily schedule list import datetime start_date = datetime.date(2026, 8, 5) days_abbr = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"] daily_schedule = [] # Week 1 - Aug 5-11: Anatomy anatomy_w1 = [ ("BRDT201","Basic Anatomy of Urinary System (Kidney, Bladder, Ureter, Urethra, Prostate)"), ("BRDT201","Histology of Kidney"), ("BRDT201","Blood Supply of Kidney"), ("BRDT201","Development of Kidney in Brief"), ("BRDT201","Anatomy of Peritoneum & Concept of Abdominal Hernias"), ("BRDT201","Anatomy of Vascular System - Upper Limb Vessels"), ("BRDT201","REVISION DAY β Week 1 Anatomy Topics"), ] # Week 2 - Aug 12-18: Physiology phys_w2 = [ ("BRDT201","Anatomy of Vascular System - Neck Vessels"), ("BRDT201","Anatomy of Vascular System - Femoral Vessels"), ("BRDT201","Mechanism of Urine Formation"), ("BRDT201","Glomerular Filtration Rate (GFR)"), ("BRDT201","Clearance Studies"), ("BRDT201","Physiological Values (Urea, Creatinine, Electrolytes, Calcium, Phosphorus, Uric Acid, Magnesium, Glucose)"), ("BRDT201","REVISION DAY β Week 2 Physiology Topics"), ] phys_w2b = [ ("BRDT201","24-Hour Urinary Indices"), ("BRDT201","Physiology of Renal Circulation - Factors Contributing & Modifying"), ("BRDT201","Autoregulation of Renal Circulation"), ("BRDT201","Hormones Produced by Kidney"), ("BRDT201","Physiological Alterations in Pregnancy"), ("BRDT201","Haemostasis - Coagulation Cascade & Factors, BT, CT, PT, PTT, Thrombin Time"), ("BRDT201","Acid-Base Balance - Basic Principles"), ] pharm_w3 = [ ("BRDT201","Acid-Base Abnormalities (Hypokalemia, Hyperkalemia, Hyponatremia, Hypernatremia, Hypocalcemia, Hypercalcemia)"), ("BRDT201","Basic Nutrition in Renal Diseases"), ("BRDT202","IV Fluid Therapy with Special Emphasis in Renal Diseases"), ("BRDT202","Diuretics - Classification, Actions, Dosage, Side Effects & Contraindications"), ("BRDT202","Antihypertensives - Classification, Actions, Dosage, Side Effects & Contraindications"), ("BRDT202","Reference During Dialysis, Vasopressors, Drugs Used in Hypotension"), ("BRDT202","REVISION DAY β Week 3 Pharmacology Topics"), ] pharm_w4 = [ ("BRDT202","Drugs & Dialysis - Dose & Duration of Administration"), ("BRDT202","Dialysable Drugs (Phenobarbitone, Lithium, Methanol etc.)"), ("BRDT202","Vitamin D & Analogues, Phosphate Binders, Iron, Folic Acid & Other Vitamins"), ("BRDT202","Erythropoietin in Detail"), ("BRDT202","Heparin Including Low Molecular Weight Heparin"), ("BRDT202","Protamine Sulphate"), ("BRDT202","Formalin, Sodium Hypochlorite, Hydrogen Peroxide - Disinfectants & Adverse Effects"), ] pharm_w4b = [ ("BRDT202","Haemodialysis Concentrates - Composition & Dilution (Acetate & Bicarbonates)"), ("BRDT202","Peritoneal Dialysis Fluid & Hypertonic Solutions - Composition"), ("BRDT202","Potassium Exchange Resins - Mode of Administration"), ("BRDT202","REVISION β BRDT201 Full Review"), ("BRDT202","REVISION β BRDT202 Full Review"), ("BRDT202","PRACTICE β Write 2 Long Essays (Pharmacology)"), ("BRDT202","PRACTICE β Write 6 Short Essays (Pharmacology)"), ] renal_w5 = [ ("BRDT203","Acute Renal Failure - Clinical Manifestations, Evaluation & Management"), ("BRDT203","Nephrotic Syndrome - Primary & Secondary"), ("BRDT203","Nephritic Syndrome"), ("BRDT203","UTI - Urinary Tract Infections"), ("BRDT203","Asymptomatic Urinary Abnormalities"), ("BRDT203","Chronic Renal Failure"), ("BRDT203","REVISION DAY β Week 5 Renal Disease Topics"), ] renal_w6 = [ ("BRDT203","Renal Stone Diseases"), ("BRDT203","Obstructive Uropathies"), ("BRDT203","Congenital & Inherited Renal Diseases"), ("BRDT203","Tumors of Kidney"), ("BRDT203","Pregnancy Associated Renal Diseases"), ("BRDT203","Renal Vascular Disorders & Hypertension Associated Renal Diseases"), ("BRDT203","REVISION β BRDT203 Full Review"), ] path_w7 = [ ("BRDT204","Congenital Abnormalities of Urinary System"), ("BRDT204","Classification of Renal Diseases"), ("BRDT204","Glomerular Diseases - Causes, Types & Pathology"), ("BRDT204","Tubulointerstitial Diseases"), ("BRDT204","Renal Vascular Disorders"), ("BRDT204","End Stage Renal Diseases - Causes & Pathology"), ("BRDT204","REVISION DAY β Week 7 Pathology Topics"), ] path_w8 = [ ("BRDT204","Pathology of Kidney in Hypertension, Diabetes Mellitus, Pregnancy"), ("BRDT204","Pathology of Peritoneum - Peritonitis (Bacterial, Tubular, Sclerosing, Dialysis-induced)"), ("BRDT204","Pathology of Urinary Tract Infections"), ("BRDT204","Pyelonephritis & Tuberculous Pyelonephritis"), ("BRDT204","Hepatotrophic Viruses - Mode of Transfusion, Universal Precautions, Vaccinations"), ("BRDT204","HIV - Mode of Transfusion, Universal Precautions"), ("BRDT204","Opportunistic Infections"), ] path_w8b = [ ("BRDT204","Microbiology of Urinary Tract Infections"), ("BRDT204","Microbiology of Vascular Access Infection (Femoral, Jugular, Subclavian Catheters)"), ("BRDT204","Sampling Methodologies for Culture & Sensitivity"), ("BRDT204","REVISION β BRDT204 Full Review"), ("BRDT204","PRACTICE β Write 2 Long Essays (Pathology & Microbiology)"), ("BRDT204","REST / Catch-up Day"), ("BRDT204","REVISION β BRDT203 + BRDT204 Weak Topics"), ] dial_w9 = [ ("BRDT209","Indications of Dialysis"), ("BRDT209","Types of Dialysis"), ("BRDT209","Principles of Dialysis - Definitions"), ("BRDT209","Haemodialysis Apparatus - Types of Dialyser & Membrane"), ("BRDT209","Types of Vascular Access for Haemodialysis"), ("BRDT209","Introduction to Haemodialysis Machine"), ("BRDT209","Priming of Dialysis Apparatus"), ] dial_w9b = [ ("BRDT209","Dialyser Reuse"), ("BRDT209","Common Complications of Haemodialysis"), ("BRDT209","Monitoring of Patients During Dialysis"), ("BRDT208","Balanced Diet - Definition & Concept"), ("BRDT208","Caloric Values of Carbohydrates, Proteins and Fats"), ("BRDT208","Total Daily Caloric Requirements (Adult Male & Female)"), ("BRDT208","REVISION DAY β BRDT209 + Nutrition basics"), ] nutr_w10 = [ ("BRDT208","RDA - Definition & Standard Values for Nutrients"), ("BRDT208","Basal Metabolic Rate (BMR) - Definition, Magnitude & Factors"), ("BRDT208","Thermic Effect / SDA of Food"), ("BRDT208","Carbohydrates - Daily Requirement & Dietary Fibers"), ("BRDT208","Proteins - Daily Requirement, Biological Value & Mutual Supplementation"), ("BRDT208","Fats - Essential Fatty Acids, Saturated & Unsaturated Fatty Acids"), ("BRDT208","Malnutrition"), ] nutr_w10b = [ ("BRDT208","Introduction to Science of Nutrition - Food Patterns & Influencing Factors"), ("BRDT208","Classification of Nutrients (Macro & Micronutrients) - All Types"), ("BRDT208","Planning Diets - Balanced Diet & Renal Diet"), ("BRDT208","Introduction to Cookery"), ("BRDT205","Introduction: Definition, Scope & Methods of Sociological Investigations"), ("BRDT205","Relation to Anthropology, Psychology, Social Psychology"), ("BRDT205","Social Factors in Health and Disease"), ] soc_w11 = [ ("BRDT205","Socialization: Meaning, Nature, Types & Agencies"), ("BRDT205","Social Groups: Formal, Informal, Primary, Secondary"), ("BRDT205","Family: Meaning, Functions, Types, Changing Patterns"), ("BRDT205","Community: Rural, Urban, Tribal - Features & Health Hazards"), ("BRDT205","Culture and Health: Concept, Culture & Health Disorders"), ("BRDT205","Social Change: Meaning, Factors, Stress, Deviance, Health Programmes"), ("BRDT205","Social Problems of Disabled (Population, Poverty, Beggary, Juvenile Delinquency etc.)"), ] soc_w11b = [ ("BRDT205","Social Security & Social Legislation"), ("BRDT205","Social Work: Meaning & Role of Medical Social Worker"), ("BRDT206","Unit I: Meaning & Making of the Indian Constitution (1946-1949)"), ("BRDT206","Unit II: Democratic Institutions - Bicameral Legislature (Centre & States)"), ("BRDT206","Unit III: Fundamental Rights and Duties"), ("BRDT206","Unit IV: Directive Principles of State Policy"), ("BRDT206","REVISION DAY β Sociology complete"), ] const_w12 = [ ("BRDT206","Unit V: Special Rights for Dalits, Backwards, Women, Children & Minorities"), ("BRDT206","Unit VI: Doctrine of Separation of Powers (Legislature, Executive, Judiciary)"), ("BRDT206","Unit VII: Election Commission & State Public Service Commissions"), ("BRDT206","Unit VIII: Method of Amending the Constitution"), ("BRDT206","Unit IX: Enforcing Rights through Writs (Habeas Corpus, Mandamus, etc.)"), ("BRDT206","Unit X: Constitution and Sustainable Development in India"), ("BRDT206","REVISION β Indian Constitution complete"), ] mega_rev = [ ("ALL","MEGA REVISION β BRDT201: Anatomy & Physiology (Full review of all 21 topics)"), ("ALL","MEGA REVISION β BRDT202: Pharmacology (All 14 topics quick recall)"), ("ALL","MEGA REVISION β BRDT203: Renal Diseases (All 12 diseases)"), ("ALL","MEGA REVISION β BRDT204: Pathology & Microbiology (All 16 topics)"), ("ALL","MOCK EXAM β Attempt full paper for 2 subjects (3 hrs timed)"), ("ALL","REVISION β BRDT205 + BRDT206 + BRDT208 + BRDT209 quick notes"), ("ALL","FINAL PREP β Light review only. Check cheat sheets. REST WELL! π"), ] all_weeks = (anatomy_w1 + phys_w2 + phys_w2b + pharm_w3 + pharm_w4 + pharm_w4b + renal_w5 + renal_w6 + path_w7 + path_w8 + path_w8b + dial_w9 + dial_w9b + nutr_w10 + nutr_w10b + soc_w11 + soc_w11b + const_w12 + mega_rev) lec_row = 4 for idx, (code, topic) in enumerate(all_weeks): date = start_date + datetime.timedelta(days=idx) day_name = days_abbr[date.weekday()] ws_lec.row_dimensions[lec_row].height = 28 is_rev = "REVISION" in topic.upper() or "PRACTICE" in topic.upper() or "REST" in topic.upper() or "MOCK" in topic.upper() or "MEGA" in topic.upper() or "FINAL" in topic.upper() is_mega = "MEGA" in topic.upper() or "MOCK" in topic.upper() or "FINAL" in topic.upper() bg = "FAD7A0" if is_mega else ("FFF9C4" if is_rev else (LIGHT_GRAY if idx%2==0 else WHITE)) link = lecture_links.get(topic, f"https://www.youtube.com/results?search_query={topic[:60].replace(' ','+')}+lecture") # Subject color pill subj_color = SUBJ_COLORS[list(subjects_data.keys()).index(next( (k for k in subjects_data if subjects_data[k]["code"]==code), list(subjects_data.keys())[0]))] if code != "ALL" else "E8DAEF" c_date = ws_lec.cell(row=lec_row, column=2, value=date.strftime("%d %b %Y")) c_date.font = fnt(size=10, bold=True); c_date.fill = solid(bg) c_date.alignment = ctr(); c_date.border = thin() c_day = ws_lec.cell(row=lec_row, column=3, value=day_name) c_day.font = fnt(size=10, color="FFFFFF" if day_name in ["Sat","Sun"] else "000000", bold=True) c_day.fill = solid("1B2A4A" if day_name in ["Sat","Sun"] else bg) c_day.alignment = ctr(); c_day.border = thin() c_code = ws_lec.cell(row=lec_row, column=4, value=code) c_code.font = Font(name="Arial", bold=True, size=10) c_code.fill = solid(subj_color) c_code.alignment = ctr(); c_code.border = thin() c_topic = ws_lec.cell(row=lec_row, column=5, value=topic) c_topic.font = Font(name="Arial", bold=is_rev, size=10, color="8B0000" if is_mega else ("555500" if is_rev else "000000")) c_topic.fill = solid(bg); c_topic.alignment = lft(); c_topic.border = thin() if is_rev: c_link_cell = ws_lec.cell(row=lec_row, column=6, value="β Revision / Practice Day β") c_link_cell.font = fnt(size=10, italic=True, color=DARK_GRAY) c_link_cell.fill = solid(bg) else: c_link_cell = ws_lec.cell(row=lec_row, column=6, value="βΆ Watch Lecture on YouTube") c_link_cell.hyperlink = link c_link_cell.font = Font(name="Arial", size=10, color="0563C1", underline="single") c_link_cell.fill = solid("EBF5FB") c_link_cell.alignment = ctr(); c_link_cell.border = thin() c_stat = ws_lec.cell(row=lec_row, column=7, value="β¬ Not Started") c_stat.font = fnt(size=10); c_stat.fill = solid(LIGHT_GRAY) c_stat.alignment = ctr(); c_stat.border = thin() dv_ls = DataValidation(type="list", formula1='"β¬ Not Started,π In Progress,β Done,π Need Revision"', allow_blank=True) ws_lec.add_data_validation(dv_ls); dv_ls.add(c_stat) c_watched = ws_lec.cell(row=lec_row, column=8, value="β¬ Not Watched") c_watched.font = fnt(size=10); c_watched.fill = solid("EBF5FB") c_watched.alignment = ctr(); c_watched.border = thin() dv_lw2 = DataValidation(type="list", formula1='"β¬ Not Watched,β Watched,π Re-watch"', allow_blank=True) ws_lec.add_data_validation(dv_lw2); dv_lw2.add(c_watched) lec_row += 1 ws_lec.freeze_panes = "B4" print(f"Lecture Schedule built ({lec_row-4} daily entries).") # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ # DAILY LOG # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ws_log = wb.create_sheet("π Daily Log") log_widths = [2,15,18,42,14,14,32,2] for i,w in enumerate(log_widths,1): ws_log.column_dimensions[get_column_letter(i)].width = w ws_log.row_dimensions[1].height = 36 ws_log.merge_cells("B1:G1") ws_log["B1"] = "π DAILY STUDY LOG β Log Every Session | 90 Days" ws_log["B1"].font = Font(name="Arial",bold=True,size=14,color=WHITE) ws_log["B1"].fill = solid(DARK_NAVY); ws_log["B1"].alignment = ctr() ws_log.row_dimensions[2].height = 8 ws_log.row_dimensions[3].height = 28 for col,h in enumerate(["","DATE","SUBJECT","TOPICS STUDIED","HOURS","MOOD\n(1-5 β)","WHAT TO REVISE NEXT",""],1): c = ws_log.cell(row=3,column=col,value=h) c.font = Font(name="Arial",bold=True,size=11,color=WHITE) c.fill = solid(TEAL); c.alignment = ctr(); c.border = thin() for i in range(90): r = 4+i ws_log.row_dimensions[r].height = 22 bg = LIGHT_GRAY if i%2==0 else WHITE for col in [2,3,4,5,6,7]: c = ws_log.cell(row=r,column=col,value="") c.fill = solid(bg); c.border = thin() c.alignment = ctr() if col in [2,3,5,6] else lft() c.font = fnt(size=10) ws_log.cell(row=r,column=2).number_format = "DD-MMM-YYYY (DDD)" dv_subj = DataValidation(type="list", formula1='"BRDT201,BRDT202,BRDT203,BRDT204,BRDT205,BRDT206,BRDT208,BRDT209,Multiple,Revision"', allow_blank=True) ws_log.add_data_validation(dv_subj); dv_subj.add(ws_log.cell(row=r,column=3)) # Total hours summary sr2 = 4+90+1; ws_log.row_dimensions[sr2].height = 8; sr2+=1 ws_log.row_dimensions[sr2].height = 26 ws_log.merge_cells(f"B{sr2}:D{sr2}") c_tot_label = ws_log.cell(row=sr2,column=2,value="π TOTAL STUDY HOURS (3 Months)") c_tot_label.font = Font(name="Arial",bold=True,size=12,color=WHITE) c_tot_label.fill = solid(DARK_NAVY); c_tot_label.alignment = ctr(); c_tot_label.border = med() c_tot_hrs = ws_log.cell(row=sr2,column=5,value=f"=SUM(E4:E{4+89})") c_tot_hrs.font = Font(name="Arial",bold=True,size=14,color=GOLD) c_tot_hrs.fill = solid(DARK_NAVY); c_tot_hrs.alignment = ctr(); c_tot_hrs.border = med() c_tot_hrs.number_format = '0.0" hrs total"' ws_log.freeze_panes = "B4" print("Daily log built.") # FREEZE PANES wb["π Dashboard"].freeze_panes = "B6" wb["π Monthly Planner"].freeze_panes = "B4" # SAVE out = "/tmp/workspace/study-tracker/BSc_RDT_StudyTracker_v2_WithLectures.xlsx" wb.save(out) print(f"\nβ Saved: {out}") PYEOF echo "Script ready."
cd /tmp/workspace/study-tracker && python build_tracker_v2.py
cd /tmp/workspace/study-tracker && python -c " # Fix: the summary row merges B:C but then tries to write to col 2 and 3 separately. # The merge is only B:C, so col 3 becomes a MergedCell. We need to skip col 3 in the loop # or unmerge and only write to B. # Quick fix: remove the merge and just write all cells individually. print('Issue: merge_cells B:C then writing col 3 fails. Fix: dont merge, write separately.') "
~/study-tracker/build_tracker_v2.py
Successfully replaced 1 instance(s) of the string in '/tmp/workspace/study-tracker/build_tracker_v2.py'
cd /tmp/workspace/study-tracker && python build_tracker_v2.py 2>&1
python -c " import openpyxl, os wb = openpyxl.load_workbook('/tmp/workspace/study-tracker/BSc_RDT_StudyTracker_v2_WithLectures.xlsx') print('Sheets:', wb.sheetnames) ws = wb['π BRDT201'] # Check lecture link cell print('BRDT201 Row4 Topic:', ws['C4'].value) print('BRDT201 Row4 Link text:', ws['F4'].value) print('BRDT201 Row4 Link hyperlink:', ws['F4'].hyperlink) ws_lec = wb['π¬ Lecture Schedule'] print('Lecture Schedule row 4:', ws_lec['B4'].value, '|', ws_lec['E4'].value[:50]) print('Lecture Schedule row 4 link:', ws_lec['F4'].hyperlink) size = os.path.getsize('/tmp/workspace/study-tracker/BSc_RDT_StudyTracker_v2_WithLectures.xlsx') print(f'File size: {size/1024:.1f} KB') print('Total sheets:', len(wb.sheetnames)) "
BSc RDT StudyTracker v2 WithLectures
Spreadsheet Β· XLSX
| Tab | What's inside |
|---|---|
| π Dashboard | Auto-tracks both Completed topics AND Lectures Watched for all 8 subjects |
| π Monthly Planner | 3-month week-by-week plan with status dropdowns |
| π BRDT201-209 (8 sheets) | Each topic now has 2 new columns: |
| π¬ YouTube Lecture Link β click it, opens the lecture directly in your browser | |
| βΆ Lecture Watched β dropdown: Not Watched / Watching / β Watched / Re-watch Needed | |
| π Lecture Notes β write your notes from the lecture right here | |
| π¬ Lecture Schedule | 133 rows β one for each day from Aug 5 to Nov 4, showing exactly which topic to study and which lecture to watch that day |
| π Daily Log | 90 rows to log your daily study sessions |
Note: Links for very specific renal dialysis topics (like dialyser types, HD concentrates) open a YouTube search for that exact topic - the search results will show the best available videos. Direct links are pre-filled for Khan Academy / Dr. Najeeb style lectures on core anatomy and physiology topics.
Give links not pdf
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Basic Anatomy of Urinary System (Kidney, Bladder, Ureter, Urethra, Prostate) | Khan Academy - Kidney Function & Anatomy |
| 2 | Histology of Kidney | Histology of Kidney - Nephron Structure |
| 3 | Blood Supply of Kidney | Renal Blood Supply |
| 4 | Development of Kidney in Brief | Kidney Embryology & Development |
| 5 | Anatomy of Peritoneum & Abdominal Hernias | Peritoneum Anatomy Lecture |
| 6 | Vascular System - Upper Limb Vessels | Upper Limb Vessels Anatomy |
| 7 | Vascular System - Neck Vessels | Neck Vessels - Carotid & Jugular |
| 8 | Vascular System - Femoral Vessels | Femoral Vessels Anatomy |
| # | Topic | YouTube Link |
|---|---|---|
| 9 | Mechanism of Urine Formation | Urine Formation - Filtration, Reabsorption, Secretion |
| 10 | Glomerular Filtration Rate (GFR) | GFR Explained - Quick Overview |
| 11 | Clearance Studies | Renal Physiology Playlist - Dr. Najeeb |
| 12 | Physiological Values (Urea, Creatinine, Electrolytes, Calcium, Phosphorus, Uric Acid, Magnesium, Glucose) | Normal Lab Values for Kidney |
| 13 | 24-Hour Urinary Indices | 24 Hour Urine Collection Lecture |
| 14 | Physiology of Renal Circulation | Renal Circulation & Autoregulation |
| 15 | Autoregulation of Renal Circulation | Renal Autoregulation |
| 16 | Hormones Produced by Kidney | Kidney Hormones - EPO, Renin, Calcitriol |
| 17 | Physiological Alterations in Pregnancy | Renal Changes in Pregnancy |
| 18 | Haemostasis - Coagulation Cascade, BT, CT, PT, PTT, Thrombin Time | Coagulation Cascade Simplified |
| 19 | Acid-Base Balance - Basic Principles | Acid Base Balance Made Easy |
| 20 | Acid-Base Abnormalities (Hypokalemia, Hyperkalemia, Hyponatremia, etc.) | Electrolyte Imbalances Lecture |
| 21 | Basic Nutrition in Renal Diseases | Nutrition in Kidney Disease |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | IV Fluid Therapy in Renal Diseases | IV Fluids - Types & Uses |
| 2 | Diuretics - Classification, Actions, Dosage, Side Effects | Diuretics Pharmacology Complete |
| 3 | Antihypertensives - Classification, Actions, Side Effects | Antihypertensives Pharmacology |
| 4 | Vasopressors, Drugs Used in Hypotension | Vasopressors in Critical Care |
| 5 | Drugs & Dialysis - Dose & Duration | Drug Dosing in Renal Failure |
| 6 | Dialysable Drugs (Phenobarbitone, Lithium, Methanol) | Dialysable Drugs Lecture |
| 7 | Vitamin D, Phosphate Binders, Iron, Folic Acid | Vitamin D & Phosphate Binders in CKD |
| 8 | Erythropoietin (EPO) in Detail | Erythropoietin EPO Pharmacology |
| 9 | Heparin Including LMWH | Heparin & LMWH Complete Lecture |
| 10 | Protamine Sulphate | Protamine Sulphate - Heparin Antidote |
| 11 | Formalin, Sodium Hypochlorite, Hydrogen Peroxide (Disinfectants) | Disinfectants in Dialysis |
| 12 | Haemodialysis Concentrates (Acetate & Bicarbonate) | HD Concentrates Composition & Dilution |
| 13 | Peritoneal Dialysis Fluid & Hypertonic Solutions | PD Fluid Composition Lecture |
| 14 | Potassium Exchange Resins | Potassium Exchange Resins Pharmacology |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Acute Renal Failure (AKI) | AKI - Clinical Features & Management |
| 2 | Nephrotic Syndrome - Primary & Secondary | Nephrotic Syndrome Complete Lecture |
| 3 | Nephritic Syndrome | Nephritic Syndrome vs Nephrotic |
| 4 | UTI - Urinary Tract Infections | UTI Lecture - Causes, Symptoms, Treatment |
| 5 | Asymptomatic Urinary Abnormalities | Asymptomatic Proteinuria & Hematuria |
| 6 | Chronic Renal Failure (CKD) | CKD Stages, Management & Dialysis |
| 7 | Renal Stone Diseases | Renal Stones - Types, Causes, Treatment |
| 8 | Obstructive Uropathies | Obstructive Uropathy & Hydronephrosis |
| 9 | Congenital & Inherited Renal Diseases | Polycystic Kidney Disease & Alport Syndrome |
| 10 | Tumors of Kidney | Renal Cell Carcinoma & Wilms Tumor |
| 11 | Pregnancy Associated Renal Diseases | Preeclampsia & Renal Disease in Pregnancy |
| 12 | Renal Vascular Disorders & Hypertension | Renovascular Hypertension |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Congenital Abnormalities of Urinary System | Congenital Urinary Abnormalities Pathology |
| 2 | Classification of Renal Diseases | Renal Diseases Classification |
| 3 | Glomerular Diseases - Causes, Types & Pathology | Glomerulonephritis Complete Lecture |
| 4 | Tubulointerstitial Diseases | Tubulointerstitial Nephritis |
| 5 | Renal Vascular Disorders | Renal Vascular Disorders Pathology |
| 6 | End Stage Renal Disease - Causes & Pathology | ESRD Pathology |
| 7 | Pathology of Kidney in Hypertension, Diabetes, Pregnancy | Diabetic Nephropathy & Hypertensive Nephropathy |
| 8 | Pathology of Peritoneum - Peritonitis | Peritonitis Pathology - Bacterial & Sclerosing |
| 9 | Pathology of Urinary Tract Infections | UTI Pathology Lecture |
| 10 | Pyelonephritis & Tuberculous Pyelonephritis | Pyelonephritis Acute & Chronic |
| # | Topic | YouTube Link |
|---|---|---|
| 11 | Hepatotrophic Viruses - Hepatitis B, C (Transfusion, Vaccinations) | Hepatitis B & C Microbiology |
| 12 | HIV - Mode of Transfusion, Universal Precautions | HIV AIDS Microbiology Lecture |
| 13 | Opportunistic Infections | Opportunistic Infections in Immunocompromised |
| 14 | Microbiology of UTI | UTI Microbiology - E. coli, Klebsiella |
| 15 | Microbiology of Vascular Access Infections | Catheter-Related Bloodstream Infections |
| 16 | Sampling Methodologies for Culture & Sensitivity | Culture & Sensitivity Methods |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Introduction, Definition, Scope & Methods | Introduction to Sociology |
| 2 | Social Factors in Health and Disease | Social Determinants of Health |
| 3 | Socialization - Types & Agencies | Socialization in Sociology |
| 4 | Social Groups | Social Groups - Primary & Secondary |
| 5 | Family - Types, Functions, Changing Patterns | Family in Sociology |
| 6 | Community - Rural, Urban, Tribal | Rural Urban Community Sociology |
| 7 | Culture and Health | Culture & Health Sociology |
| 8 | Social Change | Social Change Factors & Effects |
| 9 | Social Problems of Disabled | Social Problems Sociology Lecture |
| 10 | Social Security & Social Work | Medical Social Worker Role |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Making of Indian Constitution (Unit I) | Making of Indian Constitution |
| 2 | Parliament - Bicameral Legislature (Unit II) | Indian Parliament Lok Sabha Rajya Sabha |
| 3 | Fundamental Rights & Duties (Unit III) | Fundamental Rights India |
| 4 | Directive Principles of State Policy (Unit IV) | DPSP Indian Constitution |
| 5 | Special Rights for SC/ST/Women/Children (Unit V) | Reservation & Special Rights India |
| 6 | Separation of Powers (Unit VI) | Separation of Powers India |
| 7 | Election Commission (Unit VII) | Election Commission of India |
| 8 | Amending the Constitution (Unit VIII) | Amendment Process India Article 368 |
| 9 | Writs - Habeas Corpus, Mandamus etc. (Unit IX) | 5 Writs Indian Constitution |
| 10 | Constitution & Sustainable Development (Unit X) | Constitution & Environment India |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Balanced Diet | Balanced Diet Lecture |
| 2 | Caloric Values of Carbs, Proteins, Fats | Caloric Values in Nutrition |
| 3 | Daily Caloric Requirements | Daily Caloric Needs |
| 4 | RDA - Recommended Dietary Allowance | RDA Nutrition Lecture |
| 5 | BMR - Basal Metabolic Rate | BMR Explained Simply |
| 6 | Thermic Effect / SDA of Food | Thermic Effect of Food SDA |
| 7 | Carbohydrates & Dietary Fibers | Carbohydrates & Fiber Nutrition |
| 8 | Proteins - Biological Value & Mutual Supplementation | Protein Biological Value Lecture |
| 9 | Fats - Essential Fatty Acids | Essential Fatty Acids Omega 3 & 6 |
| 10 | Malnutrition | Malnutrition Types & Effects |
| 11 | Classification of Nutrients | Macro vs Micronutrients |
| 12 | Planning Diets & Renal Diet | Renal Diet Planning |
| # | Topic | YouTube Link |
|---|---|---|
| 1 | Indications of Dialysis (AEIOU) | Indications for Dialysis - AEIOU |
| 2 | Types of Dialysis | Types of Dialysis - HD, PD, CRRT |
| 3 | Principles of Dialysis | Dialysis Principles - Diffusion, Ultrafiltration, Osmosis |
| 4 | Haemodialysis Apparatus - Dialyser & Membrane Types | HD Dialyser & Membrane Types |
| 5 | Types of Vascular Access | Vascular Access for Dialysis - AVF, AVG, CVC |
| 6 | Introduction to Haemodialysis Machine | Haemodialysis Machine Circuit Explained |
| 7 | Priming of Dialysis Apparatus | Priming HD Circuit |
| 8 | Dialyser Reuse | Dialyser Reuse & Reprocessing |
| 9 | Common Complications of Haemodialysis | HD Complications - Hypotension, Cramps, Air Embolism |
| 10 | Monitoring of Patients During Dialysis | Patient Monitoring During Dialysis |
| Channel | Best For | Link |
|---|---|---|
| Khan Academy Medicine | Kidney anatomy, physiology, GFR | Visit Channel |
| Dr. Najeeb Lectures | In-depth physiology, pathology, microbiology | Visit Channel |
| Armando Hasudungan | Pathology diagrams (glomerular diseases, coagulation) | Visit Channel |
| Osmosis | Renal diseases, pharmacology, visual summaries | Visit Channel |
| Speed Pharmacology | All drug classes, clean animations | Visit Channel |
| Dirty Medicine | Quick high-yield reviews for exams | Visit Channel |
| USMLE Step 1 Ninja | Pathology, microbiology rapid review | Visit Channel |
| Unacademy / PW (India) | Indian exam-focused lectures | Visit Channel |
Pro tip: All the search links above (youtube.com/results?...) open a pre-filtered YouTube search for that exact topic - scroll through and pick the video with the most views and best ratings. For core topics like Pharmacology and Pathology, Osmosis and Dr. Najeeb are the best choices. For Dialysis-specific topics, search YouTube for "BSc RDT" or "Renal Dialysis Technology" for India-specific exam content.