Validieren von FHIR-Ressourcen gegen Profile in Azure Health Data Services
In den Filialprofilen im FHIR-Dienstartikel® haben Sie die Grundlagen von FHIR-Profilen durchlaufen und gespeichert. Der FHIR-Dienst in Azure Health Data Services ermöglicht die Überprüfung von Ressourcen anhand von Profilen, um festzustellen, ob die Ressourcen den Profilen entsprechen. In diesem Artikel erfahren Sie, wie $validate
Sie Ressourcen anhand von Profilen überprüfen können.
$validate
ist ein Vorgang in Fast Healthcare Interoperability Resources (FHIR), mit dem Sie sicherstellen können, dass eine FHIR-Ressource den Basisressourcenanforderungen oder einem angegebenen Profil entspricht. Dieser Vorgang stellt sicher, dass die Daten in einem FHIR-Dienst über die erwarteten Attribute und Werte verfügen. Informationen zum Überprüfungsvorgang finden Sie unter HL7 FHIR Specification.
Pro Spezifikation kann der Modus mit $validate
angegeben werden, z. B. erstellen und aktualisieren:
create
: Der FHIR-Dienst überprüft, ob der Profilinhalt von den vorhandenen Ressourcen eindeutig ist und dass es akzeptabel ist, als neue Ressource erstellt zu werden.update
: Überprüft, ob das Profil eine Aktualisierung der nominierten vorhandenen Ressource ist (d. h., es werden keine Änderungen an den unveränderlichen Feldern vorgenommen).
Es gibt verschiedene Möglichkeiten, wie Sie die Ressource überprüfen können:
- Option 1: Überprüfen einer vorhandenen Ressource mit dem Überprüfungsvorgang.
- Option 2: Überprüfen einer neuen Ressource mit dem Überprüfungsvorgang.
- Option 3: Überprüfen auf Ressource ERSTELLEN oder AKTUALISIEREN mithilfe eines Headers.
Bei der erfolgreichen Überprüfung einer vorhandenen oder neuen Ressource mit dem Überprüfungsvorgang wird die Ressource nicht im FHIR-Dienst beibehalten. Verwenden Sie Option 3, um validierte Ressourcen erfolgreich für den FHIR-Dienst beizubehalten.
Der FHIR-Dienst gibt immer eine OperationOutcome
als Validierungsergebnisse für einen $validate-Vorgang zurück. Sobald eine Ressource an $validate Endpunkt übergeben wird, führt der FHIR-Dienst zwei Schritte aus. Der erste Schritt ist eine grundlegende Überprüfung, um sicherzustellen, dass die Ressource analysiert werden kann. Während der Ressourcenanalyse müssen einzelne Fehler behoben werden, bevor Sie mit dem nächsten Schritt fortfahren. Sobald eine Ressource erfolgreich analysiert wurde, wird die vollständige Überprüfung als zweiter Schritt durchgeführt.
Hinweis
Alle Wertesätze, die für die Überprüfung verwendet werden sollen, müssen auf den FHIR-Server hochgeladen werden. Dazu gehören alle Valuesets, die Teil der FHIR-Spezifikation sind, sowie alle in Implementierungshandbüchern definierten ValueSets. Nur vollständig erweiterte Valuesets, die eine vollständige Liste aller Codes enthalten, werden unterstützt. Alle ValueSet-Definitionen, die auf externe Quellen verweisen, werden nicht unterstützt.
Option 1: Überprüfen einer vorhandenen Ressource
Verwenden Sie $validate
zum Überprüfen einer vorhandenen Ressource in einer GET
Anforderung.
GET http://<your FHIR service base URL>/{resource}/{resource ID}/$validate
Zum Beispiel:
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate
In diesem Beispiel überprüfen Sie die vorhandene Patient-Ressource a6e11662-def8-4dde-9ebc-4429e68d130e
für die Basis-Patient-Ressource. Wenn dies gültig ist, erhalten Sie ein OperationOutcome
Beispiel wie das folgende Codebeispiel.
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "information",
"code": "informational",
"diagnostics": "All OK"
}
]
}
Wenn die Ressource ungültig ist, erhalten Sie einen Fehlercode und eine Fehlermeldung mit Details dazu, warum die Ressource ungültig ist. Ein Beispiel OperationOutcome
wird mit Fehlermeldungen zurückgegeben und könnte wie im folgenden Codebeispiel aussehen.
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "invalid",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
"code": "1028"
}
],
"text": "Instance count for 'Patient.identifier.value' is 0, which is not within the specified cardinality of 1..1"
},
"location": [
"Patient.identifier[1]"
]
},
{
"severity": "error",
"code": "invalid",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
"code": "1028"
}
],
"text": "Instance count for 'Patient.gender' is 0, which is not within the specified cardinality of 1..1"
},
"location": [
"Patient"
]
}
]
}
In diesem Beispiel stimmte die Ressource nicht mit dem bereitgestellten Patientenprofil überein, das einen Patientenbezeichnerwert und ein Geschlecht erforderte.
Wenn Sie ein Profil als Parameter angeben möchten, können Sie die kanonische URL für das Zu überprüfende Profil angeben, z. B. das folgende Beispiel für das HL7-Basisprofil für heartrate
.
GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate
Option 2: Überprüfen einer neuen Ressource
Wenn Sie eine neue Ressource überprüfen möchten, die Sie auf den Server hochladen, können Sie eine POST
Anforderung ausführen.
POST http://<your FHIR service base URL>/{Resource}/$validate
Zum Beispiel:
POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate
Diese Anforderung überprüft die Ressource. Neue Ressource, die Sie in der Anforderung angeben, wird nach der Überprüfung erstellt.
Der Server gibt immer ein OperationOutcome
Ergebnis zurück.
Option 3: Überprüfen auf Ressource ERSTELLEN oder AKTUALISIEREN mithilfe eines Headers
Sie können auswählen, wann Sie Ihre Ressource überprüfen möchten, z. B. auf Ressource CREATE
oder UPDATE
. Standardmäßig ist der FHIR-Dienst so konfiguriert, dass die Überprüfung für die Ressource Create/Update
deaktiviert wird. Diese Funktion ermöglicht die Überprüfung der Create/Update
Verwendung des x-ms-profile-validation
Headers. Für die Überprüfung auf "true" festgelegt x-ms-profile-validation
.
Hinweis
Im Open-Source-FHIR-Dienst können Sie die Serverkonfigurationseinstellung unter den CoreFeatures ändern.
{
"FhirServer": {
"CoreFeatures": {
"ProfileValidationOnCreate": true,
"ProfileValidationOnUpdate": false
}
}
Verwenden Sie zum Aktivieren der strengen Überprüfung den Header "Prefer: handling" mit dem Wert "strict". Durch Festlegen dieses Headers wird eine Überprüfungswarnung als Fehler gemeldet.
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie Ressourcen anhand von Profilen mithilfe von $validate
Profilen überprüfen. Weitere Informationen zu den anderen unterstützten Features des FHIR-Diensts finden Sie unter
Hinweis
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.