Megosztás a következőn keresztül:


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-historyegyé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 PUTvan leképezve: . Ennek az az oka, hogy a STU3 nem tartalmaz definíciót a PATCHHTTPVerb é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.