| 1 | RMPRPIUC ;HINCIO/ODJ - APIs for file 661.7 ;3/8/01
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ; Inputs:
 | 
|---|
| 7 |  ;    RMPR11 - an array with the following elements...
 | 
|---|
| 8 |  ;    RMPR11("STATION IEN")  - Station ien (ptr ^DIC(4,)
 | 
|---|
| 9 |  ;    RMPR5F("IEN") - Location ien (ptr ^RMPR(661.5,)
 | 
|---|
| 10 |  ;    RMPR11("HCPCS")        - HCPCS code (eg E0111)
 | 
|---|
| 11 |  ;    RMPR11("ITEM")         - HCPCS Item number (eg 1)
 | 
|---|
| 12 |  ;    RMPR("TRNF QTY")     - Quantity Transferred
 | 
|---|
| 13 |  ;    RMPR("TRNF VALUE")   - Transfer Value
 | 
|---|
| 14 |  ;    RMPR("VENDOR IEN")   - Vendor ien
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ; Outputs:
 | 
|---|
| 17 |  ;    RMPRERR - function return...
 | 
|---|
| 18 |  ;               0 - no errors
 | 
|---|
| 19 |  ;               1 - null Station ien input
 | 
|---|
| 20 |  ;               2 - null Location ien input
 | 
|---|
| 21 |  ;               3 - null HCPCS code input
 | 
|---|
| 22 |  ;               4 - null Item input
 | 
|---|
| 23 |  ;               5 - transfer qty not greater than 0
 | 
|---|
| 24 |  ;               6 - problem with 661.7 file
 | 
|---|
| 25 | TRNF(RMPR11,RMPR5F,RMPR5T,RMPR) ;
 | 
|---|
| 26 |  N RMPRERR,RMPRK,RMPROLD,RMPREOF,RMPR7,RMPR7I,RMPRIBAL,RMPRVBAL
 | 
|---|
| 27 |  N RMPRUVAL,RMPR7TI,RMPRTQTY,RMPRTVAL,RMPRTIEN,RMPR6
 | 
|---|
| 28 |  S RMPRERR=0
 | 
|---|
| 29 |  S RMPRK("STATION")=$G(RMPR11("STATION IEN"))
 | 
|---|
| 30 |  I RMPRK("STATION")="" S RMPRERR=1 G TRNFX
 | 
|---|
| 31 |  S RMPRK("UNIT")=$G(RMPR5F("UNIT"))
 | 
|---|
| 32 |  S RMPRK("LOCATION")=$G(RMPR5F("IEN"))
 | 
|---|
| 33 |  I RMPRK("LOCATION")="" S RMPRERR=2 G TRNFX
 | 
|---|
| 34 |  S RMPRK("HCPCS")=$G(RMPR11("HCPCS"))
 | 
|---|
| 35 |  I RMPRK("HCPCS")="" S RMPRERR=3 G TRNFX
 | 
|---|
| 36 |  S RMPRK("ITEM")=$G(RMPR11("ITEM"))
 | 
|---|
| 37 |  I RMPRK("ITEM")="" S RMPRERR=4 G TRNFX
 | 
|---|
| 38 |  I '+$G(RMPR("TRNF QTY")) S RMPRERR=5 G TRNFX
 | 
|---|
| 39 |  S RMPRIBAL=RMPR("TRNF QTY") ; init transfer qty. balance
 | 
|---|
| 40 |  S RMPRVBAL=+$G(RMPR("TRNF VALUE")) ; init transfer value balance
 | 
|---|
| 41 |  S RMPRUVAL=RMPRVBAL/RMPRIBAL ; unit cost per transferred item
 | 
|---|
| 42 |  L +^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5F("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))
 | 
|---|
| 43 |  L +^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5T("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  ; Loop on all records for Stn, Loc, HCPCS and Item until stock
 | 
|---|
| 46 |  ; transferred
 | 
|---|
| 47 | TRNFA S RMPRERR=$$NEXT^RMPRPIXE(.RMPRK,"XSLHIDS","",1,.RMPROLD,.RMPREOF)
 | 
|---|
| 48 |  I RMPRERR S RMPRERR=6 G TRNFU
 | 
|---|
| 49 |  I RMPREOF G TRNFU
 | 
|---|
| 50 |  I RMPRK("ITEM")'=RMPROLD("ITEM") G TRNFU
 | 
|---|
| 51 |  I RMPRK("HCPCS")'=RMPROLD("HCPCS") G TRNFU
 | 
|---|
| 52 |  I RMPRK("LOCATION")'=RMPROLD("LOCATION") G TRNFU
 | 
|---|
| 53 |  S RMPRK("UNIT")=$G(RMPROLD("UNIT"))
 | 
|---|
| 54 |  I RMPRK("STATION")'=RMPROLD("STATION") G TRNFU
 | 
|---|
| 55 |  K RMPR7 M RMPR7=RMPRK
 | 
|---|
| 56 |  S RMPRERR=$$GET^RMPRPIX7(.RMPR7) ; read in current stock rec.
 | 
|---|
| 57 |  I RMPRERR S RMPRERR=6 G TRNFU
 | 
|---|
| 58 |  K RMPR6 M RMPR6=RMPRK S RMPR6("IEN")=""
 | 
|---|
| 59 |  S RMPRERR=$$GET^RMPRPIX6(.RMPR6)
 | 
|---|
| 60 |  S RMPRERR=$$VNDIEN^RMPRPIX6(.RMPR6)
 | 
|---|
| 61 |  I RMPR6("VENDOR IEN")'=RMPR("VENDOR IEN") G TRNFA
 | 
|---|
| 62 |  K RMPR7TI,RMPR7I
 | 
|---|
| 63 |  S RMPRERR=$$ETOI^RMPRPIX7(.RMPR7,.RMPR7I)
 | 
|---|
| 64 |  I RMPRERR S RMPRERR=6 G TRNFU
 | 
|---|
| 65 |  S RMPR7TI("DATE&TIME")=RMPR7I("DATE&TIME")
 | 
|---|
| 66 |  S RMPR7TI("SEQUENCE")=RMPR7I("SEQUENCE")
 | 
|---|
| 67 |  K RMPR7I
 | 
|---|
| 68 |  S RMPR7I("IEN")=RMPR7("IEN")
 | 
|---|
| 69 |  S RMPR7I("QUANTITY")=RMPR7("QUANTITY")
 | 
|---|
| 70 |  S RMPR7I("VALUE")=RMPR7("VALUE")
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  ; If issued balance less than on-hand quantity then update
 | 
|---|
| 73 |  ; the on-hand record
 | 
|---|
| 74 |  I RMPRIBAL<RMPR7I("QUANTITY") D
 | 
|---|
| 75 |  . S RMPR7I("QUANTITY")=RMPR7I("QUANTITY")-RMPRIBAL
 | 
|---|
| 76 |  . S RMPR7I("VALUE")=RMPR7I("VALUE")-RMPRVBAL
 | 
|---|
| 77 |  . S RMPRTQTY=RMPRIBAL
 | 
|---|
| 78 |  . S RMPRTVAL=RMPRVBAL
 | 
|---|
| 79 |  . S RMPRERR=$$UPD^RMPRPIX7(.RMPR7I,)
 | 
|---|
| 80 |  . S RMPRIBAL=0
 | 
|---|
| 81 |  . Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  ; If issued balance not less than on-hand quantity then delete
 | 
|---|
| 84 |  ; the on-hand record
 | 
|---|
| 85 |  E  D
 | 
|---|
| 86 |  . S RMPRIBAL=RMPRIBAL-RMPR7I("QUANTITY")
 | 
|---|
| 87 |  . S RMPRTQTY=RMPR7I("QUANTITY")
 | 
|---|
| 88 |  . S RMPRTVAL=$J(RMPR7I("QUANTITY")*RMPRUVAL,0,2)
 | 
|---|
| 89 |  . S RMPRVBAL=RMPRVBAL-RMPRTVAL
 | 
|---|
| 90 |  . S RMPRERR=$$DEL^RMPRPIX7(.RMPR7I)
 | 
|---|
| 91 |  . Q
 | 
|---|
| 92 |  I RMPRERR S RMPRERR=6 G TRNFU
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  ; Increase the 'TO' transfer record
 | 
|---|
| 95 |  S RMPRTIEN=$O(^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5T("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"),RMPR7TI("DATE&TIME"),RMPR7TI("SEQUENCE"),""))
 | 
|---|
| 96 |  I RMPRTIEN="" D
 | 
|---|
| 97 |  . S RMPR7TI("IEN")=""
 | 
|---|
| 98 |  . S RMPR7TI("QUANTITY")=RMPRTQTY
 | 
|---|
| 99 |  . S RMPR7TI("VALUE")=RMPRTVAL
 | 
|---|
| 100 |  . S RMPR7TI("LOCATION")=RMPR5T("IEN")
 | 
|---|
| 101 |  . S RMPR7TI("UNIT")=$G(RMPR5T("UNIT"))
 | 
|---|
| 102 |  . S RMPRERR=$$CRE^RMPRPIX7(.RMPR7TI,.RMPR11)
 | 
|---|
| 103 |  . I RMPRERR S RMPRERR=6
 | 
|---|
| 104 |  . Q
 | 
|---|
| 105 |  E  D
 | 
|---|
| 106 |  . K RMPR7
 | 
|---|
| 107 |  . S RMPR7("IEN")=RMPRTIEN
 | 
|---|
| 108 |  . S RMPRERR=$$GET^RMPRPIX7(.RMPR7)
 | 
|---|
| 109 |  . I RMPRERR S RMPRERR=6 Q
 | 
|---|
| 110 |  . K RMPR7TI
 | 
|---|
| 111 |  . S RMPR7TI("IEN")=RMPRTIEN
 | 
|---|
| 112 |  . S RMPR7TI("QUANTITY")=RMPR7("QUANTITY")+RMPRTQTY
 | 
|---|
| 113 |  . S RMPR7TI("UNIT")=$G(RMPR5T("UNIT"))
 | 
|---|
| 114 |  . S RMPR7TI("VALUE")=RMPR7("VALUE")+RMPRTVAL
 | 
|---|
| 115 |  . S RMPRERR=$$UPD^RMPRPIX7(.RMPR7TI,.RMPR11)
 | 
|---|
| 116 |  . I RMPRERR S RMPRERR=6 Q
 | 
|---|
| 117 |  . Q
 | 
|---|
| 118 |  I RMPRERR G TRNFU
 | 
|---|
| 119 |  G:RMPRIBAL TRNFA ; next stock rec. if still got transfer balance
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  ; exit points
 | 
|---|
| 122 | TRNFU L -^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5F("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))
 | 
|---|
| 123 |  L -^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5T("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))
 | 
|---|
| 124 | TRNFX Q RMPRERR
 | 
|---|