FHIR için Azure API için FHIR REST API özellikleri
Bu makalede, FHIR için Azure API'sinin RESTful etkileşimlerinin bazı nüanslarını ele alacağız.
Koşullu oluşturma/güncelleştirme
FHIR için Azure API, FHIR belirtimi tarafından tanımlanan oluşturma, koşullu oluşturma, güncelleştirme ve koşullu güncelleştirmeyi destekler. Bu senaryolarda yararlı üst bilgilerden biri If-Match üst bilgisidir. Üst If-Match
bilgi kullanılır ve güncelleştirmeyi yapmadan önce güncelleştirilen sürümü doğrular. beklenen ETag
ile ETag
eşleşmiyorsa 412 Önkoşul Başarısız hata iletisini oluşturur.
Silme ve Koşullu Silme
FHIR için Azure API iki silme türü sunar. Ayrıca, Sabit + Geçici Silme ve Koşullu Silme olarak da kullanılabilen Sil özelliği vardır.
Sil (Sabit + Geçici Silme)
FHIR belirtimi tarafından tanımlanan silme işlemi, bir kaynağı sildikten sonra bir kaynağın sonraki sürüme özgü olmayan okumalarının 410 HTTP durum kodu döndürmesini gerektirir. Bu nedenle, kaynak artık arama yoluyla bulunamaz. Ayrıca, FHIR için Azure API kaynağı tam olarak silmenize (tüm geçmiş dahil) olanak tanır. Kaynağı tam olarak silmek için parametre ayarlarını hardDelete
true (DELETE {{FHIR_URL}}/{resource}/{id}?hardDelete=true)
olarak geçirebilirsiniz. Bu parametreyi geçirmezseniz veya false olarak ayarlamazsanız hardDelete
, kaynağın geçmiş sürümleri kullanılabilir olmaya devam eder.
Not
Yalnızca geçmişi silmek istiyorsanız, FHIR için Azure API adlı $purge-history
özel işlemi destekler. Bu işlem, bir kaynağın geçmişini silmenize olanak tanır.
Koşullu Silme
Koşullu Silme, kaynağı silmek için arama ölçütlerini geçirmenize olanak tanır. Varsayılan olarak Koşullu Silme, bir kerede bir öğeyi silmenize olanak tanır. Bir kerede _count
en çok 100 öğeyi silmek için parametresini de belirtebilirsiniz. Aşağıda Koşullu Silme kullanımına bazı örnekler verilmiştir.
Koşullu Silme kullanarak tek bir öğeyi silmek için, tek bir öğe döndüren arama ölçütlerini belirtmeniz gerekir.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704
Aynı aramayı yapabilir, ancak tüm geçmişi silmek için ekleyebilirsiniz hardDelete=true
.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704&hardDelete=true
Birden çok kaynağı silmek için parametresini ekleyin _count=100
. Bu parametre, arama ölçütlerine uyan en fazla 100 kaynağı siler.
DELETE https://{{FHIR_URL}}/Patient?identifier=1032704&_count=100
Silinen dosyaların kurtarılması
Sabit silme parametresini kullanmıyorsanız, FHIR için Azure API'sindeki kayıtlar hala mevcut olmalıdır. Kayıtlar, kaynakta bir geçmiş araması yaparak ve verilerle son sürümü arayarak bulunabilir.
Silinen kaynağın kimliği biliniyorsa aşağıdaki URL desenini kullanın:
<FHIR_URL>/<resource-type>/<resource-id>/_history
Örnek: https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/123456789/_history
Kaynağın kimliği bilinmiyorsa kaynak türünün tamamında bir geçmiş araması yapın:
<FHIR_URL>/<resource-type>/_history
Örnek: https://myworkspace-myfhirserver.fhir.azurehealthcareapis.com/Patient/_history
Geri yüklemek istediğiniz kaydı buldukktan sonra, PUT
aynı kimlikle kaynağı yeniden oluşturmak için işlemini kullanın veya işlemi kullanarak POST
aynı bilgilere sahip yeni bir kaynak oluşturun.
Not
Geçmiş/geçici silme verileri için zamana bağlı süre sonu yoktur. Geçmiş/geçici olarak silinen verileri kaldırmanın tek yolu, sabit silme veya temizleme geçmişi işlemidir.
Yama ve Koşullu Düzeltme Eki
Patch, FHIR kaynağının yalnızca bir bölümünü güncelleştirmeniz gerektiğinde değerli bir RESTful işlemidir. Düzeltme ekini kullanmak, kaydın tamamını güncelleştirmek zorunda kalmadan kaynakta güncelleştirmek istediğiniz öğeleri belirtmenize olanak tanır. FHIR, Kaynaklara Yama Uygulamak için üç yol tanımlar: JSON Patch, XML Patch ve FHIRPath Patch. FHIR Hizmeti, Koşullu JSON Yaması ve Koşullu FHIRPath Düzeltme Eki (kaynak kimliği yerine arama ölçütlerine göre bir kaynağa düzeltme eki uygulamanıza olanak tanır) ile birlikte hem JSON Yamasını hem de FHIRPath Düzeltme Ekini destekler. Bazı örnekleri gözden geçirebilmek için her yaklaşım için örnek FHIRPath Patch REST dosyasına ve JSON Patch REST dosyasına bakın. Ek ayrıntılar için FHIR ile düzeltme eki işlemleri için HL7 belgelerini okuyun.
Not
STU3'e karşı kullanırken PATCH
ve Geçmiş paketi istiyorsanız, düzeltme eki uygulanan kaynağınki Bundle.entry.request.method
ile PUT
eşlenir. Bunun nedeni, STU3'ün HTTPVerb değer kümesindekiPATCH
fiil için bir tanım içermemesidir.
FHIRPath Düzeltme Eki ile Düzeltme Eki
Bu düzeltme eki yöntemi, hedeflenen öğeyi seçmek için FHIRPath'den yararlandığı için en güçlü yöntemdir. Yaygın senaryolardan biri, listedeki bir öğeyi listenin sırasını bilmeden güncelleştirmek için FHIRPath Düzeltme Eki kullanmaktır. Örneğin, bir hastanın ev telekom bilgilerini dizini bilmeden silmek istiyorsanız aşağıdaki örneği kullanabilirsiniz.
YAMA http://{FHIR-SERVICE-HOST-NAME}/Patient/{PatientID}
İçerik türü: application/fhir+json
{
"resourceType": "Parameters",
"parameter": [
{
"name": "operation",
"part": [
{
"name": "type",
"valueCode": "delete"
},
{
"name": "path",
"valueString": "Patient.telecom.where(use = 'home')"
}
]
}
]
}
Tüm FHIRPath Düzeltme Eki işlemleri content-Type üst bilgi kümesine application/fhir+json
sahip olmalıdır. FHIRPatch Patch ekleme, ekleme, silme, kaldırma ve taşıma işlemlerini destekler. FHIRPatch Patch işlemleri de Paketlerle kolayca tümleştirilebilir. Daha fazla örnek için örnek FHIRPath Patch REST dosyasına bakın.
JSON Düzeltme Eki ile Düzeltme Eki
FHIR Hizmeti'ndeki JSON Düzeltme Eki , İnternet Mühendisliği Görev Gücü tarafından tanımlanan iyi kullanılan belirtime uygundur. Yük biçimi FHIR kaynaklarını kullanmaz ve bunun yerine öğe seçimi için JSON-Pointers yararlanan bir JSON belgesi kullanır. JSON Patch daha kompakttır ve düzeltme ekini yapmadan önce bir koşulun doğru olduğunu doğrulamanızı sağlayan bir test işlemine sahiptir. Örneğin, bir hastayı ancak zaten ölmüş olarak işaretlenmemişse vefat etmiş olarak ayarlamak istiyorsanız aşağıdaki örneği kullanabilirsiniz.
PATCH http://{FHIR-SERVICE-HOST-NAME}/Patient/{PatientID}
Content-type: application/json-patch+json
[
{
"op": "test",
"path": "/deceasedBoolean",
"value": false
},
{
"op": "replace",
"path": "/deceasedBoolean",
"value": true
}
]
Tüm JSON Düzeltme Eki işlemleri content-Type üst bilgi kümesine application/json-patch+json
sahip olmalıdır. JSON Patch ekleme, kaldırma, değiştirme, kopyalama, taşıma ve test işlemlerini destekler. Daha fazla örnek için örnek JSON Patch REST dosyasına bakın.
Paketlerde JSON Yaması
Varsayılan olarak JSON Düzeltme Eki, Paket kaynakları'nda desteklenmez. Bunun nedeni, Bir Paketin yalnızca FHIR kaynaklarıyla desteklemesi ve JSON Düzeltme Eki yükünün bir FHIR kaynağı olmamasıdır. Bu soruna geçici bir çözüm olarak, bir Paketin içindeki JSON yükünün "application/json-patch+json"
content-type ve base64 kodlamasıyla İkili kaynakları kullanacağız. Bu geçici çözüm hakkında bilgi için FHIR Chat Zulip'te bu konuyu görüntüleyin.
Aşağıdaki örnekte, hastanın cinsiyetini kadın olarak değiştirmek istiyoruz. JSON yamasını [{"op":"replace","path":"/gender","value":"female"}]
aldık ve base64'e kodladık.
YAYINLA https://{FHIR-SERVICE-HOST-NAME}/
İçerik Türü: 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}"
}
}
]
}
Sonraki adımlar
Bu makalede, FHIR için Azure API'sinin REST özelliklerinden bazılarını öğrendiniz. Ardından, FHIR'de kaynak aramanın temel yönleri hakkında daha fazla bilgi edinebilirsiniz.
(FHIR®), HL7'nin tescilli ticari markasıdır ve HL7 izniyle kullanılır.