[613] | 1 | RMPRPIU6 ;HINCIO/ODJ - PIP STOCK ISSUE UPDATE UTILITY ;3/8/01
|
---|
| 2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | ;***** ISS - Create a Stock 'Issue to Patient' Transaction
|
---|
| 6 | ; implements business rules for stock issue
|
---|
| 7 | ;
|
---|
| 8 | ; Inputs:
|
---|
| 9 | ; RMPR60 - array of data fields for 660 file record...
|
---|
| 10 | ; (all elements are required unless otherwise indicated)
|
---|
| 11 | ; RMPR60("PATIENT IEN")- Prosthetic Patient
|
---|
| 12 | ; (.01 field ptr to ^RMPR(665,)
|
---|
| 13 | ; RMPR60("ISSUE TYPE") - Type of Issue (fld 2 - see FM set of codes)
|
---|
| 14 | ; RMPR60("QUANTITY") - Number of items issued (fld 5)
|
---|
| 15 | ; RMPR60("IFCAP ITEM") - IFCAP item (fld 4 ptr to ^RMPR(661,)
|
---|
| 16 | ; RMPR60("VENDOR IEN") - Item Vendor (fld 7 ptr to ^PRC(440,)
|
---|
| 17 | ; RMPR60("SERIAL NUM") - Serial Number (fld 9)
|
---|
| 18 | ; (optional)
|
---|
| 19 | ; RMPR60("REQ TYPE") - Request Type (fld 11 - see FM set of codes)
|
---|
| 20 | ; (optional but will be set to 11 if not input)
|
---|
| 21 | ; RMPR60("REMARKS") - Comments (fld 16)
|
---|
| 22 | ; (optional)
|
---|
| 23 | ; RMPR60("LOT NUM") - Lot number (fld 21)
|
---|
| 24 | ; (optional)
|
---|
| 25 | ; RMPR60("CPT MOD") - CPT modifier string (fld 4.7)
|
---|
| 26 | ; (optional)
|
---|
| 27 | ; RMPR60("COST") - Total value of issue (fld 14)
|
---|
| 28 | ; RMPR60("CPT IEN") - field 21 ptr to ^ICPT
|
---|
| 29 | ; RMPR60("SITE IEN") - ptr to prosthetic site param file 669.9
|
---|
| 30 | ; RMPR60("USER") - User creating the issue
|
---|
| 31 | ; (fld 27 ptr to ^VA(200,)
|
---|
| 32 | ; RMPR60("PAT CAT") - Patient category
|
---|
| 33 | ; (fld 62 see FM set of codes)
|
---|
| 34 | ; RMPR60("SPEC CAT") - fld 63
|
---|
| 35 | ; (optional)
|
---|
| 36 | ; RMPR60("GROUPER") - AMIS grouper number
|
---|
| 37 | ; RMPR60("DATE&TIME") - date and time item received
|
---|
| 38 | ;
|
---|
| 39 | ; RMPR11 - array of data fields for 661.11 record
|
---|
| 40 | ; RMPR11("STATION") - Station ien
|
---|
| 41 | ; RMPR11("HCPCS") - HCPCS code
|
---|
| 42 | ; RMPR11("ITEM") - Item number
|
---|
| 43 | ; RMPR11("UNIT") - Unit (optional)
|
---|
| 44 | ; RMPR11("DESCRIPTION") - Item description
|
---|
| 45 | ; RMPR11("SOURCE") - V - VA, C - Commercial
|
---|
| 46 | ;
|
---|
| 47 | ; RMPR5 - array of data fields for 661.5 record
|
---|
| 48 | ; RMPR5("IEN") - Location ien (ptr to ^RMPR(661.5,)
|
---|
| 49 | ;
|
---|
| 50 | ; Outputs:
|
---|
| 51 | ; RMPRERR - returned by function
|
---|
| 52 | ; 0 - no problems
|
---|
| 53 | ; 9 - insufficient stock to issue
|
---|
| 54 | ; 10 - PIP item is locked
|
---|
| 55 | ;
|
---|
| 56 | ISS(RMPR60,RMPR11,RMPR5) ;
|
---|
| 57 | N RMPRERR,RMPR6,RMPR9,RMPR1,RMPRCSTK
|
---|
| 58 | S RMPRERR=0
|
---|
| 59 | S RMPR11("STATION IEN")=RMPR11("STATION")
|
---|
| 60 | ;
|
---|
| 61 | ; Lock Current Stock file (661.7) at Station, Location, HCPCS, Item
|
---|
| 62 | ; level so that same item at same location cannot be depleted
|
---|
| 63 | ; simultaneously.
|
---|
| 64 | L +^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5("IEN"),RMPR11("HCPCS"),RMPR11("ITEM")):1
|
---|
| 65 | I $T=0 W !,?5,$C(7),"Someone else is Accessing the PIP item!",! S RMPRERR=10 G ISSX
|
---|
| 66 | ;
|
---|
| 67 | ; Check stock level for entered Station, Location, HCPCS, Item
|
---|
| 68 | ; and Vendor. Return error=9 if not enough stock.
|
---|
| 69 | S RMPRCSTK("STATION IEN")=RMPR11("STATION IEN")
|
---|
| 70 | S RMPRCSTK("LOCATION IEN")=RMPR5("IEN")
|
---|
| 71 | S RMPRCSTK("HCPCS")=RMPR11("HCPCS")
|
---|
| 72 | S RMPRCSTK("ITEM")=RMPR11("ITEM")
|
---|
| 73 | S RMPRCSTK("VENDOR IEN")=RMPR60("VENDOR IEN")
|
---|
| 74 | S RMPRERR=$$STOCK^RMPRPIUE(.RMPRCSTK)
|
---|
| 75 | I RMPRERR S RMPRERR=90 G ISSU
|
---|
| 76 | S RMPRCSTK("IEN")=$O(^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"),RMPR60("DATE&TIME"),1,0))
|
---|
| 77 | I RMPR60("QUANTITY")>RMPRCSTK("QOH") S RMPRERR=9,RMPR60("QOH")=RMPRCSTK("QOH") G ISSU
|
---|
| 78 | ;
|
---|
| 79 | ; Create 661.6 - inventory transaction record - stock issue to patient
|
---|
| 80 | S RMPR6("COMMENT")=$G(RMPR6("COMMENT"))
|
---|
| 81 | S RMPR6("SEQUENCE")=1
|
---|
| 82 | S RMPR6("TRAN TYPE")=3
|
---|
| 83 | S RMPR6("LOCATION")=RMPR5("IEN")
|
---|
| 84 | S RMPR6("USER")=RMPR60("USER")
|
---|
| 85 | S RMPR6("QUANTITY")=RMPR60("QUANTITY")
|
---|
| 86 | S RMPR6("VALUE")=RMPR60("COST")
|
---|
| 87 | S RMPR6("VENDOR")=RMPR60("VENDOR IEN")
|
---|
| 88 | S RMPRERR=$$CRE^RMPRPIX6(.RMPR6,.RMPR11)
|
---|
| 89 | I RMPRERR S RMPRERR=91 G ISSU
|
---|
| 90 | ;
|
---|
| 91 | ; Create 660 record - patient 2319 - record of appliances, etc.
|
---|
| 92 | S RMPR60("COST")=$J(RMPR60("COST"),0,2)
|
---|
| 93 | S RMPR60("TRANS IEN")=RMPR6("IEN")
|
---|
| 94 | S RMPR60("ENTRY DATE")=$P(RMPR6("DATE&TIME"),".",1)
|
---|
| 95 | S RMPR60("REQ DATE")=RMPR60("ENTRY DATE")
|
---|
| 96 | S RMPR60("DELIV DATE")=RMPR60("DELIV DATE")
|
---|
| 97 | I $G(RMPR60("REQ TYPE"))="" S RMPR60("REQ TYPE")=11
|
---|
| 98 | S RMPRERR=$$CRE^RMPRPIX2(.RMPR60,.RMPR11)
|
---|
| 99 | I RMPRERR S RMPRERR=92 G ISSU
|
---|
| 100 | ;
|
---|
| 101 | ; Create 661.63 record
|
---|
| 102 | S RMPRERR=$$CRE^RMPRPIX3(.RMPR60,.RMPR6,.RMPR11)
|
---|
| 103 | I RMPRERR S RMPRERR=93 G ISSU
|
---|
| 104 | ;
|
---|
| 105 | ; Update 661.7 record
|
---|
| 106 | S RMPR7("STATION IEN")=RMPR11("STATION IEN")
|
---|
| 107 | S RMPR7("LOCATION IEN")=RMPR5("IEN")
|
---|
| 108 | S RMPR7("HCPCS")=RMPR11("HCPCS")
|
---|
| 109 | S RMPR7("ITEM")=RMPR11("ITEM")
|
---|
| 110 | S RMPR7("ISSUED QTY")=RMPR60("QUANTITY")
|
---|
| 111 | S RMPR7("ISSUED VALUE")=RMPR60("COST")
|
---|
| 112 | S RMPR7("DATE&TIME")=RMPR60("DATE&TIME")
|
---|
| 113 | S RMPR7("IEN")=RMPRCSTK("IEN")
|
---|
| 114 | S RMPRERR=$$FIFO^RMPRPIUB(.RMPR7)
|
---|
| 115 | I RMPRERR S RMPRERR=94 G ISSU
|
---|
| 116 | ;
|
---|
| 117 | ; Update 661.9 record
|
---|
| 118 | S RMPR9("STA")=RMPR11("STATION IEN")
|
---|
| 119 | S RMPR9("HCP")=RMPR11("HCPCS")
|
---|
| 120 | S RMPR9("ITE")=RMPR11("ITEM")
|
---|
| 121 | S RMPR9("RDT")=$P(RMPR6("DATE&TIME"),".",1)
|
---|
| 122 | S RMPR9("TQTY")=0-RMPR6("QUANTITY")
|
---|
| 123 | S RMPR9("TCST")=0-RMPR6("VALUE")
|
---|
| 124 | S RMPRERR=$$UPCR^RMPRPIXJ(.RMPR9)
|
---|
| 125 | I RMPRERR S RMPRERR=95 G ISSU
|
---|
| 126 | ;
|
---|
| 127 | ;***** release lock on current stock and exit
|
---|
| 128 | ISSU L -^RMPR(661.7,"XSLHIDS",RMPR11("STATION IEN"),RMPR5("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))
|
---|
| 129 | ISSX Q RMPRERR
|
---|