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

DGHTRPT1.m

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