Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: FSCNOTS

FSCNOTS.m

Go to the documentation of this file.
  1. FSCNOTS ;SLC/STAFF-NOIS Notification Send ;1/13/98 13:58
  1. ;;1.1;NOIS;;Sep 06, 1998
  1. ;
  1. NOTIFY(CALL) ; from FSCTASKU
  1. N ADDRESS,ARRAY,DA,DIK,EVENT,MAILMSG,METHOD,MSG,NOTIFY,NUM,OK,USER K ARRAY
  1. S NUM=0 F S NUM=$O(^FSCD("NOTIFY","B",CALL,NUM)) Q:NUM<1 D
  1. .S NOTIFY=^FSCD("NOTIFY",NUM,0)
  1. .D GET(NOTIFY,.USER,.METHOD,.EVENT,.ADDRESS)
  1. .D SEND(NOTIFY,CALL,EVENT,USER,.OK,.MSG) I OK D
  1. ..I METHOD="MAIL" D Q
  1. ...S MAILMSG=$S('$D(MAILMSG):MSG,1:$S(MSG["Status":MSG,1:MAILMSG))
  1. ...I $L(ADDRESS) S ARRAY(ADDRESS)="",ARRAY(ADDRESS,1)="I" Q
  1. ...S ARRAY(USER)="",ARRAY(USER,1)="I"
  1. ..I METHOD="ALERT" D ALERT(CALL,USER,MSG) Q
  1. .I EVENT="ADDED" S DA=NUM,DIK="^FSCD(""NOTIFY""," D ^DIK
  1. .I EVENT="CLOSED" S DA=NUM,DIK="^FSCD(""NOTIFY""," D ^DIK
  1. I $L($O(ARRAY(0))) D MAIL(CALL,.ARRAY,MAILMSG)
  1. Q
  1. ;
  1. GET(NOTIFY,USER,METHOD,EVENT,ADDRESS) ; from FSCTASKN
  1. N CALL,LIST,LOC S ADDRESS=""
  1. S CALL=$P(NOTIFY,U),LIST=$P(NOTIFY,U,2),LOC=$P(NOTIFY,U,3),USER=$P(NOTIFY,U,4),METHOD=$P(NOTIFY,U,5),EVENT=$P(NOTIFY,U,6)
  1. I USER S ADDRESS=$P($G(^FSC("SPEC",USER,0)),U,6) S:'$L(ADDRESS) ADDRESS=USER Q
  1. I LIST S USER=$P(^FSC("LIST",LIST,0),U,2),METHOD=$P(^(0),U,6),EVENT=$P(^(0),U,7),ADDRESS=$P($G(^FSC("SPEC",USER,0)),U,6) S:'$L(ADDRESS) ADDRESS=USER Q
  1. I LOC S USER=$P(^FSC("SITE",LOC,0),U,6),METHOD=$P(^(0),U,4),EVENT=$P(^(0),U,5),ADDRESS=$P(^(0),U,10) S:'$L(ADDRESS) ADDRESS=USER
  1. Q
  1. ;
  1. SEND(NOTIFY,CALL,EVENT,USER,OK,MSG) ; (notify zero node,call,event,user for notification,ok,msg) returns ok to send notification and msg
  1. N EDITTIME,EDITUSER,FROM,LOG,STATTIME,TO,USERFLAG S OK=0,MSG=""
  1. S EDITTIME=$P(^FSCD("CALL",CALL,120),U,4),EDITUSER=$P(^(120),U,5),STATTIME=$P(^(120),U,2),FROM=$P(^(120),U,8),TO=$P(^(0),U,24)
  1. I EDITUSER=USER Q
  1. I 'USER Q
  1. S USERFLAG=$S($$ACCESS^FSCU(EDITUSER,"SPEC"):"",1:"<non Specialist> ")
  1. I EVENT="EDITED" D Q
  1. .S OK=1,MSG="Edited by "_USERFLAG_$$VALUE^FSCGET(EDITUSER,7100,124)_" on "_$P($$FMTE^XLFDT(EDITTIME),":",1,2)_"."
  1. I EVENT="STATUS CHANGED",EDITTIME=STATTIME D Q
  1. .S FROM=$$VALUE^FSCGET(FROM,7100,4.6),TO=$$VALUE^FSCGET(TO,7100,4.5)
  1. .S OK=1,MSG="Status changed "_$S($L(FROM):"from "_FROM_" ",1:"")_"to "_TO_" by "_USERFLAG_$$VALUE^FSCGET(EDITUSER,7100,124)_" on "_$P($$FMTE^XLFDT(EDITTIME),":",1,2)_"."
  1. I EVENT="ADDED" D Q
  1. .S OK=1,MSG="Call added to "_$P($G(^FSC("LIST",+$P(NOTIFY,U,2),0)),U)_" "_$$FMTE^XLFDT(DT)_"."
  1. I EVENT="CLOSED" D Q
  1. .S OK=1,MSG="Call Closed by "_USERFLAG_$$VALUE^FSCGET(EDITUSER,7100,124)_" on "_$$FMTE^XLFDT(DT)_"."
  1. Q
  1. ;
  1. MAIL(CALL,XMY,MAILMSG) ; from FSCTASKN
  1. N XMDUZ,XMSUB,XMTEXT K ^TMP("FSC MAIL DETAIL",$J)
  1. S XMDUZ="NOIS Notification",XMSUB=$$SHORT^FSCGETS(CALL,"NOIS:")
  1. I XMSUB[U S XMSUB=$$REPLACE^FSCRU(XMSUB,U,"~U~")
  1. D
  1. .I $D(^XTMP("FSC CALL DETAIL",CALL)) S XMTEXT="^XTMP(""FSC CALL DETAIL"","_CALL_"," Q
  1. .S ^TMP("FSC MAIL DETAIL",$J,0,1,0)=MAILMSG
  1. .S ^TMP("FSC MAIL DETAIL",$J,0,2,0)=" "
  1. .D BUILD^FSCFORM(0,CALL,"DETAIL",2,"FSC MAIL ") S XMTEXT="^TMP(""FSC MAIL DETAIL"",$J,0,"
  1. D ^XMD
  1. K ^TMP("FSC MAIL DETAIL",$J)
  1. Q
  1. ;
  1. ALERT(CALL,USER,MSG) ; from FSCTASKN
  1. I '$L(USER) Q
  1. N NUM,ON,XQA,XQADATA,XQAID,XQAMSG,XAQROU K XQA S ON=1
  1. I '$G(^FSCD("ALERT","ALERT",USER)) S ON=0
  1. S NUM=$G(^FSCD("ALERT","AUC",USER,CALL))
  1. D
  1. .I NUM S $P(^FSCD("ALERT",NUM,0),U,3)=MSG Q
  1. .D NEWALERT(USER,CALL,MSG)
  1. I ON Q
  1. S XQA(USER)="",XQADATA="",XQAMSG="NOIS Calls",XQAROU="USER^FSCNAR",XQAID="FSC-A"
  1. D SETUP^XQALERT
  1. Q
  1. ;
  1. NEWALERT(USER,CALL,MSG,NUM,DELIVERY) ; from FSCNAS, FSCRPCN
  1. N DA,DIK
  1. S CALL=$G(CALL),MSG=$G(MSG),DELIVERY=$G(DELIVERY)
  1. S NUM=1+$P(^FSCD("ALERT",0),U,3)
  1. L +^FSCD("ALERT",0):30 I '$T Q ; *** needs ok
  1. F Q:'$D(^FSCD("ALERT",NUM,0)) S NUM=NUM+1
  1. I DELIVERY S ^FSCD("ALERT",NUM,0)=USER_U_CALL_U_MSG_"^^"_DELIVERY
  1. E S ^FSCD("ALERT",NUM,0)=USER_U_CALL_U_MSG_U_$$NOW^XLFDT
  1. S $P(^FSCD("ALERT",0),U,3)=NUM,$P(^(0),U,4)=$P(^(0),U,4)+1
  1. L -^FSCD("ALERT",0)
  1. S DIK="^FSCD(""ALERT"",",DA=NUM D IX1^DIK
  1. Q