| 1 | ONCSED03 ;Hines OIFO/SG - EDITS 'RUN BATCH' (REPORT)  ; 2/14/07 10:21am
 | 
|---|
| 2 |  ;;2.11;ONCOLOGY;**47**;Mar 07, 1995;Build 19
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;***** PRINTS ADDITIONAL EDIT INFO
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ; EDIEN         Internal number of the edit in the list of parsed
 | 
|---|
| 9 |  ;               error messages generated by the RBQEXEC^ONCSED0101
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | EDINFO(EDIEN) ;
 | 
|---|
| 12 |  N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,EDTNDX,ESIEN,ESNAME,I,NODE,RC,SL,TMP,X,Y
 | 
|---|
| 13 |  S RC=0
 | 
|---|
| 14 |  S ESIEN=+$G(@ONC8MSG@("ES",EDIEN))                  Q:ESIEN'>0
 | 
|---|
| 15 |  S ESNAME=$G(@ONC8MSG@(ESIEN,1))                     Q:ESNAME=""
 | 
|---|
| 16 |  S EDTNDX=+$P($G(@ONC8MSG@(ESIEN,"E",EDIEN,0)),U,3)  Q:EDTNDX<0
 | 
|---|
| 17 |  S SL=$$REPEAT^XLFSTR("- ",$G(IOM,80)\2-1)
 | 
|---|
| 18 |  ;--- Header
 | 
|---|
| 19 |  S $Y=0  W @IOF,SL
 | 
|---|
| 20 |  W !,"Additional info on '"_$G(@ONC8MSG@(ESIEN,"E",EDIEN,1))_"'"
 | 
|---|
| 21 |  W !,SL
 | 
|---|
| 22 |  ;--- Description
 | 
|---|
| 23 |  S NODE=$$GETEDESC^ONCSED04(.ONCSAPI,ESNAME,EDTNDX)
 | 
|---|
| 24 |  I NODE'<0  W !  D  Q:RC
 | 
|---|
| 25 |  . S I=0
 | 
|---|
| 26 |  . F  S I=$O(@NODE@(I))  Q:I'>0  D  Q:RC
 | 
|---|
| 27 |  . . W !,@NODE@(I)  S RC=$$PAGE1()
 | 
|---|
| 28 |  ;--- Help
 | 
|---|
| 29 |  S NODE=$$GETEDHLP^ONCSED04(.ONCSAPI,ESNAME,EDTNDX)
 | 
|---|
| 30 |  I NODE'<0  W !  D  Q:RC
 | 
|---|
| 31 |  . S I=0
 | 
|---|
| 32 |  . F  S I=$O(@NODE@(I))  Q:I'>0  D  Q:RC
 | 
|---|
| 33 |  . . W !,@NODE@(I)  S RC=$$PAGE1()
 | 
|---|
| 34 |  ;--- Trailer
 | 
|---|
| 35 |  W !,SL
 | 
|---|
| 36 |  S RC=$$PAGE1(,1)
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ;***** PRINTS THE MESSAGES
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ; [.ONCSAPI]    Reference to the API descriptor (see ^ONCSAPI)
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  ; ONC8MSG       Closed root of the list of parsed error messages
 | 
|---|
| 44 |  ;               (generated by the RBQEXEC^ONCSED0101)
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  ; [FLAGS]       Flags that control the output
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ; Return values:
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ;       <0  Error Descriptor (see ^ONCSAPI for details)
 | 
|---|
| 51 |  ;        0  Ok
 | 
|---|
| 52 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 53 |  ;        2  Timeout
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | MESSAGES(ONCSAPI,ONC8MSG,FLAGS) ;
 | 
|---|
| 56 |  N ONCMNL        ; Maximum number of lines per page
 | 
|---|
| 57 |  N ONCPAGE       ; Pointers to the beginning of the current page
 | 
|---|
| 58 |  N ONCESIEN      ; Internal number of the current edit set
 | 
|---|
| 59 |  N ONCEDIEN      ; Internal number of the current edit
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  N EDTNDX,ESNAME,IEN,NODE,RC,REPRINT,TMP
 | 
|---|
| 62 |  S RC=0,REPRINT=1,ONCMNL=$S($G(IOSL)>10:+IOSL,1:24)
 | 
|---|
| 63 |  ;=== Set the pointers to the beginning of the list
 | 
|---|
| 64 |  S ONCESIEN=$O(@ONC8MSG@(0)),ONCEDIEN=""
 | 
|---|
| 65 |  S ONCPAGE=ONCESIEN_U_ONCEDIEN
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ;=== Print the messages and process user input
 | 
|---|
| 68 |  F  D  Q:RC!(ONCESIEN'>0)
 | 
|---|
| 69 |  . F  Q:ONCESIEN'>0  D  Q:RC  S ONCESIEN=$O(@ONC8MSG@(ONCESIEN)),ONCEDIEN=""
 | 
|---|
| 70 |  . . ;--- Edit set name
 | 
|---|
| 71 |  . . S ESNAME=@ONC8MSG@(ONCESIEN,1)
 | 
|---|
| 72 |  . . I ONCEDIEN'>0  D  Q:RC
 | 
|---|
| 73 |  . . . I REPRINT  S REPRINT=0
 | 
|---|
| 74 |  . . . E  S RC=$$PAGE(3)  Q:RC  W !!
 | 
|---|
| 75 |  . . . S TMP=ESNAME_" (Metafile Version: "_$P(@ONC8MSG@(0),U,4)_")"
 | 
|---|
| 76 |  . . . W TMP,!,$$REPEAT^XLFSTR("-",$L(TMP))
 | 
|---|
| 77 |  . . . S ONCEDIEN=$O(@ONC8MSG@(ONCESIEN,"E",0))
 | 
|---|
| 78 |  . . ;---
 | 
|---|
| 79 |  . . F  Q:ONCEDIEN'>0  D  Q:RC  S ONCEDIEN=$O(@ONC8MSG@(ONCESIEN,"E",ONCEDIEN))
 | 
|---|
| 80 |  . . . ;--- Edit name
 | 
|---|
| 81 |  . . . I REPRINT  S REPRINT=0
 | 
|---|
| 82 |  . . . E  S RC=$$PAGE(2)  Q:RC  W !!
 | 
|---|
| 83 |  . . . W ?2,ONCEDIEN_". "_@ONC8MSG@(ONCESIEN,"E",ONCEDIEN,1)
 | 
|---|
| 84 |  . . . S NODE=$NA(@ONC8MSG@(ONCESIEN,"E",ONCEDIEN))
 | 
|---|
| 85 |  . . . ;--- Messages generated by the edit
 | 
|---|
| 86 |  . . . S IEN=0
 | 
|---|
| 87 |  . . . F  S IEN=$O(@NODE@("M",IEN))  Q:IEN'>0  D  Q:RC
 | 
|---|
| 88 |  . . . . S RC=$$PRTMSG($P(@NODE@("M",IEN,0),U,2),@NODE@("M",IEN,1),5)
 | 
|---|
| 89 |  . . . Q:RC
 | 
|---|
| 90 |  . . . ;--- Fields validated by the edit
 | 
|---|
| 91 |  . . . S IEN=0
 | 
|---|
| 92 |  . . . F  S IEN=$O(@NODE@("F",IEN))  Q:IEN'>0  D  Q:RC
 | 
|---|
| 93 |  . . . . S TMP=$E(@NODE@("F",IEN,1),1,25)               ; Name
 | 
|---|
| 94 |  . . . . S TMP=TMP_" ("_(+$P(@NODE@("F",IEN,0),U))_")"  ; Position
 | 
|---|
| 95 |  . . . . S RC=$$PRTFLD(TMP,$G(@NODE@("F",IEN,2)),9,35)
 | 
|---|
| 96 |  . ;--- Force the "end of page" prompt after the last
 | 
|---|
| 97 |  . ;--- portion of the data
 | 
|---|
| 98 |  . I 'RC,$E(IOST,1,2)="C-",ONCESIEN'>0,$P(ONCPAGE,U,3)  D
 | 
|---|
| 99 |  . . S RC=$$PAGE(,1)
 | 
|---|
| 100 |  . Q:+RC'=3
 | 
|---|
| 101 |  . ;--- Display the additional edit info
 | 
|---|
| 102 |  . D EDINFO(+$P(RC,U,2))
 | 
|---|
| 103 |  . ;--- Initiate the current page re-print
 | 
|---|
| 104 |  . W @IOF  S ($Y,RC)=0,REPRINT=1
 | 
|---|
| 105 |  . S ONCESIEN=$P(ONCPAGE,U),ONCEDIEN=$P(ONCPAGE,U,2)
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  ;=== Cleanup
 | 
|---|
| 108 |  K ^UTILITY($J,"W")
 | 
|---|
| 109 |  Q RC
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  ;***** CHECKS IS NEW PAGE OF MESSAGES SHOULD BE STARTED
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  ; [RESERVE]     Number of additional reserved lines (0, by default).
 | 
|---|
| 114 |  ;               If the current page does not have so many lines
 | 
|---|
| 115 |  ;               available, a new page will be started.
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  ; [FORCE]       Force the "end of page" prompt.
 | 
|---|
| 118 |  ;
 | 
|---|
| 119 |  ; Return values:
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  ;        0  Ok
 | 
|---|
| 122 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 123 |  ;        2  Timeout
 | 
|---|
| 124 |  ;        3  Display the edit info
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 | PAGE(RESERVE,FORCE) ;
 | 
|---|
| 127 |  N RC,TRM
 | 
|---|
| 128 |  S RC=0,TRM=($E(IOST,1,2)="C-"),$P(ONCPAGE,U,3)=1
 | 
|---|
| 129 |  I ($Y'<(ONCMNL-$S(TRM:3,1:1)-$G(RESERVE)))!$G(FORCE)  D
 | 
|---|
| 130 |  . I 'TRM  W @IOF  S $Y=0  Q
 | 
|---|
| 131 |  . N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
 | 
|---|
| 132 |  . S DIR(0)="FAO^^K:X'?.N X"
 | 
|---|
| 133 |  . S DIR("A")="RETURN to continue, '^' to exit, or Edit# for help:"
 | 
|---|
| 134 |  . S DIR("?",1)="Press RETURN key to continue the output, enter '^'"
 | 
|---|
| 135 |  . S DIR("?",2)="to stop it, or enter the number printed to the left"
 | 
|---|
| 136 |  . S DIR("?",3)="of the edit name to get additional information about"
 | 
|---|
| 137 |  . S DIR("?")="this edit."
 | 
|---|
| 138 |  . W !  D ^DIR
 | 
|---|
| 139 |  . S RC=$S($D(DUOUT):1,$D(DTOUT):2,1:0)  Q:RC
 | 
|---|
| 140 |  . I X>0  S RC=3_U_(+X)  Q
 | 
|---|
| 141 |  . S $Y=0  W !
 | 
|---|
| 142 |  . ;--- Mark the beginning of the new page
 | 
|---|
| 143 |  . S ONCPAGE=ONCESIEN_U_ONCEDIEN
 | 
|---|
| 144 |  Q RC
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 |  ;***** CHECKS IS NEW PAGE OF THE EDIT INFO SHOULD BE STARTED
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 |  ; [RESERVE]     Number of additional reserved lines (0, by default).
 | 
|---|
| 149 |  ;               If the current page does not have so many lines
 | 
|---|
| 150 |  ;               available, a new page will be started.
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 |  ; [FORCE]       Force the prompt
 | 
|---|
| 153 |  ;
 | 
|---|
| 154 |  ; Return values:
 | 
|---|
| 155 |  ;
 | 
|---|
| 156 |  ;        0  Ok
 | 
|---|
| 157 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 158 |  ;        2  Timeout
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | PAGE1(RESERVE,FORCE) ;
 | 
|---|
| 161 |  N RC,TRM
 | 
|---|
| 162 |  S RC=0,TRM=($E(IOST,1,2)="C-")
 | 
|---|
| 163 |  I ($Y'<(ONCMNL-$S(TRM:3,1:1)-$G(RESERVE)))!$G(FORCE)  D
 | 
|---|
| 164 |  . I 'TRM  W @IOF  S $Y=0  Q
 | 
|---|
| 165 |  . N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,I,X,Y
 | 
|---|
| 166 |  . S DIR(0)="EA"
 | 
|---|
| 167 |  . S DIR("A")="Enter RETURN to continue or '^' to return to messages:"
 | 
|---|
| 168 |  . W !  D ^DIR
 | 
|---|
| 169 |  . S RC=$S($D(DUOUT):1,$D(DTOUT):2,1:0)
 | 
|---|
| 170 |  . I 'RC  S $Y=0  W !
 | 
|---|
| 171 |  Q RC
 | 
|---|
| 172 |  ;
 | 
|---|
| 173 |  ;***** PRINTS THE FIELD (INTERNAL)
 | 
|---|
| 174 |  ;
 | 
|---|
| 175 |  ; NAME          Field name
 | 
|---|
| 176 |  ; X             Field value
 | 
|---|
| 177 |  ; DIWL          Left margin for the output
 | 
|---|
| 178 |  ; MNL           Maximum length of the field name
 | 
|---|
| 179 |  ;
 | 
|---|
| 180 |  ; Return values:
 | 
|---|
| 181 |  ;
 | 
|---|
| 182 |  ;        0  Ok
 | 
|---|
| 183 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 184 |  ;        2  Timeout
 | 
|---|
| 185 |  ;
 | 
|---|
| 186 | PRTFLD(NAME,X,DIWL,MNL) ;
 | 
|---|
| 187 |  N DIWF,DIWR,I,L,RC,TMP
 | 
|---|
| 188 |  S DIWF="|",L=MNL+3,DIWR=$G(IOM,80)-L-1
 | 
|---|
| 189 |  K ^UTILITY($J,"W")
 | 
|---|
| 190 |  D ^DIWP
 | 
|---|
| 191 |  ;--- Write the name and the first piece of the value
 | 
|---|
| 192 |  S TMP=DIWL-1,L=L+TMP
 | 
|---|
| 193 |  W !?TMP,$$LJ^XLFSTR(NAME,MNL)_" = "_$G(^UTILITY($J,"W",DIWL,1,0))
 | 
|---|
| 194 |  S RC=$$PAGE()  Q:RC RC
 | 
|---|
| 195 |  ;--- Write remaining pieces of the value (if any)
 | 
|---|
| 196 |  S I=1
 | 
|---|
| 197 |  F  S I=$O(^UTILITY($J,"W",DIWL,I))  Q:I'>0  D  Q:RC
 | 
|---|
| 198 |  . W !?L,$G(^UTILITY($J,"W",DIWL,I,0))
 | 
|---|
| 199 |  . S RC=$$PAGE()
 | 
|---|
| 200 |  Q RC
 | 
|---|
| 201 |  ;
 | 
|---|
| 202 |  ;***** PRINTS THE MESSAGE (INTERNAL)
 | 
|---|
| 203 |  ;
 | 
|---|
| 204 |  ; TYPE          Message type
 | 
|---|
| 205 |  ; X             Message text
 | 
|---|
| 206 |  ; DIWL          Left margin for the output
 | 
|---|
| 207 |  ;
 | 
|---|
| 208 |  ; Return values:
 | 
|---|
| 209 |  ;
 | 
|---|
| 210 |  ;        0  Ok
 | 
|---|
| 211 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 212 |  ;        2  Timeout
 | 
|---|
| 213 |  ;
 | 
|---|
| 214 | PRTMSG(TYPE,X,DIWL) ;
 | 
|---|
| 215 |  N DIWF,DIWR,I,L,RC,TMP
 | 
|---|
| 216 |  S DIWF="|",L=$L(TYPE)+1,DIWR=$G(IOM,80)-L-1
 | 
|---|
| 217 |  K ^UTILITY($J,"W")
 | 
|---|
| 218 |  D ^DIWP
 | 
|---|
| 219 |  ;--- Write the type and first piece of the name
 | 
|---|
| 220 |  S TMP=DIWL-1,L=L+TMP
 | 
|---|
| 221 |  W !?TMP,TYPE_":"_$G(^UTILITY($J,"W",DIWL,1,0))
 | 
|---|
| 222 |  S RC=$$PAGE()  Q:RC RC
 | 
|---|
| 223 |  ;--- Write remaing pieces of the name (if any)
 | 
|---|
| 224 |  S I=1
 | 
|---|
| 225 |  F  S I=$O(^UTILITY($J,"W",DIWL,I))  Q:I'>0  D  Q:RC
 | 
|---|
| 226 |  . W !?L,$G(^UTILITY($J,"W",DIWL,I,0))
 | 
|---|
| 227 |  . S RC=$$PAGE()
 | 
|---|
| 228 |  Q RC
 | 
|---|
| 229 |  ;
 | 
|---|
| 230 |  ;***** PRINTS THE TOTALS
 | 
|---|
| 231 |  ;
 | 
|---|
| 232 |  ; [.ONCSAPI]    Reference to the API descriptor (see ^ONCSAPI)
 | 
|---|
| 233 |  ;
 | 
|---|
| 234 |  ; ONC8MSG       Closed root of the list of parsed error messages
 | 
|---|
| 235 |  ;               (generated by the RBQEXEC^ONCSED0101)
 | 
|---|
| 236 |  ;
 | 
|---|
| 237 |  ; [FLAGS]       Flags that control the output
 | 
|---|
| 238 |  ;
 | 
|---|
| 239 |  ; Return values:
 | 
|---|
| 240 |  ;
 | 
|---|
| 241 |  ;       <0  Error Descriptor (see ^ONCSAPI for details)
 | 
|---|
| 242 |  ;        0  Ok
 | 
|---|
| 243 |  ;        1  User canceled the output ('^' was entered)
 | 
|---|
| 244 |  ;        2  Timeout
 | 
|---|
| 245 |  ;
 | 
|---|
| 246 | TOTALS(ONCSAPI,ONC8MSG,FLAGS) ;
 | 
|---|
| 247 |  N EDIEN,ESIEN,IEN,ONCMNL,RC,TMP
 | 
|---|
| 248 |  S RC=0,ONCMNL=$S($G(IOSL)>10:+IOSL,1:20)
 | 
|---|
| 249 |  ;--- Header
 | 
|---|
| 250 |  S RC=$$PAGE(3)  Q:RC RC
 | 
|---|
| 251 |  W !!,$$LJ^XLFSTR("Edit Set","50T")_"  Errors  Warnings"
 | 
|---|
| 252 |  W !,$$REPEAT^XLFSTR("-",50)_"  ------  --------"
 | 
|---|
| 253 |  ;--- Edit set totals
 | 
|---|
| 254 |  S ESIEN=0
 | 
|---|
| 255 |  F  S ESIEN=$O(@ONC8MSG@(ESIEN))  Q:ESIEN'>0  D  Q:RC
 | 
|---|
| 256 |  . W !,$$LJ^XLFSTR(@ONC8MSG@(ESIEN,1),"50T")
 | 
|---|
| 257 |  . S TMP=$G(@ONC8MSG@(ESIEN,0))
 | 
|---|
| 258 |  . W "  "_$J($P(TMP,U,1),6)_"  "_$J($P(TMP,U,2),8)
 | 
|---|
| 259 |  . S RC=$$PAGE()  Q:RC
 | 
|---|
| 260 |  Q RC
 | 
|---|