SCRPBK11 ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
 ;;5.3;Scheduling;**41,520**;AUG 13, 1993;Build 26
 ;
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("Associated Teams and Positions:",.SCINC,.SCDATA)
 D SET("-------------------------------",.SCINC,.SCDATA)
 S SCI=0 F  S SCI=$O(^SCTM(404.57,"E",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
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCRPBK11   3349     printed  Sep 23, 2025@20:18:43                                                                                                                                                                                                    Page 2
SCRPBK11  ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
 +1       ;;5.3;Scheduling;**41,520**;AUG 13, 1993;Build 26
 +2       ;
GETSEL(SCDATA,SCTYPE,SCIEN) ; 
 +1       ; -- get SELECTION entity data for details form
 +2       ;
 +3       ;  input:  SCTYPE       := type of autolink (DIVISIOND, TEAM, ectc.)
 +4       ;          SCIEN        := ien of entity
 +5       ; output:  SCDATA(1..n) := info about entity
 +6       ;
 +7       ; -- SEE BOTTOM OF SCRPBK FOR VARIABLE DEFINITIONS
 +8       ;
 +9       ; Related RPC: SCRP FILE ENTRY GETSELECTION
 +10      ;                    
 +11       NEW SC0,SCI,SCINC
 +12       SET SCINC=0
           SET SCID=+SCIEN
 +13      ;
 +14       IF SCTYPE="DIVISION"
               DO DIV
               GOTO GETSELQ
 +15      ;
 +16       IF SCTYPE="TEAM"
               DO TEAM
               GOTO GETSELQ
 +17      ;
 +18       IF SCTYPE="PRACTITIONER"
               DO PRAC
               GOTO GETSELQ
 +19      ;
 +20       IF SCTYPE="ROLE"
               DO ROLE
               GOTO GETSELQ
 +21      ;
 +22       IF SCTYPE="CLINIC"
               DO CLIN
               GOTO GETSELQ
 +23      ;
 +24       IF SCTYPE="USERCLASS"
               DO USER
               GOTO GETSELQ
 +25      ;
GETSELQ    QUIT 
 +1       ;
SET(X,INC,SCDATA) ; -- set value in return array
 +1        SET INC=$GET(INC)+1
           SET SCDATA(INC)=X
 +2        QUIT 
 +3       ;
DIV       ; -- get division details
 +1        DO SET("Teams in  Division:",.SCINC,.SCDATA)
 +2        DO SET("------------------",.SCINC,.SCDATA)
 +3        SET SCI=0
           FOR 
               SET SCI=$ORDER(^SCTM(404.51,"AINST",SCID,SCI))
               if 'SCI
                   QUIT 
               Begin DoDot:1
 +4                DO SET($PIECE($GET(^SCTM(404.51,SCI,0)),U),.SCINC,.SCDATA)
               End DoDot:1
 +5        QUIT 
 +6       ;
TEAM      ; -- get team description
 +1        NEW SC,SCFLE,SCIEN,SCDEF
 +2        SET SCFLE=404.51
           SET SCIEN=SCID_","
           SET SCDEF="<none specified>"
 +3        DO GETS^DIQ(SCFLE,SCID_",",50,"","SC")
 +4        DO SET("Team Description:",.SCINC,.SCDATA)
 +5        DO SET("-----------------",.SCINC,.SCDATA)
 +6        IF $ORDER(SC(SCFLE,SCIEN,50,0))
               Begin DoDot:1
 +7                SET SCI=0
                   FOR 
                       SET SCI=$ORDER(SC(SCFLE,SCIEN,50,SCI))
                       if 'SCI
                           QUIT 
                       SET X=SC(SCFLE,SCIEN,50,SCI)
                       Begin DoDot:2
 +8                        DO SET(X,.SCINC,.SCDATA)
                       End DoDot:2
               End DoDot:1
 +9       IF '$TEST
               Begin DoDot:1
 +10               DO SET(SCDEF,.SCINC,.SCDATA)
               End DoDot:1
 +11       QUIT 
 +12      ;
PRAC      ; -- get practitioner details
 +1        NEW SC,SCFLE,SCIEN,SCDEF
 +2        SET SCFLE=200
           SET SCIEN=SCID_","
           SET SCDEF="<none specified>"
 +3        DO GETS^DIQ(SCFLE,SCID_",","1;8;28","","SC")
 +4        DO SET(" Initials: "_$SELECT($GET(SC(SCFLE,SCIEN,1))]"":SC(SCFLE,SCIEN,1),1:SCDEF),.SCINC,.SCDATA)
 +5        DO SET("Mail Code: "_$SELECT($GET(SC(SCFLE,SCIEN,28))]"":SC(SCFLE,SCIEN,28),1:SCDEF),.SCINC,.SCDATA)
 +6        DO SET("    Title: "_$SELECT($GET(SC(SCFLE,SCIEN,8))]"":SC(SCFLE,SCIEN,8),1:SCDEF),.SCINC,.SCDATA)
 +7        QUIT 
 +8       ;
ROLE      ; -- get standard role description
 +1        NEW SC,SCFLE,SCIEN,SCDEF
 +2        SET SCFLE=403.46
           SET SCIEN=SCID_","
           SET SCDEF="<none specified>"
 +3        DO GETS^DIQ(SCFLE,SCID_",",1,"","SC")
 +4        DO SET("Role Description:",.SCINC,.SCDATA)
 +5        DO SET("-----------------",.SCINC,.SCDATA)
 +6        IF $ORDER(SC(SCFLE,SCIEN,1,0))
               Begin DoDot:1
 +7                SET SCI=0
                   FOR 
                       SET SCI=$ORDER(SC(SCFLE,SCIEN,1,SCI))
                       if 'SCI
                           QUIT 
                       SET X=SC(SCFLE,SCIEN,1,SCI)
                       Begin DoDot:2
 +8                        DO SET(X,.SCINC,.SCDATA)
                       End DoDot:2
               End DoDot:1
 +9       IF '$TEST
               Begin DoDot:1
 +10               DO SET(SCDEF,.SCINC,.SCDATA)
               End DoDot:1
 +11       QUIT 
 +12      ;
CLIN      ; -- get clinic details
 +1        NEW SC,SCFLE,SCIEN,SCDEF
 +2        SET SCFLE=44
           SET SCIEN=SCID_","
           SET SCDEF="<none specified>"
 +3        DO GETS^DIQ(SCFLE,SCID_",","1;3.5","","SC")
 +4        DO SET("Abbreviation: "_$SELECT($GET(SC(SCFLE,SCIEN,1))]"":SC(SCFLE,SCIEN,1),1:SCDEF),.SCINC,.SCDATA)
 +5        DO SET("    Division: "_$SELECT($GET(SC(SCFLE,SCIEN,3.5))]"":SC(SCFLE,SCIEN,3.5),1:SCDEF),.SCINC,.SCDATA)
 +6        DO SET(" ",.SCINC,.SCDATA)
 +7        DO SET("Associated Teams and Positions:",.SCINC,.SCDATA)
 +8        DO SET("-------------------------------",.SCINC,.SCDATA)
 +9        SET SCI=0
           FOR 
               SET SCI=$ORDER(^SCTM(404.57,"E",SCID,SCI))
               if 'SCI
                   QUIT 
               Begin DoDot:1
 +10               SET X=$GET(^SCTM(404.57,SCI,0))
 +11               DO SET("      Team: "_$PIECE($GET(^SCTM(404.51,+$PIECE(X,U,2),0)),U),.SCINC,.SCDATA)
 +12               DO SET("  Position: "_$PIECE(X,U),.SCINC,.SCDATA)
 +13               DO SET(" ",.SCINC,.SCDATA)
               End DoDot:1
 +14       QUIT 
 +15      ;
USER      ; -- get user class details
 +1        DO SET("No additional information available at this time. ",.SCINC,.SCDATA)
 +2        QUIT 
 +3       ;