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/Update
pomocí 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.