DGPTAPP1 ;MTC/ALB - PTF Purge/Archive - Purge Continued ; 21 DEC 1992
;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
;
;
PURGE(TMP) ;-- Purge entry point. This function will loop thru the
; PTF records found in the A/P template pointed to by TMP.
; Starting with the PTF Release file, PTF Close Out file, Census
; Work file and finally the PTF record in file #45.
;
; INPUT : TMP - Entry in PTF A/P History File (Sort Template Pointer)
;
N PTF,REC
S REC=$P($G(^DGP(45.62,+TMP,0)),U,8) Q:'REC
S PTF=0 F S PTF=$O(^DIBT(REC,1,PTF)) Q:'PTF D
. D REL(PTF),CLOSE(PTF),CENSUS(PTF),DELPTF(PTF),UPDATE(PTF)
Q
;
REL(PTF) ;-- This function will delete the entries in the PTF
; Release File (#45.83) Associated with the record PTF.
;
; INPUT : PTF - PTF record to delete
;
N I
G:'$D(^DGP(45.83,"C",PTF)) RELQ
S I=0 F S I=$O(^DGP(45.83,"C",PTF,I)) Q:'I D
. S DA(1)=I,DA=PTF,DIK="^DGP(45.83,"_DA(1)_",""P""," D ^DIK
RELQ K DA,DIK
Q
;
CLOSE(PTF) ;-- This function will delete the entries in the PTF Close
; Out file (#45.84), associated with the record PTF.
;
; INPUT : PTF - PTF record to delete
;
G:'$D(^DGP(45.84,PTF)) CLOSEQ
S DA=PTF,DIK="^DGP(45.84," D ^DIK
CLOSEQ K DA,DIK
Q
;
CENSUS(PTF) ;-- This function will delete the entries in the PTF Close
; Out file (#45.84), associated with the record PTF.
;
; INPUT : PTF - PTF record to delete
;
G:'$D(^DG(45.85,"PTF",PTF)) CENSUSQ
S DA=$O(^DG(45.85,"PTF",PTF,0)),DIK="^DG(45.85," D ^DIK
CENSUSQ K DA,DIK
Q
;
DELPTF(PTF) ;-- This function will delete the entries in the PTF
; file (#45), associated with the record PTF.
;
; INPUT : PTF - PTF record to delete
;
G:'$D(^DGPT(PTF)) DELPTFQ
S DA=PTF,DIK="^DGPT(" D ^DIK
DELPTFQ K DA,DIK
Q
;
UPDATE(PTF) ; This function will update the entry in the Patient Movement
; file (#405) cooresponding to the PTF record. The PTF record entry
; in field 16 will be deleted and the PTF PURGED STATUS field 26
; will be set to 1. This field will be used to prevent re-creation
; of the PTF record from a past admission.
;
S DA=0 F S DA=$O(^DGPM("APTF",PTF,DA)) Q:'DA D
. S DIE="^DGPM(",DR=".16///@;.26////1" D ^DIE
K DA,DIE,DR
Q
;
WARNING() ; This function will display a warning to the user before the
; purge of the data will occur. A '1' will be returned if the purge
; should continue.
; OUTPUT : 1 - DO NOT CONTINUE
; 0 - OK
N FLAG
S FLAG=0
W !,*7,"This option will permently purge data from the Data Base."
W !,"Are you sure that you want to continue ?",!
Q FLAG
;
DGPTAPP1 ;MTC/ALB - PTF Purge/Archive - Purge Continued ; 21 DEC 1992
+1 ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
+2 ;
+3 ;
PURGE(TMP) ;-- Purge entry point. This function will loop thru the
+1 ; PTF records found in the A/P template pointed to by TMP.
+2 ; Starting with the PTF Release file, PTF Close Out file, Census
+3 ; Work file and finally the PTF record in file #45.
+4 ;
+5 ; INPUT : TMP - Entry in PTF A/P History File (Sort Template Pointer)
+6 ;
+7 NEW PTF,REC
+8 SET REC=$PIECE($GET(^DGP(45.62,+TMP,0)),U,8)
IF 'REC
QUIT
+9 SET PTF=0
FOR
SET PTF=$ORDER(^DIBT(REC,1,PTF))
IF 'PTF
QUIT
Begin DoDot:1
+10 DO REL(PTF)
DO CLOSE(PTF)
DO CENSUS(PTF)
DO DELPTF(PTF)
DO UPDATE(PTF)
End DoDot:1
+11 QUIT
+12 ;
REL(PTF) ;-- This function will delete the entries in the PTF
+1 ; Release File (#45.83) Associated with the record PTF.
+2 ;
+3 ; INPUT : PTF - PTF record to delete
+4 ;
+5 NEW I
+6 IF '$DATA(^DGP(45.83,"C",PTF))
GOTO RELQ
+7 SET I=0
FOR
SET I=$ORDER(^DGP(45.83,"C",PTF,I))
IF 'I
QUIT
Begin DoDot:1
+8 SET DA(1)=I
SET DA=PTF
SET DIK="^DGP(45.83,"_DA(1)_",""P"","
DO ^DIK
End DoDot:1
RELQ KILL DA,DIK
+1 QUIT
+2 ;
CLOSE(PTF) ;-- This function will delete the entries in the PTF Close
+1 ; Out file (#45.84), associated with the record PTF.
+2 ;
+3 ; INPUT : PTF - PTF record to delete
+4 ;
+5 IF '$DATA(^DGP(45.84,PTF))
GOTO CLOSEQ
+6 SET DA=PTF
SET DIK="^DGP(45.84,"
DO ^DIK
CLOSEQ KILL DA,DIK
+1 QUIT
+2 ;
CENSUS(PTF) ;-- This function will delete the entries in the PTF Close
+1 ; Out file (#45.84), associated with the record PTF.
+2 ;
+3 ; INPUT : PTF - PTF record to delete
+4 ;
+5 IF '$DATA(^DG(45.85,"PTF",PTF))
GOTO CENSUSQ
+6 SET DA=$ORDER(^DG(45.85,"PTF",PTF,0))
SET DIK="^DG(45.85,"
DO ^DIK
CENSUSQ KILL DA,DIK
+1 QUIT
+2 ;
DELPTF(PTF) ;-- This function will delete the entries in the PTF
+1 ; file (#45), associated with the record PTF.
+2 ;
+3 ; INPUT : PTF - PTF record to delete
+4 ;
+5 IF '$DATA(^DGPT(PTF))
GOTO DELPTFQ
+6 SET DA=PTF
SET DIK="^DGPT("
DO ^DIK
DELPTFQ KILL DA,DIK
+1 QUIT
+2 ;
UPDATE(PTF) ; This function will update the entry in the Patient Movement
+1 ; file (#405) cooresponding to the PTF record. The PTF record entry
+2 ; in field 16 will be deleted and the PTF PURGED STATUS field 26
+3 ; will be set to 1. This field will be used to prevent re-creation
+4 ; of the PTF record from a past admission.
+5 ;
+6 SET DA=0
FOR
SET DA=$ORDER(^DGPM("APTF",PTF,DA))
IF 'DA
QUIT
Begin DoDot:1
+7 SET DIE="^DGPM("
SET DR=".16///@;.26////1"
DO ^DIE
End DoDot:1
+8 KILL DA,DIE,DR
+9 QUIT
+10 ;
WARNING() ; This function will display a warning to the user before the
+1 ; purge of the data will occur. A '1' will be returned if the purge
+2 ; should continue.
+3 ; OUTPUT : 1 - DO NOT CONTINUE
+4 ; 0 - OK
+5 NEW FLAG
+6 SET FLAG=0
+7 WRITE !,*7,"This option will permently purge data from the Data Base."
+8 WRITE !,"Are you sure that you want to continue ?",!
+9 QUIT FLAG
+10 ;