Does redacting clinical notes meet HIPAA Safe Harbor?

Only if all 18 Safe Harbor identifier types are gone, including dates, places and record numbers inside sentences, and nothing left points to the patient. Removing names is not enough.

SOC 2 Type II · ISO 27001 · HIPAA, BAA available

Safe Harbor check

One cardiology note, after a names-only script

  • Names of the patient

    Removed
  • Names of relatives

    Still there
  • Dates, beyond the year

    Still there
  • Record, phone and device numbers

    Still there
  • A town smaller than a state

    Still there
  • Clues like “the only pharmacist in town”

    Needs review

With Protecto

Every listed identifier is found inside the sentences, then removed or tokenized by policy. Your expert signs off.

The short answer

Redaction can meet Safe Harbor, but only when it removes every listed identifier wherever it appears in the note and your organization has no actual knowledge that what remains could identify the patient. HHS applies the same rule to free text as to database fields. For a clinical note, that means five checks.

01

All 18 identifier types are gone

For the patient and for relatives, employers and household members. Names, record numbers, phone numbers and the rest, including those written mid-sentence.

02

Dates keep only the year

Visit, admission, discharge, birth and death dates lose the month and day. Ages over 89 become “90 or older”.

03

Places smaller than a state are gone

Street, town, county and full ZIP code. The first three ZIP digits may stay only where that area holds more than 20,000 people.

04

Nothing left points to one person

A rare job, a rare disease in a small town or a news event in the note can identify someone after the list is removed. If you know that, the note is not de-identified.

05

Where Protecto fits

Missing one MRN in a thousand notes fails Safe Harbor for those notes. Protecto’s agentic detection and classification engine finds identifiers inside clinical sentences across 50+ entity types and removes them with no mapping kept. Whether a data set meets Safe Harbor is your expert’s or counsel’s call.

Proof

Inovalon built a secure, HIPAA-compliant analytics product on sensitive healthcare data with Protecto

Higher F1

Than AWS Comprehend and Microsoft Presidio in the UT Dallas / DataXpert benchmark

50+

Entity types across PII, PHI and PCI, plus custom entities such as your MRN format

1,000+

Documents Inovalon tested in under a week

One clinical note, checked against Safe Harbor

A research team wants a hosted model to pull outcomes from 5,000 cardiology notes. They plan to send de-identified notes, with no BAA.

An analyst runs the hospital’s redaction script, which replaces patient names with “[NAME]”. The team assumes the batch is now de-identified. Switch the views to see one note before the script, after it, and with Protecto in the path.

The script removed one of eight listed identifiers. One more detail fails the actual knowledge test. The fall, the warfarin and the pacemaker check stay readable either way, because Safe Harbor does not ask you to remove clinical facts.

One cardiology note, three ways

The note in the EHR (fictional)

Pt Rosa Delgado (MRN 00-583-219), 91 y/o F, seen 08/22/2026 at the Clearwater Springs clinic after a fall at home. Daughter Ana (cell 555-0142) says she stopped warfarin last week. Pacemaker serial PM-77310-K checked, normal. Retired, was the only pharmacist in Clearwater Springs for 30 years.

8listed Safe Harbor identifiers in one short note
+1detail that identifies her without being on the list
Keptthe fall, warfarin and the pacemaker check: clinical facts stay

Each marked detail must go before this note counts as de-identified under Safe Harbor.

What the script missed, item by item

Each detail in the sample note, the Safe Harbor rule it falls under, and who catches it.

In the noteSafe Harbor ruleNames-only scriptProtecto
Rosa DelgadoName of the patientRemovedDetected as PERSON
MRN 00-583-219Medical record numberMissedDetected as MRN
91 y/oAges over 89 become “90 or older”MissedYour age rule, applied by a reviewer or a custom entity
08/22/2026Dates keep only the yearMissedDetected as ADMIT_DATE
Clearwater SpringsPlace smaller than a stateMissedDetected as CITY
AnaName of a relativeMissedDetected as PERSON
555-0142Telephone numberMissedDetected as PHONE_NUMBER
PM-77310-KDevice identifier or serial numberMissedDetected as DEVICE_ID
“Only pharmacist in Clearwater Springs”Not on the listActual knowledge: anyone in town knows who this isMissedAdded as a custom entity, or sent to your reviewer

Example note and values are fictional.

Why clinical free text breaks most Safe Harbor checks

Database fields have labels. Sentences do not, so the tool has to understand what each value is.

Identifiers hide in ordinary sentences. “Daughter drove her in from Elk Grove” carries a relative and a town with no field name to match. Pattern rules catch phone numbers and Social Security numbers. They miss a first name, a unit named after a place, or a date written “the 22nd”.

Dates are everywhere. Admission, procedure, lab and follow-up dates all count, and they appear as “8/22”, “Aug 22” or “last Tuesday”. Safe Harbor keeps only the year of each.

Context can identify on its own. A rare disease, an unusual job or a local news event is not on the list of 18. HHS still says the note fails if you know the remaining text could identify the person. No tool decides that for you, which is why reviewers sample output and document the method.

Expert Determination is the other route. A qualified expert measures the risk for a specific use and documents it, which can let you keep more detail, such as shifted dates. Teams often use it for large note sets where cutting every date would ruin the analysis.

Ways to de-identify clinical notes, against Safe Harbor

Six common approaches, scored on what Safe Harbor asks of free text.

ApproachFinds identifiers inside sentencesOutput maps to the 18 categoriesHandles actual knowledge itemsWho signs off
Names-only script or regex rulesBasic. Fixed formats only, such as SSN and phoneNoNoYour reviewer, on every gap
General PII detectorMicrosoft PresidioYes, for built-in types. Clinical identifiers need custom recognizersBasic. You build the mappingNoYour expert or counsel
Clinical de-identification servicesAzure Health Data Services de-identification, Amazon Comprehend MedicalYesAzure is built around HIPAA identifiers. AWS states Comprehend Medical entities do not map one-to-one to the Safe Harbor listNo. AWS recommends human review for compliance useYour expert or counsel
Open-source clinical scrubbersPhilter, NLM ScrubberYesYes, with Safe Harbor policies you configure and validateNoYour expert or counsel
ProtectoAgentic detection and classification engineYes. 50+ entity types, higher F1 than AWS Comprehend and Presidio in the UT Dallas / DataXpert benchmarkYes, per entity type, with reports on how each policy was enforcedCustom entities for your known risks, such as job titles or unit names. A reviewer for the restYour expert or counsel
Expert Determination (a method, not a tool)Uses one of the tools aboveNot required. The expert sets the rulesYes, in the expert’s risk analysisThe qualified expert, in writing

Every row ends with a person signing off. What changes is how much a reviewer has to catch by hand.

Not legal advice. Safe Harbor rules summarized from 45 CFR 164.514(b) and HHS guidance (2012). Vendor facts from each vendor’s public documentation, November 2026.

How Protecto supports HIPAA Safe Harbor on clinical notes

Protecto finds identifiers in the text, removes or tokenizes them by policy, and records what it did for your reviewer.

  1. 1

    Detect inside sentences

    Protecto reads notes, discharge summaries, transcripts and messages, and labels each identifier by type, such as PERSON, MRN, ADMIT_DATE and PHONE_NUMBER.

  2. 2

    Add what your notes need

    Local risks become custom entities, such as your MRN format, unit names or job titles your reviewers flag. Custom entities can be added in days.

  3. 3

    Pick the output by purpose

    Remove identifiers with no mapping kept for data sets that must meet Safe Harbor. Or replace them with consistent tokens for live AI use, where approved staff need real values back.

  4. 4

    Run at volume

    Batch jobs through the asynchronous API, or in pipelines through a Snowflake UDF, Databricks, Kafka or Spark.

  5. 5

    Hand the reviewer a record

    Every detection and transformation is logged, and Protecto reports how each policy was enforced, so your expert can sample output and document the method.

Two outputs, by purpose
  • De-identified data setsIdentifiers removed, no mapping kept. Can support Safe Harbor; your expert or counsel decides. For research extracts, analytics and sharing without a BAA.
  • Live AI useConsistent tokens, mapping kept in your environment. Pseudonymized, so it may still be PHI. For assistants, summaries and agents.

Questions compliance teams ask about Safe Harbor and clinical notes

Does HIPAA Safe Harbor apply to free-text clinical notes?

Yes. HHS guidance says the 18 identifiers must be removed wherever they appear, including progress notes, discharge summaries and other narrative text, not only structured fields.

After the 18 identifier types are removed, the covered entity must not actually know that the remaining information could identify the person, alone or with other information. A note describing “the only pharmacist in town” fails this test even with every listed identifier gone.

It can keep the year of a date. Ages over 89, and any date element showing that age, must be grouped as 90 or older. Keeping exact or shifted dates needs Expert Determination instead.

No. Clinical facts are not among the 18 identifiers. A rare condition can still identify someone in context, so it falls under the actual knowledge rule, and an expert may restrict it under Expert Determination.

Not by default. Protecto’s tokens are consistent and reversible by whoever holds the mapping, which makes them pseudonyms, so tokenized notes may still be PHI. For data sets that must be de-identified, Protecto removes identifiers with no mapping kept.

Protecto supports HIPAA Safe Harbor. It detects identifiers inside clinical text, removes them with no mapping kept, and records what it did. Whether a data set meets Safe Harbor, including the actual knowledge test, is your expert’s or counsel’s call.

When the analysis needs detail Safe Harbor removes, such as exact dates, intervals or small-area geography. A qualified expert documents that the risk of identification is very small for the intended use. Protecto can apply the expert’s rules as policy.

Test your notes against Safe Harbor

Bring a sample of clinical notes. We will show which identifiers Protecto finds, what is removed, and what your reviewer still checks.

Cover of the PII/PHI identification benchmark study by UT Dallas and DataXpert
Benchmark study

PII/PHI detection, benchmarked by UT Dallas and DataXpert

A third-party study compares how accurately Protecto, Microsoft Presidio, and AWS Comprehend find personal and health data in unstructured text.

By submitting you agree to Protecto’s privacy policy.

New: run any AI model without exposing real values.
See how it works