recognize and prevent medication diversion pyxis and meditech data jamie mcdonald
TRANSCRIPT
Proactive Diversion Report allows the facility to view controlled
medication activity
Topics Primary objective Technical issues Data decisions Reports developed
Primary Objective
Monitor controlled medications withdrawals and administrations
to identify possible diversions before it gets out of hand
Items to Resolve
Archive Files from Pyxis (technical issues) Automate the archival process Automate the process of importing Pyxis data
into the Data Repository
Measuring the data (data issues) What method of measurement? How are we going to display the data?
User names that don’t match in Pyxis and MT
Automating Pyxis Archive Solution
We have a PC that has the location of the Pyxis Archive Files mapped to the W drive \\172.20.100.63\f$\v4\maintain\archives\
We move the Pyxis Archive Files to a network folder. “S:\Pharmacy\PyxisNT\”
At 5am each day, the files are moved from one location to another. This is accomplished using Window’s Task Scheduler and a batch file. “CopyPyxisArchiveData2NetworkFolder.bat”
The batch file command is made up of one line of text. “move w:\*.* s:\Pharmacy\PyxisNT\”
PyxisMedTransactions Data Import
Task: Automate the moving of data from daily files
(through yesterday) into database tables.
Wrinkles: "Daily" files are moved by a human to their folder.
Which means yesterday's file may not have been moved into the folder yet today.
Perhaps more than just yesterday’s file may not have been moved into the folder (vacations happen).
This automated daily job may not have run yesterday for some reason.
PyxisMedTransactions Data Import
Solution Algorithm: Givens:
File has name of mmddyy.PYX and will always be in the same folder.
General Solution: Generate all filenames holding data – starting with
the last date this automated job ran through yesterday.
Pull data from all those files and insert into a table in the DR.
PyxisMedTransactions Data Import
Start
Generate today’s filename
Any Missing
FilesFound?
Done Move Missing Filename to
“Found” table
Run DTS to pullFilename from “Found” table,Move data from“Found” File to
“Today’s-run” table
Update “Today’s Run”
table
Copy “Today’s-Run”Table to Final
Destination table
NoYes
Algorithm Schematic
PyxisMedTransactions Data Import Specific Algorithm:
1. Create a Stored Procedure that will generate all possible filenames from the last date
this automatic job was run through yesterday to be sought in the folder and insert the names into a "Missing" table in the database.
To do the above, we pull the “Last Date" that the "Missing" filenames were generated from the Final Destination table.
Start date for generating the "Missing" filenames is the last date they were generated + 1 day.
If the date for the filename we just generated is not yesterday, insert the filename into the “Missing” table and continue generating the next filename by adding 1 day to that last filename.
PyxisMedTransactions Data Import
Specific Algorithm (continued)
2. Create a Stored Procedure to see if any file in the "Missing" table is now in the folder, if so then move the filename from the “Missing” table to the “Found” table (remove the filename from the “Missing” table).
PyxisMedTransactions Data Import
Specific Algorithm (continued)
3. Create a DTS that walks down the “Found” table to import the data from the filenames obtained from the “Found” table until no more filenames are left in the “Found” table.
DTS pulls the top filename from the "Found" table and stores in a global variable.
If no filename is found (“Found” table is empty) then skip move data step otherwise set DataSource to be the global variable.
Move Data from DataSource to “Today’s-run” table. Delete the top filename from the "Found" table. If “Found” table is not empty loop to first step of DTS. "Found" table is empty – DTS returns success result.
PyxisMedTransactions Data Import
Dynamically set global variable filename from top of “Found” table for use by Connection1.
Move data from the Connection1 DataSource file to “Today’s-run” table in the database.
Update “Found” table. If more filenames in “Found” loop back to set global variable else report successful completion.
The DTS workhorse…
If “Found” table is empty we will skip Transform Data Task. Else reset DataSource for Connection1 to be global variable filename.
PyxisMedTransactions Import Data
Specific Algorithm (continued)
4. Create a stored procedure to update a couple of columns in the "Today's-run” table (per
customer request).
5. Create a stored procedure to copy all "Today's-run" table data to final destination table if it exists.
Whether there is data in “Today’s-run” table or not, update “Last Date” field in final destination table to be today’s date.
PyxisMedTransactions Import Data
Finish automating the task by creating a job with these 5 steps and schedule it for nightly run.
User Names…..
Issues Table has to be maintained by
pharmacy and IT. Current Maintenance
Communication between PHA on Pyxis user id changes and Monitor Meditech user name changes.
What did we do?Created a table that maps all Meditech UserID’S and Pyxis UserID’S that are not the same
General Data Decisions
Use statistically significant data to determine outliers
Display Meditech data along with Pyxis transaction data.
All transactions performed in Pyxis for a particular medication and location
Summary of transactions per patient and medication.
• Proactive Diversion Report, main reportParameters passed (data range, location, medication)
• Patient Details by Nurse - drill down report(1)Parameters passed (date range, nurse, medication)
• Patient Details by Medication - drill down report(1a)Parameters passed (account number, medication)
• Pyxis Transactions by User - drill down report(2)Parameters passed (date range, nurse, medication)
• All Medications for Nurse and Selected Date Range - drill down report
(3)Parameters passed (date range, nurse)
Reports Developed
Report on Report Manager View
Dropdown selection for a single
medication or all
Dropdown for all locations or a specific
department
The Statistics show the number of days a nurse withdrew a medication for a location, the number of doses, the
number of patients, the doses per day, and the standard deviation of the doses per day along with the total
withdrawals from Pyxis and the total administrations in Meditech
Exported View of Diversion Report
1. Drill down on patient count
3. Drill down on
user name
2. Drill down on count of
Days
(1) Drill down on Patients from Main Report
1-a. Drill down to patient account for all user transactions for this medication
( 1 a) Drill down on patient from Patient Details by Nurse
Displays all medication withdrawals, cancellations, wastes, and administrations
(2) Drill down on Days from Diversion Report
Displays all transactions out of Pyxis for selected Date Range and Medication for the user
(3) Drill down on user name from Diversion Report
Calculates stats for all controlled medications for the user and selected date range.
Other reports options not shown
• Automated time period (last 30 days)
• Email to Nurse Managers weekly• Set of a reports to monitor high
dollar medications