- 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 Feb 18, 2025@23:28:41 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