Implementación de un servicio de FHIR en Azure Health Data Services mediante una plantilla de ARM
En este artículo, obtendrá información sobre cómo implementar el servicio FHIR en Azure Health Data Services (denominado servicio FHIR) mediante la plantilla de Azure Resource Manager (plantilla de ARM). Le proporcionamos dos opciones mediante PowerShell o la CLI.
Una plantilla de ARM es un archivo JSON que define la infraestructura y la configuración del proyecto. La plantilla usa sintaxis declarativa. En la sintaxis declarativa, se describe la implementación deseada sin escribir la secuencia de comandos de programación para crearla.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Si desea ejecutar el código localmente:
Revisión de la plantilla de ARM
La plantilla usada en este artículo forma parte de las plantillas de inicio rápido de Azure.
La plantilla define tres recursos de Azure:
- Microsoft.HealthcareApis/workspaces
- Microsoft.HealthcareApis/workspaces/fhirservices
- Microsoft.Storage/storageAccounts
Nota:
RBAC local está en desuso. La configuración de directivas de acceso asociada a RBAC local en la plantilla de ARM está en desuso. Los clientes existentes que usan RBAC local deben migrar a RBAC de Azure para noviembre de 2024. Para preguntas, por favor póngase en contacto con nosotros.
Puede implementar el recurso del servicio FHIR quitando el recurso de áreas de trabajo, el recurso de almacenamiento y la dependsOn
propiedad del recurso "Microsoft.HealthcareApis/workspaces/fhirservices".
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"authorityurl": {
"type": "string",
"defaultValue": "https://login.microsoftonline.com"
},
"tagName": {
"type": "string",
"defaultValue": "My Deployment"
},
"region": {
"type": "string",
"allowedValues": [
"australiaeast",
"canadacentral",
"eastus",
"eastus2",
"germanywestcentral",
"japaneast",
"northcentralus",
"northeurope",
"southafricanorth",
"southcentralus",
"southeastasia",
"switzerlandnorth",
"uksouth",
"ukwest",
"westcentralus",
"westeurope",
"westus2"
]
},
"workspaceName": {
"type": "string"
},
"fhirServiceName": {
"type": "string"
},
"tenantid": {
"type": "string"
},
"storageAccountName": {
"type": "string"
},
"storageAccountConfirm": {
"type": "bool",
"defaultValue": true
},
"AccessPolicies": {
"type": "array",
"defaultValue": []
},
"smartProxyEnabled": {
"type": "bool",
"defaultValue": false
}
},
"variables": {
"authority": "[Concat(parameters('authorityurl'), '/', parameters('tenantid'))]",
"createManagedIdentity": true,
"managedIdentityType": {
"type": "SystemAssigned"
},
"storageBlobDataContributerRoleId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'ba92f5b4-2d11-453d-a403-e96b0029c9fe')]"
},
"resources": [
{
"type": "Microsoft.HealthcareApis/workspaces",
"name": "[parameters('workspaceName')]",
"apiVersion": "2023-11-01",
"location": "[parameters('region')]",
"properties": {}
},
{
"type": "Microsoft.HealthcareApis/workspaces/fhirservices",
"kind": "fhir-R4",
"name": "[concat(parameters('workspaceName'), '/', parameters('fhirServiceName'))]",
"apiVersion": "2023-11-01",
"location": "[parameters('region')]",
"dependsOn": [
"[resourceId('Microsoft.HealthcareApis/workspaces', parameters('workspaceName'))]"
],
"tags": {
"environmentName": "[parameters('tagName')]"
},
"properties": {
"accessPolicies": "[parameters('AccessPolicies')]",
"authenticationConfiguration": {
"authority": "[variables('Authority')]",
"audience": "[concat('https//', parameters('workspaceName'), '-', parameters('fhirServiceName'), '.fhir.azurehealthcareapis.com')]",
"smartProxyEnabled": "[parameters('smartProxyEnabled')]"
},
"corsConfiguration": {
"allowCredentials": false,
"headers": ["*"],
"maxAge": 1440,
"methods": ["DELETE", "GET", "OPTIONS", "PATCH", "POST", "PUT"],
"origins": ["https://localhost:6001"]
},
"exportConfiguration": {
"storageAccountName": "[parameters('storageAccountName')]"
}
},
"identity": "[if(variables('createManagedIdentity'), variables('managedIdentityType'), json('null'))]"
},
{
"name": "[parameters('storageAccountName')]",
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"location": "[resourceGroup().location]",
"properties": {
"supportsHttpsTrafficOnly": "true"
},
"condition": "[parameters('storageAccountConfirm')]",
"dependsOn": [
"[parameters('fhirServiceName')]"
],
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"environmentName": "[parameters('tagName')]",
"test-account-rg": "true"
}
}
],
"outputs": {
}
}
Implementación de una plantilla de ARM
Puede implementar la plantilla de ARM mediante dos opciones: PowerShell o la CLI.
El código de ejemplo que se proporciona a continuación usa la plantilla en la subcarpeta "templates" de la subcarpeta "src". Es posible que desee cambiar la ruta de acceso de ubicación para hacer referencia al archivo de plantilla correctamente.
El proceso de implementación tarda unos minutos en completarse. Tome nota de los nombres del servicio FHIR y del grupo de recursos, que usará más adelante.
Implementación de la plantilla: mediante PowerShell
Ejecute el código en PowerShell localmente, en Visual Studio Code o en Azure Cloud Shell, para implementar el servicio FHIR.
Si no ha iniciado sesión en Azure, use "Conectar-AzAccount" para iniciar sesión. Una vez que haya iniciado sesión, use "Get-AzContext" para comprobar la suscripción y el inquilino que desea usar. Si es necesario, puede cambiar la suscripción y el inquilino.
Puede crear un nuevo grupo de recursos o usar uno existente omitiendo el paso o comentando la línea a partir de "New-AzResourceGroup".
### variables
$resourcegroupname="your resource group"
$location="South Central US"
$workspacename="your workspace name"
$fhirservicename="your fhir service name"
$tenantid="xxx"
$subscriptionid="xxx"
$storageaccountname="storage account name"
$storageaccountconfirm=1
### login to azure
Connect-AzAccount
#Connect-AzAccount SubscriptionId $subscriptionid
Set-AzContext -Subscription $subscriptionid
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid
#Get-AzContext
### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $location
### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateFile "src/templates/fhirtemplate.json" -region $location -workspaceName $workspacename -fhirServiceName $fhirservicename -tenantid $tenantid -storageAccountName $storageaccountname -storageAccountConfirm $storageaccountconfirm
Examen de los recursos implementados
Para comprobar que el servicio FHIR está activo y en ejecución, abra el explorador y vaya a https://<yourfhir servic>.azurehealthcareapis.com/metadata
. Si la instrucción de funcionalidad se muestra o descarga automáticamente, la implementación se realiza correctamente.
Limpiar los recursos
Cuando el recurso ya no sea necesario, ejecute el código siguiente para eliminar el grupo de recursos.
$resourceGroupName = “your resource group name”
Remove-AzResourceGroup -Name $resourceGroupName
Pasos siguientes
En esta guía de inicio rápido, ha implementado el servicio FHIR en Azure Health Data Services mediante una plantilla de ARM. Para obtener más información sobre las características compatibles con el servicio FHIR, consulte.
FHIR® es una marca registrada de HL7 y se usa con su permiso.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de