Überprüfen von FHIR-Ressourcen anhand von Profilen in Azure Health Data Services

In den Speicherprofilen im Artikel des FHIR-Diensts haben Sie die Grundlagen der FHIR-Profile erläutert und gespeichert. Mit dem FHIR-Dienst in Azure Health Data Services (hiermit als FHIR-Dienst bezeichnet) können Ressourcen anhand von Profilen überprüft werden, 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 im FHIR-Dienst über die erwarteten Attribute und Werte verfügen. Informationen zum Validierungsvorgang finden Sie unter HL7 FHIR-Spezifikation. Gemäß Spezifikation kann der Modus mit $validateangegeben werden, z. B. erstellen und aktualisieren:

  • create: Azure API for FHIR überprüft, ob der Profilinhalt von den vorhandenen Ressourcen eindeutig ist und ob die Erstellung als neue Ressource akzeptabel ist.
  • update: Überprüft, ob es sich beim Profil um ein Update für die nominierte vorhandene Ressource handelt (das heißt, es werden keine Änderungen an den unveränderlichen Feldern vorgenommen).

Es gibt verschiedene Möglichkeiten, Ressourcen zu überprüfen:

  • Option 1: Überprüfen Einer vorhandenen Ressource mit Validierungsvorgang.
  • Option 2: Überprüfen sie eine neue Ressource mit dem Validierungsvorgang.
  • Option 3: Überprüfen Sie die Ressource CREATE/UPDATE mithilfe des Headers.

Bei erfolgreicher Überprüfung einer vorhandenen/neuen Ressource mit dem Überprüfungsvorgang wird die Ressource nicht im FHIR-Dienst beibehalten. Verwenden Sie Option 3: Überprüfen auf Ressource CREATE/UPDATE mithilfe des Headers, um eine erfolgreich überprüfte Ressource im FHIR-Dienst beizubehalten.

FHIR Service gibt immer ein OperationOutcome als Validierungsergebnisse für $validate Vorgang zurück. Der FHIR-Dienst führt eine Überprüfung in zwei Schritten durch, sobald eine Ressource an $validate Endpunkt übergeben wurde. Der erste Schritt ist eine grundlegende Überprüfung, um sicherzustellen, dass Ressourcen analysiert werden können. Während der Ressourcenanalyse müssen einzelne Fehler behoben werden, bevor sie mit dem nächsten Schritt fortfahren. Nachdem die Ressource erfolgreich analysiert wurde, wird die vollständige Überprüfung im zweiten Schritt durchgeführt.

Hinweis

Alle Wertesätze, die für die Validierung verwendet werden sollen, müssen auf den FHIR-Server hochgeladen werden. Dies umfasst alle Valuesets, die Teil der FHIR-Spezifikation sind, sowie alle in Implementierungshandbüchern definierten ValueSets. Es werden nur vollständig erweiterte Valuesets unterstützt, die eine vollständige Liste aller Codes enthalten. ValueSet-Definitionen, die auf externe Quellen verweisen, werden nicht unterstützt.

Option 1: Überprüfen einer vorhandenen Ressource

Um eine vorhandene Ressource zu überprüfen, verwenden Sie $validate in einer GET Anforderung:

GET http://<your FHIR service base URL>/{resource}/{resource ID}/$validate

Beispiel:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/a6e11662-def8-4dde-9ebc-4429e68d130e/$validate

In diesem Beispiel überprüfen Sie die vorhandene Patientenressource a6e11662-def8-4dde-9ebc-4429e68d130e mit der Basisressource Patient. Wenn es gültig ist, erhalten Sie ein OperationOutcome 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 das folgende 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 entsprach die Ressource nicht dem bereitgestellten Patientenprofil, was einen Wert für den Patientenbezeichner und das 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

Beispiel:

POST https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/$validate

Diese Anforderung überprüft zunächst die Ressource. Die neue Ressource, die Sie in der Anforderung angeben, wird nach der Überprüfung erstellt. Der Server gibt immer ein OperationOutcome als Ergebnis zurück.

Option 3: Überprüfen der Ressource CREATE/UPDATE mithilfe des Headers

Sie können auswählen, wann Sie Ihre Ressource überprüfen möchten, z. B. für ressource CREATE oder UPDATE. Standardmäßig ist der FHIR-Dienst so konfiguriert, dass die Überprüfung für die Ressource Create/Updatedeaktiviert wird. Diese Funktion ermöglicht die Überprüfung auf mithilfe Create/Updatedes Headers x-ms-profile-validation . Legen Sie "x-ms-profile-validation" für die Überprüfung auf true fest.

Hinweis

Im Open-Source-FHIR-Dienst können Sie die Serverkonfigurationseinstellung unter 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 die Validierungswarnung als Fehler gemeldet.

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie Ressourcen mithilfe von $validateProfilen überprüfen. Weitere Informationen zu den anderen unterstützten Features des FHIR-Diensts finden Sie unter

FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.