PXRMGECW ;SLC/JVS -Extract data for GEC Reports Cont'd ;5/23/03 12:49
;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
Q
;
;Arrays
;^TMP("PXRMGEC",$J, = Root Reference
;"REF",DATE,DFN) = Number of HF in Referral
;"REFDFN",DFN) = Number of Referrals per Patient
;"HS" = Heath Summary Array
Q
;
PATIENT ;Patient,Count
K ^TMP("PXRMGEC",$J,"REFDFNN")
K ^TMP("PXRMGEC",$J,"REFDFN")
N DATE,DFN,SSN
S DATE="" F S DATE=$O(^TMP("PXRMGEC",$J,"REF",DATE)) Q:DATE="" D
.S DFN="" F S DFN=$O(^TMP("PXRMGEC",$J,"REF",DATE,DFN)) Q:DFN="" D
..S DFNXX=$P($G(^DPT(DFN,0)),"^",1)
..S SSN=$P($G(^DPT(DFN,0)),"^",9)
..I $D(^TMP("PXRMGEC",$J,"REFDFN",DFN)) S ^TMP("PXRMGEC",$J,"REFDFN",DFN)=$G(^TMP("PXRMGEC",$J,"REFDFN",DFN))+1
..E S ^TMP("PXRMGEC",$J,"REFDFN",DFN)=1
..I $D(^TMP("PXRMGEC",$J,"REFDFNN",DFNXX)) S ^TMP("PXRMGEC",$J,"REFDFNN",DFNXX)=$G(^TMP("PXRMGEC",$J,"REFDFNN",DFNXX))+1
..E S ^TMP("PXRMGEC",$J,"REFDFNN",DFNXX)=1
..I $D(^TMP("PXRMGEC",$J,"REFDFNN",DFNXX,SSN)) S ^TMP("PXRMGEC",$J,"REFDFNN",DFNXX,SSN)=$G(^TMP("PXRMGEC",$J,"REFDFNN",DFNXX,SSN))+1
..E S ^TMP("PXRMGEC",$J,"REFDFNN",DFNXX,SSN)=1
;
Q
LOCCNT ;Count by date
N LOC,DATE
S LOC="" F S LOC=$O(^TMP("PXRMGEC",$J,"REFLOC",LOC)) Q:LOC="" D
.S DATE=0 F S DATE=$O(^TMP("PXRMGEC",$J,"REFLOC",LOC,DATE)) Q:DATE="" D
..I $D(^TMP("PXRMGEC",$J,"REFLOCC",LOC)) S ^TMP("PXRMGEC",$J,"REFLOCC",LOC)=$G(^TMP("PXRMGEC",$J,"REFLOCC",LOC))+1
..E S ^TMP("PXRMGEC",$J,"REFLOCC",LOC)=1
Q
;
DOCCNT ;Count by date
N DOC,DATE,DIEN
S DOC="" F S DOC=$O(^TMP("PXRMGEC",$J,"REFDOC",DOC)) Q:DOC="" D
.S DATE=0 F S DATE=$O(^TMP("PXRMGEC",$J,"REFDOC",DOC,DATE)) Q:DATE="" D
..S DIEN=0 F S DIEN=$O(^TMP("PXRMGEC",$J,"REFDOC",DOC,DATE,DIEN)) Q:DIEN="" D
...I $D(^TMP("PXRMGEC",$J,"REFDOCC",DOC,DIEN)) S ^TMP("PXRMGEC",$J,"REFDOCC",DOC,DIEN)=$G(^TMP("PXRMGEC",$J,"REFDOCC",DOC,DIEN))+1
...E S ^TMP("PXRMGEC",$J,"REFDOCC",DOC,DIEN)=1
Q
;
DATECNT ;Count by date
N DATE,DFN
S DATE=0 F S DATE=$O(^TMP("PXRMGEC",$J,"REF",DATE)) Q:DATE="" D
.S DFN=0 F S DFN=$O(^TMP("PXRMGEC",$J,"REF",DATE,DFN)) Q:DFN="" D
..I $D(^TMP("PXRMGEC",$J,"REFDATE",$P(DATE,".",1))) S ^TMP("PXRMGEC",$J,"REFDATE",$P(DATE,".",1))=$G(^TMP("PXRMGEC",$J,"REFDATE",$P(DATE,".",1)))+1
..E S ^TMP("PXRMGEC",$J,"REFDATE",$P(DATE,".",1))=1
Q
;
INIT ;Initialize values in PCE DATA SOURCE FILE
N GEX,FLAG,III
S FLAG=0
I '$D(^PX(839.7,"B","GEC1")) S GEX(1,839.7,"+1,",.01)="GEC1",FLAG=1
I '$D(^PX(839.7,"B","GEC2")) S GEX(1,839.7,"+2,",.01)="GEC2",FLAG=1
I '$D(^PX(839.7,"B","GEC3")) S GEX(1,839.7,"+3,",.01)="GEC3",FLAG=1
I '$D(^PX(839.7,"B","GECF")) S GEX(1,839.7,"+4,",.01)="GECF",FLAG=1
I FLAG D UPDATE^DIE("","GEX(1)")
;CLEAN OUT 801.5
I $D(^PXRMD(801.5)) D
.S DIK="^PXRMD(801.5,"
.F III=1:1:1000 S DA=III D ^DIK
.K ^PXRMD(801.5,"ACOPY")
Q
PXRMGECW ;SLC/JVS -Extract data for GEC Reports Cont'd ;5/23/03 12:49
+1 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
+2 QUIT
+3 ;
+4 ;Arrays
+5 ;^TMP("PXRMGEC",$J, = Root Reference
+6 ;"REF",DATE,DFN) = Number of HF in Referral
+7 ;"REFDFN",DFN) = Number of Referrals per Patient
+8 ;"HS" = Heath Summary Array
+9 QUIT
+10 ;
PATIENT ;Patient,Count
+1 KILL ^TMP("PXRMGEC",$JOB,"REFDFNN")
+2 KILL ^TMP("PXRMGEC",$JOB,"REFDFN")
+3 NEW DATE,DFN,SSN
+4 SET DATE=""
FOR
SET DATE=$ORDER(^TMP("PXRMGEC",$JOB,"REF",DATE))
IF DATE=""
QUIT
Begin DoDot:1
+5 SET DFN=""
FOR
SET DFN=$ORDER(^TMP("PXRMGEC",$JOB,"REF",DATE,DFN))
IF DFN=""
QUIT
Begin DoDot:2
+6 SET DFNXX=$PIECE($GET(^DPT(DFN,0)),"^",1)
+7 SET SSN=$PIECE($GET(^DPT(DFN,0)),"^",9)
+8 IF $DATA(^TMP("PXRMGEC",$JOB,"REFDFN",DFN))
SET ^TMP("PXRMGEC",$JOB,"REFDFN",DFN)=$GET(^TMP("PXRMGEC",$JOB,"REFDFN",DFN))+1
+9 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFDFN",DFN)=1
+10 IF $DATA(^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX))
SET ^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX)=$GET(^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX))+1
+11 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX)=1
+12 IF $DATA(^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX,SSN))
SET ^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX,SSN)=$GET(^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX,SSN))+1
+13 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFDFNN",DFNXX,SSN)=1
End DoDot:2
End DoDot:1
+14 ;
+15 QUIT
LOCCNT ;Count by date
+1 NEW LOC,DATE
+2 SET LOC=""
FOR
SET LOC=$ORDER(^TMP("PXRMGEC",$JOB,"REFLOC",LOC))
IF LOC=""
QUIT
Begin DoDot:1
+3 SET DATE=0
FOR
SET DATE=$ORDER(^TMP("PXRMGEC",$JOB,"REFLOC",LOC,DATE))
IF DATE=""
QUIT
Begin DoDot:2
+4 IF $DATA(^TMP("PXRMGEC",$JOB,"REFLOCC",LOC))
SET ^TMP("PXRMGEC",$JOB,"REFLOCC",LOC)=$GET(^TMP("PXRMGEC",$JOB,"REFLOCC",LOC))+1
+5 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFLOCC",LOC)=1
End DoDot:2
End DoDot:1
+6 QUIT
+7 ;
DOCCNT ;Count by date
+1 NEW DOC,DATE,DIEN
+2 SET DOC=""
FOR
SET DOC=$ORDER(^TMP("PXRMGEC",$JOB,"REFDOC",DOC))
IF DOC=""
QUIT
Begin DoDot:1
+3 SET DATE=0
FOR
SET DATE=$ORDER(^TMP("PXRMGEC",$JOB,"REFDOC",DOC,DATE))
IF DATE=""
QUIT
Begin DoDot:2
+4 SET DIEN=0
FOR
SET DIEN=$ORDER(^TMP("PXRMGEC",$JOB,"REFDOC",DOC,DATE,DIEN))
IF DIEN=""
QUIT
Begin DoDot:3
+5 IF $DATA(^TMP("PXRMGEC",$JOB,"REFDOCC",DOC,DIEN))
SET ^TMP("PXRMGEC",$JOB,"REFDOCC",DOC,DIEN)=$GET(^TMP("PXRMGEC",$JOB,"REFDOCC",DOC,DIEN))+1
+6 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFDOCC",DOC,DIEN)=1
End DoDot:3
End DoDot:2
End DoDot:1
+7 QUIT
+8 ;
DATECNT ;Count by date
+1 NEW DATE,DFN
+2 SET DATE=0
FOR
SET DATE=$ORDER(^TMP("PXRMGEC",$JOB,"REF",DATE))
IF DATE=""
QUIT
Begin DoDot:1
+3 SET DFN=0
FOR
SET DFN=$ORDER(^TMP("PXRMGEC",$JOB,"REF",DATE,DFN))
IF DFN=""
QUIT
Begin DoDot:2
+4 IF $DATA(^TMP("PXRMGEC",$JOB,"REFDATE",$PIECE(DATE,".",1)))
SET ^TMP("PXRMGEC",$JOB,"REFDATE",$PIECE(DATE,".",1))=$GET(^TMP("PXRMGEC",$JOB,"REFDATE",$PIECE(DATE,".",1)))+1
+5 IF '$TEST
SET ^TMP("PXRMGEC",$JOB,"REFDATE",$PIECE(DATE,".",1))=1
End DoDot:2
End DoDot:1
+6 QUIT
+7 ;
INIT ;Initialize values in PCE DATA SOURCE FILE
+1 NEW GEX,FLAG,III
+2 SET FLAG=0
+3 IF '$DATA(^PX(839.7,"B","GEC1"))
SET GEX(1,839.7,"+1,",.01)="GEC1"
SET FLAG=1
+4 IF '$DATA(^PX(839.7,"B","GEC2"))
SET GEX(1,839.7,"+2,",.01)="GEC2"
SET FLAG=1
+5 IF '$DATA(^PX(839.7,"B","GEC3"))
SET GEX(1,839.7,"+3,",.01)="GEC3"
SET FLAG=1
+6 IF '$DATA(^PX(839.7,"B","GECF"))
SET GEX(1,839.7,"+4,",.01)="GECF"
SET FLAG=1
+7 IF FLAG
DO UPDATE^DIE("","GEX(1)")
+8 ;CLEAN OUT 801.5
+9 IF $DATA(^PXRMD(801.5))
Begin DoDot:1
+10 SET DIK="^PXRMD(801.5,"
+11 FOR III=1:1:1000
SET DA=III
DO ^DIK
+12 KILL ^PXRMD(801.5,"ACOPY")
End DoDot:1
+13 QUIT