Archiviare i profili nell'API di Azure per FHIR
Importante
L'API di Azure per FHIR verrà ritirata il 30 settembre 2026. Seguire le strategie di migrazione per passare al servizio FHIR® di Servizi per i dati sanitari di Azure entro tale data. A causa del ritiro dell'API di Azure per FHIR, le nuove distribuzioni non saranno consentite a partire dal 1° aprile 2025. Il servizio FHIR di Servizi per i dati sanitari di Azure è la versione evoluta dell'API di Azure per FHIR che consente ai clienti di gestire i servizi FHIR, DICOM e MedTech con integrazioni in altri servizi di Azure.
HL7 Fast Healthcare Interoperability Resources (FHIR®) definisce un modo standard e interoperabile per archiviare e scambiare dati sanitari. Anche all'interno della specifica FHIR di base, può essere utile definire altre regole o estensioni in base al contesto usato da FHIR. Per tali usi specifici del contesto di FHIR, i profili FHIR vengono usati per il livello aggiuntivo di specifiche. Il profilo FHIR consente di restringere e personalizzare le definizioni delle risorse usando vincoli ed estensioni.
L'API di Azure per FHIR consente di convalidare le risorse rispetto ai profili per verificare se le risorse sono conformi ai profili. Questo articolo illustra le nozioni di base dei profili FHIR e come archiviarli. Per altre informazioni sui profili FHIR al di fuori di questo articolo, visitare HL7.org.
Profilo FHIR: nozioni di base
Un profilo imposta un contesto aggiuntivo sulla risorsa rappresentata come StructureDefinition
risorsa. Un StructureDefinition
oggetto definisce un set di regole sul contenuto di una risorsa o di un tipo di dati, ad esempio gli elementi che una risorsa ha e quali valori possono accettare questi elementi.
Ecco alcuni esempi di come i profili possono modificare la risorsa di base:
- Limitare la cardinalità: ad esempio, è possibile impostare la cardinalità massima su un elemento su 0, il che significa che l'elemento viene escluso nel contesto specifico.
- Limitare il contenuto di un elemento a un singolo valore fisso.
- Definire le estensioni necessarie per la risorsa.
Un StructureDefinition
oggetto viene identificato dal relativo URL canonico: http://hl7.org/fhir/StructureDefinition/{profile}
.
Di seguito sono riportati alcuni esempi.
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
è un profilo di base che richiede informazioni sull'indirizzo registrato di nascita del paziente.http://hl7.org/fhir/StructureDefinition/bmi
è un altro profilo di base che definisce come rappresentare le osservazioni dell'indice BMI (Body Mass Index).http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
è un profilo us Core che imposta le aspettative minime perAllergyIntolerance
la risorsa associata a un paziente e identifica campi obbligatori, ad esempio estensioni e set di valori.
Quando una risorsa è conforme a un profilo, il profilo viene specificato all'interno dell'elemento profile
della risorsa. Di seguito è riportato un esempio dell'inizio di una Patient
risorsa, con il profilo http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient.
{
"resourceType" : "Patient",
"id" : "ExamplePatient1",
"meta" : {
"lastUpdated" : "2020-10-30T09:48:01.8512764-04:00",
"source" : "Organization/PayerOrganizationExample1",
"profile" : [
"http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient"
]
},
Nota
I profili devono basarsi sulla risorsa di base e non possono essere in conflitto con la risorsa di base. Ad esempio, se un elemento ha una cardinalità pari a 1..1, il profilo non può renderlo facoltativo.
I profili vengono specificati da varie guide all'implementazione (IG). Di seguito è riportato un elenco di indirizzi IG comuni. Per altre informazioni, visitare il sito IG specifico per altre informazioni sull'IG e sui profili definiti al suo interno.
Nota
L'API di Azure per FHIR per impostazione predefinita non archivia profili dalle guide all'implementazione. Sarà necessario caricarli nell'API di Azure per FHIR.
Accesso ai profili e archiviazione dei profili
Archiviazione dei profili
Per archiviare i profili nell'API StructureDefinition
di Azure per FHIR, è possibile PUT
usare il contenuto del profilo nel corpo della richiesta. Un aggiornamento o un aggiornamento condizionale sono entrambi metodi validi per archiviare i profili nel servizio FHIR. Usare l'aggiornamento condizionale se non si è certi di quale usare.
Standard PUT
: PUT http://<your Azure API for FHIR base URL>/StructureDefinition/profile-id
or
Aggiornamento condizionale: PUT http://<your Azure API for FHIR base URL>/StructureDefinition?url=http://sample-profile-url
{
"resourceType" : "StructureDefinition",
"id" : "profile-id",
"url": "http://sample-profile-url"
…
}
Ad esempio, se si vuole archiviare il us-core-allergyintolerance
profilo, si userà il comando rest seguente con il profilo di intolleranza alle allergie us Core nel corpo. È stato incluso un frammento di questo profilo per l'esempio.
PUT https://myAzureAPIforFHIR.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance
{
"resourceType" : "StructureDefinition",
"id" : "us-core-allergyintolerance",
"text" : {
"status" : "extensions"
},
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance",
"version" : "3.1.1",
"name" : "USCoreAllergyIntolerance",
"title" : "US Core AllergyIntolerance Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-06-29",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the AllergyIntolerance resource for the minimal set of data to query and retrieve allergy information.",
Per altri esempi, vedere il file REST di esempio US Core nel sito open source che illustra come archiviare i profili US Core. Per ottenere i profili più aggiornati, è necessario ottenere i profili direttamente da HL7 e la guida all'implementazione che li definisce.
Visualizzazione dei profili
È possibile accedere ai profili personalizzati esistenti usando una GET
richiesta, GET http://<your Azure API for FHIR base URL>/StructureDefinition?url={canonicalUrl}
, dove {canonicalUrl}
è l'URL canonico del profilo.
Ad esempio, usare quanto segue se si vuole visualizzare un profilo di risorsa obiettivo principale degli Stati Uniti.
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal
Viene restituita la risorsa per il StructureDefinition
profilo obiettivo principale degli Stati Uniti, che inizia come indicato di seguito.
{
"resourceType" : "StructureDefinition",
"id" : "us-core-goal",
"url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal",
"version" : "3.1.1",
"name" : "USCoreGoalProfile",
"title" : "US Core Goal Profile",
"status" : "active",
"experimental" : false,
"date" : "2020-07-21",
"publisher" : "HL7 US Realm Steering Committee",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.healthit.gov"
}
]
}
],
"description" : "Defines constraints and extensions on the Goal resource for the minimal set of data to query and retrieve a patient's goal(s).",
}
Nota
Verranno visualizzati solo i profili caricati nell'API di Azure per FHIR.
L'API di Azure per FHIR non restituisce StructureDefinition
istanze per i profili di base, ma sono disponibili nel sito Web HL7.
http://hl7.org/fhir/Observation.profile.json.html
http://hl7.org/fhir/Patient.profile.json.html
Profili nell'istruzione capability
Elenca Capability Statement
tutti i possibili comportamenti dell'API di Azure per FHIR. L'API di Azure per FHIR aggiorna l'istruzione di funzionalità con i dettagli dei profili archiviati nei moduli seguenti.
CapabilityStatement.rest.resource.profile
CapabilityStatement.rest.resource.supportedProfile
Ad esempio, se si salva un profilo us Core Patient, che inizia come segue.
{
"resourceType": "StructureDefinition",
"id": "us-core-patient",
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient",
"version": "3.1.1",
"name": "USCorePatientProfile",
"title": "US Core Patient Profile",
"status": "active",
"experimental": false,
"date": "2020-06-27",
"publisher": "HL7 US Realm Steering Committee",
Inviare una GET
richiesta per metadata
:
GET http://<your Azure API for FHIR base URL>/metadata
Viene restituito un oggetto CapabilityStatement
che include le informazioni seguenti sul profilo us Core Patient caricato nell'API di Azure per FHIR.
...
{
"type": "Patient",
"profile": "http://hl7.org/fhir/StructureDefinition/Patient",
"supportedProfile":[
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
],
Associazioni nei profili
Un servizio di terminologia è un set di funzioni che possono eseguire operazioni su "terminologie mediche", ad esempio la convalida di codici, la conversione di codici, l'espansione di set di valori e altre operazioni.
Il servizio API di Azure per FHIR non supporta il servizio terminologia. Le informazioni per le operazioni supportate ($
), i tipi di risorse e le interazioni sono disponibili in CapabilityStatement
. I tipi di ValueSet
StructureDefinition
risorse e CodeSystem
sono supportati con operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) di base e Ricerca (come definito in CapabilityStatement
), nonché sfruttati dal sistema per l'uso in $validate
.
I valueSet possono contenere un set complesso di regole e riferimenti esterni. Attualmente, il servizio considera solo i codici inline pre-espansi. I clienti devono caricare i valueSet supportati nel server FHIR prima di usare l'operazione $validate
. Le ValueSet
risorse devono essere caricate nel server FHIR, usando PUT o l'aggiornamento condizionale, come indicato nella sezione Relativa all'archiviazione dei profili .
Passaggi successivi
In questo articolo sono stati illustrati i profili FHIR. Successivamente, è possibile apprendere come usare $validate
per assicurarsi che le risorse siano conformi a questi profili.
Nota
FHIR® è un marchio registrato di HL7 ed è usato con l'autorizzazione di HL7.