VistA-WorldVistAEHR/r/SCHEDULING-SD-SC/SCRPBK11.m

98 lines
3.2 KiB
Mathematica

SCRPBK11 ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
;;5.3;Scheduling;**41**;AUG 13, 1993
;
GETSEL(SCDATA,SCTYPE,SCIEN) ;
; -- get SELECTION entity data for details form
;
; input: SCTYPE := type of autolink (DIVISIOND, TEAM, ectc.)
; SCIEN := ien of entity
; output: SCDATA(1..n) := info about entity
;
; -- SEE BOTTOM OF SCRPBK FOR VARIABLE DEFINITIONS
;
; Related RPC: SCRP FILE ENTRY GETSELECTION
;
N SC0,SCI,SCINC
S SCINC=0,SCID=+SCIEN
;
IF SCTYPE="DIVISION" D DIV G GETSELQ
;
IF SCTYPE="TEAM" D TEAM G GETSELQ
;
IF SCTYPE="PRACTITIONER" D PRAC G GETSELQ
;
IF SCTYPE="ROLE" D ROLE G GETSELQ
;
IF SCTYPE="CLINIC" D CLIN G GETSELQ
;
IF SCTYPE="USERCLASS" D USER G GETSELQ
;
GETSELQ Q
;
SET(X,INC,SCDATA) ; -- set value in return array
S INC=$G(INC)+1,SCDATA(INC)=X
Q
;
DIV ; -- get division details
D SET("Teams in Division:",.SCINC,.SCDATA)
D SET("------------------",.SCINC,.SCDATA)
S SCI=0 F S SCI=$O(^SCTM(404.51,"AINST",SCID,SCI)) Q:'SCI D
. D SET($P($G(^SCTM(404.51,SCI,0)),U),.SCINC,.SCDATA)
Q
;
TEAM ; -- get team description
N SC,SCFLE,SCIEN,SCDEF
S SCFLE=404.51,SCIEN=SCID_",",SCDEF="<none specified>"
D GETS^DIQ(SCFLE,SCID_",",50,"","SC")
D SET("Team Description:",.SCINC,.SCDATA)
D SET("-----------------",.SCINC,.SCDATA)
IF $O(SC(SCFLE,SCIEN,50,0)) D
. S SCI=0 F S SCI=$O(SC(SCFLE,SCIEN,50,SCI)) Q:'SCI S X=SC(SCFLE,SCIEN,50,SCI) D
. . D SET(X,.SCINC,.SCDATA)
ELSE D
. D SET(SCDEF,.SCINC,.SCDATA)
Q
;
PRAC ; -- get practitioner details
N SC,SCFLE,SCIEN,SCDEF
S SCFLE=200,SCIEN=SCID_",",SCDEF="<none specified>"
D GETS^DIQ(SCFLE,SCID_",","1;8;28","","SC")
D SET(" Initials: "_$S($G(SC(SCFLE,SCIEN,1))]"":SC(SCFLE,SCIEN,1),1:SCDEF),.SCINC,.SCDATA)
D SET("Mail Code: "_$S($G(SC(SCFLE,SCIEN,28))]"":SC(SCFLE,SCIEN,28),1:SCDEF),.SCINC,.SCDATA)
D SET(" Title: "_$S($G(SC(SCFLE,SCIEN,8))]"":SC(SCFLE,SCIEN,8),1:SCDEF),.SCINC,.SCDATA)
Q
;
ROLE ; -- get standard role description
N SC,SCFLE,SCIEN,SCDEF
S SCFLE=403.46,SCIEN=SCID_",",SCDEF="<none specified>"
D GETS^DIQ(SCFLE,SCID_",",1,"","SC")
D SET("Role Description:",.SCINC,.SCDATA)
D SET("-----------------",.SCINC,.SCDATA)
IF $O(SC(SCFLE,SCIEN,1,0)) D
. S SCI=0 F S SCI=$O(SC(SCFLE,SCIEN,1,SCI)) Q:'SCI S X=SC(SCFLE,SCIEN,1,SCI) D
. . D SET(X,.SCINC,.SCDATA)
ELSE D
. D SET(SCDEF,.SCINC,.SCDATA)
Q
;
CLIN ; -- get clinic details
N SC,SCFLE,SCIEN,SCDEF
S SCFLE=44,SCIEN=SCID_",",SCDEF="<none specified>"
D GETS^DIQ(SCFLE,SCID_",","1;3.5","","SC")
D SET("Abbreviation: "_$S($G(SC(SCFLE,SCIEN,1))]"":SC(SCFLE,SCIEN,1),1:SCDEF),.SCINC,.SCDATA)
D SET(" Division: "_$S($G(SC(SCFLE,SCIEN,3.5))]"":SC(SCFLE,SCIEN,3.5),1:SCDEF),.SCINC,.SCDATA)
D SET(" ",.SCINC,.SCDATA)
D SET("Assoicated Teams and Positions:",.SCINC,.SCDATA)
D SET("-------------------------------",.SCINC,.SCDATA)
S SCI=0 F S SCI=$O(^SCTM(404.57,"D",SCID,SCI)) Q:'SCI D
. S X=$G(^SCTM(404.57,SCI,0))
. D SET(" Team: "_$P($G(^SCTM(404.51,+$P(X,U,2),0)),U),.SCINC,.SCDATA)
. D SET(" Position: "_$P(X,U),.SCINC,.SCDATA)
. D SET(" ",.SCINC,.SCDATA)
Q
;
USER ; -- get user class details
D SET("No additional information available at this time. ",.SCINC,.SCDATA)
Q
;