| 1 | SCAPMC8 ;;bp/cmf - List of Practitioners for a Position ; 7/12/99 10:03am
|
---|
| 2 | ;;5.3;Scheduling;**41,177**;AUG 13, 1993
|
---|
| 3 | ;;1.0
|
---|
| 4 | ;
|
---|
| 5 | PRTP(SCTP,SCDATES,SCLIST,SCERR,SCPRCPTR,SCALLHIS) ;-- list of practitioners for position (bp/cmf 177-->SCPRCPTR,SCALLHIS param added)
|
---|
| 6 | ; input:
|
---|
| 7 | ; SCTP = ien of TEAM POSITION[required]
|
---|
| 8 | ; SCDATES("BEGIN") = begin date to search (inclusive)
|
---|
| 9 | ; [default: TODAY]
|
---|
| 10 | ; ("END") = end date to search (inclusive)
|
---|
| 11 | ; [default: DT]
|
---|
| 12 | ; ("INCL") = 1: only use pracitioners who were on
|
---|
| 13 | ; team for entire date range
|
---|
| 14 | ; 0: anytime in date range
|
---|
| 15 | ; [default: 1]
|
---|
| 16 | ; SCLIST= array NAME for output
|
---|
| 17 | ; SCERR = array NAME to store error messages.
|
---|
| 18 | ; [ex. ^TMP("ORXX",$J)]
|
---|
| 19 | ; SCPRCPTR = 1: return preceptor sub-array in SCLIST
|
---|
| 20 | ; [default: 0]
|
---|
| 21 | ; SCALLHIS = 1: return unfiltered sub-array in SCLIST
|
---|
| 22 | ; [default: 0]
|
---|
| 23 | ;
|
---|
| 24 | ; Output:
|
---|
| 25 | ; SCLIST(scn) = array of practitioners
|
---|
| 26 | ; Format:
|
---|
| 27 | ; scn: Sequential # from 1 to n
|
---|
| 28 | ; Piece Description
|
---|
| 29 | ; 1 IEN of NEW PERSON file entry (#200)
|
---|
| 30 | ; 2 Name of person
|
---|
| 31 | ; 3 IEN of TEAM POSITION file (#404.57)
|
---|
| 32 | ; 4 Name of Position
|
---|
| 33 | ; 5 IEN OF USR CLASS(8930) of POSITION (404.57)
|
---|
| 34 | ; 6 USR Class Name
|
---|
| 35 | ; 7 IEN of STANDARD POSITION (#403.46)
|
---|
| 36 | ; 8 Standard Role (Position) Name
|
---|
| 37 | ; 9 Activation Date for 404.52 (not 404.59!)
|
---|
| 38 | ; 10 Inactivation Date for 404.52
|
---|
| 39 | ; 11 IEN of Position Asgn History (404.52)
|
---|
| 40 | ; 12 IEN of Current(=DT) Preceptor Position
|
---|
| 41 | ; 13 Name of Current(=DT) Preceptor Position
|
---|
| 42 | ;
|
---|
| 43 | ; SCLIST(scn,'PR',scn1) = sub-array of preceptors
|
---|
| 44 | ; Format: same as SCLIST(scn) PLUS
|
---|
| 45 | ; scn1: Sequential number from 1 to n
|
---|
| 46 | ; Piece Description
|
---|
| 47 | ; 14 precept start date
|
---|
| 48 | ; 15 precept end date
|
---|
| 49 | ; 16 IEN of Preceptor Asgn History (404.53)
|
---|
| 50 | ;
|
---|
| 51 | ; SCLIST("ALL",file,scn2) = sub array of all asgns within date range
|
---|
| 52 | ; Format:
|
---|
| 53 | ; file: 404.52 or 404.53
|
---|
| 54 | ; scn2: Sequential number form 1 to n
|
---|
| 55 | ; Piece Description
|
---|
| 56 | ; 1 status int [1:active,0:inactive]
|
---|
| 57 | ; 2 status ext ["ACTIVE","INACTIVE"]
|
---|
| 58 | ; 3 status FM date
|
---|
| 59 | ; 4 status ext date
|
---|
| 60 | ; 5 file = 404.52: practitioner ien (200)
|
---|
| 61 | ; = 404.53: prec tm pos ien (404.57)
|
---|
| 62 | ; 6 file = 404.52: practitioner name
|
---|
| 63 | ; = 404.53: prec tm pos name
|
---|
| 64 | ; 7 ien of [file] history
|
---|
| 65 | ;
|
---|
| 66 | ; SCLIST('SCPR',sc200,sctp,scact,scn)=""
|
---|
| 67 | ;
|
---|
| 68 | ; SCLIST('CH')= position asgn history status
|
---|
| 69 | ; Format:
|
---|
| 70 | ; Piece Description
|
---|
| 71 | ; 1 [1:corrupt hist file,0:ok]
|
---|
| 72 | ; 2 global first act hist date
|
---|
| 73 | ; 3 global first act hist ien
|
---|
| 74 | ;
|
---|
| 75 | ; SCLIST('PR','CH')= preceptor asgn history status
|
---|
| 76 | ; Format:
|
---|
| 77 | ; Piece Description
|
---|
| 78 | ; 1 [1:corrupt hist file,0:ok]
|
---|
| 79 | ; 2 global first act hist date
|
---|
| 80 | ; 3 global first act hist ien
|
---|
| 81 | ;
|
---|
| 82 | ; SCERR() = Array of DIALOG file messages(errors)
|
---|
| 83 | ; Format:
|
---|
| 84 | ; @SCERR@(0) = Number of errors, undefined if none
|
---|
| 85 | ; Subscript: Sequential # from 1 to n
|
---|
| 86 | ; Piece Description
|
---|
| 87 | ; 1 IEN of DIALOG file
|
---|
| 88 | ; Returned: 1 if ok, 0 if error
|
---|
| 89 | ;
|
---|
| 90 | ; -- initialize control variables
|
---|
| 91 | ;
|
---|
| 92 | ST N SCPOSNM,SCPOS0,SCEFF,SCPRTP,SCTPNODE,SCVALHIS,SCI,SCN,SCSTOP
|
---|
| 93 | N SCP1,SCP2,SCP3,SCP4,SCP5,SCP6,SCP7,SCP8,SCP9,SCP10,SCP11,SCP12
|
---|
| 94 | N SCLSEQ,SCRN,SCESEQ,SCPARM,SCP,SCBEGIN,SCEND,SCINCL,SCDTS
|
---|
| 95 | ;
|
---|
| 96 | G:'$$OKDATA PRACQ ; no team pos/date array
|
---|
| 97 | G:'$D(^SCTM(404.52,"AIDT",SCTP)) PRACQ ; no history
|
---|
| 98 | ;
|
---|
| 99 | S SCPRCPTR=$S(+$G(SCPRCPTR):1,1:0)
|
---|
| 100 | S SCALLHIS=$S(+$G(SCALLHIS):1,1:0)
|
---|
| 101 | ;
|
---|
| 102 | S @SCLIST@("CH")=$$VALHIST^SCAPMCU5(404.52,SCTP,"SCVALHIS")
|
---|
| 103 | G:'$$ACTHIST^SCAPMCU5("SCVALHIS","SCDATES") PRACQ
|
---|
| 104 | ;G:'$$ACTHIST^SCAPMCU2(404.52,SCTP,SCDATES,.SCERR,"SCPRTP") PRACQ
|
---|
| 105 | G:'$D(SCVALHIS) TPALL ; no coherent history
|
---|
| 106 | ;
|
---|
| 107 | ; get static return pieces
|
---|
| 108 | S SCP3=SCTP ;tm pos ien
|
---|
| 109 | S SCTPNODE=$G(^SCTM(404.57,SCTP,0)) ;tm pos node
|
---|
| 110 | S SCP4=$P(SCTPNODE,U) ;tm pos name
|
---|
| 111 | S SCP5=$P(SCTPNODE,U,13) ;user class pointer
|
---|
| 112 | S SCP6=$P($G(^USR(8930,+SCP5,0)),U) ;user class name
|
---|
| 113 | S SCP7=$P(SCTPNODE,U,3) ;std pos pointer
|
---|
| 114 | S SCP8=$P($G(^SD(403.46,+SCP7,0)),U) ;std pos name
|
---|
| 115 | S SCP12=$$OKPREC3^SCMCLK(SCTP,DT) ;prec tm pos ien^name
|
---|
| 116 | ;
|
---|
| 117 | ; -- get list from position assignments
|
---|
| 118 | S SCRN=0
|
---|
| 119 | S SCEFF=-(SCEND+.000001)
|
---|
| 120 | F S SCEFF=$O(^SCTM(404.52,"AIDT",SCTP,1,SCEFF)) Q:'SCEFF D
|
---|
| 121 | . ;Q:'$$ACTHIST^SCAPMCU2(404.52,SCTP,SCDATES,.SCERR,"SCPRTP")
|
---|
| 122 | . S SCP11="" ; posn act hist ien
|
---|
| 123 | . F S SCP11=$O(^SCTM(404.52,"AIDT",SCTP,1,SCEFF,SCP11),-1) Q:'SCP11 D
|
---|
| 124 | . . Q:'$D(SCVALHIS("I",SCP11))
|
---|
| 125 | . . S SCP1=+$P($G(^SCTM(404.52,SCP11,0)),U,3) ;practitioner ien
|
---|
| 126 | . . S SCP2=$P($G(^VA(200,+SCP1,0)),U) ;practitioner name
|
---|
| 127 | . . S SCI=$O(SCVALHIS("I",SCP11,0))
|
---|
| 128 | . . S SCP9=$O(SCVALHIS(SCI,0)) ;hist start date
|
---|
| 129 | . . Q:$D(@SCLIST@("SCPR",SCP1,SCTP,SCP9))
|
---|
| 130 | . . S SCP10=$P(SCVALHIS(SCI,SCP9,SCP11),U) ;hist end date
|
---|
| 131 | . . Q:'$$DTCHK^SCAPU1(SCBEGIN,SCEND,SCINCL,SCP9,SCP10)
|
---|
| 132 | . . S SCRN=SCRN+1
|
---|
| 133 | . . S @SCLIST@(0)=SCRN
|
---|
| 134 | . . S @SCLIST@("SCPR",SCP1,SCTP,SCP9,SCRN)=""
|
---|
| 135 | . . S @SCLIST@(SCRN)=SCP1_U_SCP2_U_SCP3_U_SCP4_U_SCP5_U_SCP6_U_SCP7_U_SCP8_U_SCP9_U_SCP10_U_SCP11_U_SCP12
|
---|
| 136 | . . Q
|
---|
| 137 | . Q
|
---|
| 138 | ;
|
---|
| 139 | I $G(@SCLIST@(0))>0,+SCPRCPTR D PRCTP^SCAPMC8P
|
---|
| 140 | TPALL I +SCALLHIS D TPALL^SCAPMC8A(404.52)
|
---|
| 141 | ;
|
---|
| 142 | PRACQ Q $G(SCERR(0))<1 ;bp/djb 7/12/99
|
---|
| 143 | ;
|
---|
| 144 | OKDATA() ;check/setup variables - return 1 if ok/0 if error
|
---|
| 145 | N SCOK
|
---|
| 146 | S SCOK=1
|
---|
| 147 | D INIT^SCAPMCU1(.SCOK) ; set default dates & error array (if undefined)
|
---|
| 148 | IF '$D(^SCTM(404.57,+$G(SCTP),0)) D S SCOK=0
|
---|
| 149 | . S SCPARM("POSITION")=$G(SCTP,"Undefined")
|
---|
| 150 | . D ERR^SCAPMCU1(.SCESEQ,4045101,.SCPARM,"",.SCERR)
|
---|
| 151 | ; -- is it a valid TEAM ien passed (Error # 4045101 in DIALOG file)
|
---|
| 152 | IF '$D(^SCTM(404.57,+$G(SCTP),0))!('$D(SCDATES)) D S SCOK=0
|
---|
| 153 | . S SCPARM("POSITION")=$S('$D(SCTP):"Undefined",1:SCTP)
|
---|
| 154 | . S SCPARM("DATES")=$S('$D(SCDATES):"Undefined",1:SCDATES)
|
---|
| 155 | . D ERR^SCAPMCU1(SCESEQ,4045101,.SCPARM,"",.SCERR)
|
---|
| 156 | Q SCOK
|
---|
| 157 | ;
|
---|