- PSGMAR1 ;BIR/CML3-SORT ORDERS FOR 24 HOUR MAR ; 7/21/08 9:24am
- ;;5.0; INPATIENT MEDICATIONS ;**8,111,145,196**;16 DEC 97;Build 13
- ;
- ;
- SP ; start print
- U IO S (LN1,LN2,PSGOP,PN,RB,WDN,TM)="",PSGLSTOP=1,$P(LN1,"-",133)="",$P(LN2,"-",126)=""
- K BLN S BLN(1)=$E(LN1,1,20),BLN(2)=" Indicate RIGHT (R)",BLN(3)=" or LEFT (L)",BLN(4)=" 1. DELTOID",BLN(5)=" 2. ABDOMEN",BLN(6)=" 3. ILIAC CREST",BLN(7)=" 4. GLUTEAL",BLN(8)=" 5. THIGH",BLN(9)="PRN: E=Effective",BLN(10)=" N=Not Effective"
- I PSGSS="P"!(PSGSS="C")!(PSGSS="L") F S PN=$O(^TMP($J,PN)) Q:PN="" D P
- Q:(PSGSS="P")!(PSGSS="C")!(PSGSS="L")
- F S (PTM,TM)=$O(^TMP($J,TM)) Q:TM="" F S (PWDN,WDN)=$O(^TMP($J,TM,WDN)) Q:WDN="" D
- . I PSGRBPPN="R" F S (PRB,RB)=$O(^TMP($J,TM,WDN,RB)) Q:RB="" F S PN=$O(^TMP($J,TM,WDN,RB,PN)) Q:PN="" S PPN=^(PN) D PI,^PSGMAR2
- ;
- ;DAM 5-01-07 - rewrite above lines to utilize the ^XTMP global set up in PSGMAR0 for printing by WARD/PATIENT or WARD GROUP
- I PSGRBPPN="P" F S (PTM,TM)=$O(^XTMP(PSGREP,TM)) Q:TM="" F S PN=$O(^XTMP(PSGREP,TM,PN)) Q:PN="" D
- . F S (PWDN,WDN)=$O(^XTMP(PSGREP,TM,PN,WDN)) Q:WDN="" D
- . . F S (PRB,RB)=$O(^XTMP(PSGREP,TM,PN,WDN,RB)) Q:RB="" S PPN=^(RB) D PI,^PSGMAR2
- Q
- ;
- P ;
- ;
- N TMPPWDN
- I PSGMARB=1 S PPN=^TMP($J,PN),PWDN=$S(PSGSS="C":$G(PSGAPWDN),1:$P(PPN,U,19)),PRB=$S(PSGSS="C":"",1:$P(PPN,U,20)),PTM="zz" D PI,^PSGMAR2 Q
- S TMPPWDN=$P(^TMP($J,PN),U,19)
- S:TMPPWDN="" TMPPWDN="zz"
- S PWDN=""
- F S PWDN=$O(^TMP($J,PN,PWDN)) Q:PWDN="" S TMPPWDN=PWDN S PPN=^TMP($J,PN),PRB=$P(PPN,U,20),PTM="zz" D PI,^PSGMAR2 S PWDN=TMPPWDN
- Q
- ;
- PI ; Parses patient information. Does not contain medication info.
- K PSGMPG,PSGMPGN
- S:PTM="zz" PTM="NOT FOUND" S:PWDN="zz" PWDN="NOT FOUND" S:PRB="zz" PRB="NOT FOUND"
- S (PSGOP,PSGP)=+$P(PN,U,2),PSGP(0)=$P(PN,U),BD=$P(PPN,U,2),PSSN=$P(PPN,U,3),DX=$P(PPN,U,4),WT=$P(PPN,U,5)_" "_$P(PPN,U,6)
- ;GMZ:PSJ*5*196;Set diet info for each patient.
- S HT=$P(PPN,U,7)_" "_$P(PPN,U,8),AD=$P(PPN,U,9),TD=$P(PPN,U,10),PSEX=$P(PPN,U,11),PSGLWD=$P(PPN,U,12),PSJDIET=$P($G(PPN),U,21)
- S PSGPLS=$P(PPN,U,13),PSGPLF=$P(PPN,U,14),PSGMARSD=$P(PPN,U,15),PSGMARFD=$P(PPN,U,16),PSGMARSP=$P(PPN,U,17),PSGMARFP=$P(PPN,U,18)
- S PPN=$P(PPN,U),PAGE=$P(BD,";",2),BD=$P(BD,";"),DFN=PSGP
- D ATS^PSJMUTL(115,117,1)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSGMAR1 2292 printed Feb 18, 2025@23:27:52 Page 2
- PSGMAR1 ;BIR/CML3-SORT ORDERS FOR 24 HOUR MAR ; 7/21/08 9:24am
- +1 ;;5.0; INPATIENT MEDICATIONS ;**8,111,145,196**;16 DEC 97;Build 13
- +2 ;
- +3 ;
- SP ; start print
- +1 USE IO
- SET (LN1,LN2,PSGOP,PN,RB,WDN,TM)=""
- SET PSGLSTOP=1
- SET $PIECE(LN1,"-",133)=""
- SET $PIECE(LN2,"-",126)=""
- +2 KILL BLN
- SET BLN(1)=$EXTRACT(LN1,1,20)
- SET BLN(2)=" Indicate RIGHT (R)"
- SET BLN(3)=" or LEFT (L)"
- SET BLN(4)=" 1. DELTOID"
- SET BLN(5)=" 2. ABDOMEN"
- SET BLN(6)=" 3. ILIAC CREST"
- SET BLN(7)=" 4. GLUTEAL"
- SET BLN(8)=" 5. THIGH"
- SET BLN(9)="PRN: E=Effective"
- SET BLN(10)=" N=Not Effective"
- +3 IF PSGSS="P"!(PSGSS="C")!(PSGSS="L")
- FOR
- SET PN=$ORDER(^TMP($JOB,PN))
- if PN=""
- QUIT
- DO P
- +4 if (PSGSS="P")!(PSGSS="C")!(PSGSS="L")
- QUIT
- +5 FOR
- SET (PTM,TM)=$ORDER(^TMP($JOB,TM))
- if TM=""
- QUIT
- FOR
- SET (PWDN,WDN)=$ORDER(^TMP($JOB,TM,WDN))
- if WDN=""
- QUIT
- Begin DoDot:1
- +6 IF PSGRBPPN="R"
- FOR
- SET (PRB,RB)=$ORDER(^TMP($JOB,TM,WDN,RB))
- if RB=""
- QUIT
- FOR
- SET PN=$ORDER(^TMP($JOB,TM,WDN,RB,PN))
- if PN=""
- QUIT
- SET PPN=^(PN)
- DO PI
- DO ^PSGMAR2
- End DoDot:1
- +7 ;
- +8 ;DAM 5-01-07 - rewrite above lines to utilize the ^XTMP global set up in PSGMAR0 for printing by WARD/PATIENT or WARD GROUP
- +9 IF PSGRBPPN="P"
- FOR
- SET (PTM,TM)=$ORDER(^XTMP(PSGREP,TM))
- if TM=""
- QUIT
- FOR
- SET PN=$ORDER(^XTMP(PSGREP,TM,PN))
- if PN=""
- QUIT
- Begin DoDot:1
- +10 FOR
- SET (PWDN,WDN)=$ORDER(^XTMP(PSGREP,TM,PN,WDN))
- if WDN=""
- QUIT
- Begin DoDot:2
- +11 FOR
- SET (PRB,RB)=$ORDER(^XTMP(PSGREP,TM,PN,WDN,RB))
- if RB=""
- QUIT
- SET PPN=^(RB)
- DO PI
- DO ^PSGMAR2
- End DoDot:2
- End DoDot:1
- +12 QUIT
- +13 ;
- P ;
- +1 ;
- +2 NEW TMPPWDN
- +3 IF PSGMARB=1
- SET PPN=^TMP($JOB,PN)
- SET PWDN=$SELECT(PSGSS="C":$GET(PSGAPWDN),1:$PIECE(PPN,U,19))
- SET PRB=$SELECT(PSGSS="C":"",1:$PIECE(PPN,U,20))
- SET PTM="zz"
- DO PI
- DO ^PSGMAR2
- QUIT
- +4 SET TMPPWDN=$PIECE(^TMP($JOB,PN),U,19)
- +5 if TMPPWDN=""
- SET TMPPWDN="zz"
- +6 SET PWDN=""
- +7 FOR
- SET PWDN=$ORDER(^TMP($JOB,PN,PWDN))
- if PWDN=""
- QUIT
- SET TMPPWDN=PWDN
- SET PPN=^TMP($JOB,PN)
- SET PRB=$PIECE(PPN,U,20)
- SET PTM="zz"
- DO PI
- DO ^PSGMAR2
- SET PWDN=TMPPWDN
- +8 QUIT
- +9 ;
- PI ; Parses patient information. Does not contain medication info.
- +1 KILL PSGMPG,PSGMPGN
- +2 if PTM="zz"
- SET PTM="NOT FOUND"
- if PWDN="zz"
- SET PWDN="NOT FOUND"
- if PRB="zz"
- SET PRB="NOT FOUND"
- +3 SET (PSGOP,PSGP)=+$PIECE(PN,U,2)
- SET PSGP(0)=$PIECE(PN,U)
- SET BD=$PIECE(PPN,U,2)
- SET PSSN=$PIECE(PPN,U,3)
- SET DX=$PIECE(PPN,U,4)
- SET WT=$PIECE(PPN,U,5)_" "_$PIECE(PPN,U,6)
- +4 ;GMZ:PSJ*5*196;Set diet info for each patient.
- +5 SET HT=$PIECE(PPN,U,7)_" "_$PIECE(PPN,U,8)
- SET AD=$PIECE(PPN,U,9)
- SET TD=$PIECE(PPN,U,10)
- SET PSEX=$PIECE(PPN,U,11)
- SET PSGLWD=$PIECE(PPN,U,12)
- SET PSJDIET=$PIECE($GET(PPN),U,21)
- +6 SET PSGPLS=$PIECE(PPN,U,13)
- SET PSGPLF=$PIECE(PPN,U,14)
- SET PSGMARSD=$PIECE(PPN,U,15)
- SET PSGMARFD=$PIECE(PPN,U,16)
- SET PSGMARSP=$PIECE(PPN,U,17)
- SET PSGMARFP=$PIECE(PPN,U,18)
- +7 SET PPN=$PIECE(PPN,U)
- SET PAGE=$PIECE(BD,";",2)
- SET BD=$PIECE(BD,";")
- SET DFN=PSGP
- +8 DO ATS^PSJMUTL(115,117,1)
- +9 QUIT