Question

Je cherche une liste complète des codes CIM-9 (codes médicaux) pour les maladies et procédures dans un format qui peut être importé dans une base de données et référencées par programmation. Ma question est fondamentalement exactement le même que Vous cherchez des ressources pour la CIM-9 codes , mais l'affiche originale a négligé de mentionner exactement où il « a Ahold de » sa liste complète.

Google est certainement pas mon ami ici comme je l'ai passé de nombreuses heures googler le problème et nous avons trouvé de nombreuses listes de type texte riche (comme la CDC) ou des sites Web où je peux percer jusqu'à la liste complète interactive, mais je ne peux pas trouver où obtenir la liste qui peupler ces sites Web et peut être analysé dans une base de données. Je crois que les fichiers ici ftp: //ftp.cdc. gov / pub / Health_Statistics / NCHS / Publications / ICD9-CM / 2009 / ont ce que je cherche, mais les fichiers sont format texte enrichi et contient beaucoup de déchets et le formatage qui serait difficile à enlever avec précision.

Je sais que cela doit avoir été fait par d'autres et j'essaie d'éviter la duplication des efforts d'autres peuples, mais je ne peux pas trouver une liste xml / CSV / Excel.

Était-ce utile?

La solution 2

Après avoir retiré la RTF, il n'a pas été trop dur pour analyser le fichier et le transformer en un fichier CSV. Mon résultat des fichiers analysés contenant tous les 2009 codes CIM-9 pour les maladies et les procédures sont ici: http: // www .jacotay.com / fichiers / Disease_and_ProcedureCodes_Parsed.zip Mon analyseur que j'ai écrit ici: http://www.jacotay.com/files/RTFApp.zip Fondamentalement, il est un processus en deux étapes - prendre les fichiers à partir du site FTP CDC, et retirez la RTF d'eux, puis sélectionnez les fichiers RTF et sans les analyser dans les fichiers CSV. Le code ici est assez rude parce que je ne devais obtenir les résultats une fois.

Voici le code pour l'application de l'analyse dans le cas où les liens externes vont vers le bas (fin de revenir à un formulaire qui vous permet de sélectionner un nom de fichier et cliquez sur les boutons pour la faire)

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

Autres conseils

Centres de services Medicare Medicaid et fournit des fichiers Excel qui contiennent uniquement les codes et le diagnostic, qui peuvent être importés directement dans certaines bases de données SQL, sans conversion.

fichiers Excel, par Zippé numéro de version

(Mise à jour: Nouveau lien basé sur le commentaire ci-dessous)

Center for Medicare services (CMS) est en fait chargé de la CIM, donc je pense que les versions CDC vous référence des gars peut juste être des copies ou des copies retraiter. Voici le (~ difficile à trouver) la page d'assurance-maladie que je pense que contient les données brutes originales ( « source de vérité »).

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

On dirait que de ce post la dernière version est V32. Le zip télécharger vous contiendra 4 fichiers texte qui code à la description carte (un fichier pour chaque combinaison de DIAG | PROC et COURT | LONG). Il contient également deux fichiers Excel (un pour chaque DIAG_PROC) qui ont trois colonnes pour le code de carte les (descriptions longues et court).

De toute évidence, un fil très ancien mais je a récemment entrepris cette tâche et a écrit ici avec des liens vers des données source -

http://colinwhite.net/dropplets/ICD

Je tente d'obtenir la CIM-9 et la CIM-10 dans une base de données SQLite.

Il semble avoir bien fonctionné.

Vous pouvez obtenir les fichiers de code orginal RTF à partir d'ici http://ftp.cdc.gov/pub/Health_Statistics/ NCHS / Publications / ICD9-CM / 2009 /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top