- SDWLIFT ;IOFO BAY PINES/OG - INTER-FACILITY TRANSFER: CONTROL RESPONSES;Compiled March 29, 2005 15:36:25 ; Compiled January 25, 2007 09:47:44 ; Compiled April 16, 2007 10:12:05
- ;;5.3;Scheduling;**415,446**;AUG 13 1993;Build 77
- ;
- ;******************************************************************
- ; CHANGE LOG
- ;
- ; DATE PATCH DESCRIPTION
- ; ---- ----- -----------
- ; 12/12/05 SD*5.3*446 Enhancements
- ;
- MSGSVR ;xfer message server
- ;variables provided by server XQ*
- ;XQSOP : server option name
- ;XQMSG : server request message number
- ;XQSND : DUZ of sender
- ;XQSUB : subject
- ;SDMSG : local array of message lines
- N SDWLMSG
- D
- .I $E(XQSUB,1,3)="RE:" Q ;quit for messages that are replies to original
- .I XQSUB="SDWL TRANSFER REQUEST" D MSGSVRRQ^SDWLIFT0 Q ;transfer request
- .I XQSUB="SDWL TRANSFER ACKNOWLEDGEMENT" D MSGSVRAR Q ;acknowledge request from receiving facility
- .I XQSUB="SDWL TRANSFER REMOVAL REQUEST" D MSGSVRRM^SDWLIFT0 Q ;remove request
- .I XQSUB="SDWL TRANSFER REMOVAL REQUEST ACKNOWLEDGEMENT" D MSGSVRRA Q ;remove request acknowledgement
- .I XQSUB="SDWL TRANSFER ACCEPTANCE" D MSGSVRAC Q ;transaction accepted.
- .I XQSUB="SDWL TRANSFER REJECTION" D MSGSVRRJ Q ;transaction rejected.
- .I XQSUB="SDWL TRANSFER STATUS CHANGE" D MSGSVRSC Q ;status changed
- .S SDWLMSG(1,0)="Message received by S.SDWL-XFER-SERVER option has an unrecognized message subject"
- .D ERR(.SDWLMSG)
- .Q
- K XQMSG,XQSND,XQSUB
- Q
- MSGSVRAR ;Acknowledge request
- N DIE,DA,DR,DIC,D,X,SDWLX,SDWLI,SDWLMSG,TMP,SDWLDA,SDWLIST
- D RMSG
- S SDWLI=$O(SDWLMSG(1),-1) ;There's stuff between 0 and 1
- F S SDWLI=$O(SDWLMSG(SDWLI)) Q:'SDWLI S SDWLX($P(SDWLMSG(SDWLI,0),U))=$P(SDWLMSG(SDWLI,0),U,3)
- S DIC(0)="",DIC="^SDWL(409.35,",X="`"_SDWLX(.5) D ^DIC
- ;If the transfer entry does not exist or does not belong to this request, send a removal request back
- I Y=-1!(SDWLX(2)'=$$GET1^DIQ(409.35,SDWLX(.5),2,"I")) D SEND^SDWLIFT4(SDWLX(6),$$GET1^DIQ(4,$$FIND1^DIC(4,"","X",SDWLX(1),"D"),60)) Q
- ; if this EWL entry is the subject of a transfer, close it and send message back to requesting facility
- S SDWLIST="R",SDWLDA=$P(Y,U,2)
- I $D(^SDWL(409.36,"C",SDWLDA)) S SDWLIST="C" D
- .N DA,SDWLDUZ
- .S DIE="^SDWL(409.3,"
- .S DA=SDWLDA,SDWLDUZ=$$GET1^DIQ(409.35,SDWLIFTN,4,"I")
- .S DR="21////^S X=""TR"";19////^S X=DT;20////^S X=SDWLDUZ;23////^S X=""C"""
- .D ^DIE
- .S DIE="^SDWL(409.36,",DA=$O(^SDWL(409.36,"C",SDWLDA,""))
- .S DR="1///""R"";2///"_$$GET1^DIQ(409.35,SDWLIFTN,1,"I") D ^DIE
- .D SENDST^SDWLIFT6(DA)
- .Q
- ;finally, set the transfer request file.
- S DIE="^SDWL(409.35,",DA=SDWLX(.5),DR="3///"_SDWLIST_";6///"_SDWLX(6) D ^DIE Q
- Q
- MSGSVRRA ;Removal acknowledgement
- N SDWLX,SDWLNM,SDWLIFTN,SDWLSTN,SDWLINST,DIE,DA,DR,XMY,XMSUB,XMTEXT,XMDUZ,XMMG
- D RMSG
- S DIE=409.35,DA=$P(SDWLMSG(1,0),U,3)
- D GETS^DIQ(DIE,DA_",",".01;6",,"TMP")
- Q:'$D(TMP(DIE,DA_",",.01)) ;Already removed
- S SDWLNM=TMP(DIE,DA_",",.01) ;Patient name
- S SDWLIFTN=TMP(DIE,DA_",",6) ;Receiving facility's request id
- S SDWLSTN=$$GET1^DIQ(DIE,DA,1)
- S SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D")
- S DA=$P(SDWLMSG(1,0),U,3),DIK="^SDWL(409.35," D ^DIK
- S XMY("G.SDWL-TRANSFER-ADMIN")="",XMSUB="INTER-FACILITY XFER: Removal of cancelled request",XMTEXT="SDWLX(",XMDUZ="POSTMASTER"
- S SDWLX(0)=1,SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been recalled."
- D COL80(.SDWLX)
- S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="",SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="The details have been removed from the system."
- D ^XMD
- I $G(XMMG)["Error" S SDWLMSG(0)=1,SDWLMSG(1,0)="Message aborted with the following error: "_XMMG D ERR(.SDWLMSG)
- Q
- MSGSVRAC ;Acceptance notification.
- N TMP,DIE,DA,DR,XMY,XMSUB,XMTEXT,XMDUZ,XMMG,SDWLDUZ,SDWLINST,SDWLNM,SDWLX,SDWLTXT,SDWLMSG
- D RMSG
- S DIE=409.35,DA=$P(SDWLMSG(1,0),U,3),DR="3///A;7///"_$P(SDWLMSG(2,0),U,3) D ^DIE
- S SDWLSTN=$$GET1^DIQ(409.35,DA,1),SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D"),SDWLNM=$$GET1^DIQ(409.35,DA,.01)
- D GETS^DIQ(409.35,DA,".01;4","I","TMP")
- S SDWLDUZ=TMP(409.35,DA_",",4,"I"),DIE("NO^")="NO EDITING" ;Disposition the EWL entry.
- S DIE="^SDWL(409.3,",DA=TMP(409.35,DA_",",.01,"I"),DR="19////^S X=DT;20////^S X=SDWLDUZ;21////^S X=""TR"";23////^S X=""C""" D ^DIE
- S XMY("G.SDWL-TRANSFER-ADMIN")="",XMSUB="INTER-FACILITY XFER: Request accepted",XMTEXT="SDWLX(",XMDUZ="POSTMASTER"
- S SDWLX(0)=1,SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been accepted by the receiving facility."
- D COL80(.SDWLX)
- S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="",SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in SDWL TRANSFER REQUEST"
- D ^XMD
- I $G(XMMG)["Error" S SDWLMSG(0)=1,SDWLMSG(1,0)="Message aborted with the following error: "_XMMG D ERR(.SDWLMSG)
- Q
- MSGSVRRJ ;Rejection notification.
- N DIE,DA,DR,SDWLX,SDWLINST,SDWLNM,SDWLTXT,SDWLMSG,XMY,XMSUB,XMTEXT,XMDUZ,XMMG
- D RMSG
- S DIE=409.35,DA=$P(SDWLMSG(1,0),U,3),SDWLSTN=$$GET1^DIQ(DIE,DA,1),SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D"),SDWLNM=$$GET1^DIQ(DIE,DA,.01)
- S DR="3///X" D ^DIE
- S XMY("G.SDWL-TRANSFER-ADMIN")=""
- S XMSUB="INTER-FACILITY XFER: Request declined",XMTEXT="SDWLX(",XMDUZ="POSTMASTER"
- S SDWLX(0)=1,SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been rejected by the receiving facility."
- D COL80(.SDWLX)
- S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="",SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in, SDWL TRANSFER REQUEST"
- D ^XMD
- I $G(XMMG)["Error" S SDWLMSG(0)=1,SDWLMSG(1,0)="Message aborted with the following error: "_XMMG D ERR(.SDWLMSG)
- Q
- MSGSVRSC ;Status changed
- N SDWLDIS,SDWLDUZ,SDWLIFTN,SDWLINST,SDWLMSG,SDWLST35,SDWLST36,SDWLSTN,SDWLX
- D RMSG
- S SDWLST36=$P(SDWLMSG(2,0),U,3),SDWLST35=$S(SDWLST36="P":"R",SDWLST36="C":"A",SDWLST36="R":"X",1:SDWLST36)
- I SDWLST36="T" ;?
- S DIE=409.35,(SDWLIFTN,DA)=$P(SDWLMSG(1,0),U,3),DR="3///"_SDWLST35_";7///"_$P(SDWLMSG(3,0),U,3) D ^DIE
- S SDWLSTN=$$GET1^DIQ(409.35,SDWLIFTN,1),SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D"),SDWLNM=$$GET1^DIQ(409.35,SDWLIFTN,.01)
- S SDWLDIS=$P(SDWLMSG(5,0),U,3)
- S XMY("G.SDWL-TRANSFER-ADMIN")=""
- S XMSUB="INTER-FACILITY XFER: Transfer status change",XMTEXT="SDWLX(",XMDUZ="POSTMASTER"
- S SDWLX(0)=1,SDWLX(SDWLX(0),0)="The the status of the transfer of "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has changed."
- S SDWLX(0)=2,SDWLX(SDWLX(0),0)="It is now "_$$GET1^DIQ(409.35,SDWLIFTN,3)_"."
- D COL80(.SDWLX)
- S SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="",SDWLX(0)=SDWLX(0)+1,SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in, SDWL TRANSFER REQUEST"
- D ^XMD
- I $G(XMMG)["Error" S SDWLMSG(0)=1,SDWLMSG(1,0)="Message aborted with the following error: "_XMMG D ERR(.SDWLMSG)
- Q:SDWLST35'="A"
- ; Close EWL entry
- S DIE="^SDWL(409.3,"
- S DA=$$GET1^DIQ(409.35,SDWLIFTN,.01,"I"),SDWLDUZ=$$GET1^DIQ(409.35,SDWLIFTN,4,"I")
- S DR="21////^S X=SDWLDIS;19////^S X=DT;20////^S X=SDWLDUZ;23////^S X=""C"""
- D ^DIE
- Q
- COL80(SDWLX) ;Stop lines going over 80 columns.
- N SDWLI,COLS
- S COLS=79
- F SDWLI=1:1 Q:'$D(SDWLX(SDWLI)) D:$L(SDWLX(SDWLI,0))>COLS
- .N SDWLF,SDWLF0,SDWLX0
- .S SDWLF=0
- .F S SDWLF=$F(SDWLX(SDWLI,0)," ",SDWLF) Q:SDWLF>COLS!'SDWLF S SDWLF0=SDWLF
- .S:'$D(SDWLX(SDWLI+1)) SDWLX(0)=SDWLI+1
- .S SDWLX0=$G(SDWLX(SDWLI+1,0))
- .S SDWLX(SDWLI+1,0)=$E(SDWLX(SDWLI,0),SDWLF0,$L(SDWLX(SDWLI,0)))
- .S:SDWLX0'="" SDWLX(SDWLI+1,0)=SDWLX(SDWLI+1,0)_" "_SDWLX0
- .S SDWLX(SDWLI,0)=$E(SDWLX(SDWLI,0),1,SDWLF0-2)
- .Q
- Q
- RMSG ;load message into local array
- M SDWLMSG=^XMB(3.9,XQMSG,2)
- Q
- ERR(SDWLX) ;send error message to developer
- N XMSUB,XMY,XMTEXT,XMDUZ,SDWLMSG,SDWLI
- S XMY("G.SDWL-TRANSFER-ADMIN")="",XMSUB="Error from S.SDWL-XFER Server",XMTEXT="SDWLMSG(",XMDUZ="POSTMASTER"
- S SDWLMSG(1,0)=" Forum Message #: "_XQMSG
- S SDWLMSG(2,0)="Sender's Mail Address: "_XQSND
- S SDWLMSG(3,0)=" Subject: "_XQSUB
- S SDWLMSG(4,0)="",SDWLMSG(0)=4
- F SDWLI=1:1:SDWLX(0) S SDWLMSG(0)=SDWLMSG(0)+1,SDWLMSG(SDWLMSG(0),0)=SDWLX(SDWLI,0)
- D ^XMD
- Q
- GETTN(SDWLINFO) ;Get transfer id.
- N LAST,DIR,Y
- S LAST=$O(SDWLINFO(":"),-1)
- I 'LAST S DIR(0)="Y",DIR("A")="No entries. OK",DIR("B")="YES" D ^DIR Q 0
- I LAST=1 S Y=1 ;If there is only one, don't ask.
- E S DIR(0)="L^1:"_LAST,DIR("A")="Which entry?" D ^DIR
- Q $G(SDWLINFO(+Y,1),0)
- EXMNU Q
- ENMNU Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDWLIFT 8684 printed Feb 19, 2025@00:29:15 Page 2
- SDWLIFT ;IOFO BAY PINES/OG - INTER-FACILITY TRANSFER: CONTROL RESPONSES;Compiled March 29, 2005 15:36:25 ; Compiled January 25, 2007 09:47:44 ; Compiled April 16, 2007 10:12:05
- +1 ;;5.3;Scheduling;**415,446**;AUG 13 1993;Build 77
- +2 ;
- +3 ;******************************************************************
- +4 ; CHANGE LOG
- +5 ;
- +6 ; DATE PATCH DESCRIPTION
- +7 ; ---- ----- -----------
- +8 ; 12/12/05 SD*5.3*446 Enhancements
- +9 ;
- MSGSVR ;xfer message server
- +1 ;variables provided by server XQ*
- +2 ;XQSOP : server option name
- +3 ;XQMSG : server request message number
- +4 ;XQSND : DUZ of sender
- +5 ;XQSUB : subject
- +6 ;SDMSG : local array of message lines
- +7 NEW SDWLMSG
- +8 Begin DoDot:1
- +9 ;quit for messages that are replies to original
- IF $EXTRACT(XQSUB,1,3)="RE:"
- QUIT
- +10 ;transfer request
- IF XQSUB="SDWL TRANSFER REQUEST"
- DO MSGSVRRQ^SDWLIFT0
- QUIT
- +11 ;acknowledge request from receiving facility
- IF XQSUB="SDWL TRANSFER ACKNOWLEDGEMENT"
- DO MSGSVRAR
- QUIT
- +12 ;remove request
- IF XQSUB="SDWL TRANSFER REMOVAL REQUEST"
- DO MSGSVRRM^SDWLIFT0
- QUIT
- +13 ;remove request acknowledgement
- IF XQSUB="SDWL TRANSFER REMOVAL REQUEST ACKNOWLEDGEMENT"
- DO MSGSVRRA
- QUIT
- +14 ;transaction accepted.
- IF XQSUB="SDWL TRANSFER ACCEPTANCE"
- DO MSGSVRAC
- QUIT
- +15 ;transaction rejected.
- IF XQSUB="SDWL TRANSFER REJECTION"
- DO MSGSVRRJ
- QUIT
- +16 ;status changed
- IF XQSUB="SDWL TRANSFER STATUS CHANGE"
- DO MSGSVRSC
- QUIT
- +17 SET SDWLMSG(1,0)="Message received by S.SDWL-XFER-SERVER option has an unrecognized message subject"
- +18 DO ERR(.SDWLMSG)
- +19 QUIT
- End DoDot:1
- +20 KILL XQMSG,XQSND,XQSUB
- +21 QUIT
- MSGSVRAR ;Acknowledge request
- +1 NEW DIE,DA,DR,DIC,D,X,SDWLX,SDWLI,SDWLMSG,TMP,SDWLDA,SDWLIST
- +2 DO RMSG
- +3 ;There's stuff between 0 and 1
- SET SDWLI=$ORDER(SDWLMSG(1),-1)
- +4 FOR
- SET SDWLI=$ORDER(SDWLMSG(SDWLI))
- if 'SDWLI
- QUIT
- SET SDWLX($PIECE(SDWLMSG(SDWLI,0),U))=$PIECE(SDWLMSG(SDWLI,0),U,3)
- +5 SET DIC(0)=""
- SET DIC="^SDWL(409.35,"
- SET X="`"_SDWLX(.5)
- DO ^DIC
- +6 ;If the transfer entry does not exist or does not belong to this request, send a removal request back
- +7 IF Y=-1!(SDWLX(2)'=$$GET1^DIQ(409.35,SDWLX(.5),2,"I"))
- DO SEND^SDWLIFT4(SDWLX(6),$$GET1^DIQ(4,$$FIND1^DIC(4,"","X",SDWLX(1),"D"),60))
- QUIT
- +8 ; if this EWL entry is the subject of a transfer, close it and send message back to requesting facility
- +9 SET SDWLIST="R"
- SET SDWLDA=$PIECE(Y,U,2)
- +10 IF $DATA(^SDWL(409.36,"C",SDWLDA))
- SET SDWLIST="C"
- Begin DoDot:1
- +11 NEW DA,SDWLDUZ
- +12 SET DIE="^SDWL(409.3,"
- +13 SET DA=SDWLDA
- SET SDWLDUZ=$$GET1^DIQ(409.35,SDWLIFTN,4,"I")
- +14 SET DR="21////^S X=""TR"";19////^S X=DT;20////^S X=SDWLDUZ;23////^S X=""C"""
- +15 DO ^DIE
- +16 SET DIE="^SDWL(409.36,"
- SET DA=$ORDER(^SDWL(409.36,"C",SDWLDA,""))
- +17 SET DR="1///""R"";2///"_$$GET1^DIQ(409.35,SDWLIFTN,1,"I")
- DO ^DIE
- +18 DO SENDST^SDWLIFT6(DA)
- +19 QUIT
- End DoDot:1
- +20 ;finally, set the transfer request file.
- +21 SET DIE="^SDWL(409.35,"
- SET DA=SDWLX(.5)
- SET DR="3///"_SDWLIST_";6///"_SDWLX(6)
- DO ^DIE
- QUIT
- +22 QUIT
- MSGSVRRA ;Removal acknowledgement
- +1 NEW SDWLX,SDWLNM,SDWLIFTN,SDWLSTN,SDWLINST,DIE,DA,DR,XMY,XMSUB,XMTEXT,XMDUZ,XMMG
- +2 DO RMSG
- +3 SET DIE=409.35
- SET DA=$PIECE(SDWLMSG(1,0),U,3)
- +4 DO GETS^DIQ(DIE,DA_",",".01;6",,"TMP")
- +5 ;Already removed
- if '$DATA(TMP(DIE,DA_",",.01))
- QUIT
- +6 ;Patient name
- SET SDWLNM=TMP(DIE,DA_",",.01)
- +7 ;Receiving facility's request id
- SET SDWLIFTN=TMP(DIE,DA_",",6)
- +8 SET SDWLSTN=$$GET1^DIQ(DIE,DA,1)
- +9 SET SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D")
- +10 SET DA=$PIECE(SDWLMSG(1,0),U,3)
- SET DIK="^SDWL(409.35,"
- DO ^DIK
- +11 SET XMY("G.SDWL-TRANSFER-ADMIN")=""
- SET XMSUB="INTER-FACILITY XFER: Removal of cancelled request"
- SET XMTEXT="SDWLX("
- SET XMDUZ="POSTMASTER"
- +12 SET SDWLX(0)=1
- SET SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been recalled."
- +13 DO COL80(.SDWLX)
- +14 SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)=""
- SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)="The details have been removed from the system."
- +15 DO ^XMD
- +16 IF $GET(XMMG)["Error"
- SET SDWLMSG(0)=1
- SET SDWLMSG(1,0)="Message aborted with the following error: "_XMMG
- DO ERR(.SDWLMSG)
- +17 QUIT
- MSGSVRAC ;Acceptance notification.
- +1 NEW TMP,DIE,DA,DR,XMY,XMSUB,XMTEXT,XMDUZ,XMMG,SDWLDUZ,SDWLINST,SDWLNM,SDWLX,SDWLTXT,SDWLMSG
- +2 DO RMSG
- +3 SET DIE=409.35
- SET DA=$PIECE(SDWLMSG(1,0),U,3)
- SET DR="3///A;7///"_$PIECE(SDWLMSG(2,0),U,3)
- DO ^DIE
- +4 SET SDWLSTN=$$GET1^DIQ(409.35,DA,1)
- SET SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D")
- SET SDWLNM=$$GET1^DIQ(409.35,DA,.01)
- +5 DO GETS^DIQ(409.35,DA,".01;4","I","TMP")
- +6 ;Disposition the EWL entry.
- SET SDWLDUZ=TMP(409.35,DA_",",4,"I")
- SET DIE("NO^")="NO EDITING"
- +7 SET DIE="^SDWL(409.3,"
- SET DA=TMP(409.35,DA_",",.01,"I")
- SET DR="19////^S X=DT;20////^S X=SDWLDUZ;21////^S X=""TR"";23////^S X=""C"""
- DO ^DIE
- +8 SET XMY("G.SDWL-TRANSFER-ADMIN")=""
- SET XMSUB="INTER-FACILITY XFER: Request accepted"
- SET XMTEXT="SDWLX("
- SET XMDUZ="POSTMASTER"
- +9 SET SDWLX(0)=1
- SET SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been accepted by the receiving facility."
- +10 DO COL80(.SDWLX)
- +11 SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)=""
- SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in SDWL TRANSFER REQUEST"
- +12 DO ^XMD
- +13 IF $GET(XMMG)["Error"
- SET SDWLMSG(0)=1
- SET SDWLMSG(1,0)="Message aborted with the following error: "_XMMG
- DO ERR(.SDWLMSG)
- +14 QUIT
- MSGSVRRJ ;Rejection notification.
- +1 NEW DIE,DA,DR,SDWLX,SDWLINST,SDWLNM,SDWLTXT,SDWLMSG,XMY,XMSUB,XMTEXT,XMDUZ,XMMG
- +2 DO RMSG
- +3 SET DIE=409.35
- SET DA=$PIECE(SDWLMSG(1,0),U,3)
- SET SDWLSTN=$$GET1^DIQ(DIE,DA,1)
- SET SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D")
- SET SDWLNM=$$GET1^DIQ(DIE,DA,.01)
- +4 SET DR="3///X"
- DO ^DIE
- +5 SET XMY("G.SDWL-TRANSFER-ADMIN")=""
- +6 SET XMSUB="INTER-FACILITY XFER: Request declined"
- SET XMTEXT="SDWLX("
- SET XMDUZ="POSTMASTER"
- +7 SET SDWLX(0)=1
- SET SDWLX(SDWLX(0),0)="The request to transfer "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has been rejected by the receiving facility."
- +8 DO COL80(.SDWLX)
- +9 SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)=""
- SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in, SDWL TRANSFER REQUEST"
- +10 DO ^XMD
- +11 IF $GET(XMMG)["Error"
- SET SDWLMSG(0)=1
- SET SDWLMSG(1,0)="Message aborted with the following error: "_XMMG
- DO ERR(.SDWLMSG)
- +12 QUIT
- MSGSVRSC ;Status changed
- +1 NEW SDWLDIS,SDWLDUZ,SDWLIFTN,SDWLINST,SDWLMSG,SDWLST35,SDWLST36,SDWLSTN,SDWLX
- +2 DO RMSG
- +3 SET SDWLST36=$PIECE(SDWLMSG(2,0),U,3)
- SET SDWLST35=$SELECT(SDWLST36="P":"R",SDWLST36="C":"A",SDWLST36="R":"X",1:SDWLST36)
- +4 ;?
- IF SDWLST36="T"
- +5 SET DIE=409.35
- SET (SDWLIFTN,DA)=$PIECE(SDWLMSG(1,0),U,3)
- SET DR="3///"_SDWLST35_";7///"_$PIECE(SDWLMSG(3,0),U,3)
- DO ^DIE
- +6 SET SDWLSTN=$$GET1^DIQ(409.35,SDWLIFTN,1)
- SET SDWLINST=$$FIND1^DIC(4,"","X",SDWLSTN,"D")
- SET SDWLNM=$$GET1^DIQ(409.35,SDWLIFTN,.01)
- +7 SET SDWLDIS=$PIECE(SDWLMSG(5,0),U,3)
- +8 SET XMY("G.SDWL-TRANSFER-ADMIN")=""
- +9 SET XMSUB="INTER-FACILITY XFER: Transfer status change"
- SET XMTEXT="SDWLX("
- SET XMDUZ="POSTMASTER"
- +10 SET SDWLX(0)=1
- SET SDWLX(SDWLX(0),0)="The the status of the transfer of "_SDWLNM_" to "_$$GET1^DIQ(4,SDWLINST,.01)_" ("_SDWLSTN_") has changed."
- +11 SET SDWLX(0)=2
- SET SDWLX(SDWLX(0),0)="It is now "_$$GET1^DIQ(409.35,SDWLIFTN,3)_"."
- +12 DO COL80(.SDWLX)
- +13 SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)=""
- SET SDWLX(0)=SDWLX(0)+1
- SET SDWLX(SDWLX(0),0)="The status has been updated and can be viewed in, SDWL TRANSFER REQUEST"
- +14 DO ^XMD
- +15 IF $GET(XMMG)["Error"
- SET SDWLMSG(0)=1
- SET SDWLMSG(1,0)="Message aborted with the following error: "_XMMG
- DO ERR(.SDWLMSG)
- +16 if SDWLST35'="A"
- QUIT
- +17 ; Close EWL entry
- +18 SET DIE="^SDWL(409.3,"
- +19 SET DA=$$GET1^DIQ(409.35,SDWLIFTN,.01,"I")
- SET SDWLDUZ=$$GET1^DIQ(409.35,SDWLIFTN,4,"I")
- +20 SET DR="21////^S X=SDWLDIS;19////^S X=DT;20////^S X=SDWLDUZ;23////^S X=""C"""
- +21 DO ^DIE
- +22 QUIT
- COL80(SDWLX) ;Stop lines going over 80 columns.
- +1 NEW SDWLI,COLS
- +2 SET COLS=79
- +3 FOR SDWLI=1:1
- if '$DATA(SDWLX(SDWLI))
- QUIT
- if $LENGTH(SDWLX(SDWLI,0))>COLS
- Begin DoDot:1
- +4 NEW SDWLF,SDWLF0,SDWLX0
- +5 SET SDWLF=0
- +6 FOR
- SET SDWLF=$FIND(SDWLX(SDWLI,0)," ",SDWLF)
- if SDWLF>COLS!'SDWLF
- QUIT
- SET SDWLF0=SDWLF
- +7 if '$DATA(SDWLX(SDWLI+1))
- SET SDWLX(0)=SDWLI+1
- +8 SET SDWLX0=$GET(SDWLX(SDWLI+1,0))
- +9 SET SDWLX(SDWLI+1,0)=$EXTRACT(SDWLX(SDWLI,0),SDWLF0,$LENGTH(SDWLX(SDWLI,0)))
- +10 if SDWLX0'=""
- SET SDWLX(SDWLI+1,0)=SDWLX(SDWLI+1,0)_" "_SDWLX0
- +11 SET SDWLX(SDWLI,0)=$EXTRACT(SDWLX(SDWLI,0),1,SDWLF0-2)
- +12 QUIT
- End DoDot:1
- +13 QUIT
- RMSG ;load message into local array
- +1 MERGE SDWLMSG=^XMB(3.9,XQMSG,2)
- +2 QUIT
- ERR(SDWLX) ;send error message to developer
- +1 NEW XMSUB,XMY,XMTEXT,XMDUZ,SDWLMSG,SDWLI
- +2 SET XMY("G.SDWL-TRANSFER-ADMIN")=""
- SET XMSUB="Error from S.SDWL-XFER Server"
- SET XMTEXT="SDWLMSG("
- SET XMDUZ="POSTMASTER"
- +3 SET SDWLMSG(1,0)=" Forum Message #: "_XQMSG
- +4 SET SDWLMSG(2,0)="Sender's Mail Address: "_XQSND
- +5 SET SDWLMSG(3,0)=" Subject: "_XQSUB
- +6 SET SDWLMSG(4,0)=""
- SET SDWLMSG(0)=4
- +7 FOR SDWLI=1:1:SDWLX(0)
- SET SDWLMSG(0)=SDWLMSG(0)+1
- SET SDWLMSG(SDWLMSG(0),0)=SDWLX(SDWLI,0)
- +8 DO ^XMD
- +9 QUIT
- GETTN(SDWLINFO) ;Get transfer id.
- +1 NEW LAST,DIR,Y
- +2 SET LAST=$ORDER(SDWLINFO(":"),-1)
- +3 IF 'LAST
- SET DIR(0)="Y"
- SET DIR("A")="No entries. OK"
- SET DIR("B")="YES"
- DO ^DIR
- QUIT 0
- +4 ;If there is only one, don't ask.
- IF LAST=1
- SET Y=1
- +5 IF '$TEST
- SET DIR(0)="L^1:"_LAST
- SET DIR("A")="Which entry?"
- DO ^DIR
- +6 QUIT $GET(SDWLINFO(+Y,1),0)
- EXMNU QUIT
- ENMNU QUIT