| 1 | ENBCPM5 ;(WASH ISC)/DH-Bar Coded PMI ;1.14.98
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**14,21,35,48**;Aug 17, 1993
 | 
|---|
| 3 | POST2 ;No existing PM work order - Post directly to equip hist
 | 
|---|
| 4 |  S ENLKAHD="",ENX1=$O(^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX)) S:ENX1]"" ENLKAHD=^(ENX1,0)
 | 
|---|
| 5 |  G:ENLKAHD=""!($E(ENLKAHD)="*") POST21 I $E(ENLKAHD,1,2)="SP"!($E(ENLKAHD,3,8)[" EE") G POST21
 | 
|---|
| 6 |  I $E(ENLKAHD,1,4)="MOD:"!($E(ENLKAHD,1,4)="PM#:") G POST21
 | 
|---|
| 7 |  I $E(ENLKAHD,1,4)="TIME" G POST22
 | 
|---|
| 8 |  I ENLKAHD="FAILED" G POST23
 | 
|---|
| 9 |  S ENMSG="UNEXPECTED DATA UPLOADED FROM BAR CODE READER.",ENMSG(0,1)="Please check entry following "_ENLBL_".",ENMSG(0,2)="Attempting to process: "_ENLKAHD D XCPTN^ENBCPM2
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | POST21 ;Device passed, no t&m
 | 
|---|
| 13 |  I ENDEL'="Y" K ENPMWO(0) S EN=21 D POST^ENBCPM6 Q:$D(ENPMWO(0))
 | 
|---|
| 14 |  S ENDTCP=DT,ENH=ENDTCP_"-P2"_U_ENPMWO_U_"P"_"^^^^^"_ENEMP_"^PM Inspection (Recorded via Bar Code Reader)",ENINV=ENEQ
 | 
|---|
| 15 |  L +^ENG(6914,ENEQ,6):5 I '$T S ENMSG="Skipping service history for Equipment ID#: "_ENEQ D XCPTN^ENBCPM2 Q
 | 
|---|
| 16 |  S ENPMEMP=ENEMP D EXT^ENEQHS S ENEMP=ENPMEMP
 | 
|---|
| 17 |  L -^ENG(6914,ENEQ,6)
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | POST22 ;Device passed, t&m recorded
 | 
|---|
| 21 |  I ENDEL'="Y" S EN=22 K ENPMWO(0) D POST^ENBCPM6 Q:$D(ENPMWO(0))
 | 
|---|
| 22 |  S ENTIME=+$E(ENLKAHD,6,30) I ENTIME]"" S X=ENTIME,X(0)=2 D ROUND^ENLIB S ENTIME=+Y S:ENTIME<0 ENTIME=""
 | 
|---|
| 23 |  I $G(ENTIME)>0 S PMTOT(ENSHKEY,ENTEC)=$G(PMTOT(ENSHKEY,ENTEC))+ENTIME
 | 
|---|
| 24 |  S ENX=ENX1,^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX,0)="*"_ENLKAHD,ENX1=$O(^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX)) S ENLKAHD=$S(ENX1]"":^(ENX1,0),1:"")
 | 
|---|
| 25 |  S ENMATRL="" I $E(ENLKAHD,1,5)="MATRL" D
 | 
|---|
| 26 |  . S ENX=ENX1,^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX,0)="*"_ENLKAHD,ENMATRL=+$E(ENLKAHD,7,30) S:ENMATRL<0 ENMATRL=""
 | 
|---|
| 27 |  . S ENX1=$O(^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX)),ENLKAHD=$S(ENX1]"":^(ENX1,0),1:"")
 | 
|---|
| 28 |  . I $E(ENLKAHD,1,5)="CODE:" D
 | 
|---|
| 29 |  .. S ENX=ENX1,^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX,0)="*"_ENLKAHD
 | 
|---|
| 30 |  .. I $P(ENLKAHD,":",2)?1N N DIE,DA D
 | 
|---|
| 31 |  ... S DA=ENEQ,DIE="^ENG(6914,",DR="53///"_$P(ENLKAHD,":",2) D ^DIE
 | 
|---|
| 32 |  ... Q
 | 
|---|
| 33 |  I ENMATRL=+ENMATRL S X=ENMATRL,X(0)=2 D ROUND^ENLIB S ENMATRL=+Y
 | 
|---|
| 34 |  S ENLBR="" I ENTIME]"",$D(^ENG("EMP",ENTEC,0)) S ENLBR=$P(^(0),U,3) I ENLBR]"" S:ENLBR<0 ENLBR=0 S ENLBR=ENLBR*ENTIME
 | 
|---|
| 35 |  S X=ENX,ENWP=""
 | 
|---|
| 36 |  I X]"" F  S X=$O(^PRCT(446.4,ENCTID,2,ENCTTI,1,X)) Q:X=""  S X1=^(X,0) Q:($E(X1)="*")!($E(X1,1,2)="SP")!($E(X1,1,4)="MOD:")!($E(X1,1,4)="PM#:")!($E(X1,3,8)[" EE")  D
 | 
|---|
| 37 |  . S ENX=X,ENWP=ENWP_X1
 | 
|---|
| 38 |  . S ^PRCT(446.4,ENCTID,2,ENCTTI,1,X,0)="*"_X1
 | 
|---|
| 39 |  I ENWP]"",$L(ENWP)<130 S ENWP=ENWP_" (Bar Code)"
 | 
|---|
| 40 |  S:ENWP="" ENWP="PM Inspection (Recorded via Bar Code Reader)"
 | 
|---|
| 41 |  S ENDTCP=DT,ENH=ENDTCP_"-PM"_U_ENPMWO_U_"P"_U_ENTIME_U_ENLBR_U_ENMATRL_"^^"_ENEMP_U_ENWP,ENINV=ENEQ
 | 
|---|
| 42 |  L +^ENG(6914,ENEQ,6):5 I '$T S ENMSG="Skipping service history for Equipment ID#: "_ENINV D XCPTN^ENBCPM2 Q
 | 
|---|
| 43 |  S ENPMEMP=ENEMP D EXT^ENEQHS S ENEMP=ENPMEMP
 | 
|---|
| 44 |  L -^ENG(6914,ENEQ,6)
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | POST23 ;Device failed
 | 
|---|
| 48 |  N PROBLEM S PROBLEM="Device failed a PM Inspection",ENTIME=""
 | 
|---|
| 49 |  S ^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX1,0)="*"_ENLKAHD
 | 
|---|
| 50 |  S ENX1=ENX+2,ENX=ENX+1,ENLKAHD=$S($D(^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX1,0)):^(0),1:"")
 | 
|---|
| 51 |  S ENMSG="Equipment Entry # "_ENEQ_" FAILED PMI. CORRECTIVE ACTION REQUIRED."
 | 
|---|
| 52 |  S ENMSG(0,1)="This device has no open work order that begins with "_ENPMWO_"..."
 | 
|---|
| 53 |  S ENMSG(0,2)="Nothing is being posted to the equipment history."
 | 
|---|
| 54 |  S ENMSG(0,3)="NO STATEMENT OF PROBLEM."
 | 
|---|
| 55 |  I ENLKAHD]"",$E(ENLKAHD)'="*",$E(ENLKAHD,1,2)'="SP",$E(ENLKAHD,1,4)'="MOD:",$E(ENLKAHD,1,4)'="PM#:",$E(ENLKAHD,3,8)'[" EE" D
 | 
|---|
| 56 |  . S ENX=ENX1,ENMSG(0,3)="Problem description: "_ENLKAHD
 | 
|---|
| 57 |  . S PROBLEM=ENLKAHD
 | 
|---|
| 58 |  . S ^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX1,0)="*"_ENLKAHD
 | 
|---|
| 59 |  . S ENX1=ENX1+1
 | 
|---|
| 60 |  . S ENLKAHD=$S($D(^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX1,0)):^(0),1:"")
 | 
|---|
| 61 |  . I $E(ENLKAHD,1,4)="TIME" S ENX=ENX+1 D
 | 
|---|
| 62 |  .. S ^PRCT(446.4,ENCTID,2,ENCTTI,1,ENX1,0)="*"_ENLKAHD
 | 
|---|
| 63 |  .. S ENTIME=+$E(ENLKAHD,6,30) I ENTIME>0 D
 | 
|---|
| 64 |  ... S ENMSG(0,3)=ENMSG(0,3)_" (Time: "_ENTIME_" hrs)"
 | 
|---|
| 65 |  ... S PMTOT(ENSHKEY,ENTEC)=$G(PMTOT(ENSHKEY,ENTEC))+ENTIME
 | 
|---|
| 66 | NEWWO D NEWWO^ENBCPM9
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | HOLD I $E(IOST,1,2)="C-" W !,"Press RETURN to continue..." R X:DTIME
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | ERR ;Error message (Forced exit)
 | 
|---|
| 72 |  W !!,*7,"FATAL ERROR OR USER ABORT.",*7
 | 
|---|
| 73 |  W !,"Process ID is: ENPM     Time stamp is: ",$S($D(ENCTTI):$P(^PRCT(446.4,ENCTID,2,ENCTTI,0),U,1),1:"UNDEFINED.")
 | 
|---|
| 74 |  W !,"Please make a note of this information, as you will need it to RESTART",!,"processing of the data on file."
 | 
|---|
| 75 |  S ENY=0 D HOLD
 | 
|---|
| 76 | EXIT I $E(IOST,1,2)="C-",$D(ENY),ENY>0 D HOLD
 | 
|---|
| 77 |  K EN,ENA,ENB,ENEQ,ENLBL,ENSTA,ENSTAL,ENMSG,ENCTTI,ENCTID,ENX,ENX1,ENY
 | 
|---|
| 78 |  K ENLOC,ENOLDLOC,ENLKAHD,ENTEC,ENEMP,ENPMEMP,ENPMTEC,ENPM,ENPMWO,ENSHABR,ENSHOP,ENDTCP,ENH,ENINV,ENPG,ENWOX,ENW,EN1,EN2
 | 
|---|
| 79 |  K %,I,J,K,ENTIME,ENMATRL,ENLBR,ENDATE,ENDEL,ENWP,DIC,DIE,DA,DR
 | 
|---|
| 80 |  W @IOF
 | 
|---|
| 81 |  I $E(IOST,1,2)="P-",'$D(ZTQUEUED) D ^%ZISC
 | 
|---|
| 82 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 83 |  Q
 | 
|---|
| 84 |  ;ENBCPM5
 | 
|---|