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
|
---|