Share via


$convert données dans le service FHIR

Remarque

En mai 2024, nous avons publié une API de convertisseur FHIR autonome découplée du service FHIR et empaquetée en tant qu’image conteneur (Docker) pour préversion. En plus de vous permettre de convertir des données de la source d’enregistrement en bundles FHIR R4, le convertisseur FHIR offre de nombreuses nouvelles fonctionnalités nettes, telles que :

  • Conversion bidirectionnelle des données de la source d’enregistrement vers des bundles FHIR R4 et retour. Par exemple, le convertisseur FHIR peut convertir les données du format FHIR R4 au format HL7v2.
  • Expérience améliorée pour la personnalisation des modèles Liquid par défaut.
  • Exemples illustrant comment créer un pipeline ETL (extraction, transformation, chargement) avec Azure Data Factory (ADF).

Pour implémenter l'image du conteneur du convertisseur FHIR, consultez le projet GitHub du convertisseur FHIR.

Le fonctionnement du service FHIR® $convert-data vous permet de convertir des données de santé de différents formats en données FHIR R4. L'opération $convert-data utilise les modèles Liquid du projet FHIR Converter pour la conversion des données FHIR. Vous pouvez personnaliser ces modèles de conversion en fonction de vos besoins.

L'opération $convert-data prend en charge quatre types de conversion de données :

  • HL7v2 vers FHIR R4
  • C-CDA vers FHIR R4
  • JSON vers FHIR R4 (destiné aux mappages de conversion personnalisés)
  • FHIR STU3 à FHIR R4

Utiliser le point de terminaison $convert-data

Utilisez le point de terminaison $convert-data en tant que composant dans un pipeline ETL (extraction, transformation et chargement) pour la conversion de données de santé de différents formats (par exemple : HL7v2, CCDA, JSON et FHIR STU3) au format FHIR. Créez un pipeline ETL pour un flux de travail complet lorsque vous convertissez vos données d’intégrité. Nous vous recommandons d'utiliser un moteur ETL basé sur Azure Logic Apps ou Azure Data Factory. Par exemple, un flux de travail peut inclure l'ingestion de données, l'exécution d'opérations $convert-data, la validation, le pré- et post-traitement des données, l'enrichissement des données, la déduplication des données et le chargement des données pour la persistance dans le service FHIR.

L'opération $convert-data est intégrée au service FHIR en tant qu'action API REST. Vous pouvez appeler le point de terminaison $convert-data comme suit :

POST {{fhirurl}}/$convert-data

Les données de santé à convertir sont remises au service FHIR dans le corps de la requête $convert-data. Si la requête aboutit, le service FHIR renvoie une réponse groupée FHIR avec les données converties en FHIR R4.

Paramètres

Un appel d’opération $convert-data regroupe les données d’intégrité pour la conversion dans des paramètres au format JSON dans le corps de la requête. Les paramètres sont décrits dans le tableau suivant :

Nom du paramètre Description Valeurs acceptées
inputData Charge utile de données à convertir en FHIR. Pour Hl7v2: chaîne
Pour Ccda: XML
Pour Json: JSON
Pour FHIR STU3: JSON
inputDataType Type d’entrée de données. Hl7v2, Ccda, Json, Fhir
templateCollectionReference Référence à une collection de modèles d’images OCI dans Azure Container Registry. La référence est une image qui contient des modèles Liquid à utiliser pour la conversion. Il peut faire référence à des modèles par défaut ou à une image de modèle personnalisée inscrite dans le service FHIR. Les sections suivantes couvrent la personnalisation des modèles, leur hébergement sur Azure Container Registry et l'inscription au service FHIR. Pour modèles de par défaut/exemple :
modèlesHL7v2 :
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
modèlesC-CDA :
microsofthealth/ccdatemplates:default
modèles deJSON :
microsofthealth/jsontemplates:default
modèles de FHIR STU3 :
microsofthealth/stu3tor4templates:default

Pour les modèles personnalisés :
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate Modèle racine à utiliser lors de la transformation des données. Pour HL7v2 :
ADT_A01, ADT_A02, ADT_A03, ADT_A04, ADT_A05, ADT_A08, ADT_A11, ADT_A13, ADT_A14, ADT_A15, ADT_A16, ADT_A25, ADT_A26, ADT_A27, ADT_A28, ADT_A29, ADT_A31, 47, ADT_A60, OML_O21, ORU_R01, ORM_O01, VXU_V04, SIU_S12, SIU_S13, SIU_S14, SIU_S15, SIU_S16, SIU_S17, SIU_S26, MDM_T01, MDM_T02

Pour C-CDA :
CCD, ConsultationNote, DischargeSummary, HistoryandPhysical, OperativeNote, ProcedureNote, ProgressNote, ReferralNote, TransferSummary

Pour JSON :
ExamplePatient, Stu3ChargeItem

Pour FHIR STU3 :
Nom de la ressource FHIR STU3 (par exemple : Patient, Observation, Organisation)

À propos de l’installation

  • Les modèles FHIR STU3 à FHIR R4 sont des modèles Liquid qui fournissent des mappages de différences de champ uniquement entre une ressource FHIR STU3 et sa ressource équivalente dans la spécification FHIR R4. Certaines des ressources FHIR STU3 sont renommées ou supprimées de FHIR R4. Pour plus d’informations sur les différences de ressources et les contraintes de conversion FHIR STU3 vers FHIR R4, consultez différences et contraintes de ressources pour la conversion FHIR STU3 vers FHIR R4.

  • Les modèles JSON sont des exemples de modèles à utiliser pour créer vos propres mappages de conversion. Ils ne sont pas des modèles par défaut qui respectent tous les types de messages de données d’intégrité prédéfinis. JSON lui-même n’est pas spécifié comme format de données d’intégrité, contrairement à HL7v2 ou C-CDA. Par conséquent, au lieu de fournir des modèles JSON par défaut, nous fournissons des exemples de modèles JSON comme point de départ pour vos propres mappages personnalisés.

Avertissement

Les modèles par défaut sont publiés sous la licence MIT et ne sont pas pris en charge par Microsoft.

Les modèles par défaut sont fournis uniquement pour vous aider à bien démarrer avec votre flux de travail de conversion de données. Ces modèles par défaut ne sont pas destinés à la production et peuvent changer lorsque Microsoft publie des mises à jour pour le service FHIR. Pour avoir un comportement de conversion de données cohérent entre différentes versions du service FHIR, vous devez effectuer les opérations suivantes :

  1. Hébergez votre propre copie des modèles dans une instance Azure Container Registry.
  2. Inscrivez les modèles dans le service FHIR.
  3. Utilisez vos modèles inscrits dans vos appels d’API.
  4. Vérifiez que le comportement de conversion répond à vos besoins.

Pour plus d’informations sur l’hébergement de vos propres modèles, consultez Héberger vos propres modèles

Exemple de requête

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputData",
            "valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
        },
        {
            "name": "inputDataType",
            "valueString": "Hl7v2"
        },
        {
            "name": "templateCollectionReference",
            "valueString": "microsofthealth/fhirconverter:default"
        },
        {
            "name": "rootTemplate",
            "valueString": "ADT_A01"
        }
    ]
}

Exemple de réponse

{
    "resourceType": "Bundle",
    "type": "batch",
    "entry": [
        {
            "fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
            "resource": {
                "resourceType": "Patient",
                "id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
          ...
          ...
            },
            "request": {
                "method": "PUT",
                "url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
            }
        }
    ]
}

Le résultat de la conversion FHIR est un ensemble FHIR en tant que lot.

  • Le bundle FHIR doit s’aligner sur les attentes de la spécification FHIR R4 - Bundle - FHIR v4.0.1.
  • Si vous essayez de valider par rapport à un profil spécifique, vous devez effectuer un post-traitement en utilisant l'opération FHIR $validate.

Étapes suivantes

Configurer les paramètres pour $convert-data à l'aide du portail Azure

Dépanner $convert-data

FAQ $convert-data

Remarque

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