5.7. Module G — Administration & Paramétrage


5.7. Module G — Administration & Paramétrage Pour Admin 

Synergia / responsable cabinet : 

  • gestion des utilisateurs (infirmiers, coordinateurs),

  •  gestion des droits (accès patients), configuration des sources

  • RAG (docs, PDFs, guidelines), 

  • paramètres de confidentialité (durée des logs, anonymisation), 

  • monitoring des appels LLM (volumes, coûts). ?


Je pars du principe que le “premier écran” = Module G – Administration & Paramétrage (config globale du cabinet).

Je te propose un MDD Odoo Studio prêt à saisir, en réutilisant un maximum de modèles natifs (res.users, res.partner) et en créant 3 modèles custom :

  • x_synergia_admin_settings → écran principal de paramétrage du cabinet
  • x_synergia_rag_source → liste des sources RAG
  • x_synergia_patient_access → matrice “droits d’accès patients par utilisateur”
  • x_synergia_llm_call_log → journal de monitoring LLM (consulté depuis un autre écran / onglet)

1️⃣ Modèle principal : Paramètres Synergia

Modèle Odoo Studio

  • Nom technique du modèle : x_synergia_admin_settings
  • Libellé : Paramètres Synergia Senior
  • Menu : dans un nouveau menu « Synergia » > « Administration & Paramétrage »

Champs du modèle x_synergia_admin_settings

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques / Widget / Domaine
nameNom du cabinet / structureCharOuiNom d’affichage de la ligne de paramétrage
company_idSociétéMany2one → res.companyOuidefault = company_id de l’utilisateur
x_admin_user_idAdministrateur SynergiaMany2one → res.usersOuiL’utilisateur qui gère ces paramètres
x_user_idsUtilisateurs (infirmiers, coordinateurs)Many2many → res.usersNonDomaine conseillé : membres des groupes “Infirmier Synergia” / “Coordinateur Synergia”
x_patient_access_idsDroits d’accès patientsOne2many → x_synergia_patient_access (x_settings_id)NonOnglet “Gestion des droits”
x_rag_source_idsSources RAG (docs, PDFs, guidelines)One2many → x_synergia_rag_source (x_settings_id)NonOnglet “Sources RAG”

Paramètres de confidentialité (dans un groupe « Confidentialité & Logs »)

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques
x_log_retention_daysDurée de conservation des logs (jours)IntegerOuiExemple : 365
x_anonymization_delay_daysAnonymisation après (jours)IntegerNonNombre de jours avant anonymisation des données nominatives
x_anonymization_modeMode d’anonymisationSelectionOuiValeurs : hash (Hash IDs), initials (Initiales), full (Suppression nom/prénom)
x_store_raw_questionsStocker les questions en clair dans les logs ?BooleanNonA décocher si confidentialité renforcée
x_store_patient_identifiersConserver les identifiants patients dans les logs ?BooleanNonSi Non → ID pseudonymisés

Monitoring LLM (paramètres globaux, pas le journal lui-même)

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques
x_llm_providerFournisseur LLM par défautSelectionOuiValeurs : openai, anthropic, google, autre
x_llm_model_nameNom du modèle LLMCharNonEx : gpt-5.1-mini, claude-3.5-sonnet
x_llm_monthly_budget_eurBudget mensuel max LLM (EUR)FloatNonPour affichage d’alertes si dérive
x_llm_alert_threshold_pctSeuil d’alerte budget (%)IntegerNonEx : 80 = alerte à 80 % du budget
x_llm_log_idsLogs des appels LLMOne2many → x_synergia_llm_call_log (x_settings_id)NonOnglet / smart button “Monitoring LLM”

2️⃣ Modèle “Droits d’accès patients”

Pour : “Gestion des droits (accès patients)”

  • Nom technique : x_synergia_patient_access
  • Libellé : Droit d’accès patient

Champs du modèle x_synergia_patient_access

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques
nameLibelléCharOuiPeut être généré automatiquement (infirmier - patient)
x_settings_idParamètres SynergiaMany2one → x_synergia_admin_settingsOuiLien parent (One2many)
x_user_idUtilisateur (infirmier)Many2one → res.usersOuiInfirmier / coordinateur
x_patient_idPatient (senior)Many2one → res.partnerOuiDomaine : x_is_senior = True
x_access_levelNiveau d’accèsSelectionOuiValeurs : read (Lecture), write (Lecture/écriture), restricted (Données minimales)
x_can_view_rag_historyVoir l’historique des réponses IA ?BooleanNonPour restreindre qui voit le détail des échanges IA
x_activeActifBooleanOuiPar défaut = True

3️⃣ Modèle “Sources RAG”

Pour : “Configuration des sources RAG (docs, PDFs, guidelines)”

  • Nom technique : x_synergia_rag_source
  • Libellé : Source RAG

Champs du modèle x_synergia_rag_source

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques
nameNom de la sourceCharOuiEx : “Guide HAS plaies chroniques”
x_settings_idParamètres SynergiaMany2one → x_synergia_admin_settingsOuiLien parent
x_source_typeType de sourceSelectionOuipdf, doc, url, faq, note_interne
x_document_idDocument Odoo (si stocké en interne)Many2one → documents.documentNonLien vers Odoo Documents
x_file_binaryFichier binaire (upload direct)BinaryNonSi pas de document_id
x_external_urlURL externeCharNonPour sources web / intranet
x_scopePortéeSelectionOuiglobal (tous les patients), pathologie (par pathologie), cabinet (cabinet)
x_pathology_tag_idsPathologies concernéesMany2many → x_synergia_pathology_tag (optionnel)NonSeulement si tu crées un modèle de tags
x_is_activeActive ?BooleanOuiFiltre sur la liste
x_last_indexed_atDernière indexation RAGDatetimeNonMise à jour par le backend (n8n / script)

(Si tu ne veux pas de modèle de tags pathologie, tu peux remplacer par un simple Char “Pathologie(s) concernée(s)”.)

4️⃣ Modèle “Monitoring des appels LLM”

Pour : “Monitoring des appels LLM (volumes, coûts)”

  • Nom technique : x_synergia_llm_call_log
  • Libellé : Log appel LLM

Champs du modèle x_synergia_llm_call_log

Champ techniqueLibellé (FR)Type OdooObligatoireRemarques
nameRéférence logCharOuiGénéré (LLM-00001…)
x_settings_idParamètres SynergiaMany2one → x_synergia_admin_settingsOuiPour filtrer par cabinet
x_datetimeDate / heure appelDatetimeOui
x_user_idUtilisateurMany2one → res.usersNonInfirmier / aidant…
x_patient_idPatient (si applicable)Many2one → res.partnerNonPeut être anonymisé selon paramètres
x_llm_providerFournisseur LLMSelectionOuiopenai, anthropic, google, autre
x_llm_model_nameModèle LLMCharNon
x_prompt_tokensTokens promptIntegerNon
x_completion_tokensTokens complétionIntegerNon
x_total_tokensTokens totalIntegerNonCalculé éventuellement
x_cost_eurCoût estimé (EUR)FloatNonCalculé par backend
x_statusStatut appelSelectionOuiok, error, timeout, blocked
x_error_messageMessage d’erreurTextNonSi status = error

Comment le brancher visuellement (écran Odoo Studio)

Sur l’écran principal du modèle x_synergia_admin_settings :

  • Onglet 1 : “Utilisateurs & Droits”
    • x_user_ids (Many2many) en vue liste + kanban
    • One2many x_patient_access_ids en vue liste (utilisateur, patient, niveau d’accès)
  • Onglet 2 : “Sources RAG”
    • One2many x_rag_source_ids (Nom, Type, Document/URL, Portée, Active)
  • Onglet 3 : “Confidentialité & Logs”
    • Groupe “Confidentialité” : x_log_retention_days, x_anonymization_delay_days, x_anonymization_mode, x_store_raw_questions, x_store_patient_identifiers
    • Groupe “Monitoring LLM (paramètres)” : x_llm_provider, x_llm_model_name, x_llm_monthly_budget_eur, x_llm_alert_threshold_pct
    • Bouton intelligent (smart button) “Logs LLM” relié au One2many x_llm_log_ids (vue liste + graph pour volumes/coûts).

Les grandes histoires ont une personnalité. Envisagez de raconter une belle histoire qui donne de la personnalité. Écrire une histoire avec de la personnalité pour des clients potentiels aidera à établir un lien relationnel. Cela se traduit par de petites spécificités comme le choix des mots ou des phrases. Écrivez de votre point de vue, pas de l'expérience de quelqu'un d'autre.

Les grandes histoires sont pour tout le monde, même lorsqu'elles ne sont écrites que pour une seule personne. Si vous essayez d'écrire en pensant à un public large et général, votre histoire sonnera fausse et manquera d'émotion. Personne ne sera intéressé. Ecrire pour une personne en particulier signifie que si c'est authentique pour l'un, c'est authentique pour le reste.