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 à unRelatedPerson
. - S’il existe
seealso
des références de lien vers d’autres patients, les résultats incluent l’opération Patient-everything sur leseealso
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.
Traitement des liens des patients
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.
Détails des liens patient-tout patient
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 seealso
seealso
lien.
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 :
- La phase 1 retourne la
Patient
ressource elle-même en plus desgeneralPractitioner
références ir et desmanagingOrganization
ressources. - 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.
- 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.