| 1 | ALPBFRMU ;OIFO-DALLAS MW,SED,KC-PRINT FORMATTING UTILITIES;01/01/03 | 
|---|
| 2 | ;;3.0;BAR CODE MED ADMIN;**8**;Mar 2004 | 
|---|
| 3 | ; | 
|---|
| 4 | FTEXT(COL,TEXT,RESULTS) ; format TEXT array... | 
|---|
| 5 | ; COL  = number of columns (line length) | 
|---|
| 6 | ; TEXT = array to be reformatted.  the array should be in | 
|---|
| 7 | ;        standard FM format:  TEXT(1,0)=text | 
|---|
| 8 | ;                             TEXT(2,0)=text | 
|---|
| 9 | ;                             TEXT(n,0)=text | 
|---|
| 10 | ; RESULT = array passed by reference into which reformatted text | 
|---|
| 11 | ;          will be returned:  RESULTS(1,0)=formatted text to COL length | 
|---|
| 12 | ;                             RESULTS(2,0)=formatted text to COL length | 
|---|
| 13 | I +$G(COL)=0!('$D(TEXT)) Q | 
|---|
| 14 | N ALPBTEMP,I,J,L,M,FSTRING,XSTRING | 
|---|
| 15 | S (I,J)=0 | 
|---|
| 16 | S XSTRING="" | 
|---|
| 17 | F  S I=$O(TEXT(I)) Q:'I  D | 
|---|
| 18 | .S DATA=$G(TEXT(I,0)) | 
|---|
| 19 | .I DATA="" D  Q | 
|---|
| 20 | ..S J=J+1 | 
|---|
| 21 | ..S ALPBTEMP(J,0)="" | 
|---|
| 22 | .F L=1:1:$L(DATA) D | 
|---|
| 23 | ..S XSTRING=XSTRING_$E(DATA,L) | 
|---|
| 24 | ..I $L(XSTRING)=COL D | 
|---|
| 25 | ...S FSTRING=XSTRING | 
|---|
| 26 | ...F M=$L(XSTRING):-1:1 Q:$A($E(XSTRING,M))'>32 | 
|---|
| 27 | ...S FSTRING=$E(XSTRING,1,M-1) | 
|---|
| 28 | ...S XSTRING=$E(XSTRING,M+1,$L(XSTRING)) | 
|---|
| 29 | ...S J=J+1 | 
|---|
| 30 | ...S ALPBTEMP(J,0)=FSTRING | 
|---|
| 31 | ...S FSTRING="" | 
|---|
| 32 | ...I $L(XSTRING)=COL S XSTRING="" | 
|---|
| 33 | I $L(XSTRING)>0 D | 
|---|
| 34 | .S J=J+1 | 
|---|
| 35 | .S ALPBTEMP(J,0)=XSTRING | 
|---|
| 36 | M RESULTS=ALPBTEMP | 
|---|
| 37 | Q | 
|---|
| 38 | ; | 
|---|
| 39 | HDR(DATA,PG,RESULTS) ; print page header... | 
|---|
| 40 | ; DATA    = an array passed by reference containing the nodes in | 
|---|
| 41 | ;           a patient's record in ^ALPB(53.7,...) | 
|---|
| 42 | ; PG      = page number to use | 
|---|
| 43 | ; RESULTS = an array passed by reference that will be used to return | 
|---|
| 44 | ;           the formated data | 
|---|
| 45 | ; returns data in formated 132-column output | 
|---|
| 46 | N ALPBALG,ALPBALGL,ALPBALGX,ALPBX,LINE | 
|---|
| 47 | I $G(PG)="" S PG=0 | 
|---|
| 48 | S RESULTS(1)="MAR Ran: "_$$FMTE^XLFDT($$NOW^XLFDT()) | 
|---|
| 49 | S RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),32)_"Inpatient Pharmacy Orders (Backup)" | 
|---|
| 50 | S RESULTS(1)=$$PAD^ALPBUTL(RESULTS(1),122)_"Page: "_$J(PG,3) | 
|---|
| 51 | S RESULTS(2)=$P($G(DATA(0)),"^") | 
|---|
| 52 | S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),33)_"SSN: "_$P($G(DATA(0)),"^",2) | 
|---|
| 53 | S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),50)_"DOB: "_$S($P($G(DATA(0)),"^",3)'="":$$FMTE^XLFDT($P(DATA(0),"^",3)),1:"not on file") | 
|---|
| 54 | S RESULTS(2)=$$PAD^ALPBUTL(RESULTS(2),70)_"Sex: "_$P($G(DATA(0)),"^",4) | 
|---|
| 55 | S RESULTS(3)="Ward: "_$P($G(DATA(0)),"^",5) | 
|---|
| 56 | S RESULTS(3)=$$PAD^ALPBUTL(RESULTS(3),32)_"Room: "_$P($G(DATA(0)),"^",6) | 
|---|
| 57 | S RESULTS(3)=$$PAD^ALPBUTL(RESULTS(3),50)_"Bed: "_$P($G(DATA(0)),"^",7) | 
|---|
| 58 | S RESULTS(4)="" | 
|---|
| 59 | S RESULTS(4)=$$PAD^ALPBUTL(RESULTS(4),12)_"This record last updated: " | 
|---|
| 60 | S RESULTS(4)=RESULTS(4)_$S($P(DATA(0),"^",8)'="":$$FMTE^XLFDT($P(DATA(0),"^",8)),1:"<date not on file>") | 
|---|
| 61 | S LINE=4 | 
|---|
| 62 | ; report allergies... | 
|---|
| 63 | I '$D(DATA(1,0)) D | 
|---|
| 64 | .;no allergies reported | 
|---|
| 65 | .S LINE=LINE+1,RESULTS(LINE)="" | 
|---|
| 66 | .S RESULTS(LINE)="No allergies reported to the Contingency" | 
|---|
| 67 | I +$O(DATA(1,0)) D | 
|---|
| 68 | .S LINE=LINE+1 | 
|---|
| 69 | .S RESULTS(LINE)="" | 
|---|
| 70 | .S ALPBALGX="Allergies: " | 
|---|
| 71 | .S ALPBALGL=$L(ALPBALGX)-1 | 
|---|
| 72 | .S (ALPBCNT,ALPBX)=0 | 
|---|
| 73 | .F  S ALPBX=$O(DATA(1,ALPBX)) Q:'ALPBX  D | 
|---|
| 74 | ..S ALPBALG=$P($G(DATA(1,ALPBX,0)),"^",2) | 
|---|
| 75 | ..I ALPBALG="" K ALPBALG Q | 
|---|
| 76 | ..I $L(ALPBALGX_ALPBALG_"; ")>90 D | 
|---|
| 77 | ...S LINE=LINE+1 | 
|---|
| 78 | ...S RESULTS(LINE)="" | 
|---|
| 79 | ...S ALPBALGX="" | 
|---|
| 80 | ...S ALPBALGX=$$PAD^ALPBUTL(ALPBALGX,ALPBALGL) | 
|---|
| 81 | ..S ALPBALGX=ALPBALGX_ALPBALG_$S(+$O(DATA(1,ALPBX)):"; ",1:"") | 
|---|
| 82 | ..S RESULTS(LINE)=ALPBALGX | 
|---|
| 83 | S RESULTS(0)=LINE | 
|---|
| 84 | Q | 
|---|
| 85 | ; | 
|---|
| 86 | FOOT ; print page footer (note: output is 5 lines)... | 
|---|
| 87 | ; code adapted from original routine ^ALPFOOT by FD@NJHCS, May 2002 | 
|---|
| 88 | W !,"|" | 
|---|
| 89 | W ?13,"SIGNATURE/TITLE" | 
|---|
| 90 | W ?40,"| INIT" | 
|---|
| 91 | W ?48,"|" | 
|---|
| 92 | W ?50,"INJECTION SITES (Right or Left)" | 
|---|
| 93 | W ?88,"VA FORM  10-2970" | 
|---|
| 94 | W !,"|" | 
|---|
| 95 | W $$REPEAT^XLFSTR("_",38) | 
|---|
| 96 | W ?40,"|_______| 1. DELTOID" | 
|---|
| 97 | W ?71,"4. MED (ANTERIOR) THIGH" | 
|---|
| 98 | W ?96,"7. ABDOMEN" | 
|---|
| 99 | W !,"|" | 
|---|
| 100 | W $$REPEAT^XLFSTR("_",38) | 
|---|
| 101 | W ?40,"|_______| 2. VENTRAL GLUTEAL" | 
|---|
| 102 | W ?71,"5. VASTUS LATERALIS" | 
|---|
| 103 | W ?96,"8. THIGH" | 
|---|
| 104 | W !,"|" | 
|---|
| 105 | W $$REPEAT^XLFSTR("_",38) | 
|---|
| 106 | W ?40,"|_______| 3. GLUTEUS MEDIUS" | 
|---|
| 107 | W ?71,"6. UPPER ARM" | 
|---|
| 108 | W ?96,"9. BUTTOCK" | 
|---|
| 109 | W !,"|" | 
|---|
| 110 | W $$REPEAT^XLFSTR("_",38) | 
|---|
| 111 | W ?40,"|_______|10. UPPER BACK      PRN: E=Effective  N=Not Effective" | 
|---|
| 112 | Q | 
|---|