FHIR REST API-képességek az Azure API for FHIR-hez
Ebben a cikkben az Azure API for FHIR RESTful interakcióinak néhány árnyalatát fogjuk tárgyalni.
Feltételes létrehozás/frissítés
Az Azure API for FHIR támogatja a létrehozást, a feltételes létrehozást, a frissítést és a feltételes frissítést az FHIR-specifikációban meghatározottak szerint. Ezekben a forgatókönyvekben az egyik hasznos fejléc az If-Match fejléc. A If-Match
rendszer a fejlécet használja, és a frissítés előtt ellenőrzi a frissített verziót. Ha a ETag
nem egyezik meg a várt ETag
értékkel, akkor a 412-ben sikertelen előfeltétel hibaüzenet jelenik meg.
Törlés és feltételes törlés
Az FHIR-hez készült Azure API két törlési típust kínál. Itt található a Törlés, amely a Hard + Soft Delete és a Feltételes törlés néven is ismert.
Törlés (Kemény + Helyreállítható törlés)
Az FHIR-specifikáció által definiált törléshez az erőforrás törlése után az erőforrás későbbi, nem verzióspecifikus olvasásai 410 HTTP-állapotkódot ad vissza. Ezért az erőforrás már nem található a kereséssel. Emellett az Azure API for FHIR lehetővé teszi az erőforrás teljes törlését (az összes előzményt is beleértve). Az erőforrás teljes törléséhez átadhat egy paraméterbeállítást hardDelete
a true (DELETE {{FHIR_URL}}/{resource}/{id}?hardDelete=true)
értéknek. Ha nem adja meg ezt a paramétert, vagy hamis értékre állítja hardDelete
, az erőforrás korábbi verziói továbbra is elérhetők lesznek.
Megjegyzés
Ha csak az előzményeket szeretné törölni, az Azure API for FHIR támogatja a nevű $purge-history
egyéni műveletet. Ez a művelet lehetővé teszi az előzmények törlését egy erőforrásból.
Feltételes törlés
A feltételes törlés lehetővé teszi, hogy keresési feltételeket adjon meg egy erőforrás törléséhez. Alapértelmezés szerint a feltételes törlés lehetővé teszi, hogy egyszerre egy elemet töröljön. Megadhatja azt a _count
paramétert is, amely egyszerre legfeljebb 100 elemet töröl. Az alábbiakban néhány példát talál a feltételes törlés használatára.
Ha egyetlen elemet szeretne törölni a feltételes törléssel, meg kell adnia a keresési feltételeket, amelyek egyetlen elemet adnak vissza.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704
Ugyanezt a keresést elvégezheti, de belefoglalhatja hardDelete=true
az összes előzmény törlését is.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704&hardDelete=true
Több erőforrás törléséhez adja meg a paramétert _count=100
. Ez a paraméter legfeljebb 100 olyan erőforrást töröl, amely megfelel a keresési feltételeknek.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704&_count=100
Törölt fájlok helyreállítása
Ha nem használja a kemény törlés paramétert, akkor az Azure API for FHIR rekordjainak továbbra is létezniük kell. A rekord(ok) az erőforráson végzett előzménykereséssel és az adatokkal rendelkező utolsó verzió megkeresésével találhatók.
Ha a törölt erőforrás azonosítója ismert, használja a következő URL-mintát:
<FHIR_URL>/<resource-type>/<resource-id>/_history
Például: https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/123456789/_history
Ha az erőforrás azonosítója nem ismert, keressen előzménykeresést a teljes erőforrástípuson:
<FHIR_URL>/<resource-type>/_history
Például: https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/_history
Miután megtalálta a visszaállítani kívánt rekordot, a PUT
művelettel hozza létre újra az erőforrást ugyanazzal az azonosítóval, vagy a POST
művelettel hozzon létre egy új erőforrást ugyanazokkal az információkkal.
Megjegyzés
Az előzmény-/helyreállítható törlési adatokhoz nincs időalapú lejárat. Az előzmények/helyreállíthatóan törölt adatok eltávolításának egyetlen módja a kemény törlés vagy a törlési előzmények művelet.
Javítás és feltételes javítás
A javítás értékes RESTful művelet, ha csak az FHIR-erőforrás egy részét kell frissítenie. A javítás használatával megadhatja az erőforrásban frissíteni kívánt elemet(ok) anélkül, hogy a teljes rekordot frissítenie kellene. Az FHIR az erőforrások javításának három módját határozza meg: JSON-javítás, XML-javítás és FHIRPath-javítás. Az FHIR szolgáltatás támogatja a JSON-javítást és az FHIRPath-javítást, valamint a feltételes JSON-javítást és a feltételes FHIRPath-javítást (amely lehetővé teszi, hogy erőforrás-azonosító helyett keresési feltételek alapján javítson egy erőforrást). Néhány példa áttekintéséhez tekintse meg az egyes megközelítésekhez tartozó FHIRPath patch REST-fájlt és a JSON Patch REST-fájlt . További részletekért olvassa el az FHIR-vel végzett javítási műveletek HL7-dokumentációját.
Megjegyzés
Ha a STU3-at használja PATCH
, és előzménycsomagot kér, a javított erőforrás Bundle.entry.request.method
a következőre PUT
van leképezve: . Ennek az az oka, hogy a STU3 nem tartalmaz definíciót a PATCH
HTTPVerb értékkészletben lévő igéhez.
Javítás FHIRPath-javítással
Ez a javítási módszer a leghatékonyabb, mivel az FHIRPath használatával választja ki a megcélozandó elemet. Az egyik gyakori forgatókönyv az FHIRPath Patch használata a lista egy elemének frissítéséhez a lista sorrendjének ismerete nélkül. Ha például az index ismerete nélkül szeretné törölni a beteg otthoni távközlési adatait, használja az alábbi példát.
JAVÍTÁS http://{FHIR-SERVICE-HOST-NAME}/Patient/{PatientID}
Tartalomtípus: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "operation",
"part": [
{
"name": "type",
"valueCode": "delete"
},
{
"name": "path",
"valueString": "Patient.telecom.where(use = 'home')"
}
]
}
]
}
Minden FHIRPath-javítási művelethez meg kell adnia a application/fhir+json
Content-Type fejlécet. Az FHIRPatch patch támogatja a műveletek hozzáadását, beszúrását, törlését, eltávolítását és áthelyezését. A FHIRPatch Patch-műveletek is könnyen integrálhatók a Csomagokba. További példákért tekintse meg a minta FHIRPath Patch REST-fájlt.
Javítás JSON-javítással
A JSON-javítás az FHIR szolgáltatásban megfelel az Internet Engineering Task Force által meghatározott jól használt specifikációnak. A hasznos adatformátum nem FHIR-erőforrásokat használ, hanem egy JSON-dokumentumot használ, amely JSON-Pointers használ elemkijelöléshez. A JSON-javítás kompaktabb, és olyan tesztművelettel rendelkezik, amellyel ellenőrizheti, hogy a feltétel igaz-e a javítás elvégzése előtt. Ha például egy beteget csak akkor szeretne elhunytként beállítani, ha még nincs elhunytként megjelölve, használja az alábbi példát.
JAVÍTÁS http://{FHIR-SERVICE-HOST-NAME}/Patient/{PatientID}
Tartalomtípus: application/json-patch+json
[
{
"op": "test",
"path": "/deceasedBoolean",
"value": false
},
{
"op": "replace",
"path": "/deceasedBoolean",
"value": true
}
]
Minden JSON-javítási műveletnek rendelkeznie kell a application/json-patch+json
Content-Type fejléckészlettel. A JSON-javítás támogatja a hozzáadási, eltávolítási, csere-, másolási, áthelyezési és tesztelési műveleteket. További példákért tekintse meg a JSON Patch REST-fájlt.
JSON-javítás csomagokban
Alapértelmezés szerint a JSON-javítás nem támogatott a Kötegerőforrások szolgáltatásban. Ennek az az oka, hogy a csomag csak az FHIR-erőforrásokat támogatja, és a JSON-javítás hasznos adattartalma nem FHIR-erőforrás. Ennek megkerüléséhez bináris erőforrásokat fogunk használni a Csomagban lévő JSON hasznos adat tartalomtípusával "application/json-patch+json"
és base64 kódolásával. A kerülő megoldással kapcsolatos információkért tekintse meg ezt a témakört az FHIR Chat Zulipben.
Az alábbi példában a beteg nemét szeretnénk nőire módosítani. Felvettük a JSON-javítást [{"op":"replace","path":"/gender","value":"female"}]
, és a base64-be kódoltuk.
POST https://{FHIR-SERVICE-HOST-NAME}/
Tartalomtípus: application/json
{
"resourceType": "Bundle",
"id": "bundle-batch",
"type": "batch",
"entry": [
{
"fullUrl": "Patient/{PatientID}",
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "W3sib3AiOiJyZXBsYWNlIiwicGF0aCI6Ii9nZW5kZXIiLCJ2YWx1ZSI6ImZlbWFsZSJ9XQ=="
},
"request": {
"method": "PATCH",
"url": "Patient/{PatientID}"
}
}
]
}
Következő lépések
Ebben a cikkben megismerkedett az Azure API for FHIR REST-képességeivel. Ezután további információkat tudhat meg az FHIR-ben található erőforrások keresésének legfontosabb szempontjairól.
(FHIR®) a HL7 bejegyzett védjegye, amelyet a HL7 engedélyével használnak.