PSOERXP1 ;ALB/BWF - eRx Patient Validation - ListMan ; 06 Apr 2023  1:00 PM
 ;;7.0;OUTPATIENT PHARMACY;**467,520,527,551,581,700,746,770**;DEC 1997;Build 145
 ;
EN ; -- main entry point for PSO ERX HOLDING QUEUE
 N MBMSITE,PRINTFLG
 S MBMSITE=$S($$GET1^DIQ(59.7,1,102,"I")="MBM":1,1:0)
 S PRINTFLG="VP"
 D EN^VALM("PSO ERX PATIENT VALIDATION")
 Q
 ;
LMHDR ; ListMan Header Code
 D SHOW^VALM,HDR^PSOERXP1
 S XQORM("??")="D HELP^VALM2,HDR^PSOERXP1"
 Q
 ;
HDR ; -- header code
 N AMATCH,VPATIEN,VALUSER,VALDTTM,MATCH,HDR
 S AMATCH=$$GET1^DIQ(52.49,PSOIEN,1.6,"I"),VPATIEN=$$GET1^DIQ(52.49,PSOIEN,.05,"I")
 S VALUSER=$$GET1^DIQ(52.49,PSOIEN,1.13,"E"),VALDTTM=$$GET1^DIQ(52.49,PSOIEN,1.14,"I")
 S VALMHDR(1)="eRx Reference #: "_IOINHI_$$GET1^DIQ(52.49,PSOIEN,.01,"E")_IOINORM
 ;Only Displays Eligibility info if VistA Patient is selected
 I $G(VPATIEN) D
 . D INSTR^VALM1($S($G(MBMSITE):"ChampVA Rx Benefit: ",1:"Eligibility: ")_IOINHI_$$ELIG(VPATIEN)_IOINORM,$S($G(MBMSITE):41,1:30),2)
 S MATCH=$S(AMATCH=1:"AUTO-MATCHED",AMATCH=2:"AUTO-MATCHED/EDITED",VPATIEN:"MANUALLY-MATCHED",1:"")
 I VALUSER'="",MATCH'="" S MATCH=MATCH_" | VALIDATED by "_$E(VALUSER,1,19)_" on "_$$FMTE^XLFDT(VALDTTM,"2Y")
 I MATCH="" S MATCH="NOT MATCHED"
 S $E(MATCH,81)="" D INSTR^VALM1("Status: "_IOINHI_MATCH_IOINORM,1,3)
 S HDR="",$E(HDR,15)="ERX PATIENT",$E(HDR,40)="|",$E(HDR,54)="VISTA PATIENT"
 S $E(HDR,81)="" D INSTR^VALM1(IORVON_IOUON_HDR_IORVOFF_IOINORM,1,4)
 Q
 ;
INIT ;
 ; - Resetting list to NORMAL video attributes
 D RESET^PSOERUT0()
 S LINE=0
 ;
 D SETPAT^PSOERUT0("LM",PSOIEN,,"PSOERXP1")
 ;
 S VALMCNT=LINE-1
 S EDTYP="P"
 ; - Saving NORMAL video attributes to be reset later
 I LINE>$G(LASTLINE) D
 . F I=($G(LASTLINE)+1):1:LINE D SAVE^VALM10(I)
 . S LASTLINE=LINE
 D VIDEO^PSOERUT0()
 Q
 ;
HELP ; -- help code
 Q
 ;
EXIT ; -- exit code
 K EDTYP,@VALMAR
 Q
 ;
EXPND ; -- expand code
 Q
 ;
ELIG(DFN) ; Eligibility Label (Different between VA Site and MbM)
 ; Input: DFN    - Pointer to PATIENT File(#2)
 ;
 ;Eligibility Information
 N ELIG,VAEL S ELIG=""
 I $G(DFN) D
 . I $$GET1^DIQ(59.7,1,102,"I")'="MBM" D
 . . D ELIG^VADPT S ELIG=$P(VAEL(1),"^",2)_$S(+VAEL(3):" (SC%: "_$P(VAEL(3),"^",2)_")",1:"")
 . E  D
 . . S ELIG=$P($$CHVAELIG^PSOERXU9(DFN),"^",2)
 Q ELIG
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOERXP1   2323     printed  Sep 23, 2025@20:05:25                                                                                                                                                                                                    Page 2
PSOERXP1  ;ALB/BWF - eRx Patient Validation - ListMan ; 06 Apr 2023  1:00 PM
 +1       ;;7.0;OUTPATIENT PHARMACY;**467,520,527,551,581,700,746,770**;DEC 1997;Build 145
 +2       ;
EN        ; -- main entry point for PSO ERX HOLDING QUEUE
 +1        NEW MBMSITE,PRINTFLG
 +2        SET MBMSITE=$SELECT($$GET1^DIQ(59.7,1,102,"I")="MBM":1,1:0)
 +3        SET PRINTFLG="VP"
 +4        DO EN^VALM("PSO ERX PATIENT VALIDATION")
 +5        QUIT 
 +6       ;
LMHDR     ; ListMan Header Code
 +1        DO SHOW^VALM
           DO HDR^PSOERXP1
 +2        SET XQORM("??")="D HELP^VALM2,HDR^PSOERXP1"
 +3        QUIT 
 +4       ;
HDR       ; -- header code
 +1        NEW AMATCH,VPATIEN,VALUSER,VALDTTM,MATCH,HDR
 +2        SET AMATCH=$$GET1^DIQ(52.49,PSOIEN,1.6,"I")
           SET VPATIEN=$$GET1^DIQ(52.49,PSOIEN,.05,"I")
 +3        SET VALUSER=$$GET1^DIQ(52.49,PSOIEN,1.13,"E")
           SET VALDTTM=$$GET1^DIQ(52.49,PSOIEN,1.14,"I")
 +4        SET VALMHDR(1)="eRx Reference #: "_IOINHI_$$GET1^DIQ(52.49,PSOIEN,.01,"E")_IOINORM
 +5       ;Only Displays Eligibility info if VistA Patient is selected
 +6        IF $GET(VPATIEN)
               Begin DoDot:1
 +7                DO INSTR^VALM1($SELECT($GET(MBMSITE):"ChampVA Rx Benefit: ",1:"Eligibility: ")_IOINHI_$$ELIG(VPATIEN)_IOINORM,$SELECT($GET(MBMSITE):41,1:30),2)
               End DoDot:1
 +8        SET MATCH=$SELECT(AMATCH=1:"AUTO-MATCHED",AMATCH=2:"AUTO-MATCHED/EDITED",VPATIEN:"MANUALLY-MATCHED",1:"")
 +9        IF VALUSER'=""
               IF MATCH'=""
                   SET MATCH=MATCH_" | VALIDATED by "_$EXTRACT(VALUSER,1,19)_" on "_$$FMTE^XLFDT(VALDTTM,"2Y")
 +10       IF MATCH=""
               SET MATCH="NOT MATCHED"
 +11       SET $EXTRACT(MATCH,81)=""
           DO INSTR^VALM1("Status: "_IOINHI_MATCH_IOINORM,1,3)
 +12       SET HDR=""
           SET $EXTRACT(HDR,15)="ERX PATIENT"
           SET $EXTRACT(HDR,40)="|"
           SET $EXTRACT(HDR,54)="VISTA PATIENT"
 +13       SET $EXTRACT(HDR,81)=""
           DO INSTR^VALM1(IORVON_IOUON_HDR_IORVOFF_IOINORM,1,4)
 +14       QUIT 
 +15      ;
INIT      ;
 +1       ; - Resetting list to NORMAL video attributes
 +2        DO RESET^PSOERUT0()
 +3        SET LINE=0
 +4       ;
 +5        DO SETPAT^PSOERUT0("LM",PSOIEN,,"PSOERXP1")
 +6       ;
 +7        SET VALMCNT=LINE-1
 +8        SET EDTYP="P"
 +9       ; - Saving NORMAL video attributes to be reset later
 +10       IF LINE>$GET(LASTLINE)
               Begin DoDot:1
 +11               FOR I=($GET(LASTLINE)+1):1:LINE
                       DO SAVE^VALM10(I)
 +12               SET LASTLINE=LINE
               End DoDot:1
 +13       DO VIDEO^PSOERUT0()
 +14       QUIT 
 +15      ;
HELP      ; -- help code
 +1        QUIT 
 +2       ;
EXIT      ; -- exit code
 +1        KILL EDTYP,@VALMAR
 +2        QUIT 
 +3       ;
EXPND     ; -- expand code
 +1        QUIT 
 +2       ;
ELIG(DFN) ; Eligibility Label (Different between VA Site and MbM)
 +1       ; Input: DFN    - Pointer to PATIENT File(#2)
 +2       ;
 +3       ;Eligibility Information
 +4        NEW ELIG,VAEL
           SET ELIG=""
 +5        IF $GET(DFN)
               Begin DoDot:1
 +6                IF $$GET1^DIQ(59.7,1,102,"I")'="MBM"
                       Begin DoDot:2
 +7                        DO ELIG^VADPT
                           SET ELIG=$PIECE(VAEL(1),"^",2)_$SELECT(+VAEL(3):" (SC%: "_$PIECE(VAEL(3),"^",2)_")",1:"")
                       End DoDot:2
 +8               IF '$TEST
                       Begin DoDot:2
 +9                        SET ELIG=$PIECE($$CHVAELIG^PSOERXU9(DFN),"^",2)
                       End DoDot:2
               End DoDot:1
 +10       QUIT ELIG