Share via


Archiviare i profili nel servizio FHIR

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.

Il servizio FHIR in Servizi dati di integrità di Azure (denominato servizio 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 quali elementi una risorsa ha e quali valori questi elementi possono accettare.

Di seguito sono riportati alcuni esempi di come i profili possono modificare la risorsa di base:

  • Limitare la cardinalità: ad esempio, è possibile impostare la cardinalità massima per 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}

Ad esempio:

  • 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 di massa corporea (BMI).
  • http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance è un profilo us Core che imposta le aspettative minime per AllergyIntolerance 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 risorsa "Paziente", con http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Patient profilo.

{
  "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 sono specificati anche da varie guide all'implementazione (IG). Di seguito sono elencati alcuni gruppi di disponibilità comuni. Per altre informazioni, visitare il sito IG specifico per altre informazioni sull'IG e sui profili definiti al suo interno:

Nota

Il servizio FHIR non archivia profili dalle guide di implementazione per impostazione predefinita. Sarà necessario caricarli nel servizio FHIR.

Accesso ai profili e archiviazione dei profili

Archiviazione dei profili

Per archiviare i profili nel servizio FHIR, è possibile PUTStructureDefinition usare il contenuto del profilo nel corpo della richiesta. Un aggiornamento standard PUT o 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 FHIR service base URL>/StructureDefinition/profile-id

or

Aggiornamento condizionale: PUT http://<your FHIR service 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://<your FHIR service base URL>/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 di base degli Stati Uniti. 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 FHIR service base URL>/StructureDefinition?url={canonicalUrl}, dove {canonicalUrl} è l'URL canonico del profilo.

Ad esempio, se si vuole visualizzare il profilo della risorsa Obiettivo principale degli Stati Uniti:

GET https://<your FHIR service base URL>/StructureDefinition?url=http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal

Verrà restituita la risorsa per il StructureDefinition profilo obiettivo principale degli Stati Uniti, che inizierà come segue:

{
  "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 nel servizio FHIR.

Il servizio FHIR non restituisce StructureDefinition istanze per i profili di base, ma possono essere trovati facilmente nel sito Web HL7, ad esempio:

  • 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 del servizio FHIR. Il servizio FHIR aggiorna l'istruzione di funzionalità con i dettagli dei profili archiviati in forma di:

  • CapabilityStatement.rest.resource.profile
  • CapabilityStatement.rest.resource.supportedProfile

Ad esempio, se si usa POST 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 FHIR service base URL>/metadata

Verrà restituito un CapabilityStatement oggetto che include le informazioni seguenti nel profilo us Core Patient caricato nel server 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 terminologico è un set di funzioni che possono eseguire operazioni su "terminologie mediche", ad esempio convalidare codici, tradurre codici, espandere set di valori e così via. Il servizio FHIR non supporta il servizio terminologia. Le informazioni per le operazioni supportate ($), i tipi di risorse e le interazioni sono disponibili in CapabilityStatement del servizio. I tipi di risorsa ValueSet, StructureDefinition e CodeSystem sono supportati con operazioni CRUD di base e Ricerca (come definito in CapabilityStatement) oltre a essere sfruttati dal sistema per l'uso in $validate.

I valueSet possono contenere un set complesso di regole e riferimenti esterni. Attualmente, il servizio considererà solo i codici inline pre-espansi. I clienti devono caricare i valueSet supportati nel server FHIR prima di usare l'operazione di $validate. Le risorse ValueSet devono essere caricate nel server FHIR, usando PUT o l'aggiornamento condizionale, come indicato nella sezione Archiviazione dei profili in precedenza.

Passaggi successivi

In questo articolo sono stati illustrati i profili FHIR. Si apprenderà quindi come usare $validate per assicurarsi che le risorse siano conformi a questi profili.

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.