Domanda

Cerco un elenco completo dei codici ICD-9 (Codici medici) per le malattie e le procedure in un formato che può essere importato in un database e fa riferimento a livello di codice. La mia domanda è fondamentalmente esattamente lo stesso di alla ricerca di risorse per i codici ICD-9 , ma il manifesto originale trascurato di menzionare esattamente dove egli "ha ottenuto ahold della" sua lista completa.

Google non è sicuramente il mio amico qui come ho trascorso molte ore googling il problema e hanno trovato molte liste ricco tipo di testo (come ad esempio il CDC) o siti web dove posso drill-down per visualizzare la lista completa in modo interattivo, ma non riesco a trovare dove trovare la lista che avrebbero popolato questi siti web e può essere analizzato in un database. Credo che i file qui ftp: //ftp.cdc. gov / pub / Health_Statistics / NCHS / pubblicazioni / ICD9-CM / 2009 / ha quello che sto cercando, ma i file sono formato RTF e contengono un sacco di immondizia e la formattazione che sarebbe stato difficile da rimuovere con precisione.

So che questo deve essere stato fatto da altri e sto cercando di evitare di duplicare gli sforzi di altri popoli, ma non riesco proprio a trovare una / CSV / lista Excel XML.

È stato utile?

Soluzione 2

Dopo aver rimosso il formato RTF non era troppo difficile da analizzare il file e di trasformarlo in un file CSV. Il mio risultante file analizzati contengono tutte le 2009 codici ICD-9 per le malattie e le procedure sono qui: http: // www .jacotay.com / files / Disease_and_ProcedureCodes_Parsed.zip Il mio parser che ho scritto è qui: http://www.jacotay.com/files/RTFApp.zip Fondamentalmente si tratta di un processo in due fasi - prendere i file dal sito FTP CDC, e rimuovere il formato RTF da loro, quindi selezionare i file senza RTF e li analizzare nei file CSV. Il codice qui è abbastanza agitato, perché ho solo bisogno di ottenere i risultati una volta.

Ecco il codice per l'applicazione nel caso in cui l'analisi dei link esterni si abbassano (back-end a una forma che consente di selezionare un nome di file e fare clic sui pulsanti per farlo andare)

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

Altri suggerimenti

Centri per i servizi di Medicaid e Medicare fornisce files excel che contengono solo i codici e la diagnosi, che possono essere importati direttamente in qualche database SQL, la conversione sans.

file compressi di Excel, in base al numero di versione

(Aggiornamento: Nuovo collegamento sulla base di commento qui sotto)

Center for Medicare Services (CMS) è in realtà il compito di ICD, quindi penso che le versioni CDC voi ragazzi può fare riferimento solo copie o copie rielaborati. Ecco la (~ difficile da trovare) pagina medicare che credo contiene i dati grezzi originali ( "fonte di verità").

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

Sembra che come di questo post l'ultima versione è V32. La zip download conterrà 4 file di testo che mappa Codice-a-descrizione (un file per ogni combinazione di DIAG | PROC e SHORT | LONG). Esso contiene inoltre due file excel (uno ciascuno per DIAG_PROC) che hanno tre colonne in modo codice di mappa per sia (descrizioni lunghe e short).

Chiaramente, un filo molto vecchio ma di recente ho intrapreso questo compito e lo ha scritto qui con collegamenti per dati di origine -

http://colinwhite.net/dropplets/ICD

I stava cercando di ottenere sia ICD-9 e ICD-10 in un database SQLite.

sembra aver funzionato bene.

È possibile ottenere i file di codice RTF orginal da qui http://ftp.cdc.gov/pub/Health_Statistics/ NCHS / pubblicazioni / ICD9-CM / 2009 /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top