Sdílet prostřednictvím


Ověření prostředků FHIR v profilech ve službě Azure Health Data Services

V obchodě profily v článku o službě FHIR® jste prošli základy profilů FHIR a uložili je. Služba FHIR ve službě Azure Health Data Services umožňuje ověřovat prostředky vůči profilům a zjistit, jestli prostředky odpovídají profilům. V tomto článku se dozvíte, jak ověřovat $validate prostředky v profilech.

$validate je operace ve službě Fast Healthcare Interoperability Resources (FHIR), která umožňuje zajistit, aby prostředek FHIR odpovídal požadavkům základního prostředku nebo zadanému profilu. 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 lze režim zadat pomocí $validate, například vytvořit a aktualizovat:

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

Prostředek můžete ověřit různými způsoby:

  • Možnost 1: Ověřte existující prostředek pomocí operace ověření.
  • Možnost 2: Ověřte nový prostředek pomocí operace ověření.
  • Možnost 3: Ověření prostředku CREATE nebo UPDATE pomocí hlavičky

Při úspěšném ověření existujícího nebo nového prostředku pomocí operace ověření se prostředek neuchová do služby FHIR. Pomocí možnosti 3 úspěšně uchováte ověřené prostředky ve službě FHIR.

Služba FHIR vždy vrátí OperationOutcome jako výsledky ověření operace $validate. Jakmile se prostředek předá do koncového bodu $validate, služba FHIR provede dvoustupňové ověření. Prvním krokem je základní ověření, které zajistí, že je možné analyzovat prostředek. Během analýzy prostředků je potřeba před pokračováním k dalšímu kroku opravit jednotlivé chyby. Jakmile se prostředek úspěšně parsuje, provede se úplné ověření 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 hodnoty sady hodnot definované v průvodcích implementace. Podporují se pouze plně rozbalené sady hodnot, které obsahují úplný seznam všech kódů. Definice sady hodnot, které odkazují na externí zdroje, nejsou podporovány.

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

Pokud chcete ověřit existující prostředek, použijte $validate ho GET v požadavku.

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 stávající prostředek Pacient proti základnímu prostředku a6e11662-def8-4dde-9ebc-4429e68d130e Pacient. Pokud je platný, získáte OperationOutcome 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ý. OperationOutcome Příklad se vrátí s chybovými zprávami a může vypadat jako v následujícím příkladu 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 pacienta a pohlaví.

Pokud chcete jako parametr zadat profil, můžete zadat kanonickou adresu URL profilu, která se má ověřit, například v následujícím příkladu základního profilu 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 provést 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 ověří prostředek. Nový prostředek, který zadáváte v požadavku, se vytvoří po ověření. Server vždy vrátí OperationOutcome výsledek.

Možnost 3: Ověření prostředku CREATE nebo UPDATE 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 ověřování Create/Update pomocí hlavičky x-ms-profile-validation . Nastavte x-ms-profile-validation na hodnotu true pro ověření.

Poznámka:

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

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

Pokud chcete povolit přísné ověřování, použijte hlavičku Prefer: handling s přísnými hodnotami. Nastavením této hlavičky se jako chyba zobrazí upozornění na ověření.

Další kroky

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

Poznámka:

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