| 1 | ENFAXMTM ;WIRMFO/KLD,SAB-VALIDATE/TRANSMIT FAP EQUIPMENT; 6/9/97 | 
|---|
| 2 | ;;7.0;ENGINEERING;**25,29,39**;Aug 17, 1993 | 
|---|
| 3 | ;This routine should not be modified. | 
|---|
| 4 | ST Q | 
|---|
| 5 | ; | 
|---|
| 6 | EQUIP ;Validite/Transmit FA docs by Equipment | 
|---|
| 7 | ; Input | 
|---|
| 8 | ;   ENBAT("XMT") - flag; true (1) to transmit after validation | 
|---|
| 9 | ;                  not returned | 
|---|
| 10 | Q:$G(ENBAT("XMT"))=""  ; required | 
|---|
| 11 | W !!,"This option ",$S(ENBAT("XMT"):"TRANSMITS",1:"VALIDATES")," FA Documents (code sheets) for specified equipment.",! | 
|---|
| 12 | EQUIPA ; ask equipment | 
|---|
| 13 | D GETEQ^ENUTL G:Y<1 EQUIPX | 
|---|
| 14 | S ENEQ("DA")=+Y | 
|---|
| 15 | S X=$$CHKFA^ENFAUTL(ENEQ("DA")) I +X D  G EQUIPA | 
|---|
| 16 | . S Y=$P(X,U,2) D DD^%DT S ENFADT("E")=Y | 
|---|
| 17 | . W !!,"FA document for ENTRY #",ENEQ("DA")," was processed on ",ENFADT("E"),"." | 
|---|
| 18 | . W !,"No action taken.",!,$C(7) | 
|---|
| 19 | . K DA,ENFADT,X,Y | 
|---|
| 20 | ; set variables for calls to ENFAVAL or ENFAACQ | 
|---|
| 21 | S:'ENBAT("XMT") ENFAP("DOC")="FA" ; validate for FA document | 
|---|
| 22 | S:ENBAT("XMT") ENBAT("SILENT")="" ; ENFAACQ will save problems in ^TMP | 
|---|
| 23 | K ^TMP($J) | 
|---|
| 24 | I 'ENBAT("XMT") D  ; validate only | 
|---|
| 25 | . F I=0,2,3,8,9 S ENEQ(I)=$G(^ENG(6914,ENEQ("DA"),I)) | 
|---|
| 26 | . D ^ENFAVAL | 
|---|
| 27 | I ENBAT("XMT") D ^ENFAACQ ; transmit (includes validation) | 
|---|
| 28 | ; report results | 
|---|
| 29 | I '$D(^TMP($J)) W !!,"Equipment Entry #: ",ENEQ("DA")," ",$S(ENBAT("XMT"):"was transmitted.",1:"looks OK!") | 
|---|
| 30 | I $D(^TMP($J)) D LISTP W ! I ENBAT("XMT") W !,"Please correct the Equipment Record before sending a FA Document for this item.",! | 
|---|
| 31 | G EQUIPA ; ask for another item | 
|---|
| 32 | EQUIPX ; exit point for EQUIP | 
|---|
| 33 | K DIC,DIR,DIRUT,DUOUT,ENBAT,ENFAP,I,X,Y | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | CMR ;Validite/Transmit FA docs by CMR | 
|---|
| 37 | ; Input | 
|---|
| 38 | ;   ENBAT("XMT") - flag; true (1) to transmit after validation | 
|---|
| 39 | ;                  not returned | 
|---|
| 40 | Q:$G(ENBAT("XMT"))=""  ; required | 
|---|
| 41 | W !!,"This option ",$S(ENBAT("XMT"):"TRANSMITS",1:"VALIDATES")," FA Documents (code sheets)" | 
|---|
| 42 | W !,"for all equipment that belongs to a specified CMR.",! | 
|---|
| 43 | ; ask cmr | 
|---|
| 44 | S DIC="^ENG(6914.1,",DIC(0)="QEAM" D ^DIC Q:Y<1 | 
|---|
| 45 | S ENBAT("SEL","I")=+Y ; selected cmr | 
|---|
| 46 | ; ask device | 
|---|
| 47 | W !,"Now select the device to print results on." | 
|---|
| 48 | S %ZIS="Q" D ^%ZIS G:POP CMRX | 
|---|
| 49 | I $D(IO("Q")) D  G CMRX | 
|---|
| 50 | . S ZTRTN="CMRQ^ENFAXMTM" | 
|---|
| 51 | . S ZTDESC=$S(ENBAT("XMT"):"Transmit",1:"Validate")_" FA Doc. by CMR" | 
|---|
| 52 | . F I="ENBAT(" S ZTSAVE(I)="" | 
|---|
| 53 | . D ^%ZTLOAD W:$D(ZTSK) !,"Queued!  Task #",ZTSK K ZTSK | 
|---|
| 54 | CMRQ ; queued entry point to process cmr | 
|---|
| 55 | ; Input | 
|---|
| 56 | ;   ENBAT("SEL","I") = ien of selected CMR | 
|---|
| 57 | ;   ENBAT("XMT") = flag; when true FA Documents will be transmitted | 
|---|
| 58 | ; set variables for calls to ENFAVAL or ENFAACQ | 
|---|
| 59 | S:'ENBAT("XMT") ENFAP("DOC")="FA" ; validate for FA document | 
|---|
| 60 | S:ENBAT("XMT") ENBAT("SILENT")="" ; ENFAACQ will save problems in ^TMP | 
|---|
| 61 | K ^TMP($J) | 
|---|
| 62 | S (ENT("BAT"),ENT("BAD"),ENT("FAP"),ENT("SENT"))=0 | 
|---|
| 63 | ; loop thru equipment on cmr | 
|---|
| 64 | S ENEQ("DA")=0 | 
|---|
| 65 | F  S ENEQ("DA")=$O(^ENG(6914,"AD",ENBAT("SEL","I"),ENEQ("DA"))) Q:'ENEQ("DA")  D | 
|---|
| 66 | . Q:'$P($G(^ENG(6914,ENEQ("DA"),8)),U,2)  ; not capitalized | 
|---|
| 67 | . S ENT("BAT")=ENT("BAT")+1 | 
|---|
| 68 | . I +$$CHKFA^ENFAUTL(ENEQ("DA")) S ENT("FAP")=ENT("FAP")+1 Q  ; already | 
|---|
| 69 | . I 'ENBAT("XMT") D  ; validate only | 
|---|
| 70 | . . F I=0,2,3,8,9 S ENEQ(I)=$G(^ENG(6914,ENEQ("DA"),I)) | 
|---|
| 71 | . . D ^ENFAVAL | 
|---|
| 72 | . I ENBAT("XMT") D ^ENFAACQ ; transmit (includes validation) | 
|---|
| 73 | ; report results | 
|---|
| 74 | S ENBAT("TYPE")="CMR" | 
|---|
| 75 | S ENBAT("SEL","E")=$P($G(^ENG(6914.1,ENBAT("SEL","I"),0)),U) ; cmr name | 
|---|
| 76 | D RPTB | 
|---|
| 77 | CMRX ; exit point for CMR | 
|---|
| 78 | K DIC,ENBAT,ENFA,ENFAP,X,Y | 
|---|
| 79 | Q | 
|---|
| 80 | ; | 
|---|
| 81 | STN ;Validite/Transmit FA Docs by Station | 
|---|
| 82 | ; Input | 
|---|
| 83 | ;   ENBAT("XMT") - flag; true (1) to transmit after validation | 
|---|
| 84 | ;                  not returned | 
|---|
| 85 | Q:$G(ENBAT("XMT"))=""  ; required | 
|---|
| 86 | W !!,"This option ",$S(ENBAT("XMT"):"TRANSMITS",1:"VALIDATES")," FA Documents (code sheets)" | 
|---|
| 87 | W !,"for all equipment that belongs to a specified Station.",! | 
|---|
| 88 | ; ask station | 
|---|
| 89 | S DIR(0)="F^3:5",DIR("A")="STATION NUMBER" | 
|---|
| 90 | S DIR("B")=$$GET1^DIQ(6910,"1,",1) | 
|---|
| 91 | D ^DIR K DIR G:$D(DIRUT) STNX | 
|---|
| 92 | S ENBAT("SEL","I")=Y ; selected station | 
|---|
| 93 | ; ask device | 
|---|
| 94 | W !,"Now select the device to print results on." | 
|---|
| 95 | S %ZIS="Q" D ^%ZIS G:POP STNX | 
|---|
| 96 | I $D(IO("Q")) D  G STNX | 
|---|
| 97 | . S ZTRTN="STNQ^ENFAXMTM" | 
|---|
| 98 | . S ZTDESC=$S(ENBAT("XMT"):"Transmit",1:"Validate")_" FA Doc. by Station" | 
|---|
| 99 | . F I="ENBAT(" S ZTSAVE(I)="" | 
|---|
| 100 | . D ^%ZTLOAD W:$D(ZTSK) !,"Queued!  Task #",ZTSK K ZTSK | 
|---|
| 101 | STNQ ; queued entry point to process station | 
|---|
| 102 | ; Input | 
|---|
| 103 | ;   ENBAT("SEL","I") =  selected Station Number (3-5 characters) | 
|---|
| 104 | ;   ENBAT("XMT") = flag; when true FA Documents will be transmitted | 
|---|
| 105 | ; set variables for calls to ENFAVAL or ENFAACQ | 
|---|
| 106 | S:'ENBAT("XMT") ENFAP("DOC")="FA" ; validate for FA document | 
|---|
| 107 | S:ENBAT("XMT") ENBAT("SILENT")="" ; ENFAACQ will save problems in ^TMP | 
|---|
| 108 | K ^TMP($J) | 
|---|
| 109 | S (ENT("BAT"),ENT("BAD"),ENT("FAP"),ENT("SENT"))=0 | 
|---|
| 110 | ; loop thru equipment on station | 
|---|
| 111 | S ENSND=$$GET1^DIQ(6910,"1,",1) ; default station number | 
|---|
| 112 | S ENEQ("DA")=0 | 
|---|
| 113 | F  S ENEQ("DA")=$O(^ENG(6914,ENEQ("DA"))) Q:'ENEQ("DA")  D | 
|---|
| 114 | . Q:'$P($G(^ENG(6914,ENEQ("DA"),8)),U,2)  ; not capitalized | 
|---|
| 115 | . S ENSN=$P($G(^ENG(6914,ENEQ("DA"),9)),U,5) S:ENSN="" ENSN=ENSND | 
|---|
| 116 | . Q:ENSN'=ENBAT("SEL","I")  ; not station | 
|---|
| 117 | . Q:$$GET1^DIQ(6914,ENEQ("DA"),19)']""  ; not on a CMR | 
|---|
| 118 | . ; included in batch | 
|---|
| 119 | . S ENT("BAT")=ENT("BAT")+1 | 
|---|
| 120 | . I +$$CHKFA^ENFAUTL(ENEQ("DA")) S ENT("FAP")=ENT("FAP")+1 Q  ; already | 
|---|
| 121 | . I 'ENBAT("XMT") D  ; validate only | 
|---|
| 122 | . . F I=0,2,3,8,9 S ENEQ(I)=$G(^ENG(6914,ENEQ("DA"),I)) | 
|---|
| 123 | . . D ^ENFAVAL | 
|---|
| 124 | . I ENBAT("XMT") D ^ENFAACQ ; transmit (includes validation) | 
|---|
| 125 | ; report results | 
|---|
| 126 | S ENBAT("TYPE")="STATION" | 
|---|
| 127 | S ENBAT("SEL","E")=ENBAT("SEL","I") | 
|---|
| 128 | D RPTB | 
|---|
| 129 | ; | 
|---|
| 130 | STNX ; exit point for STN | 
|---|
| 131 | K DIC,ENBAT,ENFA,ENFAP,ENSN,ENSND,X,Y | 
|---|
| 132 | Q | 
|---|
| 133 | ; | 
|---|
| 134 | RPTB ; Report of Batch Validate/Transmit FA Documents for Equipment | 
|---|
| 135 | ; Input - required | 
|---|
| 136 | ;   ENBAT("TYPE") = type of batch (CMR or STATION) | 
|---|
| 137 | ;   ENBA("SEL","E") = value specified (either a CMR or STATION NUMBER) | 
|---|
| 138 | ;   ENT("BAT") = count of equipment in batch (meets basic criteria) | 
|---|
| 139 | ;   ENT("FAP") = count of batch items already established in FAP | 
|---|
| 140 | ;   ENBAT("XMT") = flag (0 or 1), true for transmit options | 
|---|
| 141 | ; Input - optional | 
|---|
| 142 | ;   ^TMP($J,"BAD",equip entry #,line number) = validation problem | 
|---|
| 143 | ; Output | 
|---|
| 144 | ;   Kills ^TMP($J | 
|---|
| 145 | U IO | 
|---|
| 146 | S (END,ENPG)=0 D NOW^%DTC S Y=% D DD^%DT S ENFA("NOW")=Y | 
|---|
| 147 | D RPTBHD | 
|---|
| 148 | ; count batch items which failed validation | 
|---|
| 149 | S I=0 F  S I=$O(^TMP($J,"BAD",I)) Q:I'>0  S ENT("BAD")=ENT("BAD")+1 | 
|---|
| 150 | S ENT("SENT")=ENT("BAT")-(ENT("FAP")+ENT("BAD")) | 
|---|
| 151 | ; summarize validate/transmit results | 
|---|
| 152 | W !!,+ENT("BAT")_" records have been processed from ",ENBAT("TYPE") | 
|---|
| 153 | W ": ",ENBAT("SEL","E")_"." | 
|---|
| 154 | W !!,ENT("SENT")_" record",$S(ENT("SENT")=1:" ",1:"s ") | 
|---|
| 155 | W $S('ENBAT("XMT"):"would have been",1:$S(ENT("SENT")=1:"was",1:"were"))_" sent to FAP." | 
|---|
| 156 | W !,ENT("FAP")_$S('ENBAT("XMT"):" would not have been",1:$S(ENT("FAP")=1:" was not",1:" were not"))_" sent due to already being established in FAP." | 
|---|
| 157 | W !,ENT("BAD")_$S('ENBAT("XMT"):" would not have been",1:$S(ENT("BAD")=1:" was not",1:" were not"))_" sent due to validation problems." | 
|---|
| 158 | ; detailed validation problems | 
|---|
| 159 | I ENT("BAD")>0 D | 
|---|
| 160 | . W !!,"Equipment Records not sent because of validation problems: " | 
|---|
| 161 | . W !!,"Entry #",?24,"Reason" | 
|---|
| 162 | . S I=0 F  S I=$O(^TMP($J,"BAD",I)) Q:'I  D  Q:END | 
|---|
| 163 | . . S II=0 F  S II=$O(^TMP($J,"BAD",I,II)) Q:'II  D  Q:END | 
|---|
| 164 | . . . I $Y+4>IOSL D RPTBHD Q:END  W !!,"Entry #",?24,"Reason" | 
|---|
| 165 | . . . W !,$J(I,11),"        ",^TMP($J,"BAD",I,II) | 
|---|
| 166 | . . W ! | 
|---|
| 167 | I 'END,$E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR | 
|---|
| 168 | K ^TMP($J),DIR,DIROUT,DIRUT,DTOUT,DUOUT,I,II,X,Y | 
|---|
| 169 | K END,ENEQ,ENFA,ENFAP,ENPG,ENT | 
|---|
| 170 | S:$D(ZTQUEUED) ZTREQ="Q" | 
|---|
| 171 | D ^%ZISC | 
|---|
| 172 | Q | 
|---|
| 173 | RPTBHD ; header for FA batch validate/transmit report | 
|---|
| 174 | I $E(IOST,1,2)="C-",ENPG S DIR(0)="E" D ^DIR I 'Y S END=1 Q | 
|---|
| 175 | I $E(IOST,1,2)="C-"!ENPG W @IOF | 
|---|
| 176 | S ENPG=ENPG+1 | 
|---|
| 177 | W !,"FA DOCUMENT ",$S(ENBAT("XMT"):"TRANSMISSION",1:"VALIDITY CHECK") | 
|---|
| 178 | W " FOR ",ENBAT("TYPE"),": ",ENBAT("SEL","E") | 
|---|
| 179 | W ?49,ENFA("NOW"),?72,"page ",ENPG | 
|---|
| 180 | Q | 
|---|
| 181 | LISTP ; List Problems with Equipment/Document | 
|---|
| 182 | ; Called from various FAP Document routines | 
|---|
| 183 | ; Input | 
|---|
| 184 | ;   ENEQ("DA") - equipment entry # | 
|---|
| 185 | ;   ^TMP($J,"BAD",ENEQ("DA")) - number of problems | 
|---|
| 186 | ;   ^TMP($J,"BAD",ENEQ("DA"),seqn #) - description of a problem | 
|---|
| 187 | ;   ENBAT("XMT") - optional, flag; true when transmitting (for FA only) | 
|---|
| 188 | ; Output | 
|---|
| 189 | ;   Problems are listed to the screen | 
|---|
| 190 | ;   ^TMP($J is killed | 
|---|
| 191 | N I | 
|---|
| 192 | W $C(7),!!,"This record "_$S($G(ENBAT("XMT"))=0:"would not have been",1:"was not")_" sent to FAP!" | 
|---|
| 193 | W !,"Reason" W:^TMP($J,"BAD",ENEQ("DA"))>1 "s" W ":" | 
|---|
| 194 | F I=1:1:^TMP($J,"BAD",ENEQ("DA")) W !?2,^TMP($J,"BAD",ENEQ("DA"),I) | 
|---|
| 195 | K ^TMP($J) | 
|---|
| 196 | Q | 
|---|
| 197 | ;ENFAXMTM | 
|---|