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

Le $convert-data point de terminaison personnalisé 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 $convert-data terminaison personnalisé prend en charge four les 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

Notes

$convert-data le point de terminaison peut être utilisé comme composant au sein d’un pipeline ETL pour la conversion des données médicales brutes des formats hérités au format FHIR. Toutefois, il ne s’agit pas d’un pipeline ETL en soi. Nous vous recommandons d’utiliser un moteur ETL tel que Logic Apps ou Azure Data Factory pour un workflow complet de préparation de vos données FHIR à conserver dans le serveur FHIR. Le workflow peut inclure : la lecture et l’ingestion des données, la validation des données, la réalisation d’appels d’API de données $convert, le pré/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 pour s’exécuter dans le cadre du service. Après l’activation $convert-data dans votre serveur, vous pouvez effectuer des appels d’API au serveur pour convertir vos données en FHIR : 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 ci-dessous. Dans le corps de la demande 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 Liquid à 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. Consultez ci-dessous pour en savoir plus sur la personnalisation des modèles, l’hébergement de ceux-ci sur ACR et l’inscription au service FHIR. Pour les modèles par défaut/exemples :
Modèles HL7v2 :
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
Modèles C-CDA :
microsofthealth/ccdatemplates:default
Modèles JSON :
microsofthealth/jsontemplates:default
Modèles 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 »:
Nom de la ressource STU3, par exemple, « Patient », « Observation », « Organisation ».

Notes

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

Notes

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 types de messages standardisés, contrairement aux messages HL7v2 ou aux documents C-CDA. Par conséquent, au lieu des modèles par défaut, nous vous fournissons des exemples de modèles 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 licence MIT et ne sont pas pris en charge par Support Microsoft.

Les modèles par défaut sont fournis uniquement pour vous aider à démarrer rapidement. Ils peuvent être mis à jour lorsque nous mettons à jour des versions de l’API Azure pour FHIR. Par conséquent, vous devez vérifier le comportement de conversion et héberger votre propre copie des modèles sur un Azure Container Registry, les inscrire à l’API Azure pour FHIR et les utiliser dans vos appels d’API afin d’avoir un comportement de conversion de données cohérent entre les différentes versions de l’API Azure pour FHIR.

Exemple de demande

{
    "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.

Notes

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

Héberger et utiliser des modèles

Il est recommandé 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. Configurez éventuellement le pare-feu ACR pour un accès sécurisé.

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

Après avoir créé une instance d’ACR, vous pouvez utiliser la commande FHIR Converter: Push Templates dans l’extension FHIR Converter pour envoyer les modèles personnalisés vers ACR. Vous pouvez également utiliser l’outil Template Management CLI à cet effet.

Activer Managed Identity sur l’API Azure pour FHIR

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

Image d’écran d’Activer 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 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 Azure, consultez Rôles intégrés Azure.

Inscrire les serveurs ACR dans API Azure pour FHIR

Vous pouvez inscrire le serveur ACR à l’aide du Portail Azure ou de l’interface CLI.

Inscription du serveur ACR à l’aide de Portail Azure

Accédez au panneau Artefacts sous Transformation des données dans votre instance d’API Azure pour FHIR. Vous verrez la liste des serveurs ACR actuellement inscrits. 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.

Inscription du serveur ACR à l’aide de l’interface CLI

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

Installez l’interface CLI Azure Health Data Services à partir de Azure PowerShell si nécessaire :

az extension add -n healthcareapis

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

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 le pare-feu ACR

Sélectionnez Mise en réseau du compte de stockage Azure dans le 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 ci-dessous, vous trouverez l’adresse IP de la région Azure où le service API Azure pour FHIR est approvisionné.

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 Central 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

Notes

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 vers stockage Azure.

Vérification

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 découvert la conversion de données pour l’API Azure pour FHIR. Pour plus d’informations sur les projets GitHub associés pour l’API Azure pour FHIR, consultez

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