Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Egészségügyi adatok normalizálása
Oktatóanyag: alakítsa át a különböző forrásokból származó orvosi adatokat egyetlen összehasonlítható formává – LOINC lekérdezés, UCUM egységek, ISO dátumok, referencia tartományok, nincs ismétlődés újrapróbáláskor, és validálás az európai laborprofil ellen.
Az orvosi adatok normalizálása azt jelenti, hogy a sokféle formában érkező értékeket egyetlen összehasonlítható formává alakítjuk: ugyanaz a kód ugyanahhoz a teszthez, ugyanaz az egységrendszer, a dátumok egy formátumban, minden érték a referenciatartományával és forrásával, és nincsenek ismétlődések. Ez az oktatóanyag bemutatja, hogyan lehet ezt megtenni, mielőtt az adatok egy HL7 FHIR R4 rekordba kerülnének: LOINC és ATC kódok keresése, UCUM egységek használata, kétértelmű dátumok elutasítása, tartományok megtartása, ismétlődések elkerülése újbóli megkísérléskor, és az eredmény ellenőrzése az európai laboratóriumi profil ellen. Minden bemutatott válasz az Anpheros API-ból származik.
Miért fontos ez
Ugyanaz az HbA1c eredmény érkezhet hozzád "HbA1c 6,4 %", "Hemoglobina glicozilata: 6.4", "Glycated haemoglobin 46 mmol/mol" vagy csak egyetlen laboratórium által értett laboratóriumi kód formájában. Amíg ezek nem lesznek egy egységes kód egy egységes mértékegységgel:
- a páciens HbA1c értékének időbeli alakulását ábrázoló grafikon három független vonalat mutat;
- a "HbA1c 6,5 % felett" riasztás elmulasztja a két értéket;
- egy AI modell egy trend helyett négy tényt lát;
- egy másik rendszer, amely fogadja a rekordot, nem tudja értelmezni azt.
A normalizálásnak ott kell történnie, ahol az adatok belépnek a rekordba, egyszer, nem pedig minden olyan alkalmazásban, amely később olvassa azokat.
Mi tartozik egy normalizált értékhez
| Rész | Normalizált forma | Példa |
|---|---|---|
| Mi lett mérve | egy kód egy standard rendszerből | LOINC 4548-4 (HbA1c), RxNorm 6809 (metformin), ICD-10 E11 (2-es típusú cukorbetegség) |
| Az érték | egy szám, vagy csak szöveg, ha az eredmény nem numerikus | 6.4 |
| Az egység | UCUM | %, mg/dL, mm[Hg], kg |
| Mikor | egy ISO 8601 dátum-idő, időzónával, ha az idő számít | 2026-10-01T07:30:00Z |
| Normál tartomány | alsó és felső határ, ugyanabban az egységben | 4.0–5.6 |
| Forrás | ki állította elő és melyik rendszerből | import innen: labx |
| Azonosító | valami, ami felismerhetővé tesz egy ismétlést | egy idempotencia kulcs vagy egy forrás azonosító |
Melyik kódrendszer melyik erőforrás típushoz tartozik a FHIR kódrendszerek listában található.
1. lépés: Kód keresése
Keresse meg a platform terminológiáját angol vagy román név, vagy rövidítés alapján:
curl "https://platform.anpheros.com/v1/terminology/loinc?q=hba1c" -H "Authorization: Bearer $KEY"
curl "https://platform.anpheros.com/v1/terminology/loinc?q=hemoglobina%20glicozilata" -H "Authorization: Bearer $KEY"
Mindkettő ugyanazt a koncepciót adja vissza:
{"data": [{"system": "http://loinc.org", "code": "4548-4", "display": "Hemoglobin A1c/Hemoglobin.total in Blood",
"display_ro": "Hemoglobină glicozilată (HbA1c)", "category": "laboratory", "unit": "%"}], "total": 1}
Gyógyszerek esetében az Anpheros Search név vagy márkanév alapján keresi az anyagot, és megadja annak RxNorm összetevő kódját és az EMA termékszámokat:
curl "https://platform.anpheros.com/v1/search?q=metformin&type=treatment" -H "Authorization: Bearer $KEY"
A unit mező az a mértékegység, amit a LOINC vár az adott teszthez. Használja ezt annak ellenőrzésére, hogy mit kapott. Építse meg a leképezést minden forrás saját neveiről kódokra egyszer, forrásonként, és tartsa meg az integrációjában. Ne találgasson írási időben: ha egy név kétértelmű, és semmi a forrásban nem tisztázza, hagyja leképezetlenül, és kérdezze meg a forrást. Hogyan importálhatók laboratóriumi eredmények FHIR rekordba című cikk bemutatja, hogyan kezelhetők és jelenthetők a leképezetlen laboratóriumi markerek.
2. lépés: Kódokkal, egységekkel és tartományokkal írás
curl -X POST "https://platform.anpheros.com/v1/patients/$PID/observations" -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" -H "Idempotency-Key: lab-77-hba1c" -d '{
"code": "4548-4", "category": "laboratory",
"value": 6.4, "unit": "%", "effective_at": "2026-10-01T07:30:00Z",
"reference_range": {"low": 4.0, "high": 5.6},
"author_type": "import"
}'
{"id": "3296315c-…", "code": "4548-4", "system": "http://loinc.org", "display": "Hemoglobin A1c/Hemoglobin.total in Blood",
"category": "laboratory", "effective_at": "2026-10-01T07:30:00Z", "value": 6.4, "unit": "%",
"reference_range": {"low": 4.0, "high": 5.6}, "status": "final", "fhir": "Observation/3296315c-…"}
Amikor csak a kódot küldi el, a platform kitölti a standard LOINC nevet, mind a REST API-n, mind a FHIR API-n (/fhir/R4), így minden alkalmazás ugyanazt a display olvassa. Az Ön által küldött display változatlan marad.
Tartsa meg az eredeti megfogalmazást is. Egy laboratóriumi jelentés esetében a FHIR Observation code.text mezője tartalmazza a laboratórium nevét ("Hemoglobina glicozilata (HbA1c)") a LOINC kódolás mellett. A páciens továbbra is felismeri a papír alapú jelentését, és semmi sem vész el, ha a megfeleltetés valaha is megkérdőjeleződik.
3. lépés: mértékegységek
Használjon UCUM kódokat: mg/dL, mmol/L, %, mm[Hg], kg, cm, /min, Cel. Két szabály megakadályozza a legtöbb hibát:
- Ne konvertáljon csendben. Ha egy laboratórium glükózt mér
mmol/Legységben, és az Ön alkalmazásamg/dLegységben jeleníti meg, tárolja azt, amit a laboratórium mért, és csak megjelenítéskor konvertáljon. A tárolt érték nyomon követhető marad a jelentéshez. - Ellenőrizze a mértékegységet a kódhoz képest. A LOINC kódok specifikusak: az HbA1c
%egységben4548-4, míg az HbA1cmmol/molegységben egy másik LOINC kód. Az olyan érték, amelynek mértékegysége nem egyezik meg a kód elvárt mértékegységével, egy megfeleltetési hiba, nem pedig konverziós probléma.
Az Anpheros nem konvertálja az egységeket Ön helyett; azt az egységet tárolja, amit Ön küld.
4. lépés: dátumok
A dátumokat az ISO 8601 formátumra kell konvertálni az írás előtt, a forrás ismert formátumát használva. A 01.10.2026 dátum Romániában és sok európai országban október 1-jét jelent, de a 10/01/2026 dátum csak az Egyesült Államokban október 1-jét jelent. Az API nem fogad el semmit, ami nem ISO formátumú, ahelyett, hogy találgatna:
{"error": {"type": "invalid", "message": "Input should be a valid datetime or date, invalid character in year (at effective_at)", "field": "effective_at"}}
A labor csatlakozó kivétel: elfogadja a DD.MM.YYYY és a DD/MM/YYYY formátumokat, mert tudja, hogy európai jelentést olvas.
Azoknál a méréseknél, ahol a napszak is számít (vérnyomás, glükóz, gyógyszeradagok), az időt az időzónával együtt kell elküldeni. Egy bukaresti 23:30-kor vett lelet az UTC-ben az előző napra esik, és a beteg arra a napra várja, amikor azt vette.
5. lépés: Nincs duplikátum
A duplikátumok a próbálkozásokból, az ugyanazon jelentés kétszeri elküldéséből és két útvonalon érkező azonos értékekből származhatnak.
- Próbálkozások: küldjön egy
Idempotency-Keyazonosítót, amely azonosítja az értéket a forrásban, például a jelentés azonosítóját és a tesztet. Ugyanazon kérés ismételt elküldése ugyanazzal a kulccsal az első választ adja vissza, és nem tárol semmi újat. Az SDK-k minden létrehozáshoz hozzáadnak egyet. - Ugyanazon jelentés kétszer: a laboratóriumi összekötő egy stabil azonosítót épít minden sorhoz a jelentésből, kódból, dátumból és értékből, és kihagyja azokat a sorokat, amelyeket már importáltak.
- Két útvonal: tárolja a forrásrendszer saját azonosítóját a
X-Anpheros-Origin-Id-ben (vagy a FHIR erőforrásokon aidentifier-ben), és keressen rá, mielőtt olyan értékeket írna, amelyek egy másik útvonalon térhetnek vissza.
6. lépés: Profil ellenőrzése
Laboratóriumi eredmények esetén kérdezze meg a platformot, hogy egy erőforrás hogyan felel meg az HL7 Europe laboratóriumi jelentés profilnak, mielőtt megbízna benne:
curl -X POST "https://platform.anpheros.com/fhir/R4/Observation/\$validate?profile=eu-lab" -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/fhir+json" -d '{
"resourceType": "Observation", "status": "final",
"category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
"code": {"text": "HbA1c"}, "subject": {"reference": "Patient/'$PID'"},
"valueQuantity": {"value": 6.4, "unit": "%"}
}'
Ez a nem normalizált eredmény egy pontos listát kap:
{"resourceType": "OperationOutcome", "issue": [
{"severity": "error", "code": "invalid", "diagnostics": "Observation.code must carry a LOINC coding.", "expression": ["Observation.code"]},
{"severity": "error", "code": "required", "diagnostics": "Observation.effective[x] is required.", "expression": ["Observation.effective"]},
{"severity": "warning", "code": "business-rule", "diagnostics": "valueQuantity should carry a UCUM system and code.", "expression": ["Observation.valueQuantity"]},
{"severity": "warning", "code": "informational", "diagnostics": "No referenceRange: interpretation will need the laboratory's ranges.", "expression": ["Observation.referenceRange"]},
{"severity": "information", "code": "informational", "diagnostics": "No performer (laboratory) recorded.", "expression": ["Observation.performer"]},
{"severity": "information", "code": "informational", "diagnostics": "No issued time (when the laboratory released the result).", "expression": ["Observation.issued"]}]}
Minden probléma a fenti lépések egyikéhez kapcsolódik. Futtassa a $validate-et az integrációs tesztekben, minden forrásból származó valós mintákkal.
7. lépés: A forrás megőrzése
A normalizálás megváltoztatja az érték írásmódját, de soha nem azt, honnan származik. Minden írással küldje el a(z) author_type (device, import, practitioner, patient) és a(z) X-Anpheros-Source-System értékeket. Ez teszi lehetővé az orvos, az auditor vagy egy AI modell számára, hogy megkülönböztesse a laboratóriumi eredményt az otthonról beírt értéktől. Lásd: Az orvosi adatok eredetének magyarázata.
Checklist
- [ ] Minden forrásnak rendelkeznie kell egy leképezéssel a neveiről LOINC / ATC / ICD-10 kódokra, amelyet az integrációban tartasz nyilván
- [ ] Az egyértelműen nem azonosítható neveket leképezés nélkül hagyod, és jelentést készítesz róluk, soha nem találgatod meg őket
- [ ] UCUM egységek, a kódnak megfelelően; nincsenek rejtett átváltások
- [ ] ISO 8601 dátumok, időzónákkal, ahol az idő számít
- [ ] Referenciatartományok megtartása a laborértékekkel együtt
- [ ] Eredeti megfogalmazás megtartása (
code.text) - [ ] Idempotencia kulcsok vagy forrásazonosítók minden írási műveletnél
- [ ]
author_typeés a forrásrendszer minden írási műveletnél - [ ]
$validatetesztekben a laboreredményekhez
Gyakran ismételt kérdések
Mi az orvosi adatok normalizálása?
Az egészségügyi adatok átalakítása különböző forrásokból egy szabványos formátummá: megosztott kódok (LOINC tesztekhez és mérésekhez, ICD-10 diagnózisokhoz, ATC gyógyszerekhez), UCUM egységek, ISO dátumok, referenciatartományok és egy rögzített forrás, hogy a különböző rendszerekből származó értékek összehasonlíthatók, kombinálhatók és cserélhetők legyenek.
Minden értéket át kell alakítanom egyetlen egységre?
Tárolja az egységet, amelyben a forrás mérte, amíg az egy érvényes UCUM egység, amely megfelel a kódnak, és konvertálja megjelenítés vagy elemzés során. Ez minden tárolt értéket nyomon követhetővé tesz az eredeti jelentéshez.
Lehet-e a normalizálás teljesen automatikus?
Többnyire. A forrásban lévő kódok, ismert nevek és jól formázott egységek automatikusan hozzárendelhetők. Az egyértelmű nevek és az ismeretlen helyi kódok emberi döntést igényelnek forrásonként egyszer, ezt követően a hozzárendelés automatikus.
Kapcsolódó
- FHIR kódrendszerek
- Laboreredmény importálása FHIR rekordba
- Az orvosi adatok eredetének magyarázata
- Egészségügyi adatok interoperabilitása
- Orvosi adatok API
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card