# संस्करण और बहिष्करण (Versioning and deprecation)

> FHIR R4 और REST v1 इंटरफ़ेस, वेबहुक पेलोड और SDK कैसे बदलते हैं, और ब्रेकिंग परिवर्तनों की घोषणा कैसे की जाती है।

Source: https://developers.anpheros.com/hi/guides/versioning

- `/fhir/R4` पर **FHIR R4** और `/v1` पर **REST v1** स्थिर इंटरफ़ेस हैं। योगात्मक परिवर्तन (नए फ़ील्ड, नए संसाधन प्रकार, नए एंडपॉइंट, नए ईवेंट प्रकार) बिना सूचना के जारी किए जाते हैं; SDK और `docs/openapi.json` एक ही कमिट में पुनर्जीवित होते हैं और अन्यथा एक परीक्षण विफल हो जाता है।
- **ब्रेकिंग परिवर्तन** एक नया उपसर्ग (`/v2`) प्राप्त करते हैं और कम से कम **6 महीने** का समानांतर संचालन होता है; पुराने उपसर्ग उस अवधि के दौरान `Deprecation` और `Sunset` हेडर के साथ उत्तर देते हैं।
- **वेबहुक पेलोड** एक `type` ले जाते हैं; नए प्रकार योगात्मक होते हैं। `*` के ग्राहक को अज्ञात प्रकारों को अनदेखा करना चाहिए।
- **SDK** semver का पालन करते हैं; एक प्रमुख SDK संस्करण एक सूर्यास्त API उपसर्ग को छोड़ सकता है।
- **सुरक्षा सुधार** सत्यापन को कस सकते हैं (उदाहरण के लिए मान सेट) बिना संस्करण बम्प के; ऐसे कसने की घोषणा 30 दिनों की सूचना के साथ चेंजलॉग में की जाती है जब तक कि यह एक सक्रिय भेद्यता को बंद न कर दे।

## लॉग में बदलाव (Changelog)

### 14 अक्टूबर 2026 (जोड़ा गया: सहमति पृष्ठ ब्रांडिंग, टीम सिंगल साइन-ऑन)

- टीम सिंगल साइन-ऑन: एक संगठन को उसके SAML या OIDC प्रदाता और उसके ईमेल डोमेन से जोड़ा जा सकता है
  (`PUT /admin/organizations/{id}/sso`, प्लेटफ़ॉर्म प्रशासक), और सदस्यों के लिए सिंगल साइन-ऑन आवश्यक किया जा सकता है। `GET /admin/sso/discover?email=` (कोई प्रमाणीकरण नहीं) कार्य ईमेल के लिए प्रदाता लौटाता है। `OrganizationOut` में `sso_provider_id`, `sso_domains` और `sso_required` जोड़े गए हैं। [अपनी टीम के लिए सिंगल साइन-ऑन](https://developers.anpheros.com/hi/guides/team-sso) देखें।

- `PUT /admin/applications/{id}/branding` एक एप्लिकेशन का लोगो (PNG/JPEG/WebP डेटा URI, 64 KB तक) और एक्सेंट रंग (सफेद टेक्स्ट के साथ कम से कम 4.5:1 कंट्रास्ट) सेट करता है, जो होस्टेड सहमति पृष्ठ पर दिखाया जाता है। `ApplicationOut` में `logo` और `brand_color` जोड़े गए हैं। [प्रमाणीकरण और OAuth](auth-and-oauth.md#your-brand-on-the-consent-page) देखें।
- मूल्य निर्धारण पृष्ठ और [मूल्य निर्धारण](https://developers.anpheros.com/hi/guides/pricing): एक निजी-बीटा नोट। सत्यापन और हस्ताक्षरित DPA के बाद उत्पादन खुलता है, योजनाओं का चालान ईमेल द्वारा किया जाता है, और भत्ते अभी तक स्वचालित रूप से लागू नहीं होते हैं।

### 14 अक्टूबर 2026 (त्रुटि आकार और लैब मैपिंग फिक्स)
- लैब आयात: *Uree* / *Urea* को यूरिया नाइट्रोजन (`3094-0`) के बजाय यूरिया (`3091-6`; mmol/L में `22664-7`) में मैप किया जाता है, जिसे *BUN* / *Urea nitrogen* (mmol/L में `14937-7`) के लिए रखा जाता है। मान परिवर्तित नहीं किए जाते हैं। किसी भी उत्पादन डेटा ने पुरानी मैपिंग का उपयोग नहीं किया।
- लैब आयात: रिपोर्ट पर विधि के साथ LDL को गणना किए गए LDL (`13457-7`) या प्रत्यक्ष LDL (`18262-6`) में मैप किया जाता है; विधि के बिना यह `2089-1` रहता है। *Direct* अब एक क्वालिफायर है, इसलिए *Bilirubina directa* को अब कुल बिलीरुबिन (`1975-2`) में मैप नहीं किया जाता है; यह लैब के कोड को रखता है। किसी भी उत्पादन डेटा ने पुरानी मैपिंग का उपयोग नहीं किया।
- `/v1` के तहत अज्ञात एंडपॉइंट और विधियाँ प्रलेखित त्रुटि आकार (`404 not-found`, `405 not-supported`) में उत्तर देती हैं, न कि `{"detail": "Not Found"}` में; अमान्य क्वेरी पैरामीटर और `/v1` के तहत प्रति-आईपी दर सीमा `OperationOutcome` के बजाय `{"error": …}` का उपयोग करती है (`/fhir/R4` के तहत अपरिवर्तित); `/v1` के तहत एक अप्रत्याशित `500` `error.type = "exception"` ले जाता है (यह `error.code` ले जाता था)।
- लैब आयात: स्थानीय या गैर-LOINC कोडिंग सिस्टम के साथ HL7 v2 परिणाम `urn:anpheros:lab-code` (पहले `urn:hl7:<system>`, उदाहरण के लिए `urn:hl7:l`) के तहत लैब के कोड को रखते हैं। पहले से संग्रहीत परिणाम नहीं बदले जाते हैं।
- लैब आयात: अंग्रेजी LOINC नाम और उपनाम पहचाने जाते हैं (*Hemoglobin A1c*, *Glycated hemoglobin*, *HDL cholesterol*, *LDL cholesterol*, *Haemoglobin*); एक नग्न *Glucose* सीरम या प्लाज्मा (2345-7) के रूप में मैप होता है जैसे *Glicemie*। क्वालिफायर वाले नाम जो अवधारणा में नहीं हैं (*urine*, *non-HDL*…) अब संबंधित परीक्षण से मेल नहीं खाते हैं: इस परिवर्तन से पहले *HDL cholesterol* और *LDL cholesterol* जो LOINC कोड के बिना भेजे गए थे, उन्हें कुल कोलेस्ट्रॉल (2093-3) के रूप में संग्रहीत किया गया था।
- लैब आयात: रिपोर्ट को फिर से भेजने पर LOINC मैपिंग बदलने पर परिणाम डुप्लिकेट नहीं होंगे। नए परिणाम एक दूसरा पहचानकर्ता, `urn:anpheros:lab-import:v2`, ले जाते हैं, जो रिपोर्ट (रिपोर्ट आईडी, रिपोर्ट पर नाम और कोड, तिथि, मान, इकाई) से बनाया गया है; मौजूदा पहचानकर्ता अपरिवर्तित रहते हैं और पहले के परिणाम नाम, तिथि, मान, इकाई और रिपोर्ट आईडी द्वारा पहचाने जाते हैं। रिपोर्ट पर अलग-अलग नामों वाले दो परिणाम लेकिन एक ही LOINC कोड, तिथि और मान (उदाहरण के लिए *Glucose* और *Glicemie*) अब एक में मर्ज नहीं होंगे।

### 13 अक्टूबर 2026 (जोड़ा गया, कोई अनुबंध परिवर्तन नहीं)
- सहमति हर व्युत्पन्न दृश्य (`/v1/context`, `/v1/patients/{id}/timeline`, पोर्टल, `$everything`) पर एक साझा नियम के साथ लागू की जाती है; एक अनुरोधित लेकिन कवर नहीं किया गया अनुभाग संदर्भ के `omitted` में दिखाई देता है।
- OpenAPI अब `servers`, `securitySchemes` (`bearer`, `apiKey`, `oauth2`, `firebase`), प्रति-ऑपरेशन `security` और हर ऑपरेशन के लिए एक प्रतिक्रिया स्कीमा घोषित करता है; उत्पन्न क्लाइंट को टाइप की गई प्रतिक्रियाएँ मिलती हैं।
- हर `401` `WWW-Authenticate: Bearer` ले जाता है।
- CapabilityStatement SMART (`oauth-uris` एक्सटेंशन, `SMART-on-FHIR` सेवा) और IPS कार्यान्वयन गाइड का विज्ञापन करता है।
- प्रॉक्सी के पीछे रीडायरेक्ट `https://` रखते हैं।
- `python-multipart` 0.0.20 → 0.0.32; `pip-audit` ज्ञात कमजोरियों पर बिल्ड को ब्लॉक करता है।
- वेबहुक URL सार्वजनिक HTTPS होने चाहिए: localhost (पहले सैंडबॉक्स में स्वीकार किया गया था लेकिन कभी डिलीवर नहीं हुआ), निजी और आरक्षित पते, और उनसे हल होने वाले नाम पंजीकरण पर 400 के साथ `url` पर अस्वीकार कर दिए जाते हैं; डिलीवरी केवल उन IP पतों से जुड़ती है जिनकी उन्होंने अभी जांच की है (DNS रीबाइंडिंग)।

## अनुरूपता प्रवर्तन (23 सितंबर 2026 को घोषित)

IPS / HL7 यूरोप प्रयोगशाला आवश्यकताओं को पूरा न करने वाली राइट्स वर्तमान में `201`/`200` के साथ एक `Anpheros-Conformance` हेडर लौटाती हैं। अवलोकन अवधि (योजनाबद्ध: इस सूचना से 60-90 दिन) के बाद प्लेटफ़ॉर्म **ब्लॉक** मोड पर स्विच हो जाएगा: ऐसी राइट्स `422` के साथ एक `OperationOutcome` लौटाएंगी जिसमें प्रत्येक कमी सूचीबद्ध होगी। जिन इंटीग्रेटर्स को अधिक समय की आवश्यकता है, उन्हें संक्रमण के दौरान प्रति प्रोजेक्ट छूट दी जा सकती है। 23 सितंबर 2026 को जोड़े गए संसाधन प्रकार: `Procedure`, `DiagnosticReport`, `CarePlan`, `FamilyMemberHistory`, `ServiceRequest`, `Goal` (योगात्मक)।
