| 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
 | 
|---|