A new-patient intake form comes in by fax: two pages, filled in by hand in the waiting room. On page two, the allergy section has a line that says “Allergies:” and a checkbox that says “No known allergies.” The line is empty. The checkbox is empty too. The medication list below it has three handwritten entries, and the dose on the second one could be a 10 or a 40.

An extraction pipeline has to put something in the allergy field of the chart. The easiest thing to put there is nothing, and the next easiest is “none.” Both are wrong in different ways. The patient did not say they have no allergies. They did not say anything. And the dose that could be 10 or 40 is not a field where the more likely reading should win.

This piece separates the three states that look alike on a paper form, shows where the published FHIR specifications already keep them apart, and walks a fictional form through a review route. It describes published HL7 specifications. It is not clinical guidance, and every example uses invented data.

Three states that look alike on paper

On a scanned form, an empty line, a checked “no” and an unreadable answer can all end up as the same thing in a database: an empty value or a false. They mean three different things about what the patient told the clinic.

StateWhat the page showsWhat it meansWhere it goes
BlankNo mark in the field and no mark in its “none” boxThe question was not answered. Nothing is known yet.Recorded as unanswered, and flagged for staff to ask at check-in
Explicit noA clear mark in “No known allergies,” or “N” circled, with nothing written against itThe patient was asked and reported noneRecorded as a reported negative, still confirmed by the clinician at the visit
Uncertain readWriting or a mark the reader cannot resolve: a 10 that could be a 40, a check that crosses two boxes, a word cut off by the faxThe patient answered, but nobody knows the answer yetHeld for human review with the image of the field. Never filled with the likeliest reading

A fourth case shows up often enough to name: the form contradicts itself. “No known allergies” is checked, and someone wrote “sulfa — rash” in the margin. That is not a blank, a no or a misread. It is two answers, and choosing between them is a clinical question.

The standards already keep them apart

The distinction is not new. The data models that clinical systems exchange already have a separate place for each state, so an extraction step that collapses them is losing information the downstream record was built to hold.

FHIR, the HL7 standard most EHR interfaces now speak, has a code system just for missing values. The DataAbsentReason codes separate not-asked (“The workflow didn’t lead to this value being known”) from asked-unknown, where the source was asked but does not know, and from asked-declined, where the source was asked and declined to answer. A blank intake field is, at most, one of these. Which one depends on facts the form does not show.

For allergies, the FHIR R4 AllergyIntolerance resource goes further. A “no known allergy” statement is recorded as a negated code, and the specification prefers a code such as SNOMED CT 716186003, “No known allergy (situation),” so that every allergy statement, positive or negative, can be queried from the same place. Each record also carries a verification status: unconfirmed, confirmed, refuted or entered-in-error.

The US Core AllergyIntolerance profile (version 9.0.0) spells out the two cases an intake form produces. A patient who has not been asked about allergies is represented with the code 1631000175102, “Patient not asked,” and a verification status of unconfirmed or none at all. A patient who was asked and reported no known allergies is represented with 716186003 and a verification status of confirmed. Those are different records, with different codes. A pipeline that writes 716186003 for an empty line has turned “not asked” into “asked and said no.”

A fictional form, field by field

Here is the faxed form from the opening, with invented answers. The patient is fictional, and so are the drugs, doses and reactions written on it.

Field on the formWhat the fax showsStateWhat gets recorded
Allergies (free text)Empty lineBlankAllergy status unanswered. No negated code is written
“No known allergies” checkboxEmpty boxBlankSame item as above: one question, still unanswered
“Latex allergy?” Y / NN circled, clean markExplicit noReported negative for latex only, pending confirmation
Medication 1“atorvastatin 20 mg nightly,” clearAnsweredName, strength and frequency as read, with the field image linked
Medication 2Drug name clear; strength reads as 10 or 40Uncertain readName recorded; strength held for review. Neither 10 nor 40 is written
Medication 3Last letters lost in a fax streakUncertain readWhole entry held for review, with the image
Margin note“sulfa — rash,” next to page 2Contradiction checkFlagged against the allergy section. Not filed until someone resolves it

Two details matter. First, the latex “no” does not answer the general allergy question. FHIR treats “no latex allergy” and “no known allergy” as different negated statements, and an intake form that asks about one does not answer the other. Second, the margin note means the empty allergy line was probably not a no at all. The form is telling you the patient had something to say and put it in the wrong place.

Why these fields do not take a guess

Most fields on an intake form tolerate a confidence threshold. If the extracted phone number is wrong, a call fails and someone fixes it. If the preferred pharmacy is wrong, a prescription goes to the wrong store. Those errors are visible and cheap to correct.

Allergy and medication fields fail differently, because other systems act on them without a person looking. The FHIR AllergyIntolerance page notes that a reaction record is set to an initial state of unconfirmed “so that adverse reaction checking can be supported in clinical systems.” That checking only works if the record says what the patient said. A blank recorded as “no known allergies” is an affirmative negative in the chart, and it will be read as one. A dose of 40 recorded where the patient wrote 10 is a medication history that never existed.

So the rule for these fields is not a higher threshold. It is no threshold. A read that is not clean goes to a person with the image of the field, every time, however confident the model is on average. Our piece on handwriting OCR and ICR covers why that abstention has to be explicit: a recognizer that always returns its best reading turns every hard field into a quiet guess.

The review route

Each state gets a different owner. Keeping the routes apart is what stops a review queue from filling up with fields that never needed a person, and stops the ones that did from slipping through.

  • Clean answers — demographics, contact details and clearly read entries populate the record directly, each one linked to the region of the page it came from.
  • Blanks — recorded as unanswered and listed for front-desk staff, who ask the patient at check-in. Nobody upstream decides that a blank means no.
  • Uncertain reads — sent to staff with the cropped field image and the candidate readings. Staff confirm against the patient or the source, not against the model’s preference.
  • Explicit negatives — recorded as reported by the patient, with the scope they cover. A latex no stays a latex no.
  • Contradictions — held out of the chart and routed to the clinician who reconciles allergies and medications at the visit. The pipeline shows both answers; it does not pick one.

The same split applies to the rest of the front-desk packet. The piece on insurance card eligibility walks through the card images that usually arrive with the intake form. There, a missing back-of-card image is a gap to fill before the eligibility check, not a field to infer.

What extraction should hand the EHR

An extraction step cannot decide what a patient is allergic to. It can make sure the record that reaches the chart says exactly what the form says, and marks everything it does not.

  • A state for every field — answered, blank, uncertain or contradictory, stored next to the value, so an empty string never has to be interpreted downstream.
  • Missing values with a reason — blanks carried as unanswered rather than as false, in a form that maps to the receiving system’s own codes for not asked or unknown.
  • Negatives with their scope — a general “no known allergies” kept separate from a negative for one substance, because the standards keep them separate.
  • The image behind every doubt — each uncertain field sent with its crop and candidate readings, so the reviewer reads the patient’s writing, not a summary of it.
  • No guessed clinical values — allergy and medication fields never filled with the likeliest reading. A held field is cheaper than a wrong one.

For the fictional form above, that output is one allergy question still unanswered, one reported latex negative, one medication fully read, two medication entries held with their images, and a margin note flagged against the allergy section. The clinician still reconciles the list at the visit. They start from a record that is honest about what is known.

The short version

On a paper intake form, blank, no and unreadable look alike. They are not alike. A blank means the question is still open. A no means the patient answered and reported none. An unreadable answer means the patient said something that nobody has read yet.

FHIR and US Core already give each state its own representation, down to separate codes for “not asked” and “no known allergy.” Digitizing the form should keep those states intact, send every doubtful allergy or medication field to a person, and leave the clinical decision with the clinician.