Message Boards Message Boards

EHR screen switching during patient visits


Attached is a (low rez PNG) poster based on mouse clickstream showing patterns of Electronic Health Record screen switching during visits. Data was collected as part of an ongoing study at VA San Diego.

Note how often D03 in visit Q069 goes back and forth between Notes and Meds - and in general how Notes are the central hub of activity for most EHR work.

When you consider that most information in progress notes is already present (in some form) elsewhere the EHR, you should consider systems to minimize redundant documentation - e.g. hyperlink and #hashtags.

enter image description here

Here's a larger PNG:

Although I can't share the entire codebase or underlying data, I'd like to stress the compactness, reusability and flexibility of functional query patterns.

starting with the end product, here's a 2-3 line query

quick[cprsTabSwitchingPoster] = 
 quick[data]["VisitData", "EHR", "HumanCodedMouseActivity", "VASD", 
      "Flat", "Coder1", All, splitMouseByTask ][All, 
     Query[All, "Task" /* First] /* Split /* 
      Map[First /*  Replace[quick[cprsTabColors]]]][
    SortBy[Length] /* keyGroupBy[quick@patient2doc] /* 
     Query[All, nc /* fr, {Row, Length}]][
   keyGroupBy[quick@doc2siteAndSpecGroup] /* Map[fr]] // n

Where I use shortcuts like n = Normal, fr = Framed, nc = Normal /* Framed etc. as well as 1-liner helper functions discussed elsehwere like keyGroupBy.

The data schema for each visit looks like this - note the TimeObject Keys that index this clickstream, as well as nested Associations - NoSQL.

enter image description here

The key structuring query is this:

splitMouseByTask = 
 GroupBy[MOUSE_EVENT] /* Button /* Query[All, {TASK -> Values}] /* 
  Query[{Keys /* AssociationMap[Association[VISIT_TIME -> #1] &], 
    Identity}] /* Query[Merge[Apply[Join]]] /* Values /* 
  splitBy[Query[TASK]] /* 
  Query[All, <|Length -> Length, 
    Time -> Query[{First, Last}, VISIT_TIME], 
    Task -> Query[First, TASK]|>]

Which looks more complicated than it is to actually develop interactively - by seeing the output at each step.

If we could only extend Operator form to the entire language, it would make it so much easier to write from left to right like natural language.

POSTED BY: Alan Calvitti
1 year ago

enter image description here - another post of yours has been selected for the Staff Picks group, congratulations !

We are happy to see you at the top of the "Featured Contributor" board. Thank you for your wonderful contributions, and please keep them coming!

POSTED BY: Moderation Team
1 year ago

Group Abstract Group Abstract