1 | FSCES ;SLC/STAFF-NOIS Edit Status ;9/6/98 20:38
|
---|
2 | ;;1.1;NOIS;;Sep 06, 1998
|
---|
3 | ;
|
---|
4 | STATUS(CALL,OLD,NEW,REOPEN) ; from FSCEB, FSCED, FSCEL, FSCELID, FSCELSNS, FSCLMPE1, FSCLMPES, FSCRPCEC, FSCRPCEF, FSCRPCF, FSCRPCNC
|
---|
5 | Q:'$G(CALL) Q:'$L($G(NEW))
|
---|
6 | S OLD=$G(OLD),REOPEN=+$G(REOPEN)
|
---|
7 | N DEV,SUP
|
---|
8 | D STATNEW(NEW,.SUP,.DEV)
|
---|
9 | D CALL(CALL,OLD,NEW,REOPEN)
|
---|
10 | Q
|
---|
11 | ;
|
---|
12 | CALL(CALL,OLD,NEW,REOPEN) ;
|
---|
13 | N DA,DEV,DIE,DR,HISTORY,SUP,TIME
|
---|
14 | S TIME=$$NOW^XLFDT
|
---|
15 | D STATNEW(NEW,.SUP,.DEV)
|
---|
16 | S DA=CALL,DIE="^FSCD(""CALL"","
|
---|
17 | S DR="4///`"_SUP
|
---|
18 | D RTDCHECK(CALL,.DR,SUP)
|
---|
19 | S:DEV DEV="`"_DEV S:DEV="" DEV="@"
|
---|
20 | S DR=DR_";4.1///"_DEV_";4.5///"_NEW_";121///"_TIME_";123///"_TIME_";124///`"_DUZ
|
---|
21 | I OLD S DR=DR_";4.6///`"_OLD
|
---|
22 | S HISTORY=$$HISTORY(OLD,NEW,TIME,DUZ)
|
---|
23 | L +^FSCD("CALL",CALL):30 I '$T Q ; *** needs ok
|
---|
24 | I REOPEN D
|
---|
25 | .S DR=DR_";2.6///"_TIME_";81///@;82///@;8///@;9///@;122///@"
|
---|
26 | .D TRANSFER(CALL) ;
|
---|
27 | D ^DIE
|
---|
28 | D STUFF(CALL,HISTORY)
|
---|
29 | L -^FSCD("CALL",CALL)
|
---|
30 | D PICKUP(CALL)
|
---|
31 | D STATHIST(CALL,DUZ,TIME,NEW,OLD)
|
---|
32 | D MRE^FSCMR(DUZ,CALL)
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | PICKUP(CALL) ; from FSCED, FSCELS, FSCLMPE1, FSCRPCEC, FSCRPCEF, FSCRPCNC
|
---|
36 | I $P(^FSCD("CALL",CALL,120),U,22) Q
|
---|
37 | I $P(^FSCD("CALL",CALL,120),U)<2970901 Q ;** pickup times only collected after 9/1/97
|
---|
38 | I $P(^FSCD("CALL",CALL,0),U,9) D PICKSET(CALL) Q
|
---|
39 | I $P(^FSCD("CALL",CALL,0),U,2)=2 D PICKSET(CALL) Q
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | PICKSET(CALL) ;
|
---|
43 | N DA,DIE,DR,NOW,PTIME,RTIME
|
---|
44 | S DA=CALL,DIE="^FSCD(""CALL"","
|
---|
45 | S RTIME=$P(^FSCD("CALL",CALL,120),U)
|
---|
46 | S NOW=$$NOW^XLFDT
|
---|
47 | S PTIME=$$FMDIFF^XLFDT(NOW,RTIME,2)/60\1
|
---|
48 | S DR="125///NOW;126///"_PTIME
|
---|
49 | L +^FSCD("CALL",CALL):30 I '$T Q ; *** needs ok
|
---|
50 | D ^DIE
|
---|
51 | L -^FSCD("CALL",CALL)
|
---|
52 | Q
|
---|
53 | ;
|
---|
54 | RTDCHECK(CALL,DR,SUP) ;
|
---|
55 | I $P(^FSCD("CALL",CALL,0),U,17) D
|
---|
56 | .I SUP'=3 S DR=DR_";4.8///"_DT
|
---|
57 | E D
|
---|
58 | .I SUP=3 D
|
---|
59 | ..I $$DEVEXIST(CALL) S DR=DR_";4.9///"_DT
|
---|
60 | ..S DR=DR_";4.7///"_DT_";4.8///@"
|
---|
61 | Q
|
---|
62 | ;
|
---|
63 | DEVEXIST(CALL) ; $$(call) -> 1 if ever referred else 0
|
---|
64 | N RESULT,SUB
|
---|
65 | S RESULT=0
|
---|
66 | S SUB=0 F S SUB=$O(^FSCD("STATUS HIST","B",CALL,SUB)) Q:SUB<1 D Q:RESULT
|
---|
67 | .I $P(^FSCD("STATUS HIST",SUB,0),U,4)=3 S RESULT=1
|
---|
68 | Q RESULT
|
---|
69 | ;
|
---|
70 | HISTORY(OLD,NEW,TIME,USER) ; $$(old status,new status,time,person) -> formatted text
|
---|
71 | I OLD Q " Changed from "_$$VALUE^FSCGET(OLD,7100,4.5)_" to "_$$VALUE^FSCGET(NEW,7100,4.5)_" on "_$$FMTE^XLFDT(TIME)_" by "_$$VALUE^FSCGET(USER,7100,124)_"."
|
---|
72 | Q " "_$$VALUE^FSCGET(NEW,7100,4.5)_" on "_$$FMTE^XLFDT(TIME)_" by "_$$VALUE^FSCGET(USER,7100,124)_"."
|
---|
73 | ;
|
---|
74 | STUFF(CALL,HISTORY) ;
|
---|
75 | N LINE
|
---|
76 | S LINE=1+$O(^FSCD("CALL",CALL,110,"A"),-1)
|
---|
77 | S ^FSCD("CALL",CALL,110,LINE,0)=HISTORY
|
---|
78 | S ^FSCD("CALL",CALL,110,0)="^^"_LINE_U_LINE_U_DT_"^^"
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | STATHIST(CALL,USER,DATE,STATUS,PREV) ;
|
---|
82 | S PREV=$G(PREV)
|
---|
83 | N DA,DATA,DIK,NUM
|
---|
84 | S DATA=CALL_U_USER_U_DATE_U_STATUS_U_PREV
|
---|
85 | S NUM=1+$P(^FSCD("STATUS HIST",0),U,3)
|
---|
86 | L +^FSCD("STATUS HIST",0):30 I '$T Q ; *** needs ok
|
---|
87 | F Q:'$D(^FSCD("STATUS HIST",NUM,0)) S NUM=NUM+1
|
---|
88 | S ^FSCD("STATUS HIST",NUM,0)=DATA
|
---|
89 | S $P(^FSCD("STATUS HIST",0),U,3)=NUM,$P(^(0),U,4)=$P(^(0),U,4)+1
|
---|
90 | L -^FSCD("STATUS HIST",0)
|
---|
91 | S DIK="^FSCD(""STATUS HIST"",",DA=NUM D IX1^DIK
|
---|
92 | Q
|
---|
93 | ;
|
---|
94 | TRANSFER(CALL) ;
|
---|
95 | N CNT,DATE,LINE,NUM,PERSON
|
---|
96 | S DATE=$P(^FSCD("CALL",CALL,0),U,4),PERSON=$P(^(0),U,11)
|
---|
97 | I 'DATE,'PERSON Q
|
---|
98 | S NUM=$P(^FSCD("CALL",CALL,120),U,7)+1,$P(^(120),U,7)=NUM
|
---|
99 | S LINE="("_NUM_") Call closed by "_$$VALUE^FSCGET(PERSON,7100,81)_" on "_$$VALUE^FSCGET(DATE,7100,82)_"."
|
---|
100 | I '$D(^FSCD("CALL",CALL,50,0)) S ^FSCD("CALL",CALL,50,0)="^^0^0^"_DT_U
|
---|
101 | S CNT=1+$O(^FSCD("CALL",CALL,50,"A"),-1)
|
---|
102 | S $P(^FSCD("CALL",CALL,120),U,6)=CNT
|
---|
103 | S ^FSCD("CALL",CALL,50,CNT,0)=LINE
|
---|
104 | S LINE=0 F S LINE=$O(^FSCD("CALL",CALL,80,LINE)) Q:LINE<1 S CNT=CNT+1,^FSCD("CALL",CALL,50,CNT,0)=^(LINE,0)
|
---|
105 | S CNT=CNT+1,^FSCD("CALL",CALL,50,CNT,0)=" "
|
---|
106 | S $P(^FSCD("CALL",CALL,50,0),U,3,4)=CNT_U_CNT
|
---|
107 | K ^FSCD("CALL",CALL,80)
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | STATNEW(NEW,SUP,DEV) ; returns sup and dev status from new status
|
---|
111 | S SUP=$G(SUP),DEV=$G(DEV)
|
---|
112 | I 'NEW Q
|
---|
113 | I NEW=1 S SUP=1,DEV="" Q
|
---|
114 | I NEW=2 S SUP=2 I DEV S DEV=2 Q
|
---|
115 | I NEW=3 S SUP=3,DEV=1 Q
|
---|
116 | I NEW=4 S SUP=4,DEV="" Q
|
---|
117 | I NEW=5 S SUP=3,DEV=5 Q
|
---|
118 | I NEW=6 S SUP=3,DEV=6 Q
|
---|
119 | I NEW=7 S SUP=3,DEV=7 Q
|
---|
120 | I NEW=8 S SUP=3,DEV=8 Q
|
---|
121 | I NEW=9 S SUP=3,DEV=9 Q
|
---|
122 | I NEW=10 S SUP=10,DEV="" Q
|
---|
123 | I NEW=99 S SUP=99 I DEV S DEV=99 Q
|
---|
124 | Q
|
---|