| 1 | GMRCSLMA ;SLC/DLT - List Manager protocol entry, exit actions ; 11/25/2000 | 
|---|
| 2 | ;;3.0;CONSULT/REQUEST TRACKING;**4,18**;DEC 27, 1997 | 
|---|
| 3 | ; This routine invokes IA #875,#2638 | 
|---|
| 4 | ;Variables used in entry and exit actions | 
|---|
| 5 | ; GMRCALFL is 1 flags the action is executing from an alert | 
|---|
| 6 | ;        set logic is GMRCALFL=$S($D(XQAID)&($D(XQADATA):1,1:0) | 
|---|
| 7 | ; VALMBCK="R" to refresh screen | 
|---|
| 8 | ;        =NULL to clear bottom portion of screen and prompt for action | 
|---|
| 9 | ;        =Q to exit List manager | 
|---|
| 10 | ; GMRC("NMBR") = the currently highlighed entry in the list | 
|---|
| 11 | ; BLK= | 
|---|
| 12 | ; LNCT= Set to 1 if the GMRCALFL flag is 1 | 
|---|
| 13 | ; GMRCQUT= if defined than exit list manager? | 
|---|
| 14 | ; GMRCEN = defined if branched to date range prompt by EN^GMRCSLM | 
|---|
| 15 | ; GMRCOER= used to indicate whether CPRS or consults initiated action | 
|---|
| 16 | ;         0 for Consults List Manager | 
|---|
| 17 | ;         1 for GUI | 
|---|
| 18 | ;         2 for CPRS Consults tab to Detailed Display | 
|---|
| 19 | ; ^TMP("GMRC",$J,"CURRENT","MENU"))= the action menu for user | 
|---|
| 20 | ;        based on the service by EN^GMRCMENU | 
|---|
| 21 | ;Entry points called: | 
|---|
| 22 | ;  AD^GMRCSLM1  ;Loop through AD cross-reference doing SET | 
|---|
| 23 | ;  SET^GMRCSLM1 ;Format entries into ^TMP("GMRCR",$J,"CS" | 
|---|
| 24 | ;  INIT^GMRCSLM ;Initialize variables and list array | 
|---|
| 25 | ;  END^GMRCSLM1 ;Resets BLK and LNCT and kills variables | 
|---|
| 26 | ;  HDR^GMRCSLM  ;Reset the VALMHDR values | 
|---|
| 27 | ;  AGAIN^GMRCSLMV(GMRC("NMBR")) ;Reset the video attribute only, do not redisplay | 
|---|
| 28 | ;  RESET^GMRCSLMV(GMRC("NMBR")) ;turn reverse video off when another item is selected | 
|---|
| 29 | ; | 
|---|
| 30 | ENTRY(TYPE) ; -- Entry action for list manager actions | 
|---|
| 31 | ;Actions: RT,DT | 
|---|
| 32 | ;TYPE="" when the list and header have no change | 
|---|
| 33 | ;TYPE["L" | 
|---|
| 34 | ;    Assumes Rebuild the list due to change in the list information | 
|---|
| 35 | ;    Use for GMRCACT CANCEL REQUEST, GMRCACT DISCONTINUE | 
|---|
| 36 | ;            GMRCACT COMPLETE,GMRCACT EDIT/RESUBMIT | 
|---|
| 37 | ;TYPE["H" | 
|---|
| 38 | ;    Assumes need to rebuild the header too due to change in the list | 
|---|
| 39 | ;        manager used while processing the action | 
|---|
| 40 | ;    Use for GMRCACT COMPLETE, DD, RT, since it goes to TIU | 
|---|
| 41 | S VALMBCK="R" | 
|---|
| 42 | ;Q:$D(GMRCQUT) | 
|---|
| 43 | ; | 
|---|
| 44 | I $D(GMRCALFL) D  Q  ;Processing from an alert, quit | 
|---|
| 45 | . K ^TMP("GMRCR",$J,"CS"),GMRCDA | 
|---|
| 46 | . S BLK=0,LNCT=1 | 
|---|
| 47 | . S VALMBCK="R" | 
|---|
| 48 | . D SET^GMRCSLM1 | 
|---|
| 49 | . D INIT^GMRCSLM | 
|---|
| 50 | . ;D END^GMRCSLM1 ;cancel,receive | 
|---|
| 51 | . Q | 
|---|
| 52 | ; | 
|---|
| 53 | ;Processing from Consults action | 
|---|
| 54 | I $G(TYPE)["L" D AD^GMRCSLM1,INIT^GMRCSLM S VALMBG=1 | 
|---|
| 55 | I $G(TYPE)["H" D HDR^GMRCSLM,INIT^GMRCSLM | 
|---|
| 56 | Q | 
|---|
| 57 | ;alert logic not flushed out | 
|---|
| 58 | ;. I $G(TYPE)["L" D | 
|---|
| 59 | ;. . ; rebuild the list | 
|---|
| 60 | ;. . K ^TMP("GMRCR",$J,"CS") | 
|---|
| 61 | ;. . D SET^GMRCSLM1 | 
|---|
| 62 | ;. . D INIT^GMRCSLM | 
|---|
| 63 | ;. I $G(TYPE)["H" D HDR^GMRCSLM,INIT^GMRCSLM | 
|---|
| 64 | ;. I $G(TYPE)["L" D END^GMRCSLM1 ;cancel,receive | 
|---|
| 65 | ;. Q | 
|---|
| 66 | ; | 
|---|
| 67 | EXIT(LINE) ; -- Exit action for list manager to refresh screen and reset the menu | 
|---|
| 68 | ;Actions using this: RT,DT | 
|---|
| 69 | ;LINE contains "A" Re-highlight line on list | 
|---|
| 70 | ;LINE contains "R" Remove highlight on list | 
|---|
| 71 | ;Used by GMRCACT CANCEL REQUEST,GMRCACT COMMENT ORDERS, | 
|---|
| 72 | ;        GMRCACT EDIT/RESUBMIT | 
|---|
| 73 | I "A"[LINE,$D(GMRC("NMBR")) D AGAIN^GMRCSLMV(GMRC("NMBR")) ;DD entry and RD exit action | 
|---|
| 74 | I "R"[LINE,$D(GMRC("NMBR")) D RESET^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR") | 
|---|
| 75 | S VALMBCK="R" | 
|---|
| 76 | S:$D(^TMP("GMRC",$J,"CURRENT","MENU")) XQORM("HIJACK")=^("MENU") | 
|---|
| 77 | S VALMBG=1 | 
|---|
| 78 | K GMRCSEL,GMRCO,GMRCND | 
|---|
| 79 | Q | 
|---|
| 80 | ; | 
|---|
| 81 | PHDR ; -- protocol header code called from the protocol action menus | 
|---|
| 82 | ;S VALMSG=$$MSG | 
|---|
| 83 | D SHOW^VALM | 
|---|
| 84 | S XQORM("#")=$O(^ORD(101,"B","GMRC SELECT ITEM",0))_"^1:"_VALMCNT | 
|---|
| 85 | S XQORM("A")="Select: " | 
|---|
| 86 | S XQORM("KEY","EX")=$O(^ORD(101,"B","GMRCACT QUIT",0))_"^1" | 
|---|
| 87 | S XQORM("KEY","Q")=$O(^ORD(101,"B","GMRCACT QUIT",0))_"^1" | 
|---|
| 88 | S XQORM("KEY","CLOSE")=$O(^ORD(101,"B","GMRCACT QUIT",0))_"^1" | 
|---|
| 89 | S XQORM("KEY","NX")=$O(^ORD(101,"B","GMRCACT NEXT SCREEN",0))_"^1" | 
|---|
| 90 | S XQORM("KEY","NEXT")=$O(^ORD(101,"B","GMRCACT NEXT SCREEN",0))_"^1" | 
|---|
| 91 | S XQORM("KEY","PS")=$O(^ORD(101,"B","GMRCACT PRINT CONSULT FORM",0))_"^1" | 
|---|
| 92 | S XQORM("KEY","CM")=$O(^ORD(101,"B","GMRCACT COMMENT ORDERS",0))_"^1" | 
|---|
| 93 | K GMRCNMBR | 
|---|
| 94 | Q | 
|---|
| 95 | ;I '+$G(OVRRIDE),$$VALID^GMRCAU(+$G(GMRCSS)) D  ;set 2.5 mnem's into XQORM("KEY") | 
|---|
| 96 | ;. S XQORM("KEY","AC")="$O(^ORD(101,"B","GMRCACT ADMIN COMPLETE",0)_"^1" | 
|---|
| 97 | ;. S XQORM("KEY","DY")=$O(^ORD(101,"B","GMRCACT CANCEL",0))_"^1" | 
|---|
| 98 | ;. S XQORM("KEY","ED")=$O(^ORD(101,"B","GMRC CHANGE ORDERS",0))_"^1" | 
|---|
| 99 | Q | 
|---|
| 100 | MSG() ; -- LMgr message bar | 
|---|
| 101 | Q "Enter the number of the item you wish to act on, or select an action." | 
|---|
| 102 | ; | 
|---|
| 103 | MARGIN ; -- Reset bottom margin if menu display off | 
|---|
| 104 | N BM S BM=$S(VALMMENU:17,1:21) Q:BM=VALM("BM")  ; no change | 
|---|
| 105 | S VALM("BM")=BM,VALM("LINES")=VALM("BM")-VALM("TM")+1,VALMBCK="R" | 
|---|
| 106 | Q | 
|---|
| 107 | ; | 
|---|
| 108 | SELEXIT ; -- Exit action for list manager when selection criteria changed | 
|---|
| 109 | S:$D(^TMP("GMRC",$J,"CURRENT","MENU")) XQORM("HIJACK")=^("MENU") | 
|---|
| 110 | S VALMBCK="R" | 
|---|
| 111 | Q:($D(GMRCQUT)!$D(GMRCQUIT))  ;status exit using GMRCQUIT?? | 
|---|
| 112 | I $D(GMRC("NMBR")) D RESET^GMRCSLMV(GMRC("NMBR")) K GMRC("NMBR") | 
|---|
| 113 | D AD^GMRCSLM1 | 
|---|
| 114 | D INIT^GMRCSLM ;from select patient, select service | 
|---|
| 115 | D HDR^GMRCSLM  ;from select patient, select date range | 
|---|
| 116 | K GMRCSEL,GMRCO,GMRCND | 
|---|
| 117 | Q | 
|---|
| 118 | ; | 
|---|