Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSOERX1G

PSOERX1G.m

Go to the documentation of this file.
  1. PSOERX1G ;ALB/MFR - eRx Holding Queue Rx View INIT section ;Aug 14, 2020@12:43:34
  1. ;;7.0;OUTPATIENT PHARMACY;**617,646,689,700,743**;DEC 1997;Build 24
  1. ;
  1. INIT ;
  1. N PATIEN,PHARMIEN,PRVIEN,PHDAT,PATDAT,SUPDAT,PRVDAT,LINE,PRVLNM,PRVMI,PRVFN,EPAT,EPATDOB,VPATIEN,HARY,HL,PROHIBIT,ERXWRDT
  1. N VPATNM,VPATDOB,EPRVIEN,EPRVNM,EPRVNPI,EPRVDEA,VAPRVIEN,VAPRVNM,VAPRVNPI,VAPRVDEA,SUPIEN,ERXDRUG,ERXQTY,ERXFLS,CSCOMM,MEDIEN
  1. N ERXDS,ERXDT,VADRGIEN,VADRG,LINETXT,ERXCOMM,ERXRFLS,PATIENS,VAHREA,VAQTY,VAREF,VASIG,PATDAT,CURSTATE,CURSTATI,WDATE,RRNRXIEN
  1. N LHFOUND,LHMATCH,LHSTATI,VAPDEAEX,ERXCOMM,COMFRST,COMARY,SIGDATA,SIGLOOP,SFIRSPROT,SGLOOP,SIGARY,VADAYS,NRXIEN
  1. N SLOOP,VASIG,VASARY,FSSIG,VAHSTA,EDIRECT,VAHPER,PAMANVAL,DRMANVAL,PRMANVAL,VPATINST,VAPIARY,VLOOP,FSVPIN,S2017,NEWRXIEN
  1. N DRGARY,DLP,MTYPE,MTYPEE,ERXSTAT,STATIEN,PDIAGTXT,SDIAGTXT,RELIEN,RELMTYPE,ERRIEN,LERXSTAT,LOPSTAT,OPIEN,ERXDSUB,COM,EXSTATUS,R2017,REQIEN
  1. N SFIRST,PATPT,EPRVPT,CIEN,CHGMESRI,CHGMESRQ,NO311,RESPVAL,ERRFLG,PSNF
  1. S LINE=0
  1. ; set the standard field
  1. S S2017=$$GET1^DIQ(52.49,PSOIEN,312.1,"I")
  1. S MTYPE=$$GET1^DIQ(52.49,PSOIEN,.08,"I")
  1. S MTYPEE=$$GET1^DIQ(52.49,PSOIEN,.08,"E")
  1. S STATIEN=$$GET1^DIQ(52.49,PSOIEN,1,"I")
  1. S ERXSTAT=$$GET1^DIQ(52.45,STATIEN,.02,"E")
  1. I MTYPE="IE" D
  1. .I ",ERROR,CANCEL RESPONSE/INBOUND ERROR,"[(","_ERXSTAT_",") S ERRFLG=1 Q
  1. .I ",RXCHANGE REQUEST ERROR,RXRENEWAL REQUEST ERROR,"[(","_ERXSTAT_",") S ERRFLG=1 Q
  1. .I ",INBOUND RXCHANGE ERROR ACKNOWLEDGED,INBOUND RXRENEWAL ERROR ACKNOWLEDGED,"[(","_ERXSTAT_",") S ERRFLG=1 Q
  1. .S ERRFLG=0
  1. I MTYPE'="IE" S ERRFLG=0
  1. S PATIEN=$$GET1^DIQ(52.49,PSOIEN,.04,"I") I 'PATIEN S PATIEN=$$GETPAT^PSOERXU5(PSOIEN)
  1. S PATIENS=PATIEN_","
  1. D GETS^DIQ(52.46,PATIENS,"**","IE","PATDAT")
  1. I 'ERRFLG D
  1. .S EPAT=$G(PATDAT(52.46,PATIENS,.01,"E"))
  1. .S EPATDOB=$G(PATDAT(52.46,PATIENS,.08,"I")),EPATDOB=$$FMTE^XLFDT(EPATDOB,"2D")
  1. I ERRFLG D
  1. .S (EPAT,EPATDOB)=""
  1. S VPATIEN=$$GET1^DIQ(52.49,PSOIEN,.05,"I")
  1. S VPATNM=$S(VPATIEN&'ERRFLG:$$GET1^DIQ(2,VPATIEN,.01,"E"),1:"NOT LINKED")
  1. S VPATDOB=$S(VPATIEN&'ERRFLG:$$GET1^DIQ(2,VPATIEN,.03,"I"),1:"N/A")
  1. I VPATDOB S VPATDOB=$$FMTE^XLFDT(VPATDOB,"2D")
  1. S PHARMIEN=$$GET1^DIQ(52.49,PSOIEN,2.5,"I")
  1. D GETS^DIQ(52.47,PHARMIEN,"**","E","PHDAT")
  1. S EPRVIEN=$$GET1^DIQ(52.49,PSOIEN,2.1,"I") I 'EPRVIEN S EPRVIEN=$$GETPROV^PSOERXU5(PSOIEN)
  1. S EPRVNM=$$GET1^DIQ(52.48,EPRVIEN,.01,"E")
  1. ; erx provider primary phone 2017071
  1. I S2017 D
  1. .S EPRVPT=$$COMMVAL^PSOERXU5(EPRVIEN,52.48,11,"PT",1)
  1. I 'S2017 D
  1. .N IENS,TYPE,EXT
  1. .S EPRVPT="",CIEN=$O(^PS(52.48,EPRVIEN,3,"C","TE",0))
  1. .I CIEN D
  1. ..S IENS=CIEN_","_EPRVIEN_","
  1. ..S EPRVPT=$$GET1^DIQ(52.483,IENS,.01,"I")
  1. .I 'CIEN D
  1. ..S CIEN=0
  1. ..F S CIEN=$O(^PS(52.48,EPRVIEN,3,CIEN)) Q:CIEN'?1.N D Q:EPRVPT]""
  1. ...S IENS=CIEN_","_EPRVIEN_","
  1. ...S EPRVPT=$$GET1^DIQ(52.483,IENS,.01,"I")
  1. ...S TYPE=$$GET1^DIQ(52.483,IENS,.02,"I")
  1. ...S:TYPE="EM" EPRVPT=""
  1. .I EPRVPT]"" D
  1. ..S EXT=$$GET1^DIQ(52.483,IENS,.03,"I")
  1. ..S:EXT]"" EPRVPT=EPRVPT_"X"_EXT
  1. I 'S2017 S EPRVNPI=$$GET1^DIQ(52.48,EPRVIEN,1.5,"E")
  1. I S2017 S EPRVNPI=$$GET1^DIQ(52.48,EPRVIEN,15.1,"E")
  1. S EPRVDEA=$$GET1^DIQ(52.48,EPRVIEN,1.6,"E")
  1. S VAPRVIEN=$$GET1^DIQ(52.49,PSOIEN,2.3,"I")
  1. S ERXWRDT=$$GET1^DIQ(52.49,PSOIEN,5.9,"I")
  1. S VAPRVNM=$S(VAPRVIEN:$$GET1^DIQ(200,VAPRVIEN,.01,"E"),1:"NOT LINKED")
  1. S VAPRVNPI=$S(VAPRVIEN:$$GET1^DIQ(200,VAPRVIEN,41.99,"E"),1:"N/A")
  1. S VAPRVDEA=$S(VAPRVIEN:$P($$VADEA^PSOERXU8(VAPRVIEN,PSOIEN),"^",2),1:"N/A") ; PSO*7*743
  1. D GETS^DIQ(52.48,EPRVIEN,"**","E","PRVDAT")
  1. S SUPIEN=$$GET1^DIQ(52.49,PSOIEN,2.6,"I")
  1. D GETS^DIQ(52.48,SUPIEN,"**","E","SUPDAT")
  1. S PAMANVAL=$$GET1^DIQ(52.49,PSOIEN,1.7,"I")
  1. S PRMANVAL=$$GET1^DIQ(52.49,PSOIEN,1.3,"I")
  1. S DRMANVAL=$$GET1^DIQ(52.49,PSOIEN,1.5,"I")
  1. S WDATE=$$GET1^DIQ(52.49,PSOIEN,5.9,"E")
  1. S CHGMESRQ=$$GET1^DIQ(52.49,PSOIEN,315.1,"I")
  1. S CHGMESRI=$$GET1^DIQ(52.45,CHGMESRQ,.01,"I")
  1. S RESPVAL=$$GET1^DIQ(52.49,PSOIEN,52.1,"E")
  1. S:'ERRFLG PATPT=$$GETPTPH^PSOERXU7(PATIEN,S2017,"PT,HP")
  1. ; only set the hold reason if the eRx has a hold status
  1. S CURSTATE=$$GET1^DIQ(52.49,PSOIEN,1,"E")
  1. S (VAHSTA,VAHREA)=""
  1. I S2017,MTYPE'="RE" D
  1. .S MEDIEN=$O(^PS(52.49,PSOIEN,311,"C","P",0))
  1. .S EDIRECT=$$GET1^DIQ(52.49,MEDIEN_","_PSOIEN_",",8,"E")
  1. I S2017,MTYPE="RE" D
  1. .S MEDIEN=$O(^PS(52.49,PSOIEN,311,"C","MR",0))
  1. I 'S2017 D
  1. .S EDIRECT=$$GET1^DIQ(52.49,PSOIEN,7,"E")
  1. I $E(CURSTATE,1)="H" D
  1. .S CURSTATI=$$GET1^DIQ(52.49,PSOIEN,1,"I")
  1. .S LHMATCH=999999,LHFOUND=0 F S LHMATCH=$O(^PS(52.49,PSOIEN,19,LHMATCH),-1) Q:'LHMATCH!(LHFOUND) D
  1. ..S LHSTATI=$$GET1^DIQ(52.4919,LHMATCH_","_PSOIEN_",",.02,"I") I LHSTATI=CURSTATI D S LHFOUND=LHMATCH Q
  1. ...S VAHREA=$$GET1^DIQ(52.4919,LHMATCH_","_PSOIEN_",",1)
  1. ...S VAHSTA=$$GET1^DIQ(52.45,LHSTATI,.01,"E")_" - "_$$GET1^DIQ(52.45,LHSTATI,.02,"E")
  1. ...S VAHPER=$$GET1^DIQ(52.4919,LHMATCH_","_PSOIEN_",",.03,"E")
  1. I (",RE,CN,"[(","_MTYPE_","))!((MTYPE="CX")&$$CHGMTYPE^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)) S MTYPEE=$G(MTYPEE)_" - "_$$GET1^DIQ(52.49,PSOIEN,52.1,"E")
  1. S LINETXT=""
  1. S LINE=LINE+1 D CNTRL^VALM10(LINE,1,$L(MTYPEE),IORVON,IORVOFF)
  1. I $$GET1^DIQ(52.49,PSOIEN,95.1,"I") S $E(MTYPEE,63)="EPCS DEA VALIDATED" D CNTRL^VALM10(LINE,63,80,IORVON,IORVOFF)
  1. D SET^VALM10(LINE,MTYPEE)
  1. S LINE=LINE+1 D SET^VALM10(LINE,"eRx Status: "_$S($E(CURSTATE,1)="H":VAHSTA,1:ERXSTAT))
  1. I ",CX,CR,"[(","_MTYPE_","),$$QTSUMDT1^PSOERX1D(PSOIEN,MTYPE,CHGMESRI,CHGMESRQ,RESPVAL,.LINE) S VALMCNT=LINE Q
  1. I MTYPE="CA" D
  1. .S NRXIEN=$$RESOLV^PSOERXU2(PSOIEN) Q:'NRXIEN
  1. .S LERXSTAT=$$LASTSTAT^PSOERXU5(NRXIEN)
  1. .; over-ride for new rx's that have no status history
  1. .I '$L(LERXSTAT) S LERXSTAT="N - NEW"
  1. .S OPIEN=$$GET1^DIQ(52.49,NRXIEN,.13,"I") Q:'OPIEN
  1. .S LOPSTAT=$$GET1^DIQ(52,OPIEN,100,"E")
  1. .I NRXIEN S CSCOMM=$$CSCOMM^PSOERXU5(NRXIEN)
  1. I MTYPE="CN" D
  1. .S RELIEN=$$RESOLV^PSOERXU2(PSOIEN) Q:'RELIEN
  1. .S NRXIEN=$$RESOLV^PSOERXU2(RELIEN)
  1. .S LERXSTAT=$$LASTSTAT^PSOERXU5(NRXIEN)
  1. .I NRXIEN S CSCOMM=$$CSCOMM^PSOERXU5(NRXIEN)
  1. .I '$L(LERXSTAT) S LERXSTAT="N - NEW"
  1. .S OPIEN=$$GET1^DIQ(52.49,NRXIEN,.13,"I") Q:'OPIEN
  1. .S LOPSTAT=$$GET1^DIQ(52,OPIEN,100,"E")
  1. I $G(CSCOMM)]"" S LINE=LINE+1 D SET^VALM10(LINE,"Current Status Details: "_CSCOMM)
  1. I $D(LERXSTAT) S LINE=LINE+1 D SET^VALM10(LINE,"Last New Rx status: "_LERXSTAT)
  1. I $D(LOPSTAT) S LINE=LINE+1 D SET^VALM10(LINE,"Outpatient Prescription status: "_LOPSTAT)
  1. I (",RR,RE,CR,"[MTYPE)!((MTYPE="CX")&$$ADMDPRLN^PSOERX1D(PSOIEN,MTYPE,RESPVAL,CHGMESRI)) S LINE=LINE+1 D SET^VALM10(LINE,"**************************MEDICATION PRESCRIBED******************************")
  1. I 'ERRFLG,$L($G(PATPT)) S LINE=LINE+1 D SET^VALM10(LINE,"eRx Patient Primary Telephone: "_PATPT)
  1. S LINE=LINE+1
  1. D ADDITEM^PSOERX1A(.LINETXT,"eRx Patient: ",$E(EPAT,1,39),1,52)
  1. D ADDITEM^PSOERX1A(.LINETXT,"DOB: ",EPATDOB,57,20)
  1. D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. I $L(EPAT)>39 D
  1. .S LINE=LINE+1 D SET^VALM10(LINE," "_$E(EPAT,40,78))
  1. I $L(EPAT)>78 D
  1. .S LINE=LINE+1 D SET^VALM10(LINE," "_$E(EPAT,79,135))
  1. S LINETXT=""
  1. S LINE=LINE+1
  1. I MTYPE'="CA",MTYPE'="CN" D
  1. .D ADDITEM^PSOERX1A(.LINETXT,"Vista Patient"_$S(PAMANVAL:"[v]",1:"")_": ",$E(VPATNM,1,55),1,55)
  1. .D ADDITEM^PSOERX1A(.LINETXT,"DOB: ",VPATDOB,57,20)
  1. .D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"")
  1. I $L($G(EPRVPT)) S LINE=LINE+1 D SET^VALM10(LINE,"eRx Provider Primary Telephone: "_EPRVPT)
  1. S LINE=LINE+1
  1. D ADDITEM^PSOERX1A(.LINETXT,"eRx Provider: ",$E(EPRVNM,1,39),1,52)
  1. D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. D ADDITEM^PSOERX1A(.LINETXT,"DEA#: ",EPRVDEA,30,20)
  1. D ADDITEM^PSOERX1A(.LINETXT,"NPI: ",EPRVNPI,57,20)
  1. S LINE=LINE+1 D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. I $L(EPRVNM)>39 D
  1. .S LINE=LINE+1 D SET^VALM10(LINE," "_$E(EPRVNM,40,77))
  1. I $L(EPRVNM)>77 D
  1. .S LINE=LINE+1 D SET^VALM10(LINE," "_$E(EPRVNM,78,135))
  1. I MTYPE'="CA",MTYPE'="CN" D
  1. .S LINE=LINE+1
  1. .D ADDITEM^PSOERX1A(.LINETXT,"Vista Provider"_$S(PRMANVAL:"[v]",1:"")_": ",$E(VAPRVNM,1,55),1,55)
  1. .D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. .D ADDITEM^PSOERX1A(.LINETXT,"DEA#: ",VAPRVDEA,30,20)
  1. .D ADDITEM^PSOERX1A(.LINETXT,"NPI: ",VAPRVNPI,57,20)
  1. .S LINE=LINE+1 D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. S LINE=LINE+1 D SET^VALM10(LINE,"")
  1. S ERXDRUG=$$GET1^DIQ(52.49,PSOIEN,3.1,"E") I '$L(ERXDRUG) S ERXDRUG=$$GETDRUG^PSOERXU5(PSOIEN)
  1. S ERXQTY=$$GET1^DIQ(52.49,PSOIEN,5.1,"E")
  1. I $G(S2017) D
  1. .S ERXRFLS=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
  1. ;setting 10.6 refill value
  1. I '$G(S2017) D
  1. .S ERXRFLS=$$GET1^DIQ(52.49,PSOIEN,5.6,"E")
  1. .I ERXRFLS="" S ERXRFLS=$$GET1^DIQ(52.49,PSOIEN,5.7,"I")
  1. ; refills for a refill response is # of refills-1
  1. I MTYPE="RE",ERXRFLS S ERXRFLS=ERXRFLS-1
  1. S ERXDS=$$GET1^DIQ(52.49,PSOIEN,5.5,"E")
  1. S ERXDT=$$GET1^DIQ(52.49,PSOIEN,.03,"E")
  1. I S2017 D
  1. .S ERXDT=$S(MEDIEN:$$EFFDATE^PSOERXU5(PSOIEN,MEDIEN),1:"")
  1. S VADRGIEN=$$GET1^DIQ(52.49,PSOIEN,3.2,"I")
  1. S VADRG=$$GET1^DIQ(52.49,PSOIEN,3.2,"E")
  1. S VAREF=$$GET1^DIQ(52.49,PSOIEN,20.5,"E")
  1. ;PSO*7*635, Adjust va refills for renewal response messages
  1. I MTYPE="RE",VAREF,VAREF=$$GET1^DIQ(52.49,PSOIEN,5.6,"E") S VAREF=VAREF-1
  1. S VAQTY=$$GET1^DIQ(52.49,PSOIEN,20.1,"E")
  1. S VADAYS=$$GET1^DIQ(52.49,PSOIEN,20.2,"E")
  1. I VADRG']"" S VADRG="NOT LINKED"
  1. D TXT2ARY^PSOERXD1(.DRGARY,ERXDRUG,,70)
  1. S LINE=LINE+1 D SET^VALM10(LINE,"eRx Drug: "_$G(DRGARY(1))_" "_$P($$ERXDRSCH^PSOERXUT(PSOIEN),"^",2))
  1. S DLP=1
  1. F S DLP=$O(DRGARY(DLP)) Q:'DLP D
  1. .S LINE=LINE+1 D SET^VALM10(LINE," "_$G(DRGARY(DLP)))
  1. S LINE=LINE+1
  1. D ADDITEM^PSOERX1A(.LINETXT,"eRx Qty: ",ERXQTY,1,17)
  1. D ADDITEM^PSOERX1A(.LINETXT,"eRx Refills: ",ERXRFLS,19,16)
  1. D ADDITEM^PSOERX1A(.LINETXT,"eRx Days Supply: ",ERXDS,37,20)
  1. I 'S2017 D ADDITEM^PSOERX1A(.LINETXT,"eRx Date: ",$P(ERXDT,"@"),58,22)
  1. D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. I S2017 D
  1. .S LINE=LINE+1
  1. .D ADDITEM^PSOERX1A(.LINETXT,"eRx Written Date: ",$P(WDATE,"@"),1,35)
  1. .D ADDITEM^PSOERX1A(.LINETXT,"eRx Issue Date: ",ERXDT,40,70)
  1. .D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. .S LINE=LINE+1
  1. .I MTYPE="N"!((MTYPE="CX")&$$PROHIBIT^PSOERX1D(RESPVAL,CHGMESRI)) D
  1. ..S PROHIBIT=$$GET1^DIQ(52.49,PSOIEN,301.3,"I")
  1. ..S PROHIBIT=$S(PROHIBIT=1:"Yes",1:"No")
  1. ..D SET^VALM10(LINE,"Prohibit Renewals: "_PROHIBIT)
  1. D TXT2ARY^PSOERXD1(.SIGARY,$G(EDIRECT),,70)
  1. S SFIRST=$O(SIGARY(0))
  1. I 'S2017 D
  1. .S SGLOOP=0 F S SGLOOP=$O(SIGARY(SGLOOP)) Q:'SGLOOP D
  1. ..S LINE=LINE+1 D SET^VALM10(LINE,$S(SGLOOP=SFIRST:"eRx Sig: ",1:" ")_$G(SIGARY(SGLOOP)))
  1. I S2017,$G(MEDIEN) D
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"eRx Sig:")
  1. .S SGLOOP=0 F S SGLOOP=$O(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP)) Q:'SGLOOP D
  1. ..S LINE=LINE+1 D SET^VALM10(LINE,$G(^PS(52.49,PSOIEN,311,MEDIEN,8,SGLOOP,0)))
  1. I (",CX,CR,"[(","_MTYPE_",")),$$QTSUMDT2^PSOERX1D(PSOIEN,MTYPE,CHGMESRI,RESPVAL,.LINE) S VALMCNT=LINE Q
  1. I MTYPE="RR" D S VALMCNT=LINE Q
  1. .; if the renew request is 2017, use psoerxu7 to build from 311 subfile
  1. .I S2017 D MEDDIS^PSOERXU7(PSOIEN,.LINE)
  1. .; if either of them are not 2017, build the med dispensed from PSOERXU7 (old 49 subfile)
  1. .; if it is not 2017, build from psoerxu3 (49 subfile)
  1. .I 'S2017 D MEDDIS^PSOERXU3(PSOIEN,"D",.LINE)
  1. .D RRRES^PSOERXU3(PSOIEN,.LINE,1),RRREQ^PSOERXU3(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE)
  1. I MTYPE="RE" D S VALMCNT=LINE Q
  1. .S REQIEN=$$RESOLV^PSOERXU2(PSOIEN)
  1. .S R2017=$$GET1^DIQ(52.49,REQIEN,312.1,"I")
  1. .D DISPRX,RRRES^PSOERXU3(PSOIEN,.LINE,1)
  1. .; if the response is 2017 and the request is 2017, build the med dispensed from PSOERXU7 (311 subfile)
  1. .I S2017,R2017 D MEDDIS^PSOERXU7(PSOIEN,.LINE)
  1. .I 'R2017 D MEDDIS^PSOERXU3(REQIEN,"D",.LINE)
  1. .D RRREQ^PSOERXU3(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE)
  1. .; if the status is one of the failed status values, display the error details.
  1. .I $$GET1^DIQ(52.49,PSOIEN,1,"E")="RXF" D PROCERR^PSOERXU3(PSOIEN,.LINE)
  1. I MTYPE="IE" D S VALMCNT=LINE Q
  1. .S RELIEN=$$RESOLV^PSOERXU2(PSOIEN)
  1. .S RELMTYPE=$$GET1^DIQ(52.49,RELIEN,.08,"I")
  1. .I RELMTYPE="RE" D ERRDISP^PSOERXU3(PSOIEN,.LINE),RRREQ^PSOERXU3(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE) Q
  1. .I RELMTYPE="CA" D ERRDISP^PSOERXU3(PSOIEN,.LINE),CANREQ^PSOERXU5(PSOIEN,.LINE),CANRES^PSOERXU5(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE) Q
  1. .I RELMTYPE="CN" D ERRDISP^PSOERXU3(PSOIEN,.LINE),CANRES^PSOERXU5(PSOIEN,.LINE),CANREQ^PSOERXU5(PSOIEN,.LINE) Q
  1. .D ERRDISP^PSOERXU3(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE)
  1. I MTYPE="CA" D S VALMCNT=LINE Q
  1. .D CANREQ^PSOERXU5(PSOIEN,.LINE),CANRES^PSOERXU5(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE)
  1. I MTYPE="CN" D S VALMCNT=LINE Q
  1. .I $$GET1^DIQ(52.49,PSOIEN,1,"E")="CNE" D Q
  1. ..S ERRIEN=$$GETRESP^PSOERXU2(PSOIEN)
  1. ..D ERRDISP^PSOERXU3(ERRIEN,.LINE),CANRES^PSOERXU5(PSOIEN,.LINE),CANREQ^PSOERXU5(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE) Q
  1. .D CANRES^PSOERXU5(PSOIEN,.LINE),CANREQ^PSOERXU5(PSOIEN,.LINE),MSGHIS^PSOERXU3(PSOIEN,.LINE)
  1. DISPRX ;
  1. I "RR,CA,CN,IE"'[MTYPE!(MTYPE="N") D
  1. .I MTYPE="RE",$$GET1^DIQ(52.49,PSOIEN,52.1,"I")'="R" Q
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"")
  1. .S PSNF="" I $G(VADRGIEN) S PSNF=$S($P(^PSDRUG(VADRGIEN,0),"^",9):"***(N/F)***",1:"") ;p689
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"Vista Drug"_$S(DRMANVAL:"[v]",1:"")_": "_VADRG_" "_$P($$VADRSCH^PSOERXUT(VADRGIEN),"^",3)_PSNF)
  1. .S LINE=LINE+1
  1. .D ADDITEM^PSOERX1A(.LINETXT,"Vista Qty: ",$G(VAQTY),1,25)
  1. .D ADDITEM^PSOERX1A(.LINETXT,"Vista Refills: ",$G(VAREF),27,18)
  1. .D ADDITEM^PSOERX1A(.LINETXT,"Vista Days Supply: ",$G(VADAYS),54,22)
  1. .D SET^VALM10(LINE,LINETXT) S LINETXT=""
  1. .S VASIG=""
  1. .S SLOOP=0 F S SLOOP=$O(^PS(52.49,PSOIEN,"SIG",SLOOP)) Q:'SLOOP D
  1. ..I '$L($G(VASIG)) S VASIG=$G(^PS(52.49,PSOIEN,"SIG",SLOOP,0)) Q
  1. ..S VASIG=$G(VASIG)_" "_$G(^PS(52.49,PSOIEN,"SIG",SLOOP,0))
  1. .D TXT2ARY^PSOERXD1(.VASARY,VASIG,,68)
  1. .S FSSIG=$O(VASARY(0))
  1. .S ERXDSUB=$$GET1^DIQ(52.49,PSOIEN,5.8,"I")
  1. .S ERXDSUB=$S(ERXDSUB=1:"NO",ERXDSUB=0:"YES",1:"")
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"Substitutions? :"_ERXDSUB)
  1. .S LINE=LINE+1 D SET^VALM10(LINE,"Vista Sig: "_$S(FSSIG:$G(VASARY(FSSIG)),1:""))
  1. .S SLOOP=1 F S SLOOP=$O(VASARY(SLOOP)) Q:'SLOOP D
  1. ..S LINE=LINE+1 D SET^VALM10(LINE," "_VASARY(SLOOP))
  1. .S VPATINST=$$GET1^DIQ(52.49,PSOIEN,27,"E")
  1. .I VPATINST]"" S VPATINST=$$LSIG^PSOQUTIL(VPATINST)
  1. .D TXT2ARY^PSOERXD1(.VAPIARY,VPATINST," ",68)
  1. .S FSVPIN=$O(VAPIARY(0))
  1. .S LINE=LINE+1 D SET^VALM10(LINE," Pat Inst: "_$S(FSVPIN:$G(VAPIARY(FSVPIN)),1:""))
  1. .S VLOOP=1 F S VLOOP=$O(VAPIARY(VLOOP)) Q:'VLOOP D
  1. ..S LINE=LINE+1 D SET^VALM10(LINE," "_VAPIARY(VLOOP))
  1. S LINE=LINE+1 D SET^VALM10(LINE,"Hold Status: "_$G(VAHSTA))
  1. S VAHREA="Hold Reason: "_$G(VAHREA)
  1. D TXT2ARY^PSOERXD1(.HARY,VAHREA," ",80)
  1. S HL=0 F S HL=$O(HARY(HL)) Q:'HL D
  1. .S LINE=LINE+1 D SET^VALM10(LINE,$G(HARY(HL)))
  1. S LINE=LINE+1 D SET^VALM10(LINE,"Placed on hold by: "_$G(VAHPER))
  1. S LINE=LINE+1 D SET^VALM10(LINE,"")
  1. S ERXCOMM="eRx Notes: "_$$GET1^DIQ(52.49,PSOIEN,8,"E")
  1. D TXT2ARY^PSOERXD1(.COMARY,ERXCOMM," ",68)
  1. S COM=0 F S COM=$O(COMARY(COM)) Q:'COM S LINE=LINE+1 D SET^VALM10(LINE,$G(COMARY(COM)))
  1. S LINE=LINE+1 D SET^VALM10(LINE,"")
  1. I $$GET1^DIQ(52.49,PSOIEN,.05,"I") D
  1. .D ALG^PSOERXU1(.LINE)
  1. I '$G(S2017) D
  1. .D DIAG^PSOERXU1(PSOIEN,.LINE)
  1. I $G(S2017) D
  1. .D:MEDIEN DIAG2017^PSOERXU5(PSOIEN,.LINE,,MEDIEN)
  1. ; DEA Note for CS Digitally Signed eRx records
  1. I $$GET1^DIQ(52.49,PSOIEN,95.1,"I") D
  1. . D DEANOTE^PSOERX1H
  1. ;
  1. S VALMCNT=LINE
  1. Q