- PSJO2 ;BIRC/CML3,PR-INPATIENT ORDERS - PRINT ;17 SEP 97 / 1:41 PM
- ;;5.0; INPATIENT MEDICATIONS ;**58**;16 DEC 97
- ;
- ; Reference to ^PS(51.2 is supported by DBIA 2178.
- ; Reference to ^PS(55 is supported by DBIA 2191.
- ; Reference to ^PSI(58.1 is supported by DBIA 2284.
- ;
- F S PSJC=$O(^UTILITY("PSG",$J,PSJC)) Q:PSJC="" D TF F PSJST="C","O","OC","P","R","z" S PSJDRG="" F S PSJDRG=$O(^UTILITY("PSG",$J,PSJC,PSJST,PSJDRG)) Q:PSJDRG="" S NF=^(PSJDRG) D:$Y+4>IOSL NP G:PSJNP["^" DONE D P
- I PSJTD,$S('$D(PSGPRP):1,1:PSGPRP="P") D BOT
- ;
- DONE ;
- I $S('$D(PSGPRP):1,1:PSGPRP="P") K ^UTILITY("PSG",$J)
- S PSGON=PSJON K:'$D(PSGVBW) PSGODT K C,PSJTD,DO,DOB,PSJDRG,F,GIVE,HDT,LN2,NF,ND,PSJNP,O,ON,PG,PSGID,PSGOD,RF,RTE,SCH,SD,SLS,SM,SSN,PSJST,TF,PSJU,V,WD,WDP,WS,WT Q
- ;
- P ; data printed here
- S O=$P(PSJDRG,"^",2),DN=$P(PSJDRG,"^"),PSJON=PSJON+1 S:'PSJTD ^TMP("PSJON",$J,PSJON)=O_PSJC W !,$J(PSJON,4),?5
- I C["A" S ND=$S($D(^PS(55,PSGP,5,O,4)):^(4),1:""),V='$P(ND,"^",PSJU) ; $S(PSJSYSU:PSJSYSU,1:1))
- I W $S(ND="":" ",$P(ND,"^",12):"D",$P(ND,"^",18)&($P(ND,"^",19)!V):"H",$P(ND,"^",22)&($P(ND,"^",23)!V):"H",$P(ND,"^",15)&($P(ND,"^",16)!V):"R",1:" ") W:V "->"
- I C["N" W $S('$D(^PS(53.1,O,4)):" ",$P(^(4),"^",12):"D",1:" "),$S(PSJSYSU:"->",1:"")
- S ND=$G(@(PSJF_O_",0)")),SCH=$G(^(2)),Y=$P($G(^(6)),"^"),DO=$G(^(.1)) I Y]"" S Y=$$ENSET^PSGSICHK(Y)
- S RTE=$P(ND,"^",3),SM=$S('$P(ND,"^",5):0,$P(ND,"^",6):1,1:2),X=$S($P(ND,"^",9)]"":$P(ND,"^",9),1:"NF")_$E("*",$P(ND,"^",20)),PSGID=$P(SCH,"^",2),SD=$P(SCH,"^",4),SCH=$P(SCH,"^")
- I C'["N",$P(ND,"^",22) S GIVE="*** NOT TO BE GIVEN ***"
- E S RTE=$S('RTE:"N/F",'$D(^PS(51.2,RTE,0)):RTE,$P(^(0),"^",3)]"":$P(^(0),"^",3),$P(^(0),"^")]"":$P(^(0),"^"),1:RTE),GIVE="Give: "_$S($P(DO,"^",2)]"":$P(DO,"^",2)_" ",1:"")_" "_RTE_" "_$S(SCH]"":SCH,1:"SCHEDULE NOT FOUND")
- S WS=$S(DO&PSGPWD:$D(^PSI(58.1,"D",+DO,PSGPWD)),1:0)
- W ?9,$S(DN'="z":DN,1:"NOT FOUND"),?50,$S(PSJST'="z":PSJST,1:"?"),?53,$E($$ENDTC^PSGMI(PSGID),1,5),?60,$E($$ENDTC^PSGMI(SD),1,5),?67,X I NF!WS!SM W ?71 W:NF "NF " W:WS "WS " W:SM $E("HSM",SM,3)
- W !?11,GIVE I Y]"" W !?10 F X=1:1:$L(Y," ") S V=$P(Y," ",X) W:$L(V)+$X>77 !?10 W V_" "
- Q
- ;
- PIV ; print IV order
- ;
- TF ;
- Q:PSJC["N"&'PSJTF S PSJLN2=PSJSLS_$S(PSJC["A":" - - - A C T I V E - - -",PSJC["N":" N O N - V E R I F I E D",1:" - N O N - A C T I V E -")_PSJSLS W:$D(^UTILITY("PSG",$J,PSJC)) !,PSJLN2
- S PSJF="^PS("_$S(PSJC'["N":"55,"_PSGP_",5,",1:"53.1,") S:PSJC["N" TF=0 Q
- ;
- NP I PSJON,'PSJTD W $C(7) R !," `^' TO QUIT ",PSJNP:DTIME W:'$T $C(7) S:'$T PSJNP="^" W:PSJNP'["^" $C(13)," ",$C(13),# Q
- I PSJON,PSJTD D BOT
- ;
- S PSJPG=PSJPG+1,PSGOD=$$ENDTC^PSGMI(PSGPAD)
- W @IOF,! W:$D(PSGPR) ?22,"U N I T D O S E P R O F I L E" W ?64,HDT,! W:$D(PSGPR) PSJSLS,PSJSLS,$E(PSJSLS,1,24),! W ?1,$P(PSGP(0),"^"),?34," Ward: ",$S(PSGPWDN]"":PSGPWDN,1:"* NF *") W:$D(PSGPR) ?75-$L(PSJPG),"Pg: ",PG-$D(PSGVWA)
- W !?7,"PID: ",PSJPPID,?30,"WEIGHT(kg): ",PSJPWT,?48,"Sex: ",$P(PSJPSEX,"^",2),?61,"Admitted: ",$E(PSGOD,1,8),!?7,"DOB: ",DOB_" ("_AGE_")",?30,"Height(cm): ",PSJPHT
- S PSGID=$S(PSGPDD:PSGPDD,1:PSGPTD) I PSGID W ?$S(PSGPDD:59,1:53),$S(PSGPDD:"Discharged: ",1:"Last transferred: "),$E($$ENDTC^PSGMI(PSGID),1,8)
- W !?8,"Dx: ",$S(PSGPDX]"":PSGPDX,1:"* NF *"),?69-$L(RB),"Room-Bed: ",RB,!?1,"Reactions:" D ENRCT^PSGAPP I $D(^PS(55,PSGP,5.1)),$P(^(5.1),"^",7) W $C(7),!!?21,"** PATIENT'S ORDERS PLACED ON HOLD **"
- I '$D(PSGVWA),$S('$D(PSGPRP):1,1:PSGPRP'="E") W !!," No.",?19,"Drug",?50,"ST Start Stop Status/Info"
- W:PSJPG>1 !,PSJLN2 Q
- ;
- BOT ; print name, ssn, and dob on bottom of page
- F Q=$Y:1:IOSL-4 W !
- W !,?2,$P(PSGP(0),"^"),?40,SSN,?60,DOB Q
- PSJO2 ;BIRC/CML3,PR-INPATIENT ORDERS - PRINT ;17 SEP 97 / 1:41 PM
- +1 ;;5.0; INPATIENT MEDICATIONS ;**58**;16 DEC 97
- +2 ;
- +3 ; Reference to ^PS(51.2 is supported by DBIA 2178.
- +4 ; Reference to ^PS(55 is supported by DBIA 2191.
- +5 ; Reference to ^PSI(58.1 is supported by DBIA 2284.
- +6 ;
- +7 FOR
- SET PSJC=$ORDER(^UTILITY("PSG",$JOB,PSJC))
- IF PSJC=""
- QUIT
- DO TF
- FOR PSJST="C","O","OC","P","R","z"
- SET PSJDRG=""
- FOR
- SET PSJDRG=$ORDER(^UTILITY("PSG",$JOB,PSJC,PSJST,PSJDRG))
- IF PSJDRG=""
- QUIT
- SET NF=^(PSJDRG)
- IF $Y+4>IOSL
- DO NP
- IF PSJNP["^"
- GOTO DONE
- DO P
- +8 IF PSJTD
- IF $SELECT('$DATA(PSGPRP):1,1:PSGPRP="P")
- DO BOT
- +9 ;
- DONE ;
- +1 IF $SELECT('$DATA(PSGPRP):1,1:PSGPRP="P")
- KILL ^UTILITY("PSG",$JOB)
- +2 SET PSGON=PSJON
- IF '$DATA(PSGVBW)
- KILL PSGODT
- KILL C,PSJTD,DO,DOB,PSJDRG,F,GIVE,HDT,LN2,NF,ND,PSJNP,O,ON,PG,PSGID,PSGOD,RF,RTE,SCH,SD,SLS,SM,SSN,PSJST,TF,PSJU,V,WD,WDP,WS,WT
- QUIT
- +3 ;
- P ; data printed here
- +1 SET O=$PIECE(PSJDRG,"^",2)
- SET DN=$PIECE(PSJDRG,"^")
- SET PSJON=PSJON+1
- IF 'PSJTD
- SET ^TMP("PSJON",$JOB,PSJON)=O_PSJC
- WRITE !,$JUSTIFY(PSJON,4),?5
- +2 ; $S(PSJSYSU:PSJSYSU,1:1))
- IF C["A"
- SET ND=$SELECT($DATA(^PS(55,PSGP,5,O,4)):^(4),1:"")
- SET V='$PIECE(ND,"^",PSJU)
- +3 IF $TEST
- WRITE $SELECT(ND="":" ",$PIECE(ND,"^",12):"D",$PIECE(ND,"^",18)&($PIECE(ND,"^",19)!V):"H",$PIECE(ND,"^",22)&($PIECE(ND,"^",23)!V):"H",$PIECE(ND,"^",15)&($PIECE(ND,"^",16)!V):"R",1:" ")
- IF V
- WRITE "->"
- +4 IF C["N"
- WRITE $SELECT('$DATA(^PS(53.1,O,4)):" ",$PIECE(^(4),"^",12):"D",1:" "),$SELECT(PSJSYSU:"->",1:"")
- +5 SET ND=$GET(@(PSJF_O_",0)"))
- SET SCH=$GET(^(2))
- SET Y=$PIECE($GET(^(6)),"^")
- SET DO=$GET(^(.1))
- IF Y]""
- SET Y=$$ENSET^PSGSICHK(Y)
- +6 SET RTE=$PIECE(ND,"^",3)
- SET SM=$SELECT('$PIECE(ND,"^",5):0,$PIECE(ND,"^",6):1,1:2)
- SET X=$SELECT($PIECE(ND,"^",9)]"":$PIECE(ND,"^",9),1:"NF")_$EXTRACT("*",$PIECE(ND,"^",20))
- SET PSGID=$PIECE(SCH,"^",2)
- SET SD=$PIECE(SCH,"^",4)
- SET SCH=$PIECE(SCH,"^")
- +7 IF C'["N"
- IF $PIECE(ND,"^",22)
- SET GIVE="*** NOT TO BE GIVEN ***"
- +8 IF '$TEST
- SET RTE=$SELECT('RTE:"N/F",'$DATA(^PS(51.2,RTE,0)):RTE,$PIECE(^(0),"^",3)]"":$PIECE(^(0),"^",3),$PIECE(^(0),"^")]"":$PIECE(^(0),"^"),1:RTE)
- SET GIVE="Give: "_$SELECT($PIECE(DO,"^",2)]"":$PIECE(DO,"^",2)_" ",1:"")_" "_RTE_" "_$SELECT(SCH]"":SCH,1:"SCHEDULE NOT FOUND")
- +9 SET WS=$SELECT(DO&PSGPWD:$DATA(^PSI(58.1,"D",+DO,PSGPWD)),1:0)
- +10 WRITE ?9,$SELECT(DN'="z":DN,1:"NOT FOUND"),?50,$SELECT(PSJST'="z":PSJST,1:"?"),?53,$EXTRACT($$ENDTC^PSGMI(PSGID),1,5),?60,$EXTRACT($$ENDTC^PSGMI(SD),1,5),?67,X
- IF NF!WS!SM
- WRITE ?71
- IF NF
- WRITE "NF "
- IF WS
- WRITE "WS "
- IF SM
- WRITE $EXTRACT("HSM",SM,3)
- +11 WRITE !?11,GIVE
- IF Y]""
- WRITE !?10
- FOR X=1:1:$LENGTH(Y," ")
- SET V=$PIECE(Y," ",X)
- IF $LENGTH(V)+$X>77
- WRITE !?10
- WRITE V_" "
- +12 QUIT
- +13 ;
- PIV ; print IV order
- +1 ;
- TF ;
- +1 IF PSJC["N"&'PSJTF
- QUIT
- SET PSJLN2=PSJSLS_$SELECT(PSJC["A":" - - - A C T I V E - - -",PSJC["N":" N O N - V E R I F I E D",1:" - N O N - A C T I V E -")_PSJSLS
- IF $DATA(^UTILITY("PSG",$JOB,PSJC))
- WRITE !,PSJLN2
- +2 SET PSJF="^PS("_$SELECT(PSJC'["N":"55,"_PSGP_",5,",1:"53.1,")
- IF PSJC["N"
- SET TF=0
- QUIT
- +3 ;
- NP IF PSJON
- IF 'PSJTD
- WRITE $CHAR(7)
- READ !," `^' TO QUIT ",PSJNP:DTIME
- IF '$TEST
- WRITE $CHAR(7)
- IF '$TEST
- SET PSJNP="^"
- IF PSJNP'["^"
- WRITE $CHAR(13)," ",$CHAR(13),#
- QUIT
- +1 IF PSJON
- IF PSJTD
- DO BOT
- +2 ;
- +1 SET PSJPG=PSJPG+1
- SET PSGOD=$$ENDTC^PSGMI(PSGPAD)
- +2 WRITE @IOF,!
- IF $DATA(PSGPR)
- WRITE ?22,"U N I T D O S E P R O F I L E"
- WRITE ?64,HDT,!
- IF $DATA(PSGPR)
- WRITE PSJSLS,PSJSLS,$EXTRACT(PSJSLS,1,24),!
- WRITE ?1,$PIECE(PSGP(0),"^"),?34," Ward: ",$SELECT(PSGPWDN]"":PSGPWDN,1:"* NF *")
- IF $DATA(PSGPR)
- WRITE ?75-$LENGTH(PSJPG),"Pg: ",PG-$DATA(PSGVWA)
- +3 WRITE !?7,"PID: ",PSJPPID,?30,"WEIGHT(kg): ",PSJPWT,?48,"Sex: ",$PIECE(PSJPSEX,"^",2),?61,"Admitted: ",$EXTRACT(PSGOD,1,8),!?7,"DOB: ",DOB_" ("_AGE_")",?30,"Height(cm): ",PSJPHT
- +4 SET PSGID=$SELECT(PSGPDD:PSGPDD,1:PSGPTD)
- IF PSGID
- WRITE ?$SELECT(PSGPDD:59,1:53),$SELECT(PSGPDD:"Discharged: ",1:"Last transferred: "),$EXTRACT($$ENDTC^PSGMI(PSGID),1,8)
- +5 WRITE !?8,"Dx: ",$SELECT(PSGPDX]"":PSGPDX,1:"* NF *"),?69-$LENGTH(RB),"Room-Bed: ",RB,!?1,"Reactions:"
- DO ENRCT^PSGAPP
- IF $DATA(^PS(55,PSGP,5.1))
- IF $PIECE(^(5.1),"^",7)
- WRITE $CHAR(7),!!?21,"** PATIENT'S ORDERS PLACED ON HOLD **"
- +6 IF '$DATA(PSGVWA)
- IF $SELECT('$DATA(PSGPRP):1,1:PSGPRP'="E")
- WRITE !!," No.",?19,"Drug",?50,"ST Start Stop Status/Info"
- +7 IF PSJPG>1
- WRITE !,PSJLN2
- QUIT
- +8 ;
- BOT ; print name, ssn, and dob on bottom of page
- +1 FOR Q=$Y:1:IOSL-4
- WRITE !
- +2 WRITE !,?2,$PIECE(PSGP(0),"^"),?40,SSN,?60,DOB
- QUIT