Frage

Ich bin für eine vollständige Liste des ICD-9-Codes (Medical Codes) für Krankheiten und Verfahren in einem Format, das programmatisch in eine Datenbank und referenziert importiert werden kann. Meine Frage ist im Grunde genau die gleichen wie für Ressourcen der Suche nach ICD-9-Codes , aber das ursprüngliche Plakat zu erwähnen vernachlässigt, wo genau er seine komplette Liste „got ahold“.

Google ist definitiv nicht mein Freund hier, wie ich das Problem, viele Stunden damit verbracht habe, googeln und habe viele Rich-Text-Typ-Listen (wie die CDC) oder Websites zu finden, wo ich interaktiv auf die vollständige Liste Drilldown kann, aber ich kann nicht finden, wo die Liste zu bekommen, dass diese Websites bevölkern würde und in eine Datenbank analysiert werden. Ich glaube, dass die Dateien hier ftp: //ftp.cdc. gov / pub / Health_Statistics / NCHS / Publikationen / ICD9-CM / 2009 / hat, was ich suche, aber die Dateien sind Rich-Text-Format und eine Menge Müll enthalten und dass die Formatierung würde schwierig sein, genau zu entfernen.

Ich weiß, das von anderen gemacht worden zu sein hat und ich versuche, zu duplizieren andere Völker Aufwand zu vermeiden, aber ich kann einfach nicht eine XML / CSV / Excel-Liste finden.

War es hilfreich?

Lösung 2

Nach dem Entfernen des RTF es nicht allzu schwer war es, die Datei zu analysieren und sie in eine CSV drehen. Mein resultierenden analysierten Dateien all 2009 ICD-9-Codes für Krankheiten und Verfahren enthalten sind hier: http: // www .jacotay.com / files / Disease_and_ProcedureCodes_Parsed.zip Mein Parser, dass ich geschrieben habe, ist hier: http://www.jacotay.com/files/RTFApp.zip Im Grunde ist es ein zweistufiger Prozess - nehmen Sie die Dateien von der CDC-FTP-Site, und entfernen Sie die RTF von ihnen, wählen Sie dann die RTF-freie Dateien und analysieren sie in die CSV-Dateien. Der Code hier ist ziemlich rau, weil ich nur die Ergebnisse aus einmal zu bekommen benötigt.

Hier ist der Code für das Parsen App falls die externen Links unten gehen (Back-End zu einem Formular, das Sie einen Dateinamen auswählen kann und die Schaltflächen klicken, um es gehen)

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

Andere Tipps

Zentren für Medicaid und Medicare-Dienste bietet Excel-Dateien, die nur die Codes und Diagnose enthalten, die direkt in eine SQL-Datenbanken importiert werden können, sans-Konvertierung.

Zip Excel-Dateien, die von Versionsnummer

(Update: Neuer Link basierend auf Kommentar unten)

Zentrum für Medicare Services (CMS) ist eigentlich mit ICD geladen, so glaube ich, die CDC-Versionen ihr Referenz nur Kopien oder wieder aufbereitet Kopien sein kann. Hier ist die (~ schwer zu finden) medi Seite, die ich denke, dass die ursprünglichen Rohdaten enthält ( „Quelle der Wahrheit“).

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

Es sieht aus wie wie dieser Beitrag die neueste Version v32 ist. Die zip Sie kostenlos herunterladen 4 Klartextdateien, die Karte Code-zu-Beschreibung (eine Datei für jede Kombination von DIAG | PROC und SHORT | LONG) enthalten wird. Es enthält auch zwei Excel-Dateien (jeweils eine für DIAG_PROC), die mit drei Spalten, so dass Kartencode beide Beschreibungen (long und kurz).

Klar, ein sehr alter Thread aber ich unternahm vor kurzem diese Aufgabe und schrieb es hier oben mit Links zu Quelldaten -

http://colinwhite.net/dropplets/ICD

Ich habe versucht, sowohl die ICD-9 zu erhalten und ICD-10 in eine SQLite-Datenbank.

Es scheint gut funktioniert zu haben.

Sie können die ursprünglichen RTF-Code-Dateien von hier http://ftp.cdc.gov/pub/Health_Statistics/ NCHS / Publikationen / ICD9-CM / 2009 /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top