| 1 | GMTSORC3 ; SLC/JER,KER - Current Orders (V3) ; 09/21/2001
 | 
|---|
| 2 |  ;;2.7;Health Summary;**15,28,47**;Oct 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; External References
 | 
|---|
| 5 |  ;   DBIA 10096    ^%ZOSF("TEST")
 | 
|---|
| 6 |  ;   DBIA 10011    ^DIWP
 | 
|---|
| 7 |  ;   DBIA  3154    EN^ORQ1
 | 
|---|
| 8 |  ;                             
 | 
|---|
| 9 | MAIN ; Current Orders (v3)
 | 
|---|
| 10 |  N DIWF,DIWL,DIWR,GMTSDATA,GMTSDGRP,GMTSI,GMTSJ,GMTSK,GMTSLINE,GMTSORNM,GMTSSTAT,GMTSSTOP,GMTSSTRT,GMTSTTAB,GMTSWHEN,ORLIST,X S X="ORQ1" X ^%ZOSF("TEST") G:'$T EXIT D EXIT
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; Call 
 | 
|---|
| 13 |  ;  EN^ORQ1(PAT,GROUP,FLG,EXPAND,SDATE,EDATE,DETAIL,MULT,XREF,GETKID)
 | 
|---|
| 14 |  ;     PAT    = #;DPT(     Patient VP
 | 
|---|
| 15 |  ;     GROUP  = 1          Display Group
 | 
|---|
| 16 |  ;     FLG    = 2          Active Current Orders
 | 
|---|
| 17 |  ;     EXPAND = ""         IEN of Parent Order
 | 
|---|
| 18 |  ;     SDATE  = GMTSBEG    Start Date
 | 
|---|
| 19 |  ;     EDATE  = GMTSEND    End Date
 | 
|---|
| 20 |  ;     DETAIL = 1          Return Details of Order
 | 
|---|
| 21 |  ;     MULT   = 1          Allow Multiple Occurrences
 | 
|---|
| 22 |  ;           
 | 
|---|
| 23 |  D EN^ORQ1(DFN_";DPT(",1,2,"",GMTSBEG,GMTSEND,1,1,,1) G:'$D(^TMP("ORR",$J)) EXIT D HEAD S GMTSI=0
 | 
|---|
| 24 |  F  S GMTSI=$O(^TMP("ORR",$J,ORLIST,GMTSI)) Q:GMTSI'>0!$D(GMTSQIT)  D PRT
 | 
|---|
| 25 | EXIT ; Clean-up and quit
 | 
|---|
| 26 |  K ^TMP("ORR",$J),^UTILITY($J,"W") Q
 | 
|---|
| 27 | PRT ; Get the data
 | 
|---|
| 28 |  S GMTSDATA=$G(^TMP("ORR",$J,ORLIST,GMTSI)),GMTSORNM=$P(GMTSDATA,U,1),GMTSDGRP=$P(GMTSDATA,U,2),GMTSWHEN=$P(GMTSDATA,U,3),GMTSSTRT=$P(GMTSDATA,U,4),GMTSSTOP=$P(GMTSDATA,U,5)
 | 
|---|
| 29 |  I $L($P(GMTSDATA,U,7)) S GMTSSTAT=$P(GMTSDATA,U,7)
 | 
|---|
| 30 |  E  S GMTSSTAT=$E($P(GMTSDATA,U,6),1,4)
 | 
|---|
| 31 |  S GMTSSTRT=$$REGDTM(GMTSSTRT),GMTSSTOP=$$REGDTM(GMTSSTOP)
 | 
|---|
| 32 |  I $O(^TMP("ORR",$J,ORLIST,GMTSI,"TX",0))'>0 D
 | 
|---|
| 33 |  . S ^TMP("ORR",$J,ORLIST,GMTSI,"TX")=1,^TMP("ORR",$J,ORLIST,GMTSI,"TX",1)="*** Unknown ***"
 | 
|---|
| 34 |  S GMTSJ=0,DIWL=1,DIWR=36,DIWF="" K ^UTILITY($J,"W",DIWL)
 | 
|---|
| 35 |  F  S GMTSJ=$O(^TMP("ORR",$J,ORLIST,GMTSI,"TX",GMTSJ)) Q:GMTSJ'>0  D
 | 
|---|
| 36 |  . S X=$G(^TMP("ORR",$J,ORLIST,GMTSI,"TX",GMTSJ)) D ^DIWP
 | 
|---|
| 37 |  S (GMTSK,GMTSLINE,GMTSTTAB)=0
 | 
|---|
| 38 |  F  S GMTSK=$O(^UTILITY($J,"W",DIWL,GMTSK)) Q:GMTSK'>0!$D(GMTSQIT)  D
 | 
|---|
| 39 |  . D CKP^GMTSUP Q:$D(GMTSQIT)  I GMTSNPG D HEAD S GMTSLINE=0
 | 
|---|
| 40 |  . S GMTSLINE=GMTSLINE+1
 | 
|---|
| 41 |  . W ?GMTSTTAB,$G(^UTILITY($J,"W",DIWL,GMTSK,0)) S GMTSTTAB=2
 | 
|---|
| 42 |  . W:GMTSLINE=1 ?39,GMTSSTAT,?45,GMTSSTRT,?63,GMTSSTOP W !
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | HEAD ; Print the header
 | 
|---|
| 45 |  D CKP^GMTSUP Q:$D(GMTSQIT)  W "Item Ordered",?38,"Status",?45,"Start Date",?63,"Stop Date",!! Q
 | 
|---|
| 46 | REGDTM(X) ; Convert an internal to an external date/time
 | 
|---|
| 47 |  D:X]"" REGDTM4^GMTSU Q X
 | 
|---|
| 48 | WRAP(TEXT,LENGTH) ; Breaks text string into substrings
 | 
|---|
| 49 |  ;                
 | 
|---|
| 50 |  ;    Input
 | 
|---|
| 51 |  ;       TEXT = Text String
 | 
|---|
| 52 |  ;       LENGTH = Maximum Length of Substrings
 | 
|---|
| 53 |  ;                            
 | 
|---|
| 54 |  ;    Output vertical bar delimted text
 | 
|---|
| 55 |  ;       substring|substring|substring|substring|substring
 | 
|---|
| 56 |  ;                            
 | 
|---|
| 57 |  N GMTI,GMTJ,LINE,GMX,GMX1,GMX2,GMY I $G(TEXT)']"" Q ""
 | 
|---|
| 58 |  F GMTI=1:1 D  Q:GMTI=$L(TEXT," ")
 | 
|---|
| 59 |  . S GMX=$P(TEXT," ",GMTI)
 | 
|---|
| 60 |  . I $L(GMX)>LENGTH D
 | 
|---|
| 61 |  . . S GMX1=$E(GMX,1,LENGTH),GMX2=$E(GMX,LENGTH+1,$L(GMX)),$P(TEXT," ",GMTI)=GMX1_" "_GMX2
 | 
|---|
| 62 |  S LINE=1,GMX(1)=$P(TEXT," ") F GMTI=2:1 D  Q:GMTI'<$L(TEXT," ")
 | 
|---|
| 63 |  . S:$L($G(GMX(LINE))_" "_$P(TEXT," ",GMTI))>LENGTH LINE=LINE+1,GMY=1
 | 
|---|
| 64 |  . S GMX(LINE)=$G(GMX(LINE))_$S(+$G(GMY):"",1:" ")_$P(TEXT," ",GMTI),GMY=0
 | 
|---|
| 65 |  S GMTJ=0,TEXT="" F GMTI=1:1 S GMTJ=$O(GMX(GMTJ)) Q:+GMTJ'>0  S TEXT=TEXT_$S(GMTI=1:"",1:"|")_GMX(GMTJ)
 | 
|---|
| 66 |  Q TEXT
 | 
|---|