[613] | 1 | GMRGARC0 ;HIRMFO/RM-ARCHIVE/PURGE UTILITY FOR GMR TEXT FILE ;4/15/96
|
---|
| 2 | ;;3.0;Text Generator;**1**;Jan 24, 1996
|
---|
| 3 | ;
|
---|
| 4 | EN1 ; Entry from the option Purge GMR Text File Data [GMRG-PURGE PT DATA]
|
---|
| 5 | ;
|
---|
| 6 | L +^GMRD(124.1,1,"PURGE"):1 I '$T W !!,"SOMEONE ELSE IS RUNNING THE PURGE OPTION, TRY AGAIN LATER!!" G Q
|
---|
| 7 | I $P($G(^GMRD(124.1,1,"PURGE")),"^") W !!,"THE GMR TEXT FILE PURGE IS ALREADY RUNNING, TRY AGAIN LATER!!" G UNL
|
---|
| 8 | K DIR S DIR("?")=" ENTER THE NUMBER OF MONTHS OF GMR TEXT DATA TO BE RETAINED.",DIR("?",1)=" YOU MUST RETAIN AT LEAST SIX MONTHS OF GMR TEXT DATA."
|
---|
| 9 | S DIR(0)="NAO^6:99999",DIR("A")="Enter number of months to RETAIN GMR Text data: " W ! D ^DIR K DIR G UNL:'Y
|
---|
| 10 | S GMRGPMO=Y,X="T-"_GMRGPMO_"M",%DT="" D ^%DT I Y<0 G UNL
|
---|
| 11 | S GMRGPURG=Y,GMRGPURG(0)=$$FMTE^XLFDT(Y)
|
---|
| 12 | S DIR("?")=" ANSWERING YES HERE CONFIRMS YOU WISH TO PURGE THE GMR TEXT DATA."
|
---|
| 13 | S DIR("A",1)="Are you sure you only want to retain data from "_GMRGPURG(0),DIR("A")="to today (Y/N): ",DIR(0)="YA" W ! D ^DIR K DIR I Y'=1 G UNL
|
---|
| 14 | S DIR("?")=" ANSWERING YES HERE WILL BEGIN THE PURGE.",DIR("B")="YES"
|
---|
| 15 | S DIR("A")="OK to proceed: ",DIR(0)="YA" W ! D ^DIR K DIR I Y'=1 G UNL
|
---|
| 16 | S ZTIO="",ZTRTN="START^GMRGARC0",ZTDESC="GMR Text File Date Purge",ZTSAVE("GMRGPURG")="" D ^%ZTLOAD I '$D(ZTSK) W !!,"Job not queued, please try again..." G UNL
|
---|
| 17 | W !!,"Job queued as task #"_ZTSK
|
---|
| 18 | S $P(^GMRD(124.1,1,"PURGE"),"^")=ZTSK
|
---|
| 19 | S DA=1,DIK="^GMRD(124.1,",DIK(1)=2 D IX1^DIK
|
---|
| 20 | K ZTSK
|
---|
| 21 | G UNL
|
---|
| 22 | START ; Enter here from queued job
|
---|
| 23 | ;
|
---|
| 24 | ; Input variable: GMRGPURG=date to end loop for data purge
|
---|
| 25 | ;
|
---|
| 26 | S GMRGDATE=0 F S GMRGDATE=$O(^GMR(124.3,"AUPDT",GMRGDATE)) Q:GMRGDATE'>0!(GMRGDATE>GMRGPURG)!$G(ZTSTOP) S GMRGPDA=0 F S GMRGPDA=$O(^GMR(124.3,"AUPDT",GMRGDATE,GMRGPDA)) Q:GMRGPDA'>0!$G(ZTSTOP) D
|
---|
| 27 | . S DA=0 F S DA=$O(^NURSC(216.8,"B",GMRGPDA,DA)) Q:DA'>0 S DIK="^NURSC(216.8," D ^DIK
|
---|
| 28 | . S DA=GMRGPDA,DIK="^GMR(124.3," D ^DIK
|
---|
| 29 | . I $$S^%ZTLOAD S ZTSTOP=1
|
---|
| 30 | . Q
|
---|
| 31 | I '$G(ZTSTOP) S DIE="^GMRD(124.1,",DA=1,DR="2///@" D ^DIE
|
---|
| 32 | Q ; Clean up and exit
|
---|
| 33 | I $D(ZTQUEUED),'$G(ZTSTOP) D
|
---|
| 34 | . S ZTREQ="@"
|
---|
| 35 | . N XQA,XQAMSG,XQAOPT,XQAROU,XQAID,XQADATA,XQAFLAG
|
---|
| 36 | . S XQA(DUZ)="",XQAMSG="Purge is completed. Restart journaling for the GMR and NURSC globals." D SETUP^XQALERT
|
---|
| 37 | . S XQA(DUZ)="",XQA("G.NURS-ADP")="",XQAMSG="Patient plan of care data older than "_$$FMTE^XLFDT(GMRGPURG,2)_" has been purged from the system." D SETUP^XQALERT
|
---|
| 38 | . Q
|
---|
| 39 | K %DT,DA,DIE,DIK,DIR,DR,GMRGDATE,GMRGPDA,GMRGPMO,GMRGPURG,X,Y D ^%ZISC
|
---|
| 40 | Q
|
---|
| 41 | UNL ; Unlock ^GMRD(124.1,1,"PURGE") and go to Q
|
---|
| 42 | L -^GMRD(124.1,1,"PURGE")
|
---|
| 43 | G Q
|
---|