Skip to main content
A visit note is Elation’s record of a clinical encounter. In the hosted database each note is modeled as two tables: a record for the note itself and a set of rows for its content.
  • visit_note: one row per visit note, holding the note’s metadata (patient, practice, author, sign-off, and timing).
  • visit_note_bullet: one row per line of content within a note, joined to its note by visit_note_bullet.visit_note_id = visit_note.id.
For the full column list of every table mentioned here, see the hosted database schema reference.

Note content

A note’s content is stored as bullets in visit_note_bullet. Each bullet has:
  • a category naming the section it belongs to (Reason, HPI, Assessment, Plan, Orders, and so on),
  • a sequence giving its order within that section, and
  • an optional parent_bullet_id, since bullets can be nested under a parent.
A bullet carries its content in one of two ways. Most bullets hold typed prose directly in text: the narrative a clinician writes in sections like Reason, HPI, Assessment, and Plan. Other bullets instead reference a separate record (a placed order, an attached or referenced document, or a problem-list item); their text is empty because the content lives in that linked record rather than on the bullet.

How visit notes relate to other data

Visit notes connect to the wider data model through these relationships:
Related dataRelationship
Patientvisit_note.patient_idpatient.id
Authoring / signing uservisit_note.physician_user_id, signed_by_user_id, created_by_user_iduser.id
Billsbill.visit_note_idvisit_note.id. See Visit Notes and Bills.
Document tagsvisit_note_document_tag.visit_note_idvisit_note.id
Orders (medication, lab, referral, and other placed orders)Orders are their own documents, linked to the patient rather than joined to the note. Query them by patient in Medication Orders, Lab Orders, and Referrals.
Other referenced documents (lab reports, attachments)The link between a bullet and the document it references is not exposed in the hosted database. Where the content has its own patient-level table (such as lab_result), query it by patient; otherwise it is not available through the note.

Reading a note’s content

This returns every content line for a single note, in display order:
select
    b.visit_note_id
  , b.category
  , b.sequence
  , b.text
from visit_note_bullet b
where b.visit_note_id = <visit_note_id>
  and b.is_deleted = false
order by b.category, b.sequence;
Bullets that reference a separate record (such as placed orders) return empty text; retrieve that content from the related tables described in How visit notes relate to other data. If you have any questions about this topic please reach out to Elation Support Portal with the subject line HDB - <your_question>