86 lines
3.0 KiB
Mathematica
86 lines
3.0 KiB
Mathematica
IVMYZ3 ;ALB/SEK - PURGE INCORRECT IVM PATIENT & TRANSMISSION RECORDS ; 13-JUNE-95
|
|
;;Version 2.0 ; INCOME VERIFICATION MATCH ;**3**; 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*3 patch.
|
|
;
|
|
S IVMQUIT="" D ENV I '$D(IVMQUIT) W !,"PATCH IVM*2*3 INITIALIZATION ABORTED..." G Q
|
|
D TYPE Q:'$D(IVMPROD)
|
|
D PURGE
|
|
D NOTE
|
|
Q K IVMQUIT,IVMPROD
|
|
Q
|
|
;
|
|
ENV ; make sure required patches are installed
|
|
N X
|
|
S X="DGDEP" X ^%ZOSF("TEST") E K IVMQUIT W !?3,*7,"Patch DG*5.3*45 must be installed first!"
|
|
S X="IVMUM9" X ^%ZOSF("TEST") E K IVMQUIT W !?3,*7,"Patch IVM*2*1 must be installed first!"
|
|
I '$F($T(+2^DGMTCOU1),54) K IVMQUIT W !?3,*7,"Patch DG*5.3*54 must be installed first!"
|
|
Q
|
|
;
|
|
TYPE ; Ask user if this installation is for a test account or live account.
|
|
N I
|
|
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, Process Aborted..."
|
|
S IVMPROD=Y
|
|
K DIR,DTOUT,DUOUT,DIRUT,DIROUT,X,Y
|
|
I IVMPROD=""!(IVMPROD["^") K IVMPROD Q
|
|
Q
|
|
;
|
|
;
|
|
NOTE ; Send notification to the IVM Center once the facility has installed
|
|
; IVM*2*3 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*3 PATCH INSTALLATION"
|
|
S XMDUZ="IVM PACKAGE"
|
|
S XMY("WEATHERLY@IVM.VA.GOV")="",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*3 patch on: "_Y
|
|
D ^XMD W "done."
|
|
K IVMPROD,IVMTEXT,IVMX,XMDUZ,XMSUB,XMTEXT,XMY,%
|
|
Q
|
|
;
|
|
;
|
|
PURGE ; do the purge
|
|
S IVMCTR=0
|
|
F IVMYR=-10000,-910000 D
|
|
.S DFN="" F 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 IVM PATIENT (#301.5) records deleted: "_IVMCTR
|
|
K DA,DFN,DIK,IVMYR,IVMDA,IVMTR,IVMCTR
|
|
Q
|
|
;
|
|
;
|
|
TEXT ; Text for help for production/test question
|
|
;;If you are currently installing this IVM patch 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 process.
|
|
;;
|
|
;;QUIT
|