Instruction file imported from AndriiKulakovskyi/efondamental (
.cursor/rules/bipolar-visit-questionnaire-mapping.mdc). Copyright stays with the author.
Bipolar Vertical: Visit Type Questionnaire Mappings
This rule defines the explicit mapping between questionnaires and Supabase tables for each bipolar visit type. When a questionnaire is reused across visits, responses are persisted in a single shared table to ensure data consistency and longitudinal integrity.
CRITICAL: All table names use the bipolar_ pathology prefix (NOT the deprecated responses_ prefix). The authoritative source of truth for table names is:
BIPOLAR_INITIAL_TABLESinlib/services/bipolar-initial.service.ts- Service
.from()calls in the relevant service files - The
get_visit_detail_dataRPC function insupabase/schema.sql
Visit Types Overview
| Visit Type | Code | Frequency | Total Questionnaires |
|---|---|---|---|
| Screening | screening |
Once | 5 |
| Initial Evaluation | initial_evaluation |
Once | 57 |
| Biannual Follow-up | biannual_followup |
Every 6 months | 25 |
| Annual Evaluation | annual_evaluation |
Every 12 months | 70 |
Screening Visit (5 questionnaires)
Auto Module (Patient Self-Report)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| ASRM | ASRM |
bipolar_asrm |
Yes |
| MDQ | MDQ |
bipolar_mdq |
Yes |
| QIDS-SR16 | QIDS_SR16 |
bipolar_qids_sr16 |
Yes |
Medical Module (Professional)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| Diagnostic | BIPOLAR_DIAGNOSTIC |
bipolar_diagnostic |
No |
| Orientation | BIPOLAR_ORIENTATION |
bipolar_orientation |
No |
Initial Evaluation Visit (57 questionnaires)
Nurse Module (7 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| Tobacco | TOBACCO |
bipolar_nurse_tobacco |
Yes |
| Fagerstrom | FAGERSTROM |
bipolar_nurse_fagerstrom |
Yes |
| Physical Parameters | PHYSICAL_PARAMS |
bipolar_nurse_physical_params |
Yes |
| Blood Pressure | BLOOD_PRESSURE |
bipolar_nurse_blood_pressure |
Yes |
| ECG | ECG |
bipolar_nurse_ecg |
Yes |
| Sleep Apnea (STOP-Bang) | SLEEP_APNEA |
bipolar_nurse_sleep_apnea |
Yes |
| Biological Assessment | BIOLOGICAL_ASSESSMENT |
bipolar_nurse_biological_assessment |
Yes |
Thymic Module (7 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| MADRS | MADRS |
bipolar_madrs |
Yes |
| YMRS | YMRS |
bipolar_ymrs |
Yes |
| CGI | CGI |
bipolar_cgi |
Yes |
| EGF | EGF |
bipolar_egf |
Yes |
| ALDA | ALDA |
bipolar_alda |
Yes |
| Etat Patient | ETAT_PATIENT |
bipolar_etat_patient |
Yes |
| FAST | FAST |
bipolar_fast |
Yes |
Auto Module - ETAT Submodule (8 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| EQ-5D-5L | EQ5D5L |
bipolar_eq5d5l |
Yes |
| PRISE-M | PRISE_M |
bipolar_prise_m |
Yes |
| STAI-YA | STAI_YA |
bipolar_stai_ya |
Yes |
| MARS | MARS |
bipolar_mars |
Yes |
| MAThyS | MATHYS |
bipolar_mathys |
Yes |
| PSQI | PSQI |
bipolar_psqi |
Yes |
| Epworth | EPWORTH |
bipolar_epworth |
Yes |
| QIDS-SR16 | QIDS_SR16 |
bipolar_qids_sr16 |
Yes |
Auto Module - TRAITS Submodule (9 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| ASRS | ASRS |
bipolar_asrs |
No (Initial only) |
| CTQ | CTQ |
bipolar_ctq |
No (Initial only) |
| BIS-10 | BIS10 |
bipolar_bis10 |
No (Initial only) |
| ALS-18 | ALS18 |
bipolar_als18 |
No (Initial only) |
| AIM | AIM |
bipolar_aim |
No (Initial only) |
| WURS-25 | WURS25 |
bipolar_wurs25 |
No (Initial only) |
| AQ-12 | AQ12 |
bipolar_aq12 |
No (Initial only) |
| CSM | CSM |
bipolar_csm |
No (Initial only) |
| CTI | CTI |
bipolar_cti |
No (Initial only) |
Medical Module (19 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| DSM5 Mood Disorders | DSM5_HUMEUR |
bipolar_dsm5_humeur |
No (Initial only) |
| DSM5 Psychotic | DSM5_PSYCHOTIC |
bipolar_dsm5_psychotic |
No (Initial only) |
| DSM5 Comorbidities | DSM5_COMORBID |
bipolar_dsm5_comorbid |
No (Initial only) |
| DIVA | DIVA |
bipolar_diva |
No (Initial only) |
| Family History | FAMILY_HISTORY |
bipolar_family_history |
No (Initial only) |
| C-SSRS | CSSRS |
bipolar_cssrs |
Yes |
| ISA | ISA |
bipolar_isa |
No (Initial only) |
| SIS | SIS |
bipolar_sis |
Yes |
| Suicide History | SUICIDE_HISTORY |
bipolar_suicide_history |
No (Initial only) |
| Perinatal History | PERINATALITE |
bipolar_perinatalite |
No (Initial only) |
| Patho Neuro | PATHO_NEURO |
bipolar_patho_neuro |
No (Initial only) |
| Patho Cardio | PATHO_CARDIO |
bipolar_patho_cardio |
No (Initial only) |
| Patho Endoc | PATHO_ENDOC |
bipolar_patho_endoc |
No (Initial only) |
| Patho Dermato | PATHO_DERMATO |
bipolar_patho_dermato |
No (Initial only) |
| Patho Urinaire | PATHO_URINAIRE |
bipolar_patho_urinaire |
No (Initial only) |
| Antecedents Gyneco | ANTECEDENTS_GYNECO |
bipolar_antecedents_gyneco |
No (Initial only) |
| Patho Hepato-Gastro | PATHO_HEPATO_GASTRO |
bipolar_patho_hepato_gastro |
No (Initial only) |
| Patho Allergique | PATHO_ALLERGIQUE |
bipolar_patho_allergique |
No (Initial only) |
| Autres Pathologies | AUTRES_PATHO |
bipolar_autres_patho |
No (Initial only) |
Neuropsy Module (22 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| CVLT | CVLT |
bipolar_cvlt |
Yes |
| MEM3 Spatial | MEM3_SPATIAL |
bipolar_mem3_spatial |
Yes |
| TMT | TMT |
bipolar_tmt |
Yes |
| Stroop | STROOP |
bipolar_stroop |
Yes |
| Fluences Verbales | FLUENCES_VERBALES |
bipolar_fluences_verbales |
Yes |
| COBRA | COBRA |
bipolar_cobra |
Yes |
| CPT-3 | CPT3 |
bipolar_cpt3 |
Yes |
| SCIP | SCIP |
bipolar_scip |
Yes |
| Test Commissions | TEST_COMMISSIONS |
bipolar_test_commissions |
Yes |
| WAIS-IV Criteria | WAIS4_CRITERIA |
bipolar_wais4_criteria |
No |
| WAIS-IV Learning | WAIS4_LEARNING |
bipolar_wais4_learning |
No |
| WAIS-IV Similitudes | WAIS4_SIMILITUDES |
bipolar_wais4_similitudes |
No |
| WAIS-IV Matrices | WAIS4_MATRICES |
bipolar_wais4_matrices |
No |
| WAIS-IV Code | WAIS4_CODE |
bipolar_wais4_code |
No |
| WAIS-IV Digit Span | WAIS4_DIGIT_SPAN |
bipolar_wais4_digit_span |
No |
| WAIS-III Criteria | WAIS3_CRITERIA |
bipolar_wais3_criteria |
No |
| WAIS-III Learning | WAIS3_LEARNING |
bipolar_wais3_learning |
No |
| WAIS-III Vocabulaire | WAIS3_VOCABULAIRE |
bipolar_wais3_vocabulaire |
No |
| WAIS-III Matrices | WAIS3_MATRICES |
bipolar_wais3_matrices |
No |
| WAIS-III Code Symboles | WAIS3_CODE_SYMBOLES |
bipolar_wais3_code_symboles |
No |
| WAIS-III Digit Span | WAIS3_DIGIT_SPAN |
bipolar_wais3_digit_span |
No |
| WAIS-III CPT2 | WAIS3_CPT2 |
bipolar_wais3_cpt2 |
No |
Social Module (1 questionnaire)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| Social Evaluation | SOCIAL |
bipolar_social |
Yes |
Biannual Follow-up Visit (25 questionnaires)
Nurse Module (7 questionnaires) - SHARED TABLES
| Questionnaire | Code | Table |
|---|---|---|
| Tobacco | TOBACCO |
bipolar_nurse_tobacco |
| Fagerstrom | FAGERSTROM |
bipolar_nurse_fagerstrom |
| Physical Parameters | PHYSICAL_PARAMS |
bipolar_nurse_physical_params |
| Blood Pressure | BLOOD_PRESSURE |
bipolar_nurse_blood_pressure |
| Sleep Apnea | SLEEP_APNEA |
bipolar_nurse_sleep_apnea |
| Biological Assessment | BIOLOGICAL_ASSESSMENT |
bipolar_nurse_biological_assessment |
| ECG | ECG |
bipolar_nurse_ecg |
DSM5 Module (3 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| Humeur Actuels | DSM5_HUMEUR_ACTUELS |
bipolar_followup_humeur_actuels |
Yes |
| Humeur Depuis Visite | DSM5_HUMEUR_DEPUIS_VISITE |
bipolar_followup_humeur_depuis_visite |
Yes |
| Psychotiques | DSM5_PSYCHOTIQUES |
bipolar_followup_psychotiques |
Yes |
Suicide Module (2 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| ISA Suivi | ISA_SUIVI |
bipolar_followup_isa |
Yes |
| Suicide Behavior Followup | SUICIDE_BEHAVIOR_FOLLOWUP |
bipolar_followup_suicide_behavior |
Yes |
Soin Suivi Module (6 questionnaires)
| Questionnaire | Code | Table | Shared |
|---|---|---|---|
| Suivi Recommandations | SUIVI_RECOMMANDATIONS |
bipolar_followup_suivi_recommandations |
Yes |
| Recours aux Soins | RECOURS_AUX_SOINS |
bipolar_followup_recours_aux_soins |
Yes |
| Traitement Non Pharmacologique | TRAITEMENT_NON_PHARMACOLOGIQUE |
bipolar_followup_traitement_non_pharma |
Yes |
| Arrets de Travail | ARRETS_DE_TRAVAIL |
bipolar_followup_arrets_travail |
Yes |
| Somatique Contraceptif | SOMATIQUE_CONTRACEPTIF |
bipolar_followup_somatique_contraceptif |
Yes |
| Statut Professionnel | STATUT_PROFESSIONNEL |
bipolar_followup_statut_professionnel |
Yes |
Thymic Module (7 questionnaires) - SHARED TABLES
| Questionnaire | Code | Table |
|---|---|---|
| MADRS | MADRS |
bipolar_madrs |
| YMRS | YMRS |
bipolar_ymrs |
| CGI | CGI |
bipolar_cgi |
| EGF | EGF |
bipolar_egf |
| Etat Patient | ETAT_PATIENT |
bipolar_etat_patient |
| FAST | FAST |
bipolar_fast |
| ALDA | ALDA |
bipolar_alda |
Annual Evaluation Visit (70 questionnaires)
Annual visits include ALL questionnaires from Biannual (25) PLUS additional questionnaires from Initial evaluation modules.
Additional Auto Module - ETAT (7 questionnaires) - SHARED TABLES
| Questionnaire | Code | Table |
|---|---|---|
| EQ-5D-5L | EQ5D5L |
bipolar_eq5d5l |
| PRISE-M | PRISE_M |
bipolar_prise_m |
| STAI-YA | STAI_YA |
bipolar_stai_ya |
| MARS | MARS |
bipolar_mars |
| MAThyS | MATHYS |
bipolar_mathys |
| PSQI | PSQI |
bipolar_psqi |
| Epworth | EPWORTH |
bipolar_epworth |
Additional Neuropsy Module - SHARED TABLES
| Questionnaire | Code | Table |
|---|---|---|
| CVLT | CVLT |
bipolar_cvlt |
| MEM3 Spatial | MEM3_SPATIAL |
bipolar_mem3_spatial |
| TMT | TMT |
bipolar_tmt |
| Stroop | STROOP |
bipolar_stroop |
| Fluences Verbales | FLUENCES_VERBALES |
bipolar_fluences_verbales |
| COBRA | COBRA |
bipolar_cobra |
| CPT-3 | CPT3 |
bipolar_cpt3 |
| SCIP | SCIP |
bipolar_scip |
| Test Commissions | TEST_COMMISSIONS |
bipolar_test_commissions |
| WAIS-IV/III tests | Various | Various bipolar_wais* tables |
Additional C-SSRS & SIS - SHARED TABLES
| Questionnaire | Code | Table |
|---|---|---|
| C-SSRS | CSSRS |
bipolar_cssrs |
| SIS | SIS |
bipolar_sis |
Additional Social Module - SHARED TABLE
| Questionnaire | Code | Table |
|---|---|---|
| Social Evaluation | SOCIAL |
bipolar_social |
Shared Table Rules
One Response Per Visit
All tables have visit_id as UNIQUE constraint. Each visit creates a new response row in the shared table.
Longitudinal Tracking
Query all responses for a patient across visits:
SELECT * FROM bipolar_madrs
WHERE patient_id = ?
ORDER BY created_at;
Cross-Visit Comparison
Shared tables enable longitudinal analysis (e.g., MADRS score trends over time).
Service Layer Mapping
| Visit Type | Service File |
|---|---|
| Screening | lib/services/bipolar-screening.service.ts |
| Initial | lib/services/bipolar-initial.service.ts |
| Biannual/Annual | lib/services/bipolar-followup.service.ts |
RPC Functions
| Function | Purpose |
|---|---|
get_visit_detail_data(visit_id) |
Returns completion status for all questionnaires |
get_professional_dashboard_data(...) |
Aggregates completion percentages per visit |
get_patient_profile_data(...) |
Patient-level completion tracking |
CRITICAL RPC Rule: When modifying get_visit_detail_data, always use bipolar_* table names (never responses_*). Cross-reference against supabase/schema.sql for the authoritative version.