Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  FileMan Files Accessed Via FileMan Db Call |  Global Variables Directly Accessed |  Label References |  Local Variables  | All
Print Page as PDF
Routine: PSOERXUT

Package: Outpatient Pharmacy

Routine: PSOERXUT


Information

PSOERXUT ;ALB/MR - eRx CS utilities ;7/21/2020 9:57am

Source Information

Source file <PSOERXUT.m>

Call Graph

Call Graph

Call Graph Total: 13

Package Total Call Graph
Kernel 4 ($$FMTE,$$NOW)^XLFDT  $$UP^XLFSTR  ($$DEA,$$DEAXDT,$$DETOX,$$SDEA)^XUSER  $$NPI^XUSNPI  
VA FileMan 4 ^DIC  UPDATE^DIE  $$GET1^DIQ  ^DIR  
Outpatient Pharmacy 2 $$CHKERX^PSOERXU1  ($$DEAFOUND,$$ERXSIG,$$RENEWALS,$$VADEA,$$VISTASIG,SUFCHK)^PSOERXU8  
List Manager 1 PAUSE^VALM1  
Pharmacy Data Management 1 $$DETOX^PSSOPKI  
Registration 1 ADD^VADPT  

Caller Graph

Caller Graph Total: 50

Package Total Caller Graph
Outpatient Pharmacy 50 PSOCMOPR  PSODDPR1  PSODDPR3  PSODISP1  PSODRDU1  PSOERALL  PSOERPC0  PSOERPC1  
PSOERPC2  PSOERPT0  PSOERPT1  PSOERPT2  PSOERRX1  PSOERSE2  PSOERSE3  PSOERSE4  
PSOERSE5  PSOERUT  PSOERUT2  PSOERUT5  PSOERUT6  PSOERX  PSOERX1A  PSOERX1B  
PSOERX1C  PSOERX1D  PSOERX1F  PSOERX1G  PSOERXA1  PSOERXAU  PSOERXC1  PSOERXD2  
PSOERXD3  PSOERXH1  PSOERXI1  PSOERXU1  PSOERXU3  PSOERXU4  PSOERXU7  PSOERXU8  
PSOERXU9  PSON52  PSOORFI1  PSOORFI3  PSOORFI5  PSOORNE3  PSOORNE4  PSOORNEW  
PSOORNW1  PSORN52C  

Entry Points

Name Comments DBIA/ICR reference
CSFILTER(ERXIEN) ; Check eRx against CS Filter Prompt Answers
; Global variables: PSOCSERX: CS Filter Selection | PSOCSSCH: Drug Schedule Filter Selection
; Input: (r)ERXIEN - Pointer to ERX HOLDING QUEUE (#52.49)
VALPTADD(DFN) ; Returns whether the patient has a valid address or not
; Input: (r)DFN - Pointer to the PATIENT file (#2)
CSKEYS(USER) ; Checks whether the user has a valid Security Key for CS Orders
; Input: (r)USER - Pointer to the NEW PERSON file (#200)
PRDRVAL(RESULT,ACTION,ERXIEN,PROVIEN,DRUGIEN) ; API used to Verify Provider and Drug Selection/Validation for CS Prescriptions
; Input:(r)ACTION - Ation being peformed ("EP": Edit Provider | "VP": Validate Provider | "ED": Edit Drug | "VD": Validate Drug | "AC": Accept eRx)
; (r)ERXIEN - eRx IEN. Pointer to the ERX HOLDING QUEUE file (#52.49)
; (o)PROVIEN - Provider IEN. Pointer to the NEW PERSON file (#200)
; (o)DRUGIEN - Dispense Drug IEN. Pointer to the DRUG file (#50)
ERXDRSCH(ERXIEN) ; Returns the CS Schedule for the eRx Drug (Internal^External Format)
; Input: (r) ERXIEN - Pointer to the ERX HOLDING QUEUE file (52.49)
VADRSCH(DRUGIEN) ; Returns the CS Schedule for the VistA Dispense Drug (Internal^External Format)
; Input: (r) DRUGIEN - Pointer to the DRUG file (#50)
PAUSE ; Pauses screen until user hits Return
ERXIEN(PORXIEN) ; Given the Pending Order (#52.41) or Prescription (#52) IEN, returns the eRx (#52.49) IEN or "" (null)
; Input: (r) PORXIEN - Pointer to either the PENDING ORDERS file (#52.41) (e.g., "139839P") or PRESCRIPTION file (#52) (e.g., 12930984)
AUDLOG(ERXIEN,FIELD,EDITBY,NEWVAL) ; Sets eRx Edit Audit Log
; Input: (r) ERXIEN - Pointer to ERX HOLDING QUEUE File (#52.49). eRx record being edited.
; (r) FIELD - Freetext eRx Field Name (e.g.,"DRUG", "PROVIDER", "PATIENT", Etc...). Field being edited.
; (r) EDITBY - Pointer to NEW PERSON File (#200). User who made the edit.
; (r) NEWVAL - Array containing the new value for the field being edited (Passed in by Reference)
EQUAL(ERXIEN,FIELD,NEWVAL) ; Compare if the OLD and NEW values are the same
OLDVAL(ERXIEN,FIELD,STRTFROM,OLDVAL) ; Retrieves the Previous/Old Value for the eRx Field
; Input: (r) ERXIEN - Pointer to ERX HOLDING QUEUE File (#52.49). eRx record being edited.
; (r) FIELD - Freetext eRx Field Name (e.g.,"DRUG", "PROVIDER", "PATIENT", Etc...). Field being edited.
; (o) STRTFROM - Start From Audit Log IEN. Default: Lastest value for the field.
PROXYDUZ() ; Returns the Proxy DUZ for Audit Log entries from Auto-Matching
; Output: PROXYDUZ - Pointer to NEW PERSON file (#200)
DONOTFIL(ERXIEN) ; Do Not Fill record
; Input: (r) ERXIEN - Pointer to ERX HOLDING QUEUE File (#52.49). eRx record being edited.
SUFFWARN(RESULT,ERXPRDEA,VADEADSP,HEADER) ; Append suffix warning to end of RESULT array
; Input: (r) ERXPRDEA - eRx DEA number
; (r) VADEADSP - VA DEA #
; (o) HEADER - Print Message Heading
; Output: RESULT - DEA Number suffix mismatch warning text
DEFROUTE(OIIEN) ; Returns the Default Route for Orderable Item
; Input: OIIEN - Orderable Item IEN - Pointer to PHARMACY ORDERABLE ITEM file (#50.7)
ERXSIG(ERXIEN) ; Returns the eRx SIG
VISTASIG(ERXIEN) ; Returns the VistA SIG, if present
RENEWALS(ERXIEN) ; Returns whether Renewals are Prohibited or no

External References

Name Field # of Occurrence
^DIC PROXYDUZ+3
UPDATE^DIE AUDLOG+21
$$GET1^DIQ PRDRVAL+9, PRDRVAL+10, PRDRVAL+13, PRDRVAL+14, PRDRVAL+15, PRDRVAL+16, PRDRVAL+18, PRDRVAL+55, PRDRVAL+106, PRDRVAL+110
, PRDRVAL+125, ERXDRSCH+6, VADRSCH+6, VADRSCH+7, ERXIEN+6, ERXIEN+7, OLDVAL+9, DONOTFIL+4, DEFROUTE+5, DEFROUTE+8
, DEFROUTE+9, DEFROUTE+10, DEFROUTE+13, DEFROUTE+16, DEFROUTE+18
^DIR PAUSE+1
$$CHKERX^PSOERXU1 ERXIEN+9
$$DEAFOUND^PSOERXU8 PRDRVAL+47, PRDRVAL+97
$$ERXSIG^PSOERXU8 ERXSIG+1
$$RENEWALS^PSOERXU8 RENEWALS+1
$$VADEA^PSOERXU8 PRDRVAL+30, PRDRVAL+48, PRDRVAL+98, PRDRVAL+100
$$VISTASIG^PSOERXU8 VISTASIG+1
SUFCHK^PSOERXU8 PRDRVAL+107, PRDRVAL+111, PRDRVAL+115, PRDRVAL+119, PRDRVAL+120
$$DETOX^PSSOPKI PRDRVAL+123
ADD^VADPT VALPTADD+5
PAUSE^VALM1 DONOTFIL+6
$$FMTE^XLFDT PRDRVAL+40, PRDRVAL+114
$$NOW^XLFDT AUDLOG+17
$$UP^XLFSTR PRDRVAL+15, PRDRVAL+30, PRDRVAL+48, PRDRVAL+98, PRDRVAL+100
$$DEA^XUSER PRDRVAL+50, PRDRVAL+101
$$DEAXDT^XUSER PRDRVAL+31
$$DETOX^XUSER PRDRVAL+123
$$SDEA^XUSER PRDRVAL+48, PRDRVAL+98
$$NPI^XUSNPI PRDRVAL+24

Interaction Calls

Name Line Occurrences
Function Call: WRITE
  • Prompt: !!,"This is a DO NOT FILL record. The only actions available are REMOVE or REJECT.",$C(7)
  • Line Location: DONOTFIL+5
Routine Call
  • DIC
  • Line Location:
    • PROXYDUZ+3
Routine Call
  • DIE
  • Line Location:
    • AUDLOG+21
Routine Call
  • DIR
  • Line Location:
    • PAUSE+1

FileMan Files Accessed Via FileMan Db Call

FileNo Call Tags
^VA(200 - [#200] Classic Fileman Calls,  GET1^DIQ
^PSDRUG - [#50] GET1^DIQ
50.6061 GET1^DIQ
^PSNDF(50.68 - [#50.68] GET1^DIQ
^PS(50.7 - [#50.7] GET1^DIQ
50.711 GET1^DIQ
^PSRX - [#52] GET1^DIQ
^PS(52.41 - [#52.41] GET1^DIQ
^PS(52.48 - [#52.48] GET1^DIQ
^PS(52.49 - [#52.49] GET1^DIQ

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^PS(50.606 - [#50.606] DEFROUTE+11, DEFROUTE+12
^PS(50.7 - [#50.7] DEFROUTE+3, DEFROUTE+6, DEFROUTE+7
^PS(52.49 - [#52.49] CSFILTER+7, CSFILTER+8, AUDLOG+8, OLDVAL+8, OLDVAL+10, OLDVAL+11
^VA(200 - [#200] AUDLOG+10
^XUSEC("PSDRPH" CSKEYS+4
^XUSEC("PSO ERX ADV TECH" CSKEYS+4
^XUSEC("PSO ERX TECH" CSKEYS+4

Label References

Name Line Occurrences
$$EQUAL AUDLOG+14
$$ERXDRSCH PRDRVAL+17
$$VADRSCH PRDRVAL+43, PRDRVAL+46, PRDRVAL+76
OLDVAL EQUAL+8
SUFFWARN PRDRVAL+59, PRDRVAL+60, PRDRVAL+61, PRDRVAL+62

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
ACTION PRDRVAL~, PRDRVAL+22, PRDRVAL+25, PRDRVAL+60, PRDRVAL+61, PRDRVAL+62, PRDRVAL+65, PRDRVAL+68, PRDRVAL+71, PRDRVAL+75
, PRDRVAL+77, PRDRVAL+109, PRDRVAL+113, PRDRVAL+124
AUDLOG AUDLOG+6~, OLDVAL+6~, OLDVAL+7*, OLDVAL+8*, OLDVAL+9, OLDVAL+10, OLDVAL+11
AUDLOG( AUDLOG+17*, AUDLOG+18*, AUDLOG+19*, AUDLOG+20*
DEAFOUND PRDRVAL+44~*, PRDRVAL+47*, PRDRVAL+48, PRDRVAL+49, PRDRVAL+96~*, PRDRVAL+97*, PRDRVAL+98, PRDRVAL+99
DEFROUTE DEFROUTE+4~*, DEFROUTE+8*, DEFROUTE+13*, DEFROUTE+16, DEFROUTE+18, DEFROUTE+20
DFIEN DEFROUTE+4~, DEFROUTE+10*, DEFROUTE+11, DEFROUTE+12, DEFROUTE+13
DFN VALPTADD~, VALPTADD+4
DIC PROXYDUZ+2~, PROXYDUZ+3*
DIC(0 PROXYDUZ+3*
DIR PAUSE+1!
DIR("A" PAUSE+1*
DIR(0 PAUSE+1*
DRGCSCH CSFILTER+5~, CSFILTER+7*, CSFILTER+11, CSFILTER+12, CSFILTER+13, CSFILTER+14
DRUGIEN PRDRVAL~, PRDRVAL+8*, PRDRVAL+10*, PRDRVAL+11, PRDRVAL+42, PRDRVAL+43, PRDRVAL+46, PRDRVAL+76, PRDRVAL+123, VADRSCH~
, VADRSCH+5, VADRSCH+6, VADRSCH+7
DSERXFLG PRDRVAL+7~, PRDRVAL+16*, PRDRVAL+28, PRDRVAL+77, PRDRVAL+83
EDITBY AUDLOG~, AUDLOG+7*, AUDLOG+10, AUDLOG+19
EQUAL EQUAL+6~*, EQUAL+9*, EQUAL+10*, EQUAL+11
ERXCSFLG CSFILTER+5~, CSFILTER+8*, CSFILTER+9, CSFILTER+10, CSFILTER+13, CSFILTER+14
ERXDRSCH PRDRVAL+7~, PRDRVAL+17*, PRDRVAL+79, PRDRVAL+82, ERXDRSCH+4~, ERXDRSCH+6*, ERXDRSCH+7
ERXIEN CSFILTER~, CSFILTER+7, CSFILTER+8, PRDRVAL~, PRDRVAL+8*, PRDRVAL+9, PRDRVAL+10, PRDRVAL+11, PRDRVAL+13, PRDRVAL+16
, PRDRVAL+17, PRDRVAL+18, PRDRVAL+30, PRDRVAL+48, PRDRVAL+98, PRDRVAL+100, ERXDRSCH~, ERXDRSCH+5, ERXDRSCH+6, AUDLOG~
, AUDLOG+7*, AUDLOG+8, AUDLOG+14, AUDLOG+17, AUDLOG+18, AUDLOG+19, AUDLOG+20, EQUAL~, EQUAL+8, OLDVAL~
, OLDVAL+8, OLDVAL+9, OLDVAL+10, OLDVAL+11, DONOTFIL~, DONOTFIL+4, ERXSIG~, ERXSIG+1, VISTASIG~, VISTASIG+1
, RENEWALS~, RENEWALS+1
ERXPRDEA PRDRVAL+7~, PRDRVAL+15*, PRDRVAL+34, PRDRVAL+36, PRDRVAL+37, PRDRVAL+38, PRDRVAL+39, PRDRVAL+47, PRDRVAL+48, PRDRVAL+59
, PRDRVAL+60, PRDRVAL+61, PRDRVAL+62, PRDRVAL+89, PRDRVAL+97, PRDRVAL+98, PRDRVAL+107, PRDRVAL+111, PRDRVAL+115, PRDRVAL+116
, PRDRVAL+118, PRDRVAL+119, PRDRVAL+120, SUFFWARN~, SUFFWARN+8
ERXPRNPI PRDRVAL+7~, PRDRVAL+14*, PRDRVAL+25, PRDRVAL+26
ERXPROV PRDRVAL+7~, PRDRVAL+13*, PRDRVAL+14, PRDRVAL+15
ERXSUFF PRDRVAL+23~*, PRDRVAL+37*, PRDRVAL+58, PRDRVAL+107, PRDRVAL+111, PRDRVAL+115, PRDRVAL+119, PRDRVAL+120
FIELD AUDLOG~, AUDLOG+9, AUDLOG+14, AUDLOG+18, EQUAL~, EQUAL+8, OLDVAL~, OLDVAL+9
HEADER SUFFWARN~, SUFFWARN+6
I VALPTADD+4~, EQUAL+6~, EQUAL+9*, EQUAL+10*, OLDVAL+10*, OLDVAL+11
NEWVAL AUDLOG~, AUDLOG+11, AUDLOG+14, EQUAL~
NEWVAL( EQUAL+9, EQUAL+10
OIIEN DEFROUTE~, DEFROUTE+3, DEFROUTE+5, DEFROUTE+6, DEFROUTE+7, DEFROUTE+8, DEFROUTE+9, DEFROUTE+10, DEFROUTE+16, DEFROUTE+18
OLDVAL EQUAL+6~, EQUAL+8, OLDVAL~, OLDVAL+6!
OLDVAL( EQUAL+9, EQUAL+10, OLDVAL+11*
OLDVAL(0 OLDVAL+8
OR100IEN ERXIEN+4~, ERXIEN+6*, ERXIEN+7*, ERXIEN+8, ERXIEN+9
PORXIEN ERXIEN~, ERXIEN+5, ERXIEN+6, ERXIEN+7
PROVIEN PRDRVAL~, PRDRVAL+8*, PRDRVAL+9*, PRDRVAL+11, PRDRVAL+24, PRDRVAL+30, PRDRVAL+47, PRDRVAL+48, PRDRVAL+50, PRDRVAL+55
, PRDRVAL+93, PRDRVAL+97, PRDRVAL+98, PRDRVAL+100, PRDRVAL+101, PRDRVAL+106, PRDRVAL+110, PRDRVAL+123, PRDRVAL+125
>> PSOCSERX CSFILTER+6, CSFILTER+9, CSFILTER+10, CSFILTER+11, CSFILTER+12, CSFILTER+13, CSFILTER+14
>> PSOCSSCH CSFILTER+6, CSFILTER+11, CSFILTER+12, CSFILTER+13, CSFILTER+14
RESCNT SUFFWARN+5~*, SUFFWARN+6
RESULT PRDRVAL~, PRDRVAL+8!*, PRDRVAL+11*, PRDRVAL+59*, PRDRVAL+60*, PRDRVAL+61*, PRDRVAL+62*, PRDRVAL+63*, PRDRVAL+66*, PRDRVAL+69*
, PRDRVAL+72*, PRDRVAL+78*, PRDRVAL+84*, PRDRVAL+90*, PRDRVAL+105*, PRDRVAL+107, PRDRVAL+109*, PRDRVAL+111, PRDRVAL+113*, PRDRVAL+115
, PRDRVAL+117*, PRDRVAL+119, PRDRVAL+120, PRDRVAL+124*, SUFFWARN~
RESULT( PRDRVAL+26*, PRDRVAL+33*, PRDRVAL+35*, PRDRVAL+38*, PRDRVAL+40*, PRDRVAL+55*, PRDRVAL+80*, PRDRVAL+82*, PRDRVAL+86*, PRDRVAL+88*
, PRDRVAL+91*, PRDRVAL+106*, PRDRVAL+110*, PRDRVAL+114*, PRDRVAL+118*, PRDRVAL+125*, SUFFWARN+7*, SUFFWARN+8*
RESULT("" PRDRVAL+26, PRDRVAL+33, PRDRVAL+35, PRDRVAL+38, PRDRVAL+40, PRDRVAL+55, PRDRVAL+80, PRDRVAL+82, PRDRVAL+86, PRDRVAL+88
, PRDRVAL+91, PRDRVAL+106, PRDRVAL+110, PRDRVAL+114, PRDRVAL+118, PRDRVAL+125, SUFFWARN+5, SUFFWARN+7, SUFFWARN+8
RESULT(0 PRDRVAL+59, PRDRVAL+63
RESULT(1 PRDRVAL+11*
RTIEN DEFROUTE+4~, DEFROUTE+6*, DEFROUTE+7, DEFROUTE+8, DEFROUTE+11*, DEFROUTE+12, DEFROUTE+13
RXWRDATE PRDRVAL+7~, PRDRVAL+18*, PRDRVAL+39, PRDRVAL+48, PRDRVAL+98, PRDRVAL+123
SAVERES AUDLOG+6~
STRTFROM OLDVAL~, OLDVAL+7
USER CSKEYS~, CSKEYS+4
VACSDRUG PRDRVAL+7~, PRDRVAL+19*, PRDRVAL+45*, PRDRVAL+60, PRDRVAL+65, PRDRVAL+76*, PRDRVAL+77, PRDRVAL+83, PRDRVAL+89, PRDRVAL+95
VADEADFL PRDRVAL+7~, PRDRVAL+30*, PRDRVAL+50*, PRDRVAL+51, PRDRVAL+52, PRDRVAL+98*, PRDRVAL+100*, PRDRVAL+101*, PRDRVAL+102, PRDRVAL+103
, PRDRVAL+107, PRDRVAL+111, PRDRVAL+115, PRDRVAL+119, PRDRVAL+120
VADEADSP PRDRVAL+7~, PRDRVAL+30*, PRDRVAL+38, PRDRVAL+48*, PRDRVAL+51*, PRDRVAL+52*, PRDRVAL+59, PRDRVAL+60, PRDRVAL+61, PRDRVAL+62
, PRDRVAL+98*, PRDRVAL+102*, PRDRVAL+103*, SUFFWARN~, SUFFWARN+8
VADEAEXP PRDRVAL+7~, PRDRVAL+31*, PRDRVAL+39, PRDRVAL+40
VADEANUM PRDRVAL+7~, PRDRVAL+30*, PRDRVAL+31, PRDRVAL+32, PRDRVAL+36, PRDRVAL+37, PRDRVAL+39, PRDRVAL+48*, PRDRVAL+51*, PRDRVAL+52*
, PRDRVAL+54, PRDRVAL+59, PRDRVAL+60, PRDRVAL+61, PRDRVAL+62, PRDRVAL+98*, PRDRVAL+102*, PRDRVAL+103*, PRDRVAL+104, PRDRVAL+108
, PRDRVAL+112, PRDRVAL+114, PRDRVAL+116, PRDRVAL+118
VADEASTR PRDRVAL+7~
VADEASUF PRDRVAL+7~
VADRSCH PRDRVAL+7~, PRDRVAL+46*, PRDRVAL+48, PRDRVAL+55, PRDRVAL+76*, PRDRVAL+85, PRDRVAL+86, PRDRVAL+88, PRDRVAL+98, PRDRVAL+110
, VADRSCH+4~, VADRSCH+7*, VADRSCH+8, VADRSCH+9
VAPA VALPTADD+4~
VAPA(11 VALPTADD+5
VAPA(24 VALPTADD+5
VAPA(25 VALPTADD+5
VAPRDIEN VADRSCH+4~, VADRSCH+6*, VADRSCH+7, VADRSCH+9
VAPRNPI PRDRVAL+7~, PRDRVAL+24*, PRDRVAL+25, PRDRVAL+26
X OLDVAL+6~, PROXYDUZ+2~, PROXYDUZ+3*
Y PROXYDUZ+2~, PROXYDUZ+4
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  FileMan Files Accessed Via FileMan Db Call |  Global Variables Directly Accessed |  Label References |  Local Variables  | All