Dela via


Distribuera en FHIR-tjänst i Azure Health Data Services – med hjälp av ARM-mall

I den här artikeln får du lära dig hur du distribuerar FHIR-tjänsten i Azure Health Data Services (kallas härmed FHIR-tjänst) med hjälp av Azure Resource Manager-mallen (ARM-mall). Vi tillhandahåller två alternativ med PowerShell eller cli.

En ARM-mall är en JSON-fil som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. I deklarativ syntax beskriver du din avsedda distribution utan att skriva sekvensen med programmeringskommandon för att skapa den.

Förutsättningar

Granska ARM-mallen

Mallen som används i den här artikeln kommer från Azure-snabbstartsmallar.

Mallen definierar tre Azure-resurser:

  • Microsoft.HealthcareApis/workspaces
  • Microsoft.HealthcareApis/workspaces/fhirservices
  • Microsoft.Storage/storageAccounts

Kommentar

Lokal RBAC är inaktuell. Konfigurationen av åtkomstprinciper som är associerad med lokal RBAC i ARM-mallen är inaktuell. Befintliga kunder som använder lokal RBAC måste migrera till Azure RBAC senast i november 2024. Kontakta oss om du har frågor.

Du kan distribuera FHIR-tjänstresursen genom att ta bort arbetsyteresursen, lagringsresursen dependsOn och egenskapen i resursen "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": {
    }
}

Distribuera ARM-mall

Du kan distribuera ARM-mallen med två alternativ: PowerShell eller CLI.

Exempelkoden nedan använder mallen i undermappen "templates" i undermappen "src". Du kanske vill ändra platssökvägen för att referera till mallfilen korrekt.

Distributionsprocessen tar några minuter att slutföra. Anteckna namnen på FHIR-tjänsten och resursgruppen som du ska använda senare.

Distribuera mallen: använda PowerShell

Kör koden i PowerShell lokalt, i Visual Studio Code eller i Azure Cloud Shell för att distribuera FHIR-tjänsten.

Om du inte har loggat in på Azure använder du "Anslut-AzAccount" för att logga in. När du har loggat in använder du "Get-AzContext" för att verifiera den prenumeration och klientorganisation som du vill använda. Du kan ändra prenumerationen och klientorganisationen om det behövs.

Du kan skapa en ny resursgrupp eller använda en befintlig genom att hoppa över steget eller kommentera ut raden som börjar med "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

Granska de distribuerade resurserna

Du kan kontrollera att FHIR-tjänsten är igång genom att öppna webbläsaren och navigera till https://<yourfhir servic>.azurehealthcareapis.com/metadata. Om kapacitetsinstrukeringen visas eller laddas ned automatiskt lyckas distributionen.

Rensa resurserna

När resursen inte längre behövs kör du koden nedan för att ta bort resursgruppen.

$resourceGroupName = “your resource group name”
Remove-AzResourceGroup -Name $resourceGroupName

Nästa steg

I den här snabbstartsguiden har du distribuerat FHIR-tjänsten i Azure Health Data Services med hjälp av en ARM-mall. Mer information om funktioner som stöds av FHIR-tjänsten finns i.

FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.