1 | PSGMMAR2 ;BIR/CML3-MD MARS - PRINT C ORDERS(UD) ;09 Feb 99 / 12:50 PM
|
---|
2 | ;;5.0; INPATIENT MEDICATIONS ;**8,20,111,131,145**;16 DEC 97;Build 17
|
---|
3 | ; Reference to ^PS(55 is supported by DBIA# 2191
|
---|
4 | S1 ;
|
---|
5 | I PSGMARB'=1 S:PSGRBPPN="P" X=PN,Y=RB S:PSGRBPPN="R" X=RB,Y=PN D
|
---|
6 | . I PSGRBPPN="R" S NO=$S(PSGSS="P"!(PSGSS="C")!(PSGSS="L"):$O(^TMP($J,PN,PWDN,0)),1:$O(^TMP($J,TM,WDN,X,Y,0)))'["C"
|
---|
7 | . I PSGRBPPN="P" S NO=$S(PSGSS="P"!(PSGSS="C")!(PSGSS="L"):$O(^TMP($J,PN,PWDN,0)),1:$O(^XTMP(PSGREP,TM,X,WDN,Y,0)))'["C" ;DAM 5-01-07 Rewrite to utilize XTMP global when printing by WARD/PATIENT or WARD GROUP/PATIENT
|
---|
8 | ;
|
---|
9 | I (PSGSS="P")!(PSGSS="C")!(PSGSS="L") S NO=$S(PSGSS="P"!(PSGSS="C")!(PSGSS="L"):$O(^TMP($J,PN,PWDN,0)),1:$O(^TMP($J,TM,WDN,X,Y,0)))'["C"
|
---|
10 | ;
|
---|
11 | I $S(PSGMARB'=2:1,"34"[PSGMARS:NO,1:0) D:(PSGMARS'=4) HEADER,BOT D:PSGMARS'=1 BLANK^PSGMMAR3 Q:PSGMARB=1
|
---|
12 | ;
|
---|
13 | Q:NO D NOW^%DTC S PSGDT=%,(DAO,PST)="" I PSGSS'="P",PSGSS'="C",PSGSS'="L" D HEADER
|
---|
14 | ;
|
---|
15 | S PSGMPG=0,PSGMPGN="PAGE: "
|
---|
16 | D @($S(PSGSS="P"!(PSGSS="C")!(PSGSS="L"):"P",1:"W"))
|
---|
17 | D BOT
|
---|
18 | Q
|
---|
19 | P ; Print on Patient order
|
---|
20 | ;
|
---|
21 | D HEADER
|
---|
22 | F S PST=$O(^TMP($J,PN,PWDN,PST)) Q:PST'["C" D
|
---|
23 | . S DAO=""
|
---|
24 | . F S DAO=$O(^TMP($J,PN,PWDN,PST,DAO)) Q:DAO="" S PSGMARTS=^TMP($J,PN,PWDN,PST,DAO) D PRT
|
---|
25 | . Q
|
---|
26 | ;
|
---|
27 | S:$O(^TMP($J,PN,PWDN,"N"))="" PSGMPGN="LAST PAGE: "
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | W ; Print Ward/Ward group
|
---|
31 | ;DAM 5-01-07 Utilize the XTMP global for printing by WARD/PATIENT or WARD GROUP/PATIENT
|
---|
32 | I PSGRBPPN="P" D
|
---|
33 | . F S PST=$O(^XTMP(PSGREP,TM,PN,WDN,RB,PST)) Q:PST'["C" F Q=0:0 S DAO=$O(^XTMP(PSGREP,TM,PN,WDN,RB,PST,DAO)) Q:DAO="" S PSGMARTS=^(DAO) D PRT
|
---|
34 | . ;
|
---|
35 | . S:$O(^XTMP(PSGREP,TM,PN,WDN,RB,"N"))="" PSGMPGN="LAST PAGE: "
|
---|
36 | . ;
|
---|
37 | I PSGRBPPN="R" D
|
---|
38 | . F S PST=$O(^TMP($J,TM,WDN,RB,PN,PST)) Q:PST'["C" F Q=0:0 S DAO=$O(^TMP($J,TM,WDN,RB,PN,PST,DAO)) Q:DAO="" S PSGMARTS=^(DAO) D PRT
|
---|
39 | . S:$O(^TMP($J,TM,WDN,RB,PN,"N"))="" PSGMPGN="LAST PAGE: "
|
---|
40 | Q
|
---|
41 | HEADER ; pat info
|
---|
42 | S:'$G(PSGXDT) PSGXDT=PSGDT ;Reason was that PSGDT kept reset somewhere
|
---|
43 | S PSGMAROC=0,(MSG1,MSG2)="" W:$G(PSGPG)&($Y) @IOF S PSGPG=1 W !?1,"CONTINUOUS SHEET",?61,PSGMARDF," DAY MAR",?100,PSGMARSP," through ",PSGMARFP
|
---|
44 | W !?5,$P($$SITE(80),U,2),?102,"Printed on "_$$ENDTC2^PSGMI(PSGXDT)
|
---|
45 | W !?5,"Name: "_PPN,?62,"Weight (kg): "_WT,?103,"Loc: "_$S(PWDN'["C!":PWDN,1:$P($G(^SC($P(PWDN,"!",2),0)),"^"))
|
---|
46 | W !?6,"PID: "_PSSN,?25,"DOB: "_BD_" ("_PAGE_")",?62,"Height (cm): "_HT,?99,"Room-Bed: "_$S(PWDN'["C!":PRB,1:"")
|
---|
47 | W !?6,"Sex: "_PSEX,?25," Dx: "_DX,?$S(TD:94,1:99),$S(TD:"Last Transfer: "_TD,1:"Admitted: "_$S(PWDN'["C!":AD,1:""))
|
---|
48 | I '$D(PSGALG) W !,"Allergies: See attached list of Allergies/Adverse Reactions"
|
---|
49 | NEW PSGX S PSGX=0 D ATS^PSGMAR3(.PSGX) D:PSGX HEADER Q:PSGX
|
---|
50 | W !,?49,"Admin"
|
---|
51 | W:$G(PSJDIET)]"" ?57,"Diet: ",PSJDIET
|
---|
52 | W:PSGMARDF=14 ?55,LN14 W !?1,"Order",?9,"Start",?21,"Stop",?49,"Times" W ?55,LN3," notes",!,LN1
|
---|
53 | Q
|
---|
54 | PRT ; order info
|
---|
55 | S ON=$P(DAO,U,2) D ONHOLD
|
---|
56 | I +PSGMSORT,$S(ON["V":1,ON["P":$P($G(^PS(53.1,+ON,0)),U,4)="F",1:0) D PRT^PSGMMIVC Q
|
---|
57 | D:PSGMAROC>5 ENB,HEADER I PST["CV"!(PST["CZV") D PRT^PSGMMIVC Q
|
---|
58 | S PSGMARGD=$P(PSGMARTS,"^",2),PSGMARTS=$P(PSGMARTS,"^"),PSGORD=$P(DAO,U,2) S:PSGORD["P" PSJPSTO=PST,PST=$S(+PSGMSORT:"CZ",1:PST) D ^PSGLOI
|
---|
59 | D TS^PSGMAR3(PSGMARTS)
|
---|
60 | D MARLB^PSGMUTL(47)
|
---|
61 | I (PSGMAROC>4&(MARLB>6))!(TS/6>6)!((TS/6+PSGMAROC)>6) D BOT,HEADER
|
---|
62 | S PSGMAROC=PSGMAROC+1
|
---|
63 | NEW PRTLN F PRTLN=1:1:MARLB W !,MARLB(PRTLN),?48,"|",$G(TS(PRTLN)) D CELL(PRTLN,'(PRTLN#6)) D PRT2
|
---|
64 | I $D(PSJPSTO) S PST=PSJPSTO K PSJPSTO
|
---|
65 | Q
|
---|
66 | PRT2 ;
|
---|
67 | I PSGMAROC>5,(TS/6>7) D
|
---|
68 | . S MSG1="*** CONTINUE ON NEXT PAGE ***"
|
---|
69 | . D BOT,HEADER
|
---|
70 | I PRTLN#6=0 W:PSGMAROC<6 !?7,LN2 S:PRTLN'=MARLB PSGMAROC=PSGMAROC+1
|
---|
71 | Q
|
---|
72 | CHKLAB ; Check to see if next label is needed.
|
---|
73 | I '((L+1)#6) W ?48,"| ",$G(TS(L)) D CELL(L,0) W !?1,"See next label for continuation",?48,"| ",$G(TS(L+1)) D CELL(L+1,1) W:PSGMAROC<6 !?7,LN2,!?1 S L=L+2,PSGMAROC=PSGMAROC+1 D Q
|
---|
74 | . I PSGMAROC>5,(TS/6>7) S MSG1="*** CONTINUE ON NEXT PAGE ***" D BOT,HEADER
|
---|
75 | E W ?48,"| ",$G(TS(L)) D CELL(L,0) W !?1 S L=L+1
|
---|
76 | Q
|
---|
77 | INIT ; Print the initials on the label.
|
---|
78 | W !?1,$E("WS",1,PSGLWS*2),?4,$S(PSGLSM:$E("HSM",PSGLSM,3),1:""),?8,$E("NF",1,PSGLNF*2),?30,"RPH: ",PSGLRPH,?39," RN: ",PSGLRN,?48,"| ",?50,$G(TS(L)) D CELL(L,1)
|
---|
79 | Q
|
---|
80 | CELL(X,X1) ; Print the **** on the not to be given cells.
|
---|
81 | N QTS,CELL S CELL=$E($S(X1:" ",1:"_________"),1,PSGMARDF=7*5+4)
|
---|
82 | I PST["CZ",(X=6) NEW PSGLFFD,PSGMARGD S P(9)="",PSGLFFD="9999999",PSGMARGD="" W ?55 D ASTERS Q
|
---|
83 | I TS=1,'PSGMARTS,(X=6) W ?55 S P(9)=1 D ASTERS K P(9) Q
|
---|
84 | I $G(TS(X))="" W ?55,$S(X1:LN7,1:LN4) Q
|
---|
85 | F Q=0:0 S Q=$O(PSGD(Q)) Q:'Q S QTS=Q_"."_TS(X) W ?55,"|"_$S(QTS<PSGLSSD:EXPIRE,QTS'<PSGLFFD:EXPIRE,PSGMARGD="":ASTERS,$G(ONHOLD):$E("Hold ",1,$L(CELL)),PSGMARGD[$P(PSGD(Q),"^"):CELL,1:ASTERS)
|
---|
86 | W "|"
|
---|
87 | Q
|
---|
88 | ASTERS ; Print the **** on the first label.
|
---|
89 | I ONHOLD N HSPACE S HSPACE=SPACES,SPACES=$E("Hold ",1,$L(HSPACE))
|
---|
90 | S PSGLFFD=$P(PSGLFFD,".") F Q=0:0 S Q=$O(PSGD(Q)) Q:'Q W "|"_$S(Q<$P(PSGLSSD,"."):ASTERS,Q=PSGLFFD:EXPIRE,Q>PSGLFFD:ASTERS,(PSGMARGD=""&($G(P(9))="")):SPACES,PSGMARGD[$P(PSGD(Q),"^"):SPACES,1:ASTERS)
|
---|
91 | W "|"
|
---|
92 | I ONHOLD S SPACES=HSPACE
|
---|
93 | Q
|
---|
94 | BOT ; bottom of MAR
|
---|
95 | I MSG1]"" F QQ=1:1:6 W ! W:QQ=1 ?6,"|",?19,"|" W:34[QQ ?12,$S(QQ=3:MSG1,1:MSG2) W ?55,$S(QQ<6:LN4,1:LN7)
|
---|
96 | I PSGMAROC<6 S PSGMAROC=6-PSGMAROC F Q=1:1:PSGMAROC F QQ=1:1:6 W ! W:QQ=1 ?6,"|",?19,"|" W:34[QQ ?12,$S(QQ=3:MSG1,1:MSG2) W ?55,$S(QQ<6:LN4,1:LN7) I QQ=6,Q<PSGMAROC W !?7,LN2
|
---|
97 | ENB ;
|
---|
98 | I $D(PSGMPG) S PSGMPG=PSGMPG+1 S PSGMPGN=$S(PSGMPGN'["LAST":"PAGE: ",1:PSGMPGN)_PSGMPG
|
---|
99 | W !,LN1
|
---|
100 | W !,"|",?11,"SIGNATURE/TITLE",?38,"| INIT | INJECTION SITES |",?87,"MED/DOSE OMITTED",?107,"| REASON | INIT |"
|
---|
101 | F Q=1:1:10 W !,"|"_$E(LN1,1,37)_"|------|"_BLN(Q),?82,"|"_$E(LN1,1,24)_"|"_$E(LN1,1,16)_"|------|"
|
---|
102 | W !,LN1,!?3,PPN,?45,PSSN,?58,"Room-Bed: "_$S(PWDN'["C!":PRB,1:""),?100,$S($D(PSGMPG):PSGMPGN,1:""),?116,"VA FORM 10-2970",*13
|
---|
103 | Q
|
---|
104 | SITE(LEN) ;* Get the Institution name
|
---|
105 | ;* Input : LEN = Report width (80 or 132 column)
|
---|
106 | ;* Output: space needed to center text ^ VAMC name
|
---|
107 | NEW X
|
---|
108 | S X=$$NAME^VASITE
|
---|
109 | I X="" S X=$$SITE^VASITE S:X]"" X="VAMC: "_$P(X,U,2)_" ("_$P(X,U,3)_")"
|
---|
110 | I X="" Q ""
|
---|
111 | Q (LEN-$L(X))/2_U_X
|
---|
112 | ONHOLD ;Check order to see if it's ON hold, set Flag True if it is
|
---|
113 | S ONHOLD=0
|
---|
114 | N PSGON
|
---|
115 | S PSGON=+ON
|
---|
116 | ;If unit dose order, check Hold Status field = Active Hold
|
---|
117 | I (ON["A")!(ON["O")!(ON["U") I $P($G(^PS(55,$P(PN,"^",2),5,PSGON,0)),"^",9)="H" S ONHOLD=1 Q
|
---|
118 | ;If IV Order, check Status field = Hold
|
---|
119 | I ON["V" I $P($G(^PS(55,$P(PN,"^",2),"IV",PSGON,0)),"^",17)="H" S ONHOLD=1 Q
|
---|
120 | Q
|
---|