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înePour Ccda : XMLPour Json : JSONPour 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 :
- 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
- 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.
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 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 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.
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.