Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Ako normalizovať zdravotnícke údaje
Návod: premeňte zdravotnícke údaje z mnohých zdrojov do jednej porovnateľnej formy — vyhľadávanie LOINC, jednotky UCUM, ISO dátumy, referenčné rozsahy, žiadne duplikáty pri opakovanom pokuse a validácia podľa európskeho laboratórneho profilu.
Normalizácia lekárskych dát znamená premenu hodnôt, ktoré prichádzajú v mnohých podobách, do jednej porovnateľnej formy: rovnaký kód pre rovnaký test, rovnaký systém jednotiek, dátumy v jednom formáte, každá hodnota s jej referenčným rozsahom a jej zdrojom, a žiadne duplikáty. Tento tutoriál ukazuje, ako to urobiť pred tým, ako dáta dosiahnu záznam HL7 FHIR R4: vyhľadávanie kódov LOINC a ATC, používanie jednotiek UCUM, odmietanie nejednoznačných dátumov, uchovávanie rozsahov, vyhýbanie sa duplikátom pri opakovanom pokuse a kontrola výsledku voči európskemu laboratórnemu profilu. Každá zobrazená odpoveď pochádza z Anpheros API.
Prečo je to dôležité
Rovnaký výsledok HbA1c k vám môže prísť ako „HbA1c 6,4 %“, „Hemoglobina glicozilata: 6.4“, „Glycated haemoglobin 46 mmol/mol“ alebo len ako laboratórny kód, ktorému rozumie iba jedno laboratórium. Kým sa tieto hodnoty nestanú jedným kódom s jednou jednotkou:
- graf HbA1c pacienta v priebehu času zobrazuje tri nesúvisiace čiary;
- upozornenie na „HbA1c nad 6,5 %“ vynechá dve z hodnôt;
- AI model vidí štyri fakty namiesto jedného trendu;
- iný systém, ktorý prijíma záznam, ho nedokáže interpretovať.
Normalizácia patrí do bodu, kde dáta vstupujú do záznamu, raz, nie do každej aplikácie, ktorá ich neskôr číta.
Čo obsahuje normalizovaná hodnota
| Časť | Normalizovaná forma | Príklad |
|---|---|---|
| Čo bolo merané | kód zo štandardného systému | LOINC 4548-4 (HbA1c), RxNorm 6809 (metformín), ICD-10 E11 (diabetes mellitus 2. typu) |
| Hodnota | číslo, alebo text iba vtedy, keď výsledok nie je numerický | 6.4 |
| Jednotka | UCUM | %, mg/dL, mm[Hg], kg |
| Kedy | dátum a čas v ISO 8601, s časovou zónou, keď je čas dôležitý | 2026-10-01T07:30:00Z |
| Normálny rozsah | dolná a horná hranica, v rovnakej jednotke | 4.0–5.6 |
| Zdroj | kto ju vyprodukoval a z akého systému | import z labx |
| Identita | niečo, čo robí opakovanie rozpoznateľným | kľúč na idempotenciu alebo identifikátor zdroja |
Ktorý kódový systém zodpovedá ktorému typu zdroja je uvedený v FHIR kódových systémoch.
Krok 1: Nájdite kód
Vyhľadajte terminológiu platformy podľa anglického alebo rumunského názvu, alebo podľa skratky:
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"
Obe vracajú rovnaký koncept:
{"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}
Pre lieky, Anpheros Search nájde látku podľa názvu alebo značky a poskytne jej RxNorm kód zložky a čísla produktov EMA:
curl "https://platform.anpheros.com/v1/search?q=metformin&type=treatment" -H "Authorization: Bearer $KEY"
Pole unit je jednotka, ktorú LOINC očakáva pre daný test. Použite ho na kontrolu toho, čo ste prijali. Vytvorte mapovanie z vlastných názvov každého zdroja na kódy raz, pre každý zdroj, a uchovávajte ho vo vašej integrácii. Nehádajte pri zápise: keď je názov nejednoznačný a nič v zdroji to nevyrieši, nechajte ho nemapovaný a požiadajte zdroj. Ako importovať laboratórne výsledky do FHIR záznamu ukazuje, ako sa nemapované laboratórne markery uchovávajú a hlásia.
Krok 2: Zápis s kódmi, jednotkami a rozsahy
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-…"}
Keď odošlete iba kód, platforma doplní štandardný názov LOINC, rovnako na REST API ako aj na FHIR API (/fhir/R4), takže každá aplikácia číta to isté display. display, ktorý odošlete sami, sa zachová tak, ako je.
Zachovajte aj pôvodné znenie. Pre laboratórnu správu, code.text na FHIR Observation drží názov laboratória ("Hemoglobina glicozilata (HbA1c)") vedľa kódovania LOINC. Pacient stále spoznáva svoju papierovú správu a nič sa nestratí, ak by sa mapovanie niekedy spochybnilo.
Krok 3: jednotky
Použite kódy UCUM: mg/dL, mmol/L, %, mm[Hg], kg, cm, /min, Cel. Dve pravidlá zabránia väčšine chýb:
- Nevykonávajte tiché konverzie. Ak laboratórium hlási glukózu v
mmol/La vaša aplikácia zobrazujemg/dL, uložte to, čo laboratórium nameralo, a konvertujte to pri zobrazovaní. Uložená hodnota zostáva sledovateľná k hláseniu. - Skontrolujte jednotku oproti kódu. Kódy LOINC sú špecifické: HbA1c v
%je4548-4, zatiaľ čo HbA1c vmmol/molmá iný kód LOINC. Hodnota, ktorej jednotka nezodpovedá očakávanej jednotke kódu, je chybou mapovania, nie problémom konverzie.
Anpheros nekonvertuje jednotky za vás; ukladá jednotku, ktorú odošlete.
Krok 4: dátumy
Pred zápisom konvertujte dátumy do formátu ISO 8601 pomocou známeho formátu zdroja. 01.10.2026 je 1. október v Rumunsku a mnohých európskych krajinách, ale 10/01/2026 je 1. október iba v Spojených štátoch. API odmieta čokoľvek, čo nie je v ISO formáte, namiesto toho, aby sa pokúšalo hádať:
{"error": {"type": "invalid", "message": "Input should be a valid datetime or date, invalid character in year (at effective_at)", "field": "effective_at"}}
Výnimkou je laboratórny konektor: akceptuje DD.MM.YYYY a DD/MM/YYYY, pretože vie, že číta európsku správu.
Pre merania, kde záleží na dennom čase (krvný tlak, glukóza, dávky liekov), posielajte čas s jeho časovým pásmom. Odčítanie o 23:30 v Bukurešti je v UTC predchádzajúci deň a pacient očakáva, že bude zaznamenané v deň, kedy ho vykonal.
Krok 5: žiadne duplikáty
Duplikáty vznikajú z opakovaných pokusov, z dvoch rovnakých odoslaných správ a z rovnakých hodnôt prichádzajúcich dvoma cestami.
- Opakované pokusy: odošlite
Idempotency-Key, ktorý identifikuje hodnotu vo zdroji, napríklad ID správy a test. Opätovné odoslanie rovnakej požiadavky s rovnakým kľúčom vráti prvú odpoveď a nič nové neuloží. SDK pridávajú k každému vytvoreniu jednu položku. - Tá istá správa dvakrát: konektor laboratória zostavuje stabilný identifikátor na riadok zo správy, kódu, dátumu a hodnoty a preskakuje už importované riadky.
- Dve cesty: uložte si vlastné ID zdrojového systému pomocou
X-Anpheros-Origin-Id(alebo videntifierna FHIR zdrojoch) a vyhľadajte ho pred zápisom hodnôt, ktoré sa môžu vrátiť inou cestou.
Krok 6: Kontrola voči profilu
Pre laboratórne výsledky sa pred tým, ako sa na ne budete spoliehať, opýtajte platformy, ako sa zdroj zhoduje s profilom laboratórnej správy HL7 Europe:
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": "%"}
}'
Tento nenormalizovaný výsledok získa presný zoznam:
{"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"]}]}
Každý problém zodpovedá jednému z vyššie uvedených krokov. Spustite $validate vo svojich integračných testoch s reálnymi vzorkami z každého zdroja.
Krok 7: Zachovanie zdroja
Normalizácia mení spôsob zápisu hodnoty, nikdy nie jej pôvod. Pri každom zápise posielajte author_type (device, import, practitioner, patient) a X-Anpheros-Source-System. To lekárovi, audítorovi alebo modelu AI umožní rozlíšiť laboratórny výsledok od hodnoty zadanej doma. Pozrite si Vysvetlenie pôvodu lekárskych údajov.
Kontrolný zoznam
- [ ] Každý zdroj má mapovanie svojich názvov na LOINC / ATC / ICD-10, uložené vo vašej integrácii
- [ ] Nejednoznačné názvy zostávajú nemapované a sú hlásené, nikdy sa nehádajú
- [ ] Jednotky UCUM, zodpovedajúce kódu; žiadna tichá konverzia
- [ ] Dátumy ISO 8601, s časovými zónami tam, kde na čase záleží
- [ ] Referenčné rozsahy uchované s laboratórnymi hodnotami
- [ ] Pôvodné znenie zachované (
code.text) - [ ] Idempotentné kľúče alebo zdrojové ID pri každom zápise
- [ ]
author_typea zdrojový systém pri každom zápise - [ ]
$validatev testoch pre laboratórne výsledky
Často kladené otázky
Čo je normalizácia lekárskych údajov?
Konverzia zdravotných údajov z rôznych zdrojov do jednej štandardnej formy: zdieľané kódy (LOINC pre testy a merania, ICD-10 pre diagnózy, ATC pre lieky), jednotky UCUM, dátumy ISO, referenčné rozsahy a zaznamenaný zdroj, aby bolo možné porovnávať, kombinovať a vymieňať hodnoty z rôznych systémov.
Mám konvertovať všetky hodnoty na jednu jednotku?
Ukladajte jednotku, v ktorej zdroj meral, pokiaľ je to platná jednotka UCUM zodpovedajúca kódu, a konvertujte pri zobrazovaní alebo analýze. Týmto spôsobom zostáva každá uložená hodnota sledovateľná k pôvodnej správe.
Môže byť normalizácia plne automatická?
Vo väčšine prípadov. Kódy vo zdroji, známe názvy a dobre formované jednotky je možné mapovať automaticky. Nejednoznačné názvy a neznáme lokálne kódy si vyžadujú ľudské rozhodnutie raz na zdroj, po ktorom je mapovanie automatické.
Súvisiace
- FHIR kódové systémy
- Ako importovať laboratórne výsledky do FHIR záznamu
- Vysvetlenie pôvodu lekárskych údajov
- Interoperabilita zdravotníckych údajov
- API pre lekárske údaje
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card