AnpherosAnpheros PlatformDevelopers

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

Syntetická data pacientů pro testování

Synthea, persony a data generovaná modelem v porovnání, co dobrá testovací data obsahují a co se stalo, když jsme načetli pacienty ze Synthea na FHIR server.

Syntetická data pacientů jsou vymyšlené lékařské záznamy – pacienti, diagnózy, léky, laboratorní výsledky, návštěvy – generované tak, aby vypadaly a chovaly se jako skutečné, abyste mohli vytvářet, testovat a předvádět zdravotnický software, aniž byste se dotkli informací o zdraví kohokoli. Je to výchozí možnost pro vývoj: skutečná data pacientů v testovacím prostředí představují riziko pro soukromí a obvykle i právní problém. Tato stránka pokrývá hlavní způsoby získávání syntetických dat, co je pro každý z nich dobré a špatné, jak kolem nich navrhovat testy a jak je načítat na FHIR server – včetně toho, co se stalo, když jsme načetli pacienty ze Synthea do Anpheros.

Tři způsoby, jak získat syntetické pacienty

Přístup Příklad Vhodné pro Pozor na
Simulace založená na pravidlech Synthea (open source, od MITRE): simuluje životy od narození pomocí modulů pro nemoci a exportuje FHIR R4 bundles, C-CDA a CSV Objem, kompletní historie, standardní formáty Ve výchozím nastavení zaměřeno na USA (demografie, fakturační zdroje, kódy); vzory jsou pouze tak realistické, jak jsou moduly
Kurátorované persony Ručně navržení pacienti se specifickými stavy Dema, okrajové případy, opakovatelné testy Málo pacientů; někdo je musí udržovat v souladu
Statistické nebo ML generování z reálných dat Modely trénované na reálné datové sadě Realismus výzkumu Může dojít k úniku skutečných osob, pokud je provedeno špatně; vyžaduje hodnocení soukromí, nejen "je to syntetické"

Text napsaný jazykovým modelem na vyžádání je čtvrtým, rizikovým zdrojem: čte se dobře, ale často si protiřečí (lék bez stavu, který léčí, nemožné laboratorní hodnoty) a neměl by být základem testů.

Co dobrá testovací data obsahují

Realistické průměry nestačí. Kód selhává na okrajích, takže se ujistěte, že vaše data, ať už syntetická nebo ne, zahrnují:

Načítání pacientů ze Synthea na FHIR server

Synthea zapisuje jeden FHIR R4 transaction Bundle na pacienta. Vygenerovali jsme dva pacienty (java -jar synthea-with-dependencies.jar -p 2 -s 4242 Massachusetts) a načetli je do lokální instance Anpheros. Bundle prvního pacienta obsahoval 221 záznamů:

Ponecháno (typy, které Anpheros ukládá) Odstraněno (typy, které Anpheros neukládá)
Observation 61, Procedure 48, DiagnosticReport 24, Condition 15, Encounter 12, DocumentReference 12, Immunization 6, Patient, CareTeam, CarePlan, Provenance Claim 13, ExplanationOfBenefit 13, SupplyDelivery 9, Device 2, ImagingStudy 1, MedicationRequest 1

Načítací modul se serveru zeptá, které typy podporuje, ponechá pouze ty a zbytek odešle jako jednu transakci:

import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });   // sk_test_… key
const SUPPORTED = new Set(((await anpheros.fhir.metadata()) as any).rest[0].resource.map((r: any) => r.type));
const bundle = JSON.parse(await readFile(process.argv[2], 'utf8'));            // one Synthea patient file
const kept = bundle.entry.filter((e: any) => SUPPORTED.has(e.resource.resourceType));
const out: any = await anpheros.fhir.transaction({ ...bundle, entry: kept } as any);
console.log('created', out.entry.length);

Výsledek: 182 zdrojů vytvořeno v jedné transakci. urn:uuid reference mezi ponechanými záznamy byly přeloženy na ID serveru (result DiagnosticReport odkazuje na existující Observation); reference na 39 vyřazených záznamů zůstávají tak, jak byly zapsány, takže před načtením shromážděte fullUrl každého vyřazeného záznamu a odstraňte nebo převeďte ponechané reference, které na ně ukazují, a Patient/{id}/$summary vygeneroval International Patient Summary s 15 problémy, 6 imunizacemi, 15 výsledky a 28 vitálními funkcemi. $everything vrátil 363 záznamů, včetně provenance, kterou platforma přidává ke každému zápisu.

Tři věci, které je třeba vědět, než se na to budete spoléhat:

Názvy v Synthea zahrnují čísla (Marcelo725 Gulgowski816) záměrně, aby si je nikdo nemýlil s reálnými lidmi.

Syntetickí pacienti v sandboxu Anpheros

Každý projekt sandboxu Anpheros získá vlastní kopii 30 syntetických pacientů, generovaných z ručně navržených person: věk 3 až 85 let, několik zemí a jazyků EU, stavy kódované v ICD-10, léky v ATC, laboratorní výsledky a vitální funkce v LOINC s jednotkami UCUM a referenčními rozsahy, šest měsíců historie a dokumentů. Čerstvě inicializovaný projekt obsahuje 30 pacientů, 43 stavů, 51 medikačních záznamů, 1 811 pozorování, 57 dokumentů a 6 alergií. Data jsou deterministická — každý projekt vidí stejné osoby se stejnými hodnotami, pouze s různými ID — a reset je obnoví. Každá persona si zachovává stabilní identifikátor, takže Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|p02 vždy najde stejnou osobu. Viz Bezplatná FHIR databáze a sandbox.

Použijte persony, když chcete malé, koherentní záznamy, které pokrývají evropské jazyky a vlastní funkce platformy; načtěte Synthea, když potřebujete objem nebo historie ve stylu USA.

Často kladené dotazy

Co jsou syntetická data pacientů?

Vymyšlené zdravotní záznamy, které svou strukturou a vzory připomínají skutečné, ale nepopisují žádnou skutečnou osobu. Umožňují vývojářům vytvářet a testovat bez použití chráněných zdravotních informací.

Jsou syntetická data z definice anonymní?

Data generovaná na základě pravidel, jako jsou ta v Synthea, neobsahují žádné skutečné pacienty. Data generovaná modely trénovanými na skutečných záznamech mohou stále odhalit skutečné osoby a vyžadují posouzení soukromí před jejich sdílením.

Mohu importovat data ze Synthea na FHIR server?

Ano. Synthea exportuje transakční svazky FHIR R4. Odeberte typy zdrojů, které server nepodporuje, zkontrolujte, jak zpracovává podmíněné odkazy, a odešlete každý svazek jako transakci.

Obsahuje sandbox Anpheros syntetické pacienty?

Ano: 30 na projekt, se šesti měsíci kódované historie, plus až 50 testovacích pacientů, které si vytvoříte sami.

Související

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