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

PSODP.m

Go to the documentation of this file.
  1. PSODP ;BHAM ISC/JrR - SORT AND PRINT DUE ANSWER SHEETS ; 11/17/92 10:19
  1. ;;7.0;OUTPATIENT PHARMACY;;DEC 1997
  1. ;
  1. PSOSUMM W !,"Do you want a Report Summary"
  1. S %=2 D YN^DICN
  1. I '% D QUES,QUES1 G PSOSUMM
  1. G:%=-1 EXIT
  1. S PSOSUMM=%=1
  1. I 'PSOSUMM S PSONLY=0 G DIP
  1. ;
  1. PSONLY W !,"Do you want a SUMMARY only"
  1. S %=2 D YN^DICN
  1. I '% D QUES,QUES2 G PSONLY
  1. G:%=-1 EXIT
  1. S PSONLY=%=1
  1. ;
  1. DIP K FR,TO,PG,DHIT,DIOEND,DIOBEG,DCOPIES,DIS,PSOQL
  1. S PSCNT=0
  1. S DIC="^PS(50.0731,",DHD="@"
  1. S DIOEND="W:'PSCNT !!,?5,""0 matches found!!!"",!"
  1. S DHIT="S PSCNT=PSCNT+1"
  1. I PSOSUMM S DIOBEG="K ^TMP(""PSOD"",$J)",DIOEND="D SUMM^PSODP",DHIT="D ACCUM^PSODP"
  1. S BY="10,@",L="SORT ANSWER SHEETS",FLDS=$S(PSONLY:"",1:"[PSOD PRINT ANSWER SHEET]")
  1. D EN1^DIP
  1. EXIT K %,D0,DCOPIES,DHD,DHIT,DIC,DIOBEG,DIOEND,DIS,FLDS,FR,L,PG,PSOA,PSOATOT
  1. K PSODA,PSODN,PSODQA,PSONLY,PSOQ,PSOQA,PSOQAM,PSOQATOT,PSOQL,PSOQM
  1. K PSOQN,PSOSUMM,PSPOP,PSCNT
  1. K ^TMP("PSOD",$J)
  1. QUIT
  1. ACCUM ;Enter here from DHIT="D ACCUM^PSODP"
  1. ;Requires D0 which is defined from ^DIP call above
  1. S PSODQA=+$P(^PS(50.0731,D0,0),"^",2)
  1. S ^(PSODQA)=$S('$D(^TMP("PSOD",$J,PSODQA)):1,1:^(PSODQA)+1)
  1. Q:'$D(^PS(50.073,PSODQA,0))
  1. Q:'$D(^PS(50.0731,D0,1,0))
  1. F PSODN=0:0 S PSODN=$O(^PS(50.0731,D0,1,PSODN)) Q:'PSODN S PSOQN=$P(^(PSODN,0),"^",2),PSOQM=+$P(^(0),"^") I $D(^PS(50.0732,PSOQN,0)),$P(^(0),"^",2)=1 D COUNT
  1. QUIT
  1. COUNT S PSODA=$S($D(^PS(50.0731,D0,1,PSODN,1)):^(1),1:"")
  1. S:PSODA="" PSODA="NULL"
  1. S ^(PSODA)=$S('$D(^TMP("PSOD",$J,PSODQA,PSOQM,PSODA)):1,1:^(PSODA)+1)
  1. Q
  1. SUMM ;Enter here from ^DIP to print Summary
  1. W:$Y @IOF
  1. S PSOQATOT=0,PSOATOT=0,$P(PSOQL,"-",IOM)=""
  1. F PSOA=-1:0 S PSOA=$O(^TMP("PSOD",$J,PSOA)) Q:PSOA="" S PSOQATOT=PSOQATOT+1,PSOATOT=PSOATOT+^(PSOA)
  1. W !!!,"Following is a Summary of the DUE Questionnaires and the",!,"corresponding Answers found in your report."
  1. W !,"This Summary contains a cumulative total of the YES/NO/UNKNOWN type answers.",!!
  1. I $D(^TMP("PSOD",$J,0)),^(0) S %=^(0) W !,%," ANSWER SHEET"_$S(%>1:"S",1:"")_" HAD A MISSING QUESTIONNAIRE FIELD!" S PSOQATOT=PSOQATOT-1
  1. W !!!,"TOTAL ANSWER SHEETS FOUND: ",PSOATOT
  1. W !,"TOTAL QUESTIONNAIRES FOUND: ",PSOQATOT
  1. S PSPOP=0
  1. F PSOQA=0:0 S PSOQA=$O(^TMP("PSOD",$J,PSOQA)) Q:'PSOQA!PSPOP D SUMMHD Q:PSPOP F PSOQ=0:0 S PSOQ=$O(^TMP("PSOD",$J,PSOQA,PSOQ)) Q:'PSOQ D SUMMOUT
  1. W:$E(IOST)="P"&$Y @IOF
  1. Q
  1. SUMMOUT W !?(2-($L(PSOQ)\2)),PSOQ
  1. S %=$S($D(^TMP("PSOD",$J,PSOQA,PSOQ,"YES")):^("YES"),1:0) W ?(16-($L(%)\2)),%
  1. S %=$S($D(^TMP("PSOD",$J,PSOQA,PSOQ,"NO")):^("NO"),1:0) W ?(25-($L(%)\2)),%
  1. S %=$S($D(^TMP("PSOD",$J,PSOQA,PSOQ,"UNKNOWN")):^("UNKNOWN"),1:0) W ?(38-($L(%)\2)),%
  1. S %=$S($D(^TMP("PSOD",$J,PSOQA,PSOQ,"NULL")):^("NULL"),1:0) W ?(56-($L(%)\2)),%
  1. Q
  1. SUMMHD I $E(IOST)="C" S DIR(0)="E" W !! D ^DIR I X="^" S PSPOP=1 Q
  1. W @IOF
  1. S PSOQAM=$P(^PS(50.073,PSOQA,0),"^")
  1. W !!?(40-($L(PSOQAM)\2)),PSOQAM
  1. W !!,"Number of Answer Sheets: ",^TMP("PSOD",$J,PSOQA)
  1. W !!,"QUEST #",?15,"YES",?25,"NO",?35,"UNKNOWN",?50,"NOT ANSWERED"
  1. W !,PSOQL
  1. W:'$O(^TMP("PSOD",$J,PSOQA,0)) !!,"*** This Questionnaire has no YES/NO/UNKNOWN type answers. ***"
  1. Q
  1. QUES W !?5,"A Summary will be printed at the end of this report detailing the"
  1. W !?5,"number of times a question was answered YES, NO, UNKNOWN, or NOT ANSWERED."
  1. Q
  1. QUES2 W !?5,"Answer 'YES' if you want to see the Summary ONLY."
  1. Q
  1. QUES1 W !?5,"Answer 'YES' if you want to print this Summary."
  1. Q