| 1 | PSGMMAR3 ;BIR/CML3-MD MARS - SORT O/P ORDERS ;21 Oct 98 / 12:22 PM
 | 
|---|
| 2 |  ;;5.0; INPATIENT MEDICATIONS ;**20,111,131,145**;16 DEC 97;Build 17
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; Reference to ^PS(59.7 supported by DBIA #2181.
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | S1 ; Print non-blank prn.
 | 
|---|
| 7 |  Q:PSGMARB=1
 | 
|---|
| 8 |  NEW INIT,NEED,LT,RT,BL,PG,LAB
 | 
|---|
| 9 |  S BL=$S($P($G(^PS(59.7,1,26)),U):6,1:4),(PG,LT,RT)=1
 | 
|---|
| 10 |  S NO=$S(PSGSS="P"!(PSGSS="C")!(PSGSS="L"):$O(^TMP($J,PN,PWDN,"N"))="",PSGRBPPN="P":$O(^TMP($J,TM,WDN,PN,RB,"N"))="",1:$O(^TMP($J,TM,WDN,RB,PN,"N"))="")
 | 
|---|
| 11 |  Q:NO
 | 
|---|
| 12 |  D NOW^%DTC S PSGDT=%,(DAO,DAOO)="",PST="N",PSGMAROC=0
 | 
|---|
| 13 |  K ^TMP($J,"1PRN")
 | 
|---|
| 14 |  I PSGSS'="P",PSGSS'="C",PSGSS'="L" D
 | 
|---|
| 15 |  . I PSGRBPPN="P" F  S PST=$O(^XTMP(PSGREP,TM,PN,WDN,RB,PST)) Q:PST=""  F  S DAOO=$O(^XTMP(PSGREP,TM,PN,WDN,RB,PST,DAOO)) Q:DAOO=""  S PSGMARTS=^(DAOO) D SET    ;DAM 5-01-07 add XTMP global
 | 
|---|
| 16 |  . I PSGRBPPN="R" F  S PST=$O(^TMP($J,TM,WDN,RB,PN,PST)) Q:PST=""  F  S DAOO=$O(^TMP($J,TM,WDN,RB,PN,PST,DAOO)) Q:DAOO=""  S PSGMARTS=^(DAOO) D SET
 | 
|---|
| 17 |  I PSGSS="P"!(PSGSS="C")!(PSGSS="L") F  S PST=$O(^TMP($J,PN,PWDN,PST)) Q:PST=""  D
 | 
|---|
| 18 |  . N DAOO S DAOO=""
 | 
|---|
| 19 |  . F  S DAOO=$O(^TMP($J,PN,PWDN,PST,DAOO)) Q:DAOO=""  I $D(^TMP($J,PN,PWDN,PST,DAOO))#10 S PSGMARTS=^(DAOO) D SET
 | 
|---|
| 20 |  . Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  D EN^PSGMMAR4
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | SET ; set ^tmp array
 | 
|---|
| 26 |  S PSGORD=$P(DAOO,U,2)
 | 
|---|
| 27 |  I PSGORD["V" D IVPRN^PSGMMIV Q
 | 
|---|
| 28 |  I +PSGMSORT,PSGORD["P" S PSJPSTO=PST,PST="OZ"
 | 
|---|
| 29 |  S PSGORD=+PSGORD_$S(PSGORD["P":"P",1:"A") D ^PSGLOI
 | 
|---|
| 30 |  S TS=0 D MARLB^PSGMUTL(47)
 | 
|---|
| 31 |  I ((MARLB/6)+PSGMAROC)>BL S:PSGMAROC PG=PG+1,(LT,RT)=1,PSGMAROC=0
 | 
|---|
| 32 |  I ((MARLB/6)+PSGMAROC)>(BL/2) S PSGMAROC=$S(PSGMAROC>(BL/2):PSGMAROC,1:(BL/2)) D LTRT(.RT,"^")
 | 
|---|
| 33 |  E  D LTRT(.LT,"")
 | 
|---|
| 34 |  D LAB
 | 
|---|
| 35 |  I $D(PSJPSTO) S PST=PSJPSTO K PSJPSTO
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | LAB ;***Print the 1st label for the order.
 | 
|---|
| 39 |  NEW X,J S J=0
 | 
|---|
| 40 |  ;naked reference below goes with full reference on right of =
 | 
|---|
| 41 |  F X=1:1:MARLB S J=J+1,^(J)=$G(^TMP($J,"1PRN",PG,LAB,J))_UP_MARLB(X) D
 | 
|---|
| 42 |  . I X=6,(MARLB>6) D
 | 
|---|
| 43 |  . . S J=0
 | 
|---|
| 44 |  . . I PSGMAROC>(BL/2) D LTRT(.RT,"^")
 | 
|---|
| 45 |  . . E  D LTRT(.LT,"")
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | LTRT(X,Y)         ;***Increment Left or Right label value.
 | 
|---|
| 49 |  S LAB=X,X=X+1,UP=Y,PSGMAROC=PSGMAROC+1
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | BLANK ; Print blank prn form
 | 
|---|
| 52 |  NEW INIT,NEED,LT,RT,BL,PG,LAB,UP
 | 
|---|
| 53 |  S BL=$S($P($G(^PS(59.7,1,26)),U):6,1:4),(PG,LT,RT)=1
 | 
|---|
| 54 |  I PSGMARB'=2 D PSGMARB^PSGMMAR4
 | 
|---|
| 55 |  Q
 | 
|---|