LymeHQ · Standards

Tick-borne illness has no standard shape

Health data standards decide what can be counted. There is no agreed representation for most of what matters in tick-borne disease — which is either a gap or an invitation. This is what we hit while building, and what we would propose.

What this page is, and is not

Nothing here has been submitted to, reviewed by, or endorsed by any standards body. This is a working draft written from the inside of one platform, offered for discussion. It has one qualification and one only: we had to build something, and these are the places the existing vocabulary did not reach.

01 · The problem

A field that does not exist cannot be studied

Which is how a disease stays contested for forty years.

Standards for health data are lists of what is worth recording, and everything outside a list becomes free text, then a note, then nothing. For tick-borne illness that is most of the useful information: how long a tick was attached, which species it was, whether a rash appeared and on what skin, which markers a test actually showed and when the sample was drawn, whether a treatment was followed by any change.

None of that is exotic. It is the ordinary content of a clinical conversation about this illness, and almost none of it survives into a form that can be aggregated. So the research that could settle the arguments cannot be assembled — not because the data was never collected, but because it was collected into a shape nothing can read.

02 · What we built

Five things that work, and are worth generalising

Modelled, running on synthetic data, and load-bearing in the product.

  • A household sentinel signal

    An animal test result, the household it belongs to, and a location no finer than three digits of a postal code — enough to say where ticks are and nothing about whether a person is infected.

  • Consent scope, as data

    Eight named, separately revocable choices, with every change appended to a history the database writes and no update or delete can touch.

  • An aggregation floor

    A minimum group size carried by the data itself rather than applied at the point of release, so a combination describing fewer than five people is never written down.

  • Where a record came from

    Whether a lab value was uploaded, entered, or arrived from a claims feed — modelled from the start, because provenance stops being recoverable the moment it is not recorded.

  • A treatment response window

    A treatment start date, the window either side of it, how much of that window was actually recorded, and a flag when something else started at the same time. Association, never attribution.

03 · Where we ran out

Four gaps we hit, and did not paper over

Parked deliberately rather than improvised — an invented field is worse than an absent one.

  • How long the tick was attached

    The single most clinically useful fact about a bite, and there is no standard field for it. Recording it needs an agreed vocabulary for exposure events first, which is why it is parked rather than improvised.

  • Which species it was

    Different species carry different infections. Without a coded field this arrives as free text, which is the same as not arriving.

  • Skin tone, where a rash is being described

    A rash is identified by appearance, and appearance differs by skin tone — a documented cause of delayed diagnosis. A dataset that never records it cannot notice the disparity it is producing.

  • Band-level serology, and when the sample was drawn

    A two-tier result reduces to positive or negative in every standard representation, which discards both the individual markers and the timing that decides what a negative means.

Why parking beats inventing

A field invented locally looks like data and aggregates like noise. Two platforms recording attachment duration in different vocabularies produce a number that cannot be pooled and cannot be trusted, and the fact that it exists stops anyone asking for the standard. So these stay absent and named rather than present and private.

04 · The element set

Eighteen elements, each traced to an artifact

Not only a diagram — every element below says exactly what a patient's own export carries for it, or exactly why it carries nothing.

Tick-borne illness has no standard shape.

A working draft of one — six classes, derived from a platform that needed them.

A draft data-element set for tick-borne illnessA working draft of eighteen data elements for tick-borne illness, grouped into six classes, with every element that no existing standard covers marked. Tick exposure is an entirely new class and none of its three elements is covered: attachment duration, species identified, exposure county. Household sentinel is the other entirely new class and is likewise uncovered throughout: animal test result, household link, county only. In the four remaining classes the gaps are partial. Clinical picture carries EM rash present, alongside skin tone recorded and symptom severity, which are uncovered. Laboratory carries two-tier results, alongside band-level detail and serology timing, which are uncovered. Treatment carries an antimicrobial course, alongside a response window and a confound flag, which are uncovered. Consent and origin carries data origin and consent scope, alongside an aggregation floor, which is uncovered. Thirteen of the eighteen elements have no existing standard. This is a draft for discussion, not a submitted standard.DRAFT ELEMENT SETTick exposureAttachment durationSpecies identifiedExposure countyNEW CLASSClinical pictureEM rash presentSkin tone recordedSymptom severityLaboratoryTwo-tier resultsBand-level detailSerology timingHousehold sentinelAnimal test resultHousehold linkCounty onlyNEW CLASSTreatmentAntimicrobial courseResponse windowConfound flagConsent & originData originConsent scopeAggregation floorDraft for discussion — not a submitted standard
  • No existing standard covers this element
  • Draft for discussion — not a submitted standard

Thirteen of the eighteen elements have no existing standard to carry them. An element with nowhere to go does not travel between systems.

Published to be argued with: an element that is wrong, missing, or already standard somewhere is the useful reply.

A draft for discussion, not a submitted standard. Nothing on this drawing has been submitted to, reviewed by, or endorsed by any standards body, and no element here is one anyone is required to collect.

Orientation only. No figure on this drawing is a measured quantity; the one count in the caption counts marks on the drawing itself. The element set is a working draft assembled from the data model this platform already needed, and it has not been submitted to, reviewed by, or endorsed by any standards body. Which elements an existing standard already covers is a judgement made here, not a survey anyone else has verified.

The set is implemented, not aspirational: a signed-in patient can download their own record in exactly this shape from their account’s tools page. Where a FHIR R4 resource exists the export uses it; where none does, a LymeHQ extension carries the value under our own URL; and where the platform holds nothing, the element is absent from the file and named in a coverage statement inside it — documented, never defaulted. The same discipline as our claims import, pointed the other way.

Tick exposure

New class
  • Attachment durationno existing standard

    How long the tick was attached — the single most clinically useful fact about a bite, and no standard field exists for it.

    Not held: No exposure-event record exists on this platform; recording one needs an agreed vocabulary first, so it is parked rather than improvised. Absent from the export and named in its coverage statement.

  • Species identifiedno existing standard

    Which tick species it was. Different species carry different infections; without a coded field this arrives as free text, which is the same as not arriving.

    Not held: Parked with the exposure event it would belong to. A free-text species field would aggregate as noise, which is worse than absence.

  • Exposure countyno existing standard

    Where the exposure happened, at county grain — where the tick was, which is not always where the person lives.

    Not held: No exposure event exists to hang it on. The only geography the platform holds is the household ZIP3, which describes residence, not exposure.

Clinical picture

  • EM rash present

    Whether an erythema migrans rash appeared — the one finding that can settle an early diagnosis on its own.

    Not held: A standard shape exists (a coded condition), but the platform holds no structured rash field — a free-text diagnosis list is not a rash observation, and the export does not pretend one into being.

  • Skin tone recordedno existing standard

    The skin tone a rash was assessed on. A rash is identified by appearance, appearance differs by skin tone, and a dataset that never records it cannot notice the disparity it is producing.

    Not held: Deliberately not collected until the collection instrument has clinically-informed review — the same rule that holds the rash-identification imagery.

  • Symptom severityno existing standard

    Patient-reported daily severity, per symptom, on a stated scale — the raw material of any before/after picture.

    In the export: One FHIR Observation per recorded score — six named symptoms, integers on a 0–10 scale, coded in the LymeHQ code system because no standard code exists for these as patient-reported dailies. Journal text never exports.

Laboratory

  • Two-tier results

    The overall result of the standard two-tier serology protocol.

    In the export: A FHIR DiagnosticReport per lab result, one Observation per extracted analyte. Names and values export exactly as extracted from the document — no coded mapping is invented where the source stated none.

  • Band-level detailno existing standard

    Which individual immunoblot bands reacted — the detail every standard representation collapses into positive-or-negative.

    Not held: Extraction keeps analyte rows as the document stated them, not immunoblot bands as coded entities. Absent from the export and named in its coverage statement.

  • Serology timingno existing standard

    When the sample was drawn relative to exposure — the fact that decides what a negative means.

    Not held: The sample date itself exports (DiagnosticReport.effectiveDateTime). The element is timing relative to exposure, and no exposure event exists to relate it to.

Household sentinel

New class
  • Animal test resultno existing standard

    A household animal’s tick-borne antibody result — an early-warning signal about where ticks are, saying nothing about whether a person is infected.

    In the export: The household animal as its own Patient resource carrying the standard patient-animal extension, with an Observation holding the C6 antibody result and its test date.

  • Household linkno existing standard

    That the animal and the person share a household — the link that makes the signal mean something, with no finer relationship claimed.

    In the export: A LymeHQ extension on both Patient resources naming a shared household identifier — an internal id, same household, nothing else.

  • County onlyno existing standard

    The geographic grain the signal travels at — coarse enough that it describes an area, never an address.

    In the export: Exported at the platform’s own grain: three digits of ZIP code and a state, no street, no city. That is coarser than the county grain this draft names, and the divergence is stated here rather than rounded away.

Treatment

  • Antimicrobial course

    What was taken and when — the anchor every response question hangs on.

    In the export: A FHIR MedicationStatement per medication: the name as the patient recorded it, patient-reported dates, current or stopped. No drug code is invented for free text.

  • Response windowno existing standard

    A treatment start date, the window either side of it, and how much of that window was actually recorded — association, never attribution.

    In the export: A LymeHQ extension on each dated MedicationStatement: window length, days logged each side, and the per-symptom comparison — computed by the same arithmetic as every other surface, never re-derived here.

  • Confound flagno existing standard

    Whether something else started inside the window — the fact that keeps a before/after picture honest.

    In the export: A LymeHQ extension naming any other treatment started inside the window, and any reported stop. Carried beside the figures, never resolved away.

Consent & origin

  • Data origin

    Whether a value was uploaded, hand-entered, or arrived from a claims feed — provenance stops being recoverable the moment it is not recorded.

    In the export: A LymeHQ extension on each DiagnosticReport carrying the recorded source value, exactly as the platform stored it at ingestion.

  • Consent scope

    The named, separately revocable choices a person has made about their own data, as data.

    In the export: One FHIR Consent resource per named scope — permit or deny from the live record, with the grant and revocation timestamps that exist.

  • Aggregation floorno existing standard

    A minimum group size carried by the data itself, so a combination describing fewer than five people is never written down.

    Policy, not data: A property of aggregate release, enforced in the database. An individual export contains no aggregates, so the element appears in the coverage statement as policy rather than as data.

Draft for discussion — not a submitted standard. Which elements an existing standard already covers is a judgement made here, not a survey anyone else has verified — an element that is wrong, missing, or already standard somewhere is the useful reply.

05 · Interoperability

Where the connections are, and are not

The data model landed first, deliberately. The first connection is built, and it runs against a sandbox.

The tables that let clinical and claims data arrive from outside — a connection record, a claims store, and a field on every lab result saying where it came from — are built, and so is the first connection that uses them: an authorisation flow, an import that can be run again safely, and a switch that disconnects it and deletes the credentials. It runs against the insurer’s sandbox, on synthetic records. A working sandbox integration proves nothing about production access, which is a separate question, with a separate answer, decided by the insurer rather than here.

Where credentials for such a connection would be held, the design is already settled and the code exists: the encryption key lives outside the database, so a copy of the database contains identifiers and no way to decrypt anything. Nothing is stored through it today, because nothing is connected.