[613] | 1 | LR7OFA3 ;slc/dcm - Process OBR messages from OE/RR for AP ;8/11/97
|
---|
| 2 | ;;5.2;LAB SERVICE;**121,187**;Sep 27, 1994
|
---|
| 3 | ;
|
---|
| 4 | OBR ;Process OBR part of MSG array
|
---|
| 5 | ;TEST= Ptr to test in file 60
|
---|
| 6 | ;TESTN= Test Name
|
---|
| 7 | ;TYPE= Collection Sample Type
|
---|
| 8 | ;SAMP= Ptr to Collection sample in file 62
|
---|
| 9 | ;URG= Urgency
|
---|
| 10 | I '$O(LRXMSG(0)) D
|
---|
| 11 | . S TEST=+$P($P(LRXMSG,"|",5),"^",4),TESTN=$P($P(LRXMSG,"|",5),"^",6),TYPE=$$LRACTCOD^LR7OU0($P(LRXMSG,"|",12)),SPEC=$S($P($P($P(LRXMSG,"|",5),"^",4),"~",2):$P($P($P(LRXMSG,"|",5),"^",4),"~",2),1:$$LRSPEC^LR7OU0($P(LRXMSG,"|",16)))
|
---|
| 12 | . S URG=$$LRURG^LR7OU0($P($P(LRXMSG,"|",28),"^",6))
|
---|
| 13 | I $O(LRXMSG(0)) D
|
---|
| 14 | . N I,J,X1,CTR
|
---|
| 15 | . F CTR=1:1:$L(LRXMSG,"|") S X1(CTR)=$P(LRXMSG,"|",CTR)
|
---|
| 16 | . S J=0 F S J=$O(LRXMSG(J)) Q:J<1 D
|
---|
| 17 | .. S I=1 I $E(LRXMSG(J))'="|" S X1(CTR)=X1(CTR)_$P(LRXMSG,"|"),I=I+1
|
---|
| 18 | .. F I=I:1:$L(LRXMSG(J),"|") S CTR=CTR+1,X1(CTR)=$P(LRXMSG(J),"|",I)
|
---|
| 19 | . S TEST=$P(X1(5),"^",4),TESTN=$P(X1(5),"^",6),TYPE=$$LRACTCOD^LR7OU0(X1(12)),SPEC=$S($P($P(X1(5),"^",4),"~",2):$P($P(X1(5),"^",4),"~",2),1:$$LRSPEC^LR7OU0(X1(16)))
|
---|
| 20 | . S URG=$$LRURG^LR7OU0($P(X1(28),"^",6))
|
---|
| 21 | I '$L(TEST) D ACK^LR7OF0("DE",LRXORC,"TEST pointer not sent in message") S LREND=1 Q
|
---|
| 22 | I '$L(TESTN) D ACK^LR7OF0("DE",LRXORC,"Test Name not sent in message") S LREND=1 Q
|
---|
| 23 | I '$L(TYPE) D ACK^LR7OF0("DE",LRXORC,"Collection type not sent in message") S LREND=1 Q
|
---|
| 24 | I '$L(SAMP) D ACK^LR7OF0("DE",LRXORC,"Sample pointer not sent in message") S LREND=1 Q
|
---|
| 25 | I '$L(URG) D ACK^LR7OF0("DE",LRXORC,"Urgency not sent in message") S LREND=1 Q
|
---|
| 26 | I LRXTYPE="NW" D ST Q ;New order request
|
---|
| 27 | Q
|
---|
| 28 | ST S LRSX=LRSX+1 I $D(^TMP("OR",$J,"LROT",STARTDT,TYPE,SAMP,LRSX)) G ST
|
---|
| 29 | S ^TMP("OR",$J,"LROT",STARTDT,TYPE,SAMP,0)=ORIFN
|
---|
| 30 | S ^TMP("OR",$J,"LROT",STARTDT,TYPE,SAMP,LRSX)=TEST
|
---|
| 31 | S ^TMP("OR",$J,"LROT",STARTDT,TYPE,SAMP,LRSX,1)=URG
|
---|
| 32 | Q
|
---|