DGHTRPT1 ;ALB/JRC - Home Telehealth Transmissions Report ; 10/14/05 12:38pm ;;5.3;Registration;**644**;Aug 13, 1993;Build 11 ; EN ;entry point from option ;Declare variable(s) and arrays N DGSD,DGED,I,ZTDESC,ZTIO,ZTSAVE,FLAG,SORT S FLAG=0 ;Get beginning and ending dates D GETDATES Q:FLAG ;Get sort D GETSORT Q:FLAG ;Queue Report S ZTIO="" S ZTDESC="Home Telehealth Transmission Report" F I="DGSD","DGED","SORT" D .S ZTSAVE(I)="" D EN^XUTMDEVQ("EN1^DGHTRPT1",ZTDESC,.ZTSAVE) Q ; EN1 ;Tasked entry point ;Input : DGSD - FM format report start date ; DGED - FM format report end date ; ;Output : None ; ;Declare variables N DGSD1,DGED1,CNT,ICNT,ACNT,LN,SCRNARR N NODE,STOP,PAGENUM,FLAG S DGED1=DGED+.9999,DGSD1=DGSD-.0001,(CNT,ACNT,ICNT,PAGENUM,STOP)=0 S SCRNARR="^TMP(""DGHT"",$J,""SCRNARR"")",FLAG=0 K @SCRNARR D HEADER I STOP D EXIT Q D GETDATA I 'CNT D Q .W ! .W !,"***********************************************" .W !,"* NOTHING TO REPORT FOR SELECTED TIME FRAME *" .W !,"***********************************************" .D WAIT D DETAIL I STOP D EXIT Q D TOTAL D EXIT Q ; GETDATES ;Prompt for start date N DIR,DIRUT,X,Y S DIR(0)="D^:NOW:EX" S DIR("A")="Enter Report Start Date" S DIR("B")=$$FMTE^XLFDT($$NOW^XLFDT,"1D") D ^DIR I $D(DIRUT) S FLAG=1 Q S DGSD=Y ;Prompt for end date K DIR,DIRUT,X,Y S DIR(0)="D^:NOW:EX" S DIR("A")="Enter Report Ending Date" S DIR("B")=$$FMTE^XLFDT($$NOW^XLFDT,"1D") D ^DIR I $D(DIRUT) S FLAG=1 Q S DGED=Y Q ; GETSORT ;Select sort, 1 for patient or 2 for trans date ;Declare variables N DIR,X,Y,DIRUT,DIROUT,DTOUT,DUOUT ;Get sort S DIR(0)="SC^1:Patient;2:Transmission Date;" S DIR("A")="Select sorting criteria" D ^DIR I $D(DIRUT) S FLAG=1 Q S SORT=Y Q ; GETDATA ;Get data ;Declare variables N DG0,DG1,DGDA0,DGDA1,PATIENT,VENDOR,INACTDT,DATE,MSGTYPE,STATUS F S DGSD1=$O(^DGHT(391.31,"C",DGSD1)) Q:(DGSD1>DGED1)!('DGSD1) D .S DGDA0=0 .F S DGDA0=$O(^DGHT(391.31,"C",DGSD1,DGDA0)) Q:'DGDA0 D ..S DGDA1=0 ..F S DGDA1=$O(^DGHT(391.31,"C",DGSD1,DGDA0,DGDA1)) Q:'DGDA1 D ...;Get data nodes and icrement conunter ...S DG0=$G(^DGHT(391.31,DGDA0,0)) ...Q:DG0="" ...S DG1=$G(^DGHT(391.31,DGDA0,"TRAN",DGDA1,0)) ...;Quit if there is no transaction data or type = inactivation ...Q:DG1="" ...Q:$P(DG1,U,4)="I" ...S PATIENT=$P(DG0,U,2),VENDOR=$P(DG0,U,3),INACTDT=$P(DG0,U,7) ...S DATE=$P(DG1,U,1),MSGTYPE=$P(DG1,U,4) ...I 'INACTDT S STATUS="Active" ...;If there is an Inactivation date validate trans status ...I INACTDT D ....S DGDA1=$O(^DGHT(391.31,DGDA0,"TRAN",DGDA1)) ....S DG1=$G(^DGHT(391.31,DGDA0,"TRAN",DGDA1,0)) ....S STATUS=$S($P(DG1,U,7)="A":"Inactive",$P(DG1,U,7)="R":"Active",1:"Active") ...;Resolve external values for PATIENT ...S PATIENT=$$GET1^DIQ(2,PATIENT,.01,"E") ...;Resolve external value for VENDOR ...S VENDOR=$$GET1^DIQ(4,VENDOR,.01,"E") ...;Resolve external value for COORD ...;Increment counters and save for later ...S CNT=CNT+1 ...I STATUS="Active" S ACNT=ACNT+1 ...I STATUS="Inactive" S ICNT=ICNT+1 ...S ^TMP("DGHT",$J,$S(SORT=1:PATIENT,1:DATE),CNT)=PATIENT_U_STATUS_U_DATE_U_VENDOR Q HEADER ;print header S PAGENUM=PAGENUM+1 S $P(LN,"-",80)="" W @IOF W !,"Home Telehealth Patient Summary Report ",?65,"Page: ",PAGENUM W !!,"Report for ",$$FMTE^XLFDT(DGSD)," thru ",$$FMTE^XLFDT(DGED) W !!,?1,"Patient",?25,"Status",?34,"Date of Last Change",?56,"HT Vendor" W !?1,LN Q ; DETAIL ;Print detailed line ;Input : ^TMP("DGHT",$J) full global reference ; PATIENT - HTH Patient ; STATUS - Registration Status ; DATE - Event/Transmission Date ; VENDOR - HTH Vendor Server ;Output : None ;Declare variables N SORT,RECORD S SORT="" F S SORT=$O(^TMP("DGHT",$J,SORT)) Q:SORT="" D Q:STOP .S RECORD=0 F S RECORD=$O(^TMP("DGHT",$J,SORT,RECORD)) Q:'RECORD!(STOP) D Q:STOP ..S NODE=^TMP("DGHT",$J,SORT,RECORD) ..W !,?1,$E($P(NODE,U,1),1,22),?25,$P(NODE,U,2),?34,$$FMTE^XLFDT($P(NODE,U,3),"2Z"),?56,$E($P(NODE,U,4),1,23) ..I $Y>(IOSL-5) D WAIT Q:STOP D HEADER Q ; TOTAL ;Report totals W !!?1,"Total Number of Active Patient Record(s): ",?45,$J($FNUMBER(ACNT,",",0),8) W !?1,"Total Number of Inactive Patient Record(s): ",?45,$J($FNUMBER(ICNT,",",0),8) W !?1,"Total Number of Patient Record(s): ",?45,$J($FNUMBER(CNT,",",0),8) Q ; WAIT ;End of page logic ;Input ; None ;Output ; STOP - Flag inidcating if printing should continue ; 1 = Stop 0 = Continue ; S STOP=0 ;CRT - Prompt for continue I $E(IOST,1,2)="C-"&(IOSL'>24) D Q .F Q:$Y>(IOSL-3) W ! .N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT .S DIR(0)="E" .D ^DIR .S STOP=$S(Y'=1:1,1:0) ;Background task - check taskman S STOP=$$S^%ZTLOAD() I STOP D .W !,"*********************************************" .W !,"* PRINTING OF REPORT STOPPED AS REQUESTED *" .W !,"*********************************************" Q EXIT ;Kill temp global K ^TMP("DGHT",$J) Q