1 | ENEQ3 ;WIRMFO/DH,SAB-Equipment Entry Functions ;3.31.98
|
---|
2 | ;;7.0;ENGINEERING;**25,29,35,52**;Aug 17, 1993
|
---|
3 | EQMAS ; Multiple Equipment Subsequent (Similar) Records
|
---|
4 | ; in
|
---|
5 | ; ENDAOLD - ien of record to be copied from
|
---|
6 | ; ENMA( - array containing info on how FA Document and
|
---|
7 | ; incoming inspection w.o. should be handled
|
---|
8 | ; ENBULL( - (optional) array of mail group info
|
---|
9 | ; out
|
---|
10 | ; ENNXL - ien of new record, 0 if unsuccessful
|
---|
11 | N EN
|
---|
12 | S ENNXL=0
|
---|
13 | ; lock master
|
---|
14 | L +^ENG(6914,ENDAOLD):10 I '$T D Q
|
---|
15 | . W $C(7),!,"Another user is editing Entry# ",ENDAOLD,". Can't proceed."
|
---|
16 | . S DIR(0)="E" D ^DIR K DIR
|
---|
17 | ; create new record
|
---|
18 | D ENR^ENEQ1 I 'ENNXL D L -^ENG(6914,ENDAOLD) Q
|
---|
19 | . W $C(7),!,ENERR S DIR(0)="E" D ^DIR K DIR,ENERR
|
---|
20 | ; lock new record
|
---|
21 | L +^ENG(6914,ENNXL):10 I '$T D L -^ENG(6914,ENDAOLD) Q
|
---|
22 | . W $C(7),!,"Another user is editing Entry# ",ENNXL,". Can't proceed."
|
---|
23 | . S DIR(0)="E" D ^DIR K DIR
|
---|
24 | ;
|
---|
25 | ; copy master into local array
|
---|
26 | M EN=^ENG(6914,ENDAOLD)
|
---|
27 | ; modify local array for new record
|
---|
28 | ; set up .01 and triggered fields
|
---|
29 | S $P(EN(0),U)=ENNXL
|
---|
30 | S $P(EN(0),U,5,6)=$P(^ENG(6914,ENNXL,0),U,5,6)
|
---|
31 | ; remove data that should not be copied
|
---|
32 | I $D(EN(1)) S $P(EN(1),U,3)=""
|
---|
33 | I $D(EN(2)) F ENI=7,13 S $P(EN(2),U,ENI)=""
|
---|
34 | I $D(EN(3)) F ENI=6,7,10,14 S $P(EN(3),U,ENI)=""
|
---|
35 | K EN(6)
|
---|
36 | I $D(EN(9)) S $P(EN(9),U,10)=""
|
---|
37 | ; move local array to new record
|
---|
38 | M ^ENG(6914,ENNXL)=EN K EN
|
---|
39 | ; re-index new record
|
---|
40 | S DIK="^ENG(6914,",DA=ENNXL D IX1^DIK K DIK
|
---|
41 | ; unlock master
|
---|
42 | L -^ENG(6914,ENDAOLD)
|
---|
43 | ; user edit new record
|
---|
44 | W !!,"Equipment ID: ",ENNXL
|
---|
45 | S DIE="^ENG(6914,",DR="5;24;25;26",DA=ENNXL
|
---|
46 | I $P(^ENG(6914,ENDAOLD,0),U,3)]"" S DR=DR_";2" ; parent system
|
---|
47 | I $D(^ENG(6914,ENNXL,8)),$P(^(8),U,8)]"" S DR=DR_";51" ; replacing
|
---|
48 | D ^DIE I $D(Y)!$D(DTOUT),$P($G(^ENG(6914,DA,1)),U,3)']"" D Q
|
---|
49 | . W $C(7),!,"Time Out or '^' entered and Serial Number was left blank."
|
---|
50 | . W !,"Deleting last entry (",DA,")..."
|
---|
51 | . S DIK="^ENG(6914," D ^DIK K DIK L -^ENG(6914,DA)
|
---|
52 | . S ENNXL=0
|
---|
53 | I $G(ENMA("IIWO")) D IIWO^ENWONEW3(ENNXL)
|
---|
54 | I $G(ENMA("FAP")) S ENEQ("DA")=DA D ^ENFAACQ S DA=ENEQ("DA") K ENEQ("DA")
|
---|
55 | S DA=ENNXL D BULL
|
---|
56 | L -^ENG(6914,ENNXL)
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | BULL ;X-mit new equipment bulletin if mail group established
|
---|
60 | ; Input
|
---|
61 | ; DA - ien of equipment entry
|
---|
62 | ; optional ENBULL( - array indicating mail group availabliity
|
---|
63 | ; undefined nodes not yet evaluated
|
---|
64 | ; ENBULL = true(1) if 'EN NEW EQUIPMENT' established
|
---|
65 | ; ENBULL(station number)=true(1) if
|
---|
66 | ; 'EN NEW EQUIPMENT station number' established
|
---|
67 | Q:'$D(DA) Q:'$D(^ENG(6914,DA,0))
|
---|
68 | N ENSN,XMB,XMDUZ,XMY
|
---|
69 | ; determine station number of equipment entry
|
---|
70 | S ENSN=$$GET1^DIQ(6914,DA,60)
|
---|
71 | ; if blank use default station #
|
---|
72 | I ENSN="" S ENSN=$$GET1^DIQ(6910,1,1)
|
---|
73 | ; get status of station specific mail group if not already done
|
---|
74 | I ENSN]"",'$D(ENBULL(ENSN)) S ENBULL(ENSN)=$$CHKMGRP("EN NEW EQUIPMENT "_ENSN)
|
---|
75 | ; use station specific mail group if available
|
---|
76 | I ENSN]"",ENBULL(ENSN) S XMY("G.EN NEW EQUIPMENT "_ENSN)=""
|
---|
77 | ; if station specific mail group not established then use generic group
|
---|
78 | I '$D(XMY) D
|
---|
79 | . ; get staus of generic mail group if not already done
|
---|
80 | . I $G(ENBULL)']"" S ENBULL=$$CHKMGRP("EN NEW EQUIPMENT")
|
---|
81 | . I ENBULL S XMY("G.EN NEW EQUIPMENT")=""
|
---|
82 | ; send bulletin if a mail group is established
|
---|
83 | I $D(XMY) D
|
---|
84 | . S XMB="EN NEW EQUIPMENT"
|
---|
85 | . S XMB(1)=DA,XMB(2)=$P(^VA(200,DUZ,0),U),XMB(3)=$P(^ENG(6914,DA,0),U,2)
|
---|
86 | . F X=4,5 S XMB(X)=""
|
---|
87 | . I $D(^ENG(6914,DA,1)) S X=$P(^(1),U) S:X>0 XMB(4)=$P(^ENG(6911,X,0),U)
|
---|
88 | . I $D(^ENG(6914,DA,3)) S X=$P(^(3),U,2) S:X>0 XMB(5)=$P(^DIC(49,X,0),U)
|
---|
89 | . S:ENSN]"" XMB(6)=ENSN
|
---|
90 | . F X=4,5,6 S:XMB(X)="" XMB(X)="MISSING"
|
---|
91 | . S X="0^0"
|
---|
92 | . I $P($G(^ENG(6914,DA,0)),U,4)="NX",$P($G(^(8)),U,2) S $P(X,U)=1 ;CapNX
|
---|
93 | . I $P(X,U),+$$CHKFA^ENFAUTL(DA) S $P(X,U,2)=1 ; FAP
|
---|
94 | . S XMB(7)="Item is"_$S($P(X,U):"",1:" NOT")_" capitalized NX."
|
---|
95 | . I $P(X,U) S XMB(7)=XMB(7)_" It was"_$S($P(X,U,2):"",1:" NOT")_" reported to FAP."
|
---|
96 | . S XMDUZ="AEMS/MERS"
|
---|
97 | . D ^XMB
|
---|
98 | Q
|
---|
99 | CHKMGRP(ENMG) ; Check Mail Group Extrinsic Variable
|
---|
100 | ; true if mail group exists and has at least one member
|
---|
101 | ; Input Variable
|
---|
102 | ; ENMG - name of mail group to check
|
---|
103 | N ENI,ENOK,ENQ
|
---|
104 | S ENOK=0 ; initialize result flag
|
---|
105 | ; look for mail group
|
---|
106 | S ENI=$$FIND1^DIC(3.8,"","X",ENMG,"B")
|
---|
107 | ; if found look for a member
|
---|
108 | I ENI D
|
---|
109 | . D LIST^DIC(3.81,","_ENI_",","","",1,"","","","","","ENQ")
|
---|
110 | . I $P(ENQ("DILIST",0),U) S ENOK=1 ; has at least one member
|
---|
111 | Q ENOK
|
---|
112 | ;
|
---|
113 | LAST ;Last service episode (including PMI)
|
---|
114 | ; called by ENG DJ SCREENs
|
---|
115 | ; in: DA - ien of equipment entry
|
---|
116 | ; out: displays date and work action of last service episode (if any)
|
---|
117 | N ENA,ENB,ENI,ENX
|
---|
118 | Q:'$D(DA)
|
---|
119 | Q:'$D(^ENG(6914,DA,6))
|
---|
120 | S ENI=0 F S ENI=$O(^ENG(6914,DA,6,ENI)) Q:'ENI S ENA=^(ENI,0) I $E($P(ENA,U,3))'="D" D Q
|
---|
121 | . S ENX="Last serviced: "_$E(ENA,4,5)_"/"_$E(ENA,6,7)_"/"_$E(ENA,2,3)
|
---|
122 | . S ENB=$P($P(ENA,U),"-",2) D:ENB]"" S ENX=ENX_" Work Action: "_ENB
|
---|
123 | . . I $D(^ENG(6920.1,"D",ENB)) S ENB(0)=$O(^(ENB,0))
|
---|
124 | . . I $D(ENB(0)),$D(^ENG(6920.1,ENB(0),0)) S ENB=$P(^(0),U)
|
---|
125 | . W !!,ENX
|
---|
126 | Q
|
---|
127 | ;ENEQ3
|
---|