# परीक्षण के लिए सिंथेटिक रोगी डेटा

> सिंथेआ, पर्सोना और मॉडल-जनित डेटा की तुलना, अच्छे परीक्षण डेटा में क्या शामिल होता है, और जब हमने सिंथेआ रोगियों को FHIR सर्वर में लोड किया तो क्या हुआ।

Source: https://developers.anpheros.com/hi/guides/synthetic-patient-data

**सिंथेटिक रोगी डेटा आविष्कारित चिकित्सा रिकॉर्ड हैं — रोगी, निदान, दवाएं, लैब परिणाम, विज़िट — जिन्हें वास्तविक लोगों की तरह दिखने और व्यवहार करने के लिए उत्पन्न किया जाता है, ताकि आप किसी की भी स्वास्थ्य जानकारी को छुए बिना स्वास्थ्य सेवा सॉफ़्टवेयर बना सकें, उसका परीक्षण कर सकें और उसका प्रदर्शन कर सकें।** यह विकास के लिए डिफ़ॉल्ट है: परीक्षण वातावरण में वास्तविक रोगी डेटा एक गोपनीयता जोखिम है और आमतौर पर एक कानूनी समस्या है। यह पृष्ठ सिंथेटिक डेटा प्राप्त करने के मुख्य तरीकों, प्रत्येक की अच्छाई और बुराई, इसके आसपास परीक्षणों को कैसे डिज़ाइन किया जाए, और इसे FHIR सर्वर में कैसे लोड किया जाए — जिसमें यह भी शामिल है कि जब हमने Anpheros में सिंथेआ रोगियों को लोड किया तो क्या हुआ।

## सिंथेटिक मरीज़ प्राप्त करने के तीन तरीके

| तरीका | उदाहरण | किसके लिए अच्छा है | ध्यान दें |
|---|---|---|---|
| नियम-आधारित सिमुलेशन | [Synthea](https://github.com/synthetichealth/synthea) (ओपन सोर्स, MITRE से): रोग मॉड्यूल के साथ जन्म से जीवन का अनुकरण करता है और FHIR R4 बंडल, C-CDA और CSV निर्यात करता है | वॉल्यूम, पूर्ण इतिहास, मानक प्रारूप | डिफ़ॉल्ट रूप से US-केंद्रित (जनसांख्यिकी, बिलिंग संसाधन, कोड); पैटर्न केवल मॉड्यूल जितने ही यथार्थवादी होते हैं |
| क्यूरेटेड पर्सोना | विशिष्ट स्थितियों वाले हाथ से डिज़ाइन किए गए मरीज़ | डेमो, एज केस, दोहराने योग्य परीक्षण | कुछ मरीज़; किसी को उन्हें सुसंगत रखना होगा |
| वास्तविक डेटा से सांख्यिकीय या ML जनरेशन | वास्तविक डेटासेट पर प्रशिक्षित मॉडल | अनुसंधान यथार्थवाद | यदि खराब तरीके से किया गया तो वास्तविक लोगों को लीक कर सकता है; केवल "यह सिंथेटिक है" के बजाय गोपनीयता मूल्यांकन की आवश्यकता है |

एक भाषा मॉडल द्वारा अनुरोध पर लिखा गया टेक्स्ट एक चौथा, जोखिम भरा स्रोत है: यह अच्छी तरह से पढ़ता है लेकिन अक्सर खुद का खंडन करता है (एक ऐसी दवा जिसके लिए वह इलाज करती है, असंभव प्रयोगशाला मान) और परीक्षणों का आधार नहीं होना चाहिए।

## अच्छे परीक्षण डेटा में क्या शामिल होता है

यथार्थवादी औसत पर्याप्त नहीं हैं। कोड किनारों पर टूट जाता है, इसलिए सुनिश्चित करें कि आपके डेटा, सिंथेटिक या नहीं, में शामिल हैं:

- **गुम और आंशिक डेटा:** एक लैब परिणाम बिना संदर्भ सीमा के, एक दवा बिना खुराक के, एक रोगी बिना जन्म तिथि के।
- **इकाइयाँ और प्रारूप:** mg/dL और mmol/L में समान परीक्षण, दशमलव अल्पविराम, समय क्षेत्रों के साथ और बिना समय के।
- **सुधार और इतिहास:** एक संशोधित परिणाम, एक हटाई गई (`entered-in-error`) प्रविष्टि, एक ठीक हुई स्थिति।
- **डुप्लिकेट:** एक ही रिपोर्ट दो बार भेजी गई।
- **लंबे और छोटे इतिहास:** एक नवजात शिशु, दस साल के डेटा वाला कोई व्यक्ति, एक मुलाकात वाला कोई व्यक्ति।
- **कई भाषाएँ और देश** यदि आप एक से अधिक बाज़ार में सेवा करते हैं।
- **सहमति परिवर्तन:** एक ऐप जिसकी एक्सेस एक सत्र के बीच में रद्द कर दी गई है।

## Synthea रोगियों को FHIR सर्वर में लोड करना

Synthea प्रति रोगी एक FHIR R4 `transaction` बंडल लिखता है। हमने दो रोगी (`java -jar synthea-with-dependencies.jar -p 2 -s 4242 Massachusetts`) उत्पन्न किए और उन्हें Anpheros के स्थानीय इंस्टेंस में लोड किया। पहले रोगी के बंडल में 221 प्रविष्टियाँ थीं:

| रखा गया (Anpheros द्वारा संग्रहीत प्रकार) | हटाया गया (Anpheros द्वारा संग्रहीत नहीं किए जाने वाले प्रकार) |
|---|---|
| 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 |

लोडर सर्वर से पूछता है कि वह किन प्रकारों का समर्थन करता है, केवल उन्हीं को रखता है और बाकी को एक लेनदेन के रूप में पोस्ट करता है:

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

परिणाम: एक लेनदेन में 182 संसाधन बनाए गए। रखे गए प्रविष्टियों के बीच `urn:uuid` संदर्भ सर्वर आईडी में हल किए गए (एक DiagnosticReport का `result` एक Observation की ओर इशारा करता है जो मौजूद है); 39 छोड़ी गई प्रविष्टियों के संदर्भ वैसे ही रहते हैं जैसे लिखे गए थे, इसलिए लोड करने से पहले, छोड़ी गई प्रत्येक प्रविष्टि के `fullUrl` को इकट्ठा करें और रखे गए संदर्भों को हटा दें या परिवर्तित करें जो उन पर इंगित करते हैं, और `Patient/{id}/$summary` ने 15 समस्याओं, 6 टीकाकरणों, 15 परिणामों और 28 महत्वपूर्ण संकेतों के साथ एक अंतर्राष्ट्रीय रोगी सारांश (International Patient Summary) उत्पन्न किया। `$everything` ने प्लेटफ़ॉर्म द्वारा प्रत्येक राइट में जोड़े गए प्रोवेनेंस सहित 363 प्रविष्टियाँ लौटाईं।

इस पर भरोसा करने से पहले जानने योग्य तीन बातें:

- **सशर्त संदर्भ वैसे ही रहते हैं जैसे लिखे गए थे।** Synthea सशर्त संदर्भों जैसे `Practitioner?identifier=http://hl7.org/fhir/sid/us-npi|9999967398` के साथ चिकित्सकों, संगठनों और स्थानों की ओर इशारा करता है। Anpheros एक लेनदेन में सशर्त संदर्भों को हल नहीं करता है; वे वैसे ही संग्रहीत होते हैं जैसे लिखे गए थे, उनके `display` टेक्स्ट के साथ, और किसी संसाधन में हल नहीं होते हैं। यदि आपका कोड उन लिंक का अनुसरण करता है, तो चिकित्सकों और संगठनों को अलग से लोड करें और संदर्भों को फिर से लिखें।
- **बिलिंग और आपूर्ति डेटा चला गया है।** क्लेम और लाभ के स्पष्टीकरण Synthea के US लागत मॉडल के लिए केंद्रीय हैं और Anpheros में नैदानिक ​​रिकॉर्ड का हिस्सा नहीं हैं।
- **प्रिस्क्रिप्शन अनुपस्थित हो जाते हैं, परिवर्तित नहीं होते हैं।** `MedicationRequest` हटा दिया जाता है; यदि आपको रिकॉर्ड में दवाओं की आवश्यकता है, तो लोड करने से पहले उन्हें `MedicationStatement` में परिवर्तित करें।

Synthea में नाम जानबूझकर संख्याओं (`Marcelo725 Gulgowski816`) के साथ शामिल किए जाते हैं, ताकि कोई भी उन्हें वास्तविक लोगों के साथ भ्रमित न करे।

## Anpheros सैंडबॉक्स में सिंथेटिक मरीज़

हर Anpheros सैंडबॉक्स प्रोजेक्ट को 30 सिंथेटिक मरीज़ों की अपनी कॉपी मिलती है, जो हाथ से डिज़ाइन किए गए पर्सोना से उत्पन्न होते हैं: 3 से 85 वर्ष की आयु, कई यूरोपीय देश और भाषाएँ, ICD-10 में कोड की गई स्थितियाँ, ATC में दवाएँ, UCUM इकाइयों और संदर्भ श्रेणियों के साथ LOINC में लैब और वाइटल्स, छह महीने का इतिहास और दस्तावेज़। एक ताज़ा सीडेड प्रोजेक्ट में 30 मरीज़, 43 स्थितियाँ, 51 दवा कथन, 1,811 अवलोकन, 57 दस्तावेज़ और 6 एलर्जी होती हैं। डेटा नियतात्मक है — हर प्रोजेक्ट को समान लोग समान मानों के साथ मिलते हैं, केवल अलग आईडी — और एक रीसेट इसे पुनर्स्थापित करता है। प्रत्येक पर्सोना एक स्थिर पहचानकर्ता रखता है, इसलिए `Patient?identifier=https://anpheros.com/fhir/sid/sandbox-persona|p02` हमेशा एक ही व्यक्ति को ढूंढता है। [Free FHIR database and sandbox](https://developers.anpheros.com/hi/guides/free-fhir-database) देखें।

उन पर्सोना का उपयोग करें जब आप यूरोपीय भाषाओं और प्लेटफ़ॉर्म की अपनी सुविधाओं को कवर करने वाले छोटे, सुसंगत रिकॉर्ड चाहते हैं; जब आपको वॉल्यूम या यूएस-शैली के इतिहास की आवश्यकता हो तो Synthea लोड करें।

## अक्सर पूछे जाने वाले प्रश्न

### सिंथेटिक रोगी डेटा क्या है?
काल्पनिक स्वास्थ्य रिकॉर्ड जो संरचना और पैटर्न में वास्तविक लोगों के समान होते हैं, लेकिन किसी वास्तविक व्यक्ति का वर्णन नहीं करते हैं। यह डेवलपर्स को संरक्षित स्वास्थ्य जानकारी का उपयोग किए बिना निर्माण और परीक्षण करने की अनुमति देता है।

### क्या सिंथेटिक डेटा परिभाषा के अनुसार गुमनाम है?
नियमों से उत्पन्न डेटा, जैसे Synthea's, में कोई वास्तविक रोगी नहीं होता है। वास्तविक रिकॉर्ड पर प्रशिक्षित मॉडल द्वारा उत्पन्न डेटा अभी भी वास्तविक लोगों को प्रकट कर सकता है और साझा किए जाने से पहले गोपनीयता मूल्यांकन की आवश्यकता होती है।

### क्या मैं Synthea डेटा को FHIR सर्वर में आयात कर सकता हूँ?
हाँ। Synthea FHIR R4 ट्रांजेक्शन बंडल निर्यात करता है। उन संसाधन प्रकारों को हटा दें जिन्हें सर्वर समर्थन नहीं करता है, जांचें कि यह सशर्त संदर्भों को कैसे संभालता है, और प्रत्येक बंडल को एक ट्रांजेक्शन के रूप में पोस्ट करें।

### क्या Anpheros सैंडबॉक्स में सिंथेटिक रोगी शामिल हैं?
हाँ: प्रति प्रोजेक्ट 30, छह महीने के कोडेड इतिहास के साथ, साथ ही आपके द्वारा स्वयं बनाए गए 50 परीक्षण रोगी तक।

## संबंधित

- [मुफ़्त FHIR डेटाबेस और सैंडबॉक्स](https://developers.anpheros.com/hi/guides/free-fhir-database)
- [FHIR R4 JSON उदाहरण](https://developers.anpheros.com/tools/fhir-examples/)
- [मेडिकल डेटा को कैसे सामान्य करें](https://developers.anpheros.com/hi/guides/normalize-medical-data)
- [FHIR R4 का उपयोग करके मेडिकल रिकॉर्ड कैसे स्टोर करें](https://developers.anpheros.com/hi/guides/store-medical-records-fhir)
- [FHIR प्लेटफ़ॉर्म](https://developers.anpheros.com/hi/guides/fhir)
