Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Laboratuvar Sonuçları API'si: HL7 v2, FHIR ve LOINC
Laboratuvar sonuçları HL7 v2 ve FHIR R4 verisi olarak nasıl seyahat eder, bir sonucun neleri taşıması gerekir ve bir laboratuvar raporunu bir FHIR kaydına nasıl alacağınız, gerçek bir örnekle.
Bir laboratuvar sonuçları API'si, laboratuvar sonuçlarını yapılandırılmış veri olarak — test kodu, değeri, birimi, referans aralığı, durumu ve zamanı — PDF yerine sunar, böylece yazılımlar bunları depolayabilir, karşılaştırabilir, grafikleyebilir ve paylaşabilir. Bugün bu veriler üç biçimde iletilmektedir: HL7 v2 ORU^R01 mesajları (hala laboratuvarlar ve hastaneler arasındaki omurga), HL7 FHIR R4 Observation ve DiagnosticReport kaynakları (modern API'lerin formatı) ve laboratuvara özel CSV, JSON veya PDF dışa aktarımları. Bu sayfa, parçaların nasıl bir araya geldiğini, iyi bir laboratuvar sonuçları API'sinin neleri içermesi gerektiğini ve Anpheros ile bir hastanın FHIR kaydına laboratuvar verilerinin nasıl alınacağını açıklar.
Laboratuvar Sonuçlarını Kimler, Hangi Formatlarda Değiştirir
| Kaynak → Hedef | Günümüzdeki Yaygın Format | Notlar |
|---|---|---|
| Laboratuvar → Hastane veya Klinik Sistemi | HL7 v2 ORU^R01 (ABD'de genellikle HL7 v2.5.1 Laboratuvar Sonuçları Arayüzü kılavuzuna göre) | Siparişler diğer yönde ORM/OML mesajları olarak gider |
| Laboratuvar → Halk Sağlığı Kurumu | HL7 v2 elektronik laboratuvar raporlaması, giderek artan şekilde FHIR | Yalnızca raporlanabilir durumlar |
| Klinik Sistemi → Hasta Uygulaması | FHIR R4, bir hasta erişim API'si aracılığıyla | ABD'de sertifikalı EHR'ler laboratuvar sonuçlarını FHIR (US Core) olarak sunar; AB'de Avrupa Sağlık Veri Alanı, laboratuvar sonuçlarını öncelikli veri kategorileri arasında listeler |
| Laboratuvar → Hasta | PDF raporu, portal, bazen CSV | Hastaların fiilen aldığı format |
| Uygulama → Yapay Zeka Modeli | Gözlemlerden (Observations) oluşturulan yapılandırılmış bağlam | Güvenilir olması için kodlar ve birimler gerekir |
Yön önemlidir: bir laboratuvar bilgi sistemi (LIS), bir sonuç için doğruluk kaynağıdır ve aşağı akışındaki her sistem bir kopya tutar. Kopyaları güvenilir kılan şey, her birinin değerin kodunu, birimini, aralığını ve kökenini saklamasıdır.
Bir laboratuvar sonucunun taşıması gerekenler
"Glikoz 126" diyen bir sonuç güvenli bir şekilde yorumlanamaz. Tam bir sonuç şunları içerir:
- Standart bir kod. LOINC, analiti, örneği ve yöntemi tanımlar:
2345-7serum veya plazmadaki glikoz,2339-0tam kandaki glikozdur. Laboratuvarın kendi kodu bunun yanında yer alabilir. - Bir birimle birlikte bir değer. İdeal olarak bir UCUM birimi (
mg/dL,mmol/L,10*3/uL) olmalıdır, böylece iki laboratuvardan gelen değerler dönüştürülebilir ve karşılaştırılabilir. - Laboratuvarın kullandığı referans aralığı ve laboratuvar bir tane verdiğinde bir yorum bayrağı (H, L, N...).
- Durum: ön, nihai, düzeltilmiş veya değiştirilmiş. Düzeltmeler olur; bir API, eskisi kaybolmadan yenisini görmenize izin vermelidir.
- Zamanlar: örneğin toplandığı (
effectiveDateTime) ve sonucun yayınlandığı (issued) zamanlar. - Köken: hangi laboratuvarın ürettiği ve hangi rapora veya emre ait olduğu.
FHIR R4'te her sonuç bir Observation'tir ve category = laboratory içerir, bunları gruplayan rapor ise result'deki Gözlemleri listeleyen bir DiagnosticReport'dir. Her ikisinin de geçerli örnekleri, doğrulayıcıların en sık bildirdiği hatalarla birlikte FHIR R4 JSON örneklerinde bulunur — ayrıca DiagnosticReport örneğine de bakınız.
HL7 v2 ve FHIR Yan Yana
Laboratuvarların bugün gönderdiği şekliyle ve bir API'nin saklaması gereken şekilde aynı lipid paneli sonucu:
OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
| HL7 v2 alanı | Anlamı | FHIR R4 Observation öğesi |
|---|---|---|
OBX-3 2093-3^Cholesterol^LN |
LOINC ile kodlanmış test | code.coding (sistem http://loinc.org) |
OBX-5 212, OBX-2 NM |
Sayısal değer | valueQuantity.value |
OBX-6 mg/dL |
Birim | valueQuantity.unit |
OBX-7 <200 |
Referans aralığı | referenceRange.high |
OBX-8 H |
Anormal bayrak | interpretation |
OBX-11 F |
Nihai sonuç | status = final |
| OBX-14 | Gözlem zamanı | effectiveDateTime |
İkisi arasında dönüşüm çoğunlukla alan eşleştirmesidir. Zor kısımlar başka yerdedir: LOINC yerine kendi kodlarını gönderen laboratuvarlar, metin olarak yazılmış sayılar ("6,4", "<5"), çeşitli gösterimlerdeki aralıklar ve bir zaman aşımından sonra tekrar gönderilen raporlar. Tıbbi verileri normalleştirme bu konuları ayrıntılı olarak ele almaktadır.
Anpheros ile FHIR kaydına laboratuvar sonuçlarını alma
Anpheros, her hastanın kaydını HL7 FHIR R4 olarak saklar ve bir laboratuvar bağlayıcısına sahiptir: bir istek, HL7 v2, CSV veya JSON olarak tüm raporu alır ve LOINC kodları, referans aralıkları, yorumlama ve köken bilgileriyle laboratuvar Gözlemleri (Observations) döndürür.
curl -s -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: springfield-lis" \
--data-binary @lipid-panel.hl7
Üç satırlık bir lipid paneli (kolesterol, HDL, trigliserit) için, platformun yerel bir çalıştırmasından elde edilen yanıt şöyledir:
{
"created": 3, "skipped": 0, "unmapped": [], "warnings": [],
"observations": [
{"id": "26ed9219-…", "marker": "Cholesterol", "code": "2093-3", "system": "http://loinc.org",
"value": 212.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
{"id": "2633d1d4-…", "marker": "HDL cholesterol", "code": "2085-9", "system": "http://loinc.org",
"value": 48.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
{"id": "a02520bb-…", "marker": "Triglyceride", "code": "2571-8", "system": "http://loinc.org",
"value": 165.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"}
]
}
Saklanan her sonuç, standart bir FHIR R4 Gözlemi'dir ve herhangi bir FHIR istemcisi tarafından okunabilir:
{
"resourceType": "Observation",
"status": "final",
"category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
"code": {"coding": [{"system": "http://loinc.org", "code": "2093-3",
"display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
"subject": {"reference": "Patient/4c3062d9-…"},
"effectiveDateTime": "2026-10-02T07:45:00Z",
"valueQuantity": {"value": 212.0, "unit": "mg/dL"},
"interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
"referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}
Aynı mesajı tekrar göndermek yeni bir şey oluşturmaz ("created": 0, "skipped": 3): her satır, rapor kimliği, kod, tarih ve değerden kararlı bir tanımlayıcı alır. Platformun LOINC'e eşleyemediği işaretleyiciler, laboratuvarın kodunu korur ve unmapped'de geri döner, böylece eşlemeyi kaynakta düzeltebilirsiniz.
Sonuçları geri okumak standart bir FHIR aramasıdır:
curl -s "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&category=laboratory&code=http://loinc.org|2093-3" \
-H "Authorization: Bearer $KEY"
Aynı veriye girip çıkmanın diğer yolları:
- Doğrudan FHIR:
POST /fhir/R4/ObservationveyaDiagnosticReportve Gözlemlerini birlikte içeren bir işlem Bundle'ı. - Olaylar: her Gözlem için bir
resource.createdwebhook, böylece sonuçlar geldiğinde bir klinik veya uygulama tepki verebilir. - İnsanlar ve Yapay Zeka için: hasta sonuçları uygulamasında görür; izin verdikleri uygulamalar bunları okur;
POST /v1/context, bir yapay zeka modeline son laboratuvar değerlerini içeren kaynak etiketli bir özet sağlar. - Köken (Provenance): içe aktarılan her sonuç
author_type = import, kaynak sistem ve rapor kimliğini kaydeder (tıbbi veri kökeni).
CSV raporu, bir HL7 v2 mesajı, eşlenmemiş işaretleyiciler ve sentetik bir hastada yeniden gönderilen raporlarla tam adım adım anlatım, Bir FHIR kaydına laboratuvar sonuçlarının nasıl aktarılacağı eğitiminde yer almaktadır.
Sonuçları Göndermeden Önce Kontrol Edin
Ücretsiz FHIR R4 validator, bir Observation'ın yapısını ve gerekli değer kümelerini kontrol eder ve eu-lab profili ile bir laboratuvar sonucunun neleri içermesi gerektiğini de kontrol eder: laboratory kategorisi, bir LOINC kodu, bir konu, bir final-tip durumu, bir zaman, bir değer, bir UCUM birimi ve bir referans aralığı. Aynı kontroller platformda POST /fhir/R4/Observation/$validate?profile=eu-lab aracılığıyla da çalışır.
Laboratuvar sonuçları API'si seçimi: kontrol listesi
- Sonuçları FHIR R4 Observations olarak LOINC kodlarıyla mı yoksa kendi şemasındaki satırlar olarak mı saklıyor?
- Laboratuvarlarınızın gerçekten gönderdiği formatları (çoğu hastanede HL7 v2, daha küçük laboratuvarlardan CSV veya PDF) kabul edebiliyor mu?
- Eşlenemeyen bir işaretleyiciye ne olur: reddedilir mi, düşürülür mü yoksa laboratuvarın koduyla mı saklanır?
- Yeniden denemeler güvenli mi, yoksa yeniden gönderilen bir rapor yinelenenler mi oluşturur?
- Düzeltilmiş sonuçlar sürümleniyor mu, önceki değer hala okunabilir mi?
- Her değerin kaynağı kaydedilip hastaya görünür mü?
- Sonuçları kimler okuyabilir ve bu, hastanın rızasıyla mı belirlenir?
Anpheros Neler Yapmaz
Anpheros bir laboratuvar bilgi sistemi değildir ve ticari laboratuvar ağlarına bağlı değildir: raporu laboratuvar, klinik veya hastanın uygulaması gönderir. Laboratuvar siparişlerini yönlendirmez, bu API aracılığıyla PDF raporlarını okumaz (Anpheros Daily uygulaması, hastanın tarafındaki fotoğraf ve PDF'lerden sonuçları çıkarır) ve sonuçları klinik olarak yorumlamaz. Birimler, laboratuvarın gönderdiği şekilde saklanır; bunları UCUM kodlarına dönüştürmek, Tıbbi Verileri Normalleştirme bölümünde açıklandığı gibi gönderenin sorumluluğundadır.
Sıkça Sorulan Sorular
Laboratuvar Sonuçları API'si nedir?
Yazılımın, yapılandırılmış bir veri olarak laboratuvar sonuçlarını — kodlanmış bir test, bir birimle birlikte bir değer, bir referans aralığı, bir durum ve bir zaman — belge yerine göndermesini veya almasını sağlayan bir arayüzdür. Modern laboratuvar sonuçları API'leri HL7 FHIR R4 Observation ve DiagnosticReport kaynaklarını kullanır; çoğu laboratuvar hala HL7 v2 ORU^R01 mesajları yaymaktadır.
Laboratuvar testlerini hangi kod sistemi tanımlar?
LOINC. Her LOINC kodu analitiği, örneği ve genellikle yöntemi adlandırır, bu nedenle 2345-7 (serum veya plazmada glukoz) ve 2339-0 (tam kanda glukoz) farklı sonuçlardır. Birimler en iyi UCUM ile ifade edilir.
Observation ve DiagnosticReport arasındaki fark nedir?
Bir Observation tek bir sonuçtur, örneğin kolesterol 212 mg/dL. Bir DiagnosticReport ise raporun tamamıdır — istenen panel, kimin tarafından düzenlendiği ve ne zaman — ve result'de Gözlemlerini listeler.
HL7 v2 laboratuvar mesajlarını bir FHIR sunucusuna aktarabilir miyim?
Evet. Her OBX segmenti bir Observation'a eşlenir (OBX-3 code'e, OBX-5 ve OBX-6 valueQuantity'ye, OBX-7 referenceRange'e, OBX-8 interpretation'ye). Anpheros laboratuvar bağlayıcısı bunu tek bir istekte yapar ve laboratuvarın rapor kimliğini Provenance'da saklar.
Bir rapor yeniden gönderildiğinde yinelenen laboratuvar sonuçlarından nasıl kaçınırım?
Her sonuca rapordan, testten, zamandan ve değerden türetilmiş kararlı bir tanımlayıcı verin ve tanımlayıcısı zaten mevcut olan satırları atlayın. Anpheros laboratuvar bağlayıcısı bunu otomatik olarak yapar ve sayımı skipped olarak bildirir.
İlgili Kaynaklar
- HL7 v2'den FHIR'a eşleme: her segment ve OBX alanı
- Laboratuvar sonuçlarını bir FHIR kaydına nasıl aktarılır: adım adım öğretici
- Lab connector: uç nokta referansı
- Tıbbi veriler nasıl normalize edilir: LOINC, UCUM, tarihler, aralıklar ve tekrarlar
- Tıbbi veri kökeni açıklandı
- FHIR kod sistemleri
- Klinik sistemler FHIR arka ucuyla nasıl entegre edilir
- FHIR ve HL7 v2: pratik farklar
- Klinik panolar için HL7 v2 ve FHIR: bir laboratuvar mesajından bir pano kutucuğuna
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card