| 1 | SCAPMC8P ;bp/cmf - preceptor sub-array for practitioner list ; 8/10/99 1:19pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**177,212**;AUG 13, 1993
 | 
|---|
| 3 |  ;;1.0
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | PRCTP ; preceptor practitioners for position
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | ST N SCDATES1,SCN1,SCEFF1,SCPAH1,SCACT1,SCINDT1,SCNODE1,SCPRTP1
 | 
|---|
| 8 |  N SCDATES2,SCN2,SCPTP,SCX,SCXA,SCXE,SCNA,SCNE,SCPRCLST,SCPRCPTR
 | 
|---|
| 9 |  N SCP1P11,SCP12,SCP13,SCP14P16,SCR
 | 
|---|
| 10 |  N SCLIST1,SCLIST2,SCN3,SCN4,SCPS,SCPSX,SCPSXA,SCPSXE,SCVALHIS
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  S @SCLIST@("PR","CH")=$$VALHIST^SCAPMCU5(404.53,SCTP,"SCVALHIS")
 | 
|---|
| 13 |  G:'$$ACTHIST^SCAPMCU5("SCVALHIS","SCDATES") PRECQ
 | 
|---|
| 14 |  G:'$D(SCVALHIS) PRECQ
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | LOOP1 ; build list of preceptor assignments
 | 
|---|
| 17 |  S SCEFF1=-(SCEND+.000001)
 | 
|---|
| 18 |  S (SCN1,SCLIST1(0))=0
 | 
|---|
| 19 |  F  S SCEFF1=$O(^SCTM(404.53,"AIDT",SCTP,1,SCEFF1)) Q:'SCEFF1  D
 | 
|---|
| 20 |  . ;Q:'$$ACTHIST^SCAPMCU2(404.53,SCTP,SCDATES,.SCERR,"SCPRTP1")
 | 
|---|
| 21 |  . S SCPAH1=""
 | 
|---|
| 22 |  . F  S SCPAH1=$O(^SCTM(404.53,"AIDT",SCTP,1,SCEFF1,SCPAH1),-1) Q:'SCPAH1  D
 | 
|---|
| 23 |  . . Q:'$D(SCVALHIS("I",SCPAH1))
 | 
|---|
| 24 |  . . N SCACT1,SCI
 | 
|---|
| 25 |  . . S SCNODE1=^SCTM(404.53,SCPAH1,0)
 | 
|---|
| 26 |  . . S SCI=$O(SCVALHIS("I",SCPAH1,0))
 | 
|---|
| 27 |  . . S SCACT1=$O(SCVALHIS(SCI,0))
 | 
|---|
| 28 |  . . S SCPTP=+$P(SCNODE1,U,6)
 | 
|---|
| 29 |  . . Q:$D(SCLIST1("SCPR",SCACT1,SCPTP))
 | 
|---|
| 30 |  . . S SCINDT1=$P(SCVALHIS(SCI,SCACT1,SCPAH1),U)
 | 
|---|
| 31 |  . . Q:'$$DTCHK^SCAPU1(SCBEGIN,SCEND,SCINCL,SCACT1,SCINDT1)
 | 
|---|
| 32 |  . . S SCN1=SCN1+1
 | 
|---|
| 33 |  . . S SCLIST1(0)=SCN1
 | 
|---|
| 34 |  . . S SCLIST1(SCN1)=SCPTP_U_SCACT1_U_SCINDT1_U_SCPAH1
 | 
|---|
| 35 |  . . S SCLIST1("SCPR",SCACT1,SCPTP,SCN1)=""
 | 
|---|
| 36 |  . . Q
 | 
|---|
| 37 |  . Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 | LOOP2 ; get preceptors for preceptor assignments
 | 
|---|
| 40 |  G:SCLIST1(0)<1 PRECQ
 | 
|---|
| 41 |  S SCLIST2(0)=SCLIST1(0)
 | 
|---|
| 42 |  F SCN2=1:1:SCLIST2(0) D
 | 
|---|
| 43 |  . S SCX=SCLIST1(SCN2)
 | 
|---|
| 44 |  . ; bp/cmf 212 begin
 | 
|---|
| 45 |  . ; OLD CODE BELOW
 | 
|---|
| 46 |  . ;S SCPTP=$P(SCX,U)
 | 
|---|
| 47 |  . ;K SCPRCLST
 | 
|---|
| 48 |  . ;Q:'$$PRTP^SCAPMC8(SCPTP,"SCDATES","SCPRCLST",SCERR,0)
 | 
|---|
| 49 |  . ; OLD CODE ABOVE
 | 
|---|
| 50 |  . ; NEW CODE BELOW
 | 
|---|
| 51 |  . S SCPTP=$P(SCX,U)
 | 
|---|
| 52 |  . S SCDATES1("BEGIN")=$P(SCX,U,2)
 | 
|---|
| 53 |  . S SCDATES1("END")=$P(SCX,U,3)
 | 
|---|
| 54 |  . S SCDATES1("INCL")=0
 | 
|---|
| 55 |  . K SCPRCLST
 | 
|---|
| 56 |  . Q:'$$PRTP^SCAPMC8(SCPTP,"SCDATES1","SCPRCLST",SCERR,0)
 | 
|---|
| 57 |  . ; NEW CODE ABOVE
 | 
|---|
| 58 |  . ; bp/cmf 212 end
 | 
|---|
| 59 |  . Q:'$D(SCPRCLST(0))
 | 
|---|
| 60 |  . S SCLIST2(SCN2,0)=SCPRCLST(0)
 | 
|---|
| 61 |  . F SCN3=1:1:SCPRCLST(0) D
 | 
|---|
| 62 |  . . S SCLIST2(SCN2,SCN3)=SCPRCLST(SCN3)
 | 
|---|
| 63 |  . Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | LOOP3 ; add preceptor sub-array to sclist
 | 
|---|
| 66 |  G:SCLIST2(0)<1 PRECQ
 | 
|---|
| 67 |  F SCN1=1:1:@SCLIST@(0) D
 | 
|---|
| 68 |  . S SCXA=$P(@SCLIST@(SCN1),U,9)                          ;asgn actdt
 | 
|---|
| 69 |  . S SCXE=$P(@SCLIST@(SCN1),U,10)
 | 
|---|
| 70 |  . S SCXE=$S(+SCXE:SCXE,1:9999999)                        ;asgn enddt
 | 
|---|
| 71 |  . S SCNA=SCXE
 | 
|---|
| 72 |  . S SCN4=0
 | 
|---|
| 73 |  . F  S SCNA=$O(SCLIST1("SCPR",SCNA),-1) Q:'SCNA  D       ;prec actdt
 | 
|---|
| 74 |  . . S SCPTP=$O(SCLIST1("SCPR",SCNA,0))                   ;prec tpien
 | 
|---|
| 75 |  . . S SCN2=$O(SCLIST1("SCPR",SCNA,SCPTP,0))
 | 
|---|
| 76 |  . . Q:'$D(SCLIST2(SCN2))
 | 
|---|
| 77 |  . . S SCP14P16=$P(SCLIST1(SCN2),U,2,4)                   ;prec string
 | 
|---|
| 78 |  . . S SCNE=$P(SCLIST1(SCN2),U,3)
 | 
|---|
| 79 |  . . S SCNE=$S(+SCNE:SCNE,1:9999999)                      ;prec enddt
 | 
|---|
| 80 |  . . Q:SCNE<SCXA
 | 
|---|
| 81 |  . . F SCN3=1:1:SCLIST2(SCN2,0) D
 | 
|---|
| 82 |  . . . ; bp/cmf 212 begin
 | 
|---|
| 83 |  . . . ; old code below
 | 
|---|
| 84 |  . . . ;S SCN4=SCN4+1
 | 
|---|
| 85 |  . . . ;S SCPSX=SCLIST2(SCN2,SCN3)                         ;asgn string
 | 
|---|
| 86 |  . . . ;S SCP1P11=$P(SCPSX,U,1,11)                         ;pos string
 | 
|---|
| 87 |  . . . ;S SCP12=$P(SCPSX,U,12)                             ;should be ""
 | 
|---|
| 88 |  . . . ;S SCP13=$P(SCPSX,U,13)                             ;should be ""
 | 
|---|
| 89 |  . . . ;S SCR=SCP1P11_U_SCP12_U_SCP13_U_SCP14P16           ;rtrn string
 | 
|---|
| 90 |  . . . ; old code above
 | 
|---|
| 91 |  . . . ; new code below
 | 
|---|
| 92 |  . . . S SCPSX=SCLIST2(SCN2,SCN3)                         ;asgn string
 | 
|---|
| 93 |  . . . Q:'$$DTCHK^SCAPU1(SCXA,SCXE,0,$P(SCPSX,U,9),$P(SCPSX,U,10))
 | 
|---|
| 94 |  . . . S SCN4=SCN4+1
 | 
|---|
| 95 |  . . . S SCP1P11=$P(SCPSX,U,1,11)                         ;pos string
 | 
|---|
| 96 |  . . . S SCP12=$P(SCPSX,U,12)                             ;should be ""
 | 
|---|
| 97 |  . . . S SCP13=$P(SCPSX,U,13)                             ;should be ""
 | 
|---|
| 98 |  . . . S SCR=SCP1P11_U_SCP12_U_SCP13_U_SCP14P16           ;rtrn string
 | 
|---|
| 99 |  . . . ; new code above
 | 
|---|
| 100 |  . . . ; bp/cmf 212 end
 | 
|---|
| 101 |  . . . S @SCLIST@(SCN1,"PR",SCN4)=SCR
 | 
|---|
| 102 |  . . . S @SCLIST@(SCN1,"PR",0)=SCN4
 | 
|---|
| 103 |  . . . S @SCLIST@(SCN1,"SCPR",$P(SCR,U),$P(SCR,U,3),$P(SCR,U,14),SCN4)=""
 | 
|---|
| 104 |  . . . Q
 | 
|---|
| 105 |  . . Q
 | 
|---|
| 106 |  . Q
 | 
|---|
| 107 |  ;
 | 
|---|
| 108 | PRECQ I +SCALLHIS D TPALL^SCAPMC8A(404.53)
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 |  ;
 | 
|---|