[613] | 1 | NURQUTL ;HIRMFO/RM-QI SUMMARY UTILITIES ;4/24/96
|
---|
| 2 | ;;4.0;NURSING SERVICE;;Apr 25, 1997
|
---|
| 3 | PERFORM(NURQSURV,NURQLOC) ; This function will do a lookup on the
|
---|
| 4 | ; Performance measure multiple and return a valid entry, or -1.
|
---|
| 5 | ; Input variables: NURQSURV=IEN in file 217
|
---|
| 6 | ; NURQLOC=IEN in 217.04 sub-file (Location)
|
---|
| 7 | ; Return Value: IEN in 217.43 sub-file, or -1 if none selected.
|
---|
| 8 | ; NURQOUT=1 if user abnormally terminated selection.
|
---|
| 9 | ;
|
---|
| 10 | N NURQFXN S NURQFXN=-1
|
---|
| 11 | K ^TMP($J,"NURQPMS"),^TMP($J,"NURQPMA")
|
---|
| 12 | D GETPM(","_NURQLOC_","_NURQSURV_",")
|
---|
| 13 | S %=$P($G(^SC(+$P($G(^NURQ(217,NURQSURV,2,NURQLOC,0)),"^"),0)),"^"),NURQPLOC=$S(%?1"NUR ".E:$P(%,"NUR ",2),1:%)
|
---|
| 14 | REPM ; Label is here so can jump back to reask Performance Measures.
|
---|
| 15 | W !!!,"The following performance measures have been selected for "_NURQPLOC_":"
|
---|
| 16 | D LISTQUES("^TMP($J,""NURQPMS"",") G QPM:NURQOUT
|
---|
| 17 | S Y=$O(^TMP($J,"NURQPMS",9999999),-1) S:$G(NURQDA)>0 Y=""
|
---|
| 18 | W !,"Select PERFORMANCE MEASURE: "_$S(Y]"":Y_"// ",1:"") R X:DTIME
|
---|
| 19 | S:'$T X="^^" S:X=""&$L(Y) X=Y I X="^"!(X="^^") S NURQOUT=1
|
---|
| 20 | I "^^"'[X D G QPM:NURQOUT,REPM:NURQFXN<0
|
---|
| 21 | . S NURQX=X,NURQY=Y
|
---|
| 22 | . S NURQFXN=$P($G(^TMP($J,"NURQPMS",NURQX)),"^",2) Q:NURQFXN>0
|
---|
| 23 | . S NURQFXN=-1 D:'$D(^TMP($J,"NURQPMA")) GETQUES(","_NURQSURV_",")
|
---|
| 24 | . S NURQFXN=$P($G(^TMP($J,"NURQPMA",NURQX)),"^",2) Q:NURQFXN>0
|
---|
| 25 | . S NURQFXN=-1 I NURQX'?1"?".E W !,$C(7),"INVALID ENTRY"
|
---|
| 26 | . W !," Choose from: "
|
---|
| 27 | . D LISTQUES("^TMP($J,""NURQPMA"",")
|
---|
| 28 | . Q
|
---|
| 29 | QPM ; Quit and exit PERFORM procedure
|
---|
| 30 | K NURQPLOC,NURQX,NURQY,^TMP($J,"NURQPMA"),^TMP($J,"NURQPMS")
|
---|
| 31 | Q NURQFXN
|
---|
| 32 | LISTQUES(ARRAY) ; This procedure will list perfmance measures selected so far,
|
---|
| 33 | ; or questions that can be selected. ARRAY will be set to the list
|
---|
| 34 | ; of performance measures to print.
|
---|
| 35 | N NURQQNO,NURQQUES,NURQTXT,NURQX
|
---|
| 36 | W # S NURQQNO=0 F S NURQQNO=$O(@(ARRAY_NURQQNO_")")) Q:NURQQNO'>0 D
|
---|
| 37 | . S NURQSEQ=+$G(@(ARRAY_NURQQNO_")")) Q:NURQSEQ=""
|
---|
| 38 | . S NURQX=0 F S NURQX=$O(@(ARRAY_"""WRITE"","_NURQSEQ_","_NURQX_")")) Q:NURQX'>0 D
|
---|
| 39 | . . S NURQTXT=$G(@(ARRAY_"""WRITE"","_NURQSEQ_","_NURQX_")"))
|
---|
| 40 | . . W !,NURQTXT
|
---|
| 41 | . . I $Y>(IOSL-3) S DIR(0)="E" D ^DIR S:Y NURQOUT=1
|
---|
| 42 | . . Q
|
---|
| 43 | . Q
|
---|
| 44 | Q
|
---|
| 45 | GETQUES(NURQIENS) ; This procedure will get the Questions from 748.26
|
---|
| 46 | ; sub-file for the entry defined by NURQIENS (FM DB IENS format).
|
---|
| 47 | ; Data will be returned in the ^TMP($J,"NURQPMA", array.
|
---|
| 48 | K ^TMP("DILIST",$J),^TMP($J,"NURQSEQ")
|
---|
| 49 | D LIST^DIC(748.26,NURQIENS,"","","","","","","","D QUESID^NURQUTL(Y1)")
|
---|
| 50 | K ^TMP($J,"NURQPMA") M ^TMP($J,"NURQPMA")=^TMP($J,"NURQSEQ")
|
---|
| 51 | M ^TMP($J,"NURQPMA","WRITE")=^TMP("DILIST",$J,"ID","WRITE")
|
---|
| 52 | M ^TMP($J,"NURQPMA","DA")=^TMP($J,"DILIST",$J,2)
|
---|
| 53 | K ^TMP("DILIST",$J),^TMP($J,"NURQSEQ")
|
---|
| 54 | Q
|
---|
| 55 | GETPM(NURQIENS) ; This procedure will get the Performance Measures from 217.43
|
---|
| 56 | ; sub-file for the entry defined by NURQIENS (FM DB IENS format).
|
---|
| 57 | ; Data will be returned in the ^TMP($J,"NURQPMS", array.
|
---|
| 58 | ;
|
---|
| 59 | K ^TMP("DILIST",$J),^TMP($J,"NURQSEQ")
|
---|
| 60 | D LIST^DIC(217.43,","_NURQLOC_","_NURQSURV_",","","","","","","","","D PMID^NURQUTL")
|
---|
| 61 | K ^TMP($J,"NURQPMS") M ^TMP($J,"NURQPMS")=^TMP($J,"NURQSEQ")
|
---|
| 62 | M ^TMP($J,"NURQPMS","WRITE")=^TMP("DILIST",$J,"ID","WRITE")
|
---|
| 63 | M ^TMP($J,"NURQPMS","DA")=^TMP("DILIST",$J,2)
|
---|
| 64 | K ^TMP("DILIST",$J),^TMP($J,"NURQSEQ")
|
---|
| 65 | Q
|
---|
| 66 | PMID ; This procedure is called by Identifier code in LIST^DIC call which
|
---|
| 67 | ; is returning the printable text for the question to be listed for
|
---|
| 68 | ; a particular entry in the Performance Measure (217.43) sub-file.
|
---|
| 69 | ;
|
---|
| 70 | N NURQIENS,NURQREF
|
---|
| 71 | S NURQREF=$P(^(0),"^")
|
---|
| 72 | S NURQIENS=$P(NURQREF,",",4)_","_$P(NURQREF,",",2)_","
|
---|
| 73 | D QUESID(NURQIENS)
|
---|
| 74 | Q
|
---|
| 75 | QUESID(NURQIENS) ; This procedure is given the entry in the Question
|
---|
| 76 | ; (748.26) sub-file defined by NURQIENS (in DBS IENS format), will
|
---|
| 77 | ; set the printable text of that question for a LIST^DIC call.
|
---|
| 78 | ;
|
---|
| 79 | N NURQSURV,NURQQUES,NURQDAT,NURQQNO,NURQSEQ,NURQX,NURQY
|
---|
| 80 | D GETS^DIQ(748.26,NURQIENS,".015;.05","","NURQDAT")
|
---|
| 81 | S NURQQNO=$G(NURQDAT(748.26,NURQIENS,.015)) Q:NURQQNO=""
|
---|
| 82 | S NURQSEQ=$O(^TMP("DILIST",$J,1,""),-1) Q:NURQSEQ=""
|
---|
| 83 | S ^TMP($J,"NURQSEQ",NURQQNO)=NURQSEQ_"^"_$P(NURQIENS,",")
|
---|
| 84 | S NURQ1ST=1 K ^UTILITY($J,"W")
|
---|
| 85 | I $O(NURQDAT(748.26,NURQIENS,.05,0)) D
|
---|
| 86 | . S NURQX=0 F S NURQX=$O(NURQDAT(748.26,NURQIENS,.05,NURQX)) Q:NURQX'>0 S X=$G(NURQDAT(748.26,NURQIENS,.05,NURQX)) I $G(X)]"" D
|
---|
| 87 | . . I NURQ1ST S X=$J(NURQQNO,3)_" "_X
|
---|
| 88 | . . E S %=$G(^UTILITY($J,"W",8)),X=$G(^UTILITY($J,"W",8,%,0))_X K ^UTILITY($J,"W",8,%,0) S ^UTILITY($J,"W",8)=%-1
|
---|
| 89 | . . S DIWL=8,DIWR=IOM-2,DIWF="" D ^DIWP K DIWL,DIWR,DIWF S NURQ1ST=0
|
---|
| 90 | . . Q
|
---|
| 91 | . Q
|
---|
| 92 | E D
|
---|
| 93 | . S X=NURQQNO
|
---|
| 94 | . S DIWL=8,DIWR=IOM-2,DIWF="" D ^DIWP K DIWL,DIWR,DIWF
|
---|
| 95 | . Q
|
---|
| 96 | S NURQX=0 F S NURQX=$O(^UTILITY($J,"W",8,NURQX)) Q:NURQX'>0 D
|
---|
| 97 | . S NURQY=$G(^UTILITY($J,"W",8,NURQX,0))
|
---|
| 98 | . I NURQY]"" D EN^DDIOL(NURQY,"",$S(NURQX=1:"!?0",1:"!?7"))
|
---|
| 99 | . Q
|
---|
| 100 | K ^UTILITY($J,"W")
|
---|
| 101 | Q
|
---|