A comprehensive healthcare management solution designed for healthcare providers to efficiently track clients, health programs, and program enrollments with secure API access.
The Health Information System (HIS) is designed to help healthcare providers streamline their operational workflows with a focus on client and program management. The system enables healthcare professionals to:
- Register and manage client information securely
- Create and manage health program initiatives (TB, Malaria, HIV, etc.)
- Enroll clients in multiple health programs
- Track client progress and participation across programs
- Access client information through a secure RESTful API
Built with security and usability in mind, the system features an intuitive interface and robust security controls to protect sensitive health information.
- Comprehensive Client Profiles: Store detailed client information including demographics and contact details
- Advanced Search Functionality: Find clients quickly using various search parameters
- Client History Tracking: View complete client program participation history
- Easy Updates: Maintain accurate client information with simple edit capabilities
- Flexible Program Creation: Define custom health programs with detailed descriptions
- Enrollment Dashboard: View program statistics and enrolled client details
- Cross-Program Analytics: Track client participation across multiple programs
- Streamlined Enrollment: Simple workflow to add clients to health programs
- Status Tracking: Monitor client progress with customizable status options (Active, Completed, Withdrawn)
- Enrollment Notes: Add contextual documentation to enrollment records
- Role-Based Access Control: Administrator controls for user management
- Secure Authentication: Password protection with bcrypt hashing and session security
- User Profiles: Individual accounts for healthcare staff
- Secure API Access: Token-based authentication for external system integration
- Comprehensive Endpoints: Access client and program data programmatically
- Complete Documentation: Detailed API usage guidelines
- Encrypted Data Storage: Protection for sensitive information
- Access Controls: Restricted permissions based on user roles
- Audit Trails: Tracking of system activities
- Session Protection: Guards against session hijacking
- Backend: PHP 7.4+
- Database: MySQL 5.7+
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 5
- Security: bcrypt password hashing, prepared statements, CSRF protection
- API: RESTful architecture with JSON responses
- Data Visualization: Chart.js
- UI Components: Font Awesome icons
- Web server (Apache 2.4+ or Nginx)
- PHP 7.4 or higher
- MySQL 5.7 or higher
- PHP Extensions:
- mysqli
- json
- session
- hash
- PDO
- 1GB RAM (minimum)
- 5GB disk space
- Modern CPU with at least 2 cores
- Modern web browser (Chrome, Firefox, Safari, Edge)
- JavaScript enabled
- Cookies enabled
- Web server (Apache/Nginx)
- PHP 7.4 or higher
- MySQL 5.7 or higher
- Composer (optional, for future dependencies)
-
Clone the repository:
git clone https://github.com/dlangkip/health-information-system.git
-
Set up the web server:
Configure your web server to point to the project directory. For Apache, ensure that mod_rewrite is enabled.
Example Apache Virtual Host configuration:
<VirtualHost *:80> ServerName his.example.com DocumentRoot /path/to/health-information-system <Directory /path/to/health-information-system> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/his-error.log CustomLog ${APACHE_LOG_DIR}/his-access.log combined </VirtualHost>
-
Import the database schema:
mysql -u username -p database_name < db_setup.sql -
Configure database connection:
Create a
.envfile in theconfigdirectory with the following contents:DB_HOST=localhost DB_USERNAME=your_username DB_PASSWORD=your_password DB_DATABASE=health_info_system -
Configure application settings:
Open
config/config.phpand update theBASE_URLconstant:define('BASE_URL', 'http://your-domain.com');
-
Set appropriate file permissions:
chmod 755 -R /path/to/health_information_system chmod 777 -R /path/to/health_information_system/logs
-
Access the application:
Navigate to your configured domain in a web browser:
http://your-domain.com
- Username:
admin - Password:
admin123
Important: Change these credentials immediately after installation for security reasons.
The system implements several security measures:
- Data Protection: All passwords are hashed using bcrypt
- SQL Injection Prevention: Prepared statements for all database queries
- XSS Protection: Output escaping for user-generated content
- CSRF Protection: Form tokens for sensitive operations
- Session Security: HTTP-only cookies and session timeout
All API requests require authentication using a bearer token:
Authorization: Bearer YOUR_API_TOKEN
To obtain an API token, navigate to API Settings in the application.
1. Get a list of all clients
GET /api/clients
GET /api/clients?limit=50&offset=0
2. Get a specific client by ID
GET /api/clients?id=123
3. Get a specific client by client ID string
GET /api/clients?client_id=CL-202304-0001
4. Search for clients
GET /api/clients?search=search_term
1. Get a list of all programs
GET /api/programs
2. Get a specific program
GET /api/programs?id=123
When extending or modifying the system:
- Follow PSR-12 coding style for PHP
- Use prepared statements for all database queries
- Implement proper error handling
- Document your code changes
- Test thoroughly before deployment
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or contributions, please contact:
- Email: support@benfex.net
- GitHub Issues: Create an issue in the project repository