1 | RGMTETOT ;BIR/CML-Compile Totals for Site Exceptions ;11/15/01
|
---|
2 | ;;1.0;CLINICAL INFO RESOURCE NETWORK;**20,30,43,45**;30 Apr 99;Build 9
|
---|
3 | ;
|
---|
4 | ;Reference to ^DPT("AICNL" supported by IA #2070
|
---|
5 | ;
|
---|
6 | ;Variable RGHLMQ cannot be killed in this routine, it is needed for the remote query
|
---|
7 | ;
|
---|
8 | ;Use this routine to compile totals of a site's exceptions in file #991.1
|
---|
9 | S DUMP=0 G START
|
---|
10 | ;
|
---|
11 | DUMP1 ;Use this call to dump all data in ascii format for table
|
---|
12 | S DUMP=1 G START
|
---|
13 | ;
|
---|
14 | DUMP2 ;Use this call to dump data in ascii format for table - just for exceptions sites have to deal with
|
---|
15 | S DUMP=2
|
---|
16 | ;
|
---|
17 | START ;
|
---|
18 | ;do purge of any dups for POTENTIAL MATCH Exceptions
|
---|
19 | K TYPEARR,^XTMP("RGMT","HLMQETOT")
|
---|
20 | S ^XTMP("RGMT",0)=$$FMADD^XLFDT(DT,30)_"^"_$$NOW^XLFDT_"^MPI/PD Maintenance Data"
|
---|
21 | D PURGE
|
---|
22 | ;create type array from file 991.11
|
---|
23 | S TYPE=214 F S TYPE=$O(^RGHL7(991.11,TYPE)) Q:'TYPE I TYPE'=218 S TYPEARR(TYPE)=0
|
---|
24 | ;
|
---|
25 | ;start loop
|
---|
26 | S TYPE=214 F S TYPE=$O(^RGHL7(991.1,"AC",TYPE)) Q:'TYPE D
|
---|
27 | .Q:TYPE=218
|
---|
28 | .S IEN1=0 F S IEN1=$O(^RGHL7(991.1,"AC",TYPE,IEN1)) Q:'IEN1 D
|
---|
29 | ..S IEN2=0 F S IEN2=$O(^RGHL7(991.1,"AC",TYPE,IEN1,IEN2)) Q:'IEN2 D
|
---|
30 | ...I '$D(^RGHL7(991.1,IEN1,1,IEN2,0)) Q
|
---|
31 | ...S STAT=$P(^RGHL7(991.1,IEN1,1,IEN2,0),"^",5) I STAT<1 S TYPEARR(TYPE)=TYPEARR(TYPE)+1
|
---|
32 | ;
|
---|
33 | PRT ;
|
---|
34 | S GRAND=0
|
---|
35 | S SITENM=$P($$SITE^VASITE(),"^",2),$P(LN,"-",81)=""
|
---|
36 | D NOW^%DTC S RUNDT=$$FMTE^XLFDT($E(%,1,12))
|
---|
37 | ;
|
---|
38 | PRT0 I 'DUMP D
|
---|
39 | .W !!,"Exception Totals for ",SITENM
|
---|
40 | .W !,"Printed ",RUNDT,!,LN
|
---|
41 | .S TYPE=0 F S TYPE=$O(TYPEARR(TYPE)) Q:'TYPE I +TYPEARR(TYPE) D
|
---|
42 | ..S GRAND=GRAND+TYPEARR(TYPE)
|
---|
43 | ..W !!,"TYPE: ",TYPE,?12,$P($T(@TYPE),";;",2),?67,"TOTAL = ",$J(TYPEARR(TYPE),4)
|
---|
44 | ..W !,"DESCRIPTION:"
|
---|
45 | ..S TXT=0 F S TXT=$O(^RGHL7(991.11,TYPE,99,TXT)) Q:'TXT W !,^RGHL7(991.11,TYPE,99,TXT,0)
|
---|
46 | .W !!?56,"TOTAL EXCEPTIONS: ",$J(GRAND,5)
|
---|
47 | ;
|
---|
48 | PRT1 I DUMP=1 D
|
---|
49 | .W !!,"At this point it is necessary for you to increase the right margin."
|
---|
50 | .W !,"At the DEVICE prompt enter=> ;255"
|
---|
51 | .W ! D ^%ZIS I POP W !,"DOWNLOAD ABORTED!" Q
|
---|
52 | .W !!,"Data string=Site;Run Date;Date CIRN Installed;Exceptions 215-234"
|
---|
53 | .S STR=SITENM_";"_RUNDT_";"
|
---|
54 | .S TYPE=0 F S TYPE=$O(TYPEARR(TYPE)) Q:'TYPE D
|
---|
55 | ..S STR=STR_";"_TYPEARR(TYPE)
|
---|
56 | .W !!,STR
|
---|
57 | ;
|
---|
58 | PRT2 I DUMP=2 D
|
---|
59 | .S ICN=0,LOCCNT=0 F S ICN=$O(^DPT("AICNL",1,ICN)) Q:'ICN S LOCCNT=LOCCNT+1
|
---|
60 | .S SITEIEN=+$$SITE^VASITE(),STANUM=$P($$SITE^VASITE(),"^",3)
|
---|
61 | .I '$D(RGHLMQ) W !!,"Data string:"
|
---|
62 | .I '$D(RGHLMQ) W !,"Site;Sta#;;;LocICNs,215,216,217,218,227,234"
|
---|
63 | .S STR=SITENM_";"_STANUM_";;;"_LOCCNT
|
---|
64 | .F TYPE=215,216,217,218,227,234 S STR=STR_";"_TYPEARR(TYPE)
|
---|
65 | .I '$D(RGHLMQ) W !!,STR
|
---|
66 | .I $D(RGHLMQ) S ^XTMP("RGMT","HLMQETOT",STANUM,1)=STR
|
---|
67 | ;
|
---|
68 | QUIT ;
|
---|
69 | K %,CIRNIEN,CNT,DA,DIK,DUMP,DUPCNT,EXCDT,GRAND,ICN,IEN,IEN1,IEN2,LN,LOCCNT,OLDDT,OLDNODE,PTNM
|
---|
70 | K RGDFN,RUNDT,SITEIEN,SITENM,STANUM,STAT,STR,TXT,TYPE,XCNT,HOME,DFN,RCNT,VADM
|
---|
71 | K ^XTMP("RGMT","ETOT")
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | PURGE ;
|
---|
75 | I '$D(RGHLMQ) W !!,"...purging duplicate Potential Match Exceptions",!
|
---|
76 | K ^XTMP("RGMT","ETOT")
|
---|
77 | S (RGDFN,CNT,XCNT,DUPCNT)=0,HOME=$$SITE^VASITE()
|
---|
78 | F S RGDFN=$O(^RGHL7(991.1,"ADFN",218,RGDFN)) Q:'RGDFN D
|
---|
79 | .S IEN=0
|
---|
80 | .F S IEN=$O(^RGHL7(991.1,"ADFN",218,RGDFN,IEN)) Q:'IEN D
|
---|
81 | ..S IEN2=0
|
---|
82 | ..F S IEN2=$O(^RGHL7(991.1,"ADFN",218,RGDFN,IEN,IEN2)) Q:'IEN2 D
|
---|
83 | ...I '$D(^RGHL7(991.1,IEN,0)) Q
|
---|
84 | ...S CNT=CNT+1
|
---|
85 | ...S EXCDT=$P(^RGHL7(991.1,IEN,0),"^",3)
|
---|
86 | ...I '$D(^XTMP("RGMT","ETOT",RGDFN)) D Q
|
---|
87 | ....S XCNT=XCNT+1
|
---|
88 | ....D SETTMP
|
---|
89 | ...I $D(^XTMP("RGMT","ETOT",RGDFN)) D
|
---|
90 | ....S OLDNODE=^XTMP("RGMT","ETOT",RGDFN)
|
---|
91 | ....S OLDDT=$P(OLDNODE,"^")
|
---|
92 | ....I EXCDT>OLDDT D Q
|
---|
93 | .....S DA(1)=$P(OLDNODE,"^",2),DA=$P(OLDNODE,"^",3)
|
---|
94 | .....D DELDUP
|
---|
95 | .....D SETTMP
|
---|
96 | ....I OLDDT>EXCDT!(OLDDT=EXCDT) D
|
---|
97 | .....S DA(1)=IEN,DA=IEN2
|
---|
98 | .....D DELDUP
|
---|
99 | I '$D(RGHLMQ) W !,DUPCNT," duplicate patient entries for POTENTIAL MATCH exceptions were identified"
|
---|
100 | I '$D(RGHLMQ) W !,"and deleted from the CIRN HL7 EXCEPTION LOG file (#991.1)."
|
---|
101 | ;
|
---|
102 | K ^XTMP("RGMT","ETOT")
|
---|
103 | S (RCNT,RGDFN)=0 N IEN,SUB
|
---|
104 | F S RGDFN=$O(^RGHL7(991.1,"ADFN",218,RGDFN)) Q:'RGDFN D
|
---|
105 | .;S ICN=+$$GETICN^MPIF001(RGDFN)
|
---|
106 | .;I $E(ICN,1,3)=$P(HOME,"^",3)!(ICN<0) D
|
---|
107 | .;**43 shouldn't check for locals or no ICN, check for processed/not processed
|
---|
108 | .S IEN=0 F S IEN=$O(^RGHL7(991.1,"ADFN",218,RGDFN,IEN)) Q:IEN="" D
|
---|
109 | ..S SUB=$O(^RGHL7(991.1,"ADFN",218,RGDFN,IEN,""))
|
---|
110 | ..I $P($G(^RGHL7(991.1,IEN,1,SUB,0)),"^",5)=0 D
|
---|
111 | ...S DFN=RGDFN D DEM^VADPT
|
---|
112 | ...I VADM(1)=""!(VADM(2)="") Q
|
---|
113 | ...S RCNT=RCNT+1
|
---|
114 | ...S ^XTMP("RGMT","ETOT",VADM(1),RGDFN)=$P(VADM(2),"^")_"^"_$P(VADM(3),"^",2)
|
---|
115 | ;
|
---|
116 | ;count the number of patients who need to be resolved
|
---|
117 | S PTNM="",CNT=0
|
---|
118 | F S PTNM=$O(^XTMP("RGMT","ETOT",PTNM)) Q:PTNM="" D
|
---|
119 | .S RGDFN=0
|
---|
120 | .F S RGDFN=$O(^XTMP("RGMT","ETOT",PTNM,RGDFN)) Q:'RGDFN S CNT=CNT+1
|
---|
121 | S TYPEARR(218)=CNT
|
---|
122 | Q
|
---|
123 | ;
|
---|
124 | SETTMP ;set TMP global for patient check
|
---|
125 | S ^XTMP("RGMT","ETOT",RGDFN)=EXCDT_"^"_IEN_"^"_IEN2
|
---|
126 | Q
|
---|
127 | ;
|
---|
128 | DELDUP ;delete patient dups from file
|
---|
129 | S DUPCNT=DUPCNT+1
|
---|
130 | S DIK="^RGHL7(991.1,"_DA(1)_",1,"
|
---|
131 | D ^DIK K DIK,DA
|
---|
132 | Q
|
---|
133 | ;
|
---|
134 | 215 ;;(Death Entry on MPI not in VISTA)
|
---|
135 | 216 ;;(Death Entry on Vista not in MPI)
|
---|
136 | 217 ;;(Death Entries Mismatch)
|
---|
137 | 218 ;;(Potential Matches Returned)
|
---|
138 | 227 ;;(Multiple ICNs)
|
---|
139 | 234 ;;(Primary View Reject)
|
---|