- ORQOR1 ; slc/CLA - Functions which return order information ;12/15/97 [ 04/02/97 3:01 PM ]
- ;;3.0;ORDER ENTRY/RESULTS REPORTING;**78,127,242**;Dec 17, 1997;Build 6
- LIST(ORY,PATIENT,GROUP,FLAG,ORSDT,OREDT,ORXREF,GETKID) ;return list of patient orders
- ; return PATIENT's orders for a display GROUP of type FLAG
- ; between start (ORSDT) and end dates (OREDT)
- ; dates can be in Fileman or T, T-14 formats
- N GIEN S GIEN=""
- I $L($G(ORSDT)) D DT^DILF("T",ORSDT,.ORSDT,"","")
- I $L($G(OREDT)) D DT^DILF("T",OREDT,.OREDT,"","")
- I (ORSDT=-1)!(OREDT=-1) S ORY(1)="^Error in date range." Q
- S PATIENT=PATIENT_";DPT("
- S:$L($G(GROUP)) GIEN=$O(^ORD(100.98,"B",GROUP,GIEN))
- K ^TMP("ORR",$J)
- D EN^ORQ1(PATIENT,GIEN,FLAG,"",ORSDT,OREDT,1,0,$G(ORXREF),$G(GETKID))
- N J,HOR,SEQ,X S J=1,HOR=0,SEQ=0
- S HOR=$O(^TMP("ORR",$J,HOR)) Q:+HOR<1
- F S SEQ=$O(^TMP("ORR",$J,HOR,SEQ)) Q:+SEQ<1 D
- .S X=^TMP("ORR",$J,HOR,SEQ)
- .S ORY(J)=$P(X,U)_U_$E(^TMP("ORR",$J,HOR,SEQ,"TX",1),1,60)_U_$P(X,U,4)_U_$P(X,U,6),J=J+1
- K ^TMP("ORR",$J)
- S:+$G(ORY(1))<1 ORY(1)="^No orders found."
- Q
- STATI(ORY) ; return stati from ORDER STATUS file [#100.01]
- N STATUS,IEN,I S STATUS="",IEN=0,I=1
- F S STATUS=$O(^ORD(100.01,"B",STATUS)) Q:STATUS="" D
- .S IEN=$O(^ORD(100.01,"B",STATUS,IEN))
- .Q:$$SCREEN^XTID(100.01,,IEN_",") ;inactive VUID
- .S ORY(I)=IEN_"^"_STATUS,IEN=0,I=I+1
- Q
- DG(DGNAME) ; extrinsic function returns display group ien
- Q:'$L($G(DGNAME)) ""
- N DGIEN S DGIEN=0
- S DGIEN=$O(^ORD(100.98,"B",DGNAME,DGIEN))
- Q +$G(DGIEN)
- OI(OINAME) ; extrinsic function returns orderable item ien
- Q:'$L($G(OINAME)) ""
- N OI S OI=""
- S OI=$O(^ORD(101.43,"B",OINAME,OI))
- Q +$G(OI)
- TEXTSTAT(ORNUM) ;extrinsic function returns the first 200 chars of order text
- ;and order status in format: <order text>^<order status>
- ;ORNUM - order number (main order number - $P(ORNUM,";",1))
- S ORNUM=+ORNUM
- Q:'$L($G(ORNUM)) ""
- Q:'$L($G(^OR(100,ORNUM,0))) ""
- N ORSTATUS,ORY
- D TEXT^ORQ12(.ORY,ORNUM,200)
- Q:+$G(ORY)<1 "Order text not found.^"
- S ORSTATUS=$P(^OR(100,ORNUM,3),U,3)
- S ORSTATUS=$G(^ORD(100.01,+ORSTATUS,0))
- S ORSTATUS=$P(ORSTATUS,U)
- Q ORY(1)_U_ORSTATUS
- FULLTEXT(ORNUM) ;extrinsic function returns the full text of an order
- ;and order status in format: <order text>^<order status>
- ;ORNUM - order number (main order number - $P(ORNUM,";",1))
- N ORX,ORTXT
- S ORTXT=""
- S ORNUM=+ORNUM
- Q:'$L($G(ORNUM)) ""
- Q:'$L($G(^OR(100,ORNUM,0))) ""
- N ORSTATUS,ORY
- D TEXT^ORQ12(.ORY,ORNUM,"")
- Q:+$G(ORY)<1 "Order text not found.^"
- S:ORY>2 ORY=2 ;only display first two lines of text
- F ORX=1:1:ORY S ORTXT=ORTXT_ORY(ORX)_" "
- S ORSTATUS=$P(^OR(100,ORNUM,3),U,3)
- S ORSTATUS=$G(^ORD(100.01,+ORSTATUS,0))
- S ORSTATUS=$P(ORSTATUS,U)
- Q ORTXT_U_ORSTATUS
- ORQOR1 ; slc/CLA - Functions which return order information ;12/15/97 [ 04/02/97 3:01 PM ]
- +1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**78,127,242**;Dec 17, 1997;Build 6
- LIST(ORY,PATIENT,GROUP,FLAG,ORSDT,OREDT,ORXREF,GETKID) ;return list of patient orders
- +1 ; return PATIENT's orders for a display GROUP of type FLAG
- +2 ; between start (ORSDT) and end dates (OREDT)
- +3 ; dates can be in Fileman or T, T-14 formats
- +4 NEW GIEN
- SET GIEN=""
- +5 IF $LENGTH($GET(ORSDT))
- DO DT^DILF("T",ORSDT,.ORSDT,"","")
- +6 IF $LENGTH($GET(OREDT))
- DO DT^DILF("T",OREDT,.OREDT,"","")
- +7 IF (ORSDT=-1)!(OREDT=-1)
- SET ORY(1)="^Error in date range."
- QUIT
- +8 SET PATIENT=PATIENT_";DPT("
- +9 IF $LENGTH($GET(GROUP))
- SET GIEN=$ORDER(^ORD(100.98,"B",GROUP,GIEN))
- +10 KILL ^TMP("ORR",$JOB)
- +11 DO EN^ORQ1(PATIENT,GIEN,FLAG,"",ORSDT,OREDT,1,0,$GET(ORXREF),$GET(GETKID))
- +12 NEW J,HOR,SEQ,X
- SET J=1
- SET HOR=0
- SET SEQ=0
- +13 SET HOR=$ORDER(^TMP("ORR",$JOB,HOR))
- IF +HOR<1
- QUIT
- +14 FOR
- SET SEQ=$ORDER(^TMP("ORR",$JOB,HOR,SEQ))
- IF +SEQ<1
- QUIT
- Begin DoDot:1
- +15 SET X=^TMP("ORR",$JOB,HOR,SEQ)
- +16 SET ORY(J)=$PIECE(X,U)_U_$EXTRACT(^TMP("ORR",$JOB,HOR,SEQ,"TX",1),1,60)_U_$PIECE(X,U,4)_U_$PIECE(X,U,6)
- SET J=J+1
- End DoDot:1
- +17 KILL ^TMP("ORR",$JOB)
- +18 IF +$GET(ORY(1))<1
- SET ORY(1)="^No orders found."
- +19 QUIT
- STATI(ORY) ; return stati from ORDER STATUS file [#100.01]
- +1 NEW STATUS,IEN,I
- SET STATUS=""
- SET IEN=0
- SET I=1
- +2 FOR
- SET STATUS=$ORDER(^ORD(100.01,"B",STATUS))
- IF STATUS=""
- QUIT
- Begin DoDot:1
- +3 SET IEN=$ORDER(^ORD(100.01,"B",STATUS,IEN))
- +4 ;inactive VUID
- IF $$SCREEN^XTID(100.01,,IEN_",")
- QUIT
- +5 SET ORY(I)=IEN_"^"_STATUS
- SET IEN=0
- SET I=I+1
- End DoDot:1
- +6 QUIT
- DG(DGNAME) ; extrinsic function returns display group ien
- +1 IF '$LENGTH($GET(DGNAME))
- QUIT ""
- +2 NEW DGIEN
- SET DGIEN=0
- +3 SET DGIEN=$ORDER(^ORD(100.98,"B",DGNAME,DGIEN))
- +4 QUIT +$GET(DGIEN)
- OI(OINAME) ; extrinsic function returns orderable item ien
- +1 IF '$LENGTH($GET(OINAME))
- QUIT ""
- +2 NEW OI
- SET OI=""
- +3 SET OI=$ORDER(^ORD(101.43,"B",OINAME,OI))
- +4 QUIT +$GET(OI)
- TEXTSTAT(ORNUM) ;extrinsic function returns the first 200 chars of order text
- +1 ;and order status in format: <order text>^<order status>
- +2 ;ORNUM - order number (main order number - $P(ORNUM,";",1))
- +3 SET ORNUM=+ORNUM
- +4 IF '$LENGTH($GET(ORNUM))
- QUIT ""
- +5 IF '$LENGTH($GET(^OR(100,ORNUM,0)))
- QUIT ""
- +6 NEW ORSTATUS,ORY
- +7 DO TEXT^ORQ12(.ORY,ORNUM,200)
- +8 IF +$GET(ORY)<1
- QUIT "Order text not found.^"
- +9 SET ORSTATUS=$PIECE(^OR(100,ORNUM,3),U,3)
- +10 SET ORSTATUS=$GET(^ORD(100.01,+ORSTATUS,0))
- +11 SET ORSTATUS=$PIECE(ORSTATUS,U)
- +12 QUIT ORY(1)_U_ORSTATUS
- FULLTEXT(ORNUM) ;extrinsic function returns the full text of an order
- +1 ;and order status in format: <order text>^<order status>
- +2 ;ORNUM - order number (main order number - $P(ORNUM,";",1))
- +3 NEW ORX,ORTXT
- +4 SET ORTXT=""
- +5 SET ORNUM=+ORNUM
- +6 IF '$LENGTH($GET(ORNUM))
- QUIT ""
- +7 IF '$LENGTH($GET(^OR(100,ORNUM,0)))
- QUIT ""
- +8 NEW ORSTATUS,ORY
- +9 DO TEXT^ORQ12(.ORY,ORNUM,"")
- +10 IF +$GET(ORY)<1
- QUIT "Order text not found.^"
- +11 ;only display first two lines of text
- IF ORY>2
- SET ORY=2
- +12 FOR ORX=1:1:ORY
- SET ORTXT=ORTXT_ORY(ORX)_" "
- +13 SET ORSTATUS=$PIECE(^OR(100,ORNUM,3),U,3)
- +14 SET ORSTATUS=$GET(^ORD(100.01,+ORSTATUS,0))
- +15 SET ORSTATUS=$PIECE(ORSTATUS,U)
- +16 QUIT ORTXT_U_ORSTATUS