| [613] | 1 | SDWLRP1 ;;IOFO BAY PINES/TEH - WAITING LIST - RPC;06/28/2002 ; 26 Aug 2002  1:25 PM  ; Compiled April 16, 2007 10:15:05
 | 
|---|
 | 2 |  ;;5.3;scheduling;**263,273,485,497,446**;AUG 13 1993;Build 77
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 |  ;******************************************************************
 | 
|---|
 | 6 |  ;                             CHANGE LOG
 | 
|---|
 | 7 |  ;                                               
 | 
|---|
 | 8 |  ;   DATE                        PATCH                   DESCRIPTION
 | 
|---|
 | 9 |  ;   ----                        -----                   -----------
 | 
|---|
 | 10 |  ;   2/21/03                     SD*5.3*273              Line new+12 added "/"
 | 
|---|
 | 11 |  ;   5/10/06                     SD*5.3*446              New field: INTRA-transfer
 | 
|---|
 | 12 | OUTPUT(SDWLOUT,SDWLDFN) ;-FULL
 | 
|---|
 | 13 |  ; input:
 | 
|---|
 | 14 |  ;   DFN = Patient
 | 
|---|
 | 15 |  ;     Lookup uses Wait List data file (409.3) and returns the following data.
 | 
|---|
 | 16 |  ;     
 | 
|---|
 | 17 |  ; output:
 | 
|---|
 | 18 |  ;   SCOUT = location of data = ^TMP("SDWLG",$J,i,0)
 | 
|---|
 | 19 |  ;   for i=1:number of records returned: 
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 |  ;         Field  Location               Description
 | 
|---|
 | 22 |  ;               1               2                       ORIGINATION DATE
 | 
|---|
 | 23 |  ;               2               3                       INSTITUTION
 | 
|---|
 | 24 |  ;               3               4                       CLINIC
 | 
|---|
 | 25 |  ;               4               5                       WAIT LIST TYPE
 | 
|---|
 | 26 |  ;               5               6                       SPECIFIC TEAM
 | 
|---|
 | 27 |  ;               5.1             22                      MARKED OPEN (SPECIFIC TEAM)
 | 
|---|
 | 28 |  ;               6               7                       SPECIFIC POSITION
 | 
|---|
 | 29 |  ;               6.1             23                      MARKED OPEN (SPEICIFIC POSITION)
 | 
|---|
 | 30 |  ;               7               8                       SERVICE /SPECIALTY
 | 
|---|
 | 31 |  ;               8               9                       SPECIFIC CLINIC
 | 
|---|
 | 32 |  ;               9               10                      ORIGINATING USER
 | 
|---|
 | 33 |  ;               10              11                      PRIORITY
 | 
|---|
 | 34 |  ;               11              12                      REQUESTED BY
 | 
|---|
 | 35 |  ;               12              13                      PROVIDER
 | 
|---|
 | 36 |  ;               22              16                      DESIRED DATE OF APPT
 | 
|---|
 | 37 |  ;               23              17                      CURRENT STATUS
 | 
|---|
 | 38 |  ;               25              18                      COMMENTS
 | 
|---|
 | 39 |  ;               27              20                      NEW ENROLLE
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  N DIERR,SDWLDAX
 | 
|---|
 | 42 |  I '$D(^SDWL(409.3,"B",SDWLDFN)) S SDWLRES=-1 Q  ;- No Entry in Wait List file.
 | 
|---|
 | 43 |  S SDWLDA="" F  S SDWLDA=$O(^SDWL(409.3,"B",SDWLDFN,SDWLDA)) Q:SDWLDA<1  D
 | 
|---|
 | 44 |  .S SDWLDAX="`"_SDWLDA
 | 
|---|
 | 45 |  .D FIND^DIC(409.3,,".01;1;2;3;4;5;5.1;6;6.1;7;8;9;10;11;12;15;22;23;25","PS",.SDWLDAX)
 | 
|---|
 | 46 |  I $G(DIERR) D CLEAN^DILF S SDWLRES=-1 Q
 | 
|---|
 | 47 |  K SDWLOUT S SDWLOUT=$NA(^TMP("DILIST",$J))
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 | OUTPUT1(SDWLOUT,SDWLDFN) ;
 | 
|---|
 | 50 |  ;Brief Output - for Wait List.
 | 
|---|
 | 51 |  ; input:
 | 
|---|
 | 52 |  ;   DFN = Patient
 | 
|---|
 | 53 |  ;     Lookup uses Wait List data file (409.3) and returns the following data.
 | 
|---|
 | 54 |  ;
 | 
|---|
 | 55 |  ; output:
 | 
|---|
 | 56 |  ;   SWDLRES = On/Not on Wait list^Number of IENs^IEN;IEN;IEN;IEN.....
 | 
|---|
 | 57 |  ;            1     0            ^      2       ^1;2
 | 
|---|
 | 58 |  ;
 | 
|---|
 | 59 |  S SDWLCNT=0,SDWLIEN=""
 | 
|---|
 | 60 |  I '$D(^SDWL(409.3,"B",SDWLDFN)) S SDWLRES=$NA(^TMP("SDWLRP1",$J)),^TMP("SDWLRP1",$J,1)=-1
 | 
|---|
 | 61 |  S SDWLDA=""  F  S SDWLDA=$O(^SDWL(409.3,"B",SDWLDFN,SDWLDA)) Q:SDWLDA<1  D
 | 
|---|
 | 62 |  .I $P(^SDWL(409.3,SDWLDA,0),U,17)["C" Q
 | 
|---|
 | 63 |  .S SDWLCNT=SDWLCNT+1
 | 
|---|
 | 64 |  .S ^TMP("SDWLRP1",$J,SDWLCNT)=SDWLDA_"^"_$G(^SDWL(409.3,SDWLDA,0))
 | 
|---|
 | 65 |  S SDWLOUT=$NA(^TMP("SDWLRP1",$J))
 | 
|---|
 | 66 |  K SDWLDFN,SDWLDA,SDWLCNT,SDWLIEN
 | 
|---|
 | 67 |  Q
 | 
|---|
 | 68 | OUTPUT3(SDWLOUT,SDWLDFN) ;Disposition Data
 | 
|---|
 | 69 |  ;  input:
 | 
|---|
 | 70 |  ;    DFN = Patient Internal ID
 | 
|---|
 | 71 |  ;    
 | 
|---|
 | 72 |  ;  output: Subscript 'DIS'
 | 
|---|
 | 73 |  ;    Date Dsipositioned^Disposition by^Disposition  
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 |  N SDWLRES,SDWLDFN,SDWLDA,DIERR
 | 
|---|
 | 76 |  I '$D(^SDWL(409.3,"B",SDWLDFN)) S SDWLRES=-1 Q  ;- No Entry in Wait List file.
 | 
|---|
 | 77 |  S SDWLDA="" F  S SDWLDA=$O(^SDWL(409.3,"B",SDWLDFN,SDWLDA)) Q:SDWLDA<1  D
 | 
|---|
 | 78 |  .S SDWLDAX="`"_SDWLDA
 | 
|---|
 | 79 |  .D FIND^DIC(409.3,,"19;20;21","PS",.SDWLDAX)
 | 
|---|
 | 80 |  I $G(DIERR) D CLEAN^DILF S SDWLRES=-1 Q
 | 
|---|
 | 81 |  K SDWLOUT S SDWLOUT="^TMP(""DILIST"","_$J_")",SDWLRES=1
 | 
|---|
 | 82 |  Q
 | 
|---|
 | 83 | INPUT(SDWLRES,SDWLSTR) ;
 | 
|---|
 | 84 |  ; Input:
 | 
|---|
 | 85 |  ;   SDWLSTR = location of data = ^TMP("SDWLG",$J,i,0)
 | 
|---|
 | 86 |  ;   (R) = Required Field
 | 
|---|
 | 87 |  ;   (O) = Optional
 | 
|---|
 | 88 |  ;   
 | 
|---|
 | 89 |  ;    .01    2           3                     5                  6                    
 | 
|---|
 | 90 |  ;  DFN (R)^TYPE (R)^SPECIFIC TEAM (O)^SPECIFIC POSITION (O)^ORGINATING USER (R)^COMMENT (O)^CLINIC (O)^INTRA FLAG (O)^REJ FLAG (O)^MULTI TEAM FLAG (O)
 | 
|---|
 | 91 |  ;     1     2           3                     4                  5                6            7           8               9             10
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 |  ;  Output:
 | 
|---|
 | 94 |  ;               SDWLRES  =  0      Failed
 | 
|---|
 | 95 |  ;               SDWLRES  =  1^IEN  Saved to ^SDWL(409.3,IEN,0)            
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 |  N DIERR,%H,SDWLF,SDWLFLD,SDWLFLG,SDWLI,SDWLIN,SDWLMSG,SDWLRNED,SDWLTP,SDWLVAL,SDWLX,SDWLY,X,Y
 | 
|---|
 | 98 |  K ^TMP("SDWLIN",$J),^TMP("SDWLOUT",$J),^TMP("DIERR",$J)
 | 
|---|
 | 99 |  I '$G(SDWLSTR) S SDWLRES="-1^Data String Missing" Q
 | 
|---|
 | 100 |  D NEW
 | 
|---|
 | 101 |  D FDA I SDWLRES<0 D DEL Q
 | 
|---|
 | 102 |  ;D VAL I SDWLRES<0 D DEL Q
 | 
|---|
 | 103 |  D SET I SDWLRES<0 D DEL Q
 | 
|---|
 | 104 |  D CLEAN^DILF K ^TMP("SDWLIN",$J),^TMP("SDWLOUT",$J)
 | 
|---|
 | 105 |  K SDWLDUZ,SDWLDFN,SDWLDA,Y
 | 
|---|
 | 106 |  Q
 | 
|---|
 | 107 | NEW ;Get IEN from ^SDWL(409.3,IEN,0).
 | 
|---|
 | 108 |  N DA,DIC,DIE,DIK,DR,SDREJ,SDINTRA,SDMULTI
 | 
|---|
 | 109 |  I $P(SDWLSTR,U,4) D
 | 
|---|
 | 110 |  .S SDWLTP=+$P(SDWLSTR,U,4)
 | 
|---|
 | 111 |  .S SDWLIN=$P($G(^SCTM(404.51,+$P(^SCTM(404.57,SDWLTP,0),U,2),0)),U,7)
 | 
|---|
 | 112 |  I $P(SDWLSTR,U,3) D
 | 
|---|
 | 113 |  .S SDWLIN=$P($G(^SCTM(404.51,+$P(SDWLSTR,U,3),0)),U,7)
 | 
|---|
 | 114 |  S SDWLDFN=+$P(SDWLSTR,U,1)
 | 
|---|
 | 115 |  S SDREJ=$P(SDWLSTR,U,9),SDINTRA=$P(SDWLSTR,U,8),SDMULTI=$P(SDWLSTR,U,10)
 | 
|---|
 | 116 |  ;identify INTRA-transfer
 | 
|---|
 | 117 |  ;- last team assignment
 | 
|---|
 | 118 |  S DIC(0)="LX",X=$P(SDWLSTR,U,1),DIC="^SDWL(409.3," D FILE^DICN I Y<0 S SDWLRES="-1^IEN failed" Q
 | 
|---|
 | 119 |  S SDWLDFN=$P(Y,U,2),SDWLDA=+Y,SDWLDUZ=$P(SDWLSTR,U,9)
 | 
|---|
 | 120 |  S DIE="^SDWL(409.3,",DA=SDWLDA
 | 
|---|
 | 121 |  S DR="1///^S X=DT" D ^DIE
 | 
|---|
 | 122 |  S DR="2////^S X=SDWLIN;32////^S X=SDREJ;34////^S X=SDINTRA;38////^S X=SDMULTI" D ^DIE
 | 
|---|
 | 123 |  S DR="23///^S X=""O""",DIE="^SDWL(409.3," D ^DIE
 | 
|---|
 | 124 |  ;
 | 
|---|
 | 125 |  ;DETERMINE ENROLLEE STATUS
 | 
|---|
 | 126 |  ;
 | 
|---|
 | 127 |  ;SDWLE=1 = NEW ENROLLEE
 | 
|---|
 | 128 |  ;SDWLE=2 = ESTABLISHED
 | 
|---|
 | 129 |  ;SDWLE=3 = PRIOR ENROLLEE
 | 
|---|
 | 130 |  ;SDWLE=4 = UNDETERMINED
 | 
|---|
 | 131 |  ;
 | 
|---|
 | 132 |  S SDWLDE=+$H,SDWLE=0,(SDWLEE,SDWLRNED,SDWLDB)=0 D SB1
 | 
|---|
 | 133 |  G SB0:SDWLE=2
 | 
|---|
 | 134 |  S SDWLRNE=$$ENROLL^EASWTAPI(SDWLDFN) G SB0:$P(SDWLRNE,U,4)="A" S SDWLRNED=$P(SDWLRNE,U,3)
 | 
|---|
 | 135 |  I SDWLRNED S X=SDWLRNED D H^%DTC S SDWLDS=%H S SDWLDE=+$H,SDWLDET=SDWLDE-SDWLDS,SDWLDB=2 I SDWLDET<366 S SDWLE=1
 | 
|---|
 | 136 |  I $D(SDWLDET),SDWLDET>365 S SDWLE=3
 | 
|---|
 | 137 |  I 'SDWLRNE S SDWLE=4
 | 
|---|
 | 138 | SB0 I $D(SDWLRNE),$P(SDWLRNE,U,4)="A" D
 | 
|---|
 | 139 |  .I 'SDWLRNE,SDWLEE>730!(SDWLEE=730) S SDWLE=4 Q
 | 
|---|
 | 140 |  .I 'SDWLEE S SDWLE=4 Q
 | 
|---|
 | 141 |  S SDWLRNE=$S(SDWLE=1:"N",SDWLE=2:"E",SDWLE=3:"P",SDWLE=4:"U",1:"U")
 | 
|---|
 | 142 |  ;-Code here for filling in 409.3
 | 
|---|
 | 143 |  S DR="27////^S X=SDWLRNE",DIE="^SDWL(409.3,",DA=SDWLDA D ^DIE
 | 
|---|
 | 144 |  S DR="9////^S X=DUZ" D ^DIE
 | 
|---|
 | 145 |  S DR="27.1////^S X=$S($G(SDWLRNED):SDWLRNED,$G(SDWLD):SDWLD,1:"""")" D ^DIE
 | 
|---|
 | 146 |  S DR="27.2////^S X=SDWLDB" D ^DIE
 | 
|---|
 | 147 |  K SDWLRNE,SDWLD,SDWLDE,SDWLEE,SDWLDET,DIC,DIR,DR,DIE,SDWLDS,SDWLE
 | 
|---|
 | 148 |  Q
 | 
|---|
 | 149 | SB1 I '$D(^DGCN(391.91,"B",SDWLDFN)) N SDWLDB S SDWLE=3 Q
 | 
|---|
 | 150 |  S SDWLX="" F  S SDWLX=$O(^DGCN(391.91,"B",SDWLDFN,SDWLX)) Q:SDWLX=""  D
 | 
|---|
 | 151 |  .S SDWLY=$G(^DGCN(391.91,SDWLX,0)) D
 | 
|---|
 | 152 |  ..;CHECK FOR TREATING FACILITY
 | 
|---|
 | 153 |  ..I $$TF^XUAF4(+$P(SDWLY,U,2)) D
 | 
|---|
 | 154 |  ...;SORT FOR LAST TREATMENT DATE
 | 
|---|
 | 155 |  ...S SDWLD=$P(SDWLY,U,3) I SDWLD S SDWLDTF(9999999-SDWLD)=SDWLX
 | 
|---|
 | 156 |  I '$D(SDWLDTF) Q
 | 
|---|
 | 157 |  S SDWLDTF=$O(SDWLDTF(0)) I SDWLDTF S (SDWLD,X)=9999999-SDWLDTF D H^%DTC S SDWLEE=SDWLDE-%H,SDWLDB=1 I SDWLEE<730 S SDWLE=2
 | 
|---|
 | 158 |  I $D(SDWLEE),SDWLEE>730!(SDWLEE=730) S SDWLE=3
 | 
|---|
 | 159 |  K SDWLDTF
 | 
|---|
 | 160 |  Q
 | 
|---|
 | 161 | FDA ;Get data from SDWLSTR string and set FDA.
 | 
|---|
 | 162 |  S SDWLF=409.3
 | 
|---|
 | 163 |  S SDWLVAL="" F SDWLI=2:1:7 S SDWLVAL=$P(SDWLSTR,"^",SDWLI) D
 | 
|---|
 | 164 |  .S SDWLFLD=SDWLI D
 | 
|---|
 | 165 |  ..S SDWLFLD=$S(SDWLFLD=2:4,SDWLFLD=3:5,SDWLFLD=4:6,SDWLFLD=5:9,SDWLFLD=7:15,1:25)
 | 
|---|
 | 166 |  .S SDWLFLG="F",SDWLIEN=$$IENS^DILF(SDWLDA) ;,SDWLVAL=$$EXTERNAL^DILFD(SDWLF,SDWLFLD,,SDWLVAL,"SDWLMSG")
 | 
|---|
 | 167 |  .I $D(SDWLMSG) M SDWLRES=SDWLMSG S SDWLRES=-1 Q
 | 
|---|
 | 168 |  .D FDA^DILF(SDWLF,SDWLIEN,SDWLFLD,"",SDWLVAL,"^TMP(""SDWLIN"",$J)")
 | 
|---|
 | 169 |  .S SDWLRES=1 M SDWLRES("SDWLIN")=^TMP("SDWLIN",$J)
 | 
|---|
 | 170 |  Q
 | 
|---|
 | 171 | VAL ;Validate fields
 | 
|---|
 | 172 |  N DIERR
 | 
|---|
 | 173 |  D VALS^DIE(,"^TMP(""SDWLIN"",$J)","^TMP(""SDWLOUT"",$J)","SDWLMSG")
 | 
|---|
 | 174 |  I $G(SDWLMSG("DIERR")) S SDWLRES=-1 Q
 | 
|---|
 | 175 |  M SDWLRES("SDWLOUT")=^TMP("SDWLOUT",$J)
 | 
|---|
 | 176 |  Q
 | 
|---|
 | 177 | SET ;Input data to file ^SDWL(409.3,IEN,0).
 | 
|---|
 | 178 |  D UPDATE^DIE(,"^TMP(""SDWLIN"",$J)","SDWLMSG")
 | 
|---|
 | 179 |  I $G(SDWLMSG("DIERR")) S SDWLRES=-1 Q
 | 
|---|
 | 180 |  S SDWLRES=1_"^"_$G(SDWLDA)
 | 
|---|
 | 181 |  Q
 | 
|---|
 | 182 | DEL S DA=SDWLDA,DIK="^SDWL(409.3," D ^DIK
 | 
|---|
 | 183 |  S SDWLRES="-1^Entry "_SDWLDA_" Deleted"
 | 
|---|
 | 184 |  Q
 | 
|---|
 | 185 | INPUTDP(SDWLRES,SDWLSTR) ;Set disposition in Wait List Patient file
 | 
|---|
 | 186 |  ;
 | 
|---|
 | 187 |  ;       Input:
 | 
|---|
 | 188 |  ;       
 | 
|---|
 | 189 |  ;               SDWLSTR=Patient DFN^Disposition^User DUZ^Wait List IEN
 | 
|---|
 | 190 |  ;               
 | 
|---|
 | 191 |  ;       Ouput:
 | 
|---|
 | 192 |  ;       
 | 
|---|
 | 193 |  ;           SDWLRES=-1 Failed
 | 
|---|
 | 194 |  ;           SDWKRES=1^IEN for Wait List File (409.3)
 | 
|---|
 | 195 |  ;
 | 
|---|
 | 196 |  N SDWLDFN,SDWLDISP,SDWLDUZ,SDWLDA,SDWLDDT
 | 
|---|
 | 197 |  I '$G(SDWLSTR) S SDWLRES="-1^Data String Missing" Q
 | 
|---|
 | 198 |  I '$G(^SDWL(409.3,SDWLDA,0)) S SDWLRES="-1^Missing Patient IEN" Q
 | 
|---|
 | 199 |  I '$D(^SDWL(409.3,"B",SDWLDFN)) S SDWLRES="-1^Missing Wait List data file" Q
 | 
|---|
 | 200 |  D FDA1 I SDWLRES<0 D DEL1 Q
 | 
|---|
 | 201 |  D VAL1 I SDWLRES<0 D DEL1 Q
 | 
|---|
 | 202 |  D SET1 I SDWLRES<0 D DEL1 Q
 | 
|---|
 | 203 |  D CLEAN^DILF K ^TMP("SDWLIN",$J),^TMP("SDWLOUT",$J)
 | 
|---|
 | 204 |  Q
 | 
|---|
 | 205 | FDA1 ;
 | 
|---|
 | 206 |  S SDWLDFN=$P(SDWLSTR,U,1),SDWLDISP=$P(SDWLSTR,U,2),SDWLDUZ=$P(SDWLSTR,U,3),SDWLDA=$P(SDWLSTR,U,4),SDWLDDT=DT
 | 
|---|
 | 207 |  S SDWLIEN=$$IENS^DILF(SDWLDA)
 | 
|---|
 | 208 |  F SDWLI=1:1:4 S SDWLVAL=$S(SDWLI=1:SDWLDISP,SDWLI=2:SDWLDUZ,SDWLI=3:SDWLDDT,SDWLI=4:"C"),SDWLFLD=$S(SDWLI=1:21,SDWLI=2:20,SDWLI=3:19,SDWLI=4:23) D
 | 
|---|
 | 209 |  .S SDWLVAL=$$EXTERNAL^DILFD(SDWLF,SDWLFLD,,SDWLVAL,"SDWLMSG")
 | 
|---|
 | 210 |  .I $D(SDWLMSG) M SDWLRES=SDWLMSG S SDWLRES=-1 Q
 | 
|---|
 | 211 |  .D FDA^DILF(SDWLF,SDWLIEN,SDWLFLD,"",SDWLVAL,"^TMP(""SDWLIN"",$J)")
 | 
|---|
 | 212 |  .S SDWLRES=1 M SDWLRES("SDWLIN")=^TMP("SDWLIN",$J)
 | 
|---|
 | 213 |  Q
 | 
|---|
 | 214 | VAL1 ;
 | 
|---|
 | 215 |  N DIERR
 | 
|---|
 | 216 |  D VALS^DIE(,"^TMP(""SDWLIN"",$J)","^TMP(""SDWLOUT"",$J)","SDWLMSG")
 | 
|---|
 | 217 |  I $G(SDWLMSG("DIERR")) S SDWLRES=-1 Q
 | 
|---|
 | 218 |  M SDWLRES("SDWLOUT")=^TMP("SDWLOUT",$J)
 | 
|---|
 | 219 |  Q
 | 
|---|
 | 220 | SET1 ;
 | 
|---|
 | 221 |  D UPDATE^DIE(,"^TMP(""SDWLOUT"",$J)","SDWLMSG")
 | 
|---|
 | 222 |  I $G(SDWLMSG("DIERR")) S SDWLRES=-1 Q
 | 
|---|
 | 223 |  S SDWLRES=1
 | 
|---|
 | 224 |  Q
 | 
|---|
 | 225 | DEL1 ;
 | 
|---|
 | 226 |  S DA(1)=SDWLDA,DIK="^SDWL("_DA(1)_",""DIS""," F DA=19,20,21,23 D ^DIK
 | 
|---|
 | 227 |  S SDWLRES="-1^"_"Disposition Nodes Deleted."
 | 
|---|
 | 228 |  Q
 | 
|---|