| 1 | DVBCPURG ;ALB/GTS-557/THM-C&P PURGING PROGRAM ; 10/28/90  8:40 PM
 | 
|---|
| 2 |  ;;2.7;AMIE;**48**;Apr 10, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;** Version Changes
 | 
|---|
| 5 |  ;   2.7 - GTS/Coded to purge 396.95  (Enhc 13)
 | 
|---|
| 6 |  ;   2.7 - JLU/Utilize the 2507 purge parameter
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 | SETUP I '$D(DT) S X="T" D ^%DT S DT=Y
 | 
|---|
| 9 |  S HIST=$$PAR()
 | 
|---|
| 10 |  S X1=DT,X2=HIST,X2=-X2 D C^%DTC S PDATE=X
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | GO F TYP="C","CT","X","RX" F REGOFF=0:0 S REGOFF=$O(^DVB(396.3,"AF",TYP,REGOFF)) Q:REGOFF=""  F REQDA=0:0 S REQDA=$O(^DVB(396.3,"AF",TYP,REGOFF,REQDA)) Q:REQDA=""  D KILL
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 | EXIT K DIK,X,Y,REGOFF,DA,I,J,PDATE,X1,X2,HIST,%,%DT,%H,TYP,REQDA,EXMDA
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | KILL I '$D(^DVB(396.3,REQDA,0)) K ^DVB(396.3,"AF",TYP,REGOFF,REQDA)
 | 
|---|
| 18 |  I '$D(^DVB(396.3,REQDA,0)) Q  ;clean up bad index records
 | 
|---|
| 19 |  S X1=PDATE
 | 
|---|
| 20 |  S X2=$S(TYP["X":$P(^DVB(396.3,REQDA,0),U,19),1:$P(^DVB(396.3,REQDA,0),U,7))
 | 
|---|
| 21 |  D ^%DTC I (+X>0),('$D(^DVB(396.3,"AORQ",REQDA))) D APPTLP,EXAMLP S DIK="^DVB(396.3,",DA=REQDA D ^DIK
 | 
|---|
| 22 |  K DIK,DA
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | APPTLP ;  **  Loop through existing appointments  **
 | 
|---|
| 26 |  N LPCNT
 | 
|---|
| 27 |  S LPCNT=""
 | 
|---|
| 28 |  F  S LPCNT=$O(^DVB(396.95,"AR",REQDA,LPCNT)) Q:LPCNT=""  DO
 | 
|---|
| 29 |  .S DIK="^DVB(396.95,",DA=LPCNT D ^DIK K DA,DIK
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | EXAMLP ;  **  Loop through existing exams  **
 | 
|---|
| 33 |  F EXMDA=0:0 S EXMDA=$O(^DVB(396.4,"C",REQDA,EXMDA)) Q:EXMDA=""  D KEXAMS
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 | KEXAMS ;  ** Delete exams on the request  **
 | 
|---|
| 37 |  S DA=EXMDA,DIK="^DVB(396.4," D ^DIK K DIK,DA
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | PAR() ;function call to get the number of days to retain the 2507 requests.
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  N IFN,Y
 | 
|---|
| 43 |  S IFN=$$IFNPAR^DVBAUTL3()
 | 
|---|
| 44 |  I IFN DO
 | 
|---|
| 45 |  .S Y=$P(^DVB(396.1,IFN,0),U,11)
 | 
|---|
| 46 |  .I 'Y!(Y<120) S Y=99999
 | 
|---|
| 47 |  I 'IFN S Y=99999
 | 
|---|
| 48 |  Q Y
 | 
|---|