2009-10-05 8 views
11

के लिए संसाधनों की तलाश में हमें एक ग्राहक द्वारा आईसीडी-9 कोड को सिस्टम में शामिल करने के लिए कहा गया है।आईसीडी-9 कोड

मैं SQL डेटाबेस में समाप्त होने वाले कोड और विवरण की पूरी सूची प्राप्त करने के लिए एक अच्छा संसाधन ढूंढ रहा हूं।

दुर्भाग्यवश एक वेब सेवा प्रश्न से बाहर है क्योंकि उचित समय के रूप में लोग आवेदन का उपयोग कर लाइन बंद हो जाएंगे।

मुझे http://icd9cm.chrisendres.com/ और http://www.icd9data.com/ मिला है, लेकिन न तो मुझे जो डेटा मिल सकता है उसे डाउनलोड/निर्यात प्रदान नहीं करता है।

मुझे http://www.cms.hhs.gov/MinimumDataSets20/07_RAVENSoftware.asp भी मिला जो आईसीडी -9 कोड का डेटाबेस है लेकिन वे सही प्रारूप में नहीं हैं और मैं 100% सुनिश्चित नहीं हूं कि सही तरीके से कैसे परिवर्तित किया जाए (यह कोड 5566 दिखाता है जो वास्तव में 556.6 है लेकिन मैं दशमलव को शामिल करने के लिए कोड को कैसे/कब परिवर्तित करना है)

मैं इसे चिकित्सा और डेटा के साथ टैग कर रहा हूं क्योंकि मुझे 100% यकीन नहीं है कि इसे वास्तव में टैग किया जाना चाहिए ... किसी भी मदद की सराहना की जाएगी।

उत्तर

9

मैं थोड़ी देर पहले इसी मुद्दे में भाग गया और खरोंच से अपना स्वयं का समाधान तैयार कर दिया। http://aqua.io/codes/icd9/documentation

तुम बस JSON (http://api.aqua.io/codes/beta/icd9.json) में सभी कोड डाउनलोड कर सकते हैं या एक व्यक्ति के कोड (http://api.aqua.io/codes/beta/icd9/250-1.json) खींच: हाल ही में, मैं एक खुले एपीआई कोड के लिए दूसरों के उपयोग के लिए करने के लिए डाल दिया। एक कोड को खींचने से न केवल आपको आईसीडी -10 "क्रॉसवॉक" (समकक्ष) देता है, बल्कि कुछ अतिरिक्त उपहार भी प्रासंगिक विकिपीडिया लिंक की तरह देता है।

+0

दोनों के लिए '$ 1 $ 2. $ 3' के साथ बदलें धन्यवाद माइकल ... यह एक बड़ी मदद होगी। आप सूची को अद्यतित कैसे रखते हैं? – Jason

+0

मैं सीडीसी साइट से आईसीडी -9 कोड खींच रहा हूं। आईसीडी -10 कोड डब्ल्यूएचओ से हैं। वे प्रत्येक आम तौर पर प्रत्येक वर्ष एक मुख्यमंत्री अद्यतन प्रकाशित करते हैं। – Michael

+0

@ माइकल यह कमाल है! मैं संपर्क में रहूंगा। मैं इस एपीआई के लिए भविष्य की योजनाओं के बारे में आपसे बात करना चाहता हूं। –

4

मैं अंत में निम्नलिखित पाया:

"ICD-9-मुख्यमंत्री के प्रधान और अन्य निदान कोड के लिए क्षेत्र सभी निदान कोड के लिए तीसरे और चौथे अंकों के बीच निहित दशमलव बिंदु के साथ लंबाई में छह वर्ण, है वी कोड के अलावा। दशमलव को दूसरे और तीसरे अंक के बीच वी कोड के लिए निहित किया गया है। "

तो मैं एक पूर्ण आईसीडी-9 सूची और आवश्यकतानुसार सुधार करने की क्षमता प्राप्त करने में सक्षम था।

2

आप देख सकते हैं कि आईसीडी 9 कोड निम्न स्वरूप का पालन करें:

  • सभी कोड 6 वर्ण हैं
  • दशमलव बिंदु 3 और 4 वर्ण
  • तो कोड शुरू होता है के बीच आता है http://en.wikipedia.org/wiki/List_of_ICD-9_codes

    : एक वी चरित्र के साथ दशमलव बिंदु 2 और 3 वर्ण

चेक इस बाहर के बीच आता है

3

मैंने इस मुद्दे के साथ खुद को लंबे समय तक संघर्ष किया। सबसे अच्छा संसाधन मैं इन के लिए खोजने के लिए सक्षम किया गया है ज़िप फ़ाइलें यहां हैं:

https://www.cms.gov/ICD9ProviderDiagnosticCodes/06_codes.asp

यह दुर्भाग्यपूर्ण है क्योंकि वे (विचित्र रूप से) दशमलव स्थानों याद कर रहे हैं, लेकिन जैसा कि कई अन्य पोस्टर ने बताया है, उन्हें जोड़ने नियमों के ज्ञात होने के बाद काफी आसान है। मैं अपने टेक्स्ट एडिटर में उन्हें जोड़ने के लिए "ढूंढें और प्रतिस्थापित" पर आधारित एक नियमित अभिव्यक्ति का उपयोग करने में सक्षम था। यदि आप उस मार्ग पर जाते हैं तो यह देखने के लिए एक बात यह है कि आप उन कोडों के साथ समाप्त हो सकते हैं जिनके पीछे पीछे "।" लेकिन उसके बाद कोई शून्य नहीं। यह मान्य नहीं है, इसलिए आपको उनको साफ़ करने के लिए किसी अन्य खोज/प्रतिस्थापन की आवश्यकता हो सकती है।

उपरोक्त लिंक में डेटा फ़ाइलों के बारे में कष्टप्रद बात यह है कि श्रेणियों के साथ कोई संबंध नहीं है। जो आपको अपने आवेदन के आधार पर आवश्यकता हो सकती है। मैंने ऑनलाइन आरटीएफ-आधारित श्रेणी फ़ाइलों में से एक को ले लिया और प्रत्येक श्रेणी की श्रेणियां प्राप्त करने के लिए इसे फिर से स्वरूपित किया। यह कुछ रचनात्मक नियमित अभिव्यक्तियों के साथ एक पाठ संपादक में अभी भी करने योग्य था।

+0

सीएमएस केवल स्रोत का उपयोग करने योग्य स्रोत है क्योंकि वे दावों के इतने बड़े हिस्से के लिए भुगतान करते हैं और निजी बिलिंग सीएमएस का पालन करती है। – raider33

10

बस कोड दशमलव स्थानों को सही करने के तरीके पर ध्यान देना चाहते थे। सबसे पहले, वहाँ चार व्यापक बिंदुओं पर विचार करने के लिए कर रहे हैं:

  1. स्टैंडर्ड कोड दशमलव स्थान XXX.XX है
  2. कुछ संहिताओं दशमलव स्थानों
  3. वी संहिताओं अनुगामी भी XXX.XX प्रारूप का पालन नहीं है -> V54.31
  4. ई संहिताओं का पालन XXXX.X -> E850.9

इस प्रकार त्रुटियां ठीक करने के सामान्य तर्क

है
संख्या 1, गैर ई-कोड के लिए:

USE MainDb; 
UPDATE "dbo"."icd9cm_diagnosis_codes" 
    SET "DIAGNOSIS CODE" = SUBSTRING("DIAGNOSIS CODE",1,3)+'.'+SUBSTRING("DIAGNOSIS CODE",4,5) 
FROM "dbo"."icd9cm_diagnosis_codes" 
WHERE 
    SUBSTRING("DIAGNOSIS CODE",4,5) != '' 
    AND 
    LEFT("DIAGNOSIS CODE",1) != 'E' 

संख्या 2 - ई संहिताओं के लिए:

मैं दो एसक्यूएल अद्यतन बयान के साथ इस कार्यान्वित

UPDATE "dbo"."icd9cm_diagnosis_codes" 
    SET "DIAGNOSIS CODE" = SUBSTRING("DIAGNOSIS CODE",1,4)+'.'+SUBSTRING("DIAGNOSIS CODE",5,5) 
FROM "dbo"."icd9_Diagnosis_table" 
WHERE 
    LEFT("DIAGNOSIS CODE",1) = 'E' 
    AND 
    SUBSTRING("DIAGNOSIS CODE",5,5) != '' 

चाल नहीं लग रहा था मेरे लिए (SQL सर्वर 2008 का उपयोग करना)।

+0

रेगेक्स समाधान: नियमित और ई कोड - '(ई)? (\ डी {3}) (\ डी {1,2}) ', वी कोड:' (वी) (\ डी {2}) (\ डी { 1,2}) '। – Stetzon

1

मैं कोड को दशमलव बनाने के लिए एक ग्रोवी स्क्रिप्ट बनाने के लिए यहां उपयोगी उत्तरों का उपयोग करने में सक्षम था और एक टैब से अलग सूची में लंबे और छोटे विवरण जोड़ता था। यदि यह किसी को भी मदद करता है, तो मैं यहां अपना कोड शामिल कर रहा हूं:

import org.apache.log4j.BasicConfigurator 
import org.apache.log4j.Level 
import org.apache.log4j.Logger 

import java.util.regex.Matcher 
import java.util.regex.Pattern 

Logger log = Logger.getRootLogger() 
BasicConfigurator.configure(); 
Logger.getRootLogger().setLevel(Level.INFO); 

Map shortDescMap = [:] 
new File('CMS31_DESC_SHORT_DX.txt').eachLine {String l -> 
    int split = l.indexOf(' ') 
    String code = l[0..split].trim() 
    String desc = l[split+1..-1].trim() 
    shortDescMap.put(code, desc) 
} 
int shortLenCheck = 40  // arbitrary lengths, but provide some sanity checking... 
int longLenCheck = 300 
File longDescFile = new File('CMS31_DESC_LONG_DX.txt') 
Map cmsRows = [:] 
Pattern p = Pattern.compile(/^(\w*)\s+(.*)$/) 
new File('parsedICD9.csv').withWriter { out -> 
    out.write('ICD9 Code\tShort Description\tLong Description\n') 
    longDescFile.eachLine {String row -> 
     Matcher m = row =~ p 
     if (m.matches()) { 
      String code = m.group(1) 
      String shortDescription = shortDescMap.get(code) 
      String longDescription = m.group(2) 
      if(shortDescription.size() > shortLenCheck){ 
       log.info("Not short? $shortDescription") 
      } 
      if(longDescription.size() > longLenCheck){ 
       log.info("${longDescription.size()} == Too long? $longDescription") 
      } 
      log.debug("Match 1:${code} -- 2:${longDescription} -- orig:$row") 

      if (code.startsWith('V')) { 
       if (code.size() > 3) { 
        code = code[0..2] + '.' + code[3..-1] 
       } 
       log.info("Code: $code") 

      } else if (code.startsWith('E')) { 
       if (code.size() > 4) { 
        code = code[0..3] + '.' + code[4..-1] 
       } 
       log.info("Code: $code") 
      } else if (code.size() > 3) { 
       code = code[0..2] + '.' + code[3..-1] 
      } 
      if (code) { 
       cmsRows.put(code, ['longDesc': longDescription]) 
      } 
      out.write("$code\t$shortDescription\t$longDescription\n") 
     } else { 
      log.warn "No match for row: $row" 
     } 
    } 
} 

मुझे आशा है कि यह किसी की सहायता करेगा।

शॉन