Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXRMG2E2

PXRMG2E2.m

Go to the documentation of this file.
  1. PXRMG2E2 ;SLC/JVS -GEC #2 EXTRACT #2 ;7/14/05 08:32
  1. ;;2.0;CLINICAL REMINDERS;**2,4**;Feb 04, 2005;Build 21
  1. Q
  1. ;
  1. ;Variables
  1. ;CNTREF=The unique counted Referral number
  1. ;DA =DA or Ien of the Health Factor
  1. ;REF =REFERRAL NUMBER
  1. ;ARY =Array that is ordering through
  1. Q
  1. EN ;Entry Point
  1. ;SEND IN
  1. ;BDT,EDT,QUARTER
  1. ;-----TEMPORARY-----
  1. ;K ^TMP("PXRMGEC",$J)
  1. ;-----TEMPORARY-----
  1. N CR1,CR2,CR3,CR4,CRITER,FOUND,CNT,ARY
  1. N M1,M2,M3,BDTEDT
  1. ;---TEMPORARY
  1. ;S QUARTER=1
  1. ;---TEMORARY
  1. S CRITER=0,FOUND=0,CNT=0
  1. D PROGRAM^PXRMG2E4,CRITER4^PXRMG2E3
  1. I $D(YEAR),$D(QUARTER) D
  1. .S BDTEDT=$$FMDATE(YEAR,QUARTER)
  1. .S BDT=$P(BDTEDT,"^",1)
  1. .S EDT=$P(BDTEDT,"^",2)
  1. ;
  1. D E^PXRMG2E1("HS",1,BDT,EDT,"F",DFNONLY,TPAT)
  1. K VDOC
  1. ;This creates the following array besides the HS array
  1. ;TMP("PXRMGEC",$J,"GEC2",CNTREF,DA,AGE FLAG,APPOINTMENTS,MONTH)=""
  1. ;
  1. S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
  1. S REF=0 F S REF=$O(@ARY@(REF)) Q:REF<1 D
  1. .I QUARTER=1 S M1=1,M2=2,M3=3
  1. .I QUARTER=2 S M1=4,M2=5,M3=6
  1. .I QUARTER=3 S M1=7,M2=8,M3=9
  1. .I QUARTER=4 S M1=10,M2=11,M3=12
  1. .D PRE(REF)
  1. D POST
  1. Q
  1. ;======================================
  1. FMDATE(YEAR,QUARTER) ;Get BDT and EDT from year and quarter
  1. Q:YEAR=""
  1. Q:QUARTER=""
  1. Q:QUARTER>4
  1. Q:QUARTER=0
  1. N YER,QAR,BDT,EDT
  1. S YER=YEAR-1700
  1. I QUARTER=1 S BDT=YER_"0101",EDT=YER_"0331"
  1. I QUARTER=2 S BDT=YER_"0401",EDT=YER_"0630"
  1. I QUARTER=3 S BDT=YER_"0701",EDT=YER_"0930"
  1. I QUARTER=4 S BDT=YER_"1001",EDT=YER_"1231"
  1. Q BDT_"^"_EDT
  1. ;======================================
  1. GET(REF) ;Get Criteria
  1. N DFN,MONTH,NAME,SSN,PROG
  1. S (CR1,CR2,CR3,CR4,CRITER)=0
  1. S CR1=$$C1^PXRMG2S1(REF)
  1. S CR2=$$C2^PXRMG2S1(REF)
  1. S CR3=$$C3^PXRMG2S1(REF)
  1. S CR4=$$C4^PXRMG2S1(REF)
  1. S DFN=$P(CR4,"^",2)
  1. S MONTH=$P(CR4,"^",3)
  1. S NAME=$P(^DPT(DFN,0),"^",1)
  1. S SSN=$P(CR4,"^",4)
  1. S DATE=$P(CR4,"^",5)
  1. S PROG=$P(CR4,"^",6)
  1. S CR4=+CR4
  1. I CR1=1 S CRITER="1"
  1. I CR2=1 S CRITER=$S(CRITER=0:2,1:CRITER_",2")
  1. I CR3=1 S CRITER=$S(CRITER=0:3,1:CRITER_",3")
  1. I CR4=1 S CRITER=$S(CRITER=0:4,1:CRITER_",4")
  1. S ^TMP("PXRMGEC",$J,"GEC2","RPT",NAME,SSN,DATE,CRITER,PROG)=""
  1. Q CRITER
  1. ;
  1. PRE(REF) ;Pre Process array by Program and Month
  1. N ARY
  1. S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
  1. I $D(@ARY@(REF,$O(P441(0)))),$D(@ARY@(REF,$O(P449(0)))) D
  1. .S @ARY@("ADHC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
  1. I $D(@ARY@(REF,$O(P4410(0)))),$D(@ARY@(REF,$O(P449(0)))) D
  1. .S @ARY@("HHHA",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
  1. I $D(@ARY@(REF,$O(P4412(0)))),$D(@ARY@(REF,$O(P449(0)))) D
  1. .S @ARY@("VAIHR",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
  1. I $D(@ARY@(REF,$O(P451(0)))),$D(@ARY@(REF,$O(P452(0)))) D
  1. .S @ARY@("CC",$$MONTH(REF,ARY),REF,$$PIECE($$GET(REF)))=$$GET(REF)
  1. Q
  1. ;
  1. MONTH(REF,ARY) ;Get month out of array
  1. Q:REF=""
  1. Q:ARY=""
  1. N IEN,AGE,APP,DFN,MON
  1. S IEN=$O(@ARY@(REF,0))
  1. S AGE=$O(@ARY@(REF,IEN,-1))
  1. S APP=$O(@ARY@(REF,IEN,AGE,-1))
  1. S DFN=$O(@ARY@(REF,IEN,AGE,APP,0))
  1. S MON=$O(@ARY@(REF,IEN,AGE,APP,DFN,0))
  1. Q MON
  1. ;
  1. PIECE(CRITER) ;Get the piece in the array the criter goes into
  1. N PIECE
  1. I CRITER=0 S PIECE=5
  1. I CRITER=1 S PIECE=6
  1. I CRITER=2 S PIECE=7
  1. I CRITER=3 S PIECE=8
  1. I CRITER=4 S PIECE=9
  1. I CRITER="1,2" S PIECE=10
  1. I CRITER="1,3" S PIECE=11
  1. I CRITER="1,4" S PIECE=12
  1. I CRITER="2,3" S PIECE=13
  1. I CRITER="2,4" S PIECE=14
  1. I CRITER="3,4" S PIECE=15
  1. I CRITER="1,2,3" S PIECE=16
  1. I CRITER="1,2,4" S PIECE=17
  1. I CRITER="1,3,4" S PIECE=18
  1. I CRITER="2,3,4" S PIECE=19
  1. I CRITER="1,2,3,4" S PIECE=20
  1. Q PIECE
  1. ;
  1. POST ;Set the Statistical Arrays
  1. D START
  1. N PROG,MON,REF,PIE,MONX,SITE,STOP,ARY,X,Y
  1. S ARY="^TMP(""PXRMGEC"",$J,""GEC2"")"
  1. S PROG="ADH" F S PROG=$O(@ARY@(PROG)) Q:PROG="" D
  1. .S MON=0 F S MON=$O(@ARY@(PROG,MON)) Q:MON="" D
  1. ..Q:MON'=M1&(MON'=M2)&(MON'=M3)
  1. ..S CNT=0
  1. ..S REF=0 F S REF=$O(@ARY@(PROG,MON,REF)) Q:REF="" D
  1. ...S CNT=CNT+1
  1. ...S PIE=0 F S PIE=$O(@ARY@(PROG,MON,REF,PIE)) Q:PIE="" D
  1. ....I MON=1!(MON=4)!(MON=7)!(MON=10) S MONX=1
  1. ....I MON=2!(MON=5)!(MON=8)!(MON=11) S MONX=2
  1. ....I MON=3!(MON=6)!(MON=9)!(MON=12) S MONX=3
  1. ....S Y=$P($G(STAT(PROG,MONX)),",",PIE)
  1. ....S Y=Y+1,$P(STAT(PROG,MONX),",",PIE)=Y
  1. ....S $P(STAT(PROG,MONX),",",2)=MON
  1. ....S $P(STAT(PROG,MONX),",",4)=CNT
  1. Q
  1. ;
  1. START ; Start the STAT(PROG,MON) ARRAYS
  1. N I,SITE,F,S,T
  1. I QUARTER=1 S F=1,S=2,T=3
  1. I QUARTER=2 S F=4,S=5,T=6
  1. I QUARTER=3 S F=7,S=8,T=9
  1. I QUARTER=4 S F=10,S=11,T=12
  1. S SITE=$P($$SITE^VASITE,"^",3)
  1. 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
  1. .I I=1 S $P(STAT("ADHC",I),",",2)=F
  1. .I I=2 S $P(STAT("ADHC",I),",",2)=S
  1. .I I=3 S $P(STAT("ADHC",I),",",2)=T
  1. 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
  1. .I I=1 S $P(STAT("HHHA",I),",",2)=F
  1. .I I=2 S $P(STAT("HHHA",I),",",2)=S
  1. .I I=3 S $P(STAT("HHHA",I),",",2)=T
  1. 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
  1. .I I=1 S $P(STAT("CC",I),",",2)=F
  1. .I I=2 S $P(STAT("CC",I),",",2)=S
  1. .I I=3 S $P(STAT("CC",I),",",2)=T
  1. 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
  1. .I I=1 S $P(STAT("VAIHR",I),",",2)=F
  1. .I I=2 S $P(STAT("VAIHR",I),",",2)=S
  1. .I I=3 S $P(STAT("VAIHR",I),",",2)=T
  1. Q
  1. WRITE ;Write to screen the STAT array
  1. N PROG,MON
  1. W !,"An Email containing this information will be sent to all those who are listed"
  1. W !,"in the ""G.GEC2 NATIONAL ROLLUP"" mail group",!
  1. S PROG="AD" F S PROG=$O(STAT(PROG)) Q:PROG="" D
  1. .S MON=0 F S MON=$O(STAT(PROG,MON)) Q:MON="" D
  1. ..W !,$G(STAT(PROG,MON))
  1. W !!,"The above information is a statistical compilation of the"
  1. W !,"information seen in the local view of this option."
  1. W !!,"Thanks in advance",!!
  1. D MAIL^PXRMG2M1
  1. D EXIT
  1. Q
  1. ;=================================================
  1. EXIT ;Exit and Clean up Variables
  1. K C1101,C1107,C1108
  1. K C1410,C1412,C1414,C142,C144,C146,C148,C166,C171
  1. K C2110,C2114,C2118,C212,C2120,C214,C216,C218,C221,C224,C226
  1. K C2710,C272,C274,C276,C278,C286
  1. K P441,P4410,P4412,P449,P451,P452
  1. K STAT
  1. Q