| [613] | 1 | HLOUSR4 ;ALB/CJM -ListManager screen for reporting sequence queues;12 JUN 1997 10:00 am ;08/14/2007 | 
|---|
|  | 2 | ;;1.6;HEALTH LEVEL SEVEN;**137**;Oct 13, 1995;Build 21 | 
|---|
|  | 3 | ;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | ; | 
|---|
|  | 6 | EN      ; | 
|---|
|  | 7 | K HLPARMS ;not newed so they'll be left for realtime mode | 
|---|
|  | 8 | N OLDRFRSH | 
|---|
|  | 9 | S OLDRFRSH=$G(HLRFRSH) | 
|---|
|  | 10 | D CLEAN^VALM10 | 
|---|
|  | 11 | D FULL^VALM1 | 
|---|
|  | 12 | S HLRFRSH="SEARCH^HLOUSR4(.HLPARMS)" | 
|---|
|  | 13 | I '$$ASK(.HLPARMS) S VALMBCK="R" Q | 
|---|
|  | 14 | D EN^VALM("HLO SEQUENCE QUEUES") | 
|---|
|  | 15 | S HLRFRSH=OLDRFRSH | 
|---|
|  | 16 | I $L(HLRFRSH) D @HLRFRSH | 
|---|
|  | 17 | Q | 
|---|
|  | 18 | HDR     ; | 
|---|
|  | 19 | S (HLSCREEN,VALMSG)="Sequence Queues" | 
|---|
|  | 20 | Q | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | SEARCH(HLPARMS) ; | 
|---|
|  | 23 | N MIN,LATEONLY,NS,QUE,ARY,COUNT,NOW,IEN,TIME,NODE | 
|---|
|  | 24 | S MIN=+$G(HLPARMS("MIN")),LATEONLY=+$G(HLPARMS("LATEONLY")),NS=$G(HLPARMS("NS")) | 
|---|
|  | 25 | S VALMCNT=0 | 
|---|
|  | 26 | S NOW=$$NOW^XLFDT | 
|---|
|  | 27 | D CLEAN^VALM10 | 
|---|
|  | 28 | ; | 
|---|
|  | 29 | S ARY="^HLB(""QUEUE"",""SEQUENCE"")" | 
|---|
|  | 30 | S QUE=NS | 
|---|
|  | 31 | D:$L(NS)  F  S QUE=$O(@ARY@(QUE)) Q:QUE=""  Q:'($E(QUE,1,$L(NS))=NS)  D | 
|---|
|  | 32 | .S NODE=$G(@ARY@(QUE)) | 
|---|
|  | 33 | .S TIME=$P(NODE,"^",2) | 
|---|
|  | 34 | .I LATEONLY Q:'TIME  Q:TIME>NOW | 
|---|
|  | 35 | .S IEN=0 | 
|---|
|  | 36 | .S COUNT=$S($L($P(NODE,"^")):1,1:0) | 
|---|
|  | 37 | .F  S IEN=$O(@ARY@(QUE,IEN)) Q:'IEN  S COUNT=COUNT+1 | 
|---|
|  | 38 | .I MIN,COUNT<MIN,'(TIME&(TIME<NOW)) Q | 
|---|
|  | 39 | .D ADDTO(QUE,COUNT,NODE) | 
|---|
|  | 40 | END     S VALMBCK="R" | 
|---|
|  | 41 | ; | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | ADDTO(QUE,COUNT,NODE)   ; | 
|---|
|  | 44 | N LINE,MSGID | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | S MSGID="" | 
|---|
|  | 47 | I $P(NODE,"^") S MSGID=$P($G(^HLB(+NODE,0)),"^",1) | 
|---|
|  | 48 | S LINE=$$LJ(QUE,30)_$$RJ(COUNT,7)_"  "_$$LJ(MSGID,18) | 
|---|
|  | 49 | I $P(NODE,"^",2),$P(NODE,"^",2)<NOW S LINE=LINE_$$FMTE^XLFDT($P(NODE,"^",2),"2FM")_"  "_$S($P(NODE,"^",3):"YES",1:"NO") | 
|---|
|  | 50 | S @VALMAR@($$I,0)=LINE | 
|---|
|  | 51 | Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | LJ(STRING,LEN)  ; | 
|---|
|  | 54 | Q $$LJ^XLFSTR(STRING,LEN) | 
|---|
|  | 55 | ; | 
|---|
|  | 56 | RJ(STRING,LEN)  ; | 
|---|
|  | 57 | Q $$RJ^XLFSTR(STRING,LEN) | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | I()     ; | 
|---|
|  | 60 | S VALMCNT=VALMCNT+1 | 
|---|
|  | 61 | Q VALMCNT | 
|---|
|  | 62 | ; | 
|---|
|  | 63 | ASK(PARMS)      ; | 
|---|
|  | 64 | N SUB | 
|---|
|  | 65 | F SUB="NS","MIN","LATEONLY" S PARMS(SUB)="" | 
|---|
|  | 66 | S PARMS("NS")=$$ASKQUE | 
|---|
|  | 67 | Q:(PARMS("NS")=-1) 0 | 
|---|
|  | 68 | S PARMS("LATEONLY")=$$ASKYESNO^HLOUSR2("Include only queues that are late","NO") | 
|---|
|  | 69 | Q:(PARMS("LATEONLY")=-1) 0 | 
|---|
|  | 70 | S PARMS("MIN")=$$ASKMIN | 
|---|
|  | 71 | Q:(PARMS("MIN")<0) 0 | 
|---|
|  | 72 | Q 1 | 
|---|
|  | 73 | ; | 
|---|
|  | 74 | ASKMIN()        ; | 
|---|
|  | 75 | N DIR | 
|---|
|  | 76 | S DIR(0)="N^1:999999:0" | 
|---|
|  | 77 | S DIR("A")="Minimum Queue Size" | 
|---|
|  | 78 | S DIR("B")=1 | 
|---|
|  | 79 | S DIR("?",1)="If you would like to limit the report to include only the" | 
|---|
|  | 80 | S DIR("?")="longer queues then you must specify the minimum size to include." | 
|---|
|  | 81 | D ^DIR | 
|---|
|  | 82 | Q:$D(DTOUT)!$D(DUOUT) -1 | 
|---|
|  | 83 | Q X | 
|---|
|  | 84 | ASKQUE()        ; | 
|---|
|  | 85 | N DIR | 
|---|
|  | 86 | S DIR(0)="FO^0:40" | 
|---|
|  | 87 | S DIR("A")="Sequence Queue Namespace" | 
|---|
|  | 88 | S DIR("?")="Enter the namespace for the queues, or '^' to exit." | 
|---|
|  | 89 | D ^DIR | 
|---|
|  | 90 | Q:$D(DTOUT)!$D(DUOUT) -1 | 
|---|
|  | 91 | Q X | 
|---|
|  | 92 | ; | 
|---|
|  | 93 | ADVANCE ; | 
|---|
|  | 94 | N DIR,QUE,MSG,RET | 
|---|
|  | 95 | S VALMBCK="R" | 
|---|
|  | 96 | S DIR(0)="FO^0:40" | 
|---|
|  | 97 | S DIR("A")="Sequence Queue" | 
|---|
|  | 98 | S DIR("?")="Enter the full name of the queue, or '^' to exit." | 
|---|
|  | 99 | D ^DIR K DIR | 
|---|
|  | 100 | Q:$D(DTOUT)!$D(DUOUT) | 
|---|
|  | 101 | S QUE=X | 
|---|
|  | 102 | Q:'$L(QUE) | 
|---|
|  | 103 | S MSG=$$PICKMSG^HLOUSR1() | 
|---|
|  | 104 | Q:'MSG | 
|---|
|  | 105 | S RET=$$ADVANCE^HLOQUE(QUE,MSG) | 
|---|
|  | 106 | I 'RET D | 
|---|
|  | 107 | .W !,"Sorry, that queue was not pending that message!" D PAUSE^VALM1 | 
|---|
|  | 108 | E  D | 
|---|
|  | 109 | .W !,"The queue has been advanced!" D PAUSE^VALM1 | 
|---|
|  | 110 | ; | 
|---|
|  | 111 | D SEARCH(.HLPARMS) | 
|---|
|  | 112 | Q | 
|---|