BPS40PRE ;AITC/PED - Pre-install routine for BPS*1*40 ;02/20/2025
 ;;1.0;E CLAIMS MGMT ENGINE;**40**;JUN 2004;Build 25
 ;;Per VA Directive 6402, this routine should not be modified.
 ;
 ; MCCF EDI TAS ePharmacy - BPS*1*40 patch pre-install
 ;
 Q
 ;
PRE ; Entry Point for pre-install
 ;
 D MES^XPDUTL(" Starting pre-install for BPS*1*40")
 ;
 D BPSNPI
 ;
 D MES^XPDUTL(" Finished pre-install of BPS*1*40")
 ;
 Q
 ;
BPSNPI ; BPS Pharmacy
 ; Loop through BPS Pharmacies file and create a report
 ; showing Pharmacy Name, Status, NPI, and BPS Pharmacy
 ; for CS.  The report will be emailed to the ePharmacy
 ; developers to verify all BPS Pharmacies have an NPI.
 ;
 N BPSSITENAME,BPSSITENUMBER,BPSVASITE,BPSX,BPSXI,CS,DATA,DIFROM
 N ISSUE,NPI,PHAR,PHARM,SPACE,STATUS,VA200,XMDUZ,XMSUB,XMTEXT,XMY
 ;
 D BMES^XPDUTL("    Check BPS PHARMACIES File")
 ;
 S BPSVASITE=$$NS^XUAF4($$KSP^XUPARAM("INST"))
 S BPSSITENAME=$P(BPSVASITE,"^")
 S BPSSITENUMBER=$P(BPSVASITE,"^",2)
 S XMSUB="BPS Pharmacy NPI Report"
 S XMDUZ=BPSSITENUMBER_" - "_BPSSITENAME
 I '$$PROD^XUPROD(1) D
 . S XMY(DUZ)=""
 . S VA200=$O(^VA(200,"B","DEVINE,PAUL","")) I VA200'="" S XMY(VA200)=""
 . S VA200=$O(^VA(200,"B","DAWSON,MARK R","")) I VA200'="" S XMY(VA200)=""
 . S VA200=$O(^VA(200,"B","HOLM,HEIDI","")) I VA200'="" S XMY(VA200)=""
 I $$PROD^XUPROD(1) D
 . S XMY("Paul.Devine@domain.ext")=""
 . S XMY("Mark.Dawson3@domain.ext")=""
 . S XMY("Heidi.Holm@domain.ext")=""
 S XMTEXT="BPSX("
 ;
 S BPSX(1)=""
 S BPSX(2)="BPS Pharmacy                         Status   NPI       CS Pharmacy"
 S BPSX(3)="-------------------------------------------------------------------------------"
 ;
 S ISSUE=0
 S BPSXI=3
 F I=1:1:79 S SPACE=$G(SPACE)_" "
 S PHAR=0
 F  S PHAR=$O(^BPS(9002313.56,PHAR)) Q:'PHAR  D
 . S PHARM=$$GET1^DIQ(9002313.56,PHAR,.01)
 . S PHARM=PHARM_$E(SPACE,1,(39-$L(PHARM)))
 . S STATUS=$E($$GET1^DIQ(9002313.56,PHAR,.1),1)
 . S STATUS=STATUS_"   "
 . S NPI=$$GET1^DIQ(9002313.56,PHAR,41.01)
 . I NPI="" S ISSUE=1
 . S NPI=NPI_$E(SPACE,1,(13-$L(NPI)))
 . S CS=$$GET1^DIQ(9002313.56,PHAR,2)
 . I CS="" S CS="N/A"
 . S CS=$E(CS,1,23)
 . S DATA=PHARM_STATUS_NPI_CS
 . S BPSXI=BPSXI+1
 . S BPSX(BPSXI)=DATA
 ;
 I ISSUE S XMSUB="*** "_XMSUB
 D ^XMD
 ;
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HBPS40PRE   2297     printed  Sep 23, 2025@19:26:52                                                                                                                                                                                                    Page 2
BPS40PRE  ;AITC/PED - Pre-install routine for BPS*1*40 ;02/20/2025
 +1       ;;1.0;E CLAIMS MGMT ENGINE;**40**;JUN 2004;Build 25
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;
 +4       ; MCCF EDI TAS ePharmacy - BPS*1*40 patch pre-install
 +5       ;
 +6        QUIT 
 +7       ;
PRE       ; Entry Point for pre-install
 +1       ;
 +2        DO MES^XPDUTL(" Starting pre-install for BPS*1*40")
 +3       ;
 +4        DO BPSNPI
 +5       ;
 +6        DO MES^XPDUTL(" Finished pre-install of BPS*1*40")
 +7       ;
 +8        QUIT 
 +9       ;
BPSNPI    ; BPS Pharmacy
 +1       ; Loop through BPS Pharmacies file and create a report
 +2       ; showing Pharmacy Name, Status, NPI, and BPS Pharmacy
 +3       ; for CS.  The report will be emailed to the ePharmacy
 +4       ; developers to verify all BPS Pharmacies have an NPI.
 +5       ;
 +6        NEW BPSSITENAME,BPSSITENUMBER,BPSVASITE,BPSX,BPSXI,CS,DATA,DIFROM
 +7        NEW ISSUE,NPI,PHAR,PHARM,SPACE,STATUS,VA200,XMDUZ,XMSUB,XMTEXT,XMY
 +8       ;
 +9        DO BMES^XPDUTL("    Check BPS PHARMACIES File")
 +10      ;
 +11       SET BPSVASITE=$$NS^XUAF4($$KSP^XUPARAM("INST"))
 +12       SET BPSSITENAME=$PIECE(BPSVASITE,"^")
 +13       SET BPSSITENUMBER=$PIECE(BPSVASITE,"^",2)
 +14       SET XMSUB="BPS Pharmacy NPI Report"
 +15       SET XMDUZ=BPSSITENUMBER_" - "_BPSSITENAME
 +16       IF '$$PROD^XUPROD(1)
               Begin DoDot:1
 +17               SET XMY(DUZ)=""
 +18               SET VA200=$ORDER(^VA(200,"B","DEVINE,PAUL",""))
                   IF VA200'=""
                       SET XMY(VA200)=""
 +19               SET VA200=$ORDER(^VA(200,"B","DAWSON,MARK R",""))
                   IF VA200'=""
                       SET XMY(VA200)=""
 +20               SET VA200=$ORDER(^VA(200,"B","HOLM,HEIDI",""))
                   IF VA200'=""
                       SET XMY(VA200)=""
               End DoDot:1
 +21       IF $$PROD^XUPROD(1)
               Begin DoDot:1
 +22               SET XMY("Paul.Devine@domain.ext")=""
 +23               SET XMY("Mark.Dawson3@domain.ext")=""
 +24               SET XMY("Heidi.Holm@domain.ext")=""
               End DoDot:1
 +25       SET XMTEXT="BPSX("
 +26      ;
 +27       SET BPSX(1)=""
 +28       SET BPSX(2)="BPS Pharmacy                         Status   NPI       CS Pharmacy"
 +29       SET BPSX(3)="-------------------------------------------------------------------------------"
 +30      ;
 +31       SET ISSUE=0
 +32       SET BPSXI=3
 +33       FOR I=1:1:79
               SET SPACE=$GET(SPACE)_" "
 +34       SET PHAR=0
 +35       FOR 
               SET PHAR=$ORDER(^BPS(9002313.56,PHAR))
               if 'PHAR
                   QUIT 
               Begin DoDot:1
 +36               SET PHARM=$$GET1^DIQ(9002313.56,PHAR,.01)
 +37               SET PHARM=PHARM_$EXTRACT(SPACE,1,(39-$LENGTH(PHARM)))
 +38               SET STATUS=$EXTRACT($$GET1^DIQ(9002313.56,PHAR,.1),1)
 +39               SET STATUS=STATUS_"   "
 +40               SET NPI=$$GET1^DIQ(9002313.56,PHAR,41.01)
 +41               IF NPI=""
                       SET ISSUE=1
 +42               SET NPI=NPI_$EXTRACT(SPACE,1,(13-$LENGTH(NPI)))
 +43               SET CS=$$GET1^DIQ(9002313.56,PHAR,2)
 +44               IF CS=""
                       SET CS="N/A"
 +45               SET CS=$EXTRACT(CS,1,23)
 +46               SET DATA=PHARM_STATUS_NPI_CS
 +47               SET BPSXI=BPSXI+1
 +48               SET BPSX(BPSXI)=DATA
               End DoDot:1
 +49      ;
 +50       IF ISSUE
               SET XMSUB="*** "_XMSUB
 +51       DO ^XMD
 +52      ;
 +53       QUIT