Poliklinik Udinus

PROJECT OVERVIEW & OPERATIONAL CONTEXT
Poliklinik Udinus is a dedicated campus clinical management and outpatient appointment system engineered to eliminate manual paper-based logs, appointment bottlenecks, and prescription calculation discrepancies across the healthcare facilities of Universitas Dian Nuswantoro. Built with native PHP 8.2 and MySQL via the mysqli extension, the platform enforces strict role-based access control across patients, practicing physicians, and hospital administrators. The presentation layer utilizes modular PHP templating paired with Bootstrap 5.3.3 and asynchronous JavaScript (Fetch API/AJAX), enabling seamless client interactions without full page reloads during polyclinic schedule lookups. Core architectural flows automate the patient journey—from standardized Medical Record Number (No. RM) formatting (YYYYMM-XXX) and collision-free physician shift scheduling to per-shift queue allocation. Attending doctors record clinical diagnoses and prescribe multiple medications via multi-select dialogs, where an automated billing engine computes itemized consultation invoices in real time, delivering a unified, reliable healthcare workflow.
PROBLEM STATEMENT & SYSTEM CONSTRAINTS
Preventing schedule collisions across multiple physicians within the same polyclinic department required robust overlap validation algorithms to catch boundary intersections. Additionally, simultaneous outpatient registrations risked queue number collisions and duplicate patient records. In the clinical examination flow, dynamically binding multiple prescribed pharmaceutical items to patient consultations while recalculating cumulative medical fees demanded atomic relational mutations across registration, examination, prescription, and inventory tables without database lock contention.
- Eliminate paper-based outpatient registration and consultation logs across six specialized campus polyclinic departments.
- Provide sub-10ms dynamic doctor schedule resolution using lightweight asynchronous AJAX endpoints without page reloads.
- Prevent schedule collisions across doctors in the same polyclinic via automated time boundary overlap detection algorithms.
- Automate patient Medical Record Number (No. RM) generation in standardized YYYYMM-XXX format with duplicate NIK validation.
- Enforce strict per-shift queue sequencing (no_antrian) ensuring fair, chronological outpatient consultation handling.
- Streamline clinical examinations with multi-drug prescription multi-select interfaces and automated consultation billing calculation.
- Deliver dedicated, role-segregated telemetry dashboards for hospital administrators, practicing physicians, and outpatients.
Automated Medical Record Number Generator
Algorithms generate standardized healthcare identifier tokens in YYYYMM-XXX format based on current registration year, month, and sequential counter.
Dynamic AJAX Schedule Resolution
Asynchronous background endpoint dynamically retrieves verified active doctor practice timetables upon department selection without triggering page reloads.
Shift Collision Prevention Engine
Time boundary validation algorithm detects overlapping hours across physicians within the same clinic unit, preventing duplicate room scheduling.
Per-Shift Queue Sequencing
Automated queuing system tracks patient registrations for active doctor shifts and issues incremented queue numbers for orderly triage.
Clinical Examination & Multi-Prescription
Physician examination console allowing comprehensive diagnosis recording and simultaneous multi-medication selection via checkbox arrays.
Automated Medical Billing Engine
Real-time fee calculator combining fixed consultation base costs (IDR 150,000) with dynamic drug pricing for itemized invoices.
Patient Consultation History & Invoice Modal
Medical record modal displaying comprehensive consultation history, diagnoses, aggregated prescription badges, and itemized billing statements.
Multi-Role Healthcare Telemetry Dashboard
Dedicated operational consoles providing workload KPIs, service completion gauges, patient distribution charts, and master data CRUD.
Modular Native PHP 8.2 MVC pattern + MySQL relational database with foreign key constraints + Dynamic AJAX schedule resolution micro-endpoint + Multi-role session authorization layer + Automated clinical billing and queue algorithm
Patient Authentication & Identity Verification
Patient registers with NIK validation and automated No. RM generation, or authenticates via secure session-based credentials.
Polyclinic Selection & AJAX Schedule Query
Selecting a medical department dispatches an asynchronous POST request to getJadwal.php, querying active physician timetables.
Outpatient Registration & Queue Ticket Allocation
Form submission verifies active shift capacity and executes atomic insertion to daftar_poli with incremented sequential queue number.
Doctor Triage & Clinical Examination Input
Physician accesses pending queue list from doctor dashboard and inputs clinical diagnosis notes into examination interface.
Multi-Medication Selection & Relational Mapping
Doctor selects prescribed pharmaceuticals from inventory dialog, initiating relational mapping in detail_periksa junctions.
Consultation Billing Aggregation & Status Finalization
System calculates total fee (base fee IDR 150,000 + drug prices), updates periksa record, and marks queue status as completed.
SYSTEM EVALUATION & EMPIRICAL VALIDATION
VERIFIED_TELEMETRYDuring comprehensive local benchmarking and clinical workflow simulation, Poliklinik Udinus sustained reliable sub-50ms page load times across all administrative, physician, and outpatient modules under local Apache and PHP 8.2 execution. The asynchronous schedule resolution endpoint (getJadwal.php) resolved active doctor practice timetables with median query latencies under 8ms, completely eliminating full-page refreshes during outpatient booking. The shift collision prevention algorithm reliably intercepted overlapping time boundaries across concurrent physician entries with 100% accuracy, while the queue sequencing engine maintained sequential integrity without counter skips or duplicate allocation. Database read and write operations executing against the relational MySQL schema—including complex multi-table joins across registration, examination, medication, and doctor entities—achieved p99 execution latencies under 20ms with zero record locking contention, validating a stable, responsive clinical management platform.
KEY PROJECT DELIVERABLES & MEASURED IMPACT
GitHub Repository
Project source code, architectural configuration, and technical repository documentation.
Technical Documentation & Spec
Primary architectural specification: PRO-21 // WEB-07 (PHP 8.2, MySQL 8.0, MySQLi, Bootstrap 5.3.3).
Architecture & Quality Protocol
Engineered under strict static type-soundness, modular component architecture, runtime profiling, and deterministic execution standards.
Diabetes Classification Using KNN with Data Normalization
Supervised medical machine learning benchmark evaluating distance metric sensitivity in K-Nearest Neighbors for diabetes diagnosis across 768 patient records, leveraging Random Forest feature selection and comparative normalization to achieve 81.17% accuracy and statistically significant AUC gains.
Prajagamer - Internship Registration
Full-stack public sector internship admissions and candidate management platform built with React 18, Vite, Express 5, and Prisma SQLite, featuring dual-portal RBAC, multipart document verification, candidate status triaging, real-time telemetry, and client-side SheetJS Excel reporting.