[613] | 1 | RMPRPIUA ;HINCIO/ODJ - APIs for file 661.7 ;3/8/01
|
---|
| 2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | ; SCAN - If scanned an item's barcode locate record from
|
---|
| 6 | ; Prosthetic Current Stock file 661.7
|
---|
| 7 | ;
|
---|
| 8 | ; Inputs:
|
---|
| 9 | ; RMPR7 - array containing...
|
---|
| 10 | ; RMPR7("STATION") - Station ien
|
---|
| 11 | ; RMPR7("HCPCS") - HCPCS code (contained in bar code)
|
---|
| 12 | ; RMPR7("DATE&TIME") - Date&Time (contained in bar code)
|
---|
| 13 | ;
|
---|
| 14 | ; Outputs:
|
---|
| 15 | ; RMPR7 - complete array for the 661.7 record read (if any)...
|
---|
| 16 | ; RMPR7("IEN")
|
---|
| 17 | ; RMPR7("STATION") - Station Name
|
---|
| 18 | ; (nb will now be in external form)
|
---|
| 19 | ; RMPR7("HCPCS") -
|
---|
| 20 | ; RMPR7("SEQUENCE") -
|
---|
| 21 | ; RMPR7("HCPCS ITEM") -
|
---|
| 22 | ; RMPR7("LOCATION") -
|
---|
| 23 | ; RMPR7("QUANTITY") -
|
---|
| 24 | ; RMPR7("VALUE") -
|
---|
| 25 | ; RMPR7("UNIT") -
|
---|
| 26 | ;
|
---|
| 27 | ; RMPREXC - exit condition
|
---|
| 28 | ; 0 - normal, everything ok
|
---|
| 29 | ; 1 - multi-instance but with station match (RMPR7 set)
|
---|
| 30 | ; 2 - single instance but with
|
---|
| 31 | ; station mis-match (RMPR7 set)
|
---|
| 32 | ; 3 - multi-instance and station mis-match (RMPR7 not set)
|
---|
| 33 | ; RMPRERR - error code returned by function
|
---|
| 34 | ; 0 - no error
|
---|
| 35 | ; 1 - null HCPCS input
|
---|
| 36 | ; 2 - null Date&Time entered
|
---|
| 37 | ; 3 - corrupt file (sequence but no ien)
|
---|
| 38 | ; 4 - corrupt file (ien but no record)
|
---|
| 39 | ; 5 - error reading 661.7
|
---|
| 40 | ; 99 - no instances found for input HCPCS and Date&Time
|
---|
| 41 | SCAN(RMPR7,RMPREXC) ;
|
---|
| 42 | N RMPRERR,RMPRC,RMPRSEQ,RMPRIEN,RMPRS,RMPRIEN1,RMPRIEN2,RMPRDTTM
|
---|
| 43 | S RMPRERR=0
|
---|
| 44 | S RMPREXC=0
|
---|
| 45 | S RMPR7("STATION")=$G(RMPR7("STATION"))
|
---|
| 46 | I $G(RMPR7("HCPCS"))="" S RMPRERR=1 G SCANX
|
---|
| 47 | I $G(RMPR7("DATE&TIME"))="" S RMPRERR=2 G SCANX
|
---|
| 48 | S RMPRDTTM=RMPR7("DATE&TIME")
|
---|
| 49 | S RMPRC=0,RMPRIEN1="",RMPRIEN2="",RMPR7("IEN")=""
|
---|
| 50 | S RMPRSEQ=""
|
---|
| 51 | ;
|
---|
| 52 | ; Get ien for current stock record
|
---|
| 53 | ; Record number of instances for same HCPCS and Date&Time in
|
---|
| 54 | ; RMPRC (more than 1 should be very, very rare)
|
---|
| 55 | ; RMPRIEN1 is IEN for first instance
|
---|
| 56 | ; RMPRIEN2 is ien for any instance with station ien matching input
|
---|
| 57 | L +^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM)
|
---|
| 58 | F S RMPRSEQ=$O(^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM,RMPRSEQ)) Q:RMPRSEQ="" D Q:RMPRERR
|
---|
| 59 | . S RMPRIEN=$O(^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM,RMPRSEQ,""))
|
---|
| 60 | . I RMPRIEN="" S RMPRERR=3 Q
|
---|
| 61 | . I '$D(^RMPR(661.7,RMPRIEN,0)) S RMPRERR=4 Q
|
---|
| 62 | . S RMPRS=^RMPR(661.7,RMPRIEN,0)
|
---|
| 63 | . S RMPRC=RMPRC+1
|
---|
| 64 | . S RMPR7("UNIT")=$P(RMPRS,U,9)
|
---|
| 65 | . I RMPR7("STATION")=$P(RMPRS,"^",5) S RMPRIEN2=RMPRIEN
|
---|
| 66 | . I RMPRC=1 S RMPRIEN1=RMPRIEN
|
---|
| 67 | . Q
|
---|
| 68 | I RMPRERR G SCANU
|
---|
| 69 | I 'RMPRC S RMPRERR=99 G SCANU
|
---|
| 70 | ;
|
---|
| 71 | ; Set exit condition
|
---|
| 72 | I RMPRC>1 D
|
---|
| 73 | . I RMPRIEN2'="" S RMPR7("IEN")=RMPRIEN2,RMPREXC=1
|
---|
| 74 | . E S RMPREXC=3
|
---|
| 75 | . Q
|
---|
| 76 | E D
|
---|
| 77 | . I RMPRIEN2="" S RMPREXC=2
|
---|
| 78 | . S RMPR7("IEN")=RMPRIEN1
|
---|
| 79 | . Q
|
---|
| 80 | I RMPR7("IEN")'="" D
|
---|
| 81 | . S RMPRERR=$$GET^RMPRPIX7(.RMPR7)
|
---|
| 82 | . I RMPRERR S RMPRERR=5
|
---|
| 83 | . Q
|
---|
| 84 | SCANU L -^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM)
|
---|
| 85 | SCANX Q RMPRERR
|
---|
| 86 | ;
|
---|
| 87 | ; STOCK - For an entered Station, Location, HCPCS and Item return
|
---|
| 88 | ; total quantity on hand for that item, the average unit cost
|
---|
| 89 | ; and the vendor. If more than one vendor, use the first one.
|
---|
| 90 | ;
|
---|
| 91 | ; Inputs:
|
---|
| 92 | ; RMPR - an array with the following elements...
|
---|
| 93 | ; RMPR("STATION IEN") - Station ien (ptr ^DIC(4,)
|
---|
| 94 | ; RMPR("LOCATION IEN") - Location ien (ptr ^RMPR(661.5,)
|
---|
| 95 | ; RMPR("HCPCS") - HCPCS code (eg E0111)
|
---|
| 96 | ; RMPR("ITEM") - HCPCS Item number (eg 1)
|
---|
| 97 | ;
|
---|
| 98 | ; Outputs:
|
---|
| 99 | ; RMPR - additional elements to the input RMPR array
|
---|
| 100 | ; RMPR("QOH") - Quantity on hand
|
---|
| 101 | ; RMPR("UNIT COST") - Unit cost per Item
|
---|
| 102 | ; RMPR("VENDOR") - Vendor Name
|
---|
| 103 | ; RMPR("VENDOR IEN") - Vendor ien
|
---|
| 104 | ;
|
---|
| 105 | ; RMPRERR - function return...
|
---|
| 106 | ; 0 - no errors
|
---|
| 107 | ; 1 - null Station ien input
|
---|
| 108 | ; 2 - null Location ien input
|
---|
| 109 | ; 3 - null HCPCS code input
|
---|
| 110 | ; 4 - null Item input
|
---|
| 111 | ; 5 - problem with 661.7 file
|
---|
| 112 | ; 6 - problem with 661.6 file
|
---|
| 113 | STOCK(RMPR) ;
|
---|
| 114 | N RMPRERR,RMPRK,RMPROLD,RMPREOF,RMPR7,RMPR6,RMPRTCST
|
---|
| 115 | S RMPRERR=0
|
---|
| 116 | S RMPRTCST=0
|
---|
| 117 | S RMPR("QOH")=0
|
---|
| 118 | S RMPR("UNIT COST")=0
|
---|
| 119 | S RMPR("VENDOR")=""
|
---|
| 120 | S RMPR("VENDOR IEN")=""
|
---|
| 121 | S RMPRK("STATION")=$G(RMPR("STATION IEN"))
|
---|
| 122 | I RMPRK("STATION")="" S RMPRERR=1 G STOCKX
|
---|
| 123 | S RMPRK("LOCATION")=$G(RMPR("LOCATION IEN"))
|
---|
| 124 | I RMPRK("LOCATION")="" S RMPRERR=2 G STOCKX
|
---|
| 125 | S RMPRK("HCPCS")=$G(RMPR("HCPCS"))
|
---|
| 126 | I RMPRK("HCPCS")="" S RMPRERR=3 G STOCKX
|
---|
| 127 | S RMPRK("ITEM")=$G(RMPR("ITEM"))
|
---|
| 128 | I RMPRK("ITEM")="" S RMPRERR=4 G STOCKX
|
---|
| 129 | L +^RMPR(661.7,"XSLHIDS",RMPR("STATION IEN"),RMPR("LOCATION IEN"),RMPR("HCPCS"),RMPR("ITEM"))
|
---|
| 130 | ;
|
---|
| 131 | ; Loop on all records for Stn, Loc, HCPCS and Item, and sum qty and cst
|
---|
| 132 | STOCKA S RMPRERR=$$NEXT^RMPRPIXE(.RMPRK,"XSLHIDS","",1,.RMPROLD,.RMPREOF)
|
---|
| 133 | I RMPRERR S RMPRERR=5 G STOCKU
|
---|
| 134 | I RMPREOF G STOCKU
|
---|
| 135 | I RMPRK("ITEM")'=RMPROLD("ITEM") G STOCKU
|
---|
| 136 | I RMPRK("HCPCS")'=RMPROLD("HCPCS") G STOCKU
|
---|
| 137 | I RMPRK("LOCATION")'=RMPROLD("LOCATION") G STOCKU
|
---|
| 138 | I RMPRK("STATION")'=RMPROLD("STATION") G STOCKU
|
---|
| 139 | K RMPR7 M RMPR7=RMPRK
|
---|
| 140 | S RMPRERR=$$GET^RMPRPIX7(.RMPR7)
|
---|
| 141 | I RMPRERR S RMPRERR=5 G STOCKU
|
---|
| 142 | S RMPR("QOH")=RMPR7("QUANTITY")+RMPR("QOH")
|
---|
| 143 | S RMPRTCST=RMPRTCST+RMPR7("VALUE")
|
---|
| 144 | I RMPR("VENDOR IEN")="" D G:RMPRERR STOCKU
|
---|
| 145 | . K RMPR6 M RMPR6=RMPRK S RMPR6("IEN")=""
|
---|
| 146 | . S RMPRERR=$$GET^RMPRPIX6(.RMPR6)
|
---|
| 147 | . I RMPRERR S RMPRERR=6 Q
|
---|
| 148 | . S RMPRERR=$$VNDIEN^RMPRPIX6(.RMPR6)
|
---|
| 149 | . I RMPRERR S RMPRERR=6 Q
|
---|
| 150 | . S RMPR("VENDOR")=RMPR6("VENDOR")
|
---|
| 151 | . S RMPR("VENDOR IEN")=RMPR6("VENDOR IEN")
|
---|
| 152 | . Q
|
---|
| 153 | G STOCKA
|
---|
| 154 | STOCKU L -^RMPR(661.7,"XSLHIDS",RMPR("STATION IEN"),RMPR("LOCATION IEN"),RMPR("HCPCS"),RMPR("ITEM"))
|
---|
| 155 | I RMPR("QOH") S RMPR("UNIT COST")=RMPRTCST/RMPR("QOH")
|
---|
| 156 | STOCKX Q RMPRERR
|
---|