[613] | 1 | PSONVAVW ;BHM/MFR - View Non-VA Med - Listmanager ;10/20/06
|
---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**260**;13 Feb 97;Build 84
|
---|
| 3 | ;Reference to File ^PS(55 supported by DBIA 2228
|
---|
| 4 | ;Reference to $$GET1^DIQ is supported by DBIA 2056
|
---|
| 5 | ;Reference to DEM^VADPT is supported by DBIA 10061
|
---|
| 6 | ;Reference to EN6^GMRVUTL is supported by DBIA 1120
|
---|
| 7 | ;
|
---|
| 8 | EN(PSODFN,PSORD) ; - Entry point
|
---|
| 9 | N VALMCNT,VALMHDR
|
---|
| 10 | D EN^VALM("PSO NON-VA MEDS VIEW")
|
---|
| 11 | Q
|
---|
| 12 | ;
|
---|
| 13 | HDR ; - Header
|
---|
| 14 | N LINE1,LINE2,LINE3,WT,WTDT,HT,HTDT,VADM,DFN,PNAME,DOB,SEX,X,VADM,WT,HT,GMRVST,GMRVSTR,DOB,PNAME,SEX
|
---|
| 15 | ;
|
---|
| 16 | K VADM S DFN=PSODFN D DEM^VADPT
|
---|
| 17 | S PNAME=VADM(1)
|
---|
| 18 | S DOB=$S(+VADM(3):$P(VADM(3),"^",2)_" ("_$G(VADM(4))_")",1:"UNKNOWN")
|
---|
| 19 | S SEX=$P(VADM(5),"^",2)
|
---|
| 20 | S (WT,X)="",GMRVSTR="WT" D EN6^GMRVUTL I X'="" S WT=$J($P(X,"^",8)/2.2,6,2),WTDT=$$DT($P(X,"^")\1)
|
---|
| 21 | S (HT,X)="",GMRVSTR="HT" D EN6^GMRVUTL I X'="" S HT=$J($P(X,"^",8)*2.54,6,2),HTDT=$$DT($P(X,"^")\1)
|
---|
| 22 | S LINE1=PNAME S LINE1=$$ALLERGY^PSOPMP1(LINE1,DFN,"")
|
---|
| 23 | S LINE2=" PID: "_$P(VADM(2),"^",2),$E(LINE2,50)="HEIGHT(cm): "_$S(HT'="":HT_" ("_HTDT_")",1:"NOT AVAILABLE")
|
---|
| 24 | S LINE3=" DOB: "_DOB,$E(LINE3,30)="SEX: "_SEX,$E(LINE3,50)="WEIGHT(kg): "_$S(WT'="":WT_" ("_WTDT_")",1:"NOT AVAILABLE")
|
---|
| 25 | ;
|
---|
| 26 | K VALMHDR S VALMHDR(1)=LINE1,VALMHDR(2)=LINE2,VALMHDR(3)=LINE3
|
---|
| 27 | ;
|
---|
| 28 | Q
|
---|
| 29 | ;
|
---|
| 30 | INIT ;
|
---|
| 31 | N OINAM,DGNAM,CLNAM,LINE,NMSPC,L,DIWL,DIWR,X,I,OCK,PRV,STR,TXT,K,TXT,XX
|
---|
| 32 | S XX=^PS(55,PSODFN,"NVA",PSORD,0),OINAM=$$GET1^DIQ(50.7,+$P(XX,"^"),.01)
|
---|
| 33 | S DGNAM="" I $P(XX,"^",2) S DGNAM=$$GET1^DIQ(50,+$P(XX,"^",2),.01)
|
---|
| 34 | ;
|
---|
| 35 | S LINE=0,NMSPC="PSONVAVW" K ^TMP(NMSPC,$J)
|
---|
| 36 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Non-VA Med: ",23)_OINAM
|
---|
| 37 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Dispense Drug: ",23)_DGNAM
|
---|
| 38 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Dosage: ",23)_$P(XX,"^",3)
|
---|
| 39 | ;
|
---|
| 40 | K ^UTILITY($J,"W")
|
---|
| 41 | S X=$$SCHED^PSONVNEW($$GET1^DIQ(55.05,PSORD_","_PSODFN,4)),DIWL=1,DIWR=60 D ^DIWP
|
---|
| 42 | F L=1:1 Q:'$D(^UTILITY($J,"W",1,L)) D
|
---|
| 43 | . S X="" S:L=1 X=$J("Schedule: ",23) S $E(X,24)=^UTILITY($J,"W",1,L,0)
|
---|
| 44 | . S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=X
|
---|
| 45 | ;
|
---|
| 46 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Med Route: ",23)_$P(XX,"^",4)
|
---|
| 47 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Status: ",23)_$S('$P(XX,"^",6):"ACTIVE",1:"DISCONTINUED on "_$$DT($P(XX,"^",7)))
|
---|
| 48 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("CPRS Order #: ",23)_$P(XX,"^",8)
|
---|
| 49 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Documented By: ",23)_$$GET1^DIQ(200,+$P(XX,"^",11),.01)
|
---|
| 50 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Documented Date: ",23)_$$DT($P(XX,"^",10))
|
---|
| 51 | S CLNAM=$$GET1^DIQ(44,+$P(XX,"^",12),.01)
|
---|
| 52 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Clinic: ",23)_$S($P(XX,"^",12):$P(XX,"^",12)_" - "_CLNAM,1:"")
|
---|
| 53 | S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=$J("Start Date: ",23)_$$DT($P(XX,"^",9))
|
---|
| 54 | ;
|
---|
| 55 | ; - "Order Checks" fields
|
---|
| 56 | W:$D(^PS(55,PSODFN,"NVA",PSORD,"OCK")) !
|
---|
| 57 | F I=0:0 S I=$O(^PS(55,PSODFN,"NVA",PSORD,"OCK",I)) Q:'I D
|
---|
| 58 | . S OCK=^PS(55,PSODFN,"NVA",PSORD,"OCK",I,0),STR=$P(OCK,"^"),PRV=+$P(OCK,"^",2)
|
---|
| 59 | . K TXT D TEXT(.TXT,STR,61)
|
---|
| 60 | . D STXT(" Order Check #"_I_": ",.TXT)
|
---|
| 61 | . K TXT
|
---|
| 62 | . F J=0:0 S J=$O(^PS(55,PSODFN,"NVA",PSORD,"OCK",I,"OVR",J)) Q:'J D
|
---|
| 63 | . . S STR=^PS(55,PSODFN,"NVA",PSORD,"OCK",I,"OVR",J,0)
|
---|
| 64 | . . D TEXT(.TXT,STR,57)
|
---|
| 65 | . D STXT(" Override Reason: ",.TXT)
|
---|
| 66 | . S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=" Override Provider: "_$S(PRV:$$GET1^DIQ(200,+PRV,.01),1:"")
|
---|
| 67 | ;
|
---|
| 68 | ; - "Statement/Explanation" field
|
---|
| 69 | I $D(^PS(55,PSODFN,"NVA",PSORD,"DSC")) D
|
---|
| 70 | . K TXT
|
---|
| 71 | . F I=0:0 S I=$O(^PS(55,PSODFN,"NVA",PSORD,"DSC",I)) Q:'I D
|
---|
| 72 | . . S STR=^PS(55,PSODFN,"NVA",PSORD,"DSC",I,0)
|
---|
| 73 | . . D TEXT(.TXT,STR,57)
|
---|
| 74 | . D STXT("Statement/Explanation: ",.TXT)
|
---|
| 75 | ;
|
---|
| 76 | ; - "Comments" field
|
---|
| 77 | I $D(^PS(55,PSODFN,"NVA",PSORD,1)) D
|
---|
| 78 | . K TXT
|
---|
| 79 | . F I=0:0 S I=$O(^PS(55,PSODFN,"NVA",PSORD,1,I)) Q:'I D
|
---|
| 80 | . . S STR=^PS(55,PSODFN,"NVA",PSORD,1,I,0)
|
---|
| 81 | . . D TEXT(.TXT,STR,57)
|
---|
| 82 | . D STXT(" Comments: ",.TXT)
|
---|
| 83 | ;
|
---|
| 84 | S VALMCNT=LINE
|
---|
| 85 | Q
|
---|
| 86 | ;
|
---|
| 87 | TEXT(TEXT,STR,L) ; Formats STR into TEXT array, lines lenght = L
|
---|
| 88 | N J,WORD,K S K=+$O(TEXT(""),-1) S:'K K=1
|
---|
| 89 | F J=1:1:$L(STR," ") D
|
---|
| 90 | . S WORD=$P(STR," ",J) I ($L($G(TEXT(K))_WORD))>L S K=K+1
|
---|
| 91 | . S TEXT(K)=$G(TEXT(K))_WORD_" "
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | STXT(LABEL,TXT) ; Sets text lines
|
---|
| 95 | N K,X
|
---|
| 96 | F K=1:1 Q:'$D(TXT(K)) D
|
---|
| 97 | . S X="" S:K=1 X=LABEL S $E(X,24)=TXT(K)
|
---|
| 98 | . S LINE=LINE+1,^TMP(NMSPC,$J,LINE,0)=X
|
---|
| 99 | Q
|
---|
| 100 | ;
|
---|
| 101 | DT(DT) ; - Convert FM Date to MM/DD/YYYY
|
---|
| 102 | I 'DT Q ""
|
---|
| 103 | I '(DT#10000) Q (1700+$E(DT,1,3))
|
---|
| 104 | I '(DT#100) Q $E(DT,4,5)_"/"_(1700+$E(DT,1,3))
|
---|
| 105 | Q $E(DT,4,5)_"/"_$E(DT,6,7)_"/"_(1700+$E(DT,1,3))
|
---|
| 106 | ;
|
---|
| 107 | EXIT Q
|
---|
| 108 | ;
|
---|
| 109 | HELP Q
|
---|