यह पेज हिन्दी में दिखाया जा रहा है, क्योंकि आपका ब्राउज़र यही भाषा माँगता है।
इस पेज का कोड चालू नहीं हुआ।
index.html को सीधे किसी फ़ोल्डर से खोलने पर ब्राउज़र JavaScript मॉड्यूल रोक देता है, इसलिए एक स्कैन चुनने पर कुछ नहीं होगा। इसके बजाय फ़ोल्डर को http पर सर्व कीजिए:
ऊपर फ़ाइल चुनते ही यह खुल जाएगा।तैयार — इंटरनेट काट दीजिए, यह फिर भी चलता रहेगा।इस ब्राउज़र में उपलब्ध नहीं (बाकी सब फिर भी चलता है)।ऑफ़लाइन कैश के लिए https:// या localhost चाहिए।यहाँ कैश नहीं हो सकता, पर अपलोड फिर भी कुछ नहीं होता।आपकी फ़ाइलें कहीं नहीं गईं। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई फ़ाइल मिली, न उसका एक बाइट।कुछ गड़बड़ हो गई: {detail}। दोबारा शुरू करने के लिए पेज फिर से लोड कीजिए।{count} फ़ाइल पढ़ी जा रही है…{count} फ़ाइलें पढ़ी जा रही हैं…कोई उदाहरण आज़माइएउदाहरण बनाया जा रहा है…यह ब्राउज़र उदाहरण नहीं बना सका। इसके बजाय कोई फ़ाइल चुनिए।
DICOM व्यूअर — .dcm स्कैन ब्राउज़र में खोलिए
CT, MRI, एक्स-रे और अल्ट्रासाउंड, विंडो, हेडर और नाप के साथ।
● यह टूल स्कैन कभी अपलोड नहीं करता। यहाँ कोई सर्वर है ही नहीं।
स्कैन को खोलना और डीकोड करना, यह सब आपका अपना ब्राउज़र करता है। हेडर, पिक्सल, विंडो, नाप, सब कुछ। इस पेज के दूसरी तरफ़ कोई सर्वर है ही नहीं जिसे मरीज़ की जानकारी भेजी जा सके, चाहे यहाँ की कोई चीज़ भेजना भी चाहे। और इस फ़ाइल के बारे में कुछ भी किसी को नहीं बताया जाता, न मरीज़ का नाम, न जाँच, न फ़ाइल का नाम।
✗ कोई अपलोड नहीं
✗ कोई अकाउंट नहीं
✓ ऑफ़लाइन चलता है
✓ ओपन सोर्स
✓ फ़ाइलें आपके डिवाइस पर रहती हैं
लाइव जाँच:जाँच जारी…
ऑफ़लाइन:जाँच जारी…
हमारी बात पर यकीन मत कीजिए। डेवलपर टूल्स खोलिए, नेटवर्क टैब देखिए, और एक स्कैन खोलिए। एक भी रिक्वेस्ट में न कोई इमेज जाती है, न टैग, न फ़ाइल का नाम। या फिर इंटरनेट बंद कर दीजिए और तब भी खोलकर देखिए।
प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
आपके स्कैन के जाने के लिए कोई जगह ही नहीं है। Content-Security-Policy में हर वह पता लिखा है जिससे यह पेज बात कर सकता है, और उनमें से एक भी इस साइट का नहीं है। यहाँ कोई ऐसा एंडपॉइंट नहीं है जहाँ आपकी फ़ाइल जमा हो सके, और कोड में ऐसा कुछ नहीं है जो होता तो भी उसे भेजता। पहले यहाँ connect-src 'none' लिखा था, जो पूरी तरह बंद था। विज्ञापन जोड़ने पर वह चला गया, और यह कहना भी उसी सौदे का हिस्सा है।
यह बात यहाँ बाकी पेजों से ज़्यादा भारी पड़ती है। DICOM फ़ाइल मेटाडेटा लगी हुई तस्वीर नहीं है। वह तस्वीर वाला मेडिकल रिकॉर्ड है। मरीज़ का नाम, जन्म तारीख, अस्पताल का नंबर, रेफ़रेंस नंबर, जाँच लिखने वाला डॉक्टर, संस्थान और मशीन का सीरियल नंबर, ये सब हेडर के फ़ील्ड हैं और फ़ाइल जहाँ भी जाती है उसके साथ जाते हैं। उसे बस देखने के लिए किसी वेबसाइट पर चढ़ा देने का मतलब है यह सब उस वेबसाइट को चलाने वाले के हाथ में दे देना। यह पेज ठीक यही न करने के लिए बना है।
पढ़ने वाला हिस्सा इस रिपॉज़िटरी की चौदह फ़ाइलें हैं। यहाँ कोई भी चीज़ कहीं से मँगाई गई लाइब्रेरी इस्तेमाल नहीं करती। src/dicom.js फ़ाइल में चलता है, src/dictionary.js जानता है कि टैग किस नाम से जाने जाते हैं, src/pixels.js बाइट को वापस नाप में बदलता है, src/rle.js और src/jpeg-lossless.js उन दो कंप्रेस्ड रूपों को खोलते हैं जिन्हें यह पेज डीकोड कर सकता है, और src/window.js नापे गए मानों को आपकी स्क्रीन के धूसर रंगों पर बिठाता है।
पहचान बताने वाले फ़ील्ड आपके लिए गिनाए जाते हैं, और किसी के लिए नहीं। यह पेज आपकी फ़ाइल का हर वह फ़ील्ड छापकर दिखाता है जो उस इंसान का नाम लेता है या यह छाँटता है कि वह कौन हो सकता है। यही वह सवाल है जिसका जवाब किसी स्लाइस को साझा करने जा रहे इंसान को चाहिए होता है, और कोई व्यूअर उसका जवाब नहीं देता। वह आपके सामने स्क्रीन पर आता है और कहीं और नहीं जाता। इस रिपॉज़िटरी में कोई एनालिटिक्स इवेंट नहीं है जो उसमें से कुछ भी ले जाए, और होता भी तो यह पेज उसे भेज नहीं सकता।
यह पढ़ता है। लिखता नहीं। यहाँ कोई बटन नहीं है जो आपकी फ़ाइल बदले, और न ऐसा कोई कोड है जो बदल सके। आप जो साथ ले जा सकते हैं वह है स्क्रीन पर दिख रही तस्वीर की PNG और हेडर की टेक्स्ट कॉपी। दोनों इसी पेज में उसी चीज़ से बनते हैं जो पहले से यहाँ मौजूद है। आपकी असली फ़ाइल आपकी डिस्क पर ज्यों की त्यों रहती है, और टैब बंद करने पर क्या होता है इसका ईमानदार जवाब भी यही है।
गूगल क्या लोड करता है, और उसे क्या नहीं मिलता। विज्ञापन और माप की स्क्रिप्ट गूगल से आती हैं। इनमें से किसी को भी आपकी फ़ाइल के बारे में कुछ नहीं दिया जाता। न पिक्सल, न थंबनेल, न कोई नाम, न टैग, न मरीज़, न फ़ाइल का नाम। स्कैन को पढ़ने, डीकोड करने और बनाने वाली हर लाइन इसी ऑरिजिन से आती है और रिपॉज़िटरी में लिखी है।
दान वाला बटन क्या लोड करता है, और उसे क्या नहीं मिलता। ऊपर लगा “Buy me a coffee” बटन cdnjs.buymeacoffee.com की एक स्क्रिप्ट बनाती है और उसके अक्षर Google Fonts से आते हैं। वह बस एक लिंक है। न वह किसी विज़िट की खबर देता है, न उसे आपके या आपकी फ़ाइलों के बारे में कुछ मिलता है। जब तक आप उस पर क्लिक न करें कुछ नहीं होता, और क्लिक करने पर आप किसी और की साइट पर पहुँचते हैं।
यह ऑफ़लाइन चलता है। नेटवर्क काट दीजिए और इस पेज का हर हिस्सा वैसे ही चलता रहेगा। यही सबसे आसान सबूत है, क्योंकि जो टूल आपका स्कैन कहीं भेजकर बनवाता होता वह तार खींचते ही रुक जाता।
खुद जाँच लीजिए। ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा dist ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं:
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए config/site.toml, फ़ाइल में चलने वाले पार्सर के लिए src/dicom.js, पिक्सल डीकोडिंग के लिए src/pixels.js, वह कोडेक जिससे ज़्यादातर अस्पताल एक्सपोर्ट करते हैं उसके लिए src/jpeg-lossless.js, और विंडो व लेवल के लिए src/window.js। इनमें से किसी में भी ऐसी एक लाइन नहीं है जो नेटवर्क तक पहुँच सके।
अगर आपके दफ़्तर का सुरक्षा सॉफ़्टवेयर अपलोड की चेतावनी दे। वह उस पल पर नज़र रखता है जब ब्राउज़र में फ़ाइल चुनी जाती है, और यह नहीं जान सकता कि पन्ना उसे भेजने वाला है या नहीं — इसलिए चुनने पर ही चेतावनी देता है। यहाँ से कुछ नहीं भेजा जाता: ब्राउज़र के डेवलपर टूल खोलिए, Network पर जाइए, और एक फ़ाइल चुनिए। उसे ले जाने वाला कोई अनुरोध नहीं है, और पन्ने की अपनी स्थानीय झलक के अलावा कोई अनुरोध ही नहीं। यही जाँच आपकी IT टीम आधे मिनट में कर सकती है।
स्कैन चुनिए
पूरा फ़ोल्डर एक साथ खींचकर डालिए, और फ़ाइलें अपनी-अपनी सीरीज़ में वापस बँधकर सही क्रम में लग जाएँगी। कुछ भी अपलोड नहीं होता, और आपकी फ़ाइलों में कुछ दोबारा लिखा भी नहीं जाता।
—
—
100%
यह फ़ाइल क्या है
ऑब्जेक्ट
—
तरीका
—
तस्वीर
—
किस रूप में रखी
—
Transfer syntax
—
पिक्सल की दूरी
—
मानों का दायरा
—
फ़ाइल
—
इस फ़ाइल में मरीज़ की पहचान क्या कराता है
यह सब इसी फ़ाइल से, इसी डिवाइस पर पढ़ा गया है और किसी और को नहीं दिखाया गया। यह टूल कुछ लिखता नहीं है। न यह इसमें से कुछ निकाल सकता है, न इसने इसमें से कुछ कहीं भेजा है। यह यहाँ इसलिए है कि स्कैन नाम से कहीं ज़्यादा कुछ लिए चलता है, और बाकी सब ठीक वही है जो लापरवाही से की गई गुमनामी के बाद भी बचा रह जाता है।
फ़ाइल का हर टैग
इस फ़ाइल का हर एलिमेंट
टैग
VR
नाम
मान
{name}: {why}{what} ({files}){a} · {b}{width} × {height}{width} × {height}, {frames}{n} {unit}{n} संपीड़ित टुकड़ा, {bytes} बाइट{n} संपीड़ित टुकड़े, {bytes} बाइट{bytes} बाइट, दिखाए नहीं गए(खाली){bytes} बाइट: {head}{bytes} बाइट: {head} …{n} दिन{n} दिन{n} सप्ताह{n} सप्ताह{n} महीना{n} महीने{n} वर्ष{n} वर्षMONOCHROME1 (0 का मतलब सफ़ेद)MONOCHROME2 (0 का मतलब काला)PALETTE COLOR (रंग तालिकाओं की ओर इशारा करता है)YBR_FULL (रंग, चमक और दो अंतरों के रूप में)YBR_FULL_422 (रंग, अंतर आधी चौड़ाई पर)HFS (सिर पहले, पीठ के बल)HFP (सिर पहले, पेट के बल)FFS (पैर पहले, पीठ के बल)FFP (पैर पहले, पेट के बल)M (पुरुष)F (स्त्री)O (अन्य){size} ({bytes}){row} × {column} मिमी(कोई नहीं)(निजी)(अज्ञात)128वें बाइट पर DICM चिह्न नहीं है, और शुरुआती बाइट भी कोई DICOM तत्व नहीं हैंयह टुकड़ा JPEG के SOI चिह्न से शुरू नहीं होताJPEG का स्कैन अपने फ़्रेम शीर्ष से पहले ही आ गयायह टुकड़ा DCT आधारित JPEG है, बिना हानि वाला नहींइस टुकड़े में कोई JPEG फ़्रेम शीर्ष नहीं हैबिना आकार वाला एक JPEG फ़्रेमयह फ़्रेम अपने घटकों का उप-नमूनन करता है, जिसे यहाँ का बिना-हानि JPEG नहीं सँभालता{bits} बिट का एक JPEG फ़्रेम, जो प्रारूप की अनुमत 2 से 16 की सीमा से बाहर हैयह स्कैन ऐसी हफ़मैन तालिका का नाम लेता है जिसे फ़ाइल ने कभी परिभाषित ही नहीं कियाप्रारूप की अनुमत सोलह बिट से लंबा एक हफ़मैन कोडRLE खंड-शीर्ष 64 बाइट का होता है और यह टुकड़ा उससे छोटा हैएक RLE फ़्रेम {count} खंड घोषित करता है, जबकि प्रारूप 1 से 15 की अनुमति देता हैइस तस्वीर को {wanted} RLE खंड चाहिए और फ़्रेम में {count} हैंRLE खंड {segment} टुकड़े के बाहर इशारा करता हैयह फ़ाइल कोई तस्वीर-आकार घोषित नहीं करतीइस फ़ाइल में पिक्सेल डेटा के टुकड़े नहीं हैं{syntax} एक ऐसा संपीड़न है जिसे यह पन्ना खोल नहीं सकताफ़्रेम {frame} पिक्सेल डेटा के अंत से आगे पड़ता हैकोई भी पिक्सेल डेटा टुकड़ा फ़्रेम {frame} को नहीं रखताहर नमूने पर {bits} बिट, जो न 1 है, न 8, न 16, न 32इस फ़ाइल में {frames} फ़्रेमों के लिए {fragments} पिक्सेल डेटा टुकड़े हैं और यह बताने वाली कोई ऑफ़सेट तालिका नहीं कि कौन-सा किसका हैफ़ाइल {available} बाइट पर खत्म हो जाती है; {at} पर {wanted} और चाहिए थेइस फ़ाइल में DICM चिह्न नहीं है, इसलिए इसे {syntax} में एक नंगे डेटा-समुच्चय की तरह पढ़ा गया। यह घोषित नहीं था, इसके पहले तत्व से निकाला गया है।फ़ाइल मेटा समूह कोई ट्रांसफ़र सिंटैक्स नहीं बताता, इसलिए डेटा-समुच्चय को Implicit VR Little Endian मानकर पढ़ा गया — मानक यही मान लेने को कहता है।ट्रांसफ़र सिंटैक्स {uid} उनमें से नहीं जिन्हें यह टूल पहचानता है। नीचे का शीर्ष Explicit VR Little Endian मानकर पढ़ा गया, जिसे 1995 के बाद पंजीकृत हर सिंटैक्स इस्तेमाल करता है; पिक्सेल नहीं खोले जा सके।फ़ाइल {at} बाइट वाले तत्व के बीचोंबीच खत्म हो जाती है; उससे पहले का सब पढ़ लिया गया।तत्व {tag} अपरिभाषित लंबाई घोषित करता है, जो केवल कोई अनुक्रम कर सकता है। उसके बाद कुछ भी नहीं पढ़ा जा सका।{at} बाइट वाला तत्व कहता है कि उसका मान {length} बाइट का है, जबकि फ़ाइल में केवल {left} बचे हैं।DICOM शीर्ष — {name}फ़ाइल का आकार{count} बाइटट्रांसफ़र सिंटैक्सवस्तुतस्वीर{bits} बिटधूसर श्रेणी{count} नमूनेफ़्रेमपिक्सेल अंतरालइस फ़ाइल को पढ़ने पर टिप्पणियाँफ़ाइल मेटा जानकारीडेटा-समुच्चय{origin} पर ब्राउज़र में पढ़ा गया, जो कुछ भी अपलोड नहीं करता।तस्वीर पर आड़ा खींचिए तो विंडो चौड़ी या सँकरी होती है, और ऊपर-नीचे खींचिए तो उसका केंद्र सरकता है। दोनों संख्याएँ नीचे दी हैं, और उन्हें टाइप करने से भी यही होता है।तस्वीर को उसके फ़्रेम के भीतर सरकाने के लिए खींचिए। माउस का पहिया ज़ूम करता है, और ‘फ़िट करें’ सब कुछ वापस कर देता है।नापने के लिए तस्वीर पर एक रेखा खींचिए। जहाँ फ़ाइल बताती है कि उसके पिक्सल कितनी दूर हैं, वहाँ नतीजा मिलीमीटर में आता है। जहाँ नहीं बताती, वहाँ पिक्सल में आता है और यह कह भी दिया जाता है।कॉलम {column}, पंक्ति {row} पर {value}{length} px — यह फ़ाइल नहीं बताती कि उसके पिक्सल कितनी दूर हैं, इसलिए यह मिलीमीटर में नहीं आ सकताहर स्लाइस शरीर में कहाँ है, इस हिसाब से लगाई गई हैं, और यही वह क्रम है जिसमें मशीन ने उन्हें लिया।Instance Number से लगाई गई हैं, क्योंकि इन फ़ाइलों में शरीर में जगह का वह ब्योरा है ही नहीं जिससे क्रम लगाया जाए।स्लाइस के बीच की दूरी हर जगह एक जैसी नहीं है, इसलिए इस सीरीज़ में कम से कम एक स्लाइस गायब है।इस फ़ाइल के पिक्सल {codec} से कंप्रेस किए गए हैं। कोई भी ब्राउज़र उसे डीकोड नहीं कर सकता, और यह पेज उसका डीकोडर साथ नहीं लाता। फ़ाइल के बारे में बाकी सब नीचे है।तस्वीर डीकोड नहीं हो सकी: {reason}. नीचे वाला हेडर पूरा पढ़ा गया है।इस फ़ाइल में पिक्सल का डेटा है ही नहीं। यह एक हेडर है, और उसमें जो कुछ है वह नीचे है।ये पिक्सल baseline JPEG हैं, इसलिए इन्हें ब्राउज़र के डीकोडर ने खोला है और जो वापस आता है वह आठ बिट गहरा है। विंडो काम करती रहती है, पर मशीन ने जितनी बारीकी दर्ज की थी वह पूरी नहीं है।{total} में से {shown} एलिमेंट। {hidden} और हैं।इस फ़ाइल के सभी {total} एलिमेंट।‘{query}’ से {total} एलिमेंट मिलते हैं।‘{query}’ से एक एलिमेंट मिलता है।‘{query}’ से कुछ नहीं मिलता।बाकी {count} दिखाएँप्राइवेट एलिमेंटइस शब्दकोश में नहींफ़ाइल ने यह नहीं बताया। यह वह है जो डेटा डिक्शनरी इस टैग के बारे में बताती है।{name} पढ़ा जा रहा है…{total} में से {at} पढ़ा जा रहा है…इनमें से कुछ भी DICOM की तरह नहीं पढ़ा जा सका। {why} यह टूल DICOM फ़ॉर्मैट को ही पढ़ता है, इसलिए दूसरी फ़ाइलों के बारे में यह कुछ नहीं कह सकता।एक फ़ाइल छोड़ दी गई: {files}{count} फ़ाइलें छोड़ दी गईं: {files}सीरीज़ {number}1 फ़ाइल{count} फ़ाइलेंस्लाइस आपस में {gap} की दूरी पर हैं।{total} में से {at}आपका स्कैन कहीं नहीं गया। {total} फ़ाइलें लोड हुईं, और वे सब इसी साइट की अपनी हैं। {platform}किसी चीज़ ने {hosts} से संपर्क किया, और यह टूल ऐसा कभी नहीं करता। यह देखने लायक बात है। {platform}विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई स्कैन मिला, न उसका कोई पिक्सल, न उसके हेडर का कोई शब्द।विज्ञापन, माप और दान वाले बटन के लिए साइट की अपनी स्क्रिप्ट {hosts} होस्ट से आईं। उनमें से किसी को न कोई स्कैन मिला, न उसका कोई पिक्सल, न उसके हेडर का कोई शब्द।{total} में से फ़्रेम {at}इंस्टेंस {number}फ़ाइल सेफ़ाइल से, {n}इस तस्वीर का पूरा दायराहाथ से सेट की हुईनरम ऊतकफेफड़ाहड्डीदिमागजिगरमीडियास्टिनमएंजियोग्राफ़ी{count} फ़्रेमपिक्सल का डेटा नहींइस फ़ाइल में नहीं बताया गयाचिह्न सहितचिह्न रहित{bits} बिट, {sign}, हर पिक्सल पर 1 चैनल, {photometric}{bits} बिट, {sign}, हर पिक्सल पर {samples} चैनल, {photometric}{low} से {high} तकरंगीन — नापा हुआ कुछ बताने को नहींइस फ़ाइल में कुछ भी किसी इंसान का नाम या नंबर नहीं बताता। स्कैन आम तौर पर जो पहचान लिए चलता है वह यहाँ या तो है ही नहीं या खाली है।इसके अलावा यह अपने {count} पहचान-चिह्न लिए चलती है, यानी जाँच, सीरीज़ और इंस्टेंस के UID। इनमें से कोई नाम नहीं है, पर हर एक उस आर्काइव तक लौटने की एकदम सटीक कुंजी है जहाँ से यह फ़ाइल आई।इनके साथ {count} प्राइवेट एलिमेंट भी हैं जिनका मतलब कहीं छपा नहीं है। कुछ मशीनें उनमें से किसी एक में मरीज़ के नाम की दूसरी कॉपी रख देती हैं।कॉपी हो गया।आपके ब्राउज़र ने इस पेज को कॉपी करने से रोक दिया। बगल वाला बटन वही टेक्स्ट एक फ़ाइल में लिख देता है।{name} सेव हो गया।
क्या इससे काम बन गया?
क्या गड़बड़ हुई?
शुक्रिया — इससे मदद मिलती है।
सिर्फ़ आपका जवाब भेजा जाता है, वह भी तभी जब आप बटन दबाते हैं। आपकी फ़ाइल, उसका नाम या उससे जुड़ी कोई बात कभी नहीं।
# DICOM व्यूअर — .dcm स्कैन ब्राउज़र में खोलिए
CT, MRI, एक्स-रे और अल्ट्रासाउंड, विंडो, हेडर और नाप के साथ।
> CT, MRI, एक्स-रे और अल्ट्रासाउंड स्कैन अपने ब्राउज़र में खोलिए। विंडो और लेवल, पूरी सीरीज़ पलटना, मिलीमीटर में नापना, हर DICOM टैग पढ़ना, और यह देखना कि फ़ाइल में मरीज़ की पहचान क्या-क्या कराता है। कुछ भी अपलोड नहीं होता।
यह पेज एक इंटरैक्टिव टूल है जो पूरी तरह आपके ब्राउज़र में चलता है, https://abox.tools/hi/dicom-viewer/ पर — आप इसे जो भी देते हैं, वह कहीं अपलोड नहीं होता। आगे वह सब कुछ है जो यह पेज इस टूल के बारे में शब्दों में कहता है; इसे इस्तेमाल करने के लिए यह पता खोलें।
## यह टूल स्कैन **कभी अपलोड नहीं करता**। यहाँ कोई सर्वर है ही नहीं।
स्कैन को खोलना और डीकोड करना, यह सब आपका अपना ब्राउज़र करता है। हेडर, पिक्सल, विंडो, नाप, सब कुछ। इस पेज के दूसरी तरफ़ कोई सर्वर है ही नहीं जिसे मरीज़ की जानकारी भेजी जा सके, चाहे यहाँ की कोई चीज़ भेजना भी चाहे। और इस फ़ाइल के बारे में कुछ भी किसी को नहीं बताया जाता, न मरीज़ का नाम, न जाँच, न फ़ाइल का नाम।
- ✗ कोई अपलोड नहीं
- ✗ कोई अकाउंट नहीं
- ✓ ऑफ़लाइन चलता है
- ✓ ओपन सोर्स
- ✓ फ़ाइलें आपके डिवाइस पर रहती हैं
## DICOM फ़ाइल कैसे खोलें
1. **फ़ाइलें चुनिए।** एक `.dcm` फ़ाइल, या डिस्क का पूरा फ़ोल्डर। CT या MRI में हर स्लाइस की अलग फ़ाइल होती है, इसलिए सबको एक साथ खींचकर डालना ही सीरीज़ को दोबारा जोड़ता है। फ़ाइलें ब्राउज़र सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
2. **सीरीज़ चुनिए।** एक जाँच में आम तौर पर कई होती हैं, पहले स्काउट और फिर हर अलग शॉट। हर सीरीज़ उसी क्रम में लगती है जिसमें मशीन ने उसे लिया था, और वह क्रम नंबरों से नहीं बल्कि इससे निकलता है कि हर स्लाइस शरीर में कहाँ पड़ती है। नंबर हमेशा एक ही दिशा में नहीं चलते।
3. **विंडो सेट कीजिए।** यही वह चीज़ है जो स्कैन को पढ़ने लायक बनाती है, और यही इमेज एडिटर में नहीं होती। तस्वीर पर आड़ा खींचिए तो विंडो चौड़ी होती है और ऊपर-नीचे खींचिए तो उसका केंद्र सरकता है। CT पर आप नाम वाली विंडो भी चुन सकते हैं, जैसे फेफड़ा, हड्डी, दिमाग, नरम ऊतक, क्योंकि CT की इकाइयाँ दुनिया की हर मशीन पर एक जैसी होती हैं।
4. **स्लाइस पलटिए।** तस्वीर के नीचे वाला स्लाइडर स्लाइस बदलता है, और तस्वीर पर एक बार क्लिक कर देने के बाद तीर की कुंजियाँ भी यही करती हैं। कई फ़्रेम वाली फ़ाइल, जैसे अल्ट्रासाउंड लूप या एंजियोग्राम, बगल के बटन से चलती है।
5. **कुछ नापिए।** नाप पर जाइए और एक रेखा खींचिए। जहाँ फ़ाइल बताती है कि उसके पिक्सल कितनी दूर हैं, वहाँ जवाब मिलीमीटर में आता है और उन पिक्सलों का भी ध्यान रखा जाता है जो वर्गाकार नहीं हैं। जहाँ फ़ाइल यह नहीं बताती, वहाँ जवाब पिक्सल में आता है और साफ़ कह भी दिया जाता है, कोई पैमाना गढ़ा नहीं जाता।
6. **हेडर पढ़िए।** फ़ाइल का हर एलिमेंट, उसके नंबर के साथ, स्टैंडर्ड जिस नाम से उसे बुलाता है उसके साथ, और उसमें जो है उसके साथ, और यह सब खोजा जा सकता है। उसके ऊपर वह सूची है कि इसी फ़ाइल में मरीज़ की पहचान क्या-क्या कराता है, जो नाम से कहीं ज़्यादा है।
7. **जो चाहिए वह ले जाइए।** स्क्रीन पर दिख रही तस्वीर PNG के रूप में, आपकी सेट की हुई विंडो के साथ और उस पर कुछ भी छपा हुए बिना, या फिर पूरा हेडर सादे टेक्स्ट में। दोनों इसी पेज में उसी से बनते हैं जो पहले से यहाँ मौजूद है।
## विस्तार से
[DICOM फ़ाइल कैसे खोलें, और उसमें क्या होता है](https://abox.tools/hi/guides/open-a-dicom-file/): अस्पताल की डिस्क में क्या होता है, फ़ाइलों पर एक्सटेंशन क्यों नहीं होता, .dcm स्कैन ब्राउज़र में कैसे खोलें, विंडो और लेवल असल में क्या करता है, और स्कैन तस्वीर के अलावा मरीज़ के बारे में क्या-क्या लिए चलता है।
## बॉक्स में और भी टूल
- [तस्वीर से ICO](https://abox.tools/hi/image-to-ico/): एक तस्वीर भीतर। ब्राउज़र, Windows या Mac जो भी साइज़ माँगे, वह सब बाहर।
- [तस्वीर से data URI](https://abox.tools/hi/image-to-data-uri/): पूरी तस्वीर, टेक्स्ट की एक पंक्ति में। सीधे CSS या HTML में चिपका दीजिए।
- [SVG से तस्वीर](https://abox.tools/hi/svg-to-image/): साइज़ बताइए। वेक्टर के पास खोने को अपना कोई साइज़ है ही नहीं।
- [तस्वीर से SVG](https://abox.tools/hi/image-to-svg/): एक आकार, एक आउटलाइन। जो नहीं होना चाहिए, उस पर बस उँगली रख दीजिए।
## सवाल
### क्या मेरा स्कैन कहीं अपलोड होता है?
नहीं। फ़ाइल को पढ़ना, डीकोड करना और बनाना, यह सब आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है। इस टूल का कोई सर्वर वाला हिस्सा है ही नहीं, और पेज की `Content-Security-Policy` में हर वह पता लिखा है जिससे वह बात कर सकता है। उनमें से एक भी इस साइट का नहीं है। नेटवर्क का तार खींच दीजिए, फिर भी स्कैन खुलते रहेंगे। \
\
यह बात यहाँ इस साइट के किसी भी दूसरे पेज से ज़्यादा मायने रखती है। DICOM फ़ाइल अपने हेडर में मरीज़ का नाम, जन्म तारीख और अस्पताल का नंबर लिए चलती है, इसलिए उसे किसी व्यूअर पर चढ़ाने का मतलब है किसी अजनबी को तस्वीर नहीं, मेडिकल रिकॉर्ड सौंप देना।
### यह कौन-सी DICOM फ़ाइलें खोल सकता है?
तीनों बुनियादी transfer syntax में बिना कंप्रेस की फ़ाइलें, यानी implicit और explicit little endian, और वह big endian जो अब हटा दी गई है। इनके अलावा deflated, RLE Lossless, baseline JPEG और JPEG Lossless भी, और अस्पताल की डिस्क पर मौजूद ज़्यादातर CT और MRI जाँचें इसी आखिरी तरीके से कंप्रेस होती हैं। \
\
यह JPEG 2000, JPEG-LS, और वीडियो में इस्तेमाल होने वाली MPEG व HEVC सिंटैक्स डीकोड नहीं कर सकता। उनके लिए ऐसे कोडेक चाहिए जो कई मेगाबाइट की कंपाइल की हुई लाइब्रेरी होते हैं, और जो पेज ज़रूरत पड़ने पर उन्हें मँगाता वह ऑफ़लाइन चलने वाला पेज न रह जाता। ऐसी किसी फ़ाइल के साथ भी काम चलता है। पूरा हेडर पढ़कर दिखा दिया जाता है, और तस्वीर की जगह एक लाइन आती है जो कोडेक का नाम बताती है, न कि टूटी इमेज का वह निशान जो कुछ नहीं बताता।
### ‘विंडो और लेवल’ क्या है, और यह क्यों चाहिए?
एक CT स्लाइस में करीब चार हज़ार अलग-अलग मान होते हैं और आपकी स्क्रीन दो सौ छप्पन धूसर रंग दिखाती है। किसी को तय करना पड़ता है कि उन चार हज़ार में से कौन-सा हिस्सा उन सभी दो सौ छप्पन को पाएगा, और वही चुनाव **विंडो** है। उससे नीचे सब काला, उससे ऊपर सब सफ़ेद, और बीच का हिस्सा धूसर रंगों में फैला हुआ। \
\
इसीलिए वही फ़ाइल दो सेटिंग में दो अलग स्कैन जैसी दिखती है, और इसीलिए फेफड़ा और हड्डी एक साथ नहीं देखे जा सकते। CT पर ये संख्याएँ हाउंसफ़ील्ड इकाई हैं, जो पूरी तरह तय हैं। पानी 0 है और हवा −1000, हर CT मशीन पर। इसलिए इस पेज की नाम वाली विंडो वही संख्याएँ हैं जो कोई रेडियोलॉजिस्ट अपने वर्कस्टेशन पर इस्तेमाल करता है। MRI या अल्ट्रासाउंड पर ऐसा कोई पैमाना नहीं होता, और जो विंडो खुलती है वह वही है जो फ़ाइल खुद माँगती है।
### यह मेरी नाप को पिक्सल में क्यों बता रहा है?
क्योंकि वह फ़ाइल यह नहीं बताती कि एक पिक्सल कितना बड़ा है। यह बात Pixel Spacing (0028,0030) में मिलीमीटर में लिखी होती है, और बहुत सारी अल्ट्रासाउंड इमेज, स्कैन किए हुए कागज़ और secondary capture में वह होती ही नहीं। \
\
जहाँ वह होती है, वहाँ नाप मिलीमीटर में आती है और हर अक्ष अपनी दूरी से नापा जाता है, जो उन तस्वीरों में मायने रखता है जिनके पिक्सल वर्गाकार नहीं होते। जहाँ वह नहीं होती, वहाँ ईमानदार जवाब पिक्सल की गिनती है, और यह उसे कहता भी है, न कि कोई पैमाना चुनकर नतीजे को लंबाई की तरह पेश करता है।
### इसने मेरे फ़ोल्डर को कई सीरीज़ में खोल दिया। ऐसा क्यों?
क्योंकि उसमें यही है। एक जाँच सीरीज़ से बनती है, पहले स्काउट व्यू और फिर हर शॉट या रीकंस्ट्रक्शन, और हर फ़ाइल Series Instance UID (0020,000E) में बताती है कि वह किसकी है। सूची फ़ोल्डर से नहीं, इसी से बनती है, क्योंकि फ़ोल्डर में तो आम तौर पर सब कुछ नामों की एक ही लिस्ट में मिला-जुला पड़ा होता है। \
\
सीरीज़ के भीतर स्लाइस इस हिसाब से क्रम में लगती हैं कि हर एक शरीर में कहाँ है, जो Image Position और Image Orientation से निकलता है। Instance Number सीधी-सी कुंजी है, लेकिन वह पहली पसंद नहीं बल्कि आखिरी सहारा है, क्योंकि उसे वही चीज़ देती है जिसने फ़ाइलें लिखीं और ज़रूरी नहीं कि वह मरीज़ की दिशा में चले।
### ‘मरीज़ की पहचान क्या कराता है’ वाली सूची का क्या मतलब है?
यह आपकी फ़ाइल का हर वह फ़ील्ड है जो स्कैन वाले इंसान का नाम लेता है, या यह छाँटता है कि वह कौन हो सकता है, और यह सब आपकी मशीन पर इसी फ़ाइल से पढ़ा गया है। सूची DICOM स्टैंडर्ड के PS3.15 से आती है, यानी उस हिस्से से जो बताता है कि किसी डेटासेट को de-identified कहने से पहले उसमें से क्या-क्या जाना चाहिए। \
\
यह इसलिए है कि लोग जहाँ गलती करते हैं वह यह नहीं है कि स्कैन में नाम होता है। गलती इस बारे में होती है कि उसमें और कितना कुछ होता है। जन्म तारीख, रेफ़रेंस नंबर, रेफ़र करने वाला डॉक्टर, संस्थान, मशीन का सीरियल नंबर, और जाँच के UID, जो उस आर्काइव तक लौटने की एकदम सटीक कुंजी हैं जिसने यह फ़ाइल बनाई। जिस स्कैन से सिर्फ़ नाम मिटा दिया गया हो वह गुमनाम नहीं होता। \
\
यह टूल सिर्फ़ दिखाता है। यह कुछ लिखता नहीं और कुछ बदलता नहीं, इसलिए इसमें से कुछ निकाल भी नहीं सकता।
### क्या यह स्कैन को गुमनाम कर सकता है?
नहीं, और यह जान-बूझकर ऐसा होने का दिखावा भी नहीं करता। यह पेज पढ़ता है। इसमें ऐसा कोई कोड नहीं है जो DICOM फ़ाइल लिखे। यह जो करता है वह यह बताना है कि आपकी फ़ाइल में ठीक-ठीक क्या है, और यही वह हिस्सा है जो पता करना मुश्किल है और जिसके बारे में लोग गलत होते हैं। \
\
पहचान बताने वाले फ़ील्ड निकालने वाला टूल एक अलग काम है जिसका पैमाना कहीं ऊँचा है। उसे पिक्सल छुए बिना फ़ाइल दोबारा लिखनी होगी, पूरी जाँच में UID एक-से ढंग से बदलने होंगे, और उन प्राइवेट एलिमेंट के बारे में सही होना होगा जिनमें कुछ मशीनें नाम की दूसरी कॉपी छिपा देती हैं। वह इस साइट के रोडमैप पर है, किसी व्यूअर के साथ चिपकाने की चीज़ नहीं।
### क्या यह बिना .dcm एक्सटेंशन वाली या टूटी हुई फ़ाइल खोल सकता है?
दोनों के लिए हाँ। एक्सटेंशन देखा ही नहीं जाता, जाँच खुद फ़ाइल की होती है। जो डेटासेट आम 128 बाइट की भूमिका के बिना लिखा गया हो, और सीधे नेटवर्क से आया स्कैन ऐसा ही दिखता है, उसे उसके पहले एलिमेंट से एन्कोडिंग निकालकर पढ़ा जाता है, और पेज बता भी देता है कि उसने यही किया। \
\
जो फ़ाइल बीच में ही खत्म हो जाती है वह जहाँ तक जाती है वहाँ तक पढ़ी जाती है। खराबी से पहले का सब कुछ दिखाया जाता है, साथ में यह नोट कि वह किस बाइट पर रुकी। व्यूअर की सबसे ज़्यादा ज़रूरत ऐसे ही मौकों पर पड़ती है, इसलिए आखिरी बारह बाइट के लिए पूरी फ़ाइल फेंक देना गलत बर्ताव होता।
### क्या यह डायग्नोस्टिक व्यूअर है?
नहीं। यह मेडिकल डिवाइस नहीं है, यह किसी नियामक जाँच से नहीं गुज़रा है, और यहाँ की किसी भी चीज़ से कोई क्लिनिकल फ़ैसला नहीं लिया जाना चाहिए। आपकी स्क्रीन कैलिब्रेट नहीं है, ब्राउज़र कोई प्रमाणित रेंडरिंग चेन नहीं है, और इनमें से कोई भी बात किसी वेब पेज के भीतर से ठीक नहीं की जा सकती। \
\
बाकी हर उस काम के लिए यह अच्छा है जिसके लिए लोग स्कैन खोलते हैं। डिस्क में क्या है यह देखना, किसी लेक्चर या पर्चे के लिए एक स्लाइस निकालना, हेडर पढ़ना, यह पता करना कि कोई दूसरा प्रोग्राम इस फ़ाइल को क्यों मना कर रहा है, और यह देखना कि स्कैन उस इंसान के बारे में क्या-क्या लिए चल रहा है।
### क्या यह मेरी फ़ाइल बदलता है?
नहीं। यह टूल सिर्फ़ पढ़ता है। न कोई आउटपुट फ़ाइल है, न दोबारा एन्कोडिंग, और न यहाँ कोई बटन है जो DICOM लिखे। आप जो डाउनलोड कर सकते हैं वह है स्क्रीन पर दिख रही तस्वीर की PNG और हेडर की सादे टेक्स्ट वाली कॉपी। आपकी असली फ़ाइल आपकी डिस्क पर ज्यों की त्यों रहती है।
### क्या यह मुफ़्त है, और क्या अकाउंट चाहिए?
यह मुफ़्त है, और न अकाउंट है, न साइन-इन, न कोई ट्रायल। फ़ाइल के साइज़ पर या कितनी फ़ाइलें खोलें इस पर कोई सीमा नहीं है, सिवाय आपकी अपनी मशीन की मेमोरी के। साइट पर विज्ञापन चलते हैं और उन्हीं से इसका खर्च निकलता है, और विज्ञापनों को आपकी फ़ाइल के बारे में कुछ नहीं दिया जाता।
### क्या यह ऑफ़लाइन चलता है?
हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट बंद कर दीजिए और यह चलता रहेगा। यह साबित करने का सबसे आसान तरीका भी यही है कि कुछ अपलोड नहीं हो रहा, क्योंकि जो टूल आपका स्कैन कहीं भेजकर बनवाता होता वह तार खींचते ही रुक जाता।
## प्राइवेसी का यह दावा कैसे जाँचा जा सकता है
- **आपके स्कैन के जाने के लिए कोई जगह ही नहीं है।** Content-Security-Policy में हर वह पता लिखा है जिससे यह पेज बात कर सकता है, और उनमें से एक भी इस साइट का नहीं है। यहाँ कोई ऐसा एंडपॉइंट नहीं है जहाँ आपकी फ़ाइल जमा हो सके, और कोड में ऐसा कुछ नहीं है जो होता तो भी उसे भेजता। पहले यहाँ `connect-src 'none'` लिखा था, जो पूरी तरह बंद था। विज्ञापन जोड़ने पर वह चला गया, और यह कहना भी उसी सौदे का हिस्सा है।
- **यह बात यहाँ बाकी पेजों से ज़्यादा भारी पड़ती है।** DICOM फ़ाइल मेटाडेटा लगी हुई तस्वीर नहीं है। वह तस्वीर वाला मेडिकल रिकॉर्ड है। मरीज़ का नाम, जन्म तारीख, अस्पताल का नंबर, रेफ़रेंस नंबर, जाँच लिखने वाला डॉक्टर, संस्थान और मशीन का सीरियल नंबर, ये सब हेडर के फ़ील्ड हैं और फ़ाइल जहाँ भी जाती है उसके साथ जाते हैं। उसे बस देखने के लिए किसी वेबसाइट पर चढ़ा देने का मतलब है यह सब उस वेबसाइट को चलाने वाले के हाथ में दे देना। यह पेज ठीक यही न करने के लिए बना है।
- **पढ़ने वाला हिस्सा इस रिपॉज़िटरी की चौदह फ़ाइलें हैं।** यहाँ कोई भी चीज़ कहीं से मँगाई गई लाइब्रेरी इस्तेमाल नहीं करती। `src/dicom.js` फ़ाइल में चलता है, `src/dictionary.js` जानता है कि टैग किस नाम से जाने जाते हैं, `src/pixels.js` बाइट को वापस नाप में बदलता है, `src/rle.js` और `src/jpeg-lossless.js` उन दो कंप्रेस्ड रूपों को खोलते हैं जिन्हें यह पेज डीकोड कर सकता है, और `src/window.js` नापे गए मानों को आपकी स्क्रीन के धूसर रंगों पर बिठाता है।
- **पहचान बताने वाले फ़ील्ड आपके लिए गिनाए जाते हैं, और किसी के लिए नहीं।** यह पेज आपकी फ़ाइल का हर वह फ़ील्ड छापकर दिखाता है जो उस इंसान का नाम लेता है या यह छाँटता है कि वह कौन हो सकता है। यही वह सवाल है जिसका जवाब किसी स्लाइस को साझा करने जा रहे इंसान को चाहिए होता है, और कोई व्यूअर उसका जवाब नहीं देता। वह आपके सामने स्क्रीन पर आता है और कहीं और नहीं जाता। इस रिपॉज़िटरी में कोई एनालिटिक्स इवेंट नहीं है जो उसमें से कुछ भी ले जाए, और होता भी तो यह पेज उसे भेज नहीं सकता।
- **यह पढ़ता है। लिखता नहीं।** यहाँ कोई बटन नहीं है जो आपकी फ़ाइल बदले, और न ऐसा कोई कोड है जो बदल सके। आप जो साथ ले जा सकते हैं वह है स्क्रीन पर दिख रही तस्वीर की PNG और हेडर की टेक्स्ट कॉपी। दोनों इसी पेज में उसी चीज़ से बनते हैं जो पहले से यहाँ मौजूद है। आपकी असली फ़ाइल आपकी डिस्क पर ज्यों की त्यों रहती है, और टैब बंद करने पर क्या होता है इसका ईमानदार जवाब भी यही है।
- **गूगल क्या लोड करता है, और उसे क्या नहीं मिलता।** विज्ञापन और माप की स्क्रिप्ट गूगल से आती हैं। इनमें से किसी को भी आपकी फ़ाइल के बारे में कुछ नहीं दिया जाता। न पिक्सल, न थंबनेल, न कोई नाम, न टैग, न मरीज़, न फ़ाइल का नाम। स्कैन को पढ़ने, डीकोड करने और बनाने वाली हर लाइन इसी ऑरिजिन से आती है और रिपॉज़िटरी में लिखी है।
- **दान वाला बटन क्या लोड करता है, और उसे क्या नहीं मिलता।** ऊपर लगा “Buy me a coffee” बटन cdnjs.buymeacoffee.com की एक स्क्रिप्ट बनाती है और उसके अक्षर Google Fonts से आते हैं। वह बस एक लिंक है। न वह किसी विज़िट की खबर देता है, न उसे आपके या आपकी फ़ाइलों के बारे में कुछ मिलता है। जब तक आप उस पर क्लिक न करें कुछ नहीं होता, और क्लिक करने पर आप किसी और की साइट पर पहुँचते हैं।
- **यह ऑफ़लाइन चलता है।** नेटवर्क काट दीजिए और इस पेज का हर हिस्सा वैसे ही चलता रहेगा। यही सबसे आसान सबूत है, क्योंकि जो टूल आपका स्कैन कहीं भेजकर बनवाता होता वह तार खींचते ही रुक जाता।
**खुद जाँच लीजिए।** ऊपर लिखी किसी भी बात को भरोसे पर मानने की ज़रूरत नहीं। यह पेज रिपॉज़िटरी के टेम्पलेट और कॉन्फ़िग से बनता है, एक ऐसी बिल्ड स्क्रिप्ट के ज़रिए जिसे आप पढ़ भी सकते हैं और खुद चला भी सकते हैं। उसका नतीजा `dist` ब्रांच पर कमिट रहता है, यानी जो सर्व हो रहा है और सोर्स से बिल्ड करने पर जो बनता है, दोनों का फ़र्क आप खुद देख सकते हैं: https://github.com/A-Box-of-Tools/website
सबसे पहले पढ़ने लायक फ़ाइलें ये हैं — Content-Security-Policy के लिए `config/site.toml`, फ़ाइल में चलने वाले पार्सर के लिए `src/dicom.js`, पिक्सल डीकोडिंग के लिए `src/pixels.js`, वह कोडेक जिससे ज़्यादातर अस्पताल एक्सपोर्ट करते हैं उसके लिए `src/jpeg-lossless.js`, और विंडो व लेवल के लिए `src/window.js`। इनमें से किसी में भी ऐसी एक लाइन नहीं है जो नेटवर्क तक पहुँच सके।
DICOM फ़ाइल कैसे खोलें
फ़ाइलें चुनिए। एक .dcm फ़ाइल, या डिस्क का पूरा फ़ोल्डर। CT या MRI में हर स्लाइस की अलग फ़ाइल होती है, इसलिए सबको एक साथ खींचकर डालना ही सीरीज़ को दोबारा जोड़ता है। फ़ाइलें ब्राउज़र सीधे आपकी डिस्क से पढ़ता है, और इस दौरान कुछ भी कहीं नहीं भेजा जाता।
सीरीज़ चुनिए। एक जाँच में आम तौर पर कई होती हैं, पहले स्काउट और फिर हर अलग शॉट। हर सीरीज़ उसी क्रम में लगती है जिसमें मशीन ने उसे लिया था, और वह क्रम नंबरों से नहीं बल्कि इससे निकलता है कि हर स्लाइस शरीर में कहाँ पड़ती है। नंबर हमेशा एक ही दिशा में नहीं चलते।
विंडो सेट कीजिए। यही वह चीज़ है जो स्कैन को पढ़ने लायक बनाती है, और यही इमेज एडिटर में नहीं होती। तस्वीर पर आड़ा खींचिए तो विंडो चौड़ी होती है और ऊपर-नीचे खींचिए तो उसका केंद्र सरकता है। CT पर आप नाम वाली विंडो भी चुन सकते हैं, जैसे फेफड़ा, हड्डी, दिमाग, नरम ऊतक, क्योंकि CT की इकाइयाँ दुनिया की हर मशीन पर एक जैसी होती हैं।
स्लाइस पलटिए। तस्वीर के नीचे वाला स्लाइडर स्लाइस बदलता है, और तस्वीर पर एक बार क्लिक कर देने के बाद तीर की कुंजियाँ भी यही करती हैं। कई फ़्रेम वाली फ़ाइल, जैसे अल्ट्रासाउंड लूप या एंजियोग्राम, बगल के बटन से चलती है।
कुछ नापिए। नाप पर जाइए और एक रेखा खींचिए। जहाँ फ़ाइल बताती है कि उसके पिक्सल कितनी दूर हैं, वहाँ जवाब मिलीमीटर में आता है और उन पिक्सलों का भी ध्यान रखा जाता है जो वर्गाकार नहीं हैं। जहाँ फ़ाइल यह नहीं बताती, वहाँ जवाब पिक्सल में आता है और साफ़ कह भी दिया जाता है, कोई पैमाना गढ़ा नहीं जाता।
हेडर पढ़िए। फ़ाइल का हर एलिमेंट, उसके नंबर के साथ, स्टैंडर्ड जिस नाम से उसे बुलाता है उसके साथ, और उसमें जो है उसके साथ, और यह सब खोजा जा सकता है। उसके ऊपर वह सूची है कि इसी फ़ाइल में मरीज़ की पहचान क्या-क्या कराता है, जो नाम से कहीं ज़्यादा है।
जो चाहिए वह ले जाइए। स्क्रीन पर दिख रही तस्वीर PNG के रूप में, आपकी सेट की हुई विंडो के साथ और उस पर कुछ भी छपा हुए बिना, या फिर पूरा हेडर सादे टेक्स्ट में। दोनों इसी पेज में उसी से बनते हैं जो पहले से यहाँ मौजूद है।
विस्तार से
DICOM फ़ाइल कैसे खोलें, और उसमें क्या होता हैअस्पताल की डिस्क में क्या होता है, फ़ाइलों पर एक्सटेंशन क्यों नहीं होता, .dcm स्कैन ब्राउज़र में कैसे खोलें, विंडो और लेवल असल में क्या करता है, और स्कैन तस्वीर के अलावा मरीज़ के बारे में क्या-क्या लिए चलता है।
नहीं। फ़ाइल को पढ़ना, डीकोड करना और बनाना, यह सब आपका अपना ब्राउज़र आपके अपने हार्डवेयर पर करता है। इस टूल का कोई सर्वर वाला हिस्सा है ही नहीं, और पेज की Content-Security-Policy में हर वह पता लिखा है जिससे वह बात कर सकता है। उनमें से एक भी इस साइट का नहीं है। नेटवर्क का तार खींच दीजिए, फिर भी स्कैन खुलते रहेंगे।
यह बात यहाँ इस साइट के किसी भी दूसरे पेज से ज़्यादा मायने रखती है। DICOM फ़ाइल अपने हेडर में मरीज़ का नाम, जन्म तारीख और अस्पताल का नंबर लिए चलती है, इसलिए उसे किसी व्यूअर पर चढ़ाने का मतलब है किसी अजनबी को तस्वीर नहीं, मेडिकल रिकॉर्ड सौंप देना।
यह कौन-सी DICOM फ़ाइलें खोल सकता है?
तीनों बुनियादी transfer syntax में बिना कंप्रेस की फ़ाइलें, यानी implicit और explicit little endian, और वह big endian जो अब हटा दी गई है। इनके अलावा deflated, RLE Lossless, baseline JPEG और JPEG Lossless भी, और अस्पताल की डिस्क पर मौजूद ज़्यादातर CT और MRI जाँचें इसी आखिरी तरीके से कंप्रेस होती हैं।
यह JPEG 2000, JPEG-LS, और वीडियो में इस्तेमाल होने वाली MPEG व HEVC सिंटैक्स डीकोड नहीं कर सकता। उनके लिए ऐसे कोडेक चाहिए जो कई मेगाबाइट की कंपाइल की हुई लाइब्रेरी होते हैं, और जो पेज ज़रूरत पड़ने पर उन्हें मँगाता वह ऑफ़लाइन चलने वाला पेज न रह जाता। ऐसी किसी फ़ाइल के साथ भी काम चलता है। पूरा हेडर पढ़कर दिखा दिया जाता है, और तस्वीर की जगह एक लाइन आती है जो कोडेक का नाम बताती है, न कि टूटी इमेज का वह निशान जो कुछ नहीं बताता।
‘विंडो और लेवल’ क्या है, और यह क्यों चाहिए?
एक CT स्लाइस में करीब चार हज़ार अलग-अलग मान होते हैं और आपकी स्क्रीन दो सौ छप्पन धूसर रंग दिखाती है। किसी को तय करना पड़ता है कि उन चार हज़ार में से कौन-सा हिस्सा उन सभी दो सौ छप्पन को पाएगा, और वही चुनाव विंडो है। उससे नीचे सब काला, उससे ऊपर सब सफ़ेद, और बीच का हिस्सा धूसर रंगों में फैला हुआ।
इसीलिए वही फ़ाइल दो सेटिंग में दो अलग स्कैन जैसी दिखती है, और इसीलिए फेफड़ा और हड्डी एक साथ नहीं देखे जा सकते। CT पर ये संख्याएँ हाउंसफ़ील्ड इकाई हैं, जो पूरी तरह तय हैं। पानी 0 है और हवा −1000, हर CT मशीन पर। इसलिए इस पेज की नाम वाली विंडो वही संख्याएँ हैं जो कोई रेडियोलॉजिस्ट अपने वर्कस्टेशन पर इस्तेमाल करता है। MRI या अल्ट्रासाउंड पर ऐसा कोई पैमाना नहीं होता, और जो विंडो खुलती है वह वही है जो फ़ाइल खुद माँगती है।
यह मेरी नाप को पिक्सल में क्यों बता रहा है?
क्योंकि वह फ़ाइल यह नहीं बताती कि एक पिक्सल कितना बड़ा है। यह बात Pixel Spacing (0028,0030) में मिलीमीटर में लिखी होती है, और बहुत सारी अल्ट्रासाउंड इमेज, स्कैन किए हुए कागज़ और secondary capture में वह होती ही नहीं।
जहाँ वह होती है, वहाँ नाप मिलीमीटर में आती है और हर अक्ष अपनी दूरी से नापा जाता है, जो उन तस्वीरों में मायने रखता है जिनके पिक्सल वर्गाकार नहीं होते। जहाँ वह नहीं होती, वहाँ ईमानदार जवाब पिक्सल की गिनती है, और यह उसे कहता भी है, न कि कोई पैमाना चुनकर नतीजे को लंबाई की तरह पेश करता है।
इसने मेरे फ़ोल्डर को कई सीरीज़ में खोल दिया। ऐसा क्यों?
क्योंकि उसमें यही है। एक जाँच सीरीज़ से बनती है, पहले स्काउट व्यू और फिर हर शॉट या रीकंस्ट्रक्शन, और हर फ़ाइल Series Instance UID (0020,000E) में बताती है कि वह किसकी है। सूची फ़ोल्डर से नहीं, इसी से बनती है, क्योंकि फ़ोल्डर में तो आम तौर पर सब कुछ नामों की एक ही लिस्ट में मिला-जुला पड़ा होता है।
सीरीज़ के भीतर स्लाइस इस हिसाब से क्रम में लगती हैं कि हर एक शरीर में कहाँ है, जो Image Position और Image Orientation से निकलता है। Instance Number सीधी-सी कुंजी है, लेकिन वह पहली पसंद नहीं बल्कि आखिरी सहारा है, क्योंकि उसे वही चीज़ देती है जिसने फ़ाइलें लिखीं और ज़रूरी नहीं कि वह मरीज़ की दिशा में चले।
‘मरीज़ की पहचान क्या कराता है’ वाली सूची का क्या मतलब है?
यह आपकी फ़ाइल का हर वह फ़ील्ड है जो स्कैन वाले इंसान का नाम लेता है, या यह छाँटता है कि वह कौन हो सकता है, और यह सब आपकी मशीन पर इसी फ़ाइल से पढ़ा गया है। सूची DICOM स्टैंडर्ड के PS3.15 से आती है, यानी उस हिस्से से जो बताता है कि किसी डेटासेट को de-identified कहने से पहले उसमें से क्या-क्या जाना चाहिए।
यह इसलिए है कि लोग जहाँ गलती करते हैं वह यह नहीं है कि स्कैन में नाम होता है। गलती इस बारे में होती है कि उसमें और कितना कुछ होता है। जन्म तारीख, रेफ़रेंस नंबर, रेफ़र करने वाला डॉक्टर, संस्थान, मशीन का सीरियल नंबर, और जाँच के UID, जो उस आर्काइव तक लौटने की एकदम सटीक कुंजी हैं जिसने यह फ़ाइल बनाई। जिस स्कैन से सिर्फ़ नाम मिटा दिया गया हो वह गुमनाम नहीं होता।
यह टूल सिर्फ़ दिखाता है। यह कुछ लिखता नहीं और कुछ बदलता नहीं, इसलिए इसमें से कुछ निकाल भी नहीं सकता।
क्या यह स्कैन को गुमनाम कर सकता है?
नहीं, और यह जान-बूझकर ऐसा होने का दिखावा भी नहीं करता। यह पेज पढ़ता है। इसमें ऐसा कोई कोड नहीं है जो DICOM फ़ाइल लिखे। यह जो करता है वह यह बताना है कि आपकी फ़ाइल में ठीक-ठीक क्या है, और यही वह हिस्सा है जो पता करना मुश्किल है और जिसके बारे में लोग गलत होते हैं।
पहचान बताने वाले फ़ील्ड निकालने वाला टूल एक अलग काम है जिसका पैमाना कहीं ऊँचा है। उसे पिक्सल छुए बिना फ़ाइल दोबारा लिखनी होगी, पूरी जाँच में UID एक-से ढंग से बदलने होंगे, और उन प्राइवेट एलिमेंट के बारे में सही होना होगा जिनमें कुछ मशीनें नाम की दूसरी कॉपी छिपा देती हैं। वह इस साइट के रोडमैप पर है, किसी व्यूअर के साथ चिपकाने की चीज़ नहीं।
क्या यह बिना .dcm एक्सटेंशन वाली या टूटी हुई फ़ाइल खोल सकता है?
दोनों के लिए हाँ। एक्सटेंशन देखा ही नहीं जाता, जाँच खुद फ़ाइल की होती है। जो डेटासेट आम 128 बाइट की भूमिका के बिना लिखा गया हो, और सीधे नेटवर्क से आया स्कैन ऐसा ही दिखता है, उसे उसके पहले एलिमेंट से एन्कोडिंग निकालकर पढ़ा जाता है, और पेज बता भी देता है कि उसने यही किया।
जो फ़ाइल बीच में ही खत्म हो जाती है वह जहाँ तक जाती है वहाँ तक पढ़ी जाती है। खराबी से पहले का सब कुछ दिखाया जाता है, साथ में यह नोट कि वह किस बाइट पर रुकी। व्यूअर की सबसे ज़्यादा ज़रूरत ऐसे ही मौकों पर पड़ती है, इसलिए आखिरी बारह बाइट के लिए पूरी फ़ाइल फेंक देना गलत बर्ताव होता।
क्या यह डायग्नोस्टिक व्यूअर है?
नहीं। यह मेडिकल डिवाइस नहीं है, यह किसी नियामक जाँच से नहीं गुज़रा है, और यहाँ की किसी भी चीज़ से कोई क्लिनिकल फ़ैसला नहीं लिया जाना चाहिए। आपकी स्क्रीन कैलिब्रेट नहीं है, ब्राउज़र कोई प्रमाणित रेंडरिंग चेन नहीं है, और इनमें से कोई भी बात किसी वेब पेज के भीतर से ठीक नहीं की जा सकती।
बाकी हर उस काम के लिए यह अच्छा है जिसके लिए लोग स्कैन खोलते हैं। डिस्क में क्या है यह देखना, किसी लेक्चर या पर्चे के लिए एक स्लाइस निकालना, हेडर पढ़ना, यह पता करना कि कोई दूसरा प्रोग्राम इस फ़ाइल को क्यों मना कर रहा है, और यह देखना कि स्कैन उस इंसान के बारे में क्या-क्या लिए चल रहा है।
क्या यह मेरी फ़ाइल बदलता है?
नहीं। यह टूल सिर्फ़ पढ़ता है। न कोई आउटपुट फ़ाइल है, न दोबारा एन्कोडिंग, और न यहाँ कोई बटन है जो DICOM लिखे। आप जो डाउनलोड कर सकते हैं वह है स्क्रीन पर दिख रही तस्वीर की PNG और हेडर की सादे टेक्स्ट वाली कॉपी। आपकी असली फ़ाइल आपकी डिस्क पर ज्यों की त्यों रहती है।
क्या यह मुफ़्त है, और क्या अकाउंट चाहिए?
यह मुफ़्त है, और न अकाउंट है, न साइन-इन, न कोई ट्रायल। फ़ाइल के साइज़ पर या कितनी फ़ाइलें खोलें इस पर कोई सीमा नहीं है, सिवाय आपकी अपनी मशीन की मेमोरी के। साइट पर विज्ञापन चलते हैं और उन्हीं से इसका खर्च निकलता है, और विज्ञापनों को आपकी फ़ाइल के बारे में कुछ नहीं दिया जाता।
क्या यह ऑफ़लाइन चलता है?
हाँ। पेज एक बार लोड कर लीजिए, फिर इंटरनेट बंद कर दीजिए और यह चलता रहेगा। यह साबित करने का सबसे आसान तरीका भी यही है कि कुछ अपलोड नहीं हो रहा, क्योंकि जो टूल आपका स्कैन कहीं भेजकर बनवाता होता वह तार खींचते ही रुक जाता।