Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DG53351

DG53351.m

Go to the documentation of this file.
  1. DG53351 ;ALB/JAN - Post-Install to clean Enrollment Status ; 6-22-2001
  1. ;;5.3;Registration;**351,1015**;June 22, 2001;Build 21
  1. ;
  1. ; This routine is a post-installation for patch DG*5.3*351
  1. ;
  1. ; The clean up is required as there are a number of multiple entries
  1. ; in the "AENRC" cross-reference of the PATIENT file (#2). When
  1. ; appropriate, this field will be populated via a trigger on ENROLLMENT
  1. ; STATUS field (#.04) of the PATIENT ENROLLMENT file (#27.11).
  1. ;
  1. ; ^XTMP("DG-DTC") track number of records processed.
  1. ; ^XTMP("DG-AENRC") contains multiple entries in "AENRC" x-reference
  1. ;
  1. POST ;
  1. ; Post-install set up checkpoint and tracking global...
  1. K ^XTMP("DG-DTC"),^XTMP("DG-AENRC")
  1. N %,I,X,X1,X2
  1. I $D(XPDNM) D
  1. . ; checkpoints
  1. .I $$VERCP^XPDUTL("STATUS")'>0 D
  1. ..S %=$$NEWCP^XPDUTL("STATUS","",0)
  1. .I $$VERCP^XPDUTL("DGDFN")'>0 D
  1. ..S %=$$NEWCP^XPDUTL("DGDFN","",0)
  1. ;
  1. ; initialize tracking global (see text above for description)...
  1. F I="DTC","AENRC" D
  1. .I $D(^XTMP("DG-"_I)) Q
  1. .S X1=DT,X2=30 D C^%DTC
  1. .S ^XTMP("DG-"_I,0)=X_U_$$DT^XLFDT_"^DG*5.3*351 POST INSTALL "_$S(I="DTC":"record count",I="AENRC":"records corrected",1:"filing errors")
  1. I '$D(XPDNM) S ^XTMP("DG-DTC",1)=0
  1. ;
  1. EN ; begin processing...
  1. N %
  1. ; check status and if root checkpoint has not completed start clean up
  1. I $D(XPDNM) S %=$$VERCP^XPDUTL("STATUS") I '$D(^XTMP("DG-DTC",1)) S ^XTMP("DG-DTC",1)=0
  1. I $G(%)="" S %=0
  1. I %=0 D EN1
  1. Q
  1. ;
  1. EN1 ; begin cleanup
  1. D DGLOOP
  1. ; send mailman message to users with results
  1. D MAIL^DG53351M
  1. I $D(XPDNM) S %=$$COMCP^XPDUTL("STATUS"),%=$$COMCP^XPDUTL("DGDFN")
  1. D BMES^XPDUTL(" >> cleanup process completed "_$$FMTE^XLFDT($$NOW^XLFDT))
  1. K ^XTMP("DG-DTC"),^XTMP("DG-AENRC")
  1. Q
  1. ;
  1. DGLOOP ;
  1. ; write message to installation device and to INSTALL file (#9.7)
  1. D BMES^XPDUTL("POST INSTALLATION PROCESSING")
  1. D MES^XPDUTL("----------------------------")
  1. D MES^XPDUTL("Once the post-install is completed, a mail message will")
  1. D MES^XPDUTL("be sent that will report the number of multiple entries")
  1. D MES^XPDUTL("of enrollment status that were cleaned up.")
  1. D BMES^XPDUTL("Beginning clean-up process "_$$FMTE^XLFDT($$NOW^XLFDT))
  1. ;
  1. ; process control body
  1. N DGDFN,IEN,STATUS,DGSTATUS
  1. ;
  1. ; start loop "AENRC" x-ref in PATIENT file to search for multiple
  1. ; entries of current enrollment status.
  1. I '$D(XPDNM) S STATUS=0
  1. I $D(XPDNM) S STATUS=$$PARCP^XPDUTL("STATUS"),DGDFN=$$PARCP^XPDUTL("DGDFN")
  1. ; loop "AENRC" x-ref and check for multiple entries
  1. N DGPAT,DGSSN,DGENR
  1. F S STATUS=$O(^DPT("AENRC",STATUS)) Q:'STATUS D
  1. .S DGDFN=0 F S DGDFN=$O(^DPT("AENRC",STATUS,DGDFN)) Q:'DGDFN D
  1. ..S DGSTATUS=$$STATUS^DGENA(DGDFN)
  1. ..I $G(DGSTATUS)="",$D(^DPT("AENRC",STATUS,DGDFN)) D
  1. ...S DGENR="NULL VALUE IN FILE #27.11" D KILL1
  1. ..I +$G(DGSTATUS),STATUS'=DGSTATUS,$D(^DPT("AENRC",DGSTATUS,DGDFN)) D
  1. ...S DGENR=$P($G(^DGEN(27.15,STATUS,0)),U) D KILL1
  1. ...S ^DPT("AENRC",DGSTATUS,DGDFN)=""
  1. ..I $D(XDPNM) S %=$$UPCP^XPDUTL("DGDFN")
  1. .I $D(XPDNM) S %=$$UPCP^XPDUTL("STATUS")
  1. Q
  1. KILL1 ; Cleanup those entries in "AENRC" x-ref in the PATIENT file that have
  1. ; multiple entries
  1. S DGPAT=$P($G(^DPT(DGDFN,0)),U),DGSSN=$E($P($G(^DPT(DGDFN,0)),U,9),6,9)
  1. S ^XTMP("DG-AENRC",DGDFN,STATUS)=DGPAT_"^"_DGSSN_"^"_DGENR
  1. S ^XTMP("DG-DTC",1)=$G(^XTMP("DG-DTC",1))+1
  1. D KILL1^DGENDD(DGDFN)
  1. Q