Secure web portal for hospital staff to register, search, and manage unidentified patients using hybrid AI matching.
Repository · Report Bug · Research Paper
IAPEX (Hybrid AI for Missing Patient Identification) is a validated system that helps healthcare institutions identify and manage unidentified or missing patients through a fusion of facial recognition and textual analysis.
This repository contains the Institutional Web Portal — a secure Angular application for medical staff to:
- Register unidentified patients with morphological traits and photographs
- Manage patient records, institutions, and memberships
- Search and view potential matches with similarity scores
- Process contact requests from families
- Send institutional notifications
- Upload and manage media files
| Component | Repository | Stack |
|---|---|---|
| Web Portal (this) | iapex-org/web-app | Angular 19, Bootstrap, TypeScript |
| Mobile App | iapex-org/mobile-app | React 18, Ionic 8, Capacitor |
| Core API | iapex-org/core-api | Spring Boot 3, PostgreSQL, MongoDB |
- Patient Management — Register, update, and search unidentified patients
- Institution Management — Manage healthcare institution profiles
- Hybrid Search — Facial recognition + textual description matching
- RBAC Security — Role-Based Access Control with JWT authentication
- Notifications — Institutional email notifications
- Media Upload — Image and file management with FilePond
- QR Codes — Patient QR generation for quick referencing
- Interactive Dashboard — Charts and statistics with amCharts
- Node.js 18+
- npm or yarn
git clone https://github.com/iapex-org/web-app.git
cd web-app
npm installCreate a .env file from the example:
cp .env.example .envConfigure your environment variables:
API_URL_USERS_WEB=http://localhost:8080/api/v1/users/web
API_URL_PATIENTS=http://localhost:8080/api/v1/patients
API_URL_INSTITUTIONS=http://localhost:8080/api/v1/institutions
API_URL_CONTACT_REQUESTS=http://localhost:8080/api/v1/contact-requests
API_URL_MEMBERSHIPS=http://localhost:8080/api/v1/memberships
API_URL_NOTIFICATIONS=http://localhost:8080/api/v1/notifications
TOKEN_DURATION=600000
AUTH_KEY=auth_userRun the development server:
npm startThe app will be available at http://localhost:4200
┌─────────────────────────────────────────────┐
│ Web Portal (Angular) │
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Auth │ │ Patients │ │ Institutions │ │
│ │ Module │ │ Module │ │ Module │ │
│ └────┬────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │
│ ┌────▼───────────▼──────────────▼───────┐ │
│ │ HTTP Services (Axios) │ │
│ └────────────────┬──────────────────────┘ │
└───────────────────┼────────────────────────┘
│ JWT Auth
┌───────────────────┼────────────────────────┐
│ Core API (Spring Boot) │
│ /api/v1/users, /api/v1/patients, ... │
└────────────────────────────────────────────┘
Please read CONTRIBUTING.md for our branch naming, commit conventions, and PR workflow.
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
Authors:
- Serrano Puertos Jorge Christian — christian.serrano.puertos@gmail.com
- Florentino Altamirano Misrael — misraelaltamirano@gmail.com
- Ortiz Pérez Alejandro — alex03ortizperez@gmail.com
Collaborators:
- Chávez Moreno Jose Eduardo
- Fernández López Kevin Noé
Advisor:
- Escobar García Arturo
Stakeholders:
- Guarneros Nolasco Luis Rolando
- Cruz Ramos Nancy Aracely
Academic Support:
- Universidad Tecnológica del Centro de Veracruz