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.