| 1 | SDWLPL ;IOFO BAY PINES/DMR,esw - WAIT LIST PICK LIST ; 6/1/05 1:05pm  ; Compiled May 1, 2007 14:32:52 | 
|---|
| 2 | ;;5.3;scheduling;**327,394,417,446**;AUG 13, 1993;Build 77 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | ;09/23/2006 Patch SD*5.3*417 Upper/Lower case usage. | 
|---|
| 6 | ;SD*5.3*446 - Included M - matched appointments | 
|---|
| 7 | ; | 
|---|
| 8 | I '$D(^SDWL(409.3,"B",DFN)) Q | 
|---|
| 9 | S NN="" | 
|---|
| 10 | W !,"This patient is currently on the Wait List." | 
|---|
| 11 | ; | 
|---|
| 12 | ANS1 ; | 
|---|
| 13 | S DIR("B")="NO",DIR("A")="Do you want to display open Wait list entries? (Y or N): ",DIR(0)="Y^AO" D ^DIR | 
|---|
| 14 | K DIR | 
|---|
| 15 | Q:'Y | 
|---|
| 16 | ; | 
|---|
| 17 | ANS2(DFN,ANS2) ; | 
|---|
| 18 | N STR S ANS2=" ",STR=",A,S,C," | 
|---|
| 19 | F  Q:STR[ANS2!(ANS2="^")  D | 
|---|
| 20 | TST .W !!,"Display Open Wait List entries selection:",! | 
|---|
| 21 | .S DIR(0)="S^A:ALL;C:Matching Appt CLINIC;S:matching Appt SPECIALTY",DIR("B")="A",DIR("A")="Select Entry or ""^"" to QUIT " D ^DIR S ANS2=Y | 
|---|
| 22 | .IF ANS2'="A"&(ANS2'="S")&(ANS2'="C")&(ANS2'="^") W !!,"PLEASE ENTER 'A' for All entries, 'C' for clinic or 'S' for current specialty/stop code or '^' to quit." | 
|---|
| 23 | K DIR | 
|---|
| 24 | Q:ANS2="^" | 
|---|
| 25 | D INIT(DFN,ANS2) I '$D(^TMP($J,"SDWLPL")) W !!,"No selected open EWL entry has been found!" Q | 
|---|
| 26 | DISPLAY ; | 
|---|
| 27 | D LIST(ANS2,DFN) | 
|---|
| 28 | Q | 
|---|
| 29 | ; | 
|---|
| 30 | INIT(DFN,ANS2) ; | 
|---|
| 31 | ; ANS2: A - ALL | 
|---|
| 32 | ;       S - All Specialties | 
|---|
| 33 | ;       C - All Clinics | 
|---|
| 34 | ;       M - Matches stop codes only | 
|---|
| 35 | S (INST,SCODE,CLINIC,DENTER,REQBY,DESIRD,SCPRI,IEN,SSN)="" K ^TMP("SDWLPL",$J),^TMP($J,"SDWLPL") | 
|---|
| 36 | F  S IEN=$O(^SDWL(409.3,"B",DFN,IEN)) Q:IEN=""  D | 
|---|
| 37 | .Q:$$GET1^DIQ(409.3,IEN_",",23,"I")="C" | 
|---|
| 38 | .Q:$$GET1^DIQ(409.3,IEN_",",18,"I")'="" | 
|---|
| 39 | .S ^TMP("SDWLPL",$J,IEN)=$G(^SDWL(409.3,IEN,0)) S DENTER="",DENTER=$P($G(^TMP("SDWLPL",$J,IEN)),"^",2) | 
|---|
| 40 | .S (WLTYPE,TYPE,WLTN,NUM)="",TYPE=$P($G(^TMP("SDWLPL",$J,IEN)),"^",5) | 
|---|
| 41 | .IF DENTER'=""&(TYPE'="") D | 
|---|
| 42 | ..IF ANS2="A" D ARAY1 | 
|---|
| 43 | ..IF ANS2="S" D ARAY2 | 
|---|
| 44 | ..IF ANS2="C" D ARAY3 | 
|---|
| 45 | ..IF ANS2="M" D ARAY4 | 
|---|
| 46 | ; | 
|---|
| 47 | K ANS1,NN,INST,SCODE,CLINIC,DENTER,REQBY,DESIRD,SCPRI | 
|---|
| 48 | K CLINIC,WLTYPE,TYPE,WLTN,NUM,REC | 
|---|
| 49 | Q | 
|---|
| 50 | ; | 
|---|
| 51 | ARAY1 ; | 
|---|
| 52 | IF TYPE=1 S WLTYPE="PCMM TEAM",NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",6),WLTNI=$$GET1^DIQ(404.51,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(404.51,NUM_",",.01) | 
|---|
| 53 | IF TYPE=2 S WLTYPE="PCMM POSITION",NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",7),WLTNI=$$GET1^DIQ(404.57,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(404.57,NUM_",",.01) | 
|---|
| 54 | IF TYPE=3 S WLTYPE="SERV/SPECIALTY",NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",8),WLTNI=$$GET1^DIQ(409.31,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.31,NUM_",",.01) | 
|---|
| 55 | IF TYPE=4 S WLTYPE="CLINIC",NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",9),WLTNI=$$GET1^DIQ(409.32,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.32,NUM_",",.01) | 
|---|
| 56 | D SAVE(TYPE,WLTNI,IEN) | 
|---|
| 57 | Q | 
|---|
| 58 | ; | 
|---|
| 59 | ARAY2 ; | 
|---|
| 60 | IF TYPE=3 D | 
|---|
| 61 | .S SCODE=+$P($G(^TMP($J,"APPT",1)),U,13),NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",8),WLTNI=$$GET1^DIQ(409.31,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.31,NUM_",",.01) | 
|---|
| 62 | .;Q:SCODE'=WLTNI | 
|---|
| 63 | .S WLTYPE="SERV/SPECIAL" | 
|---|
| 64 | .D SAVE(TYPE,WLTNI,IEN) | 
|---|
| 65 | Q | 
|---|
| 66 | ; | 
|---|
| 67 | ARAY3 ; | 
|---|
| 68 | IF TYPE=4 D | 
|---|
| 69 | .S CLINIC=+$P($G(^TMP($J,"APPT",1)),U,2),NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",9),WLTNI=$$GET1^DIQ(409.32,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.32,NUM_",",.01) | 
|---|
| 70 | .;Q:CLINIC'=WLTNI | 
|---|
| 71 | .S WLTYPE="CLINIC" | 
|---|
| 72 | .D SAVE(TYPE,WLTNI,IEN) | 
|---|
| 73 | Q | 
|---|
| 74 | ARAY4 ;identify both clinic and specialties EWL matching by stop code with entered appointment | 
|---|
| 75 | S SCODE=+$P($G(^TMP($J,"APPT",1)),U,13) | 
|---|
| 76 | IF TYPE=3 D  Q | 
|---|
| 77 | .S NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",8),WLTNI=$$GET1^DIQ(409.31,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.31,NUM_",",.01) | 
|---|
| 78 | .Q:SCODE'=WLTNI | 
|---|
| 79 | .S WLTYPE="SERV/SPECIAL" | 
|---|
| 80 | .D SAVE(TYPE,WLTNI,IEN) | 
|---|
| 81 | IF TYPE=4 D | 
|---|
| 82 | .N SDCLSC | 
|---|
| 83 | .S NUM=$P($G(^TMP("SDWLPL",$J,IEN)),"^",9),WLTNI=$$GET1^DIQ(409.32,NUM_",",.01,"I"),WLTN=$$GET1^DIQ(409.32,NUM_",",.01) | 
|---|
| 84 | .S SDCLSC=$$GET1^DIQ(44,WLTNI_",",8,"I") ; STOP CODE | 
|---|
| 85 | .Q:SCODE'=SDCLSC | 
|---|
| 86 | .S WLTYPE="CLINIC" | 
|---|
| 87 | .D SAVE(TYPE,WLTNI,IEN) | 
|---|
| 88 | Q | 
|---|
| 89 | ; | 
|---|
| 90 | SAVE(TYPE,WLTNI,IEN) ; | 
|---|
| 91 | S REQBY=$P($G(^TMP("SDWLPL",$J,IEN)),"^",12) | 
|---|
| 92 | S INST=$P($G(^TMP("SDWLPL",$J,IEN)),"^",3) | 
|---|
| 93 | N DESIRED S DESIRED=$P($G(^TMP("SDWLPL",$J,IEN)),"^",16) | 
|---|
| 94 | S SCPRI=$E($$GET1^DIQ(409.3,IEN_",",15)) ;SC priority | 
|---|
| 95 | N NAME,SSN S NAME=$$GET1^DIQ(2,DFN_",",.01),SSN=$$GET1^DIQ(2,DFN_",",.09) | 
|---|
| 96 | N SDBY S SDBY=$$GET1^DIQ(409.3,IEN_",",11),SDBY=$E(SDBY,1,3) | 
|---|
| 97 | S NN=$O(^TMP($J,"SDWLPL",""),-1)+1 | 
|---|
| 98 | S ^TMP($J,"SDWLPL",NN)=IEN_U_WLTYPE_U_SCPRI_U_WLTN_U_INST_U_DENTER_U_SDBY_U_DESIRED | 
|---|
| 99 | ; | 
|---|
| 100 | N SPIEC S SPIEC=$S(TYPE=4:9,TYPE=3:10,TYPE=2:11,TYPE=1:12) | 
|---|
| 101 | S $P(^TMP($J,"SDWLPL",NN),U,SPIEC)=WLTNI | 
|---|
| 102 | K ^TMP("SDWLPL",$J,IEN) | 
|---|
| 103 | Q | 
|---|
| 104 | ; | 
|---|
| 105 | LIST(ANS2,DFN) ; | 
|---|
| 106 | W:$D(IOF) @IOF | 
|---|
| 107 | ;D APPTD^SDWLEVAL ;display appointment(s) again | 
|---|
| 108 | W !,"==========================================================================" | 
|---|
| 109 | N NAME,SSN S NAME=$$GET1^DIQ(2,DFN_",",.01),SSN=$$GET1^DIQ(2,DFN_",",.09) | 
|---|
| 110 | ;W !!,$S(ANS2="A":" All",ANS2="C":" All Clinics",ANS2="M":" Matched Entries:",ANS2="S":" All Specialties",1:" All") | 
|---|
| 111 | W !," Open EWL entries matching appointment specialty" | 
|---|
| 112 | W !,"------------------------------" I ANS2'="A" W "-----------" | 
|---|
| 113 | W !,"EW List Type   SC/P  Waiting for Institution  Orig Date   By  Des. Date Reopen" | 
|---|
| 114 | W !,"--------------------------------------------------------------------------------" | 
|---|
| 115 | S (REC,NUM)="" | 
|---|
| 116 | F  S NUM=$O(^TMP($J,"SDWLPL",NUM)) Q:NUM=""  S REC=^TMP($J,"SDWLPL",NUM) D | 
|---|
| 117 | .S IEN=+REC N SDP,SDR D | 
|---|
| 118 | ..S SDP=$E($$GET1^DIQ(409.3,IEN_",",10)) ;priority | 
|---|
| 119 | ..S SDR=$$GET1^DIQ(409.3,IEN_",",29,"I") ;reopen reason | 
|---|
| 120 | .N SDINS,SDIN S SDINS=$P(REC,"^",5) S SDIN=$$GET1^DIQ(4,SDINS_",",.01,"I") | 
|---|
| 121 | .W !,NUM_". ",$E($P(REC,"^",2),1,12),?16,$P(REC,"^",3)_"/"_SDP,?21,$E($P(REC,U,4),1,13),?35,SDIN,?47,$$FMTE^XLFDT($P(REC,"^",6),8),?59,$P(REC,"^",7),?63,$$FMTE^XLFDT($P(REC,"^",8),8),?77,SDR | 
|---|
| 122 | .N SDUP,SDLO | 
|---|
| 123 | .S SDUP="ABCDEFGHIJKLMNOPRSTUWQXYzv",SDLO="abcdefghijklmnoprstuwqxyzv" | 
|---|
| 124 | .N SMT S SMT=$$GET1^DIQ(409.3,IEN_",",25) I SMT'="" S SMT=$TR(SMT,SDUP,SDLO) W !?2,"Comment: ",SMT | 
|---|
| 125 | .N SMO S SMO=$$GET1^DIQ(409.3,IEN_",",30) I SMO'="" S SMO=$TR(SMO,SDUP,SDLO) W !?2,"Reopen: ",SMO | 
|---|
| 126 | Q | 
|---|