[613] | 1 | DGPTAE ;ALB/MTC - Austin Edit Checks Driver ; 12 NOV 92
|
---|
| 2 | ;;5.3;Registration;**58,415**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ; Check for 101, 501, 701; Route processing by type; call DRG and output routine
|
---|
| 5 | EN ;
|
---|
| 6 | N DGPTERP,DGPTERC,DGPRS,DGPTEDFL,DGPTNOW,DGPTFAC
|
---|
| 7 | S (DGPTEDFL,DGPTERP)=0,DGPRS="N101^N501^N601^N701^N702^N703^N401^N402^N403^N535^"
|
---|
| 8 | D NOW^%DTC S DGPTNOW=+X
|
---|
| 9 | ;-- check if record available to process
|
---|
| 10 | I '$D(^TMP("AEDIT")) G EXIT
|
---|
| 11 | ;-- check if all nodes are present
|
---|
| 12 | S DGPTERC=$$PRES() I DGPTERC D WRTERR(DGPTERC,"N101",1) G EXIT
|
---|
| 13 | ;-- process record
|
---|
| 14 | D ALLPR
|
---|
| 15 | ;-- if errors
|
---|
| 16 | D ERROR
|
---|
| 17 | ;-- exit
|
---|
| 18 | D EXIT
|
---|
| 19 | Q
|
---|
| 20 | ;
|
---|
| 21 | ALLPR ;-- process all records types
|
---|
| 22 | N ERROR,NODE,SEQ
|
---|
| 23 | S ERROR=0
|
---|
| 24 | ;
|
---|
| 25 | D FAC
|
---|
| 26 | ;
|
---|
| 27 | S NODE="" F S NODE=$O(^TMP("AEDIT",$J,NODE)) Q:NODE=""!(ERROR) D
|
---|
| 28 | . S SEQ=0 F S SEQ=$O(^TMP("AEDIT",$J,NODE,SEQ)) Q:SEQ="" D RTE
|
---|
| 29 | ;
|
---|
| 30 | Q
|
---|
| 31 | ;
|
---|
| 32 | EXIT ;-- clean-up
|
---|
| 33 | K ^TMP("AEDIT",$J),^TMP("AERROR",$J),^TMP("AD",$J)
|
---|
| 34 | K DGPTDTS,DGPTPS,DGPTSSN,DGPTDTA,DGPTFAC,DGPTLN,DGPTFI,DGPTMI
|
---|
| 35 | K DGPTSRA,DGPTTF,DGPTSRP,DGPTPOW,DGPTMRS,DGPTGEN,DGPTDOB,DGPTPOS1,DGPTPOS2,DGPTEXA,DGPTEXI,DGPTSTE,DGPTCTY,DGPTZIP,DGPTMTC,DGPTBY,DGPTINC
|
---|
| 36 | K DGPTDDTD,DGPTDDS,DGPTDSP,DGPTDTY,DGPTDOP,DGPTDVA,DGPTDPD,DGPTDRF,DGPTDAS,DGPTDCP,DGPTDDXE,DGPTDDXO,DGPTDLR,DGPTDLC,DGPTDSC
|
---|
| 37 | K DGPT70LG,DGPT70SU,DGPT70DR,DGPT70X4,DGPTDXV1,DGPTDXV2
|
---|
| 38 | K DGPTMSR,DGPTMSC,DGPTMLD,DGPTMPD,DGPTMSI,DGPTMD1,DGPTMD11,DGPTMD2,DGPTMD3,DGPTMD4,DGPTMD5,DGPTMXX,DGPTMLR,DGPTMLC,DGPTMBS
|
---|
| 39 | K DGPTMLG,DGPTMSU,DGPTMDG,DGPTMXIV,DGPTMXV1,DGPTMXV2,DGPT50SR
|
---|
| 40 | K DGACNT,DGPT7X51,DGPT7X52,DGPTADT,DGPTAGE,DGPTAL7,DGPTBYR,DGPTDIA,DGPTDIA1,DGPTDIA2,DGPTDIAR,DGPTELP,DGPTFEF,DGPTFMDB,DGPTGEN1,DGPTL3,DGPTL4,DGPTMSX,DGPTS1,DGPTS2,DGPTSTTY,DGPTTY,DGPTXTTY,DGSCDT,DGPTPRAR,DGPTOPAR,DGSCDT,DGPTOC
|
---|
| 41 | K DGFNUM,DGLAST,DGMVT,DGOUT,DGPTF,DGPTOPP,DGSCDT,DGSPEC,DGLAST,DGFNUM
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | RTE ;route processing
|
---|
| 45 | N DGFL2,I,J
|
---|
| 46 | S DGFL2=0 F I=1:1:9 S:NODE=$P(DGPRS,U,I) DGFL2=1 Q:(DGFL2)!($P(DGPRS,U,I)']"")
|
---|
| 47 | I 'DGFL2 S ERROR=101 Q
|
---|
| 48 | Q:NODE="N701"
|
---|
| 49 | ;
|
---|
| 50 | D @("^DGPT"_$S($E(NODE,2)=4:"401",1:$E(NODE,2,4)))
|
---|
| 51 | RTN ;
|
---|
| 52 | Q
|
---|
| 53 | ;
|
---|
| 54 | PRES() ;-- check if required pieces are present
|
---|
| 55 | N I,ERROR
|
---|
| 56 | S ERROR=0
|
---|
| 57 | F I="N101","N501","N701" I '$D(^TMP("AEDIT",$J,I)) S ERROR=188 Q
|
---|
| 58 | Q ERROR
|
---|
| 59 | ;
|
---|
| 60 | WRTERR(ERROR,NODE,SEQ) ;-- This function will write out errors to the ^TMP("AERROR"
|
---|
| 61 | ; global.
|
---|
| 62 | ; INPUT : ERROR - code of Austin's error
|
---|
| 63 | ; NODE - node error occured on
|
---|
| 64 | ; SEQ - sequence in ^TMP("AEDIT",
|
---|
| 65 | ;
|
---|
| 66 | I '$D(ERROR) G WRTQ
|
---|
| 67 | S DGPTERP=DGPTERP+1,^TMP("AERROR",$J,SEQ,NODE,DGPTERP)=ERROR
|
---|
| 68 | I DGPTERP>12 S DGPTEDFL=1
|
---|
| 69 | WRTQ Q
|
---|
| 70 | ;
|
---|
| 71 | FAC ;-- check facility id; get station type
|
---|
| 72 | N SUFFIX,SOA,STATION,STTY
|
---|
| 73 | S DGPTSTTY="",X=$G(^TMP("AEDIT",$J,"N101",1)),DGPTFAC=$E(X,25,30),SUFFIX=$E(X,29,30),SOA=$E(X,45,46)
|
---|
| 74 | I SOA=" " D WRTERR(107) G FACQ
|
---|
| 75 | I DGPTFAC'=" ",'DGPTFAC D WRTERR(108,"101") G FACQ
|
---|
| 76 | I SUFFIX]"" I $D(^DIC(45.81,"D1",SUFFIX)) S DGPTSTTY=$O(^(SUFFIX,0)) S:DGPTSTTY DGPTSTTY=U_DGPTSTTY_U
|
---|
| 77 | S X=$O(^DIC(45.1,"B",$E(X,45,46),0))
|
---|
| 78 | S STATION="",STTY=0 F S STTY=$O(^DIC(45.1,X,"ST",STTY)) Q:'STTY S STATION=STATION_"^"_STTY
|
---|
| 79 | S STATION=STATION_"^"
|
---|
| 80 | I $P(DGPTSTTY,U,2),STATION'[DGPTSTTY D WRTERR(135,"101") G FACQ
|
---|
| 81 | S DGPTSTTY=STATION
|
---|
| 82 | FACQ Q
|
---|
| 83 | ;
|
---|
| 84 | ERROR ;-- this routine will process the error detected during close-out
|
---|
| 85 | G:'$D(^TMP("AERROR",$J)) ERRQ
|
---|
| 86 | S DGERR=1
|
---|
| 87 | D EN^VALM("DGPT CLOSE-OUT ERROR")
|
---|
| 88 | ERRQ Q
|
---|
| 89 | ;
|
---|