321 lines
8.5 KiB
Markdown
321 lines
8.5 KiB
Markdown
# Complaint Category and Subcategory Structure Examination
|
|
|
|
## Overview
|
|
|
|
This document provides a detailed examination of the 4-level SHCT (Saudi Health Council for Treatment) taxonomy implemented for the complaint system. The taxonomy is organized hierarchically with 4 levels: Domain, Category, Subcategory, and Classification.
|
|
|
|
## Summary Statistics
|
|
|
|
- **Total Categories**: 106
|
|
- **Level 1 (Domains)**: 3
|
|
- **Level 2 (Categories)**: 9
|
|
- **Level 3 (Subcategories)**: 42
|
|
- **Level 4 (Classifications)**: 52
|
|
|
|
## Taxonomy Structure
|
|
|
|
### LEVEL 1 - DOMAINS (3)
|
|
|
|
#### 1. CLINICAL
|
|
**Parent Domain**: Clinical domain covers all clinical-related complaints
|
|
|
|
**Level 2 Categories**:
|
|
- Quality
|
|
- Safety
|
|
|
|
---
|
|
|
|
#### 2. MANAGEMENT
|
|
**Parent Domain**: Management domain covers administrative, operational, and institutional issues
|
|
|
|
**Level 2 Categories**:
|
|
- Accessibility
|
|
- Institutional Issues
|
|
|
|
---
|
|
|
|
#### 3. RELATIONSHIPS
|
|
**Parent Domain**: Relationships domain covers communication, privacy, consent, and behavioral issues
|
|
|
|
**Level 2 Categories**:
|
|
- Communication
|
|
- Confidentiality
|
|
- Consent
|
|
- Humanness / Caring
|
|
|
|
---
|
|
|
|
## Detailed Breakdown
|
|
|
|
### 1. CLINICAL DOMAIN
|
|
|
|
#### 1.1 QUALITY CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Diagnosis**
|
|
- Errors in Pre-marriage lab test
|
|
- Errors in diagnosis
|
|
- Errors in diagnostic imaging
|
|
- Errors in lab results
|
|
|
|
- **Examination**
|
|
- Diagnostic Imaging not performed
|
|
- Examination not performed
|
|
- Inadequate/incomplete assessment
|
|
- Lab tests not performed
|
|
- Loss of a patient sample
|
|
- Not having enough knowledge regarding patient condition
|
|
|
|
- **Patient Journey**
|
|
- Lack of follow up
|
|
- Miscoordination
|
|
- Patient flow issues
|
|
|
|
- **Quality of Care**
|
|
- Insensitive to patient needs
|
|
- No Frequent rounding on patient
|
|
- No assistance from staff in feeding a patient
|
|
- Rough treatment
|
|
- Rushed, not time to see patients
|
|
- Substandard clinical/nursing care
|
|
|
|
- **Treatment**
|
|
- Inadequate pain management
|
|
- Ineffective treatment
|
|
- Patient Discharged before completing treatment
|
|
- Treatment plan issues
|
|
- Treatment plan not followed
|
|
|
|
#### 1.2 SAFETY CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Medication & Vaccination**
|
|
- Dispensing errors
|
|
- Dispensing medication without prescription
|
|
- Insufficient medication prescribed
|
|
- Medication shortages
|
|
- No medication prescribed
|
|
- Prescribing errors
|
|
- Prescription of expired medication
|
|
- Refusal to vaccinate
|
|
- Vaccination timing errors
|
|
|
|
- **Safety Incidents**
|
|
- Equipment failure/malfunction
|
|
- Hospital acquired infection
|
|
- No patient ID band
|
|
- Patient Fall
|
|
- Patient death
|
|
- Wrong surgery / Wrong site surgery
|
|
- Wrong treatment
|
|
|
|
- **Skills and Conduct**
|
|
- Improper practice of infection control
|
|
- Poor hand-hygiene
|
|
- Practice without a clinical license
|
|
|
|
---
|
|
|
|
### 2. MANAGEMENT DOMAIN
|
|
|
|
#### 2.1 ACCESSIBILITY CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Access**
|
|
- Appointment cancellation
|
|
- Appointment scheduling refusal
|
|
- Scheduling far appointment
|
|
|
|
- **Delays**
|
|
- Delayed test result
|
|
- Examination delay in emergency
|
|
- Treatment delay
|
|
|
|
#### 2.2 INSTITUTIONAL ISSUES CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Administrative Policies**
|
|
- Inadequate reception service
|
|
- Non-compliance with visiting hours
|
|
- Paperwork delays
|
|
|
|
- **Environment**
|
|
- Building not accessible for special needs
|
|
- Elevators not available/Failure
|
|
- Heating, Ventilation, Air condition (HVAC) Failure
|
|
- Poor cleanliness/sanitizing
|
|
|
|
- **Finance and Billing**
|
|
- Miscalculation
|
|
- Pricing variations
|
|
- Unnecessary health services
|
|
|
|
- **Resources**
|
|
- Medical supply shortage
|
|
- Unavailable Beds
|
|
- Unavailable ambulance
|
|
|
|
- **Safety & Security**
|
|
- Fire and safety hazards
|
|
- Lack of parking slots
|
|
- Theft and lost
|
|
|
|
---
|
|
|
|
### 3. RELATIONSHIPS DOMAIN
|
|
|
|
#### 3.1 COMMUNICATION CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Patient-staff communication**
|
|
- Communication of wrong information
|
|
- Failure to clarify patient case to family
|
|
- Miscommunication with Patient
|
|
|
|
#### 3.2 CONFIDENTIALITY CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Privacy**
|
|
- Breach of confidentiality
|
|
- Breach of patient privacy
|
|
|
|
#### 3.3 CONSENT CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Consent Process**
|
|
- Consent not explained
|
|
- No/Invalid consent obtained
|
|
|
|
#### 3.4 HUMANNESS / CARING CATEGORY
|
|
|
|
**Subcategories** (Level 3):
|
|
- **Assault and Harassment**
|
|
- Discrimination
|
|
- Inappropriate/aggressive behavior
|
|
|
|
- **Emotional Support**
|
|
- Inadequate emotional support
|
|
|
|
---
|
|
|
|
## Implementation Details
|
|
|
|
### Database Schema
|
|
|
|
The taxonomy is implemented in the `ComplaintCategory` model with the following key fields:
|
|
|
|
- `id`: UUID primary key
|
|
- `level`: Integer (1-4) indicating hierarchy level
|
|
- `parent_id`: UUID foreign key to parent category
|
|
- `name_en`: English name
|
|
- `name_ar`: Arabic name
|
|
- `code`: Alphanumeric code (for levels 3 and 4)
|
|
- `domain_type`: Type of domain (CLINICAL, MANAGEMENT, RELATIONSHIPS)
|
|
- `description_en`: English description
|
|
- `description_ar`: Arabic description
|
|
- `is_active`: Boolean flag
|
|
- `hospitals`: Many-to-many relationship with hospitals
|
|
|
|
### Data Loading
|
|
|
|
The taxonomy data is loaded using the management command:
|
|
```bash
|
|
python manage.py load_shct_taxonomy
|
|
```
|
|
|
|
This loads the standardized SHCT taxonomy from a data file into the database.
|
|
|
|
### API Endpoint
|
|
|
|
Categories are loaded via the `api_load_categories` endpoint which returns:
|
|
- All 4 levels of the hierarchy
|
|
- Parent-child relationships via `parent_id`
|
|
- Level information for proper categorization
|
|
- Bilingual names (English/Arabic)
|
|
- Descriptions for user guidance
|
|
|
|
### Frontend Implementation
|
|
|
|
The public complaint form uses cascading dropdowns:
|
|
1. **Hospital** selection triggers category loading
|
|
2. **Domain** (Level 1) - 3 options
|
|
3. **Category** (Level 2) - filtered by selected domain
|
|
4. **Subcategory** (Level 3) - filtered by selected category (required)
|
|
5. **Classification** (Level 4) - filtered by selected subcategory (optional)
|
|
|
|
Each level displays descriptions to help users understand the context and make informed selections.
|
|
|
|
---
|
|
|
|
## Key Observations
|
|
|
|
### 1. Domain Balance
|
|
- **CLINICAL**: 5 subcategories (Quality, Safety)
|
|
- **MANAGEMENT**: 2 subcategories (Accessibility, Institutional Issues)
|
|
- **RELATIONSHIPS**: 4 subcategories (Communication, Confidentiality, Consent, Humanness/Caring)
|
|
|
|
### 2. Code Distribution
|
|
- **Level 3 (Subcategories)**: Most have codes for identification
|
|
- **Level 4 (Classifications)**: All have codes for granular classification
|
|
- Codes follow snake_case naming convention (e.g., `errors_in_diagnosis`)
|
|
|
|
### 3. Hierarchical Depth
|
|
- Not all branches go to Level 4
|
|
- Some categories stop at Level 3 (e.g., most subcategories are leaf nodes)
|
|
- Level 4 classifications provide the most granular categorization
|
|
|
|
### 4. Coverage Areas
|
|
The taxonomy comprehensively covers:
|
|
- Clinical quality and safety
|
|
- Medication and treatment errors
|
|
- Administrative and operational issues
|
|
- Physical environment and resources
|
|
- Communication and interpersonal relationships
|
|
- Privacy and consent procedures
|
|
- Staff behavior and conduct
|
|
|
|
---
|
|
|
|
## Usage in Complaint System
|
|
|
|
When a complaint is submitted via the public form:
|
|
|
|
1. User selects **Hospital**
|
|
2. System loads applicable categories
|
|
3. User selects **Domain** (required)
|
|
4. User selects **Category** (required)
|
|
5. User selects **Subcategory** (required)
|
|
6. User may select **Classification** (optional)
|
|
|
|
The selected taxonomy levels are stored in the Complaint model:
|
|
- `domain`: ForeignKey to Level 1 category
|
|
- `category`: ForeignKey to Level 2 category
|
|
- `subcategory`: CharField storing the code of Level 3 category
|
|
- `classification`: CharField storing the code of Level 4 category
|
|
|
|
This structure allows for:
|
|
- **AI-powered classification**: The AI can analyze descriptions and suggest appropriate taxonomy levels
|
|
- **Trend analysis**: Aggregate complaints by domain, category, or subcategory
|
|
- **Reporting**: Generate reports at any level of granularity
|
|
- **Benchmarking**: Compare performance against SHCT standards
|
|
|
|
---
|
|
|
|
## Maintenance
|
|
|
|
The taxonomy should be updated when:
|
|
- SHCT releases new categories or codes
|
|
- Hospital-specific categories need to be added
|
|
- Existing categories are deprecated or modified
|
|
- Descriptions need improvement for user clarity
|
|
|
|
To reload the taxonomy:
|
|
```bash
|
|
python manage.py load_shct_taxonomy
|
|
```
|
|
|
|
---
|
|
|
|
## Conclusion
|
|
|
|
The implemented 4-level SHCT taxonomy provides a comprehensive, standardized framework for categorizing patient complaints across clinical, management, and relationship domains. The hierarchical structure enables both high-level trend analysis and granular classification for detailed investigation and process improvement. |