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

ORQ1.m

Go to the documentation of this file.
  1. ORQ1 ;slc/dcm-Get orders for a patient. ; 08 May 2002 2:12 PM
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**27,72,78,141,190,215**;Dec 17, 1997
  1. EN(PAT,GROUP,FLG,EXPAND,SDATE,EDATE,DETAIL,MULT,XREF,GETKID,EVENT) ;Get orders
  1. ; Returns orders in ^TMP("ORR",$J,ORLIST,i) for defined context:
  1. ;
  1. ; PAT =patient variable ptr in format "DFN;DPT("
  1. ; GROUP=Display group
  1. ; FLG =#: Includes status:
  1. ; 1. All => 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  1. ; 2. Active/Current => 3,4,5,6, 8,9, 11, 15
  1. ; Includes CONTEXT HRS 1,2,7,13 & Action Status=13
  1. ; Orders in ^OR(100,"AC",PAT,TM,IFN,ACTION)
  1. ; 3. Discontinued => 1 12,13
  1. ; 4. Completed/Expired => 2, 7
  1. ; 5. Expiring => 3,4,5,6, 8,9
  1. ; 6. Recent Activity => 1,2,3,4,5,6,7,8,9, 12, 15
  1. ; Orders in ^OR(100,"AR",PAT,TM,IFN,ACTION)
  1. ; 7. Pending => 5
  1. ; 8. Unverified => 1, 3,4,5,6, 8,9, 15
  1. ; 9. Unverified/Nurse => 1, 3,4,5,6, 8,9, 15
  1. ;10. Unverified/Clerk => 1, 3,4,5,6, 8,9, 15
  1. ;11. Unsigned => 1,2,3,4,5,6,7,8,9,10,11, 13,14,15
  1. ; Orders in ^OR(100,"AS",PAT,TM,IFN)
  1. ;12. Flagged => 1,2,3,4,5,6,7,8,9, 12,13,14,15
  1. ;13. Verbal/Phoned => 1,2,3,4,5,6,7,8,9, 13,14,15
  1. ; Nature of order of verbal or phoned
  1. ;14. Verb/Phn unsigned => 1,2,3,4,5,6,7,8,9, 13,14,15
  1. ; Nature of order V or P & unsigned
  1. ;15. Admission => 6, 10
  1. ;16. Discharge => 6, 10
  1. ;17. Transfer => 6, 10
  1. ; Orders in ^OR(100,"AEVNT",PAT,EVENT,IFN)
  1. ;18. On Hold => 3
  1. ;19. New Orders => 10,11
  1. ; Orders in ^TMP("ORNEW",$J,ORIFN)
  1. ;20. Chart Review => 1, 3,4,5,6, 8,9, 15
  1. ;21. Chart Copy Summary=> same as All w/screen on Nature of order
  1. ;22. Lapsed => 14
  1. ;23. Active status => 5,6
  1. ;24. All Delayed => 6, 10
  1. ;25. Out of OR => 6, 10
  1. ;26. Manual Release => 6, 10
  1. ;27. Expired => 7
  1. ;28. Discontinued Entered in Error => code handles this in ORQ12
  1. ; Orders in ^OR(100,"AEVNT",PAT,EVENT,IFN)
  1. EN0 ; where order status=#:
  1. ; 1 => Discontinued (dc) 6 => Active (a) 11 => Unreleased (u)
  1. ; 2 => Complete (c) 7 => Expired (e) 12 => DC/Edit (dce)
  1. ; 3 => Hold (h) 8 => Scheduled (s) 13 => Cancelled (x)
  1. ; 4 => Flagged (?) 9 => Partial Results (pr) 14 => Lapsed (l)
  1. ; 5 => Pending (p) 10 => Delayed (d) 15 => Renewed (rn)
  1. ; 99 => No Status (')
  1. ; EXPAND=ifn of parent order, used to expand child orders
  1. ; SDATE =Start date
  1. ; EDATE =End date
  1. ; DETAIL=Data to be returned (optional, default=0):
  1. ; 0 => ^TMP("ORR",$J,ORLIST,i) = order #
  1. ; 1 => ^TMP("ORR",$J,ORLIST,i) = order #^display group^when entered^
  1. ; start d/t^stop d/t^status^sts abbrv
  1. ; ^TMP("ORR",$J,ORLIST,i,"TX",j) = order text
  1. ; MULT =0:Don't allow multiple occurrances of order
  1. ; =1:Allow multiple occurances
  1. ; XREF =cross reference to use instead of ACT (AW for completed orders)
  1. ; GETKID=includes children of multiple orders
  1. ; EVENT =ptr to Patient Event file #100.2, for orders tied to an event
  1. ;
  1. EN1 ; -- start here
  1. Q:'$G(PAT) N X,ORLST,ORGRP,LAPSE
  1. S:'$G(GROUP) GROUP=$O(^ORD(100.98,"B","ALL SERVICES",0))
  1. S:'$G(FLG) FLG=2 S:'$G(DETAIL) DETAIL=0 S:'$G(MULT) MULT=0
  1. I $G(EDATE)<$G(SDATE) S X=EDATE,EDATE=SDATE,SDATE=X
  1. I $G(EDATE) S EDATE=$S($L(EDATE,".")=2:EDATE+.0001,1:EDATE+1)
  1. I $G(SDATE) S SDATE=$S($L(SDATE,".")=2:SDATE-.0001,1:SDATE)
  1. S SDATE=9999999-$S($G(SDATE):SDATE,FLG=6:DT-.7641,1:0),EDATE=9999999-$S($G(EDATE):EDATE,FLG=6:DT+.2359,1:9999998)
  1. S ORLST=0,X=EDATE,EDATE=SDATE,SDATE=X D GRP(GROUP),LIST
  1. S LAPSE=+$$GET^XPAR("ALL","OR DELAYED ORDERS LAPSE DAYS")
  1. S:LAPSE LAPSE=$$FMADD^XLFDT(DT,(0-LAPSE)) ;=0 or cutoff date
  1. I "^15^16^17^24^25^26^"[(U_FLG_U)!$G(EVENT) D EN^ORQ13 G ENQ
  1. D @($S(FLG=2:"CUR",FLG=5:"EXG","^6^8^9^10^20^"[(U_FLG_U):"ACT",FLG=11:"SIG",FLG=19:"NEW","^1^3^4^7^12^13^14^18^21^22^23^27^28^"[(U_FLG_U):"LOOP",1:"QUIT")_"^ORQ11")
  1. ENQ K ^TMP("ORGOTIT",$J)
  1. Q
  1. ;
  1. LIST ;Get entry in ^TMP("ORR",$J,ORLIST)
  1. S ORLIST=$H
  1. L +^TMP("ORR",$J,ORLIST)
  1. I $D(^TMP("ORR",$J,ORLIST)) L -^TMP("ORR",$J,ORLIST) H 1 G LIST
  1. S ^TMP("ORR",$J,ORLIST)=""
  1. L -^TMP("ORR",$J,ORLIST)
  1. Q
  1. ;
  1. GRP(DG) ;Setup display groups
  1. ;DG=Display group to expand
  1. N STK,MEM
  1. S ORGRP(DG)="",STK=1,STK(STK)=DG_"^0",STK(0)=0,MEM=0
  1. F S MEM=$O(^ORD(100.98,+STK(STK),1,MEM)) D @$S(+MEM'>0:"POP",1:"PROC") Q:STK<1
  1. Q
  1. ;
  1. POP S STK=STK-1,MEM=$P(STK(STK),"^",2)
  1. Q
  1. PROC S $P(STK(STK),"^",2)=MEM,DG=$P(^ORD(100.98,+STK(STK),1,MEM,0),"^",1)
  1. S ORGRP(DG)="",STK=STK+1,STK(STK)=DG_"^0",MEM=0
  1. Q