Partager via


Conversion de vos données en FHIR pour l’API Azure pour FHIR

Important

L’API Azure pour FHIR sera mise hors service le 30 septembre 2026. Suivez les stratégies de migration pour passer au service FHIR® de Services de données de santé Azure d’ici à cette date. En raison de la mise hors service de l’API Azure pour FHIR, les nouveaux déploiements ne seront plus autorisés à compter du 1er avril 2025. Le service FHIR des Services de données de santé Azure est la version évoluée de l’API Azure pour FHIR qui permet aux clients de gérer les services FHIR, DICOM et MedTech avec des intégrations dans d’autres services Azure.

Le point de terminaison personnalisé $convert-data dans le service FHIR® est destiné à la conversion de données de différents types de données en FHIR. Il utilise le moteur de modèle Liquid et les modèles du projet FHIR Converter comme modèles par défaut. Vous pouvez personnaliser ces modèles de conversion en fonction de vos besoins.

Actuellement, le point de terminaison personnalisé $convert-data prend en charge quatre types de conversion de données :

Format des données d’origine Format des données de destination
C-CDA FHIR
HL7v2 FHIR
JSON FHIR
FHIR STU3 FHIR R4

Remarque

Le point de terminaison $convert-data peut être utilisé comme composant dans un pipeline ETL (exportation, transformation et chargement) pour la conversion de données médicales brutes à partir de formats hérités au format FHIR. Toutefois, il n’est pas lui-même un pipeline ETL. Nous vous recommandons d’utiliser un moteur ETL tel que Logic Apps ou Azure Data Factory pour un flux de travail complet dans la préparation de vos données FHIR à persister dans le serveur FHIR. Le flux de travail peut comprendre : la lecture et l’ingestion des données, la validation des données, les appels à l’API $convert-data, le pré ou post-traitement des données, l’enrichissement des données et la déduplication des données.

Utiliser le point de terminaison $convert-data

L'opération $convert-data est intégrée au service FHIR à exécuter dans le cadre du service. Après avoir activé $convert-data dans votre serveur, vous pouvez effectuer des appels d’API au serveur pour convertir vos données en FHIR à l’aide de https://<<FHIR service base URL>>/$convert-data.

Ressource de paramètre

$convert-data prend une ressource Parameter dans le corps de la requête, comme décrit dans le tableau suivant. Dans le corps de la requête d’appel d'API, vous devez inclure les paramètres suivants :

Nom du paramètre Description Valeurs acceptées
inputData Données à convertir. Pour Hl7v2: chaîne
Pour Ccda: XML
Pour Json: JSON
Pour FHIR STU3: JSON
inputDataType Type de données de l’entrée. HL7v2, Ccda, Json, Fhir
templateCollectionReference Référence à une collection de modèles d’images OCI sur Azure Container Registry (ACR). Il s'agit de l'image contenant les modèles de liquide à utiliser pour la conversion. Il peut s’agir d’une référence aux modèles par défaut ou d’une image de modèle personnalisée inscrite dans le service FHIR. Pour en savoir plus sur la personnalisation des modèles, leur hébergement sur ACR et l’inscription au service FHIR, consultez les sections suivantes. 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 », « ADT_A47 », « 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 »

FHIR STU3 » :
Ressource STU3, par exemple « Nom », « Patient », « Observation », « Organisation ».

Remarque

Les modèles FHIR STU3 à R4 sont des modèles Liquid « diff » qui fournissent des mappages de différences de champ uniquement entre une ressource STU3 et sa ressource équivalente dans le standard FHIR R4. Certaines des ressources STU3 sont renommées ou supprimées de R4. Reportez-vous à Différences et contraintes des ressources pour la conversion STU3 vers R4.

Remarque

Les modèles JSON sont des exemples de modèles à utiliser, et non des modèles « par défaut » qui respectent tous les types de messages JSON prédéfinis. JSON n’a pas de type de message standardisé, contrairement aux messages HL7v2 ou aux documents C-CDA. Au lieu de modèles par défaut, nous vous proposons des modèles types que vous pouvez utiliser comme guide de départ pour vos propres modèles personnalisés.

Avertissement

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

Les modèles par défaut sont fournis uniquement pour vous aider à commencer. Ils peuvent être mis à jour lorsque nous mettons à jour les versions de l'API Azure pour FHIR. Vous devez vérifier le comportement de conversion et héberger votre propre copie de modèles sur Azure Container Registry, inscrire celles-ci à l’API Azure pour FHIR à utiliser dans vos appels d’API. Cela est nécessaire pour un comportement de conversion de données cohérent entre différentes versions de l’API Azure pour FHIR.

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": "transaction",
  "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"
      }
    }
  ]
}

Personnaliser des modèles

Vous pouvez utiliser l’extension FHIR Converter pour Visual Studio Code afin de personnaliser les modèles en fonction de vos besoins. L’extension fournit une expérience d’édition interactive et facilite le téléchargement de modèles et d’exemples de données publiés par Microsoft. Pour plus d’informations, reportez-vous à la documentation de l’extension.

Remarque

L’extension FHIR Converter pour Visual Studio Code est disponible pour les modèles HL7v2, C-CDA et JSON Liquid. Les modèles FHIR STU3 vers R4 Liquid ne sont actuellement pas pris en charge.

Héberger et utiliser des modèles

Nous vous recommandons d’héberger votre propre copie des modèles sur ACR. Quatre étapes sont nécessaires pour héberger votre propre copie des modèles et les utiliser dans l’opération $convert-data :

  1. Envoyer (push) les modèles à votre instance Azure Container Registry
  2. Activer Managed Identity sur votre instance d’API Azure pour FHIR
  3. Fournir l’accès à l’ACR à l’identité managée API Azure pour FHIR
  4. Inscrire les serveurs ACR dans l’API Azure pour FHIR
  5. Configurer éventuellement le pare-feu de l'ACR pour un accès sécurisé.

Envoyer (push) les modèles vers Azure Container Registry

Après avoir créé une instance ACR, vous pouvez utiliser la commande Convertisseur FHIR : modèles d’envoi dans l’extension convertisseur FHIR pour envoyer (push) les modèles personnalisés vers l’ACR. Vous pouvez également utiliser l’outil Template Management CLI.

Activer Managed Identity sur l’API Azure pour FHIR

Accédez à votre instance du service API Azure pour FHIR dans le Portail Microsoft Azure, puis sélectionnez le panneau Identité. Basculez l’état sur Activé afin d’activer Managed Identity dans API Azure pour FHIR.

Image de l’écran montrant l’activation de l’identité managée.

Fournir l’accès à l’ACR à l’API Azure pour FHIR

  1. Accédez au panneau Contrôle d’accès (IAM).

  2. Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.

  3. Attribuez le rôle AcrPull.

    Image d’écran de la page Ajouter une attribution de rôle.

Pour plus d’informations sur l’attribution de rôles dans le Portail Microsoft Azure, consultez Rôles intégrés Azure.

Inscrire les serveurs ACR dans API Azure pour FHIR

Vous pouvez enregistrer le serveur ACR à l'aide du Portail Microsoft Azure ou du CLI.

Enregistrement du serveur ACR à l'aide du Portail Microsoft Azure

Accédez au panneau Artefacts sous Transformation de données dans votre instance Azure API pour FHIR. La liste des serveurs ACR actuellement enregistrés s’affiche. Sélectionnez Ajouter, puis sélectionnez votre serveur de Registre dans le menu déroulant. Vous devez sélectionner Enregistrer pour que l’inscription prenne effet. L'application de la modification et le redémarrage de votre instance peuvent prendre quelques minutes.

Enregistrement du serveur ACR à l'aide de CLI

Vous pouvez inscrire jusqu’à 20 serveurs ACR dans l’API Azure pour FHIR.

Installez l’interface CLI Services de données de santé Azure à partir d’Azure PowerShell si nécessaire :

az extension add -n healthcareapis

Inscrivez les serveurs ACR auprès d’API Azure pour FHIR en suivant ces exemples :

Inscrire un serveur ACR unique
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021
Inscrire plusieurs serveurs ACR
az healthcareapis acr add --login-servers "fhiracr2021.azurecr.io fhiracr2020.azurecr.io" --resource-group fhir-test --resource-name fhirtest2021

Configurer un pare-feu ACR

Sélectionnez Mise en réseau du compte de stockage Azure à partir du portail.

 Image d’écran du registre de conteneurs.

Sélectionnez Réseaux sélectionnés.

Dans la section Pare-feu, spécifiez l’adresse IP dans la zone Plage d’adresses. Ajoutez des plages d'adresses IP pour autoriser l'accès à partir d'Internet ou de vos réseaux locaux.

Dans le tableau suivant, vous trouverez l’adresse IP correspondant à la région Azure dans laquelle le service API Azure pour FHIR est provisionné.

Région Azure Adresse IP publique
Australie Est 20.53.47.210
Brésil Sud 191.238.72.227
Centre du Canada 20.48.197.161
Inde centrale 20.192.47.66
USA Est 20.62.134.242, 20.62.134.244, 20.62.134.245
USA Est 2 20.62.60.115, 20.62.60.116, 20.62.60.117
France Centre 51.138.211.19
Allemagne Nord 51.116.60.240
Allemagne Centre-Ouest 20.52.88.224
Japon Est 20.191.167.146
OuJapon Est 20.189.228.225
Centre de la Corée 20.194.75.193
Centre-Nord des États-Unis 52.162.111.130, 20.51.0.209
Europe Nord 52.146.137.179
Qatar Centre 20.21.36.225
Afrique du Sud Nord 102.133.220.199
États-Unis - partie centrale méridionale 20.65.134.83
Asie Sud-Est 20.195.67.208
Suède Centre 51.12.28.100
Suisse Nord 51.107.247.97
Sud du Royaume-Uni 51.143.213.211
Ouest du Royaume-Uni 51.140.210.86
Centre-USA Ouest 13.71.199.119
Europe Ouest 20.61.103.243, 20.61.103.244
USA Ouest 2 20.51.13.80, 20.51.13.84, 20.51.13.85
USA Ouest 3 20.150.245.165

Remarque

Les étapes ci-dessus sont similaires aux étapes de configuration décrites dans le document Comment exporter des données FHIR. Pour plus d’informations, consultez Exportation sécurisée de Stockage Azure

Vérifier

Appelez l’API $convert-data en spécifiant votre référence de modèle dans le paramètre templateCollectionReference.

<RegistryServer>/<imageName>@<imageDigest>

Étapes suivantes

Dans cet article, vous avez appris à convertir des données pour l’API Azure pour FHIR. Pour plus d'informations sur les projets GitHub liés à Azure API for FHIR, consultez

Remarque

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