SynthLab
SynthLab – Integrated Virtual Diagnostics Module
SynthLab – Integrated Virtual Diagnostics Module
1. Executive Summary
SynthLab is a web-based, interactive clinical simulation platform designed to bridge the gap between theoretical microbiology/immunology and practical laboratory diagnostics. Built using the Svelte framework, it provides a realistic, risk-free environment where students assume the role of a clinical scientist. They must analyze patient case histories, select appropriate diagnostic machinery, and interpret visual data (graphs, electrophoresis gels, and colorimetric plates) to render a diagnosis.
2. Module Overview
The system unifies three distinct diagnostic engines into a single interface, allowing for “Unrestricted Workflow” (users can run any test on any patient, forcing critical decision-making).
- Read the Case Objective below to identify the required test type.
- Switch to the correct Machine Tab (Spec, PCR, or ELISA).
- Select the specific Test Agent (Antibiotic/Primer/Antigen) and click START RUN.
- Interpret the visual data (Growth/Bands/Color) to make your diagnosis.
Diabetic Foot Ulcer
Patient: 55M, Chronic ulcer. | History: Foul odor, green exudate.
A. The Spectrophotometer (Phenotypic Engine)
- Function: Simulates bacterial growth kinetics over 24 hours in the presence of antibiotics.
- Visual Output: Dynamic Optical Density (OD) growth curves with neon checkpoints (6h, 12h, 24h).
- Learning Goal: Differentiating between Antibiotic Susceptibility (flat line/low OD) and Resistance (sigmoid growth curve/high OD).
- Key Concept: Phenotypic expression of resistance mechanisms (e.g., Efflux pumps, Porin loss).
B. Auto-PCR (Genotypic Engine)
- Function: Simulates Polymerase Chain Reaction and Gel Electrophoresis.
- Visual Output: An animated 100V electrophoresis run showing a DNA ladder, a moving dye front, and specific gene bands migrating based on molecular weight (bp).
- Learning Goal: Identifying pathogens based on genetic markers (e.g., mecA for MRSA, vanA for VRE) rather than growth.
- Key Concept: Molecular diagnostics and gene-specific identification.
C. ELISA Plate (Serologic Engine)
- Function: Simulates Enzyme-Linked Immunosorbent Assay (Indirect/Sandwich).
- Visual Output: A 96-well plate visualization where wells transition from clear to yellow (TMB substrate reaction) based on antibody/antigen titer. Includes Positive and Negative controls.
- Learning Goal: Interpreting serological data by comparing patient Optical Density (OD) against control cutoffs.
- Key Concept: Antibody detection (Lyme, HIV) and Antigen detection (HBsAg).
3. Pedagogical Use & Learning Objectives
This module is designed for Active Learning in medical, nursing, and laboratory science curricula.
Critical Thinking & Decision Making
Unlike linear tutorials, SynthLab uses an Open-World approach:
- Problem: A patient presents with a foot ulcer (Case #1).
- Choice: The student must decide: Do I grow the bacteria (Spec)? Do I check for DNA (PCR)? Or do I check for antibodies (ELISA)?
- Consequence: If a student runs a PCR test on a sample meant for growth culture, they see a “No Amplification” result (noise). This teaches them why a test is inappropriate, rather than just disabling the button.
Interpreting Noisy Data
Real lab data is rarely perfect. The module introduces:
- Noise Bands: PCR gels always show “Primer Dimers” (fuzzy bands at the bottom) even in negative results.
- OD Variance: ELISA wells show slight opacity variations, requiring students to look at the numbers, not just the color.
Assessment Integration
The module is self-assessing. After running a test, the student must commit to a diagnosis (e.g., “Reactive” vs. “Non-Reactive”). Immediate feedback provides:
- Validation: Correct/Incorrect.
- Explanation: Why the result occurred (e.g., “High OD indicates seroconversion”).
- Deep Dive: The specific biological mechanism (e.g., “mecA encodes PBP2a”).
4. Technical Architecture
- Frontend: Svelte (Reactive JavaScript framework) for high-performance DOM updates.
- Styling: Tailwind CSS for responsive, modern UI design.
- State Management: Currently uses component-level state. Data flows from a central cases array and drug/primer/antigen databases.
- Animation: Uses JavaScript setInterval loops for frame-by-frame rendering of graphs and gel migration, ensuring smooth visual feedback without heavy external libraries.
5. Future Improvements & Robustness Roadmap
To evolve SynthLab from a prototype to a fully robust courseware platform, the following improvements are recommended:
A. Technical Refactoring (Priority: High)
- Component Decomposition: Currently, the logic resides in a single large file. Breaking this into CaseManager.svelte, SpecEngine.svelte, PCREngine.svelte, and ElisaEngine.svelte will make maintenance easier and prevent state conflicts.
- State Stores: Moving user progress to Svelte Stores (Global State) will prevent data loss if the user navigates away from the component.
B. Enhanced Realism (Priority: Medium)
- Cost & Time Metrics: Add a “Virtual Budget” and “Turnaround Time.” Ordering a PCR is fast but expensive; growing a culture is cheap but slow. Students must balance clinical urgency with cost.
- Western Blot Confirmation: For positive ELISA tests (like Lyme or HIV), a secondary confirmation step (Western Blot) could be added to simulate the Two-Tier Testing algorithm.
- Pipetting Interaction: For ELISA, allow students to drag-and-drop the pipette to add samples, creating a higher sense of immersion.
C. Scalability & Analytics (Priority: Medium)
- Case Builder JSON: Externalize the case data into a JSON file. This would allow non-coders (professors) to write new cases, drugs, and outcomes without touching the Svelte code.
- LMS Integration: Add SCORM or xAPI support to report student scores directly to Canvas, Blackboard, or Moodle.
D. Accessibility (Priority: High)
- ARIA Labels: Ensure screen readers can announce the results of the graph/gel (e.g., “Graph rising, Optical density 1.2”).
- Colorblind Mode: Ensure the Red/Green/Yellow indicators have high-contrast alternatives or pattern overlays.