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
:
- Envoyer (push) les modèles à votre instance Azure Container Registry
- Activer Managed Identity sur votre instance d’API Azure pour FHIR
- Fournir l’accès à l’ACR à l’identité managée API Azure pour FHIR
- Inscrire les serveurs ACR dans l’API Azure pour FHIR
- 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.
Fournir l’accès à l’ACR à l’API Azure pour FHIR
Accédez au panneau Contrôle d’accès (IAM).
Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.
Attribuez le rôle AcrPull.
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.
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.