Список кодов ICD-9 в формате XML, CSV или базы данных [Закрыто
Вопрос
Я ищу полный перечень кодов ICD-9 (медицинских кодов) для заболеваний и процедур в формате, который можно импортировать в базу данных и ссылаться на программно. Мой вопрос в основном точно такой же, как Ищете ресурсы для кодов ICD-9, Но первоначальный постер пренебрегал, чтобы упомянуть, где именно он «получил Охот за его полный список».
Google определенно не моим другом здесь, как я провел много часов погугующуюся к проблеме и нашел множество развязных списков типов текста (например, CDC) или веб-сайты, где я могу интегрироваться в полный список, но я не могу найти, куда Список, который заполнил бы эти веб-сайты и может быть проанализирован в базу данных. Я верю в файлы здесь ftp://ftp.cdc.gov/pub/health_statistics/nchs/publications/icd9-cm/2009/ Ищите то, что я ищу, но файлы являются богатым текстовым форматом и содержат много мусора и форматирования, который будет трудно удалить точно.
Я знаю, что это должно быть сделано другими, и я пытаюсь избежать дублирования других народов, но я просто не могу найти список XML / CSV / Excel.
Решение 2
После удаления RTF было не слишком сложно, чтобы разбирать файл и превратить его в CSV. Мои полученные анализируемые файлы, содержащие все все коды ICD-9 2009 года для заболеваний и процедур: http://www.jacotay.com/files/disease_and_procedurecodes_parsed.zip.Мой парсер, который я написал здесь: http://www.jacotay.com/files/rtfapp.zip. В основном это два шагов - примите файлы с сайта FTP CDC и удалите из них RTF, затем выберите файлы RTF-файлов и разбираем их в файлы CSV. Код здесь довольно грубый, потому что мне нужно только получить результаты один раз.
Вот код для приложения PARSING в случае, если внешние ссылки снижаются (задний конец к форме, которая позволяет вам выбрать имя файла и щелкнуть кнопки, чтобы сделать его)
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, ",", ",")
DestFileLine = Strings.Replace(DestFileLine, """", """).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, ",", ",")
DestFileLine = Strings.Replace(DestFileLine, """", """).Trim
DestFileText.AppendLine(CurCode & ",""" & DestFileLine & """")
CurCode = ""
DestFileLine = ""
End If
End If
Next
If CurCode <> "" Then
DestFileLine = Strings.Replace(DestFileLine, ",", ",")
DestFileLine = Strings.Replace(DestFileLine, """", """).Trim
DestFileText.AppendLine(CurCode & ",""" & DestFileLine & """")
CurCode = ""
DestFileLine = ""
End If
IO.File.WriteAllText(Replace(pFile.FullName, pFile.Extension, "_parsed" & pFile.Extension), DestFileText.ToString)
End Sub
Конец класса
Другие советы
Центры для сервисов Medicaid & Medicare обеспечивают файлы Excel, которые содержат только коды и диагностику, которые могут быть импортированы непосредственно в некоторые базы данных SQL, преобразование Sans.
Запрошенные файлы Excel, по номеру версии
(Обновление: новая ссылка на основе комментариев ниже)
Центр услуг Medicare (CMS) фактически заряжен в ICD, поэтому я думаю, что версии CDC, которые вы, ребята, ссылаясь на справку, могут быть просто копиями или переработными копиями. Здесь (~ трудно найти) страницу Medicare, которую я думаю, содержит оригинальные необработанные данные («Источник истины»).
http://www.cms.gov/medicare/coding/icd9providerdiagnosticcodes/codes.html.
Похоже на этот пост последняя версия V32. Загрузка ZIP вы загружают, будут содержать 4 износно-текстовых файлов, которые отображают кодовый к-к описанию (один файл для каждой комбинации Diag | Proc Proc и Collect | Он также содержит два файла Excel (один для каждого для Diag_Proc), которые имеют три столбца, поэтому код карты для обе Описания (длинные а также короткая).
Очевидно, что очень старая нить, но я недавно провел эту задачу и написал его здесь со ссылками на исходные данные -
http://colinwhite.net/dropplets/icd.
Я пытался получить как ICD-9, так и ICD-10 в базу данных SQLite.
Кажется, хорошо работал.
Вы можете получить файлы кода Orginal RTF отсюдаhttp://ftp.cdc.gov/pub/health_statistics/nchs/publications/icd9-cm/2009/