[613] | 1 | SCRPBK1 ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
|
---|
| 2 | ;;5.3;Scheduling;**41,177**;AUG 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | GETDATA(SCDATA,SCTYPE,SCRPTID,SCRPTN,SCTEXT,SCSELS) ;
|
---|
| 5 | ; -- get file type entries for Selections form
|
---|
| 6 | ;
|
---|
| 7 | ; output: SCDATA(1..n) := info about entity. NOTE this is now in a
|
---|
| 8 | ; global location rather than an array for this RPC.
|
---|
| 9 | ;
|
---|
| 10 | ; -- SEE BOTTOM OF SCRPBK FOR MORE VARIABLE DEFINITIONS
|
---|
| 11 | ;
|
---|
| 12 | ; Related RPC: SCRP SELECTION SOURCE
|
---|
| 13 | ;
|
---|
| 14 | S SCDATA=$NA(^TMP($J,"PCMM","SCDATA"))
|
---|
| 15 | ;
|
---|
| 16 | IF SCTYPE="DIVISION" D DIV G GETDATAQ
|
---|
| 17 | ;
|
---|
| 18 | IF SCTYPE="TEAM" D TEAM G GETDATAQ
|
---|
| 19 | ;
|
---|
| 20 | IF SCTYPE="PRACTITIONER" D PRAC G GETDATAQ
|
---|
| 21 | ;
|
---|
| 22 | IF SCTYPE="ROLE" D ROLE G GETDATAQ
|
---|
| 23 | ;
|
---|
| 24 | IF SCTYPE="CLINIC" D CLIN G GETDATAQ
|
---|
| 25 | ;
|
---|
| 26 | IF SCTYPE="USERCLASS" D USER G GETDATAQ
|
---|
| 27 | ;
|
---|
| 28 | GETDATAQ Q
|
---|
| 29 | ;
|
---|
| 30 | CHK(SCX,SCLEN) ; -- check if text matches user input
|
---|
| 31 | Q SCX=""!($E(SCX,1,SCLEN)'=SCTEXT)
|
---|
| 32 | ;
|
---|
| 33 | BACK(X) ; -- backup one char for scanning
|
---|
| 34 | Q $S(X="":"",$L(X)=1:$C($A(X)-1)_$C(122),1:$E(X,1,$L(X)-1)_$C($A($E(X,$L(X)))-1)_$C(122))
|
---|
| 35 | ;
|
---|
| 36 | DIV ; -- get institution file entries
|
---|
| 37 | N SCI,Y,SCX,SCLEN,SCINC
|
---|
| 38 | S SCI=0,SCINC=0,SCX=$$BACK(SCTEXT),SCLEN=$L(SCTEXT)
|
---|
| 39 | F S SCI=$O(^SCTM(404.51,"AINST",SCI)) Q:'SCI D
|
---|
| 40 | . S Y=SCI,SC0=$G(^DIC(4,Y,0))
|
---|
| 41 | . Q:$$CHK($P(SC0,U),SCLEN)
|
---|
| 42 | . D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 43 | Q
|
---|
| 44 | ;
|
---|
| 45 | TEAM ; -- get team file entries
|
---|
| 46 | N SCI,Y,SCX,SCLEN,SCINC,VAUTD
|
---|
| 47 | S SCI=0,SCINC=0,SCX=$$BACK(SCTEXT),SCLEN=$L(SCTEXT)
|
---|
| 48 | D VAUTD(.SCSELS,.VAUTD)
|
---|
| 49 | F S SCX=$O(^SCTM(404.51,"B",SCX)) Q:$$CHK(SCX,SCLEN) D
|
---|
| 50 | . F S SCI=$O(^SCTM(404.51,"B",SCX,SCI)) Q:'SCI D
|
---|
| 51 | . . S Y=SCI,SC0=$G(^SCTM(404.51,Y,0))
|
---|
| 52 | . . IF $D(VAUTD(+$P(^(0),U,7))) D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 53 | Q
|
---|
| 54 | ;
|
---|
| 55 | PRAC ; -- get practitioner entries
|
---|
| 56 | N SCI,Y,SCX,SCLEN,SCINC,VAUTT
|
---|
| 57 | S SCI=0,SCINC=0,SCX=$$BACK(SCTEXT),SCLEN=$L(SCTEXT)
|
---|
| 58 | D VAUTT(.SCSELS,.VAUTT)
|
---|
| 59 | F S SCX=$O(^VA(200,"B",SCX)) Q:$$CHK(SCX,SCLEN) D
|
---|
| 60 | . F S SCI=$O(^VA(200,"B",SCX,SCI)) Q:'SCI D
|
---|
| 61 | . . S Y=SCI,SC0=$G(^VA(200,Y,0))
|
---|
| 62 | . . IF $D(VAUTT),$$PRACS^SCRPU1() D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | ROLE ; -- get standard role file entries
|
---|
| 66 | N SCI,Y,SCX,SCLEN,SCINC,VAUTT
|
---|
| 67 | S SCI=0,SCINC=0,SCX=$$BACK(SCTEXT),SCLEN=$L(SCTEXT)
|
---|
| 68 | D VAUTT(.SCSELS,.VAUTT)
|
---|
| 69 | F S SCX=$O(^SD(403.46,"B",SCX)) Q:$$CHK(SCX,SCLEN) D
|
---|
| 70 | . F S SCI=$O(^SD(403.46,"B",SCX,SCI)) Q:'SCI D
|
---|
| 71 | . . S Y=SCI,SC0=$G(^SD(403.46,SCI,0))
|
---|
| 72 | . . IF $D(VAUTT),$$RL^SCRPU1() D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 73 | Q
|
---|
| 74 | ;
|
---|
| 75 | CLIN ; -- get clinic entries
|
---|
| 76 | N SCI,Y,SCX,SCLEN,SCINC,VAUTD,VAUTT,SCLIN
|
---|
| 77 | S SCLIN="^TMP($J,""PCMM"",""SCLIN"")"
|
---|
| 78 | K @SCLIN
|
---|
| 79 | S SCI=0,SCINC=0,SCLEN=$L(SCTEXT)
|
---|
| 80 | IF SCRPTID=2 D
|
---|
| 81 | . Q
|
---|
| 82 | ELSE D
|
---|
| 83 | . D VAUTT(.SCSELS,.VAUTT)
|
---|
| 84 | F SCXREF="B","C","TEAMS" S SCX=$$BACK(SCTEXT) D Q:SCTEXT=""
|
---|
| 85 | . F S SCX=$O(^SC(SCXREF,SCX)) Q:$$CHK(SCX,SCLEN) D
|
---|
| 86 | . . F S SCI=$O(^SC(SCXREF,SCX,SCI)) Q:'SCI IF '$D(@SCLIN@(SCI)) D
|
---|
| 87 | . . . S Y=SCI,SC0=$G(^SC(Y,0))
|
---|
| 88 | . . . IF SCRPTID=2,$$CLSC2^SCRPU1() D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA) S @SCLIN@(SCI)=""
|
---|
| 89 | . . . IF SCRPTID'=2,$D(VAUTT),$$CLSC^SCRPU1() D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 90 | K @SCLIN
|
---|
| 91 | Q
|
---|
| 92 | ;
|
---|
| 93 | USER ; -- get user class file entries
|
---|
| 94 | N SCI,Y,SCX,SCLEN,SCINC,VAUTT
|
---|
| 95 | S SCI=0,SCINC=0,SCX=$$BACK(SCTEXT),SCLEN=$L(SCTEXT)
|
---|
| 96 | D VAUTT(.SCSELS,.VAUTT)
|
---|
| 97 | F S SCX=$O(^USR(8930,"B",SCX)) Q:$$CHK(SCX,SCLEN) D
|
---|
| 98 | . F S SCI=$O(^USR(8930,"B",SCX,SCI)) Q:'SCI D
|
---|
| 99 | . . S Y=SCI,SC0=$G(^USR(8930,SCI,0))
|
---|
| 100 | . . IF $D(VAUTT),$$USRCL^SCRPU1() D SET($P(SC0,U)_U_SCTYPE_U_SCI,.SCINC,SCDATA)
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | VAUTD(SCSELS,VAUTD) ; -- build division util array
|
---|
| 104 | N I,X
|
---|
| 105 | F I=1:1 S X=$G(SCSELS(I)) Q:X="" IF $P(X,U,2)="DIVISION" S VAUTD(+$P(X,U,3))=$P(X,U)
|
---|
| 106 | S:$D(VAUTD) VAUTD=0
|
---|
| 107 | Q
|
---|
| 108 | ;
|
---|
| 109 | VAUTT(SCSELS,VAUTT) ; -- build team util array
|
---|
| 110 | N I,X
|
---|
| 111 | IF SCRPTID=3 S VAUTT=1 G VAUTTQ
|
---|
| 112 | F I=1:1 S X=$G(SCSELS(I)) Q:X="" IF $P(X,U,2)="TEAM" S VAUTT(+$P(X,U,3))=$P(X,U)
|
---|
| 113 | S:$D(VAUTT) VAUTT=0
|
---|
| 114 | VAUTTQ Q
|
---|
| 115 | ;
|
---|
| 116 | SET(X,INC,SCDATA) ; -- set value in return array
|
---|
| 117 | S INC=$G(INC)+1,@SCDATA@(INC)=X
|
---|
| 118 | Q
|
---|
| 119 | ;
|
---|