Patient-everything dans FHIR

L’opération Patient-everything est utilisée pour fournir une vue de toutes les ressources liées à un patient. Cette opération peut être utile pour permettre aux patients d’accéder à l’intégralité de leur dossier ou pour qu’un fournisseur ou un autre utilisateur effectue un téléchargement de données en bloc lié à un patient. Selon la spécification FHIR, Patient-everything retourne toutes les informations relatives à un ou plusieurs patients décrits dans la ressource ou le contexte sur lequel cette opération est appelée. Dans l’API Azure pour FHIR, Patient-everything est disponible pour extraire des données relatives à un patient spécifique.

Utiliser Patient-everything

Pour appeler Patient-everything, utilisez la commande suivante :

GET {FHIRURL}/Patient/{ID}/$everything

Notes

Vous devez spécifier un ID pour un patient spécifique. Si vous avez besoin de toutes les données pour tous les patients, consultez $export.

L’API Azure pour FHIR vérifie qu’elle peut trouver le patient correspondant à l’ID de patient fourni. Si un résultat est trouvé, la réponse est un bundle de type searchset avec les informations suivantes :

  • Ressource patient
  • Ressources qui sont directement référencées par la ressource patient, à l’exception des références de lien qui ne sont pas de seealso ou si le seealso lien fait référence à un RelatedPerson.
  • S’il existe seealso des références de lien vers d’autres patients, les résultats incluent l’opération Patient-everything sur le seealso ou les patients répertoriés.
  • Ressources dans le compartiment des patients
  • Ressources d’appareil qui référencent la ressource patient.

Notes

Si le patient a plus de 100 appareils liés à eux, seuls 100 seront retournés.

Paramètres patient-everything

L’API Azure pour FHIR prend en charge les paramètres de requête suivants. Tous ces paramètres sont facultatifs :

Paramètre de requête. Description
_type Vous permet de spécifier les types de ressources qui seront inclus dans la réponse. Par exemple, _type=Rencontre retourne uniquement Encounter les ressources associées au patient.
_Depuis Retourne uniquement les ressources qui ont été modifiées depuis le temps fourni.
start La spécification de la date de début permet d’extraire les ressources dont la date clinique est postérieure à la date de début spécifiée. Si aucune date de début n’est fournie, tous les enregistrements avant la date de fin sont dans l’étendue.
end La spécification de la date de fin permet d’extraire les ressources dont la date clinique est antérieure à la date de fin spécifiée. Si aucune date de fin n’est fournie, tous les enregistrements après la date de début sont dans l’étendue.

Notes

Cette implémentation de Patient-everything ne prend pas en charge le paramètre _count.

Sur une ressource patient, il existe un élément appelé link, qui lie un patient à d’autres patients ou à des personnes associées. Ces patients liés aident à donner une vue holistique du patient d’origine. La référence de lien peut être utilisée lorsqu’un patient remplace un autre patient ou lorsque deux ressources patient ont des informations complémentaires. Un cas d’usage pour les liens est lorsqu’un message ADT 38 ou 39 HL7v2 arrive. Les ADT38/39 décrivent une mise à jour pour un patient. Cette mise à jour peut être stockée en tant que référence entre deux patients dans l’élément link.

La spécification FHIR a une vue d’ensemble détaillée des différents types de liens de patients, mais voici un résumé de haut niveau :

  • replaces : la ressource Patient remplace un patient différent.
  • référence : le patient est valide, mais il n’est pas considéré comme la principale source d’information. Pointe vers un autre patient pour récupérer des informations supplémentaires.
  • seealso - Patient contient un lien vers un autre patient qui est également valide.
  • remplacé par : la ressource Patient remplace un patient différent.

L’opération Patient-everything dans l’API Azure pour FHIR traite les liens des patients de différentes manières pour vous donner la vue la plus holistique du patient.

Notes

Un lien peut également référencer un RelatedPerson. À l’heure actuelle, RelatedPerson les ressources ne sont pas traitées dans Patient-everything et ne sont pas retournées dans l’offre groupée.

À l’heure actuelle, les liens de remplacement et de référence sont ignorés par l’opération Patient-everything, et le patient lié n’est pas retourné dans le bundle.

Comme décrit, les liens seealso référencent un autre patient qui est considéré comme tout aussi valide que l’original. Une fois l’opération Patient-everything exécutée, si le patient a seealso des liens avec d’autres patients, l’opération exécute Patient-everything sur chaque seealso lien. Cela signifie que si un patient est lié à cinq autres patients avec un lien de type seealso , nous allons exécuter Patient-everything sur chacun de ces cinq patients.

Notes

Ce paramètre est configuré pour suivre uniquement les seealso liens d’une couche. Il ne traite pas les liens d’un seealsoseealso lien.

Consultez également diagramme de flux.

Le type de lien final est remplacé par . Dans ce cas, la ressource patient d’origine n’est plus utilisée et le replaced-by lien pointe vers le patient qui doit être utilisé. Cette implémentation de Patient-everything inclut par défaut un résultat d’opération au début du bundle avec un avertissement indiquant que le patient n’est plus valide. Il s’agit également du comportement lorsque l’en-tête Prefer est défini sur handling=lenient.

En outre, vous pouvez définir l’en-tête Prefer sur handling=strict pour lever une erreur à la place. Dans ce cas, un retour du code d’erreur 301 MovedPermanently indique que le patient actuel est obsolète et retourne l’ID du patient correct inclus dans le lien. L’en-tête ContentLocation de l’erreur retournée pointe vers la requête correcte et à jour.

Notes

Si un replaced-by lien est présent Prefer: handling=lenient et que les résultats sont retournés de manière asynchrone dans plusieurs bundles, seul un résultat d’opération est retourné dans un seul bundle.

Ordre de réponse patient-tout

L’opération Patient-everything retourne les résultats en phases :

  1. La phase 1 retourne la Patient ressource elle-même en plus des generalPractitioner références ir et des managingOrganization ressources.
  2. Les phases 2 et 3 retournent les ressources dans le compartiment du patient. Si les paramètres de requête de début ou de fin sont spécifiés, la phase 2 retourne les ressources du compartiment qui peuvent être filtrées par leur date clinique, et la phase 3 renvoie les ressources du compartiment qui ne peuvent pas être filtrées par leur date clinique. Si aucun de ces paramètres n’est spécifié, la phase 2 est ignorée et la phase 3 retourne toutes les ressources du compartiment patient.
  3. La phase 4 retourne tous les appareils qui référencent le patient.

Chaque phase retourne les résultats dans un bundle. Si les résultats s’étendent sur plusieurs pages, le lien suivant dans le bundle pointe vers la page de résultats suivante pour cette phase. Une fois tous les résultats d’une phase retournés, le lien suivant dans le bundle pointe vers l’appel pour lancer la phase suivante.

Si le patient d’origine a seealso des liens, les phases 1 à 4 seront répétées pour chacun de ces patients.

Exemples de patient-everything

Voici quelques exemples d’utilisation de l’opération Patient-everything. En plus des exemples, nous avons un exemple de fichier REST qui illustre le fonctionnement du seealso comportement et replaced-by .

Pour utiliser Patient-everything pour interroger entre 2010 et 2020, utilisez l’appel suivant :

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

Pour utiliser $patient-tout pour interroger l’observation et la rencontre d’un patient, utilisez l’appel suivant :

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

Pour utiliser $patient-everything pour interroger le « tout » d’un patient depuis 2021-05-27T05:00:00Z, utilisez l’appel suivant :

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

Si un patient est trouvé pour chacun de ces appels, vous obtiendrez une réponse 200 avec une Bundle des ressources correspondantes.

Étapes suivantes

Maintenant que vous savez comment utiliser l’opération Patient-everything, vous pouvez en savoir plus sur les options de recherche.

FHIR® est une marque déposée de HL7 utilisé avec l’autorisation de HL7.