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