| 1 | SDWLIFT3 ;IOFO BAY PINES/OG - INTER-FACILITY TRANSFER: NEW TRANSFER  ; Compiled March 23, 2005 11:15:27  ; Compiled April 16, 2007 10:52:44
 | 
|---|
| 2 |  ;;5.3;Scheduling;**415,446**;AUG 13 1993;Build 77
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;******************************************************************
 | 
|---|
| 6 |  ;                             CHANGE LOG
 | 
|---|
| 7 |  ;                                               
 | 
|---|
| 8 |  ;   DATE                        PATCH                   DESCRIPTION
 | 
|---|
| 9 |  ;   ----                        -----                   -----------
 | 
|---|
| 10 |  ;   12/12/05                    SD*5.3*446              Enhancements
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  Q
 | 
|---|
| 13 | EN ; INITIALIZE VARIABLES
 | 
|---|
| 14 |  N DIR,DIC,DR,DIE,VADM,X,Y
 | 
|---|
| 15 |  D FULL^VALM1
 | 
|---|
| 16 |  D EN2()
 | 
|---|
| 17 |  D INIT^SDWLIFT1(0)
 | 
|---|
| 18 |  ; VALMBCK required by List Manager
 | 
|---|
| 19 |  S VALMBCK="R"
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 | EN2(SDWLDA) ; Entry point if Wait List has been selected elsewhere.
 | 
|---|
| 22 |  ; SDWLOPT is the option to be queried.
 | 
|---|
| 23 |  ; 1: Patient & Wait List Entry
 | 
|---|
| 24 |  ; 2: Institution
 | 
|---|
| 25 |  ; 3: Comments
 | 
|---|
| 26 |  ; 4: Processing
 | 
|---|
| 27 |  ; 5: Confirmation
 | 
|---|
| 28 |  N SDWLOPT,SDWLOPT0
 | 
|---|
| 29 |  S SDWLOPT=2
 | 
|---|
| 30 |  I '$D(SDWLDA) S SDWLDA="",SDWLOPT=1
 | 
|---|
| 31 |  S SDWLOPT0=SDWLOPT
 | 
|---|
| 32 |  F  D  Q:'SDWLOPT
 | 
|---|
| 33 |  .N SDWLDFN,SDWLDMN,SDWLIFTN,SDWLINST,DIC,DIE,DIR,DA,DO,I,Y,%,DIWETXT
 | 
|---|
| 34 |  .I SDWLOPT=1 D
 | 
|---|
| 35 |  ..N DFN,SDWLOK,SDWLOUT,SDWLC,SDWLI,SDWLNM,SDWLTMP
 | 
|---|
| 36 |  ..K Y,X
 | 
|---|
| 37 |  ..S DIC=2,DIC(0)="AEMZ",DIC("S")="I $$ISEWL^SDWLIFT3(+Y)"
 | 
|---|
| 38 |  ..D ^DIC
 | 
|---|
| 39 |  ..I Y=-1 S SDWLOPT=0 Q
 | 
|---|
| 40 |  ..S DFN=+Y  ; DFN used to uniquely identify the patient in the following look-up.
 | 
|---|
| 41 |  ..D LIST^DIC(409.3,,".01;2;4;5;6;7;8",,,,$P(Y,U,2),,"I $$ISEWL2^SDWLIFT3(Y,DFN)",,"SDWLTMP")
 | 
|---|
| 42 |  ..F I=1:1:+SDWLTMP("DILIST",0) D
 | 
|---|
| 43 |  ...N TMP,SDWLSTA
 | 
|---|
| 44 |  ...S TMP=""
 | 
|---|
| 45 |  ...I SDWLTMP("DILIST","ID",I,2)'="" S TMP=TMP_SDWLTMP("DILIST","ID",I,2)_"  "
 | 
|---|
| 46 |  ...D:SDWLTMP("DILIST","ID",I,4)'=""
 | 
|---|
| 47 |  ....S SDWLTMP("WLTY",I,0)=SDWLTMP("DILIST","ID",I,4),SDWLSTA=$$GET1^DIQ(409.3,SDWLTMP("DILIST",2,I),4,"I")
 | 
|---|
| 48 |  ....I SDWLTMP("DILIST","ID",I,SDWLSTA+4)'="" S SDWLTMP("WLTY",I,0)=SDWLTMP("WLTY",I,0)_" ("_SDWLTMP("DILIST","ID",I,SDWLSTA+4)_")"
 | 
|---|
| 49 |  ....S TMP=TMP_SDWLTMP("WLTY",I,0)
 | 
|---|
| 50 |  ....Q
 | 
|---|
| 51 |  ...S $P(DIR(0),";",I)=I_":"_TMP
 | 
|---|
| 52 |  ...Q
 | 
|---|
| 53 |  ..; If there is only one EWL entry, use that. The previous look-up will have ensured there is at least one.
 | 
|---|
| 54 |  ..; If there are more than one, call ^DIR to select.
 | 
|---|
| 55 |  ..S Y=1
 | 
|---|
| 56 |  ..I +SDWLTMP("DILIST",0)>1 S DIR(0)="S^"_DIR(0),DIR("A")="Enter 1 - "_+SDWLTMP("DILIST",0) D ^DIR  Q:Y="^"
 | 
|---|
| 57 |  ..W !?4,"Institution:",?20,SDWLTMP("DILIST","ID",Y,2)
 | 
|---|
| 58 |  ..W !?4,"Wait List Type:",?20,$G(SDWLTMP("WLTY",Y,0))
 | 
|---|
| 59 |  ..S SDWLDA=SDWLTMP("DILIST",2,Y)
 | 
|---|
| 60 |  ..I $D(^SDWL(409.36,"C",SDWLDA)) S SDWLOK=0 D  I SDWLOK S SDWLOPT=0 Q
 | 
|---|
| 61 |  ...N SDWLIFTN,SDWLSTN
 | 
|---|
| 62 |  ...S SDWLIFTN=$O(^SDWL(409.36,"C",SDWLDA,"")),SDWLSTN=$$GET1^DIQ(409.36,SDWLIFTN,".1")
 | 
|---|
| 63 |  ...S DIR(0)="E",DIR("A")="Press return to continue"
 | 
|---|
| 64 |  ...S DIR("A",1)="This EWL Entry is the result of a transfer request from "_$$GET1^DIQ(4,SDWLSTN,".01")_" ("_SDWLSTN_")"
 | 
|---|
| 65 |  ...;S DIR("A",2)="On acceptance at the destination facility, this EWL Entry will be removed."
 | 
|---|
| 66 |  ...S DIR("A",2)="To transfer care, close the EWL Entry as ER - ENTERED IN ERROR and reject the"
 | 
|---|
| 67 |  ...S DIR("A",3)="request. "_$$GET1^DIQ(4,SDWLSTN,".01")_" can then request the transfer."
 | 
|---|
| 68 |  ...D ^DIR
 | 
|---|
| 69 |  ...S SDWLOK=1
 | 
|---|
| 70 |  ...Q
 | 
|---|
| 71 |  ..S SDWLOPT=2
 | 
|---|
| 72 |  ..Q
 | 
|---|
| 73 |  .D:SDWLOPT=2
 | 
|---|
| 74 |  ..N SDWLY
 | 
|---|
| 75 |  ..S SDWLDFN=$$GET1^DIQ(409.3,SDWLDA,.01,"I")
 | 
|---|
| 76 |  ..S DIC=4
 | 
|---|
| 77 |  ..S DIC(0)="EMNQA"
 | 
|---|
| 78 |  ..S DIC("A")="Select Institution to transfer to: "
 | 
|---|
| 79 |  ..S DIC("S")="I $P(^DIC(4,+Y,0),U,11)=""N"",'+$P($G(^DIC(4,+Y,99)),U,4),$L($P($G(^DIC(4,+Y,99)),U))=3,$$GET1^DIQ(4,Y,13)=""VAMC"""
 | 
|---|
| 80 |  ..D ^DIC
 | 
|---|
| 81 |  ..I Y=-1 S SDWLOPT=$S(SDWLOPT0=2:0,1:1) Q  ; If the call was made to go straight to Institution, quit out if no institution is selected.
 | 
|---|
| 82 |  ..S SDWLY=+Y,SDWLDMN=$$GET1^DIQ(4,SDWLY,60)
 | 
|---|
| 83 |  ..I SDWLDMN=""  W !,"This Institution does not have a Domain to which the request can be sent." Q
 | 
|---|
| 84 |  ..S SDWLINST=SDWLY,SDWLOPT=3
 | 
|---|
| 85 |  ..Q
 | 
|---|
| 86 |  .D:SDWLOPT=3
 | 
|---|
| 87 |  ..S DIC="^TMP(""SDWLIFT"",$J,""COMMENT""",DIWETXT="Transfer comments"
 | 
|---|
| 88 |  ..W !,DIWETXT
 | 
|---|
| 89 |  ..K @(DIC_")") S DIC=DIC_","
 | 
|---|
| 90 |  ..D EN^DIWE
 | 
|---|
| 91 |  ..S SDWLOPT=4
 | 
|---|
| 92 |  ..Q
 | 
|---|
| 93 |  .D:SDWLOPT=4
 | 
|---|
| 94 |  ..N SDWLDTM
 | 
|---|
| 95 |  ..K DIC
 | 
|---|
| 96 |  ..S DIR(0)="Y",DIR("A")="OK to send",DIR("B")="YES" D ^DIR
 | 
|---|
| 97 |  ..I 'Y S SDWLOPT=0 Q
 | 
|---|
| 98 |  ..S DIC=409.35,DIC(0)="Z",X=SDWLDA
 | 
|---|
| 99 |  ..D FILE^DICN
 | 
|---|
| 100 |  ..S SDWLIFTN=+Y
 | 
|---|
| 101 |  ..S DA(1)=+Y,DIC=DIC_DA(1)_",1,",SDWLI=0
 | 
|---|
| 102 |  ..F  S SDWLI=$O(^TMP("SDWLIFT",$J,"COMMENT",SDWLI)) Q:'SDWLI  S X=^TMP("SDWLIFT",$J,"COMMENT",SDWLI,0) K DO D FILE^DICN
 | 
|---|
| 103 |  ..D NOW^%DTC S SDWLDTM=%
 | 
|---|
| 104 |  ..S DIE=409.35,DR="1///"_$$GET1^DIQ(4,SDWLINST,99)_";2///"_SDWLDTM_";3///P;4///`"_DUZ
 | 
|---|
| 105 |  ..D ^DIE
 | 
|---|
| 106 |  ..D MSG
 | 
|---|
| 107 |  ..S SDWLOPT=0 K DIR
 | 
|---|
| 108 |  ..;S DIR(0)="E" D ^DIR
 | 
|---|
| 109 |  ..Q
 | 
|---|
| 110 |  .Q
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 | ISEWL(DFN) ; Filter for seach of PATIENT file ; OG ; SD*5.3*446
 | 
|---|
| 114 |  N SDWLOK,SDWLDA
 | 
|---|
| 115 |  S SDWLOK=0
 | 
|---|
| 116 |  Q:'$D(^SDWL(409.3,"B",DFN)) SDWLOK
 | 
|---|
| 117 |  S SDWLDA=0
 | 
|---|
| 118 |  F  S SDWLDA=$O(^SDWL(409.3,"B",DFN,SDWLDA)) Q:'SDWLDA  I $$ISEWL2(SDWLDA,DFN) S SDWLOK=1 Q
 | 
|---|
| 119 |  Q SDWLOK
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 | ISEWL2(SDWLDA,DFN) ; If the EWL entry exists, is not closed, is a team or team position assignment and not already in transit.
 | 
|---|
| 122 |  N TMP
 | 
|---|
| 123 |  ;Q $$GET1^DIQ(409.3,SDWLDA,23,"I")'="C"&'$$GETTRN^SDWLIFT1(SDWLDA)&($$GET1^DIQ(409.3,SDWLDA,.01,"I")=DFN) old way of doing it.
 | 
|---|
| 124 |  D GETS^DIQ(409.3,SDWLDA_",",".01;4;23","I","TMP")
 | 
|---|
| 125 |  Q:$G(TMP(409.3,SDWLDA_",",.01,"I"))'=DFN 0
 | 
|---|
| 126 |  Q TMP(409.3,SDWLDA_",",23,"I")'="C"&("^1^2^"[("^"_TMP(409.3,SDWLDA_",",4,"I")_"^"))&'$$GETTRN^SDWLIFT1(SDWLDA)
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 | MSG ;acknowledgement notification to destination
 | 
|---|
| 129 |  N SDWLDA,SDWLDTM,DFN,TMP,SDWLTY,SDWLX,SDWLI,DIE,DA,DR,VAPA,WP
 | 
|---|
| 130 |  N XMSUB,XMY,XMTEXT,XMDUZ,SDWLX,SDWLI
 | 
|---|
| 131 |  S XMSUB="SDWL TRANSFER REQUEST"
 | 
|---|
| 132 |  S XMY("S.SDWL-XFER-SERVER@"_SDWLDMN)=""
 | 
|---|
| 133 |  S XMTEXT="SDWLX("
 | 
|---|
| 134 |  S XMDUZ="POSTMASTER"
 | 
|---|
| 135 |  D NOW^%DTC S SDWLDTM=%
 | 
|---|
| 136 |  S SDWLDA=$$GET1^DIQ(409.35,SDWLIFTN,.01,"I")
 | 
|---|
| 137 |  D GETS^DIQ(409.3,SDWLDA,".01;4;22","I","TMP")
 | 
|---|
| 138 |  S DFN=TMP(409.3,SDWLDA_",",.01,"I")
 | 
|---|
| 139 |  S SDWLTY=TMP(409.3,SDWLDA_",",4,"I")
 | 
|---|
| 140 |  D DEM^VADPT,ADD^VADPT
 | 
|---|
| 141 |  D GETS^DIQ(2,DFN,".301;.302;991.01","I","TMP")
 | 
|---|
| 142 |  S SDWLX(0)=0
 | 
|---|
| 143 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".01"_U_"NAME"_U_VADM(1)
 | 
|---|
| 144 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".02"_U_"SEX"_U_$P(VADM(5),U)
 | 
|---|
| 145 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".03"_U_"DATE OF BIRTH"_U_$P(VADM(3),U)
 | 
|---|
| 146 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".09"_U_"SOCIAL SECURITY NUMBER"_U_$P(VADM(2),U)
 | 
|---|
| 147 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".1"_U_"REQUESTING STATION NUMBER"_U_$P($$SITE^VASITE(),U,3)
 | 
|---|
| 148 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".111"_U_"STREET ADDRESS [LINE 1]"_U_VAPA(1)
 | 
|---|
| 149 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".112"_U_"STREET ADDRESS [LINE 2]"_U_VAPA(2)
 | 
|---|
| 150 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".113"_U_"STREET ADDRESS [LINE 3]"_U_VAPA(3)
 | 
|---|
| 151 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".114"_U_"CITY"_U_VAPA(4)
 | 
|---|
| 152 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".115"_U_"STATE"_U_VAPA(5)
 | 
|---|
| 153 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".116"_U_"ZIP CODE"_U_VAPA(6)
 | 
|---|
| 154 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".117"_U_"COUNTY"_U_$P(VAPA(7),U)
 | 
|---|
| 155 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".1217"_U_"TEMPORARY ADDRESS START DATE"_U_$P(VAPA(9),U)
 | 
|---|
| 156 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".1218"_U_"TEMPORARY ADDRESS END DATE"_U_$P(VAPA(10),U)
 | 
|---|
| 157 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".131"_U_"PHONE NUMBER [RESIDENCE]"_U_VAPA(8)
 | 
|---|
| 158 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".301"_U_"SERVICE CONNECTED?"_U_TMP(2,DFN_",",.301,"I")
 | 
|---|
| 159 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".302"_U_"SERVICE CONNECTED PERCENTAGE"_U_TMP(2,DFN_",",.302,"I")
 | 
|---|
| 160 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".361"_U_"PRIMARY ELIGIBILITY CODE"_U_$$GET1^DIQ(2,DFN,.361)
 | 
|---|
| 161 |  S X=$$GET1^DIQ(409.35,SDWLIFTN_",",5,"Z","WP")
 | 
|---|
| 162 |  S SDWLI=0 F  S SDWLI=$O(WP(SDWLI)) Q:'SDWLI  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".4"_U_"COMMENTS"_U_WP(SDWLI,0)
 | 
|---|
| 163 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=".5"_U_"SENDING FACILITY TRANSFER ID"_U_SDWLIFTN
 | 
|---|
| 164 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=2_U_"TRANSMISSION DATE/TIME"_U_SDWLDTM
 | 
|---|
| 165 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=4_U_"WAIT LIST TYPE"_U_SDWLTY
 | 
|---|
| 166 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=5_U_"WAIT LIST TYPE EXTENSION"_U_$$GET1^DIQ(409.3,SDWLDA,4+SDWLTY)
 | 
|---|
| 167 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))=22_U_"DESIRED DATE OF APPOINTMENT"_U_TMP(409.3,SDWLDA_",",22,"I")
 | 
|---|
| 168 |  S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0))="991.01"_U_"INTEGRATION CONTROL NUMBER"_U_TMP(2,DFN_",",991.01,"I")
 | 
|---|
| 169 |  D ^XMD
 | 
|---|
| 170 |  ; Change status of transfer file to TRANSMITTED
 | 
|---|
| 171 |  S DIE=409.35,DA=SDWLIFTN,DR="3///T" D ^DIE
 | 
|---|
| 172 |  ; Update the EWL Disposition code
 | 
|---|
| 173 |  S DIE=409.3,DA=SDWLDA,DR="21///TR" D ^DIE
 | 
|---|
| 174 |  Q
 | 
|---|