database XML、CSV 或数据库格式的 ICD-9 代码列表

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3653811/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 07:51:13  来源:igfitidea点击:

ICD-9 Code List in XML, CSV, or Database format

databasemedical

提问by TJ.

I am looking for a complete list of ICD-9 Codes (Medical Codes) for Diseases and Procedures in a format that can be imported into a database and referenced programmatically. My question is basically exactly the same as Looking for resources for ICD-9 codes, but the original poster neglected to mention where exactly he "got ahold of" his complete list.

我正在寻找疾病和程序的 ICD-9 代码(医疗代码)的完整列表,其格式可以导入数据库并以编程方式引用。我的问题基本上与寻找 ICD-9 代码的资源完全相同,但原始海报忽略了他“获得”完整列表的确切位置。

Google is definitely not my friend here as I have spent many hours googling the problem and have found many rich text type lists (such as the CDC) or websites where I can drill down to the complete list interactively, but I cannot find where to get the list that would populate these websites and can be parsed into a Database. I believe the files here ftp://ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD9-CM/2009/have what I am looking for but the files are rich text format and contain a lot of garbage and formatting that would be difficult to remove accurately.

谷歌绝对不是我的朋友,因为我花了很多时间在谷歌上搜索问题,并找到了许多富文本类型列表(例如 CDC)或网站,我可以在其中交互式地深入查看完整列表,但我找不到从哪里找到将填充这些网站并可以解析为数据库的列表。我相信这里的文件ftp://ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD9-CM/2009/有我正在寻找的文件,但这些文件是富文本格式,包含大量垃圾和格式这将很难准确去除。

I know this has to have been done by others and I am trying to avoid duplicating other peoples effort but I just cannot find an xml/CSV/Excel list.

我知道这必须由其他人完成,我试图避免重复其他人的工作,但我就是找不到 xml/CSV/Excel 列表。

采纳答案by TJ.

After removing the RTF it wasn't too hard to parse the file and turn it into a CSV. My resulting parsed files containing all 2009 ICD-9 codes for Diseases and Procedures are here: http://www.jacotay.com/files/Disease_and_ProcedureCodes_Parsed.zipMy parser that I wrote is here: http://www.jacotay.com/files/RTFApp.zipBasically it is a two step process - take the files from the CDC FTP site, and remove the RTF from them, then select the RTF-free files and parse them into the CSV files. The code here is pretty rough because I only needed to get the results out once.

删除 RTF 后,解析文件并将其转换为 CSV 并不难。我生成的包含所有 2009 ICD-9 疾病和程序代码的解析文件在这里:http: //www.jacotay.com/files/Disease_and_ProcedureCodes_Parsed.zip我写的解析器在这里:http: //www.jacotay.com /files/RTFApp.zip基本上它是一个两步过程 - 从 CDC FTP 站点获取文件,并从中删除 RTF,然后选择无 RTF 文件并将它们解析为 CSV 文件。这里的代码非常粗糙,因为我只需要得到一次结果。

Here is the code for the parsing app in case the external links go down (back end to a form that lets you select a filename and click the buttons to make it go)

这是解析应用程序的代码,以防外部链接断开(后端到一个表单,该表单可让您选择文件名并单击按钮使其运行)

Public Class Form1

Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
    Dim p As New OpenFileDialog With {.CheckFileExists = True, .Multiselect = False}
    Dim pResult = p.ShowDialog()
    If pResult = Windows.Forms.DialogResult.Cancel OrElse pResult = Windows.Forms.DialogResult.Abort Then
        Exit Sub
    End If
    txtFileName.Text = p.FileName
End Sub

Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click
    Dim pFile = New IO.FileInfo(txtFileName.Text)
    Dim FileText = IO.File.ReadAllText(pFile.FullName)
    FileText = RemoveRTF(FileText)
    IO.File.WriteAllText(Replace(pFile.FullName, pFile.Extension, "_fixed" & pFile.Extension), FileText)

End Sub


Function RemoveRTF(ByVal rtfText As String)
    Dim rtBox As System.Windows.Forms.RichTextBox = New System.Windows.Forms.RichTextBox

    '// Get the contents of the RTF file. Note that when it is
    '// stored in the string, it is encoded as UTF-16.
    rtBox.Rtf = rtfText
    Dim plainText = rtBox.Text

    Return plainText
End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim pFile = New IO.FileInfo(txtFileName.Text)
    Dim FileText = IO.File.ReadAllText(pFile.FullName)
    Dim DestFileLine As String = ""
    Dim DestFileText As New System.Text.StringBuilder

    'Need to parse at lines with numbers, lines with all caps are thrown away until next number
    FileText = Strings.Replace(FileText, vbCr, "")
    Dim pFileLines = FileText.Split(vbLf)
    Dim CurCode As String = ""
    For Each pLine In pFileLines
        If pLine.Length = 0 Then
            Continue For
        End If
        pLine = pLine.Replace(ChrW(9), " ")
        pLine = pLine.Trim

        Dim NonCodeLine As Boolean = False
        If IsNumeric(pLine.Substring(0, 1)) OrElse (pLine.Length > 3 AndAlso (pLine.Substring(0, 1) = "E" OrElse pLine.Substring(0, 1) = "V") AndAlso IsNumeric(pLine.Substring(1, 1))) Then
            Dim SpacePos As Int32
            SpacePos = InStr(pLine, " ")
            Dim NewCode As String
            NewCode = ""
            If SpacePos >= 3 Then
                NewCode = Strings.Left(pLine, SpacePos - 1)
            End If

            If SpacePos < 3 OrElse Strings.Mid(pLine, SpacePos - 1, 1) = "." OrElse InStr(NewCode, "-") > 0 Then
                NonCodeLine = True
            Else
                If CurCode <> "" Then
                    DestFileLine = Strings.Replace(DestFileLine, ",", "&#44;")
                    DestFileLine = Strings.Replace(DestFileLine, """", "&quot;").Trim
                    DestFileText.AppendLine(CurCode & ",""" & DestFileLine & """")
                    CurCode = ""
                    DestFileLine = ""
                End If

                CurCode = NewCode
                DestFileLine = Strings.Mid(pLine, SpacePos + 1)
            End If
        Else
            NonCodeLine = True
        End If


        If NonCodeLine = True AndAlso CurCode <> "" Then 'If we are not on a code keep going, otherwise check it
            Dim pReg As New System.Text.RegularExpressions.Regex("[a-z]")
            Dim pRegCaps As New System.Text.RegularExpressions.Regex("[A-Z]")
            If pReg.IsMatch(pLine) OrElse pLine.Length <= 5 OrElse pRegCaps.IsMatch(pLine) = False OrElse (Strings.Left(pLine, 3) = "NOS" OrElse Strings.Left(pLine, 2) = "IQ") Then
                DestFileLine &= " " & pLine
            Else 'Is all caps word
                DestFileLine = Strings.Replace(DestFileLine, ",", "&#44;")
                DestFileLine = Strings.Replace(DestFileLine, """", "&quot;").Trim
                DestFileText.AppendLine(CurCode & ",""" & DestFileLine & """")
                CurCode = ""
                DestFileLine = ""
            End If
        End If
    Next

    If CurCode <> "" Then
        DestFileLine = Strings.Replace(DestFileLine, ",", "&#44;")
        DestFileLine = Strings.Replace(DestFileLine, """", "&quot;").Trim
        DestFileText.AppendLine(CurCode & ",""" & DestFileLine & """")
        CurCode = ""
        DestFileLine = ""
    End If

    IO.File.WriteAllText(Replace(pFile.FullName, pFile.Extension, "_parsed" & pFile.Extension), DestFileText.ToString)
End Sub

End Class

结束类

回答by chris

Centers for Medicaid & Medicare services provides excel files which contain just the codes and diagnosis, which can be imported directly into some SQL databases, sans conversion.

医疗补助和医疗保险服务中心提供仅包含代码和诊断的 excel 文件,这些文件可以直接导入某些 SQL 数据库,无需转换。

Zipped Excel files, by version number

压缩的 Excel 文件,按版本号

(Update: New link based on comment below)

(更新:基于以下评论的新链接)

回答by Benny

Center for Medicare Services (CMS) is actually charged with ICD, so I think the CDC versions you guys reference may just be copies or reprocessed copies. Here is the (~hard to find) medicare page which i think contains the original raw data ("source of truth").

医疗保险服务中心 (CMS) 实际上负责 ICD,所以我认为你们参考的 CDC 版本可能只是副本或重新处理的副本。这是(~很难找到)医疗保险页面,我认为它包含原始原始数据(“事实来源”)。

http://www.cms.gov/Medicare/Coding/ICD9ProviderDiagnosticCodes/codes.html

http://www.cms.gov/Medicare/Coding/ICD9ProviderDiagnosticCodes/codes.html

It looks like as of this post the latest version is v32. The zip you download will contain 4 plain-text files which map code-to-description (one file for every combination of DIAG|PROC and SHORT|LONG). It also contains two excel files (one each for DIAG_PROC) which have three columns so map code to bothdescriptions (long andshort).

看起来在这篇文章中最新版本是 v32。您下载的 zip 将包含 4 个将代码映射到描述的纯文本文件(DIAG|PROC 和 SHORT|LONG 的每个组合一个文件)。它还包含两个 excel 文件(DIAG_PROC 各一个),它们有三列,因此将代码映射到两个描述(长短)。

回答by Hi and Thank you.

You can get the orginal RTF code files from here http://ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD9-CM/2009/

您可以从这里获取原始 RTF 代码文件 http://ftp.cdc.gov/pub/Health_Statistics/NCHS/Publications/ICD9-CM/2009/