Pharmacy Issues

From VistApedia
Revision as of 02:02, 24 April 2005 by Kdtop (talk | contribs) (Files and Relationships)
Jump to: navigation, search

This page will contain notes to work out pharmacy programming issues.

Initiated by K. Toppenberg 4/2005

Keys Needed for Pharm. Setup

David Whitten searched pharmacy routines and found keys that were needed for some of the pharmacy setup routines. Here are the keys that were found: PSA ORDERS, PSAMGR, PSJ RPWARN, PSB MANAGER, PSB CPRS MED BUTTON, PSB INSTRUCTOR, PROVIDER, PSD TECH, PSDMGR, PSD BUMGR, PSD ERROR, PSD PARAM, PSD TRAN


Files and Relationships

  • VA PRODUCT file (file #50.68) holds ALL possible drugs. Some people refer to this as the National Drug File.
  • DRUG file (file #50) holds all the drugs in the local formulary. This links to above.
  • PHARMACY ORDERABLE ITEM file (file #50.7) holds things that can be ordered from the pharmacy. This links to above.
  • ORDERABLE ITEM file (file #101.43) hols things that can be ordered, including labs and drugs. This links to above.
  • ORDER QUICK VIEW file (file #101.44) holds "quick order" entries. This links to above.


What I Have Learned so Far

1. For meds to show up in the dialog box in CPRS, it must have a entry like this:

file: 101.44 (ORDER QUICK VIEW);  
 record: ORWDSET O RX;  
   subfile: SET MEMBER (101.442)
     record: SET MEMBER: _IEN_ pointer to 101.43 (ORDERABLE ITEM)   ... a drug would go here
     record: SET MEMBER: _IEN_ pointer to 101.43 (ORDERABLE ITEM)   ... a drug would go here
     record: SET MEMBER: _IEN_ pointer to 101.43 (ORDERABLE ITEM)   ... a drug would go here
     record: SET MEMBER: _IEN_ pointer to 101.43 (ORDERABLE ITEM)   ... a drug would go here

2. In file 101.43 (ORDERABLE ITEM) an entry for the drug must exist like this:

file 101.43
 record: .01 NAME = LISINOPRIL
           2 ID = "Unique identifier, created from primary key passed in the 
                  Orderable Items update message from each package; it will be 
                  in the form of 'package code;99XXX' where XXX indicates the 
                  package table originating this item (i.e. RAP,LRT,etc.)
                  [e.g. in my system, then entry for DILTIAZEM TAB is 1;99PSP]

3. In file 50 (DRUG, ^PSDRUG), there must be an entry coresponding to the ID from 101.43 above. i.e. The ASP cross-reference for field "PHARMACY ORDERABLE ITEM (#2.1) i.e. ^PSDRUG("ASP",ID,*) should exist. Actually, there must be some transform because I can't find any entry for ^PSDRUG("ASP","1;99PSP",*)

4. To edit file 50.7 (PHARMACY ORDERABLE ITEM), new drugs may not be added unless PSEDITNM>0. Also, in the MED ROUTE field, the input transform does not allow an input of "ORAL".

--to be continued later--


Relevent Menu Options

Here is a pharmacy option/menu setup I gathered:

  cv     Protocol Conversion Utilities ... [ORCM CONVERSION UTILITIES]
  Mgr    Pharmacy Data Management ... [PSS MGR]
  NDF    National Drug File Menu ... [PSNMGR]
  Out    Outpatient Pharmacy Manager ... [PSO MANAGER]
         Drug Accountability Menu ... [PSA DRUG ACCOUNTABILITY MENU]
         Drug Receipt History Review [PSA DRUG HISTORY]
         Drug Transaction History [PSA DRUG DISPLAY]
         Enter/Edit a Drug [PSA DRUG ENTER/EDIT]
         Inquire/Compare DRUG file/ITEM MASTER file [PSA DRUG INQUIRE]

Debug of Ordering a Drug from CPRS

This is a sequence during a trial of adding a drug for a patient

 ORWU NPHASKEY  ; returns true if person has security key.

 Params ------------------------------------------------------------------
 literal	73
 literal	PROVIDER

 Results -----------------------------------------------------------------
 1


 ORWDX LOCK  ; attempt to lock pt for ordering

 Params ------------------------------------------------------------------
 literal	70685

 Results -----------------------------------------------------------------
 1


 ORWPS1 NEWDLG ; return order dialog info for New Medication

 Params ------------------------------------------------------------------
 literal	0

 Results -----------------------------------------------------------------
 147;140;4;D^Meds, Outpatient


 ORIMO IMOLOC (ORY,ORLOC,ORDFN)    ;ORY>=0: LOC is an IMO authorized location
   -- and OUT parameter for results.
   -- ORDFN: PATIENT IEN
   -- ORLOC: CLINIC LOCATION

 Params ------------------------------------------------------------------
 literal	6
 literal	70685

 Results -----------------------------------------------------------------
 -1
 Notes: IMOLOC^ORIMO checks if path PSJ*5.0*111 is installed
         In this case, this patch is NOT installed, so fails.
 
 OREVNTX1 ODPTEVID   ;Return PtEvtID based on the ORID

 Params ------------------------------------------------------------------
 literal	47

 Results -----------------------------------------------------------------


 REVNTX1 GTEVT  ;??? function doesn't exist on server.

 Params ------------------------------------------------------------------
 literal	

 Results -----------------------------------------------------------------


 ORWDPS2 QOGRP  (QOIFN)  ;"1->quick order belongs to Inpatient Med Order Group, else 0

 Params ------------------------------------------------------------------
 literal	147

 Results -----------------------------------------------------------------
 0


 ORWDXM1 BLDQRSP  (.LST,ORIT,FLDS,ISIMO)  ;Build responses for an order
   ; LST -- an OUT parameter
   ;     RETURNED FORMAT: LST=QuickLevel^ResponseID(ORIT,$H)^Dialog^Type^FormID^DGrp
   ;                      LST(n)=verify text or rejection text.
   ; ORIT = PTR to 101.41 for quick order, 100 for copy
   ;    1  2 3 4 5 6 7 8                   11-20
   ; FLDS=DFN^LOC^ORNP^INPT^SEX^AGE^EVENT^SC%^^^Key Variables...
   ; ISIMO -- I think: IS INPATIENT MEDICATION ON OUTPATIENT

 Params ------------------------------------------------------------------
 literal	147           
 literal	70685^6^73^0^M^4^0;C;0;0^0^^^
 literal	0

 Results -----------------------------------------------------------------
 0^0^147^D^140^4


 ORWDPS32 AUTH  ;"For inpatient meds, check restrictions

 Params ------------------------------------------------------------------
 literal	73

 Results -----------------------------------------------------------------
 0


 ORWDX DLGDEF (LST,DLG)  ;Format mapping for a Dlg.

 Params ------------------------------------------------------------------
 literal	PSO OERR

 Results -----------------------------------------------------------------
 ORDERABLE^4^1^@1350^^^^^^384~
 INSTR^136^^^^^^^^137~170~153~388~386~
 ROUTE^137^^1~3^^^^^^^1
 SCHEDULE^170^^^^^^^^^1
 URGENCY^7^6^^ROUTINE DONE
 COMMENT^15^7
 STRENGTH^384^^@1350^^^^^^^1
 QTY^149^8^^^Quantity:^^1
 PICKUP^148^
 REFILLS^150^9^^^Refills:
 SC^151^
 DAYS^153^^^^FOR^^^^^1
 START^6^
 SIG^385^2^^^^^1^0
 DOSE^386^^@^^^^^^^1
 DRUG^138^
 SUPPLY^387^
 NAME^1350^1.5
 CONJ^388^^^^^^^^^1
 PI^1358^3
 NOW^1359^10^^^First Dose^^1


 ORWDPS1 SCHALL   ;return all schedules

 Params ------------------------------------------------------------------

 Results -----------------------------------------------------------------
 BID^TWICE A DAY^C
 MO-WE-FR^^C
 NOW^^O
 ONCE^^O
 Q12H^EVERY 12 HOURS^C
 Q24H^EVERY 24 HOURS^C
 Q2H^EVERY 2 HOURS^C
 Q3H^EVERY 3 HOURS^C
 Q4H^EVERY 4 HOURS^C
 Q6H^EVERY 6 HOURS^C
 Q8H^EVERY 8 HOURS^C
 QAM^EVERY MORNING^C
 QD^EVERY DAY^C
 QHS^AT BEDTIME^C
 QID^FOUR TIMES A DAY^C
 QOD^EVERY OTHER DAY^C
 STAT^^O
 TID^THREE TIMES A DAY^C


 ORWDPS1 ODSLCT   ;return default lists for dialog

 Params ------------------------------------------------------------------
 literal	O
 literal	70685
 literal	6

 Results -----------------------------------------------------------------
 ~Priority
 i2^ASAP
 i99^DONE
 i9^ROUTINE
 i1^STAT
 d9^ROUTINE
 ~DispMsg
 d0
 ~Refills
 d0^0
 ~Pickup
 dW^at Window


 ORIMO IMOLOC    (See above)  ;ORY>=0: LOC is an IMO authorized location

 Params ------------------------------------------------------------------
 literal	6
 literal	70685

 Results -----------------------------------------------------------------
 -1


 ORWDXM3 ISUDQO (ORY,DLGID)  ;True: is unit dose quick order

 Params ------------------------------------------------------------------
 literal	140

 Results -----------------------------------------------------------------
 0


 ORWUL FV4DG (VAL,DGNM) ;return the current full list & item count

 Params ------------------------------------------------------------------
 literal	O RX

 Results -----------------------------------------------------------------
 2^1
 notes: Does lookups in file 101.44


 ORWUL QV4DG  (VAL,DGRP)  ;return the quick order list, given a display group name.

 Params ------------------------------------------------------------------
 literal	O RX

 Results -----------------------------------------------------------------
 0^0
 notes: does lookups in file 100.98 (DISPLAY GROUP file)


 ORWDX DGNM  ;display grp pointer for name

 Params ------------------------------------------------------------------
 literal	O RX

 Results -----------------------------------------------------------------
 4
 notes: does lookups in file 100.98 (DISPLAY GROUP file)


 ORWCH LOADSIZ  ;returns to bounds for a particular control.

 Params ------------------------------------------------------------------
 literal	frmODMeds

 Results -----------------------------------------------------------------
 238,134,566,442


 ORWUL FVSUB (LST,IEN,FIRST,LAST)  ;returns subset of orders in view.

 Params ------------------------------------------------------------------
 literal	2  Note: 2 --> ORWDSET O RX record
 literal	1
 literal	1

 Results -----------------------------------------------------------------
 12^(CALCIUM)
 Notes: returns a..b set members from IEN record in file 101.44 (ORDER QUICK VIEW file)


 ORWCH SAVESIZ   ;save the list of sizing information.

 Params ------------------------------------------------------------------
 literal	frmODMeds
 literal	238,134,566,442

 Results -----------------------------------------------------------------
 0


 ORWDXM2 CLRRCL

 Params ------------------------------------------------------------------

 Results -----------------------------------------------------------------
 1


 ORWDX UNLOCK

 Params ------------------------------------------------------------------
 literal	70685

 Results -----------------------------------------------------------------
 1

Email coorespondence

Wei Wang wrote:

I have tried to enter a new pharmacy orderable items and drugs through the PDM Drug enter/edit program. After the drug is put in, I can order it from the character-based CPRS but it does not display in the Medication Order dialog box for the GUI CPRS.

The only inpatient medication orderable items that display in the GUI CPRS are items contained in the record "ORWDSET UD RX" in the file ORDER

QUICK VIEW. But new updates to the drugs and orderable items do not effect this record. Any idea how I should enter new drugs and/or pharmacy orderable items so they will appear on the GUI CPRS too?

Thanks,

Wei Wang Oleen Healthcare Information Management


The reason was that we didn't start TaskMan while entering the drugs so job of "updating Quick View" is scheduled but not run. After we started TaskMan and waited for a little while, all drugs now show nicely in the GUI interface.

Wei

Thanks to Todd in Iowa who helped us with resolve the problem! Nancy Anthracite

=-=-=-=-=-=-

Hi Finally I am able to see the drugs and order them from CPRS. Nancy's old mail really helped. A record has to be added into the ORDER QUICK VIEW file. This file probably holds the parameters required by CPRS. The new record is something like: Name : ORWDSET O RX QUICK ORDER : PS MEDS SET MEMBER : "ORDERABLE ITEM" Regards Nick



I have been tinkering with being able to order medications in CPRS.

Based on recent posts, it seems that an entry is required in the ORDER QUICK VIEW file, in the record: ORWDSET O RX. Here is my file now:


Select ORDER QUICK VIEW NAME: orwdset O RX ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// b BOTH Computed Fields and Record Number (IEN)

NUMBER: 2 NAME: ORWDSET O RX

 LAST UPDATE: 59653,46064

QUICK ORDER: PS MEDS DISPLAY TEXT: <Some text> SET MEMBER: CALCIUM DISPLAY TEXT: (CALCIUM)


Now, rather when getting an error when trying to order a medicine, I am given chose of ordering one "medicine" -- namely calcium.

So it seems that I need to load my formulary into this file.

When I look at the data structure for the file, though, I see that the drug (in this case "calcium") is stored as a free text name, not a pointer to the DRUG file (file # 50).

So how do I make this link, or am I off target?

Thanks Kevin



Hi The SET MEMBER comes from the PHARMACY ORDERABLE ITEM file for medications. Drugs can be added into this file through the DRUG ENTER/EDIT option. Bye Nick


Nick,

Thanks for you help so far.

I have explored the DRUG ENTER/EDIT option (option: PSA DRUG ENTER/EDIT) and found that I could laboriously load up my forumulary with the drugs one at a time -- clearly impossible for a full forumulary (too many)

Then I found the option to Merge National Drug file Datas into Local File (option: PSNMGR). I did this, and there were no errors. Somewhere along the way I created a "pharmacy" out of which to work in the OUTPATIENT SITE file. Now, when I got to the DRUG ENTER/EDIT option, there are 5173 drugs loaded.

But when I go into Fileman, and look inthe PHARMACY ORDERABLE ITEM file, it is completely empty.

Any ideas about how to get this populated?

Thanks Kevin


The pointer is from the Drug file #50 I believe. I got something to work by putting someting into the orderables file. I know there a pointer from the drug file to the orderables file. Jim Gray