Écran 1 — Tableau de bord / Accueil (déjà fait)

où ça se branche dans Odoo Online, et quels modèles créer avec Odoo Studio

pour alimenter l’écran “Dossier patient / Fiche senior”.

Je vous le fais en 3 parties :

  1. Modules Odoo Online à interconnecter
  2. Modèles Synergia Senior à créer avec Odoo Studio
  3. Mapping direct ↔ éléments de l’écran “Fiche senior”


1️⃣ Modules Odoo Online à interconnecter

Module Odoo classiqueRôle dans Synergia SeniorCe qu’on y stocke / réutilise
Contacts (res.partner)Cœur de toutSeniors, aidants, infirmiers, médecins, pharmaciens, structures. Adresses, téléphone, email, géolocalisation (pour la carte OSM).
CalendrierPlanification des visitesÉvénements de visite (option : synchroniser avec modèle “Visite infirmier”).
DocumentsStockage des PDFs & imagesOrdonnances, comptes rendus, photos de plaies, documents hospitaliers, etc.
Notes ou Projet/TâchesTâches administrativesTo-do IA : BSI à finir, transmissions à envoyer, renouvellements, rappels.
Discussion (mail/messages)Historique des transmissionsLog des messages envoyés au médecin/pharmacie/aidant (via N8N).
(Option) Field Service / HelpdeskSi vous formalisez les visites comme “interventions”Visites planifiées avec suivi d’état (à faire / fait / facturé).

Idée : créer une “App” Synergia Senior dans Odoo Studio qui contient les nouveaux modèles, mais s’appuie sur Contacts / Calendrier / Documents.

2️⃣ Modèles à créer via Odoo Studio (côté Synergia Senior)

Je vous propose une structure simple, compatible Odoo Online.

2.1. Modèle principal : Dossier Senior

ÉlémentProposition
Nom techniquex_synergia_senior_dossier
TypeModèle principal (nouvel objet)
Champs principaux
name (Char)Nom du dossier (reprend le nom du senior)
senior_id (Many2one → res.partner)Contact du senior (domaine : tag “Senior”)
aidant_principal_id (Many2one → res.partner)Contact aidant principal
team_ids (Many2many → res.partner)Équipe de soin (infirmiers, médecins, pharmaciens, aide à dom)
risk_score (Float / Integer)Score de fragilité / priorité IA
notes_generales (Text)Notes générales sur la situation

C’est ce modèle qui sera ouvert quand on clique sur “Fiche patient / Dossier senior”.

2.2. Modèle : Profil médical / Contexte

ÉlémentProposition
Nom techniquex_synergia_medical_profile
RelationMany2one vers x_synergia_senior_dossier
Champs
dossier_id (Many2one)Lien vers le dossier senior
pathologies (Text ou Many2many vers table de référence)Liste des pathologies (ex : insuffisance cardiaque, HTA…)
traitements (Text)Traitements en cours (texte libre au début)
allergies (Text)Allergies majeures
commentaire_medical (Text)Commentaires libres (médecin ou infirmier)

Simple pour démarrer, sans rentrer dans un vrai dossier médical hospitalier.

2.3. Modèle : Visites infirmières

ÉlémentProposition
Nom techniquex_synergia_visit
RelationOne2many depuis le dossier senior
Champs
dossier_id (Many2one → x_synergia_senior_dossier)Senior concerné
infirmier_id (Many2one → res.partner ou res.users)Soignant qui a fait la visite
date_visit (Datetime)Date et heure de la visite
type_visit (Selection)('soin', 'pansement', 'suivi_chronique', 'post_op', 'bsi', 'autre')
note_brute (Text)Note brute dictée / saisie
resume_ia (Text)Résumé généré par l’IA pour “Historique des visites”
tag_visite (Selection)ex : ('bsi','transmission_medecin','soin','controle') pour les badges dans la liste
transmission_id (Many2one → x_synergia_transmission)Lien s’il y a eu un message généré
documents_ids (Many2many → ir.attachment)Photos ou pièces jointes associées à la visite

2.4. Modèle : Transmissions (IA → médecin / pharmacie / aidant)

ÉlémentProposition
Nom techniquex_synergia_transmission
Champs
dossier_id (Many2one)Lien vers le senior
to_partner_id (Many2one → res.partner)Destinataire (médecin, pharmacie, aidant)
channel (Selection)('email','sms','portail','autre')
subject (Char)Objet
body (Text)Corps de la transmission (généré par l’IA, modifiable)
status (Selection)('draft','sent','failed')
date_sent (Datetime)Date d’envoi (renseignée par N8N)
origin_visit_id (Many2one → x_synergia_visit)Visite liée

2.5. Modèle : Mesures capteurs & constantes vitales

ÉlémentProposition
Nom techniquex_synergia_sensor_measure
Champs
dossier_id (Many2one → x_synergia_senior_dossier)Dossier senior concerné
measure_type (Selection)('ta','poids','sommeil','frequence_cardiaque','activite','autre')
value_numeric (Float)Valeur principale (ex : 120, 66.1…)
unit (Char)ex : mmHg, kg, h, pas
measured_at (Datetime)Date/heure de la mesure
source (Selection ou Char)('withings','mmwave','manuel','autre')
raw_payload (Text)JSON brut remonté par N8N (pour audit/debug)

Cela permet d’afficher dans la colonne droite : TA / Poids / Sommeil (3 dernières valeurs) avec date.

2.6. Modèle : Alertes / Signaux faibles (pour plus tard mais utile)

ÉlémentProposition
Nom techniquex_synergia_alert
Champs
dossier_id (Many2one)Senior concerné
alert_type (Selection)('capteur','medication','organisation','autre')
severity (Selection)('low','medium','high')
message (Text)Description lisible
source (Char)Règle IA / N8N qui a généré l’alerte
is_resolved (Boolean)A été traité ou pas
resolved_by_id (Many2one → res.users)Qui a traité
resolved_note (Text)Commentaire de résolution

Ces alertes seront vues surtout dans Écran 8, mais on peut en remonter une synthèse dans la fiche patient.

3️⃣ Mapping direct avec l’écran “Fiche senior”

Je vous fais un tableau “Élément d’écran → Objet / champ Odoo”.

Élément visuel de la Fiche SeniorOù est-ce stocké ?
Nom du senior, âge, adresseres.partner (champ name, street, zip, city, birthdate_date pour calcul de l’âge)
Contact aidantx_synergia_senior_dossier.aidant_principal_id (Many2one → res.partner)
Contexte médical (pathologies, traitements, allergies)x_synergia_medical_profile.pathologies, .traitements, .allergies liés à dossier_id
Historique des visites (liste datée + badge “SOINS / BSI / TRANSMISSION MÉDECIN”)x_synergia_visit filtré sur dossier_id (tree view) + champs date_visit, resume_ia, tag_visite
Bouton “Transmission médecin” ou tagLien vers x_synergia_transmission (smart button / Many2one)
Bloc “Documents” (ordonnance, compte rendu hospi)ir.attachment liés soit au res.partner du senior soit au x_synergia_senior_dossier (via modèle Documents)
Bloc “Copilote IA” (panel droite)Pas stocké dans Odoo → c’est votre viewer JS + API IA ; on peut juste prévoir un champ x_last_ia_note sur x_synergia_visit ou x_synergia_transmission si vous voulez archiver.
Bloc “Capteurs & constantes”x_synergia_sensor_measure (3 dernières lignes par measure_type pour ce dossier_id)
Score de risque / priorité (facultatif)x_synergia_senior_dossier.risk_score mis à jour via N8N / IA

4️⃣ Mini-checklist pour Odoo Studio (concret)

4️⃣ Mini-checklist pour Odoo Studio (concret)

  1. Créer une nouvelle App “Synergia Senior”.
  2. Dans cette app, créer les modèles ci-dessus (au moins : x_synergia_senior_dossier, x_synergia_visit, x_synergia_sensor_measure, x_synergia_transmission, x_synergia_medical_profile).
  3. Ajouter un smart button “Dossier Senior” sur les contacts (res.partner) tagués “Senior”, qui ouvre x_synergia_senior_dossier associé.
  4. Configurer les vues form & tree pour que la “Fiche senior” ressemble au mockup :
    • en haut : bloc identité (via senior_id → champs liés),
    • zone “Contexte médical” (page ou onglet),
    • One2many “Historique des visites”,
    • One2many “Documents” (via Documents),
    • One2many “Mesures capteurs” (en widget “statistiques” ou simple liste).
  5. Connecter N8N pour créer automatiquement :
    • des enregistrements dans x_synergia_sensor_measure,
    • des enregistrements dans x_synergia_visit (avec resume_ia),
    • des enregistrements dans x_synergia_transmission.