AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Klinik Sistemleri FHIR Backend ile Nasıl Entegre Edilir

Eğitim: bir klinik EMR'sini hastaların FHIR R4 kayıtlarına bağlama — doktor dizini, kayıt numarasına göre eşleştirme, tek bir işlem olarak ziyaret ve doktorun yazar olarak belirtilmesi, laboratuvar raporları, diğer sağlayıcıların verileri ve webhook'lar.

Bu eğitim, bir kliniğin yazılımını (bir EMR, bir muayenehane yönetim sistemi veya bir randevu aracı) Anpheros'taki hastaların HL7 FHIR R4 kayıtlarına bağlar: klinik ve doktorları dizine kaydedilir, hastalar kliniğin kayıt numarasına göre eşleştirilir, bir ziyaret doktorun yazar olarak belirtildiği tek bir işlem olarak yazılır ve klinik diğer sağlayıcıların eklediği veriler hakkında bilgi edinir. Her istek, curl ücretsiz sandbox'a karşı yapılır ve yanıtlar platformun kendi yanıtlarıdır.

Entegrasyon, kliniğin kaydettiği hastalar için bir proje API anahtarı ve Anpheros kaydı olan kişiler için onayladıkları bir OAuth hibesi ile kliniğin sunucusunda çalışır.

Nelerin Nelerle Eşleştiği

Klinik sistemde FHIR R4'te
klinik, departmanları Organization
bir doktor veya hemşire Practitioner
o klinikte çalışan, uzmanlığı olan o kişi PractitionerRole
hasta dosyası ve numarası Patient, klinik sistemindeki bir identifier ile
bir ziyaret Encounter
hayati belirtiler, ziyaret sırasında ölçülen sonuçlar Encounter'e bağlı Observation
bir teşhis Condition (ICD-10), verificationStatus geçici veya kesin olarak
bir reçete, mevcut tedavi MedicationStatement (ATC)
bir mektup, taburculuk özeti, bir tarama dosyayla birlikte DocumentReference
laboratuvar sonuçları laboratuvar bağlayıcısı aracılığıyla Observation'e

Adım 1: Kliniği ve doktorlarını kaydetme

Dizin kaynaklarının hastası yoktur. Aynı ortamdaki diğer projeler bunları okuyabilir, böylece bir hastanın diğer sağlayıcıları kimin ne yazdığını görebilir, ancak yalnızca sizin projeniz bunları değiştirebilir.

export BASE=https://platform.anpheros.com/fhir/R4
export KEY=sk_test_…
H=(-H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json")

curl -X POST $BASE/Organization "${H[@]}" -d '{"resourceType": "Organization", "active": true, "name": "Clinica Cardio Nord",
  "identifier": [{"system": "https://clinic.example/org", "value": "CCN"}]}'

curl -X POST $BASE/Practitioner "${H[@]}" -d '{"resourceType": "Practitioner", "active": true,
  "name": [{"family": "Popescu", "given": ["Ana"], "prefix": ["Dr."]}]}'

curl -X POST $BASE/PractitionerRole "${H[@]}" -d '{"resourceType": "PractitionerRole", "active": true,
  "practitioner": {"reference": "Practitioner/'$PRACTITIONER'"},
  "organization": {"reference": "Organization/'$ORG'"},
  "code": [{"text": "Cardiologist"}]}'

Döndürülen kimlikleri personel kayıtlarınızın yanında saklayın. Biri ayrıldığında, PractitionerRole alanını "active": false olarak ayarlayın; geçmiş yazıları isimlerini korur ve artık sisteminiz aracılığıyla işlem yapamazlar.

Adım 2: Hastaları Eşleştirme

Klinik tarafından kaydedilen hastalar için, Patient'ü kliniğin kayıt numarası ile bir tanımlayıcı olarak oluşturun:

curl -X POST $BASE/Patient "${H[@]}" -d '{"resourceType": "Patient",
  "identifier": [{"system": "https://clinic.example/mrn", "value": "MRN-20981"}],
  "name": [{"family": "Dinu", "given": ["Andrei"]}], "gender": "male", "birthDate": "1968-11-05"}'

Bundan sonra, hastayı bu numara ile bulun, asla isim ve doğum tarihi ile değil:

curl "$BASE/Patient?identifier=https://clinic.example/mrn|MRN-20981" -H "Authorization: Bearer $KEY"

Kişinin zaten bir Anpheros kaydı varsa, kendi uygulamasından veya başka bir sağlayıcıdan, klinik ikinci bir kayıt oluşturmaz. OAuth ile erişim ister, resepsiyondaki bir tabletten veya ziyaret öncesinde gönderilen bir bağlantı aracılığıyla, gizli bir uygulama kullanarak (kliniğin sunucusu gizliliği saklar). Kişi kendi kaydını ve kliniğin ne kadar süreyle erişebileceğini seçer. Adımlar SMART on FHIR ile hasta onayının nasıl uygulanacağı bölümünde yer almaktadır; belirtecin patient alanı, dosyanızla birlikte saklanacak kimliktir.

Adım 3: Bir ziyareti tek bir işlem olarak yazma

Bir ziyaret, birbiriyle ilişkili birkaç kaynak üretir. Bunları tek seferde veya hiç depolanmayacakları şekilde transaction içinde gönderin ve kimin çalıştığını belirtin: X-Anpheros-Acting-As doktorun rolünü adlandırır. Bu, Provenance'da yazar olur, erişim günlüğüne yazılır ve hastaya isimle gösterilir.

curl -X POST $BASE "${H[@]}" \
  -H "X-Anpheros-Acting-As: PractitionerRole/$ROLE" \
  -H "X-Anpheros-Author-Type: practitioner" \
  -H "X-Anpheros-Source-System: ccn-emr" -d '{
  "resourceType": "Bundle", "type": "transaction",
  "entry": [
    {"fullUrl": "urn:uuid:aa000000-0000-4000-8000-000000000001",
     "resource": {"resourceType": "Encounter", "status": "finished",
       "class": {"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "AMB", "display": "ambulatory"},
       "subject": {"reference": "Patient/'$PID'"},
       "serviceProvider": {"reference": "Organization/'$ORG'"},
       "participant": [{"individual": {"reference": "PractitionerRole/'$ROLE'"}}],
       "period": {"start": "2026-10-09T10:00:00Z", "end": "2026-10-09T10:30:00Z"}},
     "request": {"method": "POST", "url": "Encounter"}},
    {"resource": {"resourceType": "Observation", "status": "final",
       "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
       "code": {"coding": [{"system": "http://loinc.org", "code": "8867-4", "display": "Heart rate"}]},
       "subject": {"reference": "Patient/'$PID'"},
       "encounter": {"reference": "urn:uuid:aa000000-0000-4000-8000-000000000001"},
       "effectiveDateTime": "2026-10-09T10:10:00Z",
       "valueQuantity": {"value": 92, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}},
     "request": {"method": "POST", "url": "Observation"}},
    {"resource": {"resourceType": "Condition",
       "subject": {"reference": "Patient/'$PID'"},
       "encounter": {"reference": "urn:uuid:aa000000-0000-4000-8000-000000000001"},
       "clinicalStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "active"}]},
       "verificationStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "provisional"}]},
       "code": {"coding": [{"system": "http://hl7.org/fhir/sid/icd-10", "code": "I48.0", "display": "Paroxysmal atrial fibrillation"}]}},
     "request": {"method": "POST", "url": "Condition"}}
  ]}'

transaction-response, Encounter, Observation ve Condition için 201 Created içerir. Observation ve Condition artık gerçek Encounter/0ca25459-…'a işaret eder. Her birinin Provenance'ı doktorun rolünü, kliniği ve kaynak sistemini adlandırır:

"agent": [{"who": {"reference": "PractitionerRole/e6d8c227-…",
                   "identifier": {"system": "https://anpheros.com/fhir/CodeSystem/author-type", "value": "practitioner"}},
           "onBehalfOf": {"reference": "Organization/c3a56a4b-…", "display": "Clinica Cardio Nord"}}],
"entity": [{"role": "source", "what": {"identifier": {"system": "ccn-emr"}}}]

Teşhis onaylanana kadar provisional'dır. Daha sonra confirmed olarak güncelleyin, böylece geçmiş her ikisini de saklar. Her alanın ne anlama geldiği Tıbbi veri provenance'ı açıklandı bölümünde açıklanmıştır.

Adım 4: Laboratuvar Sonuçları ve Belgeler

Kliniğin kendi laboratuvarından alınan sonuçlar veya hastanın getirdiği raporlar, rapor başına tek bir istekte laboratuvar bağlayıcısından geçer:

curl -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" -H "Authorization: Bearer $KEY" \
     -H "Content-Type: x-application/hl7-v2+er7" -H "X-Anpheros-Source-System: ccn-lab" --data-binary @oru.hl7

Mektuplar ve taburcu özetleri belgedir: DocumentReference aracılığıyla /v1/patients/{id}/documents oluşturun ve PDF'yi yükleyin. Orijinal dosya asla değiştirilmez ve ondan çıkarılan değerler ona geri döner. Bir FHIR kaydına laboratuvar sonuçlarının nasıl aktarılacağı ve Tıbbi Veri API'si bölümlerine bakın.

Adım 5: Diğer sağlayıcıların yazdıklarını okuyun ve kendi alanınızda kalın

Hastanın rızasıyla, klinik, diğer kliniklerin, laboratuvarların ve hastanın ekledikleri dahil olmak üzere, kapsamı dahilindeki tüm kaydı okur. Yalnızca kendisinin yazdığı şeyi değiştirebilir. Başka bir kuruluşun kaynağını güncelleme veya silme isteği 403 ile yanıtlanır ve orijinali olduğu gibi kalır. Başka bir sağlayıcının yazdığı bir şeyi düzeltmek için kendi kaynağınızı yazın (örneğin, değerlendirmenizi içeren yeni bir Condition) ve kaydın her biri kendi yazarıyla birlikte her ikisini de göstermesine izin verin.

Bir ziyaret öncesinde, GET $BASE/Patient/$PID/$summary her kaynaktan gelen sorunları, ilaçları, alerjileri ve son yaşamsal belirtileri içeren kaydın Uluslararası Hasta Özetini verir.

Adım 6: Yeni Verilerden Haberdar Olun

Klinik projesi için bir kez webhook kaydedin:

curl -X POST https://platform.anpheros.com/v1/webhooks -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
     -d '{"url": "https://ccn.example/anpheros/hook", "events": ["resource.created", "resource.updated", "consent.revoked"]}'

Başka bir proje, kliniğinizin erişebileceği bir kayda yazdığında, olay data.external: true ve kaynak ile bunu belirtir, böylece EMR'niz yoklama yapmadan "başka bir laboratuvardan yeni sonuçlar" gösterebilir. Bir consent.revoked olayı, kişinin kliniğin erişimini geri çektiği anlamına gelir: o kaydın senkronizasyonunu durdurun. İmzalar, yeniden denemeler ve yükler Webhooks bölümünde ele alınmıştır.

Hastanın Gördükleri

Hasta, kaydındaki ziyareti, kalp atış hızını ve geçici tanıyı görür; her biri Dr. Ana Popescu tarafından Clinica Cardio Nord'da eklendiği şeklinde işaretlenir. Bağlantılarında, kliniğin uygulaması, bir uygulayıcı hareket halindeyken adı ile birlikte her erişimi listeler. Bu şeffaflık, hastaların bir sonraki kliniğe erişim izni vermeye istekli olmasını sağlar.

Canlıya Geçiş Kontrol Listesi

Sıkça Sorulan Sorular

Anpheros'un benim EMR'im için hazır bir bağlayıcısı var mı?

Hayır. Belirli EMR'ler veya laboratuvar sistemleri için hazır bağlayıcılar bulunmamaktadır; entegrasyon FHIR R4 ve REST API'lerine karşı oluşturulur, genellikle EMR'nin yanında küçük bir servis olarak. HL7 v2 laboratuvar mesajları olduğu gibi kabul edilir.

Bir doktor iki klinikte çalışabilir mi?

Evet. Bir Practitioner, her kuruluşta bir PractitionerRole'e sahip olabilir. X-Anpheros-Acting-As'te belirtilen rol, her yazımın hangi klinik için kaydedildiğini belirler.

Hasta kliniğin erişimini iptal ettiğinde ne olur?

O kayıt için kliniğin çağrıları 401 ile yanıt verir ve bir consent.revoked webhook'u gönderilir. Kliniğin yazdığı, kökeniyle birlikte hastanın kaydında kalır; klinik artık onu okuyamaz veya değiştiremez.

İlgili Konular

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy