GMRCACTM ; SLC/DLT,DCM,JFR - Set action menus ;10/17/01 22:41
;;3.0;CONSULT/REQUEST TRACKING;**1,4,11,18,15,17,22,55**;DEC 27, 1997;Build 4
;
; This routine invokes IA #2425
;
CPRS(GMRCPM,GUI) ;Entry point for setting menu actions for CPRS user
;Input:
; GMRCPM=a list of File 123 IEN's to check for menu actions.
; Passed in as '300;303;295;309;313'
; GUI =1 if coming from the GUI; return field name in ORFLG also
;Output:
; ORFLG(ien)= A^B^C^D^E^F^G^H where:
; Ien = internal entry of record in file 123
; A = a number representing one of the following:
; 1 - user has only review capabilities
; 2 - user has full update capabilities
; 3 - user has administrative update capabilities
; 4 - user has full update and admin user capabilities
; 5 - user has full update capabilities via unrestricted access
; B = field in file 123.5 (REQUEST SERVICES) that gave the user
; update authority (ex. Update user w/o Notification)
; C = Service in file 123.5 (REQUEST SERVICES) that gave the user
; update authority (ex. CARDIOLOGY,NEUROLOGY)
; D = contains a 1 if user is allowed to associate medicine results
; with a consult procedure request
; F = contain a 1 if user can disassociate a medicine result that was
; incorrectly associated with a consult procedure request
; G = contains a 1 if user is allowed to EDIT and RESUBMIT a canceled
; request
; H = 0-4 depending on actions allowed on a Clin. Proc. request
;
I '$L(GMRCPM) S ORFLG=1 Q
K ORFLG
N I,GMRCSS,GMRCIEN
F I=1:1 S ORFLG=1,GMRCIEN=$P(GMRCPM,";",I) Q:GMRCIEN="" D
.S ORFLG(GMRCIEN)=1 ;set default answer to read only
.I $P($G(^GMR(123,GMRCIEN,12)),U,5)="P" D Q ;IFC placer so only ED/RES
.. ;can user edit/resubmit
.. I $$VALPROV^GMRCEDIT(GMRCIEN) S $P(ORFLG(GMRCIEN),U,6)=1
.S GMRCSS=+$P($G(^GMR(123,+GMRCIEN,0)),"^",5)
.Q:'+$G(GMRCSS)
.;when service is defined, check for service user
.D EN
.S ORFLG(GMRCIEN)=ORFLG
. ;what actions to allow if a Clincial Procedure
. S $P(ORFLG(GMRCIEN),U,7)=$$CPACTM^GMRCCP(GMRCIEN)
.I ORFLG>1 D
.. ;can DUZ associate med results? only if not a CP!
.. N P4
.. S P4=$S(+$P(ORFLG(GMRCIEN),U,7):0,1:$$CANDOMED^GMRCGUIU(GMRCIEN))
.. S $P(ORFLG(GMRCIEN),U,4)=P4
. ;can DUZ disassociate a med result?
. S $P(ORFLG(GMRCIEN),U,5)=+$$REMUSR^GMRCDIS(GMRCIEN)
. ;can user edit/resubmit
. I $$VALPROV^GMRCEDIT(GMRCIEN) S $P(ORFLG(GMRCIEN),U,6)=1
. Q
Q
;
EN ;Set GMRCACTM with appropriate menu of actions based on user
;If ORFLG is DEFINED then GMRCACTM is returned as a set of codes:
; 1 = GMRCACTM USER REVIEW SCREEN - simple actions
; 2 = GMRCACTM SERVICE ACTION menu - all actions possible for
; clinical user in service
; 3 = administrative user
; initialize GMRCACTM for read only
S GMRCACTM="GMRCACTM USER REVIEW SCREEN"
; if service and entry aren't defined, assume read only access
I '$D(XQADATA),$S('+$G(GMRCSS):1,1:0) D Q
.I $D(ORFLG) S ORFLG(GMRCIEN)=1 K GMRCACTM
.Q
;
;Get the users service update level
N GMRCFLG
S GMRCFLG=$$VALID^GMRCAU(+GMRCSS,"",,$G(GUI))
S:+GMRCFLG=1 GMRCFLG=$S(($D(ORFLG)&($$PATCH^XPDUTL("OR*3.0*243"))):"5^"_$P(GMRCFLG,U,2,9999),1:"2^"_$P(GMRCFLG,U,2,9999))
;
;If ORFLG is all that should be returned, than set and exit
I $D(ORFLG) D Q
. K GMRCACTM
. I GMRCFLG=0 S ORFLG=1 Q
. S ORFLG=GMRCFLG Q
;
; If GMRCSS=and IFC sending service, only allow review screen
I $D(^GMR(123.5,+GMRCSS,"IFC")),$P(^("IFC"),U) S GMRCFLG=0
;
;Process the GMRCFLG value to get the GMRCACTM defined.
I GMRCFLG>0 D Q
. S GMRCACTM="GMRCACTM SERVICE ACTION MENU"
Q
GMRCACTM ; SLC/DLT,DCM,JFR - Set action menus ;10/17/01 22:41
+1 ;;3.0;CONSULT/REQUEST TRACKING;**1,4,11,18,15,17,22,55**;DEC 27, 1997;Build 4
+2 ;
+3 ; This routine invokes IA #2425
+4 ;
CPRS(GMRCPM,GUI) ;Entry point for setting menu actions for CPRS user
+1 ;Input:
+2 ; GMRCPM=a list of File 123 IEN's to check for menu actions.
+3 ; Passed in as '300;303;295;309;313'
+4 ; GUI =1 if coming from the GUI; return field name in ORFLG also
+5 ;Output:
+6 ; ORFLG(ien)= A^B^C^D^E^F^G^H where:
+7 ; Ien = internal entry of record in file 123
+8 ; A = a number representing one of the following:
+9 ; 1 - user has only review capabilities
+10 ; 2 - user has full update capabilities
+11 ; 3 - user has administrative update capabilities
+12 ; 4 - user has full update and admin user capabilities
+13 ; 5 - user has full update capabilities via unrestricted access
+14 ; B = field in file 123.5 (REQUEST SERVICES) that gave the user
+15 ; update authority (ex. Update user w/o Notification)
+16 ; C = Service in file 123.5 (REQUEST SERVICES) that gave the user
+17 ; update authority (ex. CARDIOLOGY,NEUROLOGY)
+18 ; D = contains a 1 if user is allowed to associate medicine results
+19 ; with a consult procedure request
+20 ; F = contain a 1 if user can disassociate a medicine result that was
+21 ; incorrectly associated with a consult procedure request
+22 ; G = contains a 1 if user is allowed to EDIT and RESUBMIT a canceled
+23 ; request
+24 ; H = 0-4 depending on actions allowed on a Clin. Proc. request
+25 ;
+26 IF '$LENGTH(GMRCPM)
SET ORFLG=1
QUIT
+27 KILL ORFLG
+28 NEW I,GMRCSS,GMRCIEN
+29 FOR I=1:1
SET ORFLG=1
SET GMRCIEN=$PIECE(GMRCPM,";",I)
IF GMRCIEN=""
QUIT
Begin DoDot:1
+30 ;set default answer to read only
SET ORFLG(GMRCIEN)=1
+31 ;IFC placer so only ED/RES
IF $PIECE($GET(^GMR(123,GMRCIEN,12)),U,5)="P"
Begin DoDot:2
+32 ;can user edit/resubmit
+33 IF $$VALPROV^GMRCEDIT(GMRCIEN)
SET $PIECE(ORFLG(GMRCIEN),U,6)=1
End DoDot:2
QUIT
+34 SET GMRCSS=+$PIECE($GET(^GMR(123,+GMRCIEN,0)),"^",5)
+35 IF '+$GET(GMRCSS)
QUIT
+36 ;when service is defined, check for service user
+37 DO EN
+38 SET ORFLG(GMRCIEN)=ORFLG
+39 ;what actions to allow if a Clincial Procedure
+40 SET $PIECE(ORFLG(GMRCIEN),U,7)=$$CPACTM^GMRCCP(GMRCIEN)
+41 IF ORFLG>1
Begin DoDot:2
+42 ;can DUZ associate med results? only if not a CP!
+43 NEW P4
+44 SET P4=$SELECT(+$PIECE(ORFLG(GMRCIEN),U,7):0,1:$$CANDOMED^GMRCGUIU(GMRCIEN))
+45 SET $PIECE(ORFLG(GMRCIEN),U,4)=P4
End DoDot:2
+46 ;can DUZ disassociate a med result?
+47 SET $PIECE(ORFLG(GMRCIEN),U,5)=+$$REMUSR^GMRCDIS(GMRCIEN)
+48 ;can user edit/resubmit
+49 IF $$VALPROV^GMRCEDIT(GMRCIEN)
SET $PIECE(ORFLG(GMRCIEN),U,6)=1
+50 QUIT
End DoDot:1
+51 QUIT
+52 ;
EN ;Set GMRCACTM with appropriate menu of actions based on user
+1 ;If ORFLG is DEFINED then GMRCACTM is returned as a set of codes:
+2 ; 1 = GMRCACTM USER REVIEW SCREEN - simple actions
+3 ; 2 = GMRCACTM SERVICE ACTION menu - all actions possible for
+4 ; clinical user in service
+5 ; 3 = administrative user
+6 ; initialize GMRCACTM for read only
+7 SET GMRCACTM="GMRCACTM USER REVIEW SCREEN"
+8 ; if service and entry aren't defined, assume read only access
+9 IF '$DATA(XQADATA)
IF $SELECT('+$GET(GMRCSS):1,1:0)
Begin DoDot:1
+10 IF $DATA(ORFLG)
SET ORFLG(GMRCIEN)=1
KILL GMRCACTM
+11 QUIT
End DoDot:1
QUIT
+12 ;
+13 ;Get the users service update level
+14 NEW GMRCFLG
+15 SET GMRCFLG=$$VALID^GMRCAU(+GMRCSS,"",,$GET(GUI))
+16 IF +GMRCFLG=1
SET GMRCFLG=$SELECT(($DATA(ORFLG)&($$PATCH^XPDUTL("OR*3.0*243"))):"5^"_$PIECE(GMRCFLG,U,2,9999),1:"2^"_$PIECE(GMRCFLG,U,2,9999))
+17 ;
+18 ;If ORFLG is all that should be returned, than set and exit
+19 IF $DATA(ORFLG)
Begin DoDot:1
+20 KILL GMRCACTM
+21 IF GMRCFLG=0
SET ORFLG=1
QUIT
+22 SET ORFLG=GMRCFLG
QUIT
End DoDot:1
QUIT
+23 ;
+24 ; If GMRCSS=and IFC sending service, only allow review screen
+25 IF $DATA(^GMR(123.5,+GMRCSS,"IFC"))
IF $PIECE(^("IFC"),U)
SET GMRCFLG=0
+26 ;
+27 ;Process the GMRCFLG value to get the GMRCACTM defined.
+28 IF GMRCFLG>0
Begin DoDot:1
+29 SET GMRCACTM="GMRCACTM SERVICE ACTION MENU"
End DoDot:1
QUIT
+30 QUIT