AnpherosAnpheros PlatformDevelopers

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

Date sintetice de pacienți pentru testare

Synthea, persoane și date generate de model comparate, ce conțin datele bune de testare și ce s-a întâmplat când am încărcat pacienți Synthea într-un server FHIR.

Datele sintetice de pacienți sunt înregistrări medicale inventate — pacienți, diagnostice, medicamente, rezultate de laborator, vizite — generate pentru a arăta și a se comporta ca cele reale, astfel încât să puteți construi, testa și demonstra software medical fără a atinge informațiile de sănătate ale nimănui. Este implicit pentru dezvoltare: datele reale ale pacienților într-un mediu de testare reprezintă un risc de confidențialitate și, de obicei, o problemă legală. Această pagină acoperă principalele modalități de a obține date sintetice, la ce este bun și la ce este rău fiecare, cum să proiectați teste în jurul lor și cum să le încărcați într-un server FHIR — inclusiv ce s-a întâmplat când am încărcat pacienți Synthea în Anpheros.

Trei modalități de a obține pacienți sintetici

Abordare Exemplu Potrivit pentru Atenție la
Simulare bazată pe reguli Synthea (open source, de la MITRE): simulează vieți de la naștere cu module de boli și exportă bundle-uri FHIR R4, C-CDA și CSV Volum, istorice complete, formate standard Centrat pe SUA implicit (demografie, resurse de facturare, coduri); modelele sunt realiste doar în măsura modulelor
Personaje curate Pacienți proiectați manual cu afecțiuni specifice Demo-uri, cazuri limită, teste repetabile Puțini pacienți; cineva trebuie să le mențină coerența
Generare statistică sau ML din date reale Modele antrenate pe un set de date real Realism în cercetare Poate divulga persoane reale dacă este făcută prost; necesită evaluare a confidențialității, nu doar "este sintetic"

Textul scris de un model lingvistic la cerere este o a patra sursă, riscantă: se citește bine, dar adesea se contrazice (un medicament fără afecțiunea pe care o tratează, valori de laborator imposibile) și nu ar trebui să stea la baza testelor.

Ce conține un set bun de date de test

Mediile realiste nu sunt suficiente. Codul se defectează la limite, așa că asigurați-vă că datele dvs., fie sintetice, fie nu, includ:

Încărcarea pacienților Synthea într-un server FHIR

Synthea scrie un pachet FHIR R4 transaction per pacient. Am generat doi pacienți (java -jar synthea-with-dependencies.jar -p 2 -s 4242 Massachusetts) și i-am încărcat într-o instanță locală Anpheros. Pachetul primului pacient a avut 221 de intrări:

Păstrate (tipuri pe care Anpheros le stochează) Eliminate (tipuri pe care Anpheros nu le stochează)
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

Loader-ul întreabă serverul ce tipuri suportă, păstrează doar pe acelea și postează restul ca o singură tranzacție:

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);

Rezultat: 182 de resurse create într-o singură tranzacție. Referințele urn:uuid dintre intrările păstrate au fost rezolvate la ID-uri de server (un result DiagnosticReport indică un Observation existent); referințele către cele 39 de intrări eliminate rămân așa cum au fost scrise, deci înainte de încărcare, colectați fullUrl fiecărei intrări eliminate și ștergeți sau convertiți referințele păstrate care indică spre ele, iar Patient/{id}/$summary a produs un International Patient Summary cu 15 probleme, 6 imunizări, 15 rezultate și 28 de semne vitale. $everything a returnat 363 de intrări, inclusiv provenance pe care platforma o adaugă la fiecare scriere.

Trei lucruri de știut înainte de a vă baza pe ea:

Numele din Synthea includ numere (Marcelo725 Gulgowski816) intenționat, astfel încât nimeni să nu le confunde cu persoane reale.

Pacienți sintetici în sandbox-ul Anpheros

Fiecare proiect sandbox Anpheros primește propria copie a 30 de pacienți sintetici, generați din persoane create manual: vârste de la 3 la 85 de ani, mai multe țări și limbi din UE, afecțiuni codificate în ICD-10, medicamente în ATC, analize de laborator și semne vitale în LOINC cu unități UCUM și intervale de referință, șase luni de istoric și documente. Un proiect proaspăt populat conține 30 de pacienți, 43 de afecțiuni, 51 de declarații de medicamente, 1.811 observații, 57 de documente și 6 alergii. Datele sunt deterministe — fiecare proiect vede aceiași oameni cu aceleași valori, doar cu ID-uri diferite — iar o resetare le restaurează. Fiecare persoană păstrează un identificator stabil, astfel încât Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|p02 găsește întotdeauna aceeași persoană. Vezi Bază de date FHIR gratuită și sandbox.

Folosiți persoanele atunci când doriți înregistrări mici, coerente, care acoperă limbile europene și caracteristicile proprii ale platformei; încărcați Synthea atunci când aveți nevoie de volum sau de istorii în stil american.

Întrebări frecvente

Ce este datele sintetice despre pacienți?

Înregistrări medicale inventate, care seamănă cu cele reale ca structură și modele, dar nu descriu nicio persoană reală. Permite dezvoltatorilor să construiască și să testeze fără a utiliza informații protejate despre sănătate.

Datele sintetice sunt anonime prin definiție?

Datele generate din reguli, precum cele ale Synthea, nu conțin pacienți reali. Datele generate de modele antrenate pe înregistrări reale pot dezvălui în continuare persoane reale și necesită o evaluare a confidențialității înainte de a fi partajate.

Pot importa date Synthea într-un server FHIR?

Da. Synthea exportă bundle-uri de tranzacții FHIR R4. Eliminați tipurile de resurse pe care serverul nu le suportă, verificați cum gestionează referințele condiționale și postați fiecare bundle ca o tranzacție.

Sandbox-ul Anpheros include pacienți sintetici?

Da: 30 per proiect, cu șase luni de istoric codificat, plus până la 50 de pacienți de test pe care îi creați singur.

Conexe

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