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

AQAOPC83.m

Go to the documentation of this file.
  1. AQAOPC83 ; IHS/ORDC/LJF - PRINT PROVIDER PROFILE ;
  1. ;;1.01;QAI MANAGEMENT;;OCT 05, 1995
  1. ;
  1. ;This rtn prints the single provider profile giving totals for the
  1. ;findings, actions, performance levels on occurrences.
  1. ;
  1. INIT ; >>> initialize variables
  1. S (X,AQAOIOMX)=80 X:IOT'="HFS" ^%ZOSF("RM")
  1. D INIT^AQAOUTIL S AQAOHCON="Patient"
  1. S AQAOTY="OCCURRENCE PROVIDER PROFILE FOR"
  1. S AQAORG=$E(AQAOBD,4,5)_"/"_$E(AQAOBD,6,7)_"/"_$E(AQAOBD,2,3)_" to "
  1. S AQAORG=AQAORG_$E(AQAOED,4,5)_"/"_$E(AQAOED,6,7)_"/"_$E(AQAOED,2,3)
  1. ;
  1. I '$D(^TMP("AQAOPC8",$J)) D G EXIT
  1. .D HEADING^AQAOUTIL,HDG2
  1. .W !,AQAOLINE,!!?30,">>> NO DATA FOUND <<<",!!
  1. ;
  1. ;
  1. LOOP ; >>> loop thru med staff functions selected to check for data
  1. S AQAOM=0
  1. F S AQAOM=$O(AQAOMP(AQAOM)) Q:AQAOM="" Q:AQAOSTOP=U D
  1. .I AQAOPAGE=0 D HEADING^AQAOUTIL,HDG2 I 1
  1. .E D NEWPG^AQAOUTIL Q:AQAOSTOP=U D HDG2
  1. .I '$D(^TMP("AQAOPC8",$J,AQAOM)) D Q
  1. ..W !!?AQAOIOMX-20/2,">>> NO DATA FOUND <<<"
  1. .E D LIST
  1. ;
  1. ;
  1. EXIT ; >>> eoj
  1. I '$D(ZTQUEUED),IOST["C-" D PRTOPT^AQAOVAR
  1. K ^TMP("AQAOPC8",$J) K ^TMP("AQAOPC8A",$J) K ^TMP("AQAOPC8B",$J)
  1. D ^%ZISC D KILL^AQAOUTIL
  1. Q
  1. ;
  1. ; >>> END OF MAIN RTN <<<
  1. ;
  1. ;
  1. LIST ; >> SUBRTN to loop thru ^tmp and print cases
  1. S AQAOIND=0
  1. F S AQAOIND=$O(^TMP("AQAOPC8",$J,AQAOM,AQAOIND)) Q:AQAOIND="" Q:AQAOSTOP=U D
  1. .W !!,"Indicator: ",$P(AQAOIND,U) ;print indicator #
  1. .W ?24,$P(^AQAO(2,$P(AQAOIND,U,2),0),U,2),! ;print indicator name
  1. .S AQAODT=0
  1. .F S AQAODT=$O(^TMP("AQAOPC8",$J,AQAOM,AQAOIND,AQAODT)) Q:AQAODT="" Q:AQAOSTOP=U D
  1. ..S AQAOIFN=0
  1. ..F S AQAOIFN=$O(^TMP("AQAOPC8",$J,AQAOM,AQAOIND,AQAODT,AQAOIFN)) Q:AQAOIFN="" Q:AQAOSTOP=U D
  1. ...S AQAOS=^TMP("AQAOPC8",$J,AQAOM,AQAOIND,AQAODT,AQAOIFN)
  1. ...I $Y>(IOSL-4) D NEWPG^AQAOUTIL Q:AQAOSTOP=U D HDG2
  1. ...W !,$P(AQAOS,U) S Y=AQAODT X ^DD("DD") W ?10,Y ;case id&occ dat
  1. ...W ?24,$P($P(AQAOS,U,2),"//") ;find/act/type/attr
  1. ...W ?53,$P($P(AQAOS,U,2),"//",2) ;poten/out/ult
  1. .D SUBTOTAL ;print subtotals at end of each ind
  1. Q
  1. ;
  1. ;
  1. ;
  1. SUBTOTAL ; >> SUBRTN to print subtotals for an indicator in 2 columns
  1. S X="",$P(X,"_",50)="" W !,"Subtotals: ",?25,X
  1. S (AQAOX,AQAOY,AQAOCNT)=0
  1. F S:AQAOX]"" AQAOX=$O(^TMP("AQAOPC8A",$J,AQAOIND,AQAOX)) S:AQAOY]"" AQAOY=$O(^TMP("AQAOPC8B",$J,AQAOIND,AQAOY)) Q:(AQAOX=AQAOY) D
  1. .I $Y>(IOSL-4) D NEWPG^AQAOUTIL Q:AQAOSTOP=U D HDG2
  1. .W ! I AQAOX]"" S AQAOCNT=AQAOCNT+^TMP("AQAOPC8A",$J,AQAOIND,AQAOX)
  1. .I AQAOX]"" W ?24,AQAOX,?45,$J(^TMP("AQAOPC8A",$J,AQAOIND,AQAOX),4)
  1. .I AQAOY]"" W ?53,AQAOY,?70,$J(^TMP("AQAOPC8B",$J,AQAOIND,AQAOY),4)
  1. W !?45,"----",?70,"----"
  1. W !?45,$J(AQAOCNT,4),?70,$J(AQAOCNT,4)
  1. Q
  1. ;
  1. ;
  1. HDG2 ; >> SUBRTN to print second half of heading
  1. W ?AQAOIOMX-$L(AQAOPRVN)/2,AQAOPRVN
  1. W !?AQAOIOMX-$L(AQAORG)/2,AQAORG,!,AQAOLIN2
  1. W !,"Case ID",?10,"Occ Date",?24,"Find/Actn/Type/Level"
  1. W ?53,"Risk/Occ/Ultimate Outcomes",!,AQAOLINE
  1. W:$D(AQAOM) !?AQAOIOMX-$L(AQAOMP(AQAOM))/2,AQAOMP(AQAOM)
  1. Q