ICD-10 Diagnosis Extractor

Most veterans have hundreds or thousands of pages of medical records: one doctor or a dozen, one file or a folder full of them, spread across years. Somewhere in there are the diagnosis codes that prove you have the condition you are claiming. This free Windows program reads those files on your own computer and lists every diagnosis code it finds, together with the file it came from and the page it is on. Nothing is uploaded. Your computer does not even need to be connected to the internet.

Download

Download for Windows
  • Version: checking…
  • Size: checking…. You need about that much free disk space.
  • Runs on: Windows 10 or Windows 11.
  • Price: free, like everything else on this site. No account, no signup, no ads.
  • SHA-256 checksum:
    checking…

Windows will warn you the first time. The program is not yet signed with a paid publisher certificate, so Windows SmartScreen shows a blue "Windows protected your PC" box that says unknown publisher. That message means Windows has not seen this program before. It does not mean anything was found in it. To run it anyway, click More info, then Run anyway. If you would rather not, two honest alternatives are below: check the file against the checksum above, or read the source code and build it yourself.

How it works

Point it at your records

Pick one file or a whole folder. It reads PDF, Word, text, HTML and clinical XML files (the CDA or CCD "health record export" many patient portals produce). Scanned pages and photos of paper records are read with text recognition built into the program, which is slower, so a folder of scans takes longer than a folder of typed reports.

Let it run

It works through every file and writes a plain text report. Every code is checked against the official CDC code list, so look-alike numbers like device models, account numbers and medicine doses are thrown out instead of being reported as diagnoses.

Click Copy ICD-10 codes

The report ends with a clean list of just the codes, and the window has a button that copies that list for you.

Paste them here

Bring the list to our ICD-10 to VA code lookup and see which VA diagnostic code each diagnosis is most commonly rated under.

Open the ICD-10 to VA code lookup →

Why the page numbers matter

A list of codes on its own is only half of what you need. The report gives you the code, the file name it came from, and the page or line number it sits on, plus the nearest date it could find:

file page code description nearest date VAMC_Records_2019.pdf p. 412 G43.909 Migraine, unspecified 2019-03-14 VAMC_Records_2019.pdf p. 588 F41.1 Generalized anxiety disorder 2019-08-02 Dr_Patel_Sleep_Study.pdf p. 3 G47.33 Obstructive sleep apnea 2021-11-09

That is the difference between saying "I have been diagnosed with sleep apnea" and being able to point at the exact page in the exact file. It saves you hunting through the same 900 pages twice, and it gives the VA reviewer working your claim a citation they can jump straight to instead of a stack to search. Both sides spend less time looking.

New in the current build

Three additions, all built to the same rule as the rest of the program: organize what your records already say, never advise.

  • Potential VA diagnostic code, right in the report. Beside each ICD-10 code found, the report now lists the VA diagnostic code that condition is most commonly rated under, using a reference built from this site's own ICD-10 to VA code crosswalk and bundled inside the download. It is a research cross-reference only, not an official VA mapping, not a rating, and not advice about what to claim; when the reference cannot answer confidently it says so instead of guessing. Older records coded in ICD-9 are carried across too, through the standard ICD-9 to ICD-10 conversion table, with every step shown. It all still works entirely offline: the reference files ship in the zip.
  • A SNOMED code is not automatically a diagnosis. Many records code their problem list in SNOMED CT instead. Those entries are now carried across to ICD-10-CM as well, and each one says what it actually is, taken from the official SNOMED release: a disorder, a finding, a procedure, an event, or a situation. That distinction matters. An exposure to COVID-19 translates cleanly to an ICD-10 code, which says only that the two coding systems agree on the words, not that a doctor found you had it. So only a disorder is ever offered a potential VA diagnostic code. A procedure, a finding or an event is reported in its own section with what it is and what it translates to, and nothing is suggested for it.
  • Claim File Handoff, reorganized. One optional button after a run writes a second document that organizes everything the run found. It opens with the useful part rather than page one: a short summary, then the entries grouped by the VA diagnostic code the reference returned for them, then the coded entries it had no result for, then the entries that are not diagnoses and are no longer presented as ones, and finally the complete page-by-page evidence as an appendix. Grouping means the reference returned the same code, not that the document claims two entries are the same condition. Nothing is removed to shorten it: every entry appears once above and once in the appendix, with its code, page, nearest date and the provider named in the record. Nothing is rescanned and no advice is added.
  • Cleaner dates and rows. A date labeled as your date of birth is never mistaken for a diagnosis date, a letterhead date repeated at the top of every page gives way to the visit date in the body, and page footers and laboratory result headers are no longer misread as diagnoses.

After the Claim File Handoff: review, then keep what you choose

The Handoff is a document on your computer. This website never receives your medical files. You can bring the Handoff's entries into My Preparation two ways: by hand, one entry at a time, or with Import an Extractor Report, which reads the Handoff (or the newer Export for RateMyVSO file) on your own device so you can review every entry and choose which ones to save. Only the findings you choose are stored in your account; the report itself is never uploaded.

  1. Review the source. For each entry you want to rely on, open the file and page the report names and read what the record actually says. Dates, text recognition and classifications can be wrong, and a finding, procedure or event is not a diagnosis. An imported entry stays marked "Needs source review" until you check it yourself.
  2. Record or import the ones you choose. In your claim journey, use Record a finding to type an entry, or Import an Extractor Report to pick entries from the report: the exact wording as extracted, the code system and code as written, the file name, the page or line, the nearby date and the page-header provider come along, and each entry can be corrected before it is saved.
  3. Connect it deliberately. Place each finding under a condition you selected, under the whole journey, or leave it Not connected yet. Recording or importing a code never selects a claim condition for you, and the report's research cross-reference is never saved as your code.

Record or import findings in your claim journey

Saving a finding needs a free account. Your medical files and the Handoff stay on your computer either way.

Your records never leave your computer

Medical records are about the most private paperwork a person owns, and the usual way a tool like this works is to upload your files to somebody's server. This one does not.

  • No uploads: the program makes no network calls at all. Nothing is sent to us, to an AI service, or anywhere else.
  • No internet required: the text recognition runs on your machine too, so you can unplug the network entirely and it still works. That is a fair way to prove the claim to yourself.
  • Nothing is kept here: we never see your files, so there is nothing of yours for us to store, lose, or be asked to hand over.
  • The paste is anonymous: when you bring the code list to the VA code lookup, you are pasting generic diagnosis codes. No name, no date of birth, no file number, no account, no login. A code like G47.33 says "obstructive sleep apnea" and nothing about who you are.

Do not take our word for it: read the code

A privacy promise you cannot check is just a sentence on a web page. The entire program is published, free to read, free to download, and free to compile yourself under the MIT license. If you want to confirm that it really never touches the network, or you would rather build it from source than run a program you downloaded, the source is right here.

Read the source code on GitHub →

If you have a VSO, an attorney, or a family member who is handy with computers, this is the link to send them.

Optional: check the file is the one we published

Every file has a fingerprint, a long string of letters and numbers that changes completely if even one byte of the file is different. The fingerprint of our file is printed above. If your copy produces the same fingerprint, it is exactly the file we published, and nothing altered it along the way.

Most people skip this and that is fine. It takes about two minutes and needs no special software. Here is the whole thing, step by step.

  1. Open your Downloads folder, the one where the file landed.
  2. Hold down the Shift key and right-click on any empty white space inside that folder.
  3. In the menu that appears, click Open in Terminal, or Open PowerShell window here, or Open command window here. Whichever one you see is fine, the command below works in all of them. A black or dark blue window opens. That is normal.
  4. Type this line exactly, then press Enter:
    certutil -hashfile ICD10-Extractor.zip SHA256
  5. Wait a few seconds. It prints three lines. The middle one is a long string of letters and numbers. That is your file's fingerprint.
  6. Compare that string to the SHA-256 checksum printed above. Checking the first six characters and the last six is enough. If they match, your file is good.

If it does not match, do not run the file. Delete it and download it again. A mismatch usually just means the download was interrupted partway through.

If the file name is different. Use the name you actually have. You can also type certutil -hashfile ICD and press the Tab key, and Windows fills in the rest of the name for you, then type a space and SHA256 before pressing Enter.

If you see "is not recognized as an internal or external command". You typed a command the window does not know. certutil above works in every Windows terminal, so check the spelling and try again. (The similar-looking Get-FileHash only works in PowerShell, not in Command Prompt, which is why we do not use it here.)

What it misses

The program reports what it can find, and it does not find everything. It is a starting point for organizing your file, not a substitute for reading it.

  • Hard to read pages: handwriting, faint print, unusual layouts, and photographs of paper records can all defeat it.
  • Dates are approximate: it reports the nearest date it can see near the code, which is not always the date of the diagnosis.
  • Codes can be wrong: a code can be misread, or tied to the wrong date or the wrong visit.
  • Other coding systems: older records may use ICD-9 codes, and some use SNOMED CT. Those are listed too and labelled with the system they came from, and a SNOMED entry is also labelled with what it is, such as a procedure or an event. Diagnoses written out in words with no code beside them show a dash instead of a code.
  • Not everything in a record is a diagnosis: an ordered laboratory test, an appointment code, a symptom noted by a nurse and an operation all sit in the same lists. The program separates those out and says why rather than deleting them, but it can only go on what the record wrote. Read anything it flags for review against the source page.
  • Confirm each item: before you rely on anything in the report, open the file and page it points to and read it yourself.

The program will not run until you have read and accepted these terms once. It is not medical or legal advice, and it does not tell you what to claim or predict what VA will do. It reports what is written in your records.

This page and this program are educational and are not legal or medical advice. The program is provided as-is with no warranty. For help with a specific claim, work with a VA-accredited representative.