Teilen über


Überprüfen von FHIR-Ressourcen anhand von Profilen 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 (hiermit als FHIR-Dienst bezeichnet) 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 im FHIR-Dienst über die erwarteten Attribute und Werte verfügen. Informationen zum Überprüfen des Vorgangs 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 Überprüfungsvorgang.
  • Option 2: Überprüfen einer neuen Ressource mit Überprüfungsvorgang.
  • Option 3: Überprüfen auf Ressource CREATE/UPDATE mithilfe des Headers.

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

Der FHIR-Dienst gibt immer die OperationOutcome 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 wird – 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 die Ressource erfolgreich analysiert wurde, wird die vollständige Überprüfung im zweiten 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ücher 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 zuerst 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 CREATE/UPDATE mithilfe des 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 Create/Updateauf , mithilfe der x-ms-profile-validation Kopfzeile. Legen Sie für die Überprüfung "x-ms-profile-validation" auf "true" fest.

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 "value strict". Durch Festlegen dieses Headers wird die Ü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

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