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

PXRRLCHP.m

Go to the documentation of this file.
  1. PXRRLCHP ;ISL/PKR - encounter by hospital location print. ;5/27/97
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**3,10,12,18,72**;Aug 12, 1996
  1. ;
  1. N BMARG,C2S,C3S,C3E,C3HS,CMAX,HEAD,INDENT,MID,PAGE
  1. N CLASSNAM,DATE,DONE,IC,GTOTAL,HLOC,HLOCMAX
  1. N IC,FACILITY,FACPNAME,FTOTAL
  1. N LOCLIST,LOCNAME,NLOCLIST,PNAME,SC,VIEN
  1. N TEMP
  1. ;
  1. ;Allow the task to be cleaned up upon successful completion.
  1. S ZTREQ="@"
  1. ;
  1. U IO
  1. ;
  1. ;Setup the formatting parameters.
  1. S HLOCMAX=^XTMP(PXRRXTMP,"HLOCMAX")
  1. S INDENT=3
  1. S C2S=INDENT+HLOCMAX+1
  1. S C3HS=INDENT+38
  1. ;We assume that the counts will never be longer than six digits.
  1. S MID=C3HS+6
  1. S BMARG=2
  1. ;
  1. S DONE=0
  1. S GTOTAL=0
  1. ;
  1. S PAGE=1
  1. D HDR^PXRRGPRT(PAGE)
  1. W !!,"Criteria for Hospital Location Encounter Count Report"
  1. D OLRCRIT^PXRRGPRT(3)
  1. ;
  1. SET ;Set up print fields
  1. S FACILITY=0
  1. FAC S FACILITY=$O(^XTMP(PXRRXTMP,FACILITY))
  1. I +FACILITY=0&(FACILITY'="*") G END
  1. ;Mark the facility as being found.
  1. F IC=1:1:NFAC I $P(PXRRFAC(IC),U,1)=FACILITY D Q
  1. . S $P(PXRRFAC(IC),U,4)="M"
  1. K LOCLIST
  1. K ^TMP(PXRRXTMP,$J,"PXRRLOC")
  1. S HEAD=1
  1. S FTOTAL=0
  1. S FACPNAME=$P(PXRRFACN(FACILITY),U,1)_" "_$P(PXRRFACN(FACILITY),U,2)
  1. ;
  1. S PNAME=""
  1. PRV S PNAME=$O(^XTMP(PXRRXTMP,FACILITY,PNAME))
  1. I PNAME="" G TOTAL
  1. ;
  1. ;Check for a user request to stop the task.
  1. I $$S^%ZTLOAD S ZTSTOP=1 D EXIT^PXRRGUT
  1. ;
  1. S CLASSNAM=""
  1. CLASS ;
  1. S CLASSNAM=$O(^XTMP(PXRRXTMP,FACILITY,PNAME,CLASSNAM))
  1. I CLASSNAM="" G PRV
  1. ;
  1. S DATE=""
  1. DATE S DATE=$O(^XTMP(PXRRXTMP,FACILITY,PNAME,CLASSNAM,DATE))
  1. I DATE="" G CLASS
  1. ;
  1. S HLOC=""
  1. HLO S HLOC=$O(^XTMP(PXRRXTMP,FACILITY,PNAME,CLASSNAM,DATE,HLOC))
  1. I HLOC="" G DATE
  1. ;
  1. S VIEN=""
  1. F S VIEN=$O(^XTMP(PXRRXTMP,FACILITY,PNAME,CLASSNAM,DATE,HLOC,VIEN)) Q:VIEN="" D
  1. . S ^TMP(PXRRXTMP,$J,"PXRRLOC",HLOC,VIEN)=""
  1. ;
  1. G HLO
  1. ;
  1. TOTAL ;Total up the encounters.
  1. S NLOCLIST=0
  1. S CMAX=0
  1. S HLOC=""
  1. NLOC S HLOC=$O(^TMP(PXRRXTMP,$J,"PXRRLOC",HLOC))
  1. I HLOC="" G OUTPUT
  1. S TEMP=$$LOCCNT^PXRRLCHP(HLOC)
  1. S CMAX=$$MAX^XLFMTH(CMAX,TEMP)
  1. S LOCLIST(HLOC)=TEMP
  1. S NLOCLIST=NLOCLIST+1
  1. G NLOC
  1. ;
  1. OUTPUT ;Print the data.
  1. S HEAD=1
  1. S C3E=MID+($L(CMAX)/2)
  1. S HLOC=""
  1. S NLOCLIST=0
  1. NEXTP S HLOC=$O(LOCLIST(HLOC))
  1. I HLOC="" S GTOTAL=GTOTAL+FTOTAL G FINAL
  1. S TEMP=$$LOCCNT^PXRRLCHP(HLOC)
  1. S NLOCLIST=NLOCLIST+1
  1. S FTOTAL=FTOTAL+TEMP
  1. S LOCNAME=$P(HLOC,U,1)
  1. S SC=""
  1. I $P(HLOC,U,3)'="" S SC="("_$P(HLOC,U,3)_")"
  1. D HEAD
  1. I DONE G EXIT
  1. S C3S=C3E-$L(TEMP)
  1. W !,?INDENT,LOCNAME,?C2S,SC,?C3S,TEMP
  1. G NEXTP
  1. ;
  1. FINAL ;Print facility total.
  1. I $Y>(IOSL-BMARG-3) D PAGE^PXRRGPRT
  1. I DONE G EXIT
  1. D PTOTAL^PXRRGPRT("Total facility encounters ",FTOTAL,C3E,1)
  1. G FAC
  1. END ;
  1. I $Y>(IOSL-BMARG-3) D PAGE^PXRRGPRT
  1. I DONE G EXIT
  1. I GTOTAL>0 D PTOTAL^PXRRGPRT("Total encounters ",GTOTAL,C3E,0)
  1. I $Y>(IOSL-BMARG-3) D PAGE^PXRRGPRT
  1. I DONE G EXIT
  1. D FACNE^PXRRGPRT(INDENT)
  1. EXIT ;
  1. D EXIT^PXRRGUT
  1. D EOR^PXRRGUT
  1. Q
  1. ;
  1. ;=======================================================================
  1. I HEAD D
  1. . I $Y>(IOSL-BMARG-6) D PAGE^PXRRGPRT
  1. . I DONE Q
  1. . W !!,"Facility: ",FACPNAME
  1. . W !!,?INDENT,"Hospital Location (Stop Code)",?C3HS,"Encounters"
  1. . W !,?INDENT,"-----------------------------------",?C3HS,"----------"
  1. . S HEAD=0
  1. Q
  1. ;
  1. ;=======================================================================
  1. LOCCNT(HLOC) ;Return the number of encounters at this location.
  1. ;
  1. N TOTAL,VIEN
  1. S TOTAL=0
  1. S VIEN=""
  1. F S VIEN=$O(^TMP(PXRRXTMP,$J,"PXRRLOC",HLOC,VIEN)) Q:VIEN="" D
  1. . I VIEN>0 S TOTAL=TOTAL+1
  1. Q TOTAL
  1. ;