Nasazení služby Azure Health Data Services pomocí Azure Bicep
V tomto článku se dozvíte, jak vytvořit službu Azure Health Data Services, včetně pracovních prostorů, služeb FHIR, služeb DICOM a služby MedTech pomocí Azure Bicep. Skripty Bicep použité v tomto článku si můžete prohlédnout a stáhnout v ukázkách služby Azure Health Data Services.
Co je Azure Bicep
Bicep je založený na šabloně Azure Resource Manageru (ARM). Bicep okamžitě podporuje všechny verze Preview a obecně dostupné verze (GA) pro služby Azure, včetně služeb Azure Health Data Services. Během vývoje můžete pomocí příkazu vygenerovat az bicep build
soubor šablony JSON ARM. Naopak pomocí příkazu můžete dekompilovat soubory JSON do Bicep az bicep decompile
. Během nasazování rozhraní příkazového řádku Bicep převede soubor Bicep na JSON šablony ARM.
Můžete pokračovat v práci se šablonami JSON ARM nebo pomocí Bicep vyvíjet šablony ARM. Další informace o Bicep naleznete v tématu Co je Bicep.
Poznámka:
Šablony a skripty v článku se testují v editoru Visual Studio Code ve verzi Public Preview. Některé změny můžou být nezbytné k přizpůsobení kódu pro spuštění ve vašem prostředí.
Definování parametrů a proměnných
Použití parametrů a proměnných Bicep místo pevných názvů a dalších hodnot umožňuje ladit a opakovaně používat šablony Bicep.
Nejprve definujeme parametry s parametrem klíčového slova pro pracovní prostor, službu FHIR, službu DICOM, službu MedTech. Také definujeme parametry pro předplatné Azure a tenanta Microsoft Entra. Používají se v příkazovém řádku rozhraní příkazového řádku s možností --parameters.
Pak definujeme proměnné pro prostředky s klíčovým slovem var. Také definujeme proměnné pro vlastnosti, jako je autorita a cílová skupina služby FHIR. Zadají se a používají interně v šabloně Bicep a dají se použít v kombinaci parametrů, funkcí Bicep a dalších proměnných. Na rozdíl od parametrů se v příkazovém řádku rozhraní příkazového řádku nepoužívají.
Je důležité si uvědomit, že jedna funkce a prostředí Bicep jsou potřeba k určení adresy URL pro přihlášení. https://login.microsoftonline.com
Další informace o funkcích Bicep najdete v tématu Funkce nasazení pro Bicep.
//Define parameters
param workspaceName string
param fhirName string
param dicomName string
param medtechName string
param tenantId string
param location string
//Define variables
var fhirservicename = '${workspaceName}/${fhirName}'
var dicomservicename = '${workspaceName}/${dicomName}'
var medtechservicename = '${workspaceName}/${medtechName}'
var medtechdestinationname = '${medtechservicename}/output1'
var loginURL = environment().authentication.loginEndpoint
var authority = '${loginURL}${tenantId}'
var audience = 'https://${workspaceName}-${fhirName}.fhir.azurehealthcareapis.com'
Vytvoření šablony pracovního prostoru
K definování prostředku použijte prostředek klíčového slova. U prostředku pracovního prostoru obsahují požadované vlastnosti název a umístění pracovního prostoru. V šabloně se použije umístění skupiny prostředků, ale pro umístění můžete zadat jinou hodnotu. Pro název prostředku můžete odkazovat na definovaný parametr nebo proměnnou.
Další informace o prostředku a modulu najdete v tématu Deklarace prostředků v Bicep.
//Create a workspace
resource exampleWorkspace 'Microsoft.HealthcareApis/workspaces@2021-06-01-preview' = {
name: workspaceName
location: resourceGroup().location
}
Pokud chcete použít nebo odkazovat na existující pracovní prostor bez vytvoření pracovního prostoru, použijte existující klíčové slovo. Zadejte název prostředku pracovního prostoru a název existující instance pracovního prostoru pro vlastnost name. Všimněte si, že v šabloně se používá jiný název existujícího prostředku pracovního prostoru, ale to není požadavek.
//Use an existing workspace
resource exampleExistingWorkspace 'Microsoft.HealthcareApis/workspaces@2021-06-01-preview' existing = {
name: workspaceName
}
Teď jste připraveni nasadit prostředek pracovního prostoru pomocí az deployment group create
příkazu. Můžete ho také nasadit společně s dalšími prostředky, jak je popsáno dále v tomto článku.
Vytvoření šablony služby FHIR
Pro prostředek služby FHIR zahrnují požadované vlastnosti název instance služby, umístění, druh a spravovanou identitu. Má také závislost na prostředku pracovního prostoru. Pro samotnou službu FHIR zahrnují požadované vlastnosti autoritu a cílovou skupinu, které jsou zadány v elementu properties.
resource exampleFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-11-01' = {
name: fhirservicename
location: resourceGroup().location
kind: 'fhir-R4'
identity: {
type: 'SystemAssigned'
}
dependsOn: [
exampleWorkspace
//exampleExistingWorkspace
]
properties: {
accessPolicies: []
authenticationConfiguration: {
authority: authority
audience: audience
smartProxyEnabled: false
}
}
}
Podobně můžete použít nebo odkazovat na existující službu FHIR pomocí existujícího klíčového slova.
//Use an existing FHIR service
resource exampleExistingFHIR 'Microsoft.HealthcareApis/workspaces/fhirservices@2021-11-01' existing = {
name: fhirservicename
}
Vytvoření šablony služby DICOM
Pro prostředek služby DICOM zahrnují požadované vlastnosti název instance služby a umístění a závislost na typu prostředku pracovního prostoru.
//Create DICOM service
resource exampleDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-11-01' = {
name: dicomservicename
location: resourceGroup().location
dependsOn: [
exampleWorkspace
]
properties: {}
}
Podobně můžete použít nebo odkazovat na existující službu DICOM pomocí existujícího klíčového slova.
//Use an existing DICOM service
resource exampleExistingDICOM 'Microsoft.HealthcareApis/workspaces/dicomservices@2021-11-01' existing = {
name: dicomservicename
}
Vytvoření šablony služby MedTech
Pro prostředek služby MedTech zahrnují požadované vlastnosti název služby MedTech, umístění, spravovanou identitu a závislost na pracovním prostoru. Pro samotnou službu MedTech zahrnují požadované vlastnosti obor názvů služby Azure Event Hubs, Event Hubs, skupinu příjemců služby Event Hubs a mapování zařízení. V šabloně se například používá mapování zařízení srdeční frekvence.
//Create IoT connector
resource exampleIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors@2021-11-01' = {
name: iotconnectorname
location: resourceGroup().location
identity: {
type: 'SystemAssigned'
}
dependsOn: [
exampleWorkspace
//exampleExistingWorkspace
]
properties: {
ingestionEndpointConfiguration: {
eventHubName: 'eventhubnamexxx'
consumerGroup: 'eventhubconsumergroupxxx'
fullyQualifiedEventHubNamespace: 'eventhubnamespacexxx.servicebus.windows.net'
}
deviceMapping: {
content: {
templateType: 'CollectionContent'
template: [
{
templateType: 'JsonPathContent'
template: {
typeName: 'heartrate'
typeMatchExpression: '$..[?(@heartrate)]'
deviceIdExpression: '$.deviceid'
timestampExpression: '$.measurementdatetime'
values: [
{
required: 'true'
valueExpression: '$.heartrate'
valueName: 'Heart rate'
}
]
}
}
]
}
}
}
}
Podobně můžete použít nebo odkazovat na existující službu MedTech pomocí existujícího klíčového slova.
//Use an existing IoT
resource exampleExistingIoT 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-11-01' existing = {
name: iotconnectorname
}
Služba MedTech vyžaduje podřízený prostředek, cíl a aktuálně podporuje pouze cíl služby FHIR. Pro cílový prostředek služby MedTech obsahují požadované vlastnosti název, umístění a závislost na službě MedTech. Pro cíl služby FHIR zahrnují požadované vlastnosti typ řešení, který má hodnotu Create nebo Lookup, ID prostředku služby FHIR a typ prostředku FHIR. V šabloně se například používá mapování srdeční frekvence pro prostředek pozorování FHIR.
//Create IoT destination
resource exampleIoTDestination 'Microsoft.HealthcareApis/workspaces/iotconnectors/fhirdestinations@2021-11-01' = {
name: iotdestinationname
location: resourceGroup().location
dependsOn: [
exampleIoT
//exampleExistingIoT
]
properties: {
resourceIdentityResolutionType: 'Create'
fhirServiceResourceId: exampleFHIR.id //exampleExistingFHIR.id
fhirMapping: {
content: {
templateType: 'CollectionFhirTemplate'
template: [
{
templateType: 'CodeValueFhir'
template: {
codes: [
{
code: '8867-4'
system: 'http://loinc.org'
display: 'Heart rate'
}
]
periodInterval: 60
typeName: 'heartrate'
value: {
defaultPeriod: 5000
unit: 'count/min'
valueName: 'hr'
valueType: 'SampledData'
}
}
}
]
}
}
}
}
Nasazení služby Azure Health Data Services
Pomocí příkazu můžete az deployment group create
nasadit jednotlivé šablony Bicep nebo kombinované šablony podobně jako nasazovat prostředky Azure pomocí šablon JSON. Zadejte název skupiny prostředků a do příkazového řádku zahrňte parametry. Pomocí možnosti --parameters zadejte dvojici parametrů a hodnot jako parametr = hodnota a oddělte dvojice parametrů a hodnot mezerou, pokud je definováno více než jeden parametr.
Pro předplatné a tenanta Azure můžete zadat hodnoty nebo je pomocí příkazů rozhraní příkazového řádku získat z aktuální relace přihlašování.
deploymentname=xxx
resourcegroupname=rg-$deploymentname
location=centralus
workspacename=ws$deploymentname
fhirname=fhir$deploymentname
dicomname=dicom$deploymentname
medtechname=medtech$deploymentname
bicepfilename=ahds.bicep
subscriptionid=$(az account show --query id --output tsv)
tenantid=$(az account show --subscription $subscriptionid --query tenantId --output tsv)
az group create --name $resourcegroupname --location $location
az deployment group create --resource-group $resourcegroupname --template-file $bicepfilename --parameters workspaceName=$workspacename fhirName=$fhirname dicomName=$dicomname medtechName=$medtechname tenantId=$tenantid location=$location
Všimněte si, že název podřízeného prostředku, jako je služba FHIR, obsahuje nadřazený název prostředku a je vyžadována vlastnost "dependsOn". Pokud je však podřízený prostředek vytvořen v rámci nadřazeného prostředku, jeho název nemusí obsahovat název nadřazeného prostředku a vlastnost "dependsOn" není nutná. Další informace o vnořených prostředcích najdete v tématu Nastavení názvu a typu podřízených prostředků v Bicep.
Ladění šablon Bicep
Šablony Bicep můžete ladit v editoru Visual Studio Code nebo v jiných prostředích a řešit problémy na základě odpovědi. Během ladění můžete také zkontrolovat protokol aktivit pro konkrétní prostředek ve skupině prostředků.
Kromě toho můžete použít výstupní hodnotu pro ladění nebo jako součást odpovědi nasazení. Můžete například definovat dvě výstupní hodnoty pro zobrazení hodnot autority a cílové skupiny pro službu FHIR v odpovědi. Další informace najdete v tématu Výstupy v Bicep.
output stringOutput1 string = authority
output stringOutput2 string = audience
Další kroky
V tomto článku jste se naučili vytvářet datové služby Azure Health, včetně pracovních prostorů, služeb FHIR, služeb DICOM a služeb MedTech pomocí Bicep. Dozvěděli jste se také, jak vytvářet a ladit šablony Bicep. Další informace o službě Azure Health Data Services najdete v tématu
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.