PSOERX1C ;ALB/BWF - eRx Utilities ; 11/27/2019 10:20am
;;7.0;OUTPATIENT PHARMACY;**467,520,527,508,551,581,617,646,700,746,769,770**;DEC 1997;Build 145
;
Q
; select an item
PRINT(PSOIEN,OP) ;
N %ZIS,POP,DIR,PSOQ
S OP=$G(OP)
S PSOQ=0
D FULL^VALM1
S VALMBCK="R"
S %ZIS="Q",%ZIS("B")=$G(PSOPROP) D ^%ZIS Q:POP
; if queuing, queue it and quit.
I $D(IO("Q")) D Q
.S ZTSAVE("PSOIEN")="",ZTSAVE("OP")="",ZTSAVE("VALMAR")="",ZTSAVE("VALMEVL")=""
.S ZTRTN="PRINTQ^PSOERX1C(PSOIEN,OP)",ZTDESC="eRx Print" D ^%ZTLOAD
.K ZTSAVE,ZTRTN
.D TERM^VALM0
.D REFSCRN
D PRINTQ(PSOIEN,OP)
I '$G(PSOQ) K DIR S DIR(0)="E" D ^DIR K DIR
D TERM^VALM0
D REFSCRN
Q
; fall through if no queueing
PRINTQ(PSOIEN,OP) ;
N %ZIS,POP,RXDAT,PHARIEN,PRVIEN,PATIEN,PHARDAT,PRVDAT,PATDAT,PSOIENS,PHNM,PHAD1,PHAD2,PHCTY,LINE,LOOP,PROHIBIT,ERXWDATE
N PHST,PHZIP,PHNCP,PHTEL,PRFNM,PRLNM,PRMNM,PRAD1,PRAD2,PRCTY,PRST,PRZIP,PRNPI,PRDEA,PRSTL,LTXT,MTYPE,NEWRXIEN,ERXEFFDT,PHW,SGLOOP
N PRTEL,PRFAX,PRSUPER,PRAGNT,PTLNM,PTFNM,PTMNM,PTAD1,PTAD2,PTCTY,PTST,PTZIP,PTDOB,PTGEN,PTHPHON,S2017,MEDIEN,R2017
N PHARIENS,PATIENS,PRVIENS,PTSSN,PRAGNTFN,PRAGNTMN,PRAGNTLN,TYPE,VALUE,SIEN,REFILL,IENS,CANREQ,CANRES,ERXDSUB,EXSTATUS
N CHGMESRI,CHGMESRQ,RESPVAL,DRUGCODE,PRVNOTES,DUEINFO,DDOT,DUECNT,REASON,RESULT,ICDINFO,ICD,ICDZ,CLINIC
S IOINHI=$G(IOINHI),IOINORM=$G(IOINORM),IOUON=$G(IOUON),IOUOFF=$G(IOUOFF),IORVON=$G(IORVON),IORVOFF=$G(IORVOFF)
S OP=$G(OP,"")
S PSOIEN=$G(PSOIEN)
I '$G(PSOIEN) D
.I $D(RXOR) S PSOIEN=$$CHKERX^PSOERXU1($P(RXOR,U,2)) Q:PSOIEN
.I $D(OR0) S PSOIEN=$$CHKERX^PSOERXU1(OR0)
Q:'$G(PSOIEN)
S MTYPE=$$GET1^DIQ(52.49,PSOIEN,.08,"I")
S CHGMESRQ=$$GET1^DIQ(52.49,PSOIEN,315.1,"I")
S CHGMESRI=$$GET1^DIQ(52.45,CHGMESRQ,.01,"I")
S RESPVAL=$$GET1^DIQ(52.49,PSOIEN,52.1,"E")
I MTYPE="CN"!(MTYPE="RE")!(MTYPE="IE") D
.S CANRES=PSOIEN
.S CANREQ=$$GETREQ^PSOERXU2(PSOIEN)
.I $G(CANREQ) D
..S NEWRXIEN=$$RESOLV^PSOERXU2(CANREQ)
..; if there is no NewRx related to this request, pull the data from the cancel request itself.
..I '$P(NEWRXIEN,U) S NEWRXIEN=$G(CANREQ)
I MTYPE="CA"!(MTYPE="RR") D
.S CANREQ=PSOIEN,CANRES=$$GETRESP^PSOERXU2(CANREQ)
.S NEWRXIEN=$$RESOLV^PSOERXU2(CANREQ)
.I '$P(NEWRXIEN,U) S NEWRXIEN=$G(CANREQ)
; if we found the newrxien because of a different message type, reset PSOIEN to pull rx info from the newrx.
S S2017=$$GET1^DIQ(52.49,PSOIEN,312.1,"I")
I S2017 D
.I MTYPE'="RE" D
..S MEDIEN=$O(^PS(52.49,PSOIEN,311,"C","P",0))
.I MTYPE="RE" D
..S MEDIEN=$O(^PS(52.49,PSOIEN,311,"C","MR",0))
S PSOIENS=PSOIEN_","
I $D(ZTQUEUED) S ZTREQ="@"
U IO
D GETS^DIQ(52.49,PSOIENS,".04;.08;2.1;2.5","I","RXDAT")
S PHARIEN=$G(RXDAT(52.49,PSOIENS,2.5,"I"))
S:PHARIEN PHARIENS=PHARIEN_","
S PRVIEN=$G(RXDAT(52.49,PSOIENS,2.1,"I"))
S:PRVIEN PRVIENS=PRVIEN_","
S PATIEN=$G(RXDAT(52.49,PSOIENS,.04,"I"))
S:PATIEN PATIENS=PATIEN_","
I $D(PHARIENS) D GETS^DIQ(52.47,PHARIENS,"**","E","PHARDAT")
I $D(PRVIENS) D GETS^DIQ(52.48,PRVIENS,"**","E","PRVDAT")
I $D(PATIENS) D GETS^DIQ(52.46,PATIENS,"**","E","PATDAT")
; pharmacy information
I $D(PHARIENS) D
.S PHNM=$G(PHARDAT(52.47,PHARIENS,.05,"E"))
.S PHAD1=$G(PHARDAT(52.47,PHARIENS,1.1,"E"))
.S PHAD2=$G(PHARDAT(52.47,PHARIENS,1.2,"E"))
.S PHCTY=$G(PHARDAT(52.47,PHARIENS,1.3,"E"))
.S PHST=$G(PHARDAT(52.47,PHARIENS,1.4,"E"))
.S PHZIP=$G(PHARDAT(52.47,PHARIENS,1.5,"E"))
.I S2017 D
..S PHNCP=$G(PHARDAT(52.47,PHARIENS,10.1,"E"))
..S PHTEL=$$COMMVAL^PSOERXU5(PHARIEN,52.47,7,"PT",1) ; Add extension
.I 'S2017 D
..S PHNCP=$G(PHARDAT(52.47,PHARIENS,.02,"E"))
..S PHTEL=$$COMMVAL^PSOERXU5(PHARIEN,52.47,7,"PT",1)
; provider information
I $D(PRVIENS) D
.S PRFNM=$G(PRVDAT(52.48,PRVIENS,.03,"E"))
.S PRMNM=$G(PRVDAT(52.48,PRVIENS,.04,"E"))
.S PRLNM=$G(PRVDAT(52.48,PRVIENS,.02,"E"))
.S PRAD1=$G(PRVDAT(52.48,PRVIENS,4.1,"E"))
.S PRAD2=$G(PRVDAT(52.48,PRVIENS,4.2,"E"))
.S PRCTY=$G(PRVDAT(52.48,PRVIENS,4.3,"E"))
.S PRST=$G(PRVDAT(52.48,PRVIENS,4.4,"E"))
.S PRZIP=$G(PRVDAT(52.48,PRVIENS,4.5,"E"))
.I S2017 D
..S PRNPI=$G(PRVDAT(52.48,PRVIENS,15.1,"E"))
..S PRDEA=$G(PRVDAT(52.48,PRVIENS,14.5,"E"))
..S PRSTL=$G(PRVDAT(52.48,PRVIENS,14.1,"E"))
.I 'S2017 D
..S PRNPI=$G(PRVDAT(52.48,PRVIENS,1.5,"E"))
..S PRDEA=$G(PRVDAT(52.48,PRVIENS,1.6,"E"))
..S PRSTL=$G(PRVDAT(52.48,PRVIENS,1.8,"E"))
.I '$G(NEWRXIEN) S PRSUPER=$$GET1^DIQ(52.49,PSOIEN,2.6,"E")
.I $G(NEWRXIEN) S PRSUPER=$$GET1^DIQ(52.49,NEWRXIEN,2.6,"E")
.S PRAGNTFN=$$GET1^DIQ(52.48,PRVIEN,5.2,"E")
.S PRAGNTMN=$$GET1^DIQ(52.48,PRVIEN,5.3,"E")
.S PRAGNTLN=$$GET1^DIQ(52.48,PRVIEN,5.1,"E")
.I S2017 D
..S PRTEL=$$COMMVAL^PSOERXU5(PRVIEN,52.48,11,"PT",1) ; Add extension
..S PRFAX=$$COMMVAL^PSOERXU5(PRVIEN,52.48,11,"F",1) ; Add extension
.I 'S2017 D
..S SIEN=0
..F S SIEN=$O(^PS(52.48,PRVIEN,3,SIEN)) Q:'SIEN D
...S IENS=SIEN_","_PRVIEN_","
...S TYPE=$$GET1^DIQ(52.483,IENS,.02)
...S VALUE=$$GET1^DIQ(52.483,IENS,.01)
...D
....I TYPE="FAX" S PRFAX=VALUE Q
....I TYPE="TELEPHONE" S PRTEL=VALUE
I '$D(PRVIENS) D
.S (PRFNM,PRMNM,PRLNM,PRAD1,PRAD2,PRCTY,PRST,PRZIP)=""
.S (PRNPI,PRDEA,PRSTL)=""
.I '$G(NEWRXIEN) S PRSUPER=$$GET1^DIQ(52.49,PSOIEN,2.6,"E")
.I $G(NEWRXIEN) S PRSUPER=$$GET1^DIQ(52.49,NEWRXIEN,2.6,"E")
.S (PRAGNTFN,PRAGNTMN,PRAGNTLN)=""
.S (PRTEL,PRFAX)=""
S CLINIC=$$GET1^DIQ(52.48,PRVIEN,18.6)
; patient information
I $D(PATIENS) D
.S PTLNM=$G(PATDAT(52.46,PATIENS,.02,"E"))
.S PTMNM=$G(PATDAT(52.46,PATIENS,.04,"E"))
.S PTFNM=$G(PATDAT(52.46,PATIENS,.03,"E"))
.S PTAD1=$G(PATDAT(52.46,PATIENS,3.1,"E"))
.S PTAD2=$G(PATDAT(52.46,PATIENS,3.2,"E"))
.S PTCTY=$G(PATDAT(52.46,PATIENS,3.3,"E"))
.S PTST=$G(PATDAT(52.46,PATIENS,3.4,"E"))
.S PTZIP=$G(PATDAT(52.46,PATIENS,3.5,"E"))
.S PTDOB=$G(PATDAT(52.46,PATIENS,.08,"E"))
.S PTGEN=$G(PATDAT(52.46,PATIENS,.07,"E"))
.S PTSSN=$G(PATDAT(52.46,PATIENS,$S(S2017:18.2,1:1.4),"E"))
.S PTHPHON=$$GETPTPH^PSOERXU7(PATIEN,S2017,"PT,HP")
;
I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
W !,$$TITLELN("PHARMACY INFORMATION")
I MTYPE="RR" D
.N NEWRXIEN
.S NEWRXIEN=$$RESOLV^PSOERXU2(PSOIEN)
.S:NEWRXIEN PHNCP=$$GET1^DIQ(52.49,NEWRXIEN,22.3)
I $D(PHARIENS) D
.W !,$$UP^XLFSTR(PHNM)
.W !,"Address: "_PHAD1
.W:$L(PHAD2) !," "_PHAD2
.W !," "_PHCTY_", "_PHST_" "_PHZIP
.S LTXT=""
.D ADDITEM^PSOERX1A(.LTXT,"Primary Phone: ",PHTEL,1,40)
.D ADDITEM^PSOERX1A(.LTXT,"NCPDP: ",PHNCP,42,26)
.W !,LTXT S LTXT=""
I '$D(PHARIENS) D
.W !,"Recipient pharmacy name and address missing."
.S LTXT=""
.D ADDITEM^PSOERX1A(.LTXT,"NCPDP: ",$G(PHNCP),1,26)
.W !!,LTXT S LTXT=""
I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
W !,$$TITLELN("PRESCRIBER INFORMATION")
W !,"Name: "_PRLNM_", "_PRFNM_" "_PRMNM
I $G(CLINIC)'="" W !,"Clinic: ",CLINIC
W !,"Address: "_PRAD1
I $L(PRAD2) W !," "_PRAD2
W !," "_PRCTY_", "_PRST_" "_PRZIP
W !,"NPI: "_PRNPI,?20,"DEA: "_PRDEA,?40,"State Lic: "_PRSTL
W !,"Primary Phone: "_$G(PRTEL),?40,"Fax: "_$G(PRFAX)
I $G(PRSUPER)'=""!($G(PRAGNTLN)'="") W !,"Supervisor: "_$G(PRSUPER) W:$G(PRAGNTLN)'="" ?45,"Agent: "_$G(PRAGNTLN)_", "_$G(PRAGNTFN)_" "_$G(PRAGNTMN)
I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
W !,$$TITLELN("PATIENT INFORMATION")
S LTXT=""
I $D(PATIENS) D
.W !,"Name: "_PTLNM_", "_PTFNM_" "_PTMNM
.W !,"DOB: ",PTDOB,?19,"Sex: ",PTGEN,?33,"Primary Phone: ",PTHPHON,?64,"SSN: ",PTSSN
.W !,"Address: "_PTAD1
.I $L(PTAD2) W !," "_PTAD2
.W !," "_PTCTY_", "_PTST_" "_PTZIP
.S LTXT=""
I S2017 D
.S PHW=$$BHW^PSOERXIU(PSOIEN) W !,PHW
I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
W !,$$TITLELN("PRESCRIPTION INFORMATION")
Q:$$SHORTPI^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)
W !,"Prescriber Order #: "_$$GET1^DIQ(52.49,PSOIEN,.09)
W !,"eRx Drug: "_$$GET1^DIQ(52.49,PSOIEN,3.1,"E")_" "_$P($$ERXDRSCH^PSOERXUT(+PSOIENS),"^",2)
W !,$$DRUGCODE(PSOIEN,+$G(MEDIEN))
S ERXWDATE=$$GET1^DIQ(52.49,PSOIEN,5.9,"E")
I 'S2017 W ?20,"Written Date: "_$$FMTE^XLFDT(ERXWDATE,"2D")
I S2017 D
.S ERXEFFDT=$$EFFDATE^PSOERXU5(PSOIEN,MEDIEN)
.W ?20,"Written Date: "_$$FMTE^XLFDT($P(ERXWDATE,"."),1)_" Issue Date: "_ERXEFFDT
W !,"Qty: ",$$GET1^DIQ(52.49,PSOIEN,5.1,"E"),?20,"Days Supply: ",$$GET1^DIQ(52.49,PSOIEN,5.5,"E")
I S2017 D
.S REFILL=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
.;setting 10.6 refill value
I 'S2017 D
.S REFILL=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
.I REFILL="" D
..S REFILL=$$GET1^DIQ(52.49,PSOIEN,5.7,"I")
; refills for a refill response is # of refills-1
I MTYPE="RE",REFILL S REFILL=REFILL-1
W ?45,"Refills: "_REFILL
I 'S2017 W !,"Code List Qualifier: "_$$GET1^DIQ(52.49,PSOIEN,5.2,"E")
I S2017 D
.N ERXQQ
.S ERXQQ=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",2.2,"I"),ERXQQ=$$GET1^DIQ(52.45,ERXQQ,.02,"E")
.W !,"Code List Qualifier: "_ERXQQ
W !,"Drug Form: "_$$GET1^DIQ(52.49,PSOIEN,41,"E")
W !,"Strength: "_$$GET1^DIQ(52.49,PSOIEN,43,"E")
S EXSTATUS=$$GET1^DIQ(52.49,PSOIEN,1,"E")
S ERXDSUB=$$GET1^DIQ(52.49,PSOIEN,5.8,"I")
S ERXDSUB=$S(ERXDSUB=1:"NO",ERXDSUB=0:"YES",1:"")
W !,"Substitutions?: "_ERXDSUB
I S2017 D
.I MTYPE="N"!((MTYPE="CX")&($$PROHIBIT^PSOERX1D(RESPVAL,CHGMESRI))) D
..S PROHIBIT=$$GET1^DIQ(52.49,PSOIEN,301.3,"I")
..S PROHIBIT=$S(PROHIBIT=1:"Yes",1:"No")
..W ?30,"Prohibit Renewals: "_PROHIBIT
I 'S2017 W !,"SIG: "_$$GET1^DIQ(52.49,PSOIEN,7,"E")
I S2017 D
.W !,"eRx Sig:"
.Q:$G(MEDIEN)=""
.S SGLOOP=0 F S SGLOOP=$O(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP)) Q:'SGLOOP D
..W !,$G(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP,0))
S PRVNOTES=$$GET1^DIQ(52.49,PSOIEN,8)
I PRVNOTES'="" W !,"Provider Comments: ",PRVNOTES
;
I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
;Prescriber Drug Use Evaluation
D PDUEDATA^PSOERXU9(.DUEINFO,PSOIEN,1)
I $D(DUEINFO) D
. S $P(DDOT,".",81)=""
. W !,$$TITLELN("PRESCRIBER DRUG USE EVALUATION")
. S DUECNT=0 F S DUECNT=$O(DUEINFO(DUECNT)) Q:'DUECNT D
. . W !,"Co-Agent: "_$P(DUEINFO(DUECNT),"^",8)
. . S REASON=$P(DUEINFO(DUECNT),"^",2) I $$PRESOLV^PSOERXA1(REASON,"REA") S REASON=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(REASON,"REA"),.02)
. . W !,"Reason: "_REASON
. . S RESULT=$P(DUEINFO(DUECNT),"^",4) I $$PRESOLV^PSOERXA1(RESULT,"RES") S RESULT=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(RESULT,"RES"),.02)
. . W !,"Result: "_RESULT
. . W !,"Override: "_$P(DUEINFO(DUECNT),"^",9)
. . I $O(DUEINFO(DUECNT)) W !,DDOT
. . I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
;Diagnosis Code
D GETDIAGS^PSOERUT3(PSOIEN,.ICDINFO)
I $D(ICDINFO) D
. S $P(DDOT,".",81)=""
. W !,$$TITLELN("DIAGNOSIS INFORMATION")
. S ICD=0 F S ICD=$O(ICDINFO(ICD)) Q:'ICD D
. . S ICDZ=ICDINFO(ICD)
. . W !,$S($P(ICDZ,"^")="P":"Primary",1:"Secondary")_" Dx:"
. . W !,$P(ICDZ,"^",2)_" "_$P(ICDZ,"^",3)
. . W !,$P(ICDZ,"^",4)
. . I $O(ICDINFO(ICD)) W !,DDOT
. . I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
;
K ^TMP("PSOERX1C",$J) M ^TMP("PSOERX1C",$J)=@VALMAR
W !!,"eRx Reference #: ",$$GET1^DIQ(52.49,PSOIEN,.01,"E")," Message ID: ",$$GET1^DIQ(52.49,PSOIEN,25,"E")
W LTXT S LTXT=""
S ERXDSUB=$$GET1^DIQ(52.49,PSOIEN,5.8,"I")
S ERXDSUB=$S(ERXDSUB=1:"NO",ERXDSUB=0:"YES",1:"")
;;BEGIN TEST
I MTYPE="CA"!(MTYPE="RR") D
.S LINE=1 K @VALMAR
.I MTYPE="CA" D CANREQ^PSOERXU5(CANREQ,.LINE,1),CANRES^PSOERXU5(CANREQ,.LINE,1),MSGHIS^PSOERXU3(CANREQ,.LINE)
.I MTYPE="RR" D
..I S2017 D MEDDIS^PSOERXU7(CANREQ,.LINE)
..I 'S2017 D MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
..D RRREQ^PSOERXU3(CANREQ,.LINE),RRRES^PSOERXU3(CANREQ,.LINE),MSGHIS^PSOERXU3(CANREQ,.LINE)
.S LOOP=0 F S LOOP=$O(@VALMAR@(LOOP)) Q:'LOOP D Q:$G(PSOQ)
..I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
..W !,$G(@VALMAR@(LOOP,0))
.K @VALMAR
I MTYPE="CN"!(MTYPE="RE") D
.S LINE=1 K @VALMAR
.I MTYPE="CN" D CANRES^PSOERXU5(CANRES,.LINE,1),CANREQ^PSOERXU5(CANRES,.LINE,1),MSGHIS^PSOERXU3(CANRES,.LINE)
.I MTYPE="RE" D
..S R2017=$$GET1^DIQ(52.49,CANREQ,312.1,"I")
..I 'S2017,'R2017 D MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
..I S2017,'R2017 D MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
..I S2017,R2017 D MEDDIS^PSOERXU7(CANREQ,.LINE)
..D RRRES^PSOERXU3(CANRES,.LINE),RRREQ^PSOERXU3(CANRES,.LINE),MSGHIS^PSOERXU3(CANRES,.LINE)
..S LOOP=0 F S LOOP=$O(@VALMAR@(LOOP)) Q:'LOOP D Q:$G(PSOQ)
...I '$D(ZTQUEUED),$Y>(IOSL-7) D PAUSE(.PSOQ) Q:$G(PSOQ)
...W !,$G(@VALMAR@(LOOP,0))
..K @VALMAR
I ",CX,CR,"[(","_MTYPE_",") D
.D CHGEND^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)
W !,$$TITLELN("END OF eRx")
K @VALMAR M @VALMAR=^TMP("PSOERX1C",$J) K ^TMP("PSOERX1C",$J)
D:'$D(ZTQUEUED) ^%ZISC
Q
;
TITLELN(TITLE) ; Title Line (Formats with _ around it, centered)
N TITLELN
S $P(TITLELN,"*",75)=""
S $E(TITLELN,(76-$L(TITLE))\2,(76-$L(TITLE))\2+$L(TITLE)-1)=TITLE
Q TITLELN
;
DISPCHK(CANREQ,LINE,S2017) ;
N REQ2017,MTYPE
S MTYPE=$$GET1^DIQ(52.49,CANREQ,.08,"I")
I MTYPE="RE" S REQ2017=$$GET1^DIQ(52.49,CANREQ,312.1,"I")
I $G(S2017),$G(REQ2017) D MEDDIS^PSOERXU7(CANREQ,.LINE) Q
D MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
Q
;
DRUGCODE(PSOIEN,MEDIEN) ; Returns the Drug Code (Print format: e.g.: "NDC: 1939994449")
N CODE,QUAL
S CODE=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",1.1,"I")
S QUAL=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",1.2,"E")
S:QUAL="ND" QUAL="NDC"
Q $S(CODE'="":QUAL_": "_CODE,1:"NDC:")
Q
;
REFSCRN ;refresh the screen
I $G(PRINTFLG)="VP" D HDR^PSOERXP1,INIT^PSOERXP1 Q ;Called from Validate Patient
I $G(PRINTFLG)="VM" D HDR^PSOERXR1,INIT^PSOERXR1 Q ;Called from Validate Provider
I $G(PRINTFLG)="VD" D HDR^PSOERXD1,INIT^PSOERXD1 Q ;Called from Validate Drug
I $G(OP) Q ;called from PSO ERX OP PRINT
D REF^PSOERSE1 ;the main PRINT
Q
;
PAUSE(PSOQ) ; pause screen display
; Input:
; PSOQ - var used to quit report processing to user CRT
; Output:
; PSOQ - passed by reference - 0 = Continue, 1 = Quit
;
N TRM,XX,I
S TRM=($E(IOST)="C")
I TRM D
. K DIR S DIR(0)="E" D ^DIR K DIR
. S:+Y=0 PSOQ=1
. F I=1:1:43 W $C(8)
. S $P(XX," ",43)="" W XX
. F I=1:1:43 W $C(8)
W #
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOERX1C 14199 printed Aug 26, 2025@22:44:18 Page 2
PSOERX1C ;ALB/BWF - eRx Utilities ; 11/27/2019 10:20am
+1 ;;7.0;OUTPATIENT PHARMACY;**467,520,527,508,551,581,617,646,700,746,769,770**;DEC 1997;Build 145
+2 ;
+3 QUIT
+4 ; select an item
PRINT(PSOIEN,OP) ;
+1 NEW %ZIS,POP,DIR,PSOQ
+2 SET OP=$GET(OP)
+3 SET PSOQ=0
+4 DO FULL^VALM1
+5 SET VALMBCK="R"
+6 SET %ZIS="Q"
SET %ZIS("B")=$GET(PSOPROP)
DO ^%ZIS
if POP
QUIT
+7 ; if queuing, queue it and quit.
+8 IF $DATA(IO("Q"))
Begin DoDot:1
+9 SET ZTSAVE("PSOIEN")=""
SET ZTSAVE("OP")=""
SET ZTSAVE("VALMAR")=""
SET ZTSAVE("VALMEVL")=""
+10 SET ZTRTN="PRINTQ^PSOERX1C(PSOIEN,OP)"
SET ZTDESC="eRx Print"
DO ^%ZTLOAD
+11 KILL ZTSAVE,ZTRTN
+12 DO TERM^VALM0
+13 DO REFSCRN
End DoDot:1
QUIT
+14 DO PRINTQ(PSOIEN,OP)
+15 IF '$GET(PSOQ)
KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
+16 DO TERM^VALM0
+17 DO REFSCRN
+18 QUIT
+19 ; fall through if no queueing
PRINTQ(PSOIEN,OP) ;
+1 NEW %ZIS,POP,RXDAT,PHARIEN,PRVIEN,PATIEN,PHARDAT,PRVDAT,PATDAT,PSOIENS,PHNM,PHAD1,PHAD2,PHCTY,LINE,LOOP,PROHIBIT,ERXWDATE
+2 NEW PHST,PHZIP,PHNCP,PHTEL,PRFNM,PRLNM,PRMNM,PRAD1,PRAD2,PRCTY,PRST,PRZIP,PRNPI,PRDEA,PRSTL,LTXT,MTYPE,NEWRXIEN,ERXEFFDT,PHW,SGLOOP
+3 NEW PRTEL,PRFAX,PRSUPER,PRAGNT,PTLNM,PTFNM,PTMNM,PTAD1,PTAD2,PTCTY,PTST,PTZIP,PTDOB,PTGEN,PTHPHON,S2017,MEDIEN,R2017
+4 NEW PHARIENS,PATIENS,PRVIENS,PTSSN,PRAGNTFN,PRAGNTMN,PRAGNTLN,TYPE,VALUE,SIEN,REFILL,IENS,CANREQ,CANRES,ERXDSUB,EXSTATUS
+5 NEW CHGMESRI,CHGMESRQ,RESPVAL,DRUGCODE,PRVNOTES,DUEINFO,DDOT,DUECNT,REASON,RESULT,ICDINFO,ICD,ICDZ,CLINIC
+6 SET IOINHI=$GET(IOINHI)
SET IOINORM=$GET(IOINORM)
SET IOUON=$GET(IOUON)
SET IOUOFF=$GET(IOUOFF)
SET IORVON=$GET(IORVON)
SET IORVOFF=$GET(IORVOFF)
+7 SET OP=$GET(OP,"")
+8 SET PSOIEN=$GET(PSOIEN)
+9 IF '$GET(PSOIEN)
Begin DoDot:1
+10 IF $DATA(RXOR)
SET PSOIEN=$$CHKERX^PSOERXU1($PIECE(RXOR,U,2))
if PSOIEN
QUIT
+11 IF $DATA(OR0)
SET PSOIEN=$$CHKERX^PSOERXU1(OR0)
End DoDot:1
+12 if '$GET(PSOIEN)
QUIT
+13 SET MTYPE=$$GET1^DIQ(52.49,PSOIEN,.08,"I")
+14 SET CHGMESRQ=$$GET1^DIQ(52.49,PSOIEN,315.1,"I")
+15 SET CHGMESRI=$$GET1^DIQ(52.45,CHGMESRQ,.01,"I")
+16 SET RESPVAL=$$GET1^DIQ(52.49,PSOIEN,52.1,"E")
+17 IF MTYPE="CN"!(MTYPE="RE")!(MTYPE="IE")
Begin DoDot:1
+18 SET CANRES=PSOIEN
+19 SET CANREQ=$$GETREQ^PSOERXU2(PSOIEN)
+20 IF $GET(CANREQ)
Begin DoDot:2
+21 SET NEWRXIEN=$$RESOLV^PSOERXU2(CANREQ)
+22 ; if there is no NewRx related to this request, pull the data from the cancel request itself.
+23 IF '$PIECE(NEWRXIEN,U)
SET NEWRXIEN=$GET(CANREQ)
End DoDot:2
End DoDot:1
+24 IF MTYPE="CA"!(MTYPE="RR")
Begin DoDot:1
+25 SET CANREQ=PSOIEN
SET CANRES=$$GETRESP^PSOERXU2(CANREQ)
+26 SET NEWRXIEN=$$RESOLV^PSOERXU2(CANREQ)
+27 IF '$PIECE(NEWRXIEN,U)
SET NEWRXIEN=$GET(CANREQ)
End DoDot:1
+28 ; if we found the newrxien because of a different message type, reset PSOIEN to pull rx info from the newrx.
+29 SET S2017=$$GET1^DIQ(52.49,PSOIEN,312.1,"I")
+30 IF S2017
Begin DoDot:1
+31 IF MTYPE'="RE"
Begin DoDot:2
+32 SET MEDIEN=$ORDER(^PS(52.49,PSOIEN,311,"C","P",0))
End DoDot:2
+33 IF MTYPE="RE"
Begin DoDot:2
+34 SET MEDIEN=$ORDER(^PS(52.49,PSOIEN,311,"C","MR",0))
End DoDot:2
End DoDot:1
+35 SET PSOIENS=PSOIEN_","
+36 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+37 USE IO
+38 DO GETS^DIQ(52.49,PSOIENS,".04;.08;2.1;2.5","I","RXDAT")
+39 SET PHARIEN=$GET(RXDAT(52.49,PSOIENS,2.5,"I"))
+40 if PHARIEN
SET PHARIENS=PHARIEN_","
+41 SET PRVIEN=$GET(RXDAT(52.49,PSOIENS,2.1,"I"))
+42 if PRVIEN
SET PRVIENS=PRVIEN_","
+43 SET PATIEN=$GET(RXDAT(52.49,PSOIENS,.04,"I"))
+44 if PATIEN
SET PATIENS=PATIEN_","
+45 IF $DATA(PHARIENS)
DO GETS^DIQ(52.47,PHARIENS,"**","E","PHARDAT")
+46 IF $DATA(PRVIENS)
DO GETS^DIQ(52.48,PRVIENS,"**","E","PRVDAT")
+47 IF $DATA(PATIENS)
DO GETS^DIQ(52.46,PATIENS,"**","E","PATDAT")
+48 ; pharmacy information
+49 IF $DATA(PHARIENS)
Begin DoDot:1
+50 SET PHNM=$GET(PHARDAT(52.47,PHARIENS,.05,"E"))
+51 SET PHAD1=$GET(PHARDAT(52.47,PHARIENS,1.1,"E"))
+52 SET PHAD2=$GET(PHARDAT(52.47,PHARIENS,1.2,"E"))
+53 SET PHCTY=$GET(PHARDAT(52.47,PHARIENS,1.3,"E"))
+54 SET PHST=$GET(PHARDAT(52.47,PHARIENS,1.4,"E"))
+55 SET PHZIP=$GET(PHARDAT(52.47,PHARIENS,1.5,"E"))
+56 IF S2017
Begin DoDot:2
+57 SET PHNCP=$GET(PHARDAT(52.47,PHARIENS,10.1,"E"))
+58 ; Add extension
SET PHTEL=$$COMMVAL^PSOERXU5(PHARIEN,52.47,7,"PT",1)
End DoDot:2
+59 IF 'S2017
Begin DoDot:2
+60 SET PHNCP=$GET(PHARDAT(52.47,PHARIENS,.02,"E"))
+61 SET PHTEL=$$COMMVAL^PSOERXU5(PHARIEN,52.47,7,"PT",1)
End DoDot:2
End DoDot:1
+62 ; provider information
+63 IF $DATA(PRVIENS)
Begin DoDot:1
+64 SET PRFNM=$GET(PRVDAT(52.48,PRVIENS,.03,"E"))
+65 SET PRMNM=$GET(PRVDAT(52.48,PRVIENS,.04,"E"))
+66 SET PRLNM=$GET(PRVDAT(52.48,PRVIENS,.02,"E"))
+67 SET PRAD1=$GET(PRVDAT(52.48,PRVIENS,4.1,"E"))
+68 SET PRAD2=$GET(PRVDAT(52.48,PRVIENS,4.2,"E"))
+69 SET PRCTY=$GET(PRVDAT(52.48,PRVIENS,4.3,"E"))
+70 SET PRST=$GET(PRVDAT(52.48,PRVIENS,4.4,"E"))
+71 SET PRZIP=$GET(PRVDAT(52.48,PRVIENS,4.5,"E"))
+72 IF S2017
Begin DoDot:2
+73 SET PRNPI=$GET(PRVDAT(52.48,PRVIENS,15.1,"E"))
+74 SET PRDEA=$GET(PRVDAT(52.48,PRVIENS,14.5,"E"))
+75 SET PRSTL=$GET(PRVDAT(52.48,PRVIENS,14.1,"E"))
End DoDot:2
+76 IF 'S2017
Begin DoDot:2
+77 SET PRNPI=$GET(PRVDAT(52.48,PRVIENS,1.5,"E"))
+78 SET PRDEA=$GET(PRVDAT(52.48,PRVIENS,1.6,"E"))
+79 SET PRSTL=$GET(PRVDAT(52.48,PRVIENS,1.8,"E"))
End DoDot:2
+80 IF '$GET(NEWRXIEN)
SET PRSUPER=$$GET1^DIQ(52.49,PSOIEN,2.6,"E")
+81 IF $GET(NEWRXIEN)
SET PRSUPER=$$GET1^DIQ(52.49,NEWRXIEN,2.6,"E")
+82 SET PRAGNTFN=$$GET1^DIQ(52.48,PRVIEN,5.2,"E")
+83 SET PRAGNTMN=$$GET1^DIQ(52.48,PRVIEN,5.3,"E")
+84 SET PRAGNTLN=$$GET1^DIQ(52.48,PRVIEN,5.1,"E")
+85 IF S2017
Begin DoDot:2
+86 ; Add extension
SET PRTEL=$$COMMVAL^PSOERXU5(PRVIEN,52.48,11,"PT",1)
+87 ; Add extension
SET PRFAX=$$COMMVAL^PSOERXU5(PRVIEN,52.48,11,"F",1)
End DoDot:2
+88 IF 'S2017
Begin DoDot:2
+89 SET SIEN=0
+90 FOR
SET SIEN=$ORDER(^PS(52.48,PRVIEN,3,SIEN))
if 'SIEN
QUIT
Begin DoDot:3
+91 SET IENS=SIEN_","_PRVIEN_","
+92 SET TYPE=$$GET1^DIQ(52.483,IENS,.02)
+93 SET VALUE=$$GET1^DIQ(52.483,IENS,.01)
+94 Begin DoDot:4
+95 IF TYPE="FAX"
SET PRFAX=VALUE
QUIT
+96 IF TYPE="TELEPHONE"
SET PRTEL=VALUE
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+97 IF '$DATA(PRVIENS)
Begin DoDot:1
+98 SET (PRFNM,PRMNM,PRLNM,PRAD1,PRAD2,PRCTY,PRST,PRZIP)=""
+99 SET (PRNPI,PRDEA,PRSTL)=""
+100 IF '$GET(NEWRXIEN)
SET PRSUPER=$$GET1^DIQ(52.49,PSOIEN,2.6,"E")
+101 IF $GET(NEWRXIEN)
SET PRSUPER=$$GET1^DIQ(52.49,NEWRXIEN,2.6,"E")
+102 SET (PRAGNTFN,PRAGNTMN,PRAGNTLN)=""
+103 SET (PRTEL,PRFAX)=""
End DoDot:1
+104 SET CLINIC=$$GET1^DIQ(52.48,PRVIEN,18.6)
+105 ; patient information
+106 IF $DATA(PATIENS)
Begin DoDot:1
+107 SET PTLNM=$GET(PATDAT(52.46,PATIENS,.02,"E"))
+108 SET PTMNM=$GET(PATDAT(52.46,PATIENS,.04,"E"))
+109 SET PTFNM=$GET(PATDAT(52.46,PATIENS,.03,"E"))
+110 SET PTAD1=$GET(PATDAT(52.46,PATIENS,3.1,"E"))
+111 SET PTAD2=$GET(PATDAT(52.46,PATIENS,3.2,"E"))
+112 SET PTCTY=$GET(PATDAT(52.46,PATIENS,3.3,"E"))
+113 SET PTST=$GET(PATDAT(52.46,PATIENS,3.4,"E"))
+114 SET PTZIP=$GET(PATDAT(52.46,PATIENS,3.5,"E"))
+115 SET PTDOB=$GET(PATDAT(52.46,PATIENS,.08,"E"))
+116 SET PTGEN=$GET(PATDAT(52.46,PATIENS,.07,"E"))
+117 SET PTSSN=$GET(PATDAT(52.46,PATIENS,$SELECT(S2017:18.2,1:1.4),"E"))
+118 SET PTHPHON=$$GETPTPH^PSOERXU7(PATIEN,S2017,"PT,HP")
End DoDot:1
+119 ;
+120 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+121 WRITE !,$$TITLELN("PHARMACY INFORMATION")
+122 IF MTYPE="RR"
Begin DoDot:1
+123 NEW NEWRXIEN
+124 SET NEWRXIEN=$$RESOLV^PSOERXU2(PSOIEN)
+125 if NEWRXIEN
SET PHNCP=$$GET1^DIQ(52.49,NEWRXIEN,22.3)
End DoDot:1
+126 IF $DATA(PHARIENS)
Begin DoDot:1
+127 WRITE !,$$UP^XLFSTR(PHNM)
+128 WRITE !,"Address: "_PHAD1
+129 if $LENGTH(PHAD2)
WRITE !," "_PHAD2
+130 WRITE !," "_PHCTY_", "_PHST_" "_PHZIP
+131 SET LTXT=""
+132 DO ADDITEM^PSOERX1A(.LTXT,"Primary Phone: ",PHTEL,1,40)
+133 DO ADDITEM^PSOERX1A(.LTXT,"NCPDP: ",PHNCP,42,26)
+134 WRITE !,LTXT
SET LTXT=""
End DoDot:1
+135 IF '$DATA(PHARIENS)
Begin DoDot:1
+136 WRITE !,"Recipient pharmacy name and address missing."
+137 SET LTXT=""
+138 DO ADDITEM^PSOERX1A(.LTXT,"NCPDP: ",$GET(PHNCP),1,26)
+139 WRITE !!,LTXT
SET LTXT=""
End DoDot:1
+140 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+141 WRITE !,$$TITLELN("PRESCRIBER INFORMATION")
+142 WRITE !,"Name: "_PRLNM_", "_PRFNM_" "_PRMNM
+143 IF $GET(CLINIC)'=""
WRITE !,"Clinic: ",CLINIC
+144 WRITE !,"Address: "_PRAD1
+145 IF $LENGTH(PRAD2)
WRITE !," "_PRAD2
+146 WRITE !," "_PRCTY_", "_PRST_" "_PRZIP
+147 WRITE !,"NPI: "_PRNPI,?20,"DEA: "_PRDEA,?40,"State Lic: "_PRSTL
+148 WRITE !,"Primary Phone: "_$GET(PRTEL),?40,"Fax: "_$GET(PRFAX)
+149 IF $GET(PRSUPER)'=""!($GET(PRAGNTLN)'="")
WRITE !,"Supervisor: "_$GET(PRSUPER)
if $GET(PRAGNTLN)'=""
WRITE ?45,"Agent: "_$GET(PRAGNTLN)_", "_$GET(PRAGNTFN)_" "_$GET(PRAGNTMN)
+150 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+151 WRITE !,$$TITLELN("PATIENT INFORMATION")
+152 SET LTXT=""
+153 IF $DATA(PATIENS)
Begin DoDot:1
+154 WRITE !,"Name: "_PTLNM_", "_PTFNM_" "_PTMNM
+155 WRITE !,"DOB: ",PTDOB,?19,"Sex: ",PTGEN,?33,"Primary Phone: ",PTHPHON,?64,"SSN: ",PTSSN
+156 WRITE !,"Address: "_PTAD1
+157 IF $LENGTH(PTAD2)
WRITE !," "_PTAD2
+158 WRITE !," "_PTCTY_", "_PTST_" "_PTZIP
+159 SET LTXT=""
End DoDot:1
+160 IF S2017
Begin DoDot:1
+161 SET PHW=$$BHW^PSOERXIU(PSOIEN)
WRITE !,PHW
End DoDot:1
+162 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+163 WRITE !,$$TITLELN("PRESCRIPTION INFORMATION")
+164 if $$SHORTPI^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)
QUIT
+165 WRITE !,"Prescriber Order #: "_$$GET1^DIQ(52.49,PSOIEN,.09)
+166 WRITE !,"eRx Drug: "_$$GET1^DIQ(52.49,PSOIEN,3.1,"E")_" "_$PIECE($$ERXDRSCH^PSOERXUT(+PSOIENS),"^",2)
+167 WRITE !,$$DRUGCODE(PSOIEN,+$GET(MEDIEN))
+168 SET ERXWDATE=$$GET1^DIQ(52.49,PSOIEN,5.9,"E")
+169 IF 'S2017
WRITE ?20,"Written Date: "_$$FMTE^XLFDT(ERXWDATE,"2D")
+170 IF S2017
Begin DoDot:1
+171 SET ERXEFFDT=$$EFFDATE^PSOERXU5(PSOIEN,MEDIEN)
+172 WRITE ?20,"Written Date: "_$$FMTE^XLFDT($PIECE(ERXWDATE,"."),1)_" Issue Date: "_ERXEFFDT
End DoDot:1
+173 WRITE !,"Qty: ",$$GET1^DIQ(52.49,PSOIEN,5.1,"E"),?20,"Days Supply: ",$$GET1^DIQ(52.49,PSOIEN,5.5,"E")
+174 IF S2017
Begin DoDot:1
+175 SET REFILL=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
+176 ;setting 10.6 refill value
End DoDot:1
+177 IF 'S2017
Begin DoDot:1
+178 SET REFILL=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
+179 IF REFILL=""
Begin DoDot:2
+180 SET REFILL=$$GET1^DIQ(52.49,PSOIEN,5.7,"I")
End DoDot:2
End DoDot:1
+181 ; refills for a refill response is # of refills-1
+182 IF MTYPE="RE"
IF REFILL
SET REFILL=REFILL-1
+183 WRITE ?45,"Refills: "_REFILL
+184 IF 'S2017
WRITE !,"Code List Qualifier: "_$$GET1^DIQ(52.49,PSOIEN,5.2,"E")
+185 IF S2017
Begin DoDot:1
+186 NEW ERXQQ
+187 SET ERXQQ=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",2.2,"I")
SET ERXQQ=$$GET1^DIQ(52.45,ERXQQ,.02,"E")
+188 WRITE !,"Code List Qualifier: "_ERXQQ
End DoDot:1
+189 WRITE !,"Drug Form: "_$$GET1^DIQ(52.49,PSOIEN,41,"E")
+190 WRITE !,"Strength: "_$$GET1^DIQ(52.49,PSOIEN,43,"E")
+191 SET EXSTATUS=$$GET1^DIQ(52.49,PSOIEN,1,"E")
+192 SET ERXDSUB=$$GET1^DIQ(52.49,PSOIEN,5.8,"I")
+193 SET ERXDSUB=$SELECT(ERXDSUB=1:"NO",ERXDSUB=0:"YES",1:"")
+194 WRITE !,"Substitutions?: "_ERXDSUB
+195 IF S2017
Begin DoDot:1
+196 IF MTYPE="N"!((MTYPE="CX")&($$PROHIBIT^PSOERX1D(RESPVAL,CHGMESRI)))
Begin DoDot:2
+197 SET PROHIBIT=$$GET1^DIQ(52.49,PSOIEN,301.3,"I")
+198 SET PROHIBIT=$SELECT(PROHIBIT=1:"Yes",1:"No")
+199 WRITE ?30,"Prohibit Renewals: "_PROHIBIT
End DoDot:2
End DoDot:1
+200 IF 'S2017
WRITE !,"SIG: "_$$GET1^DIQ(52.49,PSOIEN,7,"E")
+201 IF S2017
Begin DoDot:1
+202 WRITE !,"eRx Sig:"
+203 if $GET(MEDIEN)=""
QUIT
+204 SET SGLOOP=0
FOR
SET SGLOOP=$ORDER(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP))
if 'SGLOOP
QUIT
Begin DoDot:2
+205 WRITE !,$GET(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP,0))
End DoDot:2
End DoDot:1
+206 SET PRVNOTES=$$GET1^DIQ(52.49,PSOIEN,8)
+207 IF PRVNOTES'=""
WRITE !,"Provider Comments: ",PRVNOTES
+208 ;
+209 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+210 ;Prescriber Drug Use Evaluation
+211 DO PDUEDATA^PSOERXU9(.DUEINFO,PSOIEN,1)
+212 IF $DATA(DUEINFO)
Begin DoDot:1
+213 SET $PIECE(DDOT,".",81)=""
+214 WRITE !,$$TITLELN("PRESCRIBER DRUG USE EVALUATION")
+215 SET DUECNT=0
FOR
SET DUECNT=$ORDER(DUEINFO(DUECNT))
if 'DUECNT
QUIT
Begin DoDot:2
+216 WRITE !,"Co-Agent: "_$PIECE(DUEINFO(DUECNT),"^",8)
+217 SET REASON=$PIECE(DUEINFO(DUECNT),"^",2)
IF $$PRESOLV^PSOERXA1(REASON,"REA")
SET REASON=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(REASON,"REA"),.02)
+218 WRITE !,"Reason: "_REASON
+219 SET RESULT=$PIECE(DUEINFO(DUECNT),"^",4)
IF $$PRESOLV^PSOERXA1(RESULT,"RES")
SET RESULT=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(RESULT,"RES"),.02)
+220 WRITE !,"Result: "_RESULT
+221 WRITE !,"Override: "_$PIECE(DUEINFO(DUECNT),"^",9)
+222 IF $ORDER(DUEINFO(DUECNT))
WRITE !,DDOT
+223 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
End DoDot:2
End DoDot:1
+224 ;Diagnosis Code
+225 DO GETDIAGS^PSOERUT3(PSOIEN,.ICDINFO)
+226 IF $DATA(ICDINFO)
Begin DoDot:1
+227 SET $PIECE(DDOT,".",81)=""
+228 WRITE !,$$TITLELN("DIAGNOSIS INFORMATION")
+229 SET ICD=0
FOR
SET ICD=$ORDER(ICDINFO(ICD))
if 'ICD
QUIT
Begin DoDot:2
+230 SET ICDZ=ICDINFO(ICD)
+231 WRITE !,$SELECT($PIECE(ICDZ,"^")="P":"Primary",1:"Secondary")_" Dx:"
+232 WRITE !,$PIECE(ICDZ,"^",2)_" "_$PIECE(ICDZ,"^",3)
+233 WRITE !,$PIECE(ICDZ,"^",4)
+234 IF $ORDER(ICDINFO(ICD))
WRITE !,DDOT
+235 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
End DoDot:2
End DoDot:1
+236 ;
+237 KILL ^TMP("PSOERX1C",$JOB)
MERGE ^TMP("PSOERX1C",$JOB)=@VALMAR
+238 WRITE !!,"eRx Reference #: ",$$GET1^DIQ(52.49,PSOIEN,.01,"E")," Message ID: ",$$GET1^DIQ(52.49,PSOIEN,25,"E")
+239 WRITE LTXT
SET LTXT=""
+240 SET ERXDSUB=$$GET1^DIQ(52.49,PSOIEN,5.8,"I")
+241 SET ERXDSUB=$SELECT(ERXDSUB=1:"NO",ERXDSUB=0:"YES",1:"")
+242 ;;BEGIN TEST
+243 IF MTYPE="CA"!(MTYPE="RR")
Begin DoDot:1
+244 SET LINE=1
KILL @VALMAR
+245 IF MTYPE="CA"
DO CANREQ^PSOERXU5(CANREQ,.LINE,1)
DO CANRES^PSOERXU5(CANREQ,.LINE,1)
DO MSGHIS^PSOERXU3(CANREQ,.LINE)
+246 IF MTYPE="RR"
Begin DoDot:2
+247 IF S2017
DO MEDDIS^PSOERXU7(CANREQ,.LINE)
+248 IF 'S2017
DO MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
+249 DO RRREQ^PSOERXU3(CANREQ,.LINE)
DO RRRES^PSOERXU3(CANREQ,.LINE)
DO MSGHIS^PSOERXU3(CANREQ,.LINE)
End DoDot:2
+250 SET LOOP=0
FOR
SET LOOP=$ORDER(@VALMAR@(LOOP))
if 'LOOP
QUIT
Begin DoDot:2
+251 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+252 WRITE !,$GET(@VALMAR@(LOOP,0))
End DoDot:2
if $GET(PSOQ)
QUIT
+253 KILL @VALMAR
End DoDot:1
+254 IF MTYPE="CN"!(MTYPE="RE")
Begin DoDot:1
+255 SET LINE=1
KILL @VALMAR
+256 IF MTYPE="CN"
DO CANRES^PSOERXU5(CANRES,.LINE,1)
DO CANREQ^PSOERXU5(CANRES,.LINE,1)
DO MSGHIS^PSOERXU3(CANRES,.LINE)
+257 IF MTYPE="RE"
Begin DoDot:2
+258 SET R2017=$$GET1^DIQ(52.49,CANREQ,312.1,"I")
+259 IF 'S2017
IF 'R2017
DO MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
+260 IF S2017
IF 'R2017
DO MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
+261 IF S2017
IF R2017
DO MEDDIS^PSOERXU7(CANREQ,.LINE)
+262 DO RRRES^PSOERXU3(CANRES,.LINE)
DO RRREQ^PSOERXU3(CANRES,.LINE)
DO MSGHIS^PSOERXU3(CANRES,.LINE)
+263 SET LOOP=0
FOR
SET LOOP=$ORDER(@VALMAR@(LOOP))
if 'LOOP
QUIT
Begin DoDot:3
+264 IF '$DATA(ZTQUEUED)
IF $Y>(IOSL-7)
DO PAUSE(.PSOQ)
if $GET(PSOQ)
QUIT
+265 WRITE !,$GET(@VALMAR@(LOOP,0))
End DoDot:3
if $GET(PSOQ)
QUIT
+266 KILL @VALMAR
End DoDot:2
End DoDot:1
+267 IF ",CX,CR,"[(","_MTYPE_",")
Begin DoDot:1
+268 DO CHGEND^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)
End DoDot:1
+269 WRITE !,$$TITLELN("END OF eRx")
+270 KILL @VALMAR
MERGE @VALMAR=^TMP("PSOERX1C",$JOB)
KILL ^TMP("PSOERX1C",$JOB)
+271 if '$DATA(ZTQUEUED)
DO ^%ZISC
+272 QUIT
+273 ;
TITLELN(TITLE) ; Title Line (Formats with _ around it, centered)
+1 NEW TITLELN
+2 SET $PIECE(TITLELN,"*",75)=""
+3 SET $EXTRACT(TITLELN,(76-$LENGTH(TITLE))\2,(76-$LENGTH(TITLE))\2+$LENGTH(TITLE)-1)=TITLE
+4 QUIT TITLELN
+5 ;
DISPCHK(CANREQ,LINE,S2017) ;
+1 NEW REQ2017,MTYPE
+2 SET MTYPE=$$GET1^DIQ(52.49,CANREQ,.08,"I")
+3 IF MTYPE="RE"
SET REQ2017=$$GET1^DIQ(52.49,CANREQ,312.1,"I")
+4 IF $GET(S2017)
IF $GET(REQ2017)
DO MEDDIS^PSOERXU7(CANREQ,.LINE)
QUIT
+5 DO MEDDIS^PSOERXU3(CANREQ,"D",.LINE)
+6 QUIT
+7 ;
DRUGCODE(PSOIEN,MEDIEN) ; Returns the Drug Code (Print format: e.g.: "NDC: 1939994449")
+1 NEW CODE,QUAL
+2 SET CODE=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",1.1,"I")
+3 SET QUAL=$$GET1^DIQ(52.49311,MEDIEN_","_PSOIEN_",",1.2,"E")
+4 if QUAL="ND"
SET QUAL="NDC"
+5 QUIT $SELECT(CODE'="":QUAL_": "_CODE,1:"NDC:")
+6 QUIT
+7 ;
REFSCRN ;refresh the screen
+1 ;Called from Validate Patient
IF $GET(PRINTFLG)="VP"
DO HDR^PSOERXP1
DO INIT^PSOERXP1
QUIT
+2 ;Called from Validate Provider
IF $GET(PRINTFLG)="VM"
DO HDR^PSOERXR1
DO INIT^PSOERXR1
QUIT
+3 ;Called from Validate Drug
IF $GET(PRINTFLG)="VD"
DO HDR^PSOERXD1
DO INIT^PSOERXD1
QUIT
+4 ;called from PSO ERX OP PRINT
IF $GET(OP)
QUIT
+5 ;the main PRINT
DO REF^PSOERSE1
+6 QUIT
+7 ;
PAUSE(PSOQ) ; pause screen display
+1 ; Input:
+2 ; PSOQ - var used to quit report processing to user CRT
+3 ; Output:
+4 ; PSOQ - passed by reference - 0 = Continue, 1 = Quit
+5 ;
+6 NEW TRM,XX,I
+7 SET TRM=($EXTRACT(IOST)="C")
+8 IF TRM
Begin DoDot:1
+9 KILL DIR
SET DIR(0)="E"
DO ^DIR
KILL DIR
+10 if +Y=0
SET PSOQ=1
+11 FOR I=1:1:43
WRITE $CHAR(8)
+12 SET $PIECE(XX," ",43)=""
WRITE XX
+13 FOR I=1:1:43
WRITE $CHAR(8)
End DoDot:1
+14 WRITE #
+15 QUIT
+16 ;