| 1 | FSCRPCNC ;SLC/STAFF-NOIS RPC New Call ;9/6/98  22:02
 | 
|---|
| 2 |  ;;1.1;NOIS;;Sep 06, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | NEW(IN,OUT) ; from FSCRPX (RPCNewCall)
 | 
|---|
| 5 |  N CALLID,CALL,DATEO,FIELDS,OK,SITE K FIELDS
 | 
|---|
| 6 |  K ^TMP("FSC WP",$J)
 | 
|---|
| 7 |  D PROCESS(.FIELDS)
 | 
|---|
| 8 |  S SITE=+$G(FIELDS("SITE"))
 | 
|---|
| 9 |  S DATEO=+$G(FIELDS("DATEO"))
 | 
|---|
| 10 |  Q:'SITE  Q:'DATEO
 | 
|---|
| 11 |  D NEWCALL(SITE,DATEO,.CALLID,.CALL,.OK)
 | 
|---|
| 12 |  I 'OK Q
 | 
|---|
| 13 |  D FIELDS(CALL,.FIELDS)
 | 
|---|
| 14 |  S ^TMP("FSCRPC",$J,"OUTPUT",1)=+CALL_U_$$SHORT^FSCRPXUS(CALL,DUZ)
 | 
|---|
| 15 |  K ^TMP("FSC WP",$J)
 | 
|---|
| 16 |  Q
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 | NEWCALL(SITE,RDATE,CALLID,CALL,OK) ;
 | 
|---|
| 19 |  N DIC,DLAYGO,DR,EPTYPE,ISC,SITE0,X,Y K DIC
 | 
|---|
| 20 |  S OK=0
 | 
|---|
| 21 |  S SITE0=^FSC("SITE",SITE,0)
 | 
|---|
| 22 |  D CALLNUM^FSCUC(SITE0,RDATE,.CALLID,.OK)
 | 
|---|
| 23 |  I 'OK Q
 | 
|---|
| 24 |  S OK=0
 | 
|---|
| 25 |  S DIC=7100,DIC(0)="XL",DLAYGO=7100,X=CALLID
 | 
|---|
| 26 |  D ^DIC K DIC,DLAYGO
 | 
|---|
| 27 |  I Y<1 Q
 | 
|---|
| 28 |  I $$ACCESS^FSCU(DUZ,"SPEC") S EPTYPE=$O(^FSC("EPTYPE","B","SPECIALIST",0))
 | 
|---|
| 29 |  E  S EPTYPE=$O(^FSC("EPTYPE","B","NON-SPECIALIST",0))
 | 
|---|
| 30 |  S CALL=+Y,OK=1
 | 
|---|
| 31 |  S DR="2///`"_SITE_";10///"_RDATE_";120///NOW;5.2///`"_DUZ_";5.3///"_EPTYPE_";101///`"_CALL
 | 
|---|
| 32 |  S ISC=+$P($G(^FSC("SITE",SITE,0)),U,11) I ISC S DR=DR_";2.3///`"_ISC
 | 
|---|
| 33 |  D SETUP(CALL,"^FSCD(""CALL"",",.DR)
 | 
|---|
| 34 |  D MRE^FSCMR(DUZ,CALL)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | FIELDS(CALL,FIELDS) ;
 | 
|---|
| 38 |  N DR,STATUS
 | 
|---|
| 39 |  D DESC(CALL)
 | 
|---|
| 40 |  D NOTE(CALL)
 | 
|---|
| 41 |  S DR=""
 | 
|---|
| 42 |  I $L($G(FIELDS("SUBJECT"))) S DR=DR_";1///"_$$FIX^FSCRPCEC(FIELDS("SUBJECT"))
 | 
|---|
| 43 |  I $L($G(FIELDS("PHONE"))) S DR=DR_";2.2///"_$$FIX^FSCRPCEC(FIELDS("PHONE"))
 | 
|---|
| 44 |  I $L($G(FIELDS("PATCH"))) S DR=DR_";7///"_$$FIX^FSCRPCEC(FIELDS("PATCH"))
 | 
|---|
| 45 |  I $L($G(FIELDS("KEYWORDS"))) S DR=DR_";1.5///"_$$FIX^FSCRPCEC(FIELDS("KEYWORDS"))
 | 
|---|
| 46 |  I $L(DR)>100 D SETUP(CALL,"^FSCD(""CALL"",",.DR)
 | 
|---|
| 47 |  I $G(FIELDS("MOD")) S DR=DR_";3///`"_+FIELDS("MOD")
 | 
|---|
| 48 |  I $G(FIELDS("IRM")) S DR=DR_";2.1///`"_+FIELDS("IRM")
 | 
|---|
| 49 |  I $G(FIELDS("PRI")) S DR=DR_";6///`"_+FIELDS("PRI")
 | 
|---|
| 50 |  I $G(FIELDS("SPEC")) S DR=DR_";5///`"_+FIELDS("SPEC")
 | 
|---|
| 51 |  I $G(FIELDS("SPECD")) S DR=DR_";5.1///`"_+FIELDS("SPECD")
 | 
|---|
| 52 |  I $G(FIELDS("DEVSUB")) S DR=DR_";3.2///`"_+FIELDS("DEVSUB")
 | 
|---|
| 53 |  D SETUP(CALL,"^FSCD(""CALL"",",.DR)
 | 
|---|
| 54 |  S STATUS=+$G(FIELDS("STATUS"))
 | 
|---|
| 55 |  I STATUS=2 D
 | 
|---|
| 56 |  .S DR="81///`"_DUZ
 | 
|---|
| 57 |  .I $G(FIELDS("FUNC")) S DR=DR_";8///`"_+FIELDS("FUNC")
 | 
|---|
| 58 |  .I $G(FIELDS("TASK")) S DR=DR_";9///`"_+FIELDS("TASK")
 | 
|---|
| 59 |  .I $L($G(FIELDS("DATEC"))) S DR=DR_";82///"_FIELDS("DATEC")
 | 
|---|
| 60 |  .D SETUP(CALL,"^FSCD(""CALL"",",.DR)
 | 
|---|
| 61 |  .D RES(CALL)
 | 
|---|
| 62 |  D STATUS(CALL,STATUS)
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | SETUP(DA,DIE,DR) ;
 | 
|---|
| 66 |  N X,Y
 | 
|---|
| 67 |  I '$L(DR) Q
 | 
|---|
| 68 |  I $E(DR)=";" S DR=$E(DR,2,245)
 | 
|---|
| 69 |  L +^FSCD("CALL",DA):30 I '$T Q  ; *** needs ok
 | 
|---|
| 70 |  D ^DIE
 | 
|---|
| 71 |  L -^FSCD("CALL",DA)
 | 
|---|
| 72 |  D PICKUP^FSCES(DA)
 | 
|---|
| 73 |  S DR=""
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | STATUS(CALL,STATUS) ;
 | 
|---|
| 77 |  I STATUS=1 D
 | 
|---|
| 78 |  .D STATUS^FSCES(CALL,"",1)
 | 
|---|
| 79 |  .D UPDATE^FSCTASK(CALL)
 | 
|---|
| 80 |  E  I STATUS=3 D
 | 
|---|
| 81 |  .D STATUS^FSCES(CALL,"",1)
 | 
|---|
| 82 |  .D UPDATE^FSCTASK(CALL)
 | 
|---|
| 83 |  .D STATUS^FSCES(CALL,1,3)
 | 
|---|
| 84 |  .D UPDATE^FSCTASK(CALL)
 | 
|---|
| 85 |  E  I STATUS=2 D
 | 
|---|
| 86 |  .D STATUS^FSCES(CALL,"",1)
 | 
|---|
| 87 |  .D UPDATE^FSCTASK(CALL)
 | 
|---|
| 88 |  .D STATUS^FSCES(CALL,1,2)
 | 
|---|
| 89 |  .D UPDATE^FSCTASK(CALL)
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 | RES(CALL) ; from FSCRPCEC, FSCRPCEF
 | 
|---|
| 93 |  N CNT,LINE,LINECNT
 | 
|---|
| 94 |  I '$O(^TMP("FSC WP",$J,"RES",0)) Q
 | 
|---|
| 95 |  S (LINECNT,CNT)=0 F  S CNT=$O(^TMP("FSC WP",$J,"RES",CNT)) Q:CNT<1  S LINE=^(CNT) D
 | 
|---|
| 96 |  .S LINECNT=LINECNT+1
 | 
|---|
| 97 |  .S ^FSCD("CALL",CALL,80,LINECNT,0)=LINE
 | 
|---|
| 98 |  S ^FSCD("CALL",CALL,80,0)="^^"_LINECNT_U_LINECNT_U_DT_U
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | DESC(CALL) ; from FSCRPCEC, FSCRPCEF
 | 
|---|
| 102 |  N CNT,LINE,LINECNT
 | 
|---|
| 103 |  I '$O(^TMP("FSC WP",$J,"DESC",0)) Q
 | 
|---|
| 104 |  K ^FSCD("CALL",CALL,30)
 | 
|---|
| 105 |  S (LINECNT,CNT)=0 F  S CNT=$O(^TMP("FSC WP",$J,"DESC",CNT)) Q:CNT<1  S LINE=^(CNT) D
 | 
|---|
| 106 |  .S LINECNT=LINECNT+1
 | 
|---|
| 107 |  .S ^FSCD("CALL",CALL,30,LINECNT,0)=LINE
 | 
|---|
| 108 |  S ^FSCD("CALL",CALL,30,0)="^^"_LINECNT_U_LINECNT_U_DT_U
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | NOTE(CALL) ; from FSCRPCEC, FSCRPCEF
 | 
|---|
| 112 |  N CNT,LINE,NUM
 | 
|---|
| 113 |  I '$O(^TMP("FSC WP",$J,"NOTE",0)) Q
 | 
|---|
| 114 |  S NUM=$P(^FSCD("CALL",CALL,120),U,7)+1,$P(^(120),U,7)=NUM
 | 
|---|
| 115 |  S LINE="("_NUM_") "_$$FMTE^XLFDT($$NOW^XLFDT)
 | 
|---|
| 116 |  S LINE=$$SETSTR^VALM1($$VALUE^FSCGET(DUZ,7107.1,1),LINE,35,$L(LINE))
 | 
|---|
| 117 |  L +^FSCD("CALL",CALL,50):30 I '$T Q  ; *** needs ok
 | 
|---|
| 118 |  I '$D(^FSCD("CALL",CALL,50,0)) S ^(0)="^^0^0^"_DT_U
 | 
|---|
| 119 |  S CNT=1+$O(^FSCD("CALL",CALL,50,"A"),-1)
 | 
|---|
| 120 |  S $P(^FSCD("CALL",CALL,120),U,6)=CNT
 | 
|---|
| 121 |  S ^FSCD("CALL",CALL,50,CNT,0)=LINE
 | 
|---|
| 122 |  S LINE=0 F  S LINE=$O(^TMP("FSC WP",$J,"NOTE",LINE)) Q:LINE<1  S CNT=CNT+1,^FSCD("CALL",CALL,50,CNT,0)=^(LINE)
 | 
|---|
| 123 |  S CNT=CNT+1,^FSCD("CALL",CALL,50,CNT,0)=""
 | 
|---|
| 124 |  S $P(^FSCD("CALL",CALL,50,0),U,3,4)=CNT_U_CNT
 | 
|---|
| 125 |  L -^FSCD("CALL",CALL,50)
 | 
|---|
| 126 |  Q
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 | PROCESS(FIELDS) ; from FSCRPCEB, FSCRPCEC, FSCRPCEN, FSCRPCWP, FSCRPCWS
 | 
|---|
| 129 |  N CNT,LINE
 | 
|---|
| 130 |  S CNT=0 F  S CNT=$O(^TMP("FSCRPC",$J,"INPUT",CNT)) Q:CNT<1  S LINE=^(CNT) D  Q:CNT<1
 | 
|---|
| 131 |  .I '$L(LINE) Q
 | 
|---|
| 132 |  .I $E(LINE)'="{" S FIELDS($P(LINE,U))=$P(LINE,U,2,99) Q
 | 
|---|
| 133 |  .I LINE="{DESC}" D WP("DESC",.CNT) Q
 | 
|---|
| 134 |  .I LINE="{NOTE}" D WP("NOTE",.CNT) Q
 | 
|---|
| 135 |  .I LINE="{RES}" D WP("RES",.CNT) Q
 | 
|---|
| 136 |  .I LINE="{PNOTE}" D WP("PNOTE",.CNT) Q
 | 
|---|
| 137 |  Q
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 | WP(NODE,CNT) ;
 | 
|---|
| 140 |  N LINE,LINECNT
 | 
|---|
| 141 |  S LINECNT=0
 | 
|---|
| 142 |  F  S CNT=$O(^TMP("FSCRPC",$J,"INPUT",CNT)) Q:CNT<1  S LINE=^(CNT) Q:LINE="{{{}}}"  D
 | 
|---|
| 143 |  .S LINECNT=LINECNT+1
 | 
|---|
| 144 |  .S ^TMP("FSC WP",$J,NODE,LINECNT)=LINE
 | 
|---|
| 145 |  Q
 | 
|---|