Allscripts Analytics Searches

From Galen Healthcare Solutions - Allscripts TouchWorks EHR Wiki
Revision as of 20:29, 7 June 2011 by Logan.Cate (talk | contribs)
Jump to navigation Jump to search

Searches

When running any reports - Worksheets, Analysis Crosstabs, etc - you will want to ensure that you're only pulling the data you need. If you're running a report to show all diabetics, you will want to ensure that you are only looking at active problems in the active problem view - if a patient's father had diabetes (problem in the Family History view), that may not be relevant to your search. Below you will find a list of common search criteria.

Analytics Terms

Fields will be defined in the way they are found in Analytics. The following field would be found by double clicking the highlighted folders or items in the MetaLayer tree.

  • Patient.Identification.patient-fullname

Patient.identification.patient-fullname.png

In a search, if there is a value defined for a field, it will appear as follows:

  • Problem.problem-problemstatusname = Active

In the Edit search window, the above field would appear as follows:

Problem.problem-problemstatusname search.png

Please note that some of the field values may differ depending on how they are entered; use the Distinct Values function if it is available.

Patients

There are two common approaches with patients - include patients only if they have had a recent appointment (e.g. last 2 years), or include all patients that have not been deactivated or merged.

Active Patients

This will return all patients who are alive, active, and are not test or fake. Keep in mind that there may be other test patient names to add to this list. Also beware of using wildcards as some legitimate patients may have part of a test name in their name. For example, Testor, John would be excluded from a search using (<> test%).

  • Patient.Flags.patient-isdeceasedflag = N
  • Patient.Flags.patientisinactiveflag = N
  • Patient.Identification.patient-lastname <> Test
  • Patient.Identification.patient-lastname <> (put in one space to remove blank names)
  • Patient.Identification.patient-lastname <> Allscripts
  • Patient.Identification.patient-lastname NOT LIKE ZZ%
    • The last name filtering is client-dependent -- whatever is used for test patients, patients that have been "fired", etc.


Active Patients - w/recent appointments

This will return all patients who are alive, active, and are not test or fake and have had and completed an appointment in the past two years.

  • Stacked search:
    • Active Patients (existing - see above)
  • Nested search:
    • Recent Appointments (new)
      • Patient.Encounters.patientencounters-isappointmentencounterflag = Y
      • Patient.Encounters.patientencounters-encounterdttm > dateadd(yy, -2, getdate()) (Use the Search Expression and enter in the bold text)
      • Patient.Encounters.patientencounters-appointmentstatusname = Arrived

Problems

This will return problems that are relevant to this patient. Note that as Problem Category is not set to Active, this will return data from other fields as seen below. Family history and past problems may show up unless both Problem Status Name and Problem Category are set to Active.

  • Problem.problem-problemstatusname = Active
  • Problem.Flags.problem-problemincludeflags = see below

For Active:

    • ProblemIncludeFlags = 1, or
    • ProblemIncludeFlags = 3, or
    • ProblemIncludeFlags = 5, or
    • ProblemIncludeFlags = 9, or
    • ProblemIncludeFlags = 17

For others, use this legend:

    • 1 = Active
    • 2 = Past Medical History (PMH)
    • 3 = Active and PMH
    • 4 = Past Surgical History (PSH)
    • 5 = Active and PSH
    • 8 = Personal History (PHx)
    • 9 = Active and PHx
    • 10 = PHx and PMH
    • 16 = Family History (FHx)
    • 17 = Active and FHx

Medications

This will return all the active medications for a patient. This will include medications that have been completed unless marked otherwise.

  • Medication.medication-medicationstatusname = Active
  • Note: Click Show Distinct Values to ensure you don't want others - such as Unauthorized or Need Information.

Result

This will return all results that were not rejected.

  • Result.result-resultstatusname <> Rejected

Task

We filter on Task Status commonly, though with Tasks you are often looking at completed Tasks as well as active ones.

Active Only:

  • Task.Task_Status_DE-EntryName = Active

All tasks:

  • Task.tasktask_status_de-entryname <> Removed
  • Task.tasktask_status_de-entryname <> Deleted

Findings

For Clinical Findings (aka Vitals) we typically include all, or use MultiSearch to find the most-recent vitals. When using MultiSearch, remember to do a quick search on the Finding#; this tells the search what to look for. For example, right click on finding1-entrycode and select Quick Search; type in BP SYS under the Like field. This will return the Systolic Blood Pressure results that meet the other search criteria.

Patient List

For Patient List entries we usually include all, since there is no concept of status - a patient is either on a list or not.

Order

This will return all properly entered orders for the patient.

  • Order.order-orderstatus <> Entered in Error

You may also choose to filter out additional statuses, e.g. if you only cared to see active/outstanding orders.

Health Maintenance Plan

  • Health Maintenance Plan.hmp-status <> Entered in Error, or
  • Health Maintenance Plan.hmp-status <> Discontinued

Charge

This will return all current charges for the patient.

  • Charge.charge-billingstatus <> Removed

mTemplate

For mTempalte (aka Medcin Findings -- and these are finding entered in a Note, or through a flow sheet), we usually include all.

Chart

For any Chart Viewer items (includes everything in ChartViewer except Results), we filter out invalidated notes primarily.

  • Chart.chart-invalidatedbyname = (blank)

We commonly filter by status as well: Chart.chart-docstatus

Immunization

For Immunizations we usually include all.

Allergy

This will return all active allergies for the patient.

  • Allergy.allergy-status = Active

Audit

For Audit we usually include all that meet the other criteria that we have set.

Patient Access Log

For Patient Access Log we usually include all that meet the other criteria we have set.

Medication Action

  • MedicationAction.medicationaction-medicationstatusname = Active

Types of Searches

Stacked Searches

A stacked search gives equal weight to all searches included and will return only the subset of data that pertains to all of the stacked searches. It can be thought of as the portion of a Venn diagram where the circles (searches) overlap. The searches shown above would typically be stacked as they are often broad and meant to weed out specific sections of data.

Nested Searches

Nested searches offer several important pieces of functionality in the Analytics program. They return a subset of data from a larger pool, but other information besides what was searched for can be included. Nested searches also return a unique list of patients if fields such as patient-lastname or patient-fullname are used. A nested search has a Have or Have-Not operator, so individual groups can be excluded as well as included.

A nested search is usually used to return a list of patients that have or don't have a specific problem, medication, or order. An example would be returning a list of patients who have diabetes and have not had a specific medication prescribed in the past three years; from there, the user can add other fields to the worksheet in order to find out more details about those patients.