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

AGRHI1.m

Go to the documentation of this file.
  1. AGRHI1 ; IHS/ASDS/EFG - RESTRICTED HEALTH REPORT ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. ;THIS ROUTINE WILL CREATE A REPORT BASED ON THE RESTIRCTED
  1. ;HEALTH INFORMATION FILE
  1. ;
  1. Q
  1. EN ;EP
  1. K AG("F1")
  1. D BEGDT
  1. Q:$D(DTOUT)!$D(DUOUT)
  1. S AGQ("RC")="PROCESS^AGRHI1"
  1. S AGQ("RP")="PRINT^AGRHI1"
  1. S AGQ("RX")="EXIT^AGRHI1"
  1. S AGQ("NS")="AG"
  1. D ^AGDBQUE
  1. Q
  1. BEGDT ;PROMPT FOR BEGINNING DATE OF ENTRY
  1. S AG("PAGE")=0
  1. K DIR,X,Y
  1. S DIR(0)="D"
  1. S DIR("A")="Please enter a beginning Date Of Entry. "
  1. D ^DIR
  1. Q:$D(DTOUT)!$D(DUOUT)
  1. S X=Y S BDT=+Y D DD^%DT S AG("BEGDT")=Y
  1. ENDDT ;PROMPT FOR ENDING DATE OF ENTRY
  1. K DIR,X,Y
  1. S DIR(0)="D"
  1. S DIR("A")="Please enter an ending Date Of Entry. "
  1. D ^DIR
  1. Q:$D(DTOUT)!$D(DUOUT)
  1. S X=Y S EDT=+Y D DD^%DT S AG("ENDDT")=Y
  1. Q
  1. HDR ;PRINT THE PAGE HEADER
  1. W @IOF
  1. S AG("PAGE")=AG("PAGE")+1
  1. W !,?19,"*** RESTRICTED HEALTH INFORMATION REPORT ***"
  1. W ?70,"Page ",AG("PAGE")
  1. S AG("RHIDT")=$$NOW^XLFDT
  1. S AG("DSPDAT")=$E(AG("RHIDT"),4,5)_"/"_$E(AG("RHIDT"),6,7)_"/"_($E(AG("RHIDT"),1,3)+1700)_" "_$E(AG("RHIDT"),9,10)_":"_$E(AG("RHIDT"),11,12)
  1. S AG("DSPDAT")="RUN DATE/TIME : "_AG("DSPDAT")
  1. W !,?(80-$L(AG("DSPDAT"))/2),AG("DSPDAT")
  1. W !!,"BEGINNING ENTRY DATE: ",AG("BEGDT")
  1. W !,"ENDING ENTRY DATE: ",AG("ENDDT")
  1. W !!,"PERSON",?18,"DATE OF"
  1. W !,"ENTERING",?19,"ENTRY",?30,"MR#",?38,"STATUS",?46,"REQUEST INFO"
  1. W !,"--------",?18,"-----",?30,"---",?38,"------",?46,"------------",!
  1. Q
  1. PROCESS ;PROCESS LOOP FOR REPORT RECORDS
  1. ;DO SCREENING LOGIC - BUILD XTMP GLOBAL
  1. S ENTDAT=0
  1. F S ENTDAT=$O(^AUPNRHI("G",ENTDAT)) Q:'+ENTDAT D
  1. . Q:$P(ENTDAT,".",1)<BDT!($P(ENTDAT,".",1)>EDT)
  1. . S RHISTAT=""
  1. . F S RHISTAT=$O(^AUPNRHI("G",ENTDAT,RHISTAT)) Q:RHISTAT="" D
  1. .. S RHIREC=0
  1. .. F S RHIREC=$O(^AUPNRHI("G",ENTDAT,RHISTAT,RHIREC)) Q:'+RHIREC D
  1. ... S RECORD=$G(^AUPNRHI(RHIREC,0))
  1. ... S DFN=$P(RECORD,U)
  1. ... S MR=$P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2)
  1. ... S RHI=$P(RECORD,U,2)
  1. ... S STREC=$S(RHISTAT="A":2,RHISTAT="P":1,RHISTAT="N":3,RHISTAT="R":4,RHISTAT="E":5)
  1. ... S USER=$S(STREC=1:$P($G(^AUPNRHI(RHIREC,STREC)),U,2),STREC=5:$P($G(^AUPNRHI(RHIREC,STREC)),U),1:$P($G(^AUPNRHI(RHIREC,STREC)),U,3))
  1. ... S ^XTMP("AGRHI",$J,ENTDAT,USER)=MR_U_RHISTAT_U_RHI
  1. K ENTDAT,RHIREC,RECORD,DFN,MR,RHISTAT,RHI,USER,STREC,BDT,EDT
  1. Q
  1. PRINT ;DO HEADER AND DETAIL PRINTING HERE
  1. D HDR
  1. S (ENTDAT,USER,CNT)=0,RHIREC=""
  1. F S ENTDAT=$O(^XTMP("AGRHI",$J,ENTDAT)) Q:'ENTDAT D Q:$G(AG("F1"))
  1. . F S USER=$O(^XTMP("AGRHI",$J,ENTDAT,USER)) Q:'USER D Q:$G(AG("F1"))
  1. .. S RHIREC=$G(^XTMP("AGRHI",$J,ENTDAT,USER))
  1. .. S USERNAM=$P($G(^VA(200,USER,0)),U)
  1. .. S EDATE=$E(ENTDAT,4,5)_"/"_$E(ENTDAT,6,7)_"/"_($E(ENTDAT,1,3)+1700)
  1. .. S MR=$P(RHIREC,U)
  1. .. S STATUS=$P(RHIREC,U,2)
  1. .. S RHI=$P(RHIREC,U,3)
  1. .. I $Y>(IOSL-5) D HD Q:$G(AG("F1"))
  1. .. W !,USERNAM,?18,EDATE,?30,$$RJ^XLFSTR(MR,6),?40,STATUS
  1. .. S CNT=CNT+1
  1. .. S AG("Y")=$L(RHI)
  1. .. F S AG("K")=$E(RHI,1,34) Q:$L(AG("K"))=0 S RHI=$E(RHI,35,AG("Y")) W ?46,AG("K"),!
  1. W !!,CNT," Records found from ",AG("BEGDT")," TO ",AG("ENDDT")
  1. Q
  1. HD ;
  1. I '$D(IO("Q")),$E(IOST)="C",'$D(IO("S")) D
  1. . F W ! Q:$Y+3>IOSL
  1. . K DIR S DIR(0)="E" D ^DIR K DIR
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) S AG("F1")=1
  1. D HDR
  1. Q
  1. EXIT ;
  1. K ^XTMP("AGRHI",$J)
  1. Q