Freigeben über


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 $validateangegeben 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/Updatedeaktiviert 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 $validateProfilen ü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.