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

RMPRPIXA.m

Go to the documentation of this file.
RMPRPIXA ;HINCIO/ODJ - FILE 661.6 API ;3/8/01
 ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
 Q
 ;
 ; SRCH
SRCH(RMPR,RMPRXREF,RMPRLEV,RMPRT,RMPRFIND,RMPREOF) ;
 N RMPRRET,RMPRK1,RMPRK2,RMPRK3,RMPRK4
 S RMPRRET=0
 S RMPREOF=0
 I RMPRXREF="XHDS" D  G SRCHX
 . S RMPRK1=$G(RMPR("HCPCS"))
 . S RMPRK2=$G(RMPR("DATE&TIME"))
 . S RMPRK3=$G(RMPR("SEQUENCE"))
 . S RMPRK4=$G(RMPR("IEN"))
 . S RMPRFIND=0
 . I RMPRK1="" D
 .. S RMPRK1=$O(^RMPR(661.6,RMPRXREF,""),RMPRT)
 .. Q
 . E  D
 .. I '$D(^RMPR(661.6,RMPRXREF,RMPRK1)) D  Q
 ... S RMPRK1=$O(^RMPR(661.6,RMPRXREF,RMPRK1),RMPRT)
 ... Q
 .. S RMPRFIND=1
 .. Q
 . I RMPRK1="" S RMPREOF=1 Q
 . S RMPR("HCPCS")=RMPRK1
 . I RMPRLEV="HCPCS" Q
 . S RMPRFIND=0
 . I RMPRK2="" D
 .. S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,""),RMPRT)
 .. Q
 . E  D
 .. I '$D(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2)) D  Q
 ... S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
 ... Q
 .. S RMPRFIND=1
 .. Q
 . I RMPRK2="" S RMPREOF=1 Q
 . S RMPR("DATE&TIME")=RMPRK2
 . I RMPRLEV="DATE&TIME" Q
 . S RMPRFIND=0
 . I RMPRK3="" D
 .. S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT)
 .. Q
 . E  D
 .. I '$D(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3)) D  Q
 ... S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
 ... Q
 .. S RMPRFIND=1
 .. Q
 . I RMPRK3="" S RMPREOF=1 Q
 . S RMPR("SEQUENCE")=RMPRK3
 . I RMPRLEV="SEQUENCE" Q
 . S RMPRFIND=0
 . I RMPRK4="" D
 .. S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT)
 .. Q
 . E  D
 .. I '$D(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4)) D  Q
 ... S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
 ... Q
 .. S RMPRFIND=1
 .. Q
 . I RMPRK4="" S RMPREOF=1 Q
 . S RMPR("IEN")=RMPRK4
 . Q
SRCHX Q RMPRRET
 ;
 ; NEXT
NEXT(RMPR,RMPRXREF,RMPRLEV,RMPRT,RMPROLD,RMPREOF) ;
 N RMPRRET,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7
 I $G(RMPRT)'=-1 S RMPRT=1
 S RMPRRET=0,RMPREOF=0
 ;
 ; HCPCS, Date&Time, Sequence X-ref
 I RMPRXREF="XHDS" D  G NEXTX
 . S RMPRK1=$G(RMPR("HCPCS"))
 . S RMPRK2=$G(RMPR("DATE&TIME"))
 . S RMPRK3=$G(RMPR("SEQUENCE"))
 . S RMPRK4=$G(RMPR("IEN"))
 . I RMPRLEV="HCPCS" D  Q:RMPREOF
 .. S RMPRK1=$O(^RMPR(661.6,RMPRXREF,RMPRK1),RMPRT)
 .. I RMPRK1="" S RMPREOF=1 K RMPROLD Q
 .. S (RMPRK2,RMPRK3,RMPRK4)=""
 .. Q
 . I RMPRLEV="DATE&TIME",RMPRK1'="" D
 .. S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
 .. I RMPRK2="" S RMPREOF=1
 .. S (RMPRK3,RMPRK4)=""
 .. Q
 . I RMPRLEV="SEQUENCE",RMPRK2'="" D
 .. S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
 .. I RMPRK3="" S RMPREOF=1
 .. S RMPRK4=""
 .. Q
 . I RMPRLEV="",RMPRK3'="" D
 .. S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
 .. I RMPRK4="" S RMPREOF=1
 .. Q
 . K RMPROLD
 . I RMPREOF D
 .. I RMPRK4="" S:RMPRK3'="" RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
 .. I RMPRK3="" S:RMPRK2'="" RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
 .. I RMPRK2="" S:RMPRK1'="" RMPRK1=$O(^RMPR(661.6,RMPRXREF,RMPRK1),RMPRT) S:RMPRK1="" RMPREOF=1
 .. Q
 . I RMPRK1="",RMPREOF Q
 . S RMPREOF=0
 . M RMPROLD=RMPR
 . I RMPRK1="" S RMPRK1=$O(^RMPR(661.6,RMPRXREF,""),RMPRT)
 . I RMPRK2="" S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,""),RMPRT)
 . I RMPRK3="" S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT)
 . I RMPRK3="" W !,"*** HCPCS = ",RMPRK1,!,"*** DATE = ",RMPRK2,!,"*** is not in file #661.6",!,"*** Please investigate!!!!" Q
 . I RMPRK4="" S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT)
 . S RMPR("HCPCS")=RMPRK1
 . S RMPR("DATE&TIME")=RMPRK2
 . S RMPR("DATE")=$P(RMPRK2,".",1)
 . S RMPR("TIME")=$P(RMPRK2,".",2)
 . S RMPR("SEQUENCE")=RMPRK3
 . S RMPR("IEN")=RMPRK4
 . Q
 ;
 ; Station, Trans. Type, HCPCS, Item, Date&Time, Sequence X-ref.
 I RMPRXREF="ASTHIDS" D  G NEXTX
 . S RMPRK1=$G(RMPR("STATION"))
 . S RMPRK2=$G(RMPR("TRAN TYPE"))
 . S RMPRK3=$G(RMPR("HCPCS"))
 . S RMPRK4=$G(RMPR("ITEM"))
 . S RMPRK5=$G(RMPR("DATE&TIME"))
 . S RMPRK6=$G(RMPR("SEQUENCE"))
 . S RMPRK7=$G(RMPR("IEN"))
 . I RMPRLEV="STATION" D  Q:RMPREOF
 .. S RMPRK1=$O(^RMPR(661.6,RMPRXREF,RMPRK1),RMPRT)
 .. I RMPRK1="" S RMPREOF=1 K RMPROLD Q
 .. S (RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
 .. Q
 . I RMPRLEV="TRAN TYPE",RMPRK1'="" D
 .. S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
 .. I RMPRK2="" S RMPREOF=1
 .. S (RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
 .. Q
 . I RMPRLEV="HCPCS",RMPRK2'="" D
 .. S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
 .. I RMPRK3="" S RMPREOF=1
 .. S (RMPRK4,RMPRK5,RMPRK6,RMPRK7)=""
 .. Q
 . I RMPRLEV="ITEM",RMPRK3'="" D
 .. S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
 .. I RMPRK4="" S RMPREOF=1
 .. S (RMPRK5,RMPRK6,RMPRK7)=""
 .. Q
 . I RMPRLEV="DATE&TIME",RMPRK4'="" D
 .. S RMPRK5=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
 .. I RMPRK5="" S RMPREOF=1
 .. S (RMPRK6,RMPRK7)=""
 .. Q
 . I RMPRLEV="SEQUENCE",RMPRK5'="" D
 .. S RMPRK6=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6),RMPRT)
 .. I RMPRK6="" S RMPREOF=1
 .. S RMPRK7=""
 .. Q
 . I RMPRLEV="",RMPRK6'="" D
 .. S RMPRK7=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,RMPRK7),RMPRT)
 .. I RMPRK7="" S RMPREOF=1
 .. Q
 . K RMPROLD
 . I RMPREOF D
 .. I RMPRK7="" S:RMPRK6'="" RMPRK6=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6),RMPRT)
 .. I RMPRK6="" S:RMPRK5'="" RMPRK5=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5),RMPRT)
 .. I RMPRK5="" S:RMPRK4'="" RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4),RMPRT)
 .. I RMPRK4="" S:RMPRK3'="" RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3),RMPRT)
 .. I RMPRK3="" S:RMPRK2'="" RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2),RMPRT)
 .. I RMPRK2="" S:RMPRK1'="" RMPRK1=$O(^RMPR(661.6,RMPRXREF,RMPRK1),RMPRT) S:RMPRK1="" RMPREOF=1
 .. Q
 . I RMPRK1="",RMPREOF Q
 . M RMPROLD=RMPR
 . I RMPRK1="" S RMPRK1=$O(^RMPR(661.6,RMPRXREF,""),RMPRT)
 . I RMPRK2="" S RMPRK2=$O(^RMPR(661.6,RMPRXREF,RMPRK1,""),RMPRT)
 . I RMPRK3="" S RMPRK3=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,""),RMPRT)
 . I RMPRK4="" S RMPRK4=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,""),RMPRT)
 . I RMPRK5="" S RMPRK5=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,""),RMPRT)
 . I RMPRK6="" S RMPRK6=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,""),RMPRT)
 . I RMPRK7="" S RMPRK7=$O(^RMPR(661.6,RMPRXREF,RMPRK1,RMPRK2,RMPRK3,RMPRK4,RMPRK5,RMPRK6,""),RMPRT)
 . S RMPR("STATION")=RMPRK1
 . S RMPR("TRAN TYPE")=RMPRK2
 . S RMPR("HCPCS")=RMPRK3
 . S RMPR("ITEM")=RMPRK4
 . S RMPR("DATE&TIME")=RMPRK5
 . S RMPR("SEQUENCE")=RMPRK6
 . S RMPR("IEN")=RMPRK7
 . Q
NEXTX Q RMPRRET
 ;
 ; CRE
CRE(RMPR616,RMPR6111) ;
 N RMPRRET,RMPRIENA,RMPRFDA,RMPRFME,X,Y,%
 N %,%H,%I,X
 S RMPRRET=0
 ;
 ; Get DATE&TIME for transaction and lock the file
 S RMPR616("DATE&TIME")=""
 F  D  Q:RMPR616("DATE&TIME")'=""
 . D NOW^%DTC
 . I $D(^RMPR(661.6,"XHDS",RMPR616("HCPCS"),%,1)) H (1+$R(3)) Q
 . L +^RMPR(661.6,"XHDS",RMPR616("HCPCS"),%):0 E  Q
 . S RMPR616("DATE&TIME")=%
 . Q
 S RMPRFDA(661.6,"+1,",.01)=RMPR6111("HCPCS")
 S RMPRFDA(661.6,"+1,",2)=RMPR616("DATE&TIME")
 S RMPRFDA(661.6,"+1,",3)=RMPR616("SEQUENCE")
 S RMPRFDA(661.6,"+1,",4)=RMPR616("TRAN TYPE")
 S RMPRFDA(661.6,"+1,",5)=RMPR616("QUANTITY")
 S RMPRFDA(661.6,"+1,",6)=RMPR616("VALUE")
 S RMPRFDA(661.6,"+1,",8)=RMPR616("COMMENT")
 S RMPRFDA(661.6,"+1,",9)=RMPR616("USER")
 S RMPRFDA(661.6,"+1,",11)=RMPR6111("ITEM")
 S RMPRFDA(661.6,"+1,",12)=RMPR616("VENDOR")
 S RMPRFDA(661.6,"+1,",13)=RMPR6111("STATION")
 S RMPRFDA(661.6,"+1,",14)=RMPR616("LOCATION")
 D UPDATE^DIE("","RMPRFDA","RMPRIENA","RMPRFME")
 L -^RMPR(661.6,"XHDS",RMPR616("HCPCS"),RMPR616("DATE&TIME"))
 I $D(RMPRFME) S RMPRRET=1 G CREX
 S RMPR616("IEN")=RMPRIENA(1)
CREX Q RMPRRET
 ;
 ; GET
GET(RMPR) ;
 N RMPRRET,RMPRFME,RMPRIEN,RMPRKEY,RMPRERR,RMPROUP
 S RMPRRET=0
 I $G(RMPR("IEN"))="" D
 . I $G(RMPR("HCPCS"))="" S RMPRRET=1 Q
 . I $G(RMPR("DATE&TIME"))="" S RMPRRET=2 Q
 . S RMPRKEY("HCPCS")=RMPR("HCPCS")
 . S RMPRKEY("DATE&TIME")=RMPR("DATE&TIME")
 . S RMPRERR=$$NEXT(.RMPRKEY,"XHDS","",-1,,.RMPREOF)
 . I RMPRERR S RMPRRET=3 Q
 . I RMPRKEY("SEQUENCE")'=1 S RMPRRET=4 Q
 . S RMPR("IEN")=RMPRKEY("IEN")
 . Q
 I RMPRRET G GETX
 S RMPRIEN=RMPR("IEN")_","
 D GETS^DIQ(661.6,RMPRIEN,"*","","RMPROUP","RMPRFME")
 I $D(RMPRFME) S RMPRRET=5 G GETX
 S RMPR("HCPCS")=RMPROUP(661.6,RMPRIEN,.01)
 S RMPR("DATE&TIME")=RMPROUP(661.6,RMPRIEN,2)
 S RMPR("SEQUENCE")=RMPROUP(661.6,RMPRIEN,3)
 S RMPR("TRAN TYPE")=RMPROUP(661.6,RMPRIEN,4)
 S RMPR("QUANTITY")=RMPROUP(661.6,RMPRIEN,5)
 S RMPR("VALUE")=RMPROUP(661.6,RMPRIEN,6)
 S RMPR("COMMENT")=RMPROUP(661.6,RMPRIEN,8)
 S RMPR("USER")=RMPROUP(661.6,RMPRIEN,9)
 S RMPR("ITEM")=RMPROUP(661.6,RMPRIEN,11)
 S RMPR("VENDOR")=RMPROUP(661.6,RMPRIEN,12)
 S RMPR("STATION")=RMPROUP(661.6,RMPRIEN,13)
 S RMPR("LOCATION")=RMPROUP(661.6,RMPRIEN,14)
GETX Q RMPRRET