| 1 | IVM289A ;ALB/RMM IVM Patient File Xref Cleanup Utility ; 01/27/2004
|
---|
| 2 | ;;2.0;INCOME VERIFICATION MATCH;**89**;21-OCT-94
|
---|
| 3 | ;
|
---|
| 4 | ; Global Counter Storage Details:
|
---|
| 5 | ; ^XTMP("IVM289",0,"IVM") Count of invalid 301.5 pointers
|
---|
| 6 | ; ^XTMP("IVM289",0,"DGMT") Count of invalid 408.31 pointers
|
---|
| 7 | ; ^XTMP("IVM289",0,"DUP") Count of Duplicate xref entries
|
---|
| 8 | ; ^XTMP("IVM289",0,"TOT") Total count of all xrefs
|
---|
| 9 | ; ^XTMP("IVM289",0,"DEL") Total count of all xrefs purged
|
---|
| 10 | ;
|
---|
| 11 | EN ; Begin processing
|
---|
| 12 | ; Write message to installation device and to INSTALL file (#9.7)
|
---|
| 13 | D BMES^XPDUTL("IVM Patient File Xref Cleanup Post Install")
|
---|
| 14 | D MES^XPDUTL("When the the cleanup has completed, a MailMan message")
|
---|
| 15 | D MES^XPDUTL("messawill bt containing a recap of the deleted")
|
---|
| 16 | D MES^XPDUTL("cross references.")
|
---|
| 17 | D BMES^XPDUTL("Beginning clean-up process "_$$FMTE^XLFDT($$NOW^XLFDT))
|
---|
| 18 | ;
|
---|
| 19 | INIT ; Initialize tracking global (See text above for description)
|
---|
| 20 | N %,X,X1,X2,I
|
---|
| 21 | S X1=DT,X2=120 D C^%DTC
|
---|
| 22 | S ^XTMP("IVM289",0)=X_"^"_$$DT^XLFDT_"^IVM Patient File Xref Cleanup"
|
---|
| 23 | ;
|
---|
| 24 | F I="IVM","DGMT","DUP","TOT","DEL" S ^XTMP("IVM289",0,I)=0
|
---|
| 25 | ;
|
---|
| 26 | START ;
|
---|
| 27 | N TYPE,FDATE,IVMPAT,MTIEN
|
---|
| 28 | F TYPE="AC","AD" D
|
---|
| 29 | .S FDATE=0
|
---|
| 30 | .F S FDATE=$O(^IVM(301.5,TYPE,FDATE)) Q:('FDATE) D
|
---|
| 31 | ..S IVMPAT=0
|
---|
| 32 | ..F S IVMPAT=$O(^IVM(301.5,TYPE,FDATE,IVMPAT)) Q:'IVMPAT D
|
---|
| 33 | ...S MTIEN=$O(^IVM(301.5,TYPE,FDATE,IVMPAT,""),-1)
|
---|
| 34 | ...;
|
---|
| 35 | ...D CKMULT
|
---|
| 36 | ...I FDATE<DT D DUP,TOT,DEL,DELX(MTIEN) Q
|
---|
| 37 | ...;
|
---|
| 38 | ...I '$D(^IVM(301.5,IVMPAT,0)) D IVM,TOT,DEL,DELX(MTIEN) Q
|
---|
| 39 | ...;
|
---|
| 40 | ...I '$D(^DGMT(408.31,MTIEN,0)) D DGMT,TOT,DEL,DELX(MTIEN) Q
|
---|
| 41 | ...;
|
---|
| 42 | ...D TOT
|
---|
| 43 | ;
|
---|
| 44 | ;
|
---|
| 45 | ; Send a mailman msg to the user with the results
|
---|
| 46 | D MAIL^IVM289M
|
---|
| 47 | D MES^XPDUTL(" >>clean-up process completed "_$$FMTE^XLFDT($$NOW^XLFDT))
|
---|
| 48 | Q
|
---|
| 49 | ;
|
---|
| 50 | CKMULT ; Remove duplicate entries from cross reference, leaving last entry
|
---|
| 51 | N MTREC S MTREC=0
|
---|
| 52 | F S MTREC=$O(^IVM(301.5,TYPE,FDATE,IVMPAT,MTREC)) Q:(MTREC=MTIEN!('MTREC)) D DUP,TOT,DEL,DELX(MTREC)
|
---|
| 53 | Q
|
---|
| 54 | ;
|
---|
| 55 | ; Delete Cross Reference
|
---|
| 56 | DELX(MTIEN) K ^IVM(301.5,TYPE,FDATE,IVMPAT,MTIEN) Q
|
---|
| 57 | ;
|
---|
| 58 | ; Increment Global Counters
|
---|
| 59 | IVM S ^XTMP("IVM289",0,"IVM")=^XTMP("IVM289",0,"IVM")+1 Q
|
---|
| 60 | DGMT S ^XTMP("IVM289",0,"DGMT")=^XTMP("IVM289",0,"DGMT")+1 Q
|
---|
| 61 | DUP S ^XTMP("IVM289",0,"DUP")=^XTMP("IVM289",0,"DUP")+1 Q
|
---|
| 62 | TOT S ^XTMP("IVM289",0,"TOT")=^XTMP("IVM289",0,"TOT")+1 Q
|
---|
| 63 | DEL S ^XTMP("IVM289",0,"DEL")=^XTMP("IVM289",0,"DEL")+1 Q
|
---|
| 64 | Q
|
---|