| 1 | PXRMG2E2 ;SLC/JVS -GEC #2 EXTRACT #2  ;7/14/05  08:32
 | 
|---|
| 2 |  ;;2.0;CLINICAL REMINDERS;**2,4**;Feb 04, 2005;Build 21
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;Variables
 | 
|---|
| 6 |  ;CNTREF=The unique counted Referral number
 | 
|---|
| 7 |  ;DA    =DA or Ien of the Health Factor
 | 
|---|
| 8 |  ;REF   =REFERRAL NUMBER
 | 
|---|
| 9 |  ;ARY   =Array that is ordering through
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 | EN ;Entry Point
 | 
|---|
| 12 |  ;SEND IN
 | 
|---|
| 13 |  ;BDT,EDT,QUARTER
 | 
|---|
| 14 |  ;-----TEMPORARY-----
 | 
|---|
| 15 |  ;K ^TMP("PXRMGEC",$J)
 | 
|---|
| 16 |  ;-----TEMPORARY-----
 | 
|---|
| 17 |  N CR1,CR2,CR3,CR4,CRITER,FOUND,CNT,ARY
 | 
|---|
| 18 |  N M1,M2,M3,BDTEDT
 | 
|---|
| 19 |  ;---TEMPORARY
 | 
|---|
| 20 |  ;S QUARTER=1
 | 
|---|
| 21 |  ;---TEMORARY
 | 
|---|
| 22 |  S CRITER=0,FOUND=0,CNT=0
 | 
|---|
| 23 |  D PROGRAM^PXRMG2E4,CRITER4^PXRMG2E3
 | 
|---|
| 24 |  I $D(YEAR),$D(QUARTER) D
 | 
|---|
| 25 |  .S BDTEDT=$$FMDATE(YEAR,QUARTER)
 | 
|---|
| 26 |  .S BDT=$P(BDTEDT,"^",1)
 | 
|---|
| 27 |  .S EDT=$P(BDTEDT,"^",2)
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  D E^PXRMG2E1("HS",1,BDT,EDT,"F",DFNONLY,TPAT)
 | 
|---|
| 30 |  K VDOC
 | 
|---|
| 31 |  ;This creates the following array besides the HS array
 | 
|---|
| 32 |  ;TMP("PXRMGEC",$J,"GEC2",CNTREF,DA,AGE FLAG,APPOINTMENTS,MONTH)=""
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
 | 
|---|
| 35 |  S REF=0 F  S REF=$O(@ARY@(REF)) Q:REF<1  D
 | 
|---|
| 36 |  .I QUARTER=1 S M1=1,M2=2,M3=3
 | 
|---|
| 37 |  .I QUARTER=2 S M1=4,M2=5,M3=6
 | 
|---|
| 38 |  .I QUARTER=3 S M1=7,M2=8,M3=9
 | 
|---|
| 39 |  .I QUARTER=4 S M1=10,M2=11,M3=12
 | 
|---|
| 40 |  .D PRE(REF)
 | 
|---|
| 41 |  D POST
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;======================================
 | 
|---|
| 44 | FMDATE(YEAR,QUARTER) ;Get BDT and EDT from year and quarter
 | 
|---|
| 45 |  Q:YEAR=""
 | 
|---|
| 46 |  Q:QUARTER=""
 | 
|---|
| 47 |  Q:QUARTER>4
 | 
|---|
| 48 |  Q:QUARTER=0
 | 
|---|
| 49 |  N YER,QAR,BDT,EDT
 | 
|---|
| 50 |  S YER=YEAR-1700
 | 
|---|
| 51 |  I QUARTER=1 S BDT=YER_"0101",EDT=YER_"0331"
 | 
|---|
| 52 |  I QUARTER=2 S BDT=YER_"0401",EDT=YER_"0630"
 | 
|---|
| 53 |  I QUARTER=3 S BDT=YER_"0701",EDT=YER_"0930"
 | 
|---|
| 54 |  I QUARTER=4 S BDT=YER_"1001",EDT=YER_"1231"
 | 
|---|
| 55 |  Q BDT_"^"_EDT
 | 
|---|
| 56 |  ;======================================
 | 
|---|
| 57 | GET(REF) ;Get Criteria
 | 
|---|
| 58 |  N DFN,MONTH,NAME,SSN,PROG
 | 
|---|
| 59 |  S (CR1,CR2,CR3,CR4,CRITER)=0
 | 
|---|
| 60 |  S CR1=$$C1^PXRMG2S1(REF)
 | 
|---|
| 61 |  S CR2=$$C2^PXRMG2S1(REF)
 | 
|---|
| 62 |  S CR3=$$C3^PXRMG2S1(REF)
 | 
|---|
| 63 |  S CR4=$$C4^PXRMG2S1(REF)
 | 
|---|
| 64 |  S DFN=$P(CR4,"^",2)
 | 
|---|
| 65 |  S MONTH=$P(CR4,"^",3)
 | 
|---|
| 66 |  S NAME=$P(^DPT(DFN,0),"^",1)
 | 
|---|
| 67 |  S SSN=$P(CR4,"^",4)
 | 
|---|
| 68 |  S DATE=$P(CR4,"^",5)
 | 
|---|
| 69 |  S PROG=$P(CR4,"^",6)
 | 
|---|
| 70 |  S CR4=+CR4
 | 
|---|
| 71 |  I CR1=1 S CRITER="1"
 | 
|---|
| 72 |  I CR2=1 S CRITER=$S(CRITER=0:2,1:CRITER_",2")
 | 
|---|
| 73 |  I CR3=1 S CRITER=$S(CRITER=0:3,1:CRITER_",3")
 | 
|---|
| 74 |  I CR4=1 S CRITER=$S(CRITER=0:4,1:CRITER_",4")
 | 
|---|
| 75 |  S ^TMP("PXRMGEC",$J,"GEC2","RPT",NAME,SSN,DATE,CRITER,PROG)=""
 | 
|---|
| 76 |  Q CRITER
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 | PRE(REF) ;Pre Process array by Program and Month
 | 
|---|
| 79 |  N ARY
 | 
|---|
| 80 |  S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
 | 
|---|
| 81 |  I $D(@ARY@(REF,$O(P441(0)))),$D(@ARY@(REF,$O(P449(0)))) D
 | 
|---|
| 82 |  .S @ARY@("ADHC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
 | 
|---|
| 83 |  I $D(@ARY@(REF,$O(P4410(0)))),$D(@ARY@(REF,$O(P449(0)))) D
 | 
|---|
| 84 |  .S @ARY@("HHHA",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
 | 
|---|
| 85 |  I $D(@ARY@(REF,$O(P4412(0)))),$D(@ARY@(REF,$O(P449(0)))) D
 | 
|---|
| 86 |  .S @ARY@("VAIHR",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
 | 
|---|
| 87 |  I $D(@ARY@(REF,$O(P451(0)))),$D(@ARY@(REF,$O(P452(0)))) D
 | 
|---|
| 88 |  .S @ARY@("CC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | MONTH(REF,ARY) ;Get month out of array
 | 
|---|
| 92 |  Q:REF=""
 | 
|---|
| 93 |  Q:ARY=""
 | 
|---|
| 94 |  N IEN,AGE,APP,DFN,MON
 | 
|---|
| 95 |  S IEN=$O(@ARY@(REF,0))
 | 
|---|
| 96 |  S AGE=$O(@ARY@(REF,IEN,-1))
 | 
|---|
| 97 |  S APP=$O(@ARY@(REF,IEN,AGE,-1))
 | 
|---|
| 98 |  S DFN=$O(@ARY@(REF,IEN,AGE,APP,0))
 | 
|---|
| 99 |  S MON=$O(@ARY@(REF,IEN,AGE,APP,DFN,0))
 | 
|---|
| 100 |  Q MON
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | PIECE(CRITER) ;Get the piece in the array the criter goes into
 | 
|---|
| 103 |  N PIECE
 | 
|---|
| 104 |  I CRITER=0 S PIECE=5
 | 
|---|
| 105 |  I CRITER=1 S PIECE=6
 | 
|---|
| 106 |  I CRITER=2 S PIECE=7
 | 
|---|
| 107 |  I CRITER=3 S PIECE=8
 | 
|---|
| 108 |  I CRITER=4 S PIECE=9
 | 
|---|
| 109 |  I CRITER="1,2" S PIECE=10
 | 
|---|
| 110 |  I CRITER="1,3" S PIECE=11
 | 
|---|
| 111 |  I CRITER="1,4" S PIECE=12
 | 
|---|
| 112 |  I CRITER="2,3" S PIECE=13
 | 
|---|
| 113 |  I CRITER="2,4" S PIECE=14
 | 
|---|
| 114 |  I CRITER="3,4" S PIECE=15
 | 
|---|
| 115 |  I CRITER="1,2,3" S PIECE=16
 | 
|---|
| 116 |  I CRITER="1,2,4" S PIECE=17
 | 
|---|
| 117 |  I CRITER="1,3,4" S PIECE=18
 | 
|---|
| 118 |  I CRITER="2,3,4" S PIECE=19
 | 
|---|
| 119 |  I CRITER="1,2,3,4" S PIECE=20
 | 
|---|
| 120 |  Q PIECE
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | POST ;Set the Statistical Arrays
 | 
|---|
| 123 |  D START
 | 
|---|
| 124 |  N PROG,MON,REF,PIE,MONX,SITE,STOP,ARY,X,Y
 | 
|---|
| 125 |  S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
 | 
|---|
| 126 |  S PROG="ADH" F  S PROG=$O(@ARY@(PROG)) Q:PROG=""  D
 | 
|---|
| 127 |  .S MON=0 F  S MON=$O(@ARY@(PROG,MON)) Q:MON=""  D
 | 
|---|
| 128 |  ..Q:MON'=M1&(MON'=M2)&(MON'=M3)
 | 
|---|
| 129 |  ..S CNT=0
 | 
|---|
| 130 |  ..S REF=0 F  S REF=$O(@ARY@(PROG,MON,REF)) Q:REF=""  D
 | 
|---|
| 131 |  ...S CNT=CNT+1
 | 
|---|
| 132 |  ...S PIE=0 F  S PIE=$O(@ARY@(PROG,MON,REF,PIE)) Q:PIE=""  D
 | 
|---|
| 133 |  ....I MON=1!(MON=4)!(MON=7)!(MON=10) S MONX=1
 | 
|---|
| 134 |  ....I MON=2!(MON=5)!(MON=8)!(MON=11) S MONX=2
 | 
|---|
| 135 |  ....I MON=3!(MON=6)!(MON=9)!(MON=12) S MONX=3
 | 
|---|
| 136 |  ....S Y=$P($G(STAT(PROG,MONX)),",",PIE)
 | 
|---|
| 137 |  ....S Y=Y+1,$P(STAT(PROG,MONX),",",PIE)=Y
 | 
|---|
| 138 |  ....S $P(STAT(PROG,MONX),",",2)=MON
 | 
|---|
| 139 |  ....S $P(STAT(PROG,MONX),",",4)=CNT
 | 
|---|
| 140 |  Q
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 | START ; Start the STAT(PROG,MON) ARRAYS
 | 
|---|
| 143 |  N I,SITE,F,S,T
 | 
|---|
| 144 |  I QUARTER=1 S F=1,S=2,T=3
 | 
|---|
| 145 |  I QUARTER=2 S F=4,S=5,T=6
 | 
|---|
| 146 |  I QUARTER=3 S F=7,S=8,T=9
 | 
|---|
| 147 |  I QUARTER=4 S F=10,S=11,T=12
 | 
|---|
| 148 |  S SITE=$P($$SITE^VASITE,"^",3)
 | 
|---|
| 149 |  F I=1:1:3 S STAT("ADHC",I)=SITE_",,"_"ADHC"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
 | 
|---|
| 150 |  .I I=1 S $P(STAT("ADHC",I),",",2)=F
 | 
|---|
| 151 |  .I I=2 S $P(STAT("ADHC",I),",",2)=S
 | 
|---|
| 152 |  .I I=3 S $P(STAT("ADHC",I),",",2)=T
 | 
|---|
| 153 |  F I=1:1:3 S STAT("HHHA",I)=SITE_",,"_"HHHA"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
 | 
|---|
| 154 |  .I I=1 S $P(STAT("HHHA",I),",",2)=F
 | 
|---|
| 155 |  .I I=2 S $P(STAT("HHHA",I),",",2)=S
 | 
|---|
| 156 |  .I I=3 S $P(STAT("HHHA",I),",",2)=T
 | 
|---|
| 157 |  F I=1:1:3 S STAT("CC",I)=SITE_",,"_"CC"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
 | 
|---|
| 158 |  .I I=1 S $P(STAT("CC",I),",",2)=F
 | 
|---|
| 159 |  .I I=2 S $P(STAT("CC",I),",",2)=S
 | 
|---|
| 160 |  .I I=3 S $P(STAT("CC",I),",",2)=T
 | 
|---|
| 161 |  F I=1:1:3 S STAT("VAIHR",I)=SITE_",,"_"VAIHR"_",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" D
 | 
|---|
| 162 |  .I I=1 S $P(STAT("VAIHR",I),",",2)=F
 | 
|---|
| 163 |  .I I=2 S $P(STAT("VAIHR",I),",",2)=S
 | 
|---|
| 164 |  .I I=3 S $P(STAT("VAIHR",I),",",2)=T
 | 
|---|
| 165 |  Q
 | 
|---|
| 166 | WRITE ;Write to screen the STAT array
 | 
|---|
| 167 |  N PROG,MON
 | 
|---|
| 168 |  W !,"An Email containing this information will be sent to all those who are listed"
 | 
|---|
| 169 |  W !,"in the ""G.GEC2 NATIONAL ROLLUP"" mail group",!
 | 
|---|
| 170 |  S PROG="AD" F  S PROG=$O(STAT(PROG)) Q:PROG=""  D
 | 
|---|
| 171 |  .S MON=0 F  S MON=$O(STAT(PROG,MON)) Q:MON=""  D
 | 
|---|
| 172 |  ..W !,$G(STAT(PROG,MON))
 | 
|---|
| 173 |  W !!,"The above information is a statistical compilation of the"
 | 
|---|
| 174 |  W !,"information seen in the local view of this option."
 | 
|---|
| 175 |  W !!,"Thanks in advance",!!
 | 
|---|
| 176 |  D MAIL^PXRMG2M1
 | 
|---|
| 177 |  D EXIT
 | 
|---|
| 178 |  Q
 | 
|---|
| 179 |  ;=================================================
 | 
|---|
| 180 | EXIT ;Exit and Clean up Variables
 | 
|---|
| 181 |  K C1101,C1107,C1108
 | 
|---|
| 182 |  K C1410,C1412,C1414,C142,C144,C146,C148,C166,C171
 | 
|---|
| 183 |  K C2110,C2114,C2118,C212,C2120,C214,C216,C218,C221,C224,C226
 | 
|---|
| 184 |  K C2710,C272,C274,C276,C278,C286
 | 
|---|
| 185 |  K P441,P4410,P4412,P449,P451,P452
 | 
|---|
| 186 |  K STAT
 | 
|---|
| 187 |  Q
 | 
|---|