संक्षिप्त उत्तर: बेस FHIR रिसोर्स जानबूझकर ढीले रखे गए हैं: लगभग सब कुछ वैकल्पिक है और अधिकांश कोड केवल उदाहरण हैं, ताकि एक मानक हर देश में फिट हो सके। एक प्रोफ़ाइल एक StructureDefinition है जो एक उपयोग के लिए एक रिसोर्स को टाइट करती है: इस संदर्भ में, Patient में इस प्रकार का एक पहचानकर्ता होना चाहिए, Observation.code इस सूची से एक LOINC कोड होना चाहिए, यह तत्व समर्थित होना चाहिए, वह दिखाई नहीं दे सकता है। एक एक्सटेंशन बेस रिसोर्स में कमी वाले तत्व को जोड़ता है, जिसे एक URL द्वारा पहचाना जाता है और अपने स्वयं के StructureDefinition द्वारा परिभाषित किया जाता है। इंप्लीमेंटेशन गाइड (US Core, IPS, राष्ट्रीय गाइड) प्रोफाइल, एक्सटेंशन, वैल्यू सेट और उदाहरणों का संग्रह हैं। एक रिसोर्स meta.profile में दावा करता है कि वह किन प्रोफाइल का पालन करता है, और एक वैलिडेटर इसकी जांच करता है।
एक प्रोफ़ाइल क्या बदल सकती है
FHIR प्रोफ़ाइल किसी संसाधन को केवल उसे सीमित करके बदल सकती है: कार्डिनैलिटी को कसना, तत्वों को 'मस्ट-सपोर्ट' के रूप में चिह्नित करना, मानों या पैटर्न को ठीक करना, मान सेट से तत्वों को एक स्ट्रेंथ के साथ बांधना, सूचियों को नामित भागों में स्लाइस करना, विकल्प प्रकारों को प्रतिबंधित करना, FHIRPath इनवेरिएंट जोड़ना और संदर्भ लक्ष्यों को सीमित करना। एक प्रोफ़ाइल तत्व जोड़ नहीं सकती, कुछ भी नाम बदल नहीं सकती या बेस स्पेसिफिकेशन को ढीला नहीं कर सकती।
| बाधा | यह क्या करता है | उदाहरण |
|---|---|---|
| कार्डिनैलिटी | वैकल्पिक तत्वों को आवश्यक बनाना, या उन्हें रोकना | Patient.identifier 1..*; Patient.photo 0..0 |
| अवश्य समर्थन करें | प्राप्तकर्ताओं को तत्व को स्टोर और प्रदर्शित करने में सक्षम होना चाहिए यदि भेजा गया हो | US Core birthDate को अवश्य-समर्थन के रूप में चिह्नित करता है |
| निश्चित मान या पैटर्न | एक तत्व को एक मान पर लॉक करना | Observation.category vital-signs पर निश्चित |
| बाइंडिंग | एक तत्व को एक स्ट्रेंथ वाले वैल्यू सेट पर इंगित करना | Observation.code vital signs सूची से बंधा हुआ, आवश्यक |
| स्लाइसिंग | एक सूची को अपने स्वयं के नियमों के साथ नामित भागों में विभाजित करना | रक्तचाप: सिस्टोलिक और डायस्टोलिक में विभाजित घटक |
| प्रकार प्रतिबंध | एक विकल्प को सीमित करना | value[x] valueQuantity तक सीमित |
| अपरिवर्तनीय | एक FHIRPath नियम जो धारण करना चाहिए | "effective[x] मौजूद होना चाहिए" या "value या dataAbsentReason" |
| संदर्भ लक्ष्य | सीमित करें कि एक संदर्भ क्या इंगित कर सकता है | विषय केवल Patient, और केवल इस प्रोफ़ाइल के अनुरूप रोगी |
एक प्रोफ़ाइल केवल संकीर्ण कर सकती है। यह तत्व नहीं जोड़ सकती (यही एक्सटेंशन के लिए है), कुछ भी नाम नहीं बदल सकती या बेस को ढीला नहीं कर सकती।
बाइंडिंग स्ट्रेंथ
FHIR चार बाइंडिंग स्ट्रेंथ को परिभाषित करता है। required: कोड मान सेट से आना चाहिए। extensible: यदि कोई अवधारणा फिट बैठती है तो मान सेट का उपयोग करें; अन्यथा एक अलग कोड की अनुमति है। preferred: अनुशंसित, लागू नहीं। example: केवल उदाहरणात्मक, जो अधिकांश बेस संसाधनों में होता है। extensible को required के रूप में गलत पढ़ना झूठे सत्यापन त्रुटियों का एक सामान्य स्रोत है।
एक पठनीय प्रोफ़ाइल अंश
एक FHIR प्रोफ़ाइल एक StructureDefinition है जिसका डिफरेंशियल बेस संसाधन से भिन्न केवल बाधाओं को सूचीबद्ध करता है, जबकि इसका स्नैपशॉट हर तत्व को सूचीबद्ध करता है। नीचे दिया गया पठनीय अंश Observation को होम ब्लड प्रेशर तक सीमित करता है: कोड LOINC 85354-9 पर फिक्स किया गया है और कंपोनेंट को ठीक एक सिस्टोलिक और एक डायस्टोलिक भाग में स्लाइस किया गया है।
एक प्रोफ़ाइल का डिफरेंशियल केवल वही सूचीबद्ध करता है जो बेस से बदला है; स्नैपशॉट सब कुछ सूचीबद्ध करता है। यह डिफरेंशियल कहता है कि एक रक्तचाप Observation में LOINC 85354-9 और ठीक दो घटक होने चाहिए:
{
"resourceType": "StructureDefinition",
"url": "https://example.org/fhir/StructureDefinition/bp-home",
"name": "HomeBloodPressure",
"status": "active",
"kind": "resource",
"abstract": false,
"type": "Observation",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
"derivation": "constraint",
"differential": {"element": [
{"id": "Observation.code", "path": "Observation.code",
"patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "85354-9"}]}},
{"id": "Observation.component", "path": "Observation.component", "min": 2, "max": "2",
"slicing": {"discriminator": [{"type": "pattern", "path": "code"}], "rules": "closed"}},
{"id": "Observation.component:systolic", "path": "Observation.component", "sliceName": "systolic", "min": 1, "max": "1"},
{"id": "Observation.component:systolic.code", "path": "Observation.component.code",
"patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "8480-6"}]}},
{"id": "Observation.component:diastolic", "path": "Observation.component", "sliceName": "diastolic", "min": 1, "max": "1"},
{"id": "Observation.component:diastolic.code", "path": "Observation.component.code",
"patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "8462-4"}]}}
]}
}
प्रोफ़ाइल शायद ही कभी हाथ से लिखी जाती हैं; लेखक SUSHI के साथ FHIR Shorthand (FSH) का उपयोग करते हैं, या Forge और Simplifier जैसे टूल का उपयोग करते हैं, और HL7 IG Publisher के साथ प्रकाशित करते हैं। गाइड पैकेज (hl7.fhir.us.core#6.1.0, hl7.fhir.uv.ips#1.1.0) के रूप में वितरित किए जाते हैं जिन्हें वैलिडेटर और सर्वर लोड करते हैं।
एक्सटेंशन
एक एक्सटेंशन extension (या modifierExtension जब यह रिसोर्स के अर्थ को बदलता है और इसे अनदेखा नहीं किया जाना चाहिए) में रखा गया एक की-वैल्यू तत्व है। इसका url इसके StructureDefinition का कैनोनिकल URL है; इसका मान एक टाइप किया हुआ value[x] है, या नेस्टेड एक्सटेंशन हैं। जन्म स्थान Patient पर एक HL7-परिभाषित एक्सटेंशन है:
{
"resourceType": "Patient",
"id": "example",
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
"valueAddress": {"city": "Lyon", "country": "FR"}
}],
"name": [{"family": "Doe", "given": ["Jane"]}]
}
अच्छे अभ्यास के नियम: एक को परिभाषित करने से पहले एक मौजूदा एक्सटेंशन (HL7 का रजिस्ट्री और राष्ट्रीय गाइड) की तलाश करें; इसे अपने नियंत्रण वाले डोमेन के तहत एक URL दें; इसे StructureDefinition में परिभाषित करें ताकि अन्य इसे मान्य कर सकें; किसी ऐसी चीज़ के लिए कभी भी एक्सटेंशन का उपयोग न करें जो बेस तत्व पहले से कवर करता हो।
meta.profile और सत्यापन
meta.profile उन कैनोनिकल URL की सूची है जिन्हें एक FHIR संसाधन अनुरूप होने का दावा करता है, और दावा करना साबित करना नहीं है। एक वैलिडेटर संसाधन को बेस स्पेसिफिकेशन और प्रत्येक दावा की गई प्रोफ़ाइल के विरुद्ध, या आपके द्वारा नामित प्रोफ़ाइल के विरुद्ध जांचता है। HL7 संदर्भ वैलिडेटर पैकेजों के साथ स्थानीय रूप से चलता है, और FHIR सर्वर $validate ऑपरेशन को एक्सपोज़ करते हैं जो एक प्रोफ़ाइल पैरामीटर स्वीकार करता है।
meta.profile उन कैनोनिकल URL को सूचीबद्ध करता है जिनका रिसोर्स पालन करने का दावा करता है। दावा करना साबित करना नहीं है: एक वैलिडेटर रिसोर्स को बेस स्पेसिफिकेशन और दावा किए गए प्रत्येक प्रोफ़ाइल (या आपके द्वारा उपयोग करने के लिए कहे गए प्रोफ़ाइल) के विरुद्ध जांचता है। HL7 संदर्भ वैलिडेटर (validator_cli.jar) स्थानीय रूप से चलता है और पैकेज लोड करता है; सर्वर POST /Observation/$validate?profile=… प्रदान करते हैं; IG Publisher एक गाइड में सभी उदाहरणों को मान्य करता है। एक रिसोर्स एक साथ कई प्रोफाइल का पालन कर सकता है (एक राष्ट्रीय Patient प्रोफ़ाइल और IPS Patient) जब तक कि वे विरोधाभासी न हों।
दो व्यावहारिक नियम: एक सर्वर जो अपनी CapabilityStatement में एक प्रोफ़ाइल घोषित करता है, उसे विफल होने वाले रिसोर्स को अस्वीकार करना चाहिए; एक क्लाइंट जो रिसोर्स प्राप्त करता है, उसे अज्ञात एक्सटेंशन या अतिरिक्त तत्वों को अस्वीकार नहीं करना चाहिए जिन्हें एक प्रोफ़ाइल ने नहीं रोका है, क्योंकि बेस स्पेसिफिकेशन उन्हें अनुमति देता है।
Anpheros में
Anpheros Platform एक FHIR R4 सर्वर है जो अवलोकनों के लिए LOINC, दवाओं के लिए ATC और जहां लागू हो SNOMED CT का उपयोग करता है, और एक मुफ्त वैलिडेटर प्रदान करता है जो FHIR R4 के विरुद्ध संसाधन की संरचना की जांच करता है। जब कोई क्लिनिक राष्ट्रीय या IPS प्रोफ़ाइल पर सेट meta.profile के साथ संसाधन भेजता है, तो दावा संरक्षित रहता है ताकि एक डाउनस्ट्रीम सिस्टम उसके विरुद्ध मान्य कर सके।
निःशुल्क वैलिडेटर डेवलपर साइट पर है। स्वयं गाइड के लिए, FHIR कार्यान्वयन गाइडों की व्याख्या देखें।
संबंधित पृष्ठ
- FHIR इंप्लीमेंटेशन गाइड को समझाना
- FHIR में CodeableConcept और कोडिंग
- FHIR Observation को समझाना
- FHIR Patient रिसोर्स को समझाना
- Terminology सर्वर को समझाना
- FHIR वैलिडेटर (डेवलपर साइट)
स्रोत
- HL7 FHIR R4: FHIR को प्रोफाइल करना
- HL7 FHIR R4: विस्तारशीलता
- HL7 FHIR R4: StructureDefinition
- HL7 FHIR R4: Terminology बाइंडिंग
- HL7 FHIR Shorthand
- HL7 FHIR वैलिडेटर
- HL7 FHIR R4: patient-birthPlace एक्सटेंशन
अक्सर पूछे जाने वाले प्रश्न
क्या एक प्रोफ़ाइल एक रिसोर्स में एक नया तत्व जोड़ सकती है?
नहीं। प्रोफ़ाइल केवल बाधाएं डालती हैं। नया डेटा एक एक्सटेंशन में जाता है, जिसे प्रोफ़ाइल तब किसी भी अन्य तत्व की तरह आवश्यक या वर्जित कर सकती है।
must-support वास्तव में क्या आवश्यक है?
इंप्लीमेंटेशन गाइड इसे परिभाषित करता है; आम तौर पर कि एक प्रेषक तत्व को पॉप्युलेट करता है जब उसके पास डेटा होता है और एक प्राप्तकर्ता इसे स्टोर करता है और प्रदर्शित कर सकता है। यह तत्व को अनिवार्य नहीं बनाता है।
यदि किसी रिसोर्स में कोई meta.profile नहीं है, तो क्या वह अमान्य है?
नहीं। meta.profile एक दावा है, आवश्यकता नहीं। एक सर्वर या गाइड इसे आवश्यक कर सकता है; बेस स्पेसिफिकेशन नहीं करता है। वैलिडेटर से उस प्रोफ़ाइल के विरुद्ध जांच करने के लिए कहा जा सकता है जिसे रिसोर्स घोषित नहीं करता है।
मुझे कैसे पता चलेगा कि मेरे देश में कौन सी प्रोफ़ाइल का उपयोग करना है?
प्रत्येक राष्ट्रीय FHIR समुदाय एक कोर गाइड (US Core, UK Core, nl-core, जर्मन Basisprofile, आदि) प्रकाशित करता है; इंप्लीमेंटेशन गाइड पेज बताता है कि उन्हें कैसे खोजना है। सीमा पार सारांश IPS का उपयोग करते हैं।
सैंडबॉक्स में मुफ़्त आज़माएँ
5 मिनट में आपकी पहली FHIR कॉल. एक HL7 FHIR R4 API जिसमें मरीज़ की सहमति शामिल है: सैंडबॉक्स में आज़माएं, फिर अपना ऐप या क्लिनिक सिस्टम कनेक्ट करें।
मुफ़्त · 30 सिंथेटिक मरीज़ · कोई कार्ड नहीं

