IVMYZ1 ;ALB/SEK - PURGE INCORRECT IVM PATIENT & TRANSMISSION RECORDS ; 8-NOV-94
 ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**1**; 21-OCT-94
 ;
EN ; this routine will delete ivm patient (301.5) and ivm
 ; transmission log (301.6) records for incorrect income years of
 ; -10000 & -910000.
 ; this routine will also send notification to the IVM Center once
 ; the facility has installed IVM*2*1 patch. 
 ;
TYPE ; Ask user if this installation is for a test account or live account.
 S DIR(0)="SM^1:PRODUCTION;0:TEST"
 S DIR("A")="Enter type of account you are installing in"
 S DIR("?")="Enter P for production account or T for test account"
 F I=1:1 S X=$P($T(TEXT+I),";;",2) Q:X="QUIT"  S DIR("?",I)=X
 D ^DIR
 I Y=""!(Y["^") W:Y="" !!,*7,"User Timed Out..."
 S IVMPROD=Y
 K DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
 I IVMPROD=""!(IVMPROD["^") K IVMPROD Q
 ;
 ; - do the purge
 S IVMCTR=0
 F IVMYR=-10000,-910000 S DFN="" D
 .S DFN=$O(^IVM(301.5,"AYR",IVMYR,DFN)) Q:'DFN  D
 ..S IVMDA=0 F  S IVMDA=$O(^IVM(301.5,"AYR",IVMYR,DFN,IVMDA)) Q:'IVMDA  D  S DIK="^IVM(301.5,",DA=IVMDA D ^DIK S IVMCTR=IVMCTR+1
 ...S IVMTR=0 F  S IVMTR=$O(^IVM(301.6,"B",IVMDA,IVMTR)) Q:'IVMTR  D
 ....S DIK="^IVM(301.6,",DA=IVMTR D ^DIK
 ;
 W !!,"  Total number of 301.5 records deleted: "_IVMCTR
 K DA,DFN,DIK,IVMYR,IVMDA,IVMTR,IVMCTR
 ;
 ;
 ; Send notification to the IVM Center once the facility has installed
 ; IVM*2*1 patch in production account.
 ;
 I 'IVMPROD K IVMPROD Q
 N DIFROM
 W !!,"Sending a 'completed installation' notice to the IVM Center... "
 S XMSUB="IVM*2*1 PATCH INSTALLATION"
 S XMDUZ="IVM PACKAGE"
 S XMY("WEATHERLY@IVM.DOMAIN.EXT")="",XMY(DUZ)="",XMY(.5)=""
 S XMTEXT="IVMTEXT("
 S IVMX=$$SITE^VASITE
 S IVMTEXT(1)="  Facility:                   "_$P(IVMX,"^",2)
 S IVMTEXT(2)="  Station Number:             "_$P(IVMX,"^",3)
 ;
 D NOW^%DTC S Y=% D DD^%DT
 S IVMTEXT(3)="  Installed IVM*2*1 patch on: "_Y
 D ^XMD W "done."
 K IVMPROD,IVMTEXT,IVMX,XMDUZ,XMSUB,XMTEXT,XMY,%
 Q
 ;
TEXT ; Text for help for production/test question
 ;;If you are currently installing this IVM package in a production
 ;;account, you must answer P.  If you are installing in a test account
 ;;you must answer T.
 ;;
 ;;The answer to this question is extremely important as it determines
 ;;where income data for patients gets transmitted.  Test data must not
 ;;be transmitted to the IVM Center's production account.  Production
 ;;data, likewise, will not be evaluated properly if it is not sent to
 ;;the IVM Center's production account.
 ;;
 ;;Enter '^' to abort this installation.
 ;;
 ;;QUIT
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIVMYZ1   2635     printed  Sep 23, 2025@19:38:27                                                                                                                                                                                                      Page 2
IVMYZ1    ;ALB/SEK - PURGE INCORRECT IVM PATIENT & TRANSMISSION RECORDS ; 8-NOV-94
 +1       ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**1**; 21-OCT-94
 +2       ;
EN        ; this routine will delete ivm patient (301.5) and ivm
 +1       ; transmission log (301.6) records for incorrect income years of
 +2       ; -10000 & -910000.
 +3       ; this routine will also send notification to the IVM Center once
 +4       ; the facility has installed IVM*2*1 patch. 
 +5       ;
TYPE      ; Ask user if this installation is for a test account or live account.
 +1        SET DIR(0)="SM^1:PRODUCTION;0:TEST"
 +2        SET DIR("A")="Enter type of account you are installing in"
 +3        SET DIR("?")="Enter P for production account or T for test account"
 +4        FOR I=1:1
               SET X=$PIECE($TEXT(TEXT+I),";;",2)
               if X="QUIT"
                   QUIT 
               SET DIR("?",I)=X
 +5        DO ^DIR
 +6        IF Y=""!(Y["^")
               if Y=""
                   WRITE !!,*7,"User Timed Out..."
 +7        SET IVMPROD=Y
 +8        KILL DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
 +9        IF IVMPROD=""!(IVMPROD["^")
               KILL IVMPROD
               QUIT 
 +10      ;
 +11      ; - do the purge
 +12       SET IVMCTR=0
 +13       FOR IVMYR=-10000,-910000
               SET DFN=""
               Begin DoDot:1
 +14               SET DFN=$ORDER(^IVM(301.5,"AYR",IVMYR,DFN))
                   if 'DFN
                       QUIT 
                   Begin DoDot:2
 +15                   SET IVMDA=0
                       FOR 
                           SET IVMDA=$ORDER(^IVM(301.5,"AYR",IVMYR,DFN,IVMDA))
                           if 'IVMDA
                               QUIT 
                           Begin DoDot:3
 +16                           SET IVMTR=0
                               FOR 
                                   SET IVMTR=$ORDER(^IVM(301.6,"B",IVMDA,IVMTR))
                                   if 'IVMTR
                                       QUIT 
                                   Begin DoDot:4
 +17                                   SET DIK="^IVM(301.6,"
                                       SET DA=IVMTR
                                       DO ^DIK
                                   End DoDot:4
                           End DoDot:3
                           SET DIK="^IVM(301.5,"
                           SET DA=IVMDA
                           DO ^DIK
                           SET IVMCTR=IVMCTR+1
                   End DoDot:2
               End DoDot:1
 +18      ;
 +19       WRITE !!,"  Total number of 301.5 records deleted: "_IVMCTR
 +20       KILL DA,DFN,DIK,IVMYR,IVMDA,IVMTR,IVMCTR
 +21      ;
 +22      ;
 +23      ; Send notification to the IVM Center once the facility has installed
 +24      ; IVM*2*1 patch in production account.
 +25      ;
 +26       IF 'IVMPROD
               KILL IVMPROD
               QUIT 
 +27       NEW DIFROM
 +28       WRITE !!,"Sending a 'completed installation' notice to the IVM Center... "
 +29       SET XMSUB="IVM*2*1 PATCH INSTALLATION"
 +30       SET XMDUZ="IVM PACKAGE"
 +31       SET XMY("WEATHERLY@IVM.DOMAIN.EXT")=""
           SET XMY(DUZ)=""
           SET XMY(.5)=""
 +32       SET XMTEXT="IVMTEXT("
 +33       SET IVMX=$$SITE^VASITE
 +34       SET IVMTEXT(1)="  Facility:                   "_$PIECE(IVMX,"^",2)
 +35       SET IVMTEXT(2)="  Station Number:             "_$PIECE(IVMX,"^",3)
 +36      ;
 +37       DO NOW^%DTC
           SET Y=%
           DO DD^%DT
 +38       SET IVMTEXT(3)="  Installed IVM*2*1 patch on: "_Y
 +39       DO ^XMD
           WRITE "done."
 +40       KILL IVMPROD,IVMTEXT,IVMX,XMDUZ,XMSUB,XMTEXT,XMY,%
 +41       QUIT 
 +42      ;
TEXT      ; Text for help for production/test question
 +1       ;;If you are currently installing this IVM package in a production
 +2       ;;account, you must answer P.  If you are installing in a test account
 +3       ;;you must answer T.
 +4       ;;
 +5       ;;The answer to this question is extremely important as it determines
 +6       ;;where income data for patients gets transmitted.  Test data must not
 +7       ;;be transmitted to the IVM Center's production account.  Production
 +8       ;;data, likewise, will not be evaluated properly if it is not sent to
 +9       ;;the IVM Center's production account.
 +10      ;;
 +11      ;;Enter '^' to abort this installation.
 +12      ;;
 +13      ;;QUIT