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

AQAQPR32.m

Go to the documentation of this file.
  1. AQAQPR32 ;IHS/ANMC/LJF - DISCHARGES BY PROVIDER & DX; [ 07/09/1999 2:26 PM ]
  1. ;;2.2;STAFF CREDENTIALS;**8**;JULY 9, 1999
  1. ;;AQAQ*2*8;Y2K FIX;CS;2990708
  1. ;
  1. ;>>> initialize variables <<<
  1. S AQAQPAGE=0,AQAQSTOP="",AQAQDUZ=$P(^DIC(3,DUZ,0),U,2)
  1. S AQAQSITE=$P(^DIC(4,DUZ(2),0),U) ;set site
  1. ;BEGIN Y2K FIX BLOCK
  1. ;S AQAQRG=$E(AQAQBDT,4,5)_"/"_$E(AQAQBDT,6,7)_"/"_$E(AQAQBDT,2,3)_" to "
  1. ;S AQAQRG=AQAQRG_$E(AQAQEDT,4,5)_"/"_$E(AQAQEDT,6,7)_"/"_$E(AQAQEDT,2,3)
  1. S AQAQRG=$E(AQAQBDT,4,5)_"/"_$E(AQAQBDT,6,7)_"/"_($E(AQAQBDT,1,3)+1700)_" to " ; Y2000
  1. S AQAQRG=AQAQRG_$E(AQAQEDT,4,5)_"/"_$E(AQAQEDT,6,7)_"/"_($E(AQAQEDT,1,3)+1700) ; Y2000
  1. ;END Y2K FIX BLOCK
  1. S AQAQLINE="",$P(AQAQLINE,"=",80)=""
  1. S AQAQLIN2="",$P(AQAQLIN2,"-",80)=""
  1. S AQAQTCT=0,AQAQPRV=""
  1. ;
  1. I '$D(^UTILITY("AQAQPR3",$J)) D HEAD W !!,">>> NO DATA FOUND!!" G WAIT
  1. ;
  1. ;
  1. ;>>> loop1=get next provider & start new page & new counts
  1. S AQAQPRV=0
  1. LOOP1 S AQAQPRV=$O(^UTILITY("AQAQPR3",$J,AQAQPRV)) G TOTALS:AQAQPRV=""
  1. G END:AQAQSTOP=U I AQAQPAGE=0 D HEAD
  1. E D NEWPG G END:AQAQSTOP=U ;print heading with provider name
  1. S (AQAQGCT,AQAQPCT)=0 ;aqaqgct=icd group count;aqaqpct=prov count
  1. ;
  1. ;>>> loop2=for provider, get each icd code & subcount by icd groupings
  1. S AQAQICD=0
  1. LOOP2 S AQAQICD=$O(^UTILITY("AQAQPR3",$J,AQAQPRV,AQAQICD))
  1. I AQAQICD="" D PROVCNT^AQAQPR33 G LOOP1 ;subtotal by prov & then loop
  1. I AQAQGCT=0 D GETGRP^AQAQPR33 ;print name of icd grouping
  1. I AQAQICD>($P(AQAQRNG,"-",2)_".999") D SUBCNT^AQAQPR33 ;group subcnt
  1. I (AQAQICD?1"V".E),(AQAQRNG'?1"V".E) D SUBCNT^AQAQPR33 ;v-codes
  1. ;
  1. ;>>> loop3&loop4=for each icd code, pull by visit date & visit dfn
  1. S AQAQDT=0
  1. LOOP3 S AQAQDT=$O(^UTILITY("AQAQPR3",$J,AQAQPRV,AQAQICD,AQAQDT))
  1. G LOOP2:AQAQDT="" S AQAQVDFN=0
  1. LOOP4 S AQAQVDFN=$O(^UTILITY("AQAQPR3",$J,AQAQPRV,AQAQICD,AQAQDT,AQAQVDFN))
  1. G LOOP3:AQAQVDFN="" S AQAQSTR=^(AQAQVDFN) D LINE ;print visit data
  1. G END:AQAQSTOP=U G LOOP4 ;quit if "^" entered OR continue looping
  1. ;
  1. ;
  1. TOTALS ;>>> print facility totals <<<
  1. I $Y>(IOSL-4) D NEWPG
  1. W !!,"***TOTAL DIAGNOSES: ",AQAQTCT,"***",!,AQAQLINE
  1. WAIT I IOST["C-" W ! K DIR S DIR(0)="E",DIR("A")="RETURN to continue" D ^DIR
  1. ;
  1. END ;EP;>>> eoj <<<
  1. W @IOF D ^%ZISC D KILL^AQAQUTIL K ^UTILITY("AQAQPR3",$J) Q
  1. ;
  1. ;
  1. LINE ;***> SUBRTN to print line of visit data
  1. S AQAQV=^AUPNVSIT(AQAQVDFN,0),AQAQVDT=$P(AQAQV,U) ;visit node
  1. ;BEGIN Y2K FIX BLOCK
  1. ;W !,$E(AQAQVDT,4,5)_"/"_$E(AQAQVDT,6,7)_"/"_$E(AQAQVDT,2,3)_"-" ;adm
  1. W !,$E(AQAQVDT,4,5)_"/"_$E(AQAQVDT,6,7)_"/"_($E(AQAQVDT,1,3)+1700)_"-" ; Y2000;adm
  1. ;END Y2K FIX BLOCK
  1. ;BEGIN Y2K FIX BLOCK
  1. ;W $E(AQAQDT,4,5)_"/"_$E(AQAQDT,6,7)_"/"_$E(AQAQDT,2,3) ;dsc date
  1. W $E(AQAQDT,4,5)_"/"_$E(AQAQDT,6,7)_"/"_($E(AQAQDT,1,3)+1700) ; Y2000;dsc date
  1. ;END Y2K FIX BLOCK
  1. S AQAQY=$P(AQAQV,U,5),AQAQY=$P($G(^AUPNPAT(AQAQY,41,DUZ(2),0)),U,2)
  1. W ?23,$J(AQAQY,6) ;patient chart #
  1. S AQAQX=$P(^AUPNVINP($P(AQAQSTR,U,2),0),U,5)
  1. W:AQAQX'="" ?32,$E($P(^DIC(45.7,AQAQX,0),U),1,3) ;discharge srv
  1. S AQAQX=$P(^AUPNVPOV($P(AQAQSTR,U),0),U,12),AQAQZ=$P(^(0),U,4)
  1. W ?37,AQAQX ;primary or secondary
  1. W ?42,$E($P(^AUTNPOV(AQAQZ,0),U),1,37) ;provider narrative for dx
  1. S AQAQGCT=AQAQGCT+1,AQAQPCT=AQAQPCT+1 ;increment counts
  1. I $Y>(IOSL-5) D NEWPG
  1. Q
  1. ;
  1. ;
  1. NEWPG ;EP;***> SUBRTN for end of page control
  1. I IOST'?1"C-".E D HEAD S AQAQSTOP="" Q
  1. I AQAQPAGE>0 K DIR S DIR(0)="E" D ^DIR S AQAQSTOP=X
  1. I AQAQSTOP'=U D HEAD
  1. Q
  1. ;
  1. W @IOF,!,AQAQLINE S AQAQPAGE=AQAQPAGE+1
  1. W !?11,"*****Confidential Patient Data Covered by Privacy Act*****"
  1. W !,AQAQDUZ,?80-$L(AQAQSITE)/2,AQAQSITE
  1. S AQAQTY="INPATIENT DIAGNOSES BY PROVIDER"
  1. W ! D ^%T W ?80-$L(AQAQTY)/2,AQAQTY,?70,"Page: ",AQAQPAGE
  1. S Y=DT X ^DD("DD") W !,Y,?80-$L(AQAQPRV)/2,AQAQPRV ;prov name
  1. W !?30,AQAQRG,!,AQAQLINE ;date range and line
  1. W !,"Visit",?23,"Patient",!,"Dates",?23,"Chart #",?32,"Srv",?37,"P/S"
  1. W ?42,"Diagnosis Narrative",!,AQAQLIN2
  1. Q