| 1 | SCUTBK4 ;ALB/JLU;BROKER UTILITIES | 
|---|
| 2 | ;;5.3;Scheduling;**148,157**;AUG 13, 1993 | 
|---|
| 3 | ACTPOS(RESULTS,SCARY) ; | 
|---|
| 4 | ; | 
|---|
| 5 | ;This broker entry point returns an array of active positions for a | 
|---|
| 6 | ;patient on a specific team. | 
|---|
| 7 | ; | 
|---|
| 8 | ;INPUTS         SCARY - Contains the following subscripted elements | 
|---|
| 9 | ;               DFN - DFN of the patient. | 
|---|
| 10 | ;               BEGIN - The beginning date range. | 
|---|
| 11 | ;               END - The ending date range. | 
|---|
| 12 | ;               TEAM - The team associated with the patient. | 
|---|
| 13 | ; | 
|---|
| 14 | ;OUTPUTS        RESULTS - The array of active positions.  The following | 
|---|
| 15 | ;               is a description of the piece structure. | 
|---|
| 16 | ;               PIECE - Description | 
|---|
| 17 | ;                 1     IEN of TEAM POSITION FILE(#404.57) | 
|---|
| 18 | ;                 2     NAME of Position | 
|---|
| 19 | ;                 3     Current effective date | 
|---|
| 20 | ;                 4     Pointer to role (403.46) | 
|---|
| 21 | ;                 5     Name of Standard role | 
|---|
| 22 | ;                 6     Pointer to User Class | 
|---|
| 23 | ;                 7     Name of User Class | 
|---|
| 24 | ;                 8     IEN of 404.43 | 
|---|
| 25 | ; | 
|---|
| 26 | N SCOK,SCDT,SCDFN,SCTEAM,SCPOS,LP,CNT,SCERR | 
|---|
| 27 | ; | 
|---|
| 28 | D CHK^SCUTBK | 
|---|
| 29 | D TMP^SCUTBK | 
|---|
| 30 | ; | 
|---|
| 31 | D PARSE(.SCARY) ;parse array for inputs | 
|---|
| 32 | K ^TMP($J,"ACTLST") | 
|---|
| 33 | ;gets a list o positions for this patient | 
|---|
| 34 | S SCOK=$$TPPT^SCAPMC(SCDFN,.SCDT,"","","","","","SCPOS","SCBKERR") | 
|---|
| 35 | I 'SCOK G EXIT | 
|---|
| 36 | S CNT=1 | 
|---|
| 37 | ; | 
|---|
| 38 | ;loop through positions only getting the ones associated with the team | 
|---|
| 39 | ;and that are active. | 
|---|
| 40 | ; | 
|---|
| 41 | F LP=0:0 S LP=$O(SCPOS(LP)) Q:'LP  DO | 
|---|
| 42 | .I $P(SCPOS(LP),U,3)'=SCTEAM Q | 
|---|
| 43 | .I $P(SCPOS(LP),U,6)]"" Q | 
|---|
| 44 | .S ^TMP($J,"ACTLST",CNT)=$P(SCPOS(LP),U,1)_U_$P(SCPOS(LP),U,2)_U_$P(SCPOS(LP),U,5)_U_$P(SCPOS(LP),U,7)_U_$P(SCPOS(LP),U,8)_U_$P(SCPOS(LP),U,9)_U_$P(SCPOS(LP),U,10)_U_$P(SCPOS(LP),U,4) | 
|---|
| 45 | .S CNT=CNT+1 | 
|---|
| 46 | .Q | 
|---|
| 47 | ; | 
|---|
| 48 | EXIT S RESULTS=$NA(^TMP($J,"ACTLST")) | 
|---|
| 49 | Q | 
|---|
| 50 | ; | 
|---|
| 51 | PARSE(ARY) ;parses the input parameters from the broker. | 
|---|
| 52 | ; | 
|---|
| 53 | S SCDFN=$G(ARY("DFN")) | 
|---|
| 54 | S SCDT("BEGIN")=$G(ARY("BEGIN")) | 
|---|
| 55 | S SCDT("END")=$G(ARY("END")) | 
|---|
| 56 | S SCTEAM=$G(ARY("TEAM")) | 
|---|
| 57 | Q | 
|---|
| 58 | ; | 
|---|
| 59 | PARIEN(RESULT) ;returns the ien for 404.91 | 
|---|
| 60 | ;used by SCMC GET PARAMETER IEN (rpc) | 
|---|
| 61 | ; | 
|---|
| 62 | N RES | 
|---|
| 63 | S RES=$O(^SD(404.91,0)) | 
|---|
| 64 | S RESULT=$S(RES="":0,1:+RES) | 
|---|
| 65 | Q | 
|---|