ALPBFRM2 ;OIFO-DALLAS MW,SED,KC-SCREEN DISPLAY FORMATTING UTIL ;03/06/16 3:06pm
;;3.0;BAR CODE MED ADMIN;**8,87**;Mar 2004;Build 22
;
;*87 - add Remove Times string to report
;
F80(DATA,MLDATE,RESULTS) ; format basic output for screen (80-column) display...
; DATA = array passed by reference containing the data record to be formatted
; MLDATE = a date from which med log data is retrieved
; returns RESULTS array with formatted output (note: total lines returned in RESULTS(0))
N ALPBCMNT,ALPBMDT,ALPBTEXT,ALPBX,LINE
S RESULTS(0)=0
S RESULTS(1)=" Order Number: "_$S($P($G(DATA(0)),"^")'="":$P(DATA(0),"^"),1:"??")
S RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),50)_"Start: "
S RESULTS(1)=RESULTS(1)_$S($P($G(DATA(1)),"^")'="":$$FMTE^XLFDT($P(DATA(1),"^")),1:"<not on file>")
S RESULTS(2)=" Type: "_$$OTYP^ALPBUTL($P(DATA(3),"^"))
S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),51)_"Stop: "
S RESULTS(2)=RESULTS(2)_$S($P($G(DATA(1)),"^",2)'="":$$FMTE^XLFDT($P(DATA(1),"^",2)),1:"<not on file>")
S RESULTS(3)=" Status: "_$P($P(DATA(0),"^",3),"~",2)
S LINE=3
; drug(s)...
I +$O(DATA(7,0)) D
.S LINE=LINE+1
.S RESULTS(LINE)=" Drug: "
.S ALPBX=0
.F S ALPBX=$O(DATA(7,ALPBX)) Q:'ALPBX D
..S RESULTS(LINE)=$G(RESULTS(LINE))_$P(DATA(7,ALPBX,0),"^",2)
..I +$O(DATA(7,ALPBX)) D
...S LINE=LINE+1
...S RESULTS(LINE)=" "
...S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
.K ALPBX
;
; any additives...
I +$O(DATA(8,0)) D
.S LINE=LINE+1
.S RESULTS(LINE)="Additive Info: "
.S ALPBX=0
.F S ALPBX=$O(DATA(8,ALPBX)) Q:'ALPBX D
..S RESULTS(LINE)=RESULTS(LINE)_$P(DATA(8,ALPBX,0),"^",2)
..; if UNITS isn't already contained in ADDITIVE NAME, add it...
..I $P(DATA(8,ALPBX,0),"^",3)'=""&($P(DATA(8,ALPBX,0),"^",2)'[$P(DATA(8,ALPBX,0),"^",3)) S RESULTS(LINE)=RESULTS(LINE)_" "_$P(DATA(8,ALPBX,0),"^",3)
..I +$O(DATA(8,ALPBX)) D
...S LINE=LINE+1
...S RESULTS(LINE)=" "
...S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
.K ALPBX
;
; any solutions...
I +$O(DATA(9,0)) D
.S LINE=LINE+1
.S RESULTS(LINE)="Solution Info: "
.S ALPBX=0
.F S ALPBX=$O(DATA(9,ALPBX)) Q:'ALPBX D
..S RESULTS(LINE)=RESULTS(LINE)_$P(DATA(9,ALPBX,0),"^",2)
..; if UNITS isn't already contained in SOLUTION NAME, add it...
..I $P(DATA(9,ALPBX,0),"^",3)'=""&($P(DATA(9,ALPBX,0),"^",2)'[$P(DATA(9,ALPBX,0),"^",3)) S RESULTS(LINE)=RESULTS(LINE)_" "_$P(DATA(9,ALPBX,0),"^",3)
..I +$O(DATA(9,ALPBX)) D
...S LINE=LINE+1
...S RESULTS(LINE)=" "
...S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
.K ALPBX
;
; give ($P(DATA(4),"^",1)=DOSAGE $P(DATA(4),"^",2)=ROUTE $P(DATA(4),"^",3)=SCHEDULE)...
S LINE=LINE+1
S RESULTS(LINE)=" Give: "_$P($G(DATA(4)),"^")_" "_$P($G(DATA(4)),"^",2)_" "_$P($G(DATA(4)),"^",3)
; provider, pharmacist or entry person, and verifier...
S LINE=LINE+1
S RESULTS(LINE)=" Provider: "_$P($G(DATA(2)),"^")
S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),43)_"RPh/Entry by: "_$P($G(DATA(2)),"^",2)
I $P($G(DATA(2)),"^",3)'="" D
.S LINE=LINE+1
.S RESULTS(LINE)=" Verified by: "_$P(DATA(2),"^",3)
; administration times...
S LINE=LINE+1
S RESULTS(LINE)=" Admin. Times: "_$P($G(DATA(4)),"^",4)
I $P($G(DATA(4.5)),U,1)]"" D ;include new node *87
.S LINE=LINE+1
.S RESULTS(LINE)="Removal Times: "_$P($G(DATA(4.5)),"^",1)
; provider comments, special instructions or other print info...
I +$O(DATA(5,0)) D
.M ALPBCMNT=DATA(5)
.D FTEXT^ALPBFRMU(78,.ALPBCMNT,.ALPBTEXT)
.K ALPBCMNT
.S ALPBX=0
.F S ALPBX=$O(ALPBTEXT(ALPBX)) Q:'ALPBX D
..S LINE=LINE+1
..S RESULTS(LINE)=ALPBTEXT(ALPBX,0)
.K ALPBTEXT,ALPBX
; med log data...
I +$O(DATA(10,0)) D
.S LINE=LINE+1
.S RESULTS(LINE)="BCMA Medication Log History since "_$$FMTE^XLFDT(MLDATE)
.S LINE=LINE+1
.S RESULTS(LINE)=" Log Date"
.S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),16)_"Message"
.S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),31)_"Log Entry Person"
.I $O(DATA(10,"B",MLDATE))="" D
..S LINE=LINE+1
..S RESULTS(LINE)="No entries to report."
.;
.;begin *87 mods *87
.;bld admin and remove sorted array by time
.N LN,DAT
.S ALPBMDT=MLDATE
.F S ALPBMDT=$O(DATA(10,"B",ALPBMDT)) Q:'ALPBMDT D
..S ALPBX=0
..F S ALPBX=$O(DATA(10,"B",ALPBMDT,ALPBX)) Q:'ALPBX D
...S DAT=DATA(10,ALPBX,0)
...S LN(ALPBMDT)=$P(DAT,U,3)_U_$P(DAT,U,2)
...S:$P(DAT,U,5) LN($P(DAT,U,5))=$P(DAT,U,7)_U_$P(DAT,U,6)
..K ALPBX
.;
.;bld log detail lines from sorted array and add to Results print arr
.F ALPBMDT=0:0 S ALPBMDT=$O(LN(ALPBMDT)) Q:'ALPBMDT D
..S LINE=LINE+1
..S RESULTS(LINE)=" "_$$FDATE^ALPBUTL(ALPBMDT)
..S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),16)_$P(LN(ALPBMDT),U,1)
..S RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),31)_$S($P(LN(ALPBMDT),U,2)'="":$P(LN(ALPBMDT),U,2),1:"<not on file>")
.K ALPBMDT
.;end mods *87
;
S LINE=LINE+1
S RESULTS(LINE)=$$REPEAT^XLFSTR("-",80)
S RESULTS(0)=LINE
Q
;
HDR(DATA,TYPE,PG,RESULTS) ; screen display header...
; DATA = array passed by reference containing the data record to be formatted
; TYPE = either 'A' for ALL orders or 'C' for CURRENT orders. if null, not used in construction
; of first line of returned array
; PG = page number
; RESULTS = an array passed by reference into which the formatted output will be saved
; returns RESULTS array with formatted output (note: total lines returned in RESULTS(0))
N ALPBX,LINE
I $G(TYPE)="" S TYPE="X"
I $G(PG)="" S PG=0
S RESULTS(0)=0
S RESULTS(1)=$S(TYPE="A":"ALL ",TYPE="C":"CURRENT ",1:"")_"ORDERS"
S RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),70)_"Page: "_$J(PG,3)
S RESULTS(2)=$P($G(DATA(0)),"^")
S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),32)_"SSN: "_$P($G(DATA(0)),"^",2)
S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),48)_"Ward: "_$P($G(DATA(0)),"^",5)
S RESULTS(3)="This record last updated: "_$S($P(DATA(0),"^",8)'="":$$FMTE^XLFDT($P(DATA(0),"^",8)),1:"<date not on file>")
S RESULTS(3)=$$PAD^ALPBUTL(RESULTS(3),48)_"Room: "_$P(DATA(0),"^",6)_" Bed: "_$P(DATA(0),"^",7)
S LINE=3
I +$O(DATA(1,0)) D
.S LINE=LINE+1
.S RESULTS(LINE)="Allergies: "
.S ALPBX=0
.F S ALPBX=$O(DATA(1,ALPBX)) Q:'ALPBX D
..S RESULTS(LINE)=RESULTS(LINE)_$P(DATA(1,ALPBX,0),"^",2)
..I +$O(DATA(1,ALPBX)) S RESULTS(LINE)=RESULTS(LINE)_"; "
S LINE=LINE+1
S RESULTS(LINE)=$$REPEAT^XLFSTR("-",80)
S RESULTS(0)=LINE
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HALPBFRM2 6519 printed Dec 13, 2024@01:39:18 Page 2
ALPBFRM2 ;OIFO-DALLAS MW,SED,KC-SCREEN DISPLAY FORMATTING UTIL ;03/06/16 3:06pm
+1 ;;3.0;BAR CODE MED ADMIN;**8,87**;Mar 2004;Build 22
+2 ;
+3 ;*87 - add Remove Times string to report
+4 ;
F80(DATA,MLDATE,RESULTS) ; format basic output for screen (80-column) display...
+1 ; DATA = array passed by reference containing the data record to be formatted
+2 ; MLDATE = a date from which med log data is retrieved
+3 ; returns RESULTS array with formatted output (note: total lines returned in RESULTS(0))
+4 NEW ALPBCMNT,ALPBMDT,ALPBTEXT,ALPBX,LINE
+5 SET RESULTS(0)=0
+6 SET RESULTS(1)=" Order Number: "_$SELECT($PIECE($GET(DATA(0)),"^")'="":$PIECE(DATA(0),"^"),1:"??")
+7 SET RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),50)_"Start: "
+8 SET RESULTS(1)=RESULTS(1)_$SELECT($PIECE($GET(DATA(1)),"^")'="":$$FMTE^XLFDT($PIECE(DATA(1),"^")),1:"<not on file>")
+9 SET RESULTS(2)=" Type: "_$$OTYP^ALPBUTL($PIECE(DATA(3),"^"))
+10 SET RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),51)_"Stop: "
+11 SET RESULTS(2)=RESULTS(2)_$SELECT($PIECE($GET(DATA(1)),"^",2)'="":$$FMTE^XLFDT($PIECE(DATA(1),"^",2)),1:"<not on file>")
+12 SET RESULTS(3)=" Status: "_$PIECE($PIECE(DATA(0),"^",3),"~",2)
+13 SET LINE=3
+14 ; drug(s)...
+15 IF +$ORDER(DATA(7,0))
Begin DoDot:1
+16 SET LINE=LINE+1
+17 SET RESULTS(LINE)=" Drug: "
+18 SET ALPBX=0
+19 FOR
SET ALPBX=$ORDER(DATA(7,ALPBX))
if 'ALPBX
QUIT
Begin DoDot:2
+20 SET RESULTS(LINE)=$GET(RESULTS(LINE))_$PIECE(DATA(7,ALPBX,0),"^",2)
+21 IF +$ORDER(DATA(7,ALPBX))
Begin DoDot:3
+22 SET LINE=LINE+1
+23 SET RESULTS(LINE)=" "
+24 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
End DoDot:3
End DoDot:2
+25 KILL ALPBX
End DoDot:1
+26 ;
+27 ; any additives...
+28 IF +$ORDER(DATA(8,0))
Begin DoDot:1
+29 SET LINE=LINE+1
+30 SET RESULTS(LINE)="Additive Info: "
+31 SET ALPBX=0
+32 FOR
SET ALPBX=$ORDER(DATA(8,ALPBX))
if 'ALPBX
QUIT
Begin DoDot:2
+33 SET RESULTS(LINE)=RESULTS(LINE)_$PIECE(DATA(8,ALPBX,0),"^",2)
+34 ; if UNITS isn't already contained in ADDITIVE NAME, add it...
+35 IF $PIECE(DATA(8,ALPBX,0),"^",3)'=""&($PIECE(DATA(8,ALPBX,0),"^",2)'[$PIECE(DATA(8,ALPBX,0),"^",3))
SET RESULTS(LINE)=RESULTS(LINE)_" "_$PIECE(DATA(8,ALPBX,0),"^",3)
+36 IF +$ORDER(DATA(8,ALPBX))
Begin DoDot:3
+37 SET LINE=LINE+1
+38 SET RESULTS(LINE)=" "
+39 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
End DoDot:3
End DoDot:2
+40 KILL ALPBX
End DoDot:1
+41 ;
+42 ; any solutions...
+43 IF +$ORDER(DATA(9,0))
Begin DoDot:1
+44 SET LINE=LINE+1
+45 SET RESULTS(LINE)="Solution Info: "
+46 SET ALPBX=0
+47 FOR
SET ALPBX=$ORDER(DATA(9,ALPBX))
if 'ALPBX
QUIT
Begin DoDot:2
+48 SET RESULTS(LINE)=RESULTS(LINE)_$PIECE(DATA(9,ALPBX,0),"^",2)
+49 ; if UNITS isn't already contained in SOLUTION NAME, add it...
+50 IF $PIECE(DATA(9,ALPBX,0),"^",3)'=""&($PIECE(DATA(9,ALPBX,0),"^",2)'[$PIECE(DATA(9,ALPBX,0),"^",3))
SET RESULTS(LINE)=RESULTS(LINE)_" "_$PIECE(DATA(9,ALPBX,0),"^",3)
+51 IF +$ORDER(DATA(9,ALPBX))
Begin DoDot:3
+52 SET LINE=LINE+1
+53 SET RESULTS(LINE)=" "
+54 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),14)
End DoDot:3
End DoDot:2
+55 KILL ALPBX
End DoDot:1
+56 ;
+57 ; give ($P(DATA(4),"^",1)=DOSAGE $P(DATA(4),"^",2)=ROUTE $P(DATA(4),"^",3)=SCHEDULE)...
+58 SET LINE=LINE+1
+59 SET RESULTS(LINE)=" Give: "_$PIECE($GET(DATA(4)),"^")_" "_$PIECE($GET(DATA(4)),"^",2)_" "_$PIECE($GET(DATA(4)),"^",3)
+60 ; provider, pharmacist or entry person, and verifier...
+61 SET LINE=LINE+1
+62 SET RESULTS(LINE)=" Provider: "_$PIECE($GET(DATA(2)),"^")
+63 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),43)_"RPh/Entry by: "_$PIECE($GET(DATA(2)),"^",2)
+64 IF $PIECE($GET(DATA(2)),"^",3)'=""
Begin DoDot:1
+65 SET LINE=LINE+1
+66 SET RESULTS(LINE)=" Verified by: "_$PIECE(DATA(2),"^",3)
End DoDot:1
+67 ; administration times...
+68 SET LINE=LINE+1
+69 SET RESULTS(LINE)=" Admin. Times: "_$PIECE($GET(DATA(4)),"^",4)
+70 ;include new node *87
IF $PIECE($GET(DATA(4.5)),U,1)]""
Begin DoDot:1
+71 SET LINE=LINE+1
+72 SET RESULTS(LINE)="Removal Times: "_$PIECE($GET(DATA(4.5)),"^",1)
End DoDot:1
+73 ; provider comments, special instructions or other print info...
+74 IF +$ORDER(DATA(5,0))
Begin DoDot:1
+75 MERGE ALPBCMNT=DATA(5)
+76 DO FTEXT^ALPBFRMU(78,.ALPBCMNT,.ALPBTEXT)
+77 KILL ALPBCMNT
+78 SET ALPBX=0
+79 FOR
SET ALPBX=$ORDER(ALPBTEXT(ALPBX))
if 'ALPBX
QUIT
Begin DoDot:2
+80 SET LINE=LINE+1
+81 SET RESULTS(LINE)=ALPBTEXT(ALPBX,0)
End DoDot:2
+82 KILL ALPBTEXT,ALPBX
End DoDot:1
+83 ; med log data...
+84 IF +$ORDER(DATA(10,0))
Begin DoDot:1
+85 SET LINE=LINE+1
+86 SET RESULTS(LINE)="BCMA Medication Log History since "_$$FMTE^XLFDT(MLDATE)
+87 SET LINE=LINE+1
+88 SET RESULTS(LINE)=" Log Date"
+89 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),16)_"Message"
+90 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),31)_"Log Entry Person"
+91 IF $ORDER(DATA(10,"B",MLDATE))=""
Begin DoDot:2
+92 SET LINE=LINE+1
+93 SET RESULTS(LINE)="No entries to report."
End DoDot:2
+94 ;
+95 ;begin *87 mods *87
+96 ;bld admin and remove sorted array by time
+97 NEW LN,DAT
+98 SET ALPBMDT=MLDATE
+99 FOR
SET ALPBMDT=$ORDER(DATA(10,"B",ALPBMDT))
if 'ALPBMDT
QUIT
Begin DoDot:2
+100 SET ALPBX=0
+101 FOR
SET ALPBX=$ORDER(DATA(10,"B",ALPBMDT,ALPBX))
if 'ALPBX
QUIT
Begin DoDot:3
+102 SET DAT=DATA(10,ALPBX,0)
+103 SET LN(ALPBMDT)=$PIECE(DAT,U,3)_U_$PIECE(DAT,U,2)
+104 if $PIECE(DAT,U,5)
SET LN($PIECE(DAT,U,5))=$PIECE(DAT,U,7)_U_$PIECE(DAT,U,6)
End DoDot:3
+105 KILL ALPBX
End DoDot:2
+106 ;
+107 ;bld log detail lines from sorted array and add to Results print arr
+108 FOR ALPBMDT=0:0
SET ALPBMDT=$ORDER(LN(ALPBMDT))
if 'ALPBMDT
QUIT
Begin DoDot:2
+109 SET LINE=LINE+1
+110 SET RESULTS(LINE)=" "_$$FDATE^ALPBUTL(ALPBMDT)
+111 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),16)_$PIECE(LN(ALPBMDT),U,1)
+112 SET RESULTS(LINE)=$$PAD^ALPBUTL(RESULTS(LINE),31)_$SELECT($PIECE(LN(ALPBMDT),U,2)'="":$PIECE(LN(ALPBMDT),U,2),1:"<not on file>")
End DoDot:2
+113 KILL ALPBMDT
+114 ;end mods *87
End DoDot:1
+115 ;
+116 SET LINE=LINE+1
+117 SET RESULTS(LINE)=$$REPEAT^XLFSTR("-",80)
+118 SET RESULTS(0)=LINE
+119 QUIT
+120 ;
HDR(DATA,TYPE,PG,RESULTS) ; screen display header...
+1 ; DATA = array passed by reference containing the data record to be formatted
+2 ; TYPE = either 'A' for ALL orders or 'C' for CURRENT orders. if null, not used in construction
+3 ; of first line of returned array
+4 ; PG = page number
+5 ; RESULTS = an array passed by reference into which the formatted output will be saved
+6 ; returns RESULTS array with formatted output (note: total lines returned in RESULTS(0))
+7 NEW ALPBX,LINE
+8 IF $GET(TYPE)=""
SET TYPE="X"
+9 IF $GET(PG)=""
SET PG=0
+10 SET RESULTS(0)=0
+11 SET RESULTS(1)=$SELECT(TYPE="A":"ALL ",TYPE="C":"CURRENT ",1:"")_"ORDERS"
+12 SET RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),70)_"Page: "_$JUSTIFY(PG,3)
+13 SET RESULTS(2)=$PIECE($GET(DATA(0)),"^")
+14 SET RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),32)_"SSN: "_$PIECE($GET(DATA(0)),"^",2)
+15 SET RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),48)_"Ward: "_$PIECE($GET(DATA(0)),"^",5)
+16 SET RESULTS(3)="This record last updated: "_$SELECT($PIECE(DATA(0),"^",8)'="":$$FMTE^XLFDT($PIECE(DATA(0),"^",8)),1:"<date not on file>")
+17 SET RESULTS(3)=$$PAD^ALPBUTL(RESULTS(3),48)_"Room: "_$PIECE(DATA(0),"^",6)_" Bed: "_$PIECE(DATA(0),"^",7)
+18 SET LINE=3
+19 IF +$ORDER(DATA(1,0))
Begin DoDot:1
+20 SET LINE=LINE+1
+21 SET RESULTS(LINE)="Allergies: "
+22 SET ALPBX=0
+23 FOR
SET ALPBX=$ORDER(DATA(1,ALPBX))
if 'ALPBX
QUIT
Begin DoDot:2
+24 SET RESULTS(LINE)=RESULTS(LINE)_$PIECE(DATA(1,ALPBX,0),"^",2)
+25 IF +$ORDER(DATA(1,ALPBX))
SET RESULTS(LINE)=RESULTS(LINE)_"; "
End DoDot:2
End DoDot:1
+26 SET LINE=LINE+1
+27 SET RESULTS(LINE)=$$REPEAT^XLFSTR("-",80)
+28 SET RESULTS(0)=LINE
+29 QUIT