Ověření prostředků FHIR vůči profilům ve službě Azure Health Data Services

V článku o profilech ve službě FHIR jste si prošli základy profilů FHIR a jejich ukládáním. Služba FHIR ve službě Azure Health Data Services (označovaná jako služba FHIR) umožňuje ověřování prostředků v profilech, aby se zjistilo, jestli jsou prostředky v souladu s profily. Tento článek vás provede postupem ověřování $validate prostředků v profilech.

$validate je operace ve službě Fast Healthcare Interoperability Resources (FHIR®), která umožňuje zajistit, aby prostředek FHIR splňoval požadavky na základní prostředky nebo zadaný profil. Tato operace zajišťuje, že data ve službě FHIR mají očekávané atributy a hodnoty. Informace o operaci ověření najdete ve specifikaci HL7 FHIR. Podle specifikace je možné režim zadat pomocí $validate, například vytvořit a aktualizovat:

  • create: Rozhraní Azure API for FHIR kontroluje, jestli je obsah profilu jedinečný z existujících prostředků a že je přijatelné vytvořit ho jako nový prostředek.
  • update: Zkontroluje, že profil je aktualizací pro nominovaný existující prostředek (to znamená, že se neprovedou žádné změny v neměnných polích).

Existují různé způsoby, jak ověřit prostředek:

  • Možnost 1: Ověření existujícího prostředku pomocí operace ověření
  • Možnost 2: Ověření nového prostředku pomocí operace ověření
  • Možnost 3: Pomocí hlavičky ověřte vytvoření nebo aktualizaci prostředku.

Po úspěšném ověření existujícího nebo nového prostředku pomocí operace ověření se prostředek ve službě FHIR neuchová. Možnost 3: Ověření prostředku CREATE/UPDATE pomocí hlavičky použijte k zachování úspěšně ověřeného prostředku ve službě FHIR.

Služba FHIR vždy vrátí OperationOutcome jako výsledky ověření operace $validate . Služba FHIR provádí dvoustupňové ověření, jakmile se prostředek předá koncovému bodu $validate – prvním krokem je základní ověření, které zajistí, že prostředek je možné analyzovat. Než budete pokračovat k dalšímu kroku, je potřeba během analýzy prostředků opravit jednotlivé chyby. Po úspěšném parsování prostředku se úplné ověření provede jako druhý krok.

Poznámka

Všechny sady hodnot, které se mají použít k ověření, se musí nahrát na server FHIR. To zahrnuje všechny sady hodnot, které jsou součástí specifikace FHIR, a také všechny sady hodnot definované v průvodcích implementací. Podporují se pouze plně rozšířené sady hodnot, které obsahují úplný seznam všech kódů. Žádné definice ValueSet, které odkazují na externí zdroje, nejsou podporovány.

Možnost 1: Ověření existujícího prostředku

K ověření existujícího prostředku použijte $validate v GET žádosti:

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

Příklad:

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

V tomto příkladu ověřujete existující prostředek a6e11662-def8-4dde-9ebc-4429e68d130e Patient proti základnímu prostředku Patient. Pokud je platný, zobrazí OperationOutcome se například následující příklad kódu:

{
    "resourceType": "OperationOutcome",
    "issue": [
        {
            "severity": "information",
            "code": "informational",
            "diagnostics": "All OK"
        }
    ]
}

Pokud prostředek není platný, zobrazí se kód chyby a chybová zpráva s podrobnostmi o tom, proč je prostředek neplatný. Příklad OperationOutcome se vrátí s chybovými zprávami a může vypadat jako následující příklad kódu:

{
    "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"
            ]
        }
    ]
}

V tomto příkladu prostředek neodpovídá zadanému profilu pacienta, který vyžadoval hodnotu identifikátoru a pohlaví pacienta.

Pokud chcete jako parametr zadat profil, můžete zadat kanonický adresu URL pro profil, který se má ověřit, například následující příklad pro základní profil HL7 pro heartrate:

GET https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Observation/12345678/$validate?profile=http://hl7.org/fhir/StructureDefinition/heartrate

Možnost 2: Ověření nového prostředku

Pokud chcete ověřit nový prostředek, který nahráváte na server, můžete zadat POST požadavek:

POST http://<your FHIR service base URL>/{Resource}/$validate

Příklad:

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

Tento požadavek nejprve ověří prostředek. Nový prostředek, který zadáte v požadavku, se vytvoří po ověření. Server jako výsledek vždy vrátí hodnotu OperationOutcome .

Možnost 3: Ověření vytvoření nebo aktualizace prostředku pomocí hlavičky

Můžete zvolit, kdy chcete prostředek ověřit, například u prostředku CREATE nebo UPDATE. Ve výchozím nastavení je služba FHIR nakonfigurovaná tak, aby se odhlásila z ověřování prostředku Create/Update. Tato funkce umožňuje provést ověření na adrese Create/Updatepomocí hlavičky x-ms-profile-validation . Pro ověření nastavte x-ms-profile-validation na true.

Poznámka

V opensourcové službě FHIR můžete změnit nastavení konfigurace serveru v části CoreFeatures.

{
   "FhirServer": {
      "CoreFeatures": {
            "ProfileValidationOnCreate": true,
            "ProfileValidationOnUpdate": false
        }
}

Pokud chcete povolit striktní ověřování, použijte hlavičku Preferovat: zpracování s striktní hodnotou. Nastavením této hlavičky se upozornění ověření ohlásí jako chyba.

Další kroky

V tomto článku jste zjistili, jak ověřovat prostředky proti profilům pomocí $validate. Informace o dalších podporovaných funkcích služby FHIR najdete v tématu

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.