Pregunta

Busco a una lista completa de la CIE-9 códigos (códigos médicos) para Enfermedades y procedimientos en un formato que se pueden importar en una base de datos y se hace referencia mediante programación. Mi pregunta es, básicamente, exactamente lo mismo que Buscando recursos para los códigos ICD-9 , pero el cartel original no mencionó exactamente dónde "consiguió ahold de" su lista completa.

Google definitivamente no es mi amigo aquí como he pasado muchas horas buscando en Google el problema y han encontrado muchas listas rica tipo de texto (como el CDC) o sitios web donde se puede profundizar a la lista completa de forma interactiva, pero no puedo encontrar dónde obtener la lista que rellenar estos sitios web y puede ser analizado en una base de datos. Creo que los archivos aquí ftp: //ftp.cdc. gov / pub / Health_Statistics / NCHS / Publicaciones / CIE-9-CM / 2009 / tiene lo que estoy buscando, pero los archivos son de formato de texto enriquecido y contiene una gran cantidad de basura y de formato que sería difícil de eliminar con precisión.

Sé que esto tiene que haber sido hecho por otros y estoy tratando de evitar la duplicación de esfuerzos de otras personas, pero simplemente no puedo encontrar un / CSV / Excel lista XML.

¿Fue útil?

Solución 2

Después de la eliminación de la RTF que no era demasiado difícil de analizar el archivo y convertirlo en un archivo CSV. Mi resultante archivos analizados contienen todos los 2009 códigos ICD-9 de enfermedades y procedimientos son aquí: http: // www .jacotay.com / archivos / Disease_and_ProcedureCodes_Parsed.zip Mi analizador que escribí está aquí: http://www.jacotay.com/files/RTFApp.zip Básicamente se trata de un proceso de dos pasos - tomar los archivos desde el sitio FTP CDC, y retire la RTF de ellos, a continuación, seleccione los archivos sin RTF y analizarlos en los archivos CSV. El código aquí es bastante duro, porque sólo necesitaba para obtener los resultados de una vez.

Este es el código para la aplicación de análisis en el caso de los enlaces externos se apagan (back-end a una forma que le permite seleccionar un nombre de archivo y haga clic en los botones para hacer que se vaya)

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

Otros consejos

Centros de Servicios de Medicare y Medicaid proporciona archivos de Excel que contienen solo los códigos de diagnóstico, y que pueden importarse directamente en algunas bases de datos SQL, la conversión sans.

archivos comprimidos de Excel, por número de versión

(Actualización: Nuevo enlace basado en comentarios a continuación)

Centro de Servicios de Medicare (CMS) es en realidad cargada con la CIE, así que creo que las versiones de los CDC de referencia que ustedes sólo puede ser copias o copias reprocesados. Aquí está el (~ difícil de encontrar) la página de Medicare que creo que contiene los datos brutos originales ( "fuente de verdad").

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

Parece que a partir de este post es la última versión v32. El zip descargado contiene 4 archivos de texto sin formato, que el mapa del código a la descripción (un archivo para cada combinación de DIAG | PROC y cortas | LARGO). También contiene dos archivos de Excel (uno cada uno para DIAG_PROC) que tienen tres columnas para que el código de mapa para ambos descripciones largas ( y corta).

Es evidente que un hilo muy antiguo pero recientemente llevó a cabo esta tarea y lo escribió aquí con enlaces a fuentes de datos -

http://colinwhite.net/dropplets/ICD

Yo estaba tratando de conseguir tanto la CIE-9 y la CIE-10 en una base de datos SQLite.

parece haber funcionado bien.

Puede obtener los archivos de código RTF orginal de aquí http://ftp.cdc.gov/pub/Health_Statistics/ NCHS / Publicaciones / CIE-9-CM / 2009 /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top