- SDWLE ;BPOI/TEH - WAITING LIST-ENTER/EDIT;06/12/2002
- ;;5.3;scheduling;**263,415,446,524,1015**;08/13/93;Build 21
- ;
- ;
- ;******************************************************************
- ; CHANGE LOG
- ;
- ; DATE PATCH DESCRIPTION
- ; ---- ----- -----------
- ; 09JUN2005 446 Inter-Facility Transfer.
- ;
- ;
- EN ;ENTRY POINT - INTIALIZE VARIABLES
- N DTOUT,%
- I $D(SDWLOPT),SDWLOPT G OPT
- I $D(SDWLLIST),SDWLLIST,$D(DFN),DFN<0 K SDWLLIST
- I $D(SDWLLIST),SDWLLIST,$D(DFN),DFN'="" S SDWLDFN=DFN D 1^VADPT S (SDWLTEM,SDWLPOS)=0 D HD,SB1 G EN1:'$D(DUOUT) W !,"PATIENT: ",VADM(1),?40,VA("PID") W !,*7,"PATIENT'S DATE OF DEATH HAS BEEN RECORDED" S DIR(0)="E" D ^DIR G END
- K ^TMP("SDWLD",$J) D HD
- D PAT G END:DFN<0
- OPT S SDWLPCMM=0,SDWLERR=0 I $D(SDWLOPT),SDWLOPT D
- .S %=2 W !,"DO YOU WISH TO PLACE THIS PATIENT ON A WAITING LIST " D YN^DICN
- .I %=-1!(%=2) S SDWLERR=1 Q
- I $D(SDWLOPT),SDWLOPT,SDWLERR Q
- S SDWLDFN=DFN
- D 1^VADPT
- S (SDWLTEM,SDWLPOS)=0
- EN1 N SDWLNEW,SDWLERR,SDWLCN,SDWLWTE S SDWLNEW=0,SDWLERR=0,SDWLCN=0,SDWLWTE=0
- G:$$EN^SDWLE6(SDWLDFN,.SDWLERR) EN2 ; OG ; SD*5.3*446 ; Inter-facility transfer
- D DIS
- I $D(^SDWL(409.3,"B",DFN)),'SDWLCN W !!,"PATIENT: ",VADM(1),?40,VA("PID")
- S SDWLPS=$S(SDWLCN>1:1,SDWLCN=1:2,1:3)
- I $D(SDWLOPT),SDWLOPT,SDWLPS=3 S X="Y" G ENO
- I SDWLPS=1 S DIR(0)="FOA^^" S DIR("A")="Select Wait List (1-"_SDWLCN_") or Enter 'N' for New or '^' to Quit ? ",DIR("?")="Enter a Valid Number or 'N' for New."
- I SDWLPS=2 S DIR(0)="FOA^^" S DIR("A")="Select Wait List (1) or Enter 'N' for New or '^' to Quit ? ",DIR("?")="Enter a '1' or 'N' for New."
- I SDWLPS=3 S DIR(0)="YAO^^S X=""Y""" S DIR("A")="Patient is not on Waiting List. Do you wish to Add Patient? Yes// "
- W ! D ^DIR W ! K DIR
- G END:$D(DUOUT),END:$D(DTOUT)
- I SDWLPS=1 D G EN3:SDWLERR=1 I SDWLERR=2 W *7," ??" G EN1
- .S SDWLERR=$S(X?1"N".E:0,X?1"n".E:0,X="":2,$D(DUOUT):1,X["^":1,$D(^TMP("SDWLD",$J,DFN,+X)):0,1:2) Q
- I SDWLPS=2 D G EN3:SDWLERR=1 I SDWLERR=2 W *7," ??" G EN1
- .S SDWLERR=$S(X?1"N".E:0,X?1"n".E:0,X="":2,$D(DUOUT):1,X["^":1,$D(^TMP("SDWLD",$J,DFN,+X)):0,1:2) Q
- ENO I SDWLPS=3 D G EN3:SDWLERR=1 I SDWLERR=2 W *7," ??" G EN1
- .S SDWLERR=$S(X?1"N".E:1,X?1"n".E:1,X="":0,X?1"Y".E:0,X?1"y".E:0,$D(DUOUT):1,X["^":1,1:2) Q
- I SDWLPS=1!(SDWLPS=2),X?1N.N D
- .N DA,SDWLDA S (DA,SDWLDA)=$P($G(^TMP("SDWLD",$J,DFN,+X)),"~",2),SDWLEDIT=""
- .;
- .;LOCK DATA FILE
- .;
- .L +^SDWL(409.3,DA):5 I '$T W !,"ANOTHER TERMINAL IS EDITING THIS ENTRY. TRY LATER." S DUOUT=1
- .I $D(DUOUT) Q
- .N SDWLINNM,SDWLSTN ; OG ; This and the following six lines added for patch 415
- .I $$GETTRN^SDWLIFT1(SDWLDA,.SDWLINNM,.SDWLSTN) D S DUOUT=1 Q
- ..N SDWLMSG,SDWLI
- ..S SDWLMSG(0)=1,SDWLMSG(SDWLMSG(0),0)="This entry is the subject of a transfer to "_SDWLINNM_" ("_SDWLSTN_"). Editing inhibited."
- ..I $L(SDWLMSG(SDWLMSG(0),0))>80 D COL80^SDWLIFT(.SDWLMSG)
- ..F SDWLI=1:1:SDWLMSG(0) W !,SDWLMSG(SDWLI,0)
- ..Q
- .D EN^SDWLE10
- .D EDIT W !!,"Editing is Completed" S SDWLERR=1 K SDWLEDIT
- G END:SDWLERR
- I SDWLPS=1!(SDWLPS=2),X?1"N".E!(X?1"n".E) D NEW,EDIT S SDWLNEW="" G EN2
- I SDWLPS=3 D NEW,EDIT S SDWLNEW=""
- EN2 I $D(SDWLNEW),'$D(DUOUT),'SDWLERR W !!,?15,"*** Patient has been added to Wait List ***",!
- K SDWLNEW,DUOUT
- ;
- ;UNLOCK FILE AND KILL LOCAL VARIABLES
- ;
- I $D(SDWLDA) L -^SDWL(409.3,SDWLDA)
- ;-exit logic
- EN3 D END^SDWLE113
- Q
- END D END^SDWLE113
- D EN^SDWLKIL
- Q
- ;
- ;
- PAT ;SELECT PATIENT
- ;
- S DIC(0)="EMNZAQ",DIC=2 D ^DIC S (SDWLDFN,DFN)=$P(Y,U,1) G PAT1:DFN<0
- S X=$$GET1^DIQ(2,DFN_",",".351") I X'="" W !,*7,"PATIENT'S DATE OF DEATH HAS BEEN RECORDED" G PAT
- S SDWLSSN=$G(VA("PID")),SDWLNAM=$G(VA(1))
- PAT1 K VADM,VAIN,VAERR,VA Q
- ;
- DIS ;DISPLAY DATA FOR PATIENT
- ;
- S SDWLHDR="Wait List Enter/Edit"
- D EN^SDWLD(DFN,VA("PID"),VADM(1))
- D PCM^SDWLE1,PCMD^SDWLE1
- Q
- ;
- NEW ;
- D NEW^SDWLE11
- Q
- ;
- EDIT ;
- D EN^SDWLE111 I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- I SDWLTYE=4 D ED4 K DIR,DIE,DIC,DR Q
- I SDWLTYE=3 D ED3 K DIR,DIE,DIC,DR Q
- I SDWLTYE=2 D ED2 K DIR,DIE,DIC,DR Q
- I SDWLTYE=1 D ED1 K DIR,DIE,DIC,DR Q
- Q
- ED1 ;-team
- I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- D EN^SDWLE3 I '$D(DUOUT) D EN^SDWLE113 Q
- Q
- ED2 ;-position
- I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- D EN^SDWLE5 I '$D(DUOUT) D EN^SDWLE113 Q
- Q
- ED3 ;-specialty
- D EN^SDWLE2 I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- D EN^SDWLE110 I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- I '$D(DUOUT) D EN^SDWLE113
- D END^SDWLE113
- Q
- ED4 ;-clinic
- D EN^SDWLE4 I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- D EN^SDWLE110 I $D(DUOUT) D END^SDWLE113:'$D(SDWLEDIT) Q
- I '$D(DUOUT) D EN^SDWLE113
- D END^SDWLE113
- Q
- ;
- ED5 D END^SDWLE113
- Q
- SB1 S X=$$GET1^DIQ(2,DFN_",",".351") I X'="" S DUOUT=""
- Q
- HD W:$D(IOF) @IOF W !,?80-$L("Scheduling/PCMM Enter/Edit Wait List")\2,"Scheduling/PCMM Enter/Edit Wait List",!!
- I $D(DFN),DFN'="",'$D(^SDWL(409.3,"B",DFN)),$D(SDWLLIST),SDWLLIST D
- .W !!,"PATIENT: ",VADM(1),?40,VA("PID")
- Q
- SDWLE ;BPOI/TEH - WAITING LIST-ENTER/EDIT;06/12/2002
- +1 ;;5.3;scheduling;**263,415,446,524,1015**;08/13/93;Build 21
- +2 ;
- +3 ;
- +4 ;******************************************************************
- +5 ; CHANGE LOG
- +6 ;
- +7 ; DATE PATCH DESCRIPTION
- +8 ; ---- ----- -----------
- +9 ; 09JUN2005 446 Inter-Facility Transfer.
- +10 ;
- +11 ;
- EN ;ENTRY POINT - INTIALIZE VARIABLES
- +1 NEW DTOUT,%
- +2 IF $DATA(SDWLOPT)
- IF SDWLOPT
- GOTO OPT
- +3 IF $DATA(SDWLLIST)
- IF SDWLLIST
- IF $DATA(DFN)
- IF DFN<0
- KILL SDWLLIST
- +4 IF $DATA(SDWLLIST)
- IF SDWLLIST
- IF $DATA(DFN)
- IF DFN'=""
- SET SDWLDFN=DFN
- DO 1^VADPT
- SET (SDWLTEM,SDWLPOS)=0
- DO HD
- DO SB1
- IF '$DATA(DUOUT)
- GOTO EN1
- WRITE !,"PATIENT: ",VADM(1),?40,VA("PID")
- WRITE !,*7,"PATIENT'S DATE OF DEATH HAS BEEN RECORDED"
- SET DIR(0)="E"
- DO ^DIR
- GOTO END
- +5 KILL ^TMP("SDWLD",$JOB)
- DO HD
- +6 DO PAT
- IF DFN<0
- GOTO END
- OPT SET SDWLPCMM=0
- SET SDWLERR=0
- IF $DATA(SDWLOPT)
- IF SDWLOPT
- Begin DoDot:1
- +1 SET %=2
- WRITE !,"DO YOU WISH TO PLACE THIS PATIENT ON A WAITING LIST "
- DO YN^DICN
- +2 IF %=-1!(%=2)
- SET SDWLERR=1
- QUIT
- End DoDot:1
- +3 IF $DATA(SDWLOPT)
- IF SDWLOPT
- IF SDWLERR
- QUIT
- +4 SET SDWLDFN=DFN
- +5 DO 1^VADPT
- +6 SET (SDWLTEM,SDWLPOS)=0
- EN1 NEW SDWLNEW,SDWLERR,SDWLCN,SDWLWTE
- SET SDWLNEW=0
- SET SDWLERR=0
- SET SDWLCN=0
- SET SDWLWTE=0
- +1 ; OG ; SD*5.3*446 ; Inter-facility transfer
- IF $$EN^SDWLE6(SDWLDFN,.SDWLERR)
- GOTO EN2
- +2 DO DIS
- +3 IF $DATA(^SDWL(409.3,"B",DFN))
- IF 'SDWLCN
- WRITE !!,"PATIENT: ",VADM(1),?40,VA("PID")
- +4 SET SDWLPS=$SELECT(SDWLCN>1:1,SDWLCN=1:2,1:3)
- +5 IF $DATA(SDWLOPT)
- IF SDWLOPT
- IF SDWLPS=3
- SET X="Y"
- GOTO ENO
- +6 IF SDWLPS=1
- SET DIR(0)="FOA^^"
- SET DIR("A")="Select Wait List (1-"_SDWLCN_") or Enter 'N' for New or '^' to Quit ? "
- SET DIR("?")="Enter a Valid Number or 'N' for New."
- +7 IF SDWLPS=2
- SET DIR(0)="FOA^^"
- SET DIR("A")="Select Wait List (1) or Enter 'N' for New or '^' to Quit ? "
- SET DIR("?")="Enter a '1' or 'N' for New."
- +8 IF SDWLPS=3
- SET DIR(0)="YAO^^S X=""Y"""
- SET DIR("A")="Patient is not on Waiting List. Do you wish to Add Patient? Yes// "
- +9 WRITE !
- DO ^DIR
- WRITE !
- KILL DIR
- +10 IF $DATA(DUOUT)
- GOTO END
- IF $DATA(DTOUT)
- GOTO END
- +11 IF SDWLPS=1
- Begin DoDot:1
- +12 SET SDWLERR=$SELECT(X?1"N".E:0,X?1"n".E:0,X="":2,$DATA(DUOUT):1,X["^":1,$DATA(^TMP("SDWLD",$JOB,DFN,+X)):0,1:2)
- QUIT
- End DoDot:1
- IF SDWLERR=1
- GOTO EN3
- IF SDWLERR=2
- WRITE *7," ??"
- GOTO EN1
- +13 IF SDWLPS=2
- Begin DoDot:1
- +14 SET SDWLERR=$SELECT(X?1"N".E:0,X?1"n".E:0,X="":2,$DATA(DUOUT):1,X["^":1,$DATA(^TMP("SDWLD",$JOB,DFN,+X)):0,1:2)
- QUIT
- End DoDot:1
- IF SDWLERR=1
- GOTO EN3
- IF SDWLERR=2
- WRITE *7," ??"
- GOTO EN1
- ENO IF SDWLPS=3
- Begin DoDot:1
- +1 SET SDWLERR=$SELECT(X?1"N".E:1,X?1"n".E:1,X="":0,X?1"Y".E:0,X?1"y".E:0,$DATA(DUOUT):1,X["^":1,1:2)
- QUIT
- End DoDot:1
- IF SDWLERR=1
- GOTO EN3
- IF SDWLERR=2
- WRITE *7," ??"
- GOTO EN1
- +2 IF SDWLPS=1!(SDWLPS=2)
- IF X?1N.N
- Begin DoDot:1
- +3 NEW DA,SDWLDA
- SET (DA,SDWLDA)=$PIECE($GET(^TMP("SDWLD",$JOB,DFN,+X)),"~",2)
- SET SDWLEDIT=""
- +4 ;
- +5 ;LOCK DATA FILE
- +6 ;
- +7 LOCK +^SDWL(409.3,DA):5
- IF '$TEST
- WRITE !,"ANOTHER TERMINAL IS EDITING THIS ENTRY. TRY LATER."
- SET DUOUT=1
- +8 IF $DATA(DUOUT)
- QUIT
- +9 ; OG ; This and the following six lines added for patch 415
- NEW SDWLINNM,SDWLSTN
- +10 IF $$GETTRN^SDWLIFT1(SDWLDA,.SDWLINNM,.SDWLSTN)
- Begin DoDot:2
- +11 NEW SDWLMSG,SDWLI
- +12 SET SDWLMSG(0)=1
- SET SDWLMSG(SDWLMSG(0),0)="This entry is the subject of a transfer to "_SDWLINNM_" ("_SDWLSTN_"). Editing inhibited."
- +13 IF $LENGTH(SDWLMSG(SDWLMSG(0),0))>80
- DO COL80^SDWLIFT(.SDWLMSG)
- +14 FOR SDWLI=1:1:SDWLMSG(0)
- WRITE !,SDWLMSG(SDWLI,0)
- +15 QUIT
- End DoDot:2
- SET DUOUT=1
- QUIT
- +16 DO EN^SDWLE10
- +17 DO EDIT
- WRITE !!,"Editing is Completed"
- SET SDWLERR=1
- KILL SDWLEDIT
- End DoDot:1
- +18 IF SDWLERR
- GOTO END
- +19 IF SDWLPS=1!(SDWLPS=2)
- IF X?1"N".E!(X?1"n".E)
- DO NEW
- DO EDIT
- SET SDWLNEW=""
- GOTO EN2
- +20 IF SDWLPS=3
- DO NEW
- DO EDIT
- SET SDWLNEW=""
- EN2 IF $DATA(SDWLNEW)
- IF '$DATA(DUOUT)
- IF 'SDWLERR
- WRITE !!,?15,"*** Patient has been added to Wait List ***",!
- +1 KILL SDWLNEW,DUOUT
- +2 ;
- +3 ;UNLOCK FILE AND KILL LOCAL VARIABLES
- +4 ;
- +5 IF $DATA(SDWLDA)
- LOCK -^SDWL(409.3,SDWLDA)
- +6 ;-exit logic
- EN3 DO END^SDWLE113
- +1 QUIT
- END DO END^SDWLE113
- +1 DO EN^SDWLKIL
- +2 QUIT
- +3 ;
- +4 ;
- PAT ;SELECT PATIENT
- +1 ;
- +2 SET DIC(0)="EMNZAQ"
- SET DIC=2
- DO ^DIC
- SET (SDWLDFN,DFN)=$PIECE(Y,U,1)
- IF DFN<0
- GOTO PAT1
- +3 SET X=$$GET1^DIQ(2,DFN_",",".351")
- IF X'=""
- WRITE !,*7,"PATIENT'S DATE OF DEATH HAS BEEN RECORDED"
- GOTO PAT
- +4 SET SDWLSSN=$GET(VA("PID"))
- SET SDWLNAM=$GET(VA(1))
- PAT1 KILL VADM,VAIN,VAERR,VA
- QUIT
- +1 ;
- DIS ;DISPLAY DATA FOR PATIENT
- +1 ;
- +2 SET SDWLHDR="Wait List Enter/Edit"
- +3 DO EN^SDWLD(DFN,VA("PID"),VADM(1))
- +4 DO PCM^SDWLE1
- DO PCMD^SDWLE1
- +5 QUIT
- +6 ;
- NEW ;
- +1 DO NEW^SDWLE11
- +2 QUIT
- +3 ;
- EDIT ;
- +1 DO EN^SDWLE111
- IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +2 IF SDWLTYE=4
- DO ED4
- KILL DIR,DIE,DIC,DR
- QUIT
- +3 IF SDWLTYE=3
- DO ED3
- KILL DIR,DIE,DIC,DR
- QUIT
- +4 IF SDWLTYE=2
- DO ED2
- KILL DIR,DIE,DIC,DR
- QUIT
- +5 IF SDWLTYE=1
- DO ED1
- KILL DIR,DIE,DIC,DR
- QUIT
- +6 QUIT
- ED1 ;-team
- +1 IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +2 DO EN^SDWLE3
- IF '$DATA(DUOUT)
- DO EN^SDWLE113
- QUIT
- +3 QUIT
- ED2 ;-position
- +1 IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +2 DO EN^SDWLE5
- IF '$DATA(DUOUT)
- DO EN^SDWLE113
- QUIT
- +3 QUIT
- ED3 ;-specialty
- +1 DO EN^SDWLE2
- IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +2 DO EN^SDWLE110
- IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +3 IF '$DATA(DUOUT)
- DO EN^SDWLE113
- +4 DO END^SDWLE113
- +5 QUIT
- ED4 ;-clinic
- +1 DO EN^SDWLE4
- IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +2 DO EN^SDWLE110
- IF $DATA(DUOUT)
- IF '$DATA(SDWLEDIT)
- DO END^SDWLE113
- QUIT
- +3 IF '$DATA(DUOUT)
- DO EN^SDWLE113
- +4 DO END^SDWLE113
- +5 QUIT
- +6 ;
- ED5 DO END^SDWLE113
- +1 QUIT
- SB1 SET X=$$GET1^DIQ(2,DFN_",",".351")
- IF X'=""
- SET DUOUT=""
- +1 QUIT
- HD IF $DATA(IOF)
- WRITE @IOF
- WRITE !,?80-$LENGTH("Scheduling/PCMM Enter/Edit Wait List")\2,"Scheduling/PCMM Enter/Edit Wait List",!!
- +1 IF $DATA(DFN)
- IF DFN'=""
- IF '$DATA(^SDWL(409.3,"B",DFN))
- IF $DATA(SDWLLIST)
- IF SDWLLIST
- Begin DoDot:1
- +2 WRITE !!,"PATIENT: ",VADM(1),?40,VA("PID")
- End DoDot:1
- +3 QUIT