| 1 | SCRPBK5 ;MJK/ALB - RPC Broker Utilities ; 27 FEB 96
 | 
|---|
| 2 |  ;;5.3;Scheduling;**41**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | PARSE(SCQDEF,SCQREC) ; -- parse incoming raw broker array
 | 
|---|
| 5 |  ; -- return formatted query record
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ; -- SEE BOTTOM OF SCRPBK FOR VARIABLE DEFINITIONS
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  N SCINC,X
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ; -- build internal formatted variables
 | 
|---|
| 12 |  S SCINC=1,X=SCQDEF(SCINC)
 | 
|---|
| 13 |  S SCQREC("NAME")=$P(X,U)
 | 
|---|
| 14 |  S SCQREC("CREATORID")=+$P(X,U,2)
 | 
|---|
| 15 |  S SCQREC("ACCESSID")=+$P(X,U,3)
 | 
|---|
| 16 |  S SCQREC("REPORTID")=+$P(X,U,4)
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ; -- build external formatted variables
 | 
|---|
| 19 |  S SCINC=2,X=SCQDEF(SCINC)
 | 
|---|
| 20 |  S SCQREC("QUERYID")=$P(X,U)
 | 
|---|
| 21 |  S SCQREC("CREATOR")=$P(X,U,2)
 | 
|---|
| 22 |  S SCQREC("ACCESS")=$P(X,U,3)
 | 
|---|
| 23 |  S SCQREC("REPORT")=$P(X,U,4)
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  F  S SCINC=$O(SCQDEF(SCINC)) Q:'SCINC  S X=$G(SCQDEF(SCINC)) D
 | 
|---|
| 26 |  . IF X="[Description]" D DESC(.SCINC,.SCQDEF,.SCQREC)
 | 
|---|
| 27 |  . ; -- get fields
 | 
|---|
| 28 |  . IF X="[Fields]" D FIELDS(.SCINC,.SCQDEF,.SCQREC)
 | 
|---|
| 29 |  . ; -- get files
 | 
|---|
| 30 |  . IF X="[Selections]" D SELECT(.SCINC,.SCQDEF,.SCQREC)
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | DESC(SCINC,SCQDEF,SCQREC) ; -- build query description
 | 
|---|
| 34 |  N I,X
 | 
|---|
| 35 |  S I=0
 | 
|---|
| 36 |  F  S SCINC=$O(SCQDEF(SCINC)) Q:'SCINC  S X=$G(SCQDEF(+SCINC)) Q:X="$$END"  D
 | 
|---|
| 37 |  . S I=I+1,SCQREC("DESCRIPTION",I,0)=X
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | FIELDS(SCINC,SCQRY,SCQREC) ; -- build field answeredk
 | 
|---|
| 41 |  N X
 | 
|---|
| 42 |  F  S SCINC=$O(SCQDEF(SCINC)) Q:'SCINC  S X=$G(SCQDEF(+SCINC)) Q:X="$$END"  D
 | 
|---|
| 43 |  . S SCQREC("FIELDS",$P(X,U))=$P(X,U,2)
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | SELECT(SCINC,SCQRY,SCQREC) ; -- build file entries selected
 | 
|---|
| 47 |  N X
 | 
|---|
| 48 |  F  S SCINC=$O(SCQDEF(SCINC)) Q:'SCINC  S X=$G(SCQDEF(+SCINC)) Q:X="$$END"  D
 | 
|---|
| 49 |  . S SCQREC("SELECTIONS",$P(X,U,2),$$SEL(X))=""
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 | SEL(SEL) ; -- set vp for selection
 | 
|---|
| 53 |  N Y,IEN,SCTYPE
 | 
|---|
| 54 |  S SCTYPE=$P(SEL,U,2),IEN=+$P(SEL,U,3),Y="NOT VALID: "_SCTYPE
 | 
|---|
| 55 |  IF SCTYPE="DIVISION" S Y="DIC(4," G SELQ
 | 
|---|
| 56 |  IF SCTYPE="TEAM" S Y="SCTM(404.51," G SELQ
 | 
|---|
| 57 |  IF SCTYPE="PRACTITIONER" S Y="VA(200," G SELQ
 | 
|---|
| 58 |  IF SCTYPE="ROLE" S Y="SD(403.46," G SELQ
 | 
|---|
| 59 |  IF SCTYPE="CLINIC" S Y="SC(" G SELQ
 | 
|---|
| 60 |  IF SCTYPE="USERCLASS" S Y="USR(8930," G SELQ
 | 
|---|
| 61 | SELQ Q IEN_";"_Y
 | 
|---|
| 62 |  ;
 | 
|---|