| 1 | PRCOER ;WISC/DJM-EDI REPORTS USING LIST MANAGER ; [10/20/98 11:58am]
 | 
|---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | EN ; -- main entry point for PRCO EDI REPORTS
 | 
|---|
| 6 |  ; First lets see if there is anything to report.  If not - exit.
 | 
|---|
| 7 |  Q:$G(PRCOFLG)=-1
 | 
|---|
| 8 |  N LIST,LIST1,LIST2,PO,PRCO
 | 
|---|
| 9 |  S LIST=""
 | 
|---|
| 10 |  S LIST=$O(^PRC(443.75,"AC",LIST))
 | 
|---|
| 11 |  S LIST1=""
 | 
|---|
| 12 |  S LIST1=$O(^PRC(443.75,"AF",LIST1))
 | 
|---|
| 13 |  S LIST2=""
 | 
|---|
| 14 |  S LIST2=$O(^PRC(443.75,"AO",LIST2))
 | 
|---|
| 15 |  I LIST="",LIST1="",LIST2="" G NOTHING
 | 
|---|
| 16 |  N X
 | 
|---|
| 17 |  I '$D(IOF)!('$G(IOST(0))) S IOP="HOME" D ^%ZIS K IOP
 | 
|---|
| 18 |  S X="IORVON;IORVOFF" D ENDR^%ZISS
 | 
|---|
| 19 |  S PRCO("RV1")=$G(IORVON)
 | 
|---|
| 20 |  S PRCO("RV0")=$G(IORVOFF)
 | 
|---|
| 21 |  S PRCO("XY")="N DX,DY S (DX,DY)=0 "_$G(^%ZOSF("XY"))
 | 
|---|
| 22 |  D EN^VALM("PRCO EDI REPORTS")
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | HDR ; -- header code
 | 
|---|
| 26 |  S VALMHDR(1)="EDI Transactions from IFCAP Reports"
 | 
|---|
| 27 |  I SENDER>0 D
 | 
|---|
| 28 |  . S NAME=$P($G(^VA(200,SENDER,0)),U)
 | 
|---|
| 29 |  . S VALMHDR(1)=VALMHDR(1)_"     Sender is "_NAME
 | 
|---|
| 30 |  . Q
 | 
|---|
| 31 |  Q
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | INIT ; -- init variables and list array
 | 
|---|
| 34 |  N COUNT,DATE,LINENO,LIST,LIST0,LIST1,LIST2,ERROR,REJECT,RFQ,TXT,TYPE,VENDOR,VENDOR1
 | 
|---|
| 35 |  K ^PRC(443.75,"PRCOER",$J)
 | 
|---|
| 36 |  S LIST=""
 | 
|---|
| 37 |  S LIST=$O(^PRC(443.75,"AC",LIST))
 | 
|---|
| 38 |  S LIST1=""
 | 
|---|
| 39 |  S LIST1=$O(^PRC(443.75,"AF",LIST1))
 | 
|---|
| 40 |  S LIST2=""
 | 
|---|
| 41 |  S LIST2=$O(^PRC(443.75,"AO",LIST2))
 | 
|---|
| 42 |  I LIST="",LIST1="",LIST2="" G NOTHING
 | 
|---|
| 43 |  D CLEAN^VALM10
 | 
|---|
| 44 |  S COUNT=0
 | 
|---|
| 45 |  S LINENO=0
 | 
|---|
| 46 |  G:SENDER>0 INIT0
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ;  First list all PROGRESS LEVEL 3 records.
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  S LIST=""
 | 
|---|
| 51 |  F  S LIST=$O(^PRC(443.75,"AM",3,LIST)) Q:LIST=""  D
 | 
|---|
| 52 |  .  S LIST0=""
 | 
|---|
| 53 |  .  F  S LIST0=$O(^PRC(443.75,"AM",3,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 54 |  .  .  S LIST1=""
 | 
|---|
| 55 |  .  .  F  S LIST1=$O(^PRC(443.75,"AM",3,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 56 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 57 |  .  .  .  Q:LIST2=""
 | 
|---|
| 58 |  .  .  .  D INIT1
 | 
|---|
| 59 |  .  .  .  Q
 | 
|---|
| 60 |  .  .  Q
 | 
|---|
| 61 |  .  Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ;  Next list all PROGRESS LEVEL 2 records.
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  S LIST=""
 | 
|---|
| 66 |  F  S LIST=$O(^PRC(443.75,"AL",2,LIST)) Q:LIST=""  D
 | 
|---|
| 67 |  .  S LIST0=""
 | 
|---|
| 68 |  .  F  S LIST0=$O(^PRC(443.75,"AL",2,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 69 |  .  .  S LIST1=""
 | 
|---|
| 70 |  .  .  F  S LIST1=$O(^PRC(443.75,"AL",2,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 71 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 72 |  .  .  .  Q:LIST2=""
 | 
|---|
| 73 |  .  .  .  D INIT1
 | 
|---|
| 74 |  .  .  .  Q
 | 
|---|
| 75 |  .  .  Q
 | 
|---|
| 76 |  .  Q
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  ;  Last list all PROGRESS LEVEL 1 records.
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 |  S LIST=""
 | 
|---|
| 81 |  F  S LIST=$O(^PRC(443.75,"AJ",1,LIST)) Q:LIST=""  D
 | 
|---|
| 82 |  .  S LIST0=""
 | 
|---|
| 83 |  .  F  S LIST0=$O(^PRC(443.75,"AJ",1,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 84 |  .  .  S LIST1=""
 | 
|---|
| 85 |  .  .  F  S LIST1=$O(^PRC(443.75,"AJ",1,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 86 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 87 |  .  .  .  Q:LIST2=""
 | 
|---|
| 88 |  .  .  .  D INIT1
 | 
|---|
| 89 |  .  .  .  Q
 | 
|---|
| 90 |  .  .  Q
 | 
|---|
| 91 |  .  Q
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ;  Now lets show the list to the users.
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 |  S VALMCNT=COUNT
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | INIT0 ;  Come here if the user selected one sender to view.
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  ;  First list all PROGRESS LEVEL 3 records for SENDER.
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  S LIST=""
 | 
|---|
| 103 |  F  S LIST=$O(^PRC(443.75,"AM1",3,SENDER,LIST)) Q:LIST=""  D
 | 
|---|
| 104 |  .  S LIST0=""
 | 
|---|
| 105 |  .  F  S LIST0=$O(^PRC(443.75,"AM1",3,SENDER,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 106 |  .  .  S LIST1=""
 | 
|---|
| 107 |  .  .  F  S LIST1=$O(^PRC(443.75,"AM1",3,SENDER,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 108 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 109 |  .  .  .  Q:LIST2=""
 | 
|---|
| 110 |  .  .  .  D INIT1
 | 
|---|
| 111 |  .  .  .  Q
 | 
|---|
| 112 |  .  .  Q
 | 
|---|
| 113 |  .  Q
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 |  ;  Next list all PROGRESS LEVEL 2 records for SENDER.
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 |  S LIST=""
 | 
|---|
| 118 |  F  S LIST=$O(^PRC(443.75,"AL1",2,SENDER,LIST)) Q:LIST=""  D
 | 
|---|
| 119 |  .  S LIST0=""
 | 
|---|
| 120 |  .  F  S LIST0=$O(^PRC(443.75,"AL1",2,SENDER,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 121 |  .  .  S LIST1=""
 | 
|---|
| 122 |  .  .  F  S LIST1=$O(^PRC(443.75,"AL1",2,SENDER,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 123 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 124 |  .  .  .  Q:LIST2=""
 | 
|---|
| 125 |  .  .  .  D INIT1
 | 
|---|
| 126 |  .  .  .  Q
 | 
|---|
| 127 |  .  .  Q
 | 
|---|
| 128 |  .  Q
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  ;  Last list all PROGRESS LEVEL 1 records for SENDER.
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 |  S LIST=""
 | 
|---|
| 133 |  F  S LIST=$O(^PRC(443.75,"AJ1",1,SENDER,LIST)) Q:LIST=""  D
 | 
|---|
| 134 |  .  S LIST0=""
 | 
|---|
| 135 |  .  F  S LIST0=$O(^PRC(443.75,"AJ1",1,SENDER,LIST,LIST0),-1) Q:LIST0=""  D
 | 
|---|
| 136 |  .  .  S LIST1=""
 | 
|---|
| 137 |  .  .  F  S LIST1=$O(^PRC(443.75,"AJ1",1,SENDER,LIST,LIST0,LIST1)) Q:LIST1=""  D
 | 
|---|
| 138 |  .  .  .  S LIST2=$G(^PRC(443.75,LIST1,0))
 | 
|---|
| 139 |  .  .  .  Q:LIST2=""
 | 
|---|
| 140 |  .  .  .  D INIT1
 | 
|---|
| 141 |  .  .  .  Q
 | 
|---|
| 142 |  .  .  Q
 | 
|---|
| 143 |  .  Q
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 |  ;  Now lets show the list to the users.
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 |  S VALMCNT=COUNT
 | 
|---|
| 148 |  Q
 | 
|---|
| 149 |  ;
 | 
|---|
| 150 | INIT1 ;  ENTER DATA FROM THE RECORD CHOOSEN.
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 |  S PO=$P(LIST2,U,2)
 | 
|---|
| 153 |  S TXT=+$P(LIST2,U,3)
 | 
|---|
| 154 |  S RFQ=+$P(LIST2,U,10)
 | 
|---|
| 155 |  S RFQ=$S(RFQ=0:"O",1:"C")
 | 
|---|
| 156 |  S TYPE=$P(LIST2,U,4)
 | 
|---|
| 157 |  S TXT=$S(TYPE="TXT":TXT,TYPE="RFQ":RFQ,1:"")
 | 
|---|
| 158 |  S VENDOR=$P(LIST2,U,6)
 | 
|---|
| 159 |  S DATE=$P($P(LIST2,U,7),".",1)
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 |  I TYPE="PHA" D
 | 
|---|
| 162 |  . I '$D(^PRC(440,"AG",VENDOR)) S VENDOR="Not Found" Q
 | 
|---|
| 163 |  . S VENDOR=$O(^PRC(440,"AG",VENDOR,""))
 | 
|---|
| 164 |  . S VENDOR=$E($P($G(^PRC(440,VENDOR,0)),U),1,30)
 | 
|---|
| 165 |  . I VENDOR']"" S VENDOR="Not Found"
 | 
|---|
| 166 |  . Q
 | 
|---|
| 167 |  ;
 | 
|---|
| 168 |  I TYPE'="PHA" D
 | 
|---|
| 169 |  . I VENDOR="PUBLIC" Q
 | 
|---|
| 170 |  . S:$E(VENDOR,1,3)'="DUN" VENDOR="DUN"_VENDOR
 | 
|---|
| 171 |  . S VENDOR1=$O(^PRC(440,"DB",VENDOR,""))
 | 
|---|
| 172 |  . I VENDOR1>0 S VENDOR=$E($P($G(^PRC(440,VENDOR1,0)),U),1,30) Q
 | 
|---|
| 173 |  . S VENDOR1=$O(^PRC(444.1,"DB",VENDOR,""))
 | 
|---|
| 174 |  . I VENDOR1>0 S VENDOR=$E($P($G(^PRC(444.1,VENDOR1,0)),U),1,30) Q
 | 
|---|
| 175 |  . I VENDOR']"" S VENDOR="Not Found"
 | 
|---|
| 176 |  . Q
 | 
|---|
| 177 |  ;
 | 
|---|
| 178 |  S LIST2=$G(^PRC(443.75,LIST1,1))
 | 
|---|
| 179 |  S REJECT=$P(LIST2,U,7)
 | 
|---|
| 180 |  S ERROR=$P(LIST2,U,12)
 | 
|---|
| 181 |  S:$P(LIST2,U,1)]"" TYPE=$P(LIST2,U,1)
 | 
|---|
| 182 |  S:$P(LIST2,U,15)]"" TYPE=$P(LIST2,U,15)
 | 
|---|
| 183 |  ;
 | 
|---|
| 184 |  ; IN THE NEXT LINE THE $S DEFAULT - THE 1:PART AT THE END- WILL BE
 | 
|---|
| 185 |  ; 'POA' IN THE TYPE VARIABLE.
 | 
|---|
| 186 |  ;
 | 
|---|
| 187 |  S DATE=$S(",PHA,RFQ,TXT,"[TYPE:DATE,",ACT,PRJ,"[TYPE:$P($P(LIST2,U,2),".",1),1:$P($P(LIST2,U,16),"."))
 | 
|---|
| 188 |  S DATE=+$E(DATE,4,5)_"/"_+$E(DATE,6,7)_"/"_(+$E(DATE,1,3)+1700)
 | 
|---|
| 189 |  S COUNT=COUNT+1
 | 
|---|
| 190 |  S X=$$SETFLD^VALM1(COUNT,"","NUMBER")
 | 
|---|
| 191 |  S X=$$SETFLD^VALM1(PO,X,"PO")
 | 
|---|
| 192 |  S X=$$SETFLD^VALM1(TXT,X,"TXT/RFQ")
 | 
|---|
| 193 |  S X=$$SETFLD^VALM1(TYPE,X,"TYPE")
 | 
|---|
| 194 |  S X=$$SETFLD^VALM1(VENDOR,X,"VENDOR")
 | 
|---|
| 195 |  S X=$$SETFLD^VALM1(REJECT,X,"REJECT")
 | 
|---|
| 196 |  S X=$$SETFLD^VALM1(ERROR,X,"ERROR")
 | 
|---|
| 197 |  S X=$$SETFLD^VALM1(DATE,X,"DATE")
 | 
|---|
| 198 |  S LINENO=LINENO+1
 | 
|---|
| 199 |  D SET^VALM10(COUNT,X,LINENO)
 | 
|---|
| 200 |  S ^PRC(443.75,"PRCOER",$J,LINENO)=COUNT_"^"_LIST1
 | 
|---|
| 201 |  Q
 | 
|---|
| 202 |  ;
 | 
|---|
| 203 | HELP ; -- help code
 | 
|---|
| 204 |  I X["??" G HELP1
 | 
|---|
| 205 |  ;
 | 
|---|
| 206 |  D EN^DDIOL("Select one of the valid actions above, or enter '??' for extended help.","","!")
 | 
|---|
| 207 |  D PAUSE
 | 
|---|
| 208 |  Q
 | 
|---|
| 209 | HELP1 ;  DISPLAY LIST MANAGER STANDARD HELP SCREEN.
 | 
|---|
| 210 |  Q
 | 
|---|
| 211 |  ;
 | 
|---|
| 212 | PAUSE N DIR,DIRUT,DUOUT,DTOUT
 | 
|---|
| 213 |  S DIR("A")="Enter RETURN to continue"
 | 
|---|
| 214 |  S DIR(0)="E"
 | 
|---|
| 215 |  D ^DIR
 | 
|---|
| 216 |  Q
 | 
|---|
| 217 |  ;
 | 
|---|
| 218 | EXIT ; -- exit code
 | 
|---|
| 219 |  D CLEAN^VALM10
 | 
|---|
| 220 |  Q
 | 
|---|
| 221 |  ;
 | 
|---|
| 222 | NOTHING ; Come here if there are no transaction records to report.
 | 
|---|
| 223 |  D EN^DDIOL("There are no records to report on at this time.","","!!?5")
 | 
|---|
| 224 |  G PAUSE
 | 
|---|