1 | SDWLE3 ;IOFO BAY PINES/TEH - WAITING LIST-ENTER/EDIT;06/12/2002 ; 12/14/05 1:28pm ; Compiled April 25, 2006 10:42:02
|
---|
2 | ;;5.3;scheduling;**263,417,446**;AUG 13 1993;Build 77
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | ;******************************************************************
|
---|
6 | ; CHANGE LOG
|
---|
7 | ;
|
---|
8 | ; DATE PATCH DESCRIPTION
|
---|
9 | ; ---- ----- -----------
|
---|
10 | ; 08/01/2005 SD*5.3*417 Permit multiple teams
|
---|
11 | ; 04/21/2006 SD*5.3*446 Inter-Facility Transfer
|
---|
12 | ;
|
---|
13 | ;
|
---|
14 | EN ;
|
---|
15 | ;ASK FOR SPECIFIC TEAM (404.51)
|
---|
16 | K DIR,DIC,DR,DIE,SDTMENT S (DA,SDTMENT)=SDWLDA K SDWLTH,SDWLMAX
|
---|
17 | S SDWLYN=5,SDWLTYE=1,SDWLVBR="SDWLST"
|
---|
18 | I $D(SDWLST),'SDWLST K SDWLST
|
---|
19 | I $G(SDWLCP3)'="" D
|
---|
20 | .W !,"This patient is already on the ",SDWLCP3,"." S DIR(0)="Y^A0",DIR("B")="NO",DIR("A")="Are you sure you want to continue" D ^DIR
|
---|
21 | .I 'Y!(Y["^") S DUOUT=1 Q
|
---|
22 | I $D(DUOUT),DUOUT G END
|
---|
23 | D GETLIST
|
---|
24 | S SDWLERR=0,SDWLY="Team",SDWLVAR=$S($D(SDWLST):SDWLST,1:0),SDWLSCR=""
|
---|
25 | S SDWLVBR="SDWLST"
|
---|
26 | EN1 W ! S SDWLS=SDWLY,SDWLX=$S(SDWLTYE=1:"T",SDWLTYE=2:"P",1:""),SDWLSX=" "_SDWLS
|
---|
27 | S SDWLF="SCTM(404.51,"
|
---|
28 | S SDWLA=0 F S SDWLA=$O(^SCTM(404.58,"B",SDWLA)) Q:SDWLA="" D
|
---|
29 | .I $D(SDWLCT),SDWLCT=SDWLA Q
|
---|
30 | .I $P($G(^SCTM(404.51,SDWLA,0)),U,7)'=SDWLIN Q
|
---|
31 | .I +$$ACTTM^SCMCTMU(SDWLA)=0 S SDWLTH(SDWLA)=""
|
---|
32 | .S SDWLMAX=0,X=$$TEAMCNT^SCAPMCU1(SDWLA,DT),SDWLMAX(SDWLA)="" D
|
---|
33 | ..I X<$P($G(^SCTM(404.51,SDWLA,0)),U,8) K SDWLMAX(SDWLA)
|
---|
34 | N SDWLT S SDWLT=0 F S SDWLT=$O(SDWLPLST(1,SDWLT)) Q:SDWLT<1 K SDWLMAX(SDWLT)
|
---|
35 | S SDWLSCR="I $P(^(0),U,7)=SDWLIN,'$D(SDWLTH(+Y)),$D(SDWLMAX(+Y)),'$D(SDWLPLST(SDWLTYE,+Y,SDWLIN))"
|
---|
36 | D EN2 G END:$D(DUOUT)
|
---|
37 | ;DA=SDWLDA, see EN
|
---|
38 | S DR="5////^S X=SDWLVAR",DIE=409.3 D ^DIE
|
---|
39 | N FLG D FLAGS(.FLG,DFN,SDWLVAR)
|
---|
40 | I 'FLG S DA=SDTMENT,DIE=409.3 D
|
---|
41 | .S SDINTR=FLG(1),SDREJ=FLG(2),SDMTM=FLG(3)
|
---|
42 | .S DR="32////^S X=SDREJ;34////^S X=SDINTR;38////^S X=SDMTM" D ^DIE
|
---|
43 | ;
|
---|
44 | S @SDWLVBR=SDWLVAR
|
---|
45 | I $D(SDWLVARO),SDWLVARO,SDWLVAR'=SDWLVARO D DELPOS
|
---|
46 | G END
|
---|
47 | EN2 ;-DIR READ
|
---|
48 | I '$D(SDWLDATA),$D(SDWLMAX)'=11 W !,"No TEAMS are available for this INSTITUTION.",! S DUOUT="" Q
|
---|
49 | K DIR,DR,DIE,DIC,DUOUT
|
---|
50 | S DIR("?")="^S X=""?"",DIC(""S"")=""I $P(^SCTM(404.51,+Y,0),U,7)=SDWLIN,'$D(SDWLTH(+Y)),$D(SDWLMAX(+Y)),'$D(SDWLPLST(1,+Y,SDWLINE))"" S DIC=404.51,DIC(0)=""EQMNZ"" D ^DIC"
|
---|
51 | I $D(SDWLVAR),SDWLVAR S X=SDWLVAR,SDWLMPX=$$EXTERNAL^DILFD(409.3,SDWLYN,,SDWLVAR),DIR("B")=SDWLMPX,SDWLVARO=SDWLVAR K X
|
---|
52 | S DIR(0)="FAO",DIR("A")="Select "_SDWLY_": "
|
---|
53 | D ^DIR
|
---|
54 | I X["^" S DUOUT=1 Q
|
---|
55 | S DUOUT=$S(X=0:1,X="@":1,$D(DTOUT):1,1:0) I 'DUOUT K DUOUT
|
---|
56 | I X="@" W *7," No deleting allowing." G EN2
|
---|
57 | S DIC("S")=SDWLSCR
|
---|
58 | S DIC(0)="EMNZ",DIC=404.51 D ^DIC I $D(DTOUT) S DUOUT=1
|
---|
59 | I $D(DUOUT) Q
|
---|
60 | I Y<0 W "??" G EN2
|
---|
61 | S SDWLVAR=+Y
|
---|
62 | Q
|
---|
63 | ;identify flags
|
---|
64 | FLAGS(FLG,DFN,TEAM) ;
|
---|
65 | N SDTEAM S SDTEAM=$G(TEAM)
|
---|
66 | ; check if transfer and if multiple teams in institution
|
---|
67 | S SDCNT=0,SDINTR=0,SDREJ=0,SDMTM=0 D
|
---|
68 | .S SDWLIN=$P($G(^SCTM(404.51,TEAM,0)),U,7)
|
---|
69 | .I $P(^SCTM(404.51,TEAM,0),U,5)'=1 Q ; cannot be primary care provider team
|
---|
70 | .;identify INTRA-transfer
|
---|
71 | .;- is patient assigned to PC provider?
|
---|
72 | .I $$GETALL^SCAPMCA(DFN) D
|
---|
73 | ..I $G(^TMP("SC",$J,DFN,"PCPOS",0)) S SDTM=$P(^(1),U,3) I SDTM>0 D
|
---|
74 | ...I $P($G(^SCTM(404.51,SDTM,0)),U,7)'=SDWLIN S SDINTR=1 D ; inter transfer ; different institution
|
---|
75 | ..I '$G(^TMP("SC",$J,DFN,"PCPOS",0)) D
|
---|
76 | ...;check available PCMM teams in other institutions and if so set up rejection flag
|
---|
77 | ...S SDINS=""
|
---|
78 | ...F S SDINS=$O(^SCTM(404.51,"AINST",SDINS)) Q:SDINS="" I SDINS'=SDWLIN D Q:SDREJ
|
---|
79 | ....S SDCNT=0,SDT=""
|
---|
80 | ....F S SDT=$O(^SCTM(404.51,"AINST",SDINS,SDT)) Q:SDT="" D Q:SDREJ
|
---|
81 | .....I $$ACTTM^SCMCTMU(SDT,DT)&($P($G(^SCTM(404.51,SDT,0)),U,5))&'$P($G(^SCTM(404.51,SDT,0)),U,10) D
|
---|
82 | ......S SCTMCT=$$TEAMCNT^SCAPMCU1(SDT) ;currently assigned
|
---|
83 | ......S SCTMMAX=$P($$GETEAM^SCAPMCU3(SDT),"^",8) ;maximum set
|
---|
84 | ......I SCTMCT<SCTMMAX S SDREJ=1
|
---|
85 | ..;find all teams from institution SDWLIN
|
---|
86 | ..I SDINTR S SDCNT=0,SDT="" D
|
---|
87 | ...F S SDT=$O(^SCTM(404.51,"AINST",SDWLIN,SDT)) Q:SDT="" I $P(^SCTM(404.51,SDT,0),U,5)=1 S TEAM(SDT)="",SDCNT=SDCNT+1
|
---|
88 | S FLG(1)=SDINTR,FLG(2)=SDREJ,FLG(3)=SDMTM
|
---|
89 | I SDCNT>1 S SDMTM=1,FLG(3)=SDMTM,FLG=1 S SDCC="" F S SDCC=$O(TEAM(SDCC)) Q:SDCC="" S TEAM=SDCC N DR,Y D WMT
|
---|
90 | I SDCNT>1 S TEAM=$G(SDTEAM) Q
|
---|
91 | I SDCNT'>1 N DR,Y S FLG=0 S TEAM=$G(SDTEAM) Q
|
---|
92 | WMT D INPUT^SDWLRP1(.RES,DFN_U_1_U_TEAM_U_U_DUZ_"^^"_U_SDINTR_U_SDREJ_U_SDMTM)
|
---|
93 | ;I $G(RES) S OK=0,DA=+$P(RES,U,2),DIE="^SDWL(409.3,",DR="25;S OK=1" D ^DIE I '$G(OK) S DIK=DIE D ^DIK W !,"Wait list entry deleted"
|
---|
94 | Q
|
---|
95 | GETLIST ;GET LIST OF TEAM ASSIGNMENTS - SD*5.3*417
|
---|
96 | N SDWLDAX,X,Z,SDWLIN K SDWLPLST S SDWLPLST=""
|
---|
97 | S SDWLDAX=0 F S SDWLDAX=$O(^SDWL(409.3,"B",SDWLDFN,SDWLDAX)) Q:SDWLDAX="" D
|
---|
98 | .S Z=$G(^SDWL(409.3,SDWLDAX,0)),X=$P(Z,U,5),SDWLINE=+$P(Z,U,3) Q:X'=1&(X'=2) D
|
---|
99 | ..S Y=+$S(X=1:$P(Z,U,6),X=2:$P(Z,U,7),1:0) Q:'Y D
|
---|
100 | ...I $P(Z,U,17)["O" S SDWLPLST(X,Y,SDWLINE)="" I $D(SDWLST),SDWLST=+Y K SDWLPLST(X,Y,SDWLINE)
|
---|
101 | S Y=0 F S Y=$O(SDWLCPT(Y)) Q:Y="" D
|
---|
102 | .S SDWLPLST(1,Y,SDWLINE)="" I $D(SDWLST),SDWLST=+Y K SDWLPLST(1,Y,SDWLINE)
|
---|
103 | Q
|
---|
104 | DELPOS ;DELETE POSITIONS FOR OLD TEAM
|
---|
105 | S SDWLA=0,CNT=0 F S SDWLA=$O(^SDWL(409.3,"B",SDWLDFN,SDWLA)) Q:SDWLA<1 D
|
---|
106 | .S X=$G(^SDWL(409.3,SDWLA,0)) Q:$P(X,U,7)=""
|
---|
107 | .I $P(X,U,5)'=2 Q
|
---|
108 | .I $P(X,U,17)["C" Q
|
---|
109 | .S SDWLPX=+$P(X,U,7) I $P($G(^SCTM(404.57,SDWLPX,0)),U,2)'=SDWLVARO Q
|
---|
110 | .S CNT=CNT+1,^XTMP("SDWLE3",$J,CNT)=SDWLA_";"_X W !
|
---|
111 | I 'CNT Q
|
---|
112 | W !,"This patient has one or more Wait List entries for PCMM Positions",!
|
---|
113 | W !,"Wait List Type",?30,"Waiting For",?45,"Institution",?60,"Date Entered",!
|
---|
114 | S Y=0 F S Y=$O(^XTMP("SDWLE3",$J,Y)) Q:Y<1 S X=$G(^XTMP("SDWLE3",$J,Y)),SDWLIEN=$P(X,";",1) D
|
---|
115 | .W !,$$GET1^DIQ(409.3,SDWLIEN,4),?30,$$GET1^DIQ(409.3,SDWLIEN,6),?45,$$GET1^DIQ(409.3,SDWLIEN,2),?60,$$GET1^DIQ(409.3,SDWLIEN,1)
|
---|
116 | W ! S SDWLET=$$EXTERNAL^DILFD(409.3,SDWLYN,,SDWLVARO)
|
---|
117 | K DIR S DIR("?",1)="This patient has one or more Wait List entries for PCMM positions."
|
---|
118 | S DIR("?",2)="By answering 'YES' you will close the Wait List entries which were listed."
|
---|
119 | S DIR("?")="Answer 'NO' to keep those Wait List entries open."
|
---|
120 | S DIR("A")="Do you wish to close these POSITION(S) entries? ",DIR(0)="Y",DIR("B")="YES" D ^DIR
|
---|
121 | I 'Y W *7," No POSITIONS closed." Q
|
---|
122 | N DA S SDWLA=0 F S SDWLA=$O(^SDWL(409.3,"B",SDWLDFN,SDWLA)) Q:SDWLA<1 D
|
---|
123 | .S X=$G(^SDWL(409.3,SDWLA,0)) Q:$P(X,U,7)="" D
|
---|
124 | ..S SDWLP=$P(X,U,7) I $P(^SCTM(404.57,SDWLP,0),U,2)=SDWLVARO D
|
---|
125 | ...K DIE,DIC,DR,DICR,DIR S DA=SDWLA,SDWLDISP="NN"
|
---|
126 | ...S DIE="^SDWL(409.3,",DR="21////^S X=SDWLDISP" D ^DIE
|
---|
127 | ...S DR="19////^S X=DT" D ^DIE
|
---|
128 | ...S DR="20////^S X=SDWLDUZ" D ^DIE
|
---|
129 | ...S DR="23////""C""" D ^DIE
|
---|
130 | Q
|
---|
131 | END K SDWLA,SDWLMAX,SDWLTH,SDWLSCR,DIR,DIC,DIE,DR,SDWLPLST,SDWLDAX,DTOUT,SDWLCP3,SDWLINE
|
---|
132 | K X,Y,Z,SDWLPLST,SDWLB,SDWLA,SDWLSX,SDWLS,SDWLVBR,SDWLVAR,SDWLSCR,SDWLF,SDWLYN,SDWLMPX
|
---|
133 | Q
|
---|