IB2P710 ;ALB/FSB - DSS CLINIC STOP CODES FOR FY 2022 ; July 20,2021@13:20
 ;;2.0;INTEGRATED BILLING;**710**;21-MAR-94;Build 4
 ;;Per VA Directive 6402, this routine should not be modified.
 ;
 Q
POST ; Update IB Stop Code Billable Types for FY 2022 in #352.5
 N U,IBEFDT
 S U="^",IBEFDT=3211001
 D START,UPDATE,FINISH
 Q
 ;
START D BMES^XPDUTL("DSS Clinic Stop Codes for FY 2022, Post-Install Starting")
 Q
 ;
FINISH D BMES^XPDUTL("DSS Clinic Stop Codes for FY 2022, Post-Install Complete")
 Q
 ;
UPDATE ; add new entry for an old code with an effective date of 10/01/2021
 N IBCODE,IBCNT,IBDES,IBLSTDT,IBOVER,IBRES,IBT,IBTYPE,IBX
 S IBCNT=0
 D BMES^XPDUTL(" Updating Stop Code entries in file 352.5")
 F IBX=1:1 S IBT=$P($T(OCODE+IBX),";;",2) Q:IBT="Q"  D
 . S IBCODE=+$P(IBT,U)
 . I $D(^IBE(352.5,"AEFFDT",IBCODE,-IBEFDT)) D  Q 
 . . D BMES^XPDUTL("   Duplication of stop code "_IBCODE)
 . S IBLSTDT=$O(^IBE(352.5,"AEFFDT",IBCODE,-9999999))
 . I +IBLSTDT=0 D  Q
 . . D BMES^XPDUTL("   Code "_IBCODE_" not found in file 352.5")
 . ; only use fy22 data
 . S IBTYPE=$P(IBT,U,2)
 . S IBDES=$P(IBT,U,3)
 . S IBOVER=$P(IBT,U,4)
 . S IBRES=+$$ADD3525(IBCODE,IBEFDT,IBTYPE,IBDES,IBOVER)
 . S:IBRES>0 IBCNT=IBCNT+1
 D BMES^XPDUTL(" "_IBCNT_$S(IBCNT<2:" update",1:" updates")_" added to file 352.5")
 Q
 ;
ADD3525(IBCODE,IBEFDT,IBTYPE,IBDES,IBOVER) ;
 ; input - stop code, effective date, billable type, description, override flag
 ; output - > 0 if add a new entry, otherwise
 N IBER,IBFDA,IBIENS,IBRET
 D BMES^XPDUTL("   "_IBCODE_"  "_IBDES)
 S IBIENS="+1,"
 S IBFDA(352.5,IBIENS,.01)=IBCODE
 S IBFDA(352.5,IBIENS,.02)=IBEFDT
 S IBFDA(352.5,IBIENS,.03)=IBTYPE
 S IBFDA(352.5,IBIENS,.04)=IBDES
 S:IBOVER IBFDA(352.5,IBIENS,.05)=1
 D UPDATE^DIE("","IBFDA","IBRET","IBER")
 I $D(IBER) D MES^XPDUTL("    Error Text: "_$G(IBER("DIERR",1,"TEXT",1)))
 Q +$G(IBRET(1))
 ;
 ; 2 existing stop codes
OCODE ;;code^billable type^description^override flag
 ;;189^0^ST & FOR TELE-HOM/COM/VA SITE^1
 ;;698^0^REM PT MON-PROV SIT RPM-HT PRG^1
 ;;Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIB2P710   2085     printed  Sep 23, 2025@19:41:56                                                                                                                                                                                                     Page 2
IB2P710   ;ALB/FSB - DSS CLINIC STOP CODES FOR FY 2022 ; July 20,2021@13:20
 +1       ;;2.0;INTEGRATED BILLING;**710**;21-MAR-94;Build 4
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;
 +4        QUIT 
POST      ; Update IB Stop Code Billable Types for FY 2022 in #352.5
 +1        NEW U,IBEFDT
 +2        SET U="^"
           SET IBEFDT=3211001
 +3        DO START
           DO UPDATE
           DO FINISH
 +4        QUIT 
 +5       ;
START      DO BMES^XPDUTL("DSS Clinic Stop Codes for FY 2022, Post-Install Starting")
 +1        QUIT 
 +2       ;
FINISH     DO BMES^XPDUTL("DSS Clinic Stop Codes for FY 2022, Post-Install Complete")
 +1        QUIT 
 +2       ;
UPDATE    ; add new entry for an old code with an effective date of 10/01/2021
 +1        NEW IBCODE,IBCNT,IBDES,IBLSTDT,IBOVER,IBRES,IBT,IBTYPE,IBX
 +2        SET IBCNT=0
 +3        DO BMES^XPDUTL(" Updating Stop Code entries in file 352.5")
 +4        FOR IBX=1:1
               SET IBT=$PIECE($TEXT(OCODE+IBX),";;",2)
               if IBT="Q"
                   QUIT 
               Begin DoDot:1
 +5                SET IBCODE=+$PIECE(IBT,U)
 +6                IF $DATA(^IBE(352.5,"AEFFDT",IBCODE,-IBEFDT))
                       Begin DoDot:2
 +7                        DO BMES^XPDUTL("   Duplication of stop code "_IBCODE)
                       End DoDot:2
                       QUIT 
 +8                SET IBLSTDT=$ORDER(^IBE(352.5,"AEFFDT",IBCODE,-9999999))
 +9                IF +IBLSTDT=0
                       Begin DoDot:2
 +10                       DO BMES^XPDUTL("   Code "_IBCODE_" not found in file 352.5")
                       End DoDot:2
                       QUIT 
 +11      ; only use fy22 data
 +12               SET IBTYPE=$PIECE(IBT,U,2)
 +13               SET IBDES=$PIECE(IBT,U,3)
 +14               SET IBOVER=$PIECE(IBT,U,4)
 +15               SET IBRES=+$$ADD3525(IBCODE,IBEFDT,IBTYPE,IBDES,IBOVER)
 +16               if IBRES>0
                       SET IBCNT=IBCNT+1
               End DoDot:1
 +17       DO BMES^XPDUTL(" "_IBCNT_$SELECT(IBCNT<2:" update",1:" updates")_" added to file 352.5")
 +18       QUIT 
 +19      ;
ADD3525(IBCODE,IBEFDT,IBTYPE,IBDES,IBOVER) ;
 +1       ; input - stop code, effective date, billable type, description, override flag
 +2       ; output - > 0 if add a new entry, otherwise
 +3        NEW IBER,IBFDA,IBIENS,IBRET
 +4        DO BMES^XPDUTL("   "_IBCODE_"  "_IBDES)
 +5        SET IBIENS="+1,"
 +6        SET IBFDA(352.5,IBIENS,.01)=IBCODE
 +7        SET IBFDA(352.5,IBIENS,.02)=IBEFDT
 +8        SET IBFDA(352.5,IBIENS,.03)=IBTYPE
 +9        SET IBFDA(352.5,IBIENS,.04)=IBDES
 +10       if IBOVER
               SET IBFDA(352.5,IBIENS,.05)=1
 +11       DO UPDATE^DIE("","IBFDA","IBRET","IBER")
 +12       IF $DATA(IBER)
               DO MES^XPDUTL("    Error Text: "_$GET(IBER("DIERR",1,"TEXT",1)))
 +13       QUIT +$GET(IBRET(1))
 +14      ;
 +15      ; 2 existing stop codes
OCODE     ;;code^billable type^description^override flag
 +1       ;;189^0^ST & FOR TELE-HOM/COM/VA SITE^1
 +2       ;;698^0^REM PT MON-PROV SIT RPM-HT PRG^1
 +3       ;;Q
 +4       ;