Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RMPRPIX6

RMPRPIX6.m

Go to the documentation of this file.
  1. RMPRPIX6 ;HINCIO/ODJ - PIP TRANSACTION FILE 661.6 API ;3/8/01
  1. ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
  1. Q
  1. ;
  1. ;***** CRE - create new 661.6 PIP Transaction record
  1. ;
  1. ; Inputs:
  1. ; RMPR616 - Transaction array (661.6)
  1. ; (elements mandatory unless noted)
  1. ; RMPR616("DATE&TIME") - (optional) usually should not be set
  1. ; but if it is RMPR616("SEQUENCE")
  1. ; must also be set
  1. ; RMPR616("SEQUENCE") - (optional) but see above
  1. ; should normally be one
  1. ; RMPR616("VENDOR") - Vendor ien
  1. ; RMPR616("LOCATION") - Location ien (ptr 661.5)
  1. ; RMPR616("TRAN TYPE") - Transaction Type code (see 661.6 spec)
  1. ; RMPR616("QUANTITY") - Quantity
  1. ; RMPR616("VALUE") - $ Value of transaction
  1. ; RMPR616("COMMENT") - Coment
  1. ; RMPR616("USER") - User ien (ptr VA(200,)
  1. ;
  1. ; RMPR6111 - HCPCS Item array (661.11) (all elements mandatory)
  1. ; RMPR6111("STATION") - Station ien (ptr ^DIC(4,)
  1. ; RMPR6111("HCPCS") - HCPCS code
  1. ; RMPR6111("ITEM") - HCPCS Item number
  1. ;
  1. ; Outputs:
  1. ; RMPR616("IEN") - ien of created Transaction
  1. ; RMPRERR - error code returned by function
  1. ; 0 - no problems
  1. ; 1 - FM problems creating 661.6 rec.
  1. ;
  1. CRE(RMPR616,RMPR6111) ;
  1. N RMPRRET,RMPRIENA,RMPRFDA,RMPRFME,X,Y,DA
  1. S RMPRRET=0
  1. ;
  1. ; Get DATE&TIME for transaction and lock the file
  1. I $G(RMPR616("DATE&TIME"))="" G CRE0
  1. L +^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),RMPR616("DATE&TIME"))
  1. I $D(^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),RMPR616("DATE&TIME"),RMPR616("SEQUENCE"))) L -^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),RMPR616("DATE&TIME")) G CRE0
  1. G CRE1
  1. CRE0 S RMPR616("DATE&TIME")=""
  1. F D Q:RMPR616("DATE&TIME")'=""
  1. . D NOW^%DTC
  1. . I $D(^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),%,1)) H (1+$R(3)) Q
  1. . L +^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),%):0 E H (1+$R(3)) Q
  1. . S RMPR616("DATE&TIME")=%
  1. . S RMPR616("SEQUENCE")=1
  1. . Q
  1. ;
  1. ; Create the transaction
  1. CRE1 S RMPRFDA(661.6,"+1,",.01)=RMPR6111("HCPCS")
  1. S RMPRFDA(661.6,"+1,",2)=RMPR616("DATE&TIME")
  1. S RMPRFDA(661.6,"+1,",3)=RMPR616("SEQUENCE")
  1. S RMPRFDA(661.6,"+1,",4)=RMPR616("TRAN TYPE")
  1. S RMPRFDA(661.6,"+1,",5)=RMPR616("QUANTITY")
  1. S RMPRFDA(661.6,"+1,",6)=RMPR616("VALUE")
  1. S RMPRFDA(661.6,"+1,",8)=RMPR616("COMMENT")
  1. S RMPRFDA(661.6,"+1,",9)=RMPR616("USER")
  1. S RMPRFDA(661.6,"+1,",11)=RMPR6111("ITEM")
  1. S RMPRFDA(661.6,"+1,",12)=RMPR616("VENDOR")
  1. S RMPRFDA(661.6,"+1,",13)=RMPR6111("STATION")
  1. S RMPRFDA(661.6,"+1,",14)=RMPR616("LOCATION")
  1. D UPDATE^DIE("","RMPRFDA","RMPRIENA","RMPRFME")
  1. L -^RMPR(661.6,"XHDS",RMPR6111("HCPCS"),RMPR616("DATE&TIME"))
  1. I $D(RMPRFME) S RMPRRET=1 G CREX
  1. S RMPR616("IEN")=RMPRIENA(1)
  1. CREX Q RMPRRET
  1. ;
  1. ;***** UPD - update existing Transaction (661.6) record
  1. ;
  1. ; Inputs:
  1. ; RMPR616 - Transaction array (see above for CRE)
  1. ; RMPR616("IEN") - ien of rec to update (mandatory)
  1. ; all other elements optional but DATE&TIME
  1. ; and SEQUENCE cannot be changed
  1. ; RMPR6111 - HCPCS array (see above for CRE)
  1. ; all elements optional
  1. ;
  1. ; Outputs:
  1. ; RMPRRET - error code returned by function
  1. ; 0 - no problems
  1. ; 1 - invalid RMPR616("IEN")
  1. ; 2 - FM problem with update
  1. ;
  1. UPD(RMPR616,RMPR6111) ;
  1. N RMPRRET,RMPRI,RMPRFDA,RMPRFME,X,Y,DA
  1. S RMPRRET=0
  1. I $G(RMPR616("IEN"))="" S RMPRRET=1 G UPDX
  1. S RMPRI=RMPR616("IEN")_","
  1. S:$D(RMPR6111("HCPCS")) RMPRFDA(661.6,RMPRI,.01)=RMPR6111("HCPCS")
  1. S:$D(RMPR616("QUANTITY")) RMPRFDA(661.6,RMPRI,5)=RMPR616("QUANTITY")
  1. S:$D(RMPR616("VALUE")) RMPRFDA(661.6,RMPRI,6)=RMPR616("VALUE")
  1. S:$D(RMPR616("COMMENT")) RMPRFDA(661.6,RMPRI,8)=RMPR616("COMMENT")
  1. S:$D(RMPR616("USER")) RMPRFDA(661.6,RMPRI,9)=RMPR616("USER")
  1. S:$D(RMPR6111("ITEM")) RMPRFDA(661.6,RMPRI,11)=RMPR6111("ITEM")
  1. S:$D(RMPR616("VENDOR")) RMPRFDA(661.6,RMPRI,12)=RMPR616("VENDOR")
  1. S:$D(RMPR616("LOCATION")) RMPRFDA(661.6,RMPRI,14)=RMPR616("LOCATION")
  1. D:$D(RMPRFDA) FILE^DIE("","RMPRFDA","RMPRFME")
  1. I $D(RMPRFME) S RMPRRET=2 G UPDX
  1. UPDX Q RMPRRET
  1. ;
  1. ;***** GET - read in 661.6 record
  1. GET(RMPR) ;
  1. N RMPRRET,RMPRFME,RMPRIEN,RMPRKEY,RMPRERR,RMPROUP,X,Y,DA,RMPREOF
  1. S RMPRRET=0
  1. I $G(RMPR("IEN"))="" D
  1. . I $G(RMPR("HCPCS"))="" S RMPRRET=1 Q
  1. . I $G(RMPR("DATE&TIME"))="" S RMPRRET=2 Q
  1. . S RMPRKEY("HCPCS")=RMPR("HCPCS")
  1. . S RMPRKEY("DATE&TIME")=RMPR("DATE&TIME")
  1. . S RMPRERR=$$NEXT^RMPRPIXA(.RMPRKEY,"XHDS","",-1,,.RMPREOF)
  1. . I RMPRERR S RMPRRET=3 Q
  1. . I '$D(RMPRKEY("SEQUENCE")) S RMPRRET=1 Q
  1. . I RMPRKEY("SEQUENCE")'=1 S RMPRRET=4 Q
  1. . S RMPR("IEN")=RMPRKEY("IEN")
  1. . Q
  1. I RMPRRET G GETX
  1. S RMPRIEN=RMPR("IEN")_","
  1. D GETS^DIQ(661.6,RMPRIEN,"*","","RMPROUP","RMPRFME")
  1. I $D(RMPRFME) S RMPRRET=5 G GETX
  1. S RMPR("HCPCS")=RMPROUP(661.6,RMPRIEN,.01)
  1. S RMPR("DATE&TIME")=RMPROUP(661.6,RMPRIEN,2)
  1. S RMPR("DATE")=$P(RMPR("DATE&TIME"),"@",1)
  1. S RMPR("TIME")=$P(RMPR("DATE&TIME"),"@",2)
  1. S RMPR("SEQUENCE")=RMPROUP(661.6,RMPRIEN,3)
  1. S RMPR("TRAN TYPE")=RMPROUP(661.6,RMPRIEN,4)
  1. S RMPR("QUANTITY")=RMPROUP(661.6,RMPRIEN,5)
  1. S RMPR("VALUE")=RMPROUP(661.6,RMPRIEN,6)
  1. S RMPR("COMMENT")=RMPROUP(661.6,RMPRIEN,8)
  1. S RMPR("USER")=RMPROUP(661.6,RMPRIEN,9)
  1. S RMPR("ITEM")=RMPROUP(661.6,RMPRIEN,11)
  1. S RMPR("VENDOR")=RMPROUP(661.6,RMPRIEN,12)
  1. S RMPR("STATION")=RMPROUP(661.6,RMPRIEN,13)
  1. S RMPR("LOCATION")=RMPROUP(661.6,RMPRIEN,14)
  1. GETX Q RMPRRET
  1. ;
  1. ;***** ETOI - convert external to internal form
  1. ETOI(RMPRE,RMPRI) ;
  1. N RMPRFDA,RMPRIEN,RMPRFDI,RMPRFME,RMPRERR
  1. S RMPRERR=0
  1. S RMPRIEN=RMPRE("IEN")_","
  1. D GETS^DIQ(661.6,RMPRIEN,"*","I","RMPRFDI","RMPRFME")
  1. I $D(RMPRFME) S RMPRERR=1 G ETOIX
  1. S RMPRI("IEN")=RMPRE("IEN")
  1. S RMPRI("HCPCS")=RMPRFDI(661.6,RMPRIEN,.01,"I")
  1. S RMPRI("DATE&TIME")=RMPRFDI(661.6,RMPRIEN,2,"I")
  1. S RMPRI("DATE")=$P(RMPRI("DATE&TIME"),".",1)
  1. S RMPRI("TIME")=$P(RMPRI("DATE&TIME"),".",2)
  1. S RMPRI("SEQUENCE")=RMPRFDI(661.6,RMPRIEN,3,"I")
  1. S RMPRI("TRAN TYPE")=RMPRFDI(661.6,RMPRIEN,4,"I")
  1. S RMPRI("QUANTITY")=RMPRFDI(661.6,RMPRIEN,5,"I")
  1. S RMPRI("VALUE")=RMPRFDI(661.6,RMPRIEN,6,"I")
  1. S RMPRI("COMMENT")=RMPRFDI(661.6,RMPRIEN,8,"I")
  1. S RMPRI("USER")=RMPRFDI(661.6,RMPRIEN,9,"I")
  1. S RMPRI("ITEM")=RMPRFDI(661.6,RMPRIEN,11,"I")
  1. S RMPRI("VENDOR")=RMPRFDI(661.6,RMPRIEN,12,"I")
  1. S RMPRI("STATION")=RMPRFDI(661.6,RMPRIEN,13,"I")
  1. S RMPRI("LOCATION")=RMPRFDI(661.6,RMPRIEN,14,"I")
  1. ETOIX Q RMPRERR
  1. ;
  1. ; TFLOW - sets RMPR("TRAN FLOW")
  1. TFLOW(RMPR) ;
  1. N RMPRFDA,RMPRIEN,RMPRFDI,RMPRFME,RMPRERR,RMPRTYP
  1. S RMPRERR=0
  1. S RMPRIEN=RMPR("IEN")_","
  1. S RMPRFDA(661.6,RMPRIEN,4)=RMPR("TRAN TYPE")
  1. D VALS^DIE("","RMPRFDA","RMPRFDI","RMPRFME")
  1. I $D(RMPRFME) S RMPRERR=1 G TFLOWX
  1. S RMPRTYP=","_RMPRFDI(661.6,RMPRIEN,4)_","
  1. S RMPR("TRAN FLOW")=""
  1. I ",1,8,"[RMPRTYP S RMPR("TRAN FLOW")="+"
  1. I ",2,7,"[RMPRTYP S RMPR("TRAN FLOW")=""
  1. I ",3,4,5,6,"[RMPRTYP S RMPR("TRAN FLOW")="-"
  1. I ",9,"[RMPRTYP S RMPR("TRAN FLOW")="="
  1. TFLOWX Q RMPRERR
  1. ;
  1. ; DTIEN - sets internal form of DATE/TIME
  1. DTIEN(RMPR) ;
  1. N RMPRFDA,RMPRIEN,RMPRFDI,RMPRFME,RMPRERR
  1. S RMPRERR=0
  1. S RMPRIEN=RMPR("IEN")_","
  1. D GETS^DIQ(661.6,RMPRIEN,"*","I","RMPRFDI","RMPRFME")
  1. S RMPR("DATE&TIME")=RMPRFDI(661.6,RMPRIEN,2,"I")
  1. Q RMPRERR
  1. ;
  1. ; STNIEN - sets RMPR("STATION IEN")
  1. STNIEN(RMPR) ;
  1. N RMPRFDA,RMPRIEN,RMPRFDI,RMPRFME,RMPRERR
  1. S RMPRERR=0
  1. S RMPRIEN=RMPR("IEN")_","
  1. D GETS^DIQ(661.6,RMPRIEN,"*","I","RMPRFDI","RMPRFME")
  1. I $D(RMPRFME) S RMPRERR=1 G STNIENX
  1. S RMPR("STATION IEN")=RMPRFDI(661.6,RMPRIEN,13,"I")
  1. STNIENX Q RMPRERR
  1. ;
  1. ; VNDIEN - sets RMPR("VENDOR IEN")
  1. VNDIEN(RMPR) ;
  1. N RMPRFDA,RMPRIEN,RMPRFDI,RMPRFME,RMPRERR
  1. S RMPRERR=0
  1. I '$D(RMPR("IEN")) W !!,"*** MISSING POINTER TO VENDOR FILE, PLEASE CHECK FILE #661.11 !!!",! S RMPRERR=1 G VNDIENX
  1. S RMPRIEN=RMPR("IEN")_","
  1. D GETS^DIQ(661.6,RMPRIEN,"12","I","RMPRFDI","RMPRFME")
  1. I $D(RMPRFME) S RMPRERR=1 G VNDIENX
  1. S RMPR("VENDOR IEN")=RMPRFDI(661.6,RMPRIEN,12,"I")
  1. VNDIENX Q RMPRERR
  1. ;
  1. ; DEL - Delete a record
  1. DEL(RMPR6) ;
  1. N RMPRFDA,RMPRFME,RMPRERR,RMPRIEN,X,Y,DA
  1. S RMPRERR=0
  1. I $G(RMPR6("IEN"))="" S RMPRERR=1 G DELX
  1. S RMPRIEN=RMPR6("IEN")_","
  1. S RMPRFDA(661.6,RMPRIEN,.01)="@"
  1. D FILE^DIE("","RMPRFDA","RMPRFME")
  1. I $D(RMPRFME) S RMPRERR=1
  1. DELX Q RMPRERR
  1. ;
  1. ; Get the ien for a 2319 patient stock issue record in file 660
  1. IEN60(RMPR6,RMPR60) ;
  1. N RMPRERR,RMPRIEN
  1. S RMPRERR=0
  1. I $G(RMPR6("IEN"))="" S RMPRERR=1 G IEN60X
  1. S RMPRIEN=$O(^RMPR(661.63,"B",RMPR6("IEN"),""))
  1. I RMPRIEN="" S RMPRERR=2 G IEN60X
  1. S RMPR60("IEN")=$P($G(^RMPR(661.63,RMPRIEN,0)),"^",2)
  1. IEN60X Q RMPRERR