[613] | 1 | LRCKFLA ;SLC/RWF - CHECK LOAD LIST & AUTO INSTRUMENT FILES ;2/5/91 12:32 ;
|
---|
| 2 | ;;5.2;LAB SERVICE;**272,293**;Sep 27, 1994
|
---|
| 3 | S ZTRTN="ENT^LRCKFLA" D LOG^LRCKF Q:LREND D ENT W !! W:$E(IOST,1,2)="P-" @IOF D ^%ZISC Q
|
---|
| 4 | ENT ;from LRCKF
|
---|
| 5 | U IO S LRDA=0
|
---|
| 6 | W !!,"CHECKING AUTO INSTRUMENT FILE"
|
---|
| 7 | F DA=0:0 S DA=$O(^LAB(62.4,DA)) Q:DA<1!(DA>98) D CHKAUTO
|
---|
| 8 | W !!,"CHECKING LOAD/WORK LIST FILE"
|
---|
| 9 | F DA=0:0 S DA=$O(^LRO(68.2,DA)) Q:DA<1 D CHKLL
|
---|
| 10 | END K LRCP W !! W:$E(IOST,1,2)="P-" @IOF Q
|
---|
| 11 | Q
|
---|
| 12 | NAME I LRDA'=DA W !!,$P(LA,U) S LRDA=DA
|
---|
| 13 | Q
|
---|
| 14 | CHKAUTO I $D(^LAB(62.4,DA,0))[0 W !!,"F-MISSING ZERO NODE" Q
|
---|
| 15 | S LA=^LAB(62.4,DA,0),LRPGM=$P(LA,U,3)
|
---|
| 16 | I LRPGM="" D NAME W !?5,"F- Has no program name. This will prevent data processing."
|
---|
| 17 | I $L(LRPGM),$O(^LAB(62.4,"C",LRPGM,0))'=DA D NAME W !?5,"F- Has duplicate routine entry."
|
---|
| 18 | I DA#10=1,$L($P(LA,U,2))<1 D NAME W !?5,"F- SYSTEM must have a device to get the data from."
|
---|
| 19 | Q:DA#10=1
|
---|
| 20 | I $D(^LRO(68.2,+$P(LA,U,4),0))[0 D NAME W !?5,"W- Should have a LOAD/WORK LIST entry."
|
---|
| 21 | S I=0 F S I=$O(^LAB(62.4,DA,3,I)) Q:I<1 I $D(^(I,0))#2 S X=^(0) I $D(^LAB(60,+X,0))[0 D NAME W !?5,"F- Entry # ",I," has a BAD test pointer."
|
---|
| 22 | Q
|
---|
| 23 | CHKLL I $D(^LRO(68.2,DA,0))[0 W !!,"F- MISSING ZERO NODE ON ENTRY: ",DA Q
|
---|
| 24 | S LA=^LRO(68.2,DA,0),LRTYPE=+$P(LA,U,3),LRNM=$P(LA,U)
|
---|
| 25 | I LRCKW,LRTYPE=0,$P(LA,U,4) D NAME W !?5,"W- A sequence/batch should have 0 for cups/tray."
|
---|
| 26 | I $P(LA,U,2),$D(^LAB(62.07,+$P(LA,U,2),0))[0 D NAME W !?5,"F- BAD pointer in the LOAD transform field."
|
---|
| 27 | ;I LRTYPE=0,$S($D(^LAB(62.07,+$P(LA,U,2),.1)):^(.1),1:"")["TRAY=" D NAME W !?5,"F - Load transform must NOT change the TRAY number."
|
---|
| 28 | I $P(LA,U,7),$D(^LAB(62.07,+$P(LA,U,7),0))[0 D NAME W !?5,"F- BAD pointer in the INITIAL setup field."
|
---|
| 29 | I $D(^LRO(68.2,DA,10,0))[0 D NAME W !?5,"W- Does not have a PROFILE definded." Q
|
---|
| 30 | F LRIX=0:0 S LRIX=$O(^LRO(68.2,DA,10,LRIX)) Q:LRIX<1 D CHKPRO S LRDA=0
|
---|
| 31 | Q
|
---|
| 32 | CHKPRO I $D(^LRO(68.2,DA,10,LRIX,0))[0 D NAME W !?5,"F- MISSING PROFILE ZERO NODE." Q
|
---|
| 33 | S LA=LRNM_" profile: "_^LRO(68.2,DA,10,LRIX,0)
|
---|
| 34 | S B=1 F I=0:0 S I=$O(^LRO(68.2,DA,10,LRIX,1,I)) Q:I<1 I $D(^(I,0))#2 S X=^(0),B=(B&$P(X,U,3)) I $D(^LAB(60,+X,0))[0 D NAME W !?5,"F- has a BAD test pointer."
|
---|
| 35 | I B D NAME W !?5,"F- At least one test of the panel must NOT be build name only."
|
---|
| 36 | I $D(^LRO(68,+$P(LA,U,2),0))[0 D NAME W !?5,"F- BAD accession area pointer."
|
---|
| 37 | I LRCKW,'LRTYPE S C1=$O(^LRO(68.2,DA,10,LRIX,2,1)) I C1>0 D NAME W !?5,"W- A sequence/batch should NOT have a control TRAY ",C1," defined."
|
---|
| 38 | F T=0:0 S T=$O(^LRO(68.2,DA,10,LRIX,1,T)) Q:T'>0 F C=0:0 S C=$O(^LRO(68.2,DA,10,LRIX,1,T,1,C)) Q:C'>0 I $D(^(C,0))#2 S LRCP=+^(0) D CHKTC I A8 W " (TRAY/CUP)"
|
---|
| 39 | F C=0:0 S C=$O(^LRO(68.2,DA,10,LRIX,4,C)) Q:C'>0 I $D(^(C,0))#2 S LRCP=+^(0) D CHKCTR I A8 W " (BEGIN LIST)"
|
---|
| 40 | F C=0:0 S C=$O(^LRO(68.2,DA,10,LRIX,5,C)) Q:C'>0 I $D(^(C,0))#2 S LRCP=+^(0) D CHKCTR I A8 W " (LREND LIST)"
|
---|
| 41 | Q
|
---|
| 42 | CHKTC I T#1!(C#1) D NAME W !?5,"F- TRAY AND/OR CUP must be integers."
|
---|
| 43 | Q
|
---|
| 44 | CHKCTR S A8=0 I $D(^LAB(62.3,LRCP,0))[0 S A8=1 D NAME W !?5,"F- BAD control pointer." Q
|
---|
| 45 | S B=0 F J=0:0 S J=$O(^LAB(62.3,LRCP,2,J)) Q:J<1 I $D(^(J,0))#2 S T=+^(0) I $D(^LRO(68.2,DA,10,LRIX,1,"B",T)) S B=1
|
---|
| 46 | I 'B S A8=1 D NAME W !?5,"F- CONTROL: ",$P(^LAB(62.3,LRCP,0),U)," has no tests to accession for this profile."
|
---|
| 47 | Q
|
---|