[613] | 1 | EASXDRPT ;ALB/AEG - DUP PT RELATION REPORT ;7-12-02
|
---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**10**;Mar 15,2001
|
---|
| 3 | ;
|
---|
| 4 | RPT ; Option Entry Point.
|
---|
| 5 | D TEXT^EASXDRUT
|
---|
| 6 | W !
|
---|
| 7 | ;
|
---|
| 8 | EN1 ; Device Handler.
|
---|
| 9 | N %ZIS
|
---|
| 10 | S %ZIS="QM" D ^%ZIS
|
---|
| 11 | I POP W !!,?5,"REPORT CANCELLED!",$C(7),! G STOPIT
|
---|
| 12 | I $D(IO("Q")) D QUEIT G STOPIT
|
---|
| 13 | I '$D(IO("Q")) D Q
|
---|
| 14 | .I $E(IOST,1,2)="C-" D WAIT^DICD,START Q
|
---|
| 15 | .E D START Q
|
---|
| 16 | Q
|
---|
| 17 | ;
|
---|
| 18 | START ;
|
---|
| 19 | D SETUP^EASXDRUT
|
---|
| 20 | D INIT,FIND,PURGE
|
---|
| 21 | D PRINT^EASXRPT1
|
---|
| 22 | D QUIT
|
---|
| 23 | Q
|
---|
| 24 | ;
|
---|
| 25 | INIT ; Setup scratch globals and initialize processing.
|
---|
| 26 | N EASA,EASB,EASC,EASAA,EASAB,EASAC,QUO
|
---|
| 27 | S QUO=""""
|
---|
| 28 | F EASA=1,2 D
|
---|
| 29 | .F EASB=1,2 D
|
---|
| 30 | ..F EASC=1,2 D
|
---|
| 31 | ...S EASAA=$S(EASA=1:"EASXDRPT",1:"DECEASED")
|
---|
| 32 | ...S EASAB=$S(EASB=1:"CATC",1:"CATOTHER")
|
---|
| 33 | ...S EASAC=$S(EASC=1:"NOCMOR",1:"CMORE")
|
---|
| 34 | ...S ROOT(EASA,EASB,EASC)="^TMP("_QUO_EASAA_QUO_","_QUO_EASAB_QUO_","_QUO_EASAC_QUO_","_$J_")"
|
---|
| 35 | ...Q
|
---|
| 36 | ..Q
|
---|
| 37 | .Q
|
---|
| 38 | Q
|
---|
| 39 | ;
|
---|
| 40 | FIND ; Search for potential dups in file #408.12
|
---|
| 41 | N EASDOD,EASMTS,EASSRC,SRC,REC12,EASPER,EASREL,EASACT,EASCNT
|
---|
| 42 | N NODE
|
---|
| 43 | S DFN=0
|
---|
| 44 | F S DFN=$O(^DGPR(408.12,"B",DFN)) Q:DFN'>0 D
|
---|
| 45 | .S EASDOD=$S($$GET1^DIQ(2,DFN_",",.351,"I")]"":2,1:1)
|
---|
| 46 | .S EASMTS=$S($P($$LST^DGMTU(DFN),U,4)="C":1,1:2)
|
---|
| 47 | .; The following call is supported via DBIA #2701
|
---|
| 48 | .S SRC=$$IFVCCI^MPIF001(DFN)
|
---|
| 49 | .S EASSRC=$S(SRC=1:2,1:1)
|
---|
| 50 | .S REC12=0
|
---|
| 51 | .F S REC12=$O(^DGPR(408.12,"B",DFN,REC12)) Q:REC12'>0 D
|
---|
| 52 | ..S NODE=$G(^DGPR(408.12,REC12,0))
|
---|
| 53 | ..S EASPER=$$GET1^DIQ(408.12,REC12_",",.03,"E")
|
---|
| 54 | ..S:EASPER']"" EASPER="NO PERSON ENTRY"
|
---|
| 55 | ..S EASREL=$$GET1^DIQ(408.12,REC12_",",.02,"E")
|
---|
| 56 | ..S:EASREL']"" EASREL="NO RELATION ENTRY"
|
---|
| 57 | ..S EASCNT=1
|
---|
| 58 | ..I $D(DUPS(DFN,EASREL,EASPER)) D
|
---|
| 59 | ...S EASCNT=$O(DUPS(DFN,EASREL,EASPER,""),-1)+1
|
---|
| 60 | ..S DUPS(DFN,EASREL,EASPER,EASCNT)=REC12
|
---|
| 61 | ..I EASREL="NO RELATION ENTRY" D Q
|
---|
| 62 | ...S @ROOT(EASDOD,EASMTS,EASSRC)@("NO RELATION",DFN,EASCNT)=REC12_U_EASPER
|
---|
| 63 | ..I EASPER="NO PERSON ENTRY" D Q
|
---|
| 64 | ...S @ROOT(EASDOD,EASMTS,EASSRC)@("NO PERSON",DFN,EASCNT)=REC12_U_EASREL
|
---|
| 65 | ..S EASACT=$$ACTIVE(REC12)
|
---|
| 66 | ..S @ROOT(EASDOD,EASMTS,EASSRC)@(DFN,EASREL,EASCNT)=REC12_U_EASPER_U_EASACT
|
---|
| 67 | .K DUPS(DFN)
|
---|
| 68 | Q
|
---|
| 69 | ;
|
---|
| 70 | ACTIVE(REC12) ; Is relation entry active ?
|
---|
| 71 | N RETV,EASSUB,EASTIEN,ACTF
|
---|
| 72 | S (RETV,ACTF)="",EASSUB=0
|
---|
| 73 | F S EASSUB=$O(^DGPR(408.12,REC12,"E",EASSUB)) Q:EASSUB'>0 D Q:$L(RETV,"~")>1
|
---|
| 74 | .S ACTF=$$GET1^DIQ(408.1275,EASSUB_","_REC12_",",".02")
|
---|
| 75 | .Q:ACTF']"" RETV
|
---|
| 76 | .S EASTIEN=$$GET1^DIQ(408.1275,EASSUB_","_REC12_",",.04,"I")
|
---|
| 77 | .S EASTIEN=$S(EASTIEN>0:$$GET1^DIQ(408.31,EASTIEN_",",.019,"I"),1:"")
|
---|
| 78 | .S EASTIEN=$S(EASTIEN>0:$$GET1^DIQ(408.33,EASTIEN_",",.01,"E"),1:"")
|
---|
| 79 | .S RETV=ACTF_"~"_EASTIEN_"~"_EASSUB
|
---|
| 80 | Q RETV
|
---|
| 81 | ;
|
---|
| 82 | PURGE ; Purge non-duplicate from temp globals.
|
---|
| 83 | N AA,AB,AC
|
---|
| 84 | F AA=1,2 F AB=1,2 F AC=1,2 D MORE
|
---|
| 85 | Q
|
---|
| 86 | ;
|
---|
| 87 | MORE ; Purge of non-dups continued.
|
---|
| 88 | N DFN,REL,LSTNUM,CNT,NODE2,CNT2
|
---|
| 89 | S (LNAME,DFN)=0
|
---|
| 90 | F S DFN=$O(@ROOT(AA,AB,AC)@(DFN)) Q:DFN'>0 D
|
---|
| 91 | .S REL=""
|
---|
| 92 | .F S REL=$O(@ROOT(AA,AB,AC)@(DFN,REL)) Q:REL']"" D
|
---|
| 93 | ..S LSTNUM=$O(@ROOT(AA,AB,AC)@(DFN,REL,""),-1)
|
---|
| 94 | ..I $D(@ROOT(AA,AB,AC)@(DFN,REL,LSTNUM,"E")) D Q
|
---|
| 95 | ...S LNAME=$S($L(REL)>LNAME:$L(REL),1:LNAME)
|
---|
| 96 | ..D NAME
|
---|
| 97 | ..I $O(@ROOT(AA,AB,AC)@(DFN,REL,""))=LSTNUM D Q
|
---|
| 98 | ...K @ROOT(AA,AB,AC)@(DFN,REL,LSTNUM)
|
---|
| 99 | ..S CNT=""
|
---|
| 100 | ..F S CNT=$O(@ROOT(AA,AB,AC)@(DFN,REL,CNT)) Q:CNT'>0 D
|
---|
| 101 | ...S NODE2=@ROOT(AA,AB,AC)@(DFN,REL,CNT)
|
---|
| 102 | ...I $P(NODE2,U,4)']"" D
|
---|
| 103 | ....K @ROOT(AA,AB,AC)@(DFN,REL,CNT)
|
---|
| 104 | ...I $P(NODE2,U,4)]"" D
|
---|
| 105 | ....S LNAME=$S($L(REL)>LNAME:$L(REL),1:LNAME)
|
---|
| 106 | ...Q
|
---|
| 107 | ..Q
|
---|
| 108 | .Q
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | NAME ; Check names
|
---|
| 112 | N CNT,CHKNAME,CNT2
|
---|
| 113 | S CNT=""
|
---|
| 114 | F S CNT=$O(@ROOT(AA,AB,AC)@(DFN,REL,CNT)) Q:CNT'>0 D
|
---|
| 115 | .S CHKNAME=$P($G(@ROOT(AA,AB,AC)@(DFN,REL,CNT)),U,2)
|
---|
| 116 | .I CHKNAME["MERGING" D
|
---|
| 117 | ..S $P(@ROOT(AA,AB,AC)@(DFN,REL,CNT),U,4)="SHOULD BE MERGED"
|
---|
| 118 | .I $P($G(@ROOT(AA,AB,AC)@(DFN,REL,CNT)),U,4)]"" Q
|
---|
| 119 | .S CNT2=CNT
|
---|
| 120 | .F S CNT2=$O(@ROOT(AA,AB,AC)@(DFN,REL,CNT2)) Q:CNT2'>0 D
|
---|
| 121 | ..I CHKNAME'=$P($G(@ROOT(AA,AB,AC)@(DFN,REL,CNT2)),U,2) Q
|
---|
| 122 | ..S $P(@ROOT(AA,AB,AC)@(DFN,REL,CNT2),U,4)="SHOULD BE MERGED"
|
---|
| 123 | ..S $P(@ROOT(AA,AB,AC)@(DFN,REL,CNT),U,4)="SHOULD BE MERGED"
|
---|
| 124 | Q
|
---|
| 125 | ;
|
---|
| 126 | QUIT ; Cleanup and quit.
|
---|
| 127 | N A,B,C
|
---|
| 128 | F A=1,2 D
|
---|
| 129 | .F B=1,2 D
|
---|
| 130 | ..F C=1,2 K @ROOT(A,B,C)
|
---|
| 131 | K DUPS,LNAME,POP,ROOT,ZTSK
|
---|
| 132 | K COL1,COL2,COL3,COL4,COL5,COL6,COL7,DAL,EQL,FSTP
|
---|
| 133 | Q
|
---|
| 134 | STOPIT ;
|
---|
| 135 | Q
|
---|
| 136 | QUEIT ; Que task
|
---|
| 137 | N ZTDESC,ZTRTN,ZTSAVE
|
---|
| 138 | S ZTDESC="EAS DUPLICATE PT REL REPORT",ZTRTN="START^EASXDRPT"
|
---|
| 139 | S ZTSAVE("*")=""
|
---|
| 140 | W !
|
---|
| 141 | D ^%ZTLOAD
|
---|
| 142 | I $G(ZTSK)>0 W !!,">>> Task Number #"_$G(ZTSK)_" queued. <<<",! H .5
|
---|
| 143 | D HOME^%ZIS
|
---|
| 144 | Q
|
---|