HOME
Specializing in the MEDITECH environment
Tips & Tricks: NPR Report efficiency
Grasshopper,

The single most important way to make your NPR Reports run efficiently is to write a report where the LEAST number of records are REJECTED in the SELECTION process.

Why? EVERY report you write, if written correctly, will only have X number of correct records which will print.  It doesn't matter which database you use or which index you use.  In the end, you are only going to have X records which meet the SELECTION criteria for your report.

Checking 250,000 records to find 125 valid records is less efficient than checking 50,000 records to find those same 125 valid records.  Checking 50,000 records to find 125 valid records is less efficient than checking 10,000 records to find those same 125 valid records.  The most efficient report will check 125 records to find the 125 valid records.

So?  If you're looking for a needle in a haystack, choose the smallest haystack to search!


EXAMPLE 1: you wish to write a current census report...

You can pull this information from ABS.PAT, ADM.PAT, BAR.PAT or MRI.PAT.  Even if you don't use ANY index at all, the report which uses ADM.PAT will run the fastest because it is the smallest database (ie the least number of records are rejected).

You can take your ADM.PAT report and use the adm.pat.registration.index.  If you select on a status.type of 'IN', this report will run faster than your ADM.PAT report which uses no index.  This is because you have, once again, cut down on the number of records you are checking against (ie the least number of records are rejected).

In the end, though, your report will run most efficiently if you use the adm.pat.room.bed.index.  This index ONLY contains patients which are currently in 'the house' and you will throw out no records (ie the least number of records are rejected).

Keep this in mind when you write your reports and it'll be a great help to you in determining which database to use and which index to use within this database.


EXAMPLE 2: you want to print B/AR information on all of the InPatient Medicare accounts discharged in the month of January.  Within BAR.PAT, you have three helpful indexes:

bar.acct.acct.type.index - index of accounts by acct.type (you could easily select by InPatient).

bar.acct.discharge.date.index - index of accounts by discharge/service.date (you could easily select by discharge date range).

bar.acct.insurance.index - index of accounts by insurances (you could easily select by Medicare insurances).

The index you should choose is bar.acct.discharge.date.index.

Why?  If your institution is like many, you are keeping your BAR.PAT accounts for a long-time and not purging very often.  Therefore, both of the other indexes (acct.type and insurance) will have accounts in them that have been around since the beginning of 'Go LIVE'.  However, the discharge.date index will only contain the accounts which were discharged during the time period you need.  This may be several thousand accounts, but it will NOT be tens of thousands or hundreds of thousands accounts.

Once again, you are basing your report database and index criteria on where the least number of records are rejected.



Contact: info@xo-consulting.com   909 624 7646 voice/fax   416 E Arrow Hwy   Claremont CA 91711