| 1 | IVMYZ3 ;ALB/SEK - PURGE INCORRECT IVM PATIENT & TRANSMISSION RECORDS ; 13-JUNE-95 | 
|---|
| 2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**3**; 21-OCT-94 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ; this routine will delete ivm patient (#301.5) and ivm | 
|---|
| 5 | ; transmission log (#301.6) records for incorrect income years of | 
|---|
| 6 | ; -10000 & -910000. | 
|---|
| 7 | ; this routine will also send notification to the IVM Center once | 
|---|
| 8 | ; the facility has installed IVM*2*3 patch. | 
|---|
| 9 | ; | 
|---|
| 10 | S IVMQUIT="" D ENV I '$D(IVMQUIT) W !,"PATCH IVM*2*3 INITIALIZATION ABORTED..." G Q | 
|---|
| 11 | D TYPE Q:'$D(IVMPROD) | 
|---|
| 12 | D PURGE | 
|---|
| 13 | D NOTE | 
|---|
| 14 | Q K IVMQUIT,IVMPROD | 
|---|
| 15 | Q | 
|---|
| 16 | ; | 
|---|
| 17 | ENV ; make sure required patches are installed | 
|---|
| 18 | N X | 
|---|
| 19 | S X="DGDEP" X ^%ZOSF("TEST") E  K IVMQUIT W !?3,*7,"Patch DG*5.3*45 must be installed first!" | 
|---|
| 20 | S X="IVMUM9" X ^%ZOSF("TEST") E  K IVMQUIT W !?3,*7,"Patch IVM*2*1 must be installed first!" | 
|---|
| 21 | I '$F($T(+2^DGMTCOU1),54) K IVMQUIT W !?3,*7,"Patch DG*5.3*54 must be installed first!" | 
|---|
| 22 | Q | 
|---|
| 23 | ; | 
|---|
| 24 | TYPE ; Ask user if this installation is for a test account or live account. | 
|---|
| 25 | N I | 
|---|
| 26 | S DIR(0)="SM^1:PRODUCTION;0:TEST" | 
|---|
| 27 | S DIR("A")="Enter type of account you are installing in" | 
|---|
| 28 | S DIR("?")="Enter P for production account or T for test account" | 
|---|
| 29 | F I=1:1 S X=$P($T(TEXT+I),";;",2) Q:X="QUIT"  S DIR("?",I)=X | 
|---|
| 30 | D ^DIR | 
|---|
| 31 | I Y=""!(Y["^") W:Y="" !!,*7,"User Timed Out, Process Aborted..." | 
|---|
| 32 | S IVMPROD=Y | 
|---|
| 33 | K DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y | 
|---|
| 34 | I IVMPROD=""!(IVMPROD["^") K IVMPROD Q | 
|---|
| 35 | Q | 
|---|
| 36 | ; | 
|---|
| 37 | ; | 
|---|
| 38 | NOTE ; Send notification to the IVM Center once the facility has installed | 
|---|
| 39 | ; IVM*2*3 patch in production account. | 
|---|
| 40 | ; | 
|---|
| 41 | I 'IVMPROD K IVMPROD Q | 
|---|
| 42 | N DIFROM | 
|---|
| 43 | W !!,"Sending a 'completed installation' notice to the IVM Center... " | 
|---|
| 44 | S XMSUB="IVM*2*3 PATCH INSTALLATION" | 
|---|
| 45 | S XMDUZ="IVM PACKAGE" | 
|---|
| 46 | S XMY("WEATHERLY@IVM.VA.GOV")="",XMY(DUZ)="",XMY(.5)="" | 
|---|
| 47 | S XMTEXT="IVMTEXT(" | 
|---|
| 48 | S IVMX=$$SITE^VASITE | 
|---|
| 49 | S IVMTEXT(1)="  Facility:                   "_$P(IVMX,"^",2) | 
|---|
| 50 | S IVMTEXT(2)="  Station Number:             "_$P(IVMX,"^",3) | 
|---|
| 51 | ; | 
|---|
| 52 | D NOW^%DTC S Y=% D DD^%DT | 
|---|
| 53 | S IVMTEXT(3)="  Installed IVM*2*3 patch on: "_Y | 
|---|
| 54 | D ^XMD W "done." | 
|---|
| 55 | K IVMPROD,IVMTEXT,IVMX,XMDUZ,XMSUB,XMTEXT,XMY,% | 
|---|
| 56 | Q | 
|---|
| 57 | ; | 
|---|
| 58 | ; | 
|---|
| 59 | PURGE ;  do the purge | 
|---|
| 60 | S IVMCTR=0 | 
|---|
| 61 | F IVMYR=-10000,-910000 D | 
|---|
| 62 | .S DFN="" F  S DFN=$O(^IVM(301.5,"AYR",IVMYR,DFN)) Q:'DFN  D | 
|---|
| 63 | ..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 | 
|---|
| 64 | ...S IVMTR=0 F  S IVMTR=$O(^IVM(301.6,"B",IVMDA,IVMTR)) Q:'IVMTR  D | 
|---|
| 65 | ....S DIK="^IVM(301.6,",DA=IVMTR D ^DIK | 
|---|
| 66 | ; | 
|---|
| 67 | W !!,"  Total number of IVM PATIENT (#301.5) records deleted: "_IVMCTR | 
|---|
| 68 | K DA,DFN,DIK,IVMYR,IVMDA,IVMTR,IVMCTR | 
|---|
| 69 | Q | 
|---|
| 70 | ; | 
|---|
| 71 | ; | 
|---|
| 72 | TEXT ; Text for help for production/test question | 
|---|
| 73 | ;;If you are currently installing this IVM patch in a production | 
|---|
| 74 | ;;account, you must answer P.  If you are installing in a test account | 
|---|
| 75 | ;;you must answer T. | 
|---|
| 76 | ;; | 
|---|
| 77 | ;;The answer to this question is extremely important as it determines | 
|---|
| 78 | ;;where income data for patients gets transmitted.  Test data must not | 
|---|
| 79 | ;;be transmitted to the IVM Center's production account.  Production | 
|---|
| 80 | ;;data, likewise, will not be evaluated properly if it is not sent to | 
|---|
| 81 | ;;the IVM Center's production account. | 
|---|
| 82 | ;; | 
|---|
| 83 | ;;Enter '^' to abort this process. | 
|---|
| 84 | ;; | 
|---|
| 85 | ;;QUIT | 
|---|