Skip to content

feat(exploration): fhir call optimmization #3237#1272

Merged
tfi90 merged 4 commits into
frontend-frigofrom
feat/fhir-call-optimization#3237
Jul 8, 2026
Merged

feat(exploration): fhir call optimmization #3237#1272
tfi90 merged 4 commits into
frontend-frigofrom
feat/fhir-call-optimization#3237

Conversation

@tfi90

@tfi90 tfi90 commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Objectif

fix: https://gitlab.data.aphp.fr/ID/design-et-produit/ipa/cohort360/gestion-de-projet/-/work_items/3237

Réduire le nombre d'appels réseau des vues d'exploration : au lieu de récupérer une liste puis d'aller chercher séparément les Patient et Encounter liés, on demande au serveur FHIR de les renvoyer dans le même bundle via _include.

Changements réalisés

  • Généralisation du mécanisme _include (déjà présent pour les documents) à toutes les ressources d'exploration : Observation, ImagingStudy, Condition, Procedure, Claim, MedicationRequest, MedicationAdministration, QuestionnaireResponse.
  • Logique de tri/liaison du bundle mutualisée dans fetcherWithParams, avec bascule automatique sur getResourceInfosFromBundle et fallback sur getResourceInfos si le serveur ne renvoie pas les includes.
  • Helpers partagés getBundleResources, isPatientResource, isEncounterResource (fillElement.ts) et addIncludeParams (callApi.ts).
  • Consolidation : documents.ts et fetchDocumentReference utilisent désormais ces helpers partagés (suppression des copies locales).

Impacts

Front

Tests réalisés

Unitaires, manuel,

Risques

Pas de riques : Un fallback sur l'ancien comportement (getResourceInfos) est conservé si les includes ne reviennent pas.

@tfi90
tfi90 requested a review from cesar-richard July 1, 2026 14:27
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@tfi90
tfi90 changed the base branch from develop to frontend-frigo July 2, 2026 07:38

@cesar-richard cesar-richard left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dans l'ensemble je suis plutôt d'acc , j'ai repéré quelques points discutables mais pas bloquants du tout (je ferais une PR a la suite de celle ci pour compléter pour pas t'embêter.
Par contre j'ai un sujet un peu plus sérieux sur les casts as ('Encounter:encounter' | 'Patient:subject')[] sur les appels _include

Le fetcher déclare déjà cet union, donc le cast est redondant, mais surtout il est piégeux : il force le type au lieu de le vérifier. Du coup une typo dans le littéral passe à la compil :

_include: ['Encounter:encounters'] as ('Encounter:encounter' | 'Patient:subject')[]
//                        ^ on injecte une typo --> ca compile quand même à cause du `as`

Et là le _include part malformé au FHIR, l'encounter/patient n'est pas renvoyé, et on retombe sur les round-trips que la PR cherche justement à supprimer (sans erreur visible)

Si tu retires le as, le type checker valide les littéraux directement. Pas bloquant, mais tant qu'à faire autant fermer la porte :)

@tfi90
tfi90 merged commit 8d44aa8 into frontend-frigo Jul 8, 2026
2 checks passed
@ronycohen ronycohen changed the title feat(exploration): fhir call optimmization #3227 feat(exploration): fhir call optimmization #3237 Jul 10, 2026
@ronycohen
ronycohen requested review from ronycohen and removed request for ronycohen July 13, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants