- PSOERUT7 ;ALB/MFR - eRx Drug Validation (VD) Utilities; 06/25/2023 5:14pm
- ;;7.0;OUTPATIENT PHARMACY;**746,769**;DEC 1997;Build 26
- ;
- DOSEDUE(MODE,NPSPC,ERXIEN,SDERXFLG) ; Sets Dosage & DUE Information
- ; Input: MODE - Display Mode: "RS": Roll & Scroll | "LM": ListMan
- ; NMSPC - ListMan Temp Global Namespace (e.g., "PSOERXP1")
- ; ERXIEN - Pointer to ERX HOLDING QUEUE file (#52.49)
- ; (o)SDERXFLG - Single eRx View/Display Flag - 1: Single eRx View/Display side-by-side | 0: Existing Functionality
- N ERXDOSE,DOSE,XE,XEI,XV,XVI,WRPDOSE,I,DISPUNTS,DOSEX,PDUE,DUESEQ,ERXLINES,VALINES,COAGENT,REASON,RESULT,ACK,VAPATINS,ALLLN,ERXALLS
- ;
- D PDUEDATA^PSOERXU9(.PDUE,ERXIEN,1)
- S XEI=0,LMLINE=LINE-1
- S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="Prescriber Drug Use Evaluation:"
- I '$D(PDUE) D
- . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)=" None",HIGHLN(LMLINE,2)=4
- E D
- . F DUESEQ=1:1 Q:'$D(PDUE(DUESEQ)) D
- . . S COAGENT=$P(PDUE(DUESEQ),"^",8)
- . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="Co-Agent: "_$$COMPARE^PSOERUT0(MODE,$E(COAGENT,1,29),$E(COAGENT,1,29),11,,LMLINE)
- . . I $L(COAGENT)>29 D
- . . . F I=1:1 S COAGENT=$E(COAGENT,30,999) Q:COAGENT="" D
- . . . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$E(COAGENT,1,29),$E(COAGENT,1,29),11,,LMLINE)
- . . S REASON=$P(PDUE(DUESEQ),"^",2) I $$PRESOLV^PSOERXA1(REASON,"REA") S REASON=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(REASON,"REA"),.02)
- . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="Reason: "_$$COMPARE^PSOERUT0(MODE,$E(REASON,1,30),$E(REASON,1,30),9,,LMLINE)
- . . I $L(REASON)>31 D
- . . . F I=1:1 S REASON=$E(REASON,32,999) Q:REASON="" D
- . . . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$E(REASON,1,31),$E(REASON,1,31),9,,LMLINE)
- . . S RESULT=$P(PDUE(DUESEQ),"^",4) I $$PRESOLV^PSOERXA1(RESULT,"RES") S RESULT=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(RESULT,"RES"),.02)
- . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="Result: "_$$COMPARE^PSOERUT0(MODE,$E(RESULT,1,30),$E(RESULT,1,30),9,,LMLINE)
- . . I $L(RESULT)>31 D
- . . . F I=1:1 S RESULT=$E(RESULT,32,999) Q:RESULT="" D
- . . . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$E(RESULT,1,31),$E(RESULT,1,31),9,,LMLINE)
- . . S ACK=$P(PDUE(DUESEQ),"^",9)
- . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="Override: "_$$COMPARE^PSOERUT0(MODE,$E(ACK,1,29),$E(ACK,1,29),11,,LMLINE)
- . . I $L(ACK)>29 D
- . . . F I=1:1 S ACK=$E(ACK,30,999) Q:ACK="" D
- . . . . S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$E(ACK,1,29),$E(ACK,1,29),11,,LMLINE)
- . . I $O(PDUE(DUESEQ)) S XEI=XEI+1,LMLINE=LMLINE+1,ERXLINES(XEI)="......................................"
- ;
- D ERXDOSE^PSOERUT4(ERXIEN,.ERXDOSE)
- S XVI=0,LMLINE=LINE-1
- I '$D(ERXDOSE),'$D(PDUE) D
- . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=$S($G(SDERXFLG):"",MODE="LM":"2)",1:" ")_$S($G(SDERXFLG):"",1:" ")_" Dosage:"
- . I MODE="LM",'$G(SDERXFLG) S UNDERLN(LMLINE,41)=2
- F DOSE=1:1 Q:'$D(ERXDOSE("DOSE",DOSE)) D
- . I '$G(ERXDOSE("DOSE ORDERED",DOSE)) D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Verb: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("VERB",DOSE),ERXDOSE("VERB",DOSE),54,,LMLINE)
- . S DOSEX=ERXDOSE("DOSE",DOSE) I $E(DOSEX,1)=".",$G(ERXDOSE("DOSE ORDERED",DOSE)) S DOSEX="0"_DOSEX
- . I $G(ERXDOSE("UNITS",DOSE))]"" S DOSEX=DOSEX_" ("_$$GET1^DIQ(50.607,ERXDOSE("UNITS",DOSE),.01)_")"
- . D WRAP^PSOERUT(DOSEX,24,.WRPDOSE)
- . S XVI=XVI+1,LMLINE=LMLINE+1
- . S VALINES(XVI)=$S($G(SDERXFLG):" ",MODE="LM"&(DOSE=1):"2)",1:" ")_" Dosage: "_$$COMPARE^PSOERUT0("LM",$G(WRPDOSE(1,0)),$G(WRPDOSE(1,0)),54,,LMLINE)
- . I MODE="LM",DOSE=1,'$G(SDERXFLG) S UNDERLN(LMLINE,41)=2
- . F I=2:1 Q:'$D(WRPDOSE(I)) D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" "_$$COMPARE^PSOERUT0("LM",$G(WRPDOSE(I,0)),$G(WRPDOSE(I,0)),54,,LMLINE)
- . I $G(ERXDOSE("DOSE ORDERED",DOSE)) D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Verb: "_$$COMPARE^PSOERUT0(MODE,$G(ERXDOSE("VERB",DOSE)),$G(ERXDOSE("VERB",DOSE)),54,,LMLINE)
- . . S DISPUNTS=$S($E(ERXDOSE("DOSE ORDERED",DOSE),1)=".":"0",1:"")_ERXDOSE("DOSE ORDERED",DOSE)
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)="Disp. Units: "_$$COMPARE^PSOERUT0(MODE,$E(DISPUNTS,1,27),$E(DISPUNTS,1,27),54,,LMLINE)
- . . I $L(DISPUNTS)>27 D
- . . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=$$COMPARE^PSOERUT0(MODE,$E(DISPUNTS,28,999),$E(DISPUNTS,28,999),41)
- . I $G(ERXDOSE("NOUN",DOSE))'="" D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Noun: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("NOUN",DOSE),ERXDOSE("NOUN",DOSE),54,,LMLINE)
- . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Route: "_$$COMPARE^PSOERUT0(MODE,$G(ERXDOSE("ROUTE",DOSE)),$G(ERXDOSE("ROUTE",DOSE)),54,,LMLINE)
- . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Schedule: "_$$COMPARE^PSOERUT0(MODE,$G(ERXDOSE("SCHEDULE",DOSE)),$G(ERXDOSE("SCHEDULE",DOSE)),54,,LMLINE)
- . I $G(ERXDOSE("DURATION",DOSE))'="" D
- . . N DUR S DUR=ERXDOSE("DURATION",DOSE)
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" Duration: "_$$COMPARE^PSOERUT0(MODE,DUR_" "_$$FREQ^PSOERUT4(DUR),DUR_" "_$$FREQ^PSOERUT4(DUR),54,,LMLINE)
- . I $G(ERXDOSE("CONJUNCTION",DOSE))'="" D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)="Conjunction: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("CONJUNCTION",DOSE),ERXDOSE("CONJUNCTION",DOSE),54,,LMLINE)
- ;
- ; - Patient Instructions
- S VAPATINS=$$GET1^DIQ(52.49,ERXIEN,27)
- I $G(VAPATINS)'=""!(MODE="LM") D
- . I MODE="LM",'$G(SDERXFLG) S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)="________________________________________"
- . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=$S($G(SDERXFLG):"",MODE="LM":"3)",1:"")_"Patient Instructions:"
- . I MODE="LM",'$G(SDERXFLG) S UNDERLN(LMLINE,41)=2
- . K VARR D WRAP^PSOERUT($G(VAPATINS),39,.VARR)
- . F I=1:1 Q:'$D(VARR(I)) D
- . . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=" "_$$COMPARE^PSOERUT0(MODE,$G(VARR(I,0)),$G(VARR(I,0)),42,,LMLINE)
- ;
- ; - Setting eRx Prescriber Drug Use Evaluation (DUE), Matched Dosage and Patient Instructions
- F ALLLN=1:1 Q:('$D(ERXLINES(ALLLN))&'$D(VALINES(ALLLN))) D
- . S ERXALLS=$G(ERXLINES(ALLLN)),VAALLS=$G(VALINES(ALLLN))
- . S XE=$G(ERXLINES(ALLLN))
- . S XV="|"_$G(VALINES(ALLLN))
- . D ADDLINE^PSOERUT0(MODE,NMSPC,XE,XV)
- Q
- ;
- SAMEDOSE(ERX,RX) ; Returns if the eRx Dosage and VistA Rx Dosage are the same
- ; Input: ERX - Pointer to ERX HOLDING QUEUE file (#52.49)
- ; RX - Pointer to PRESCRIPTION file (#52)
- ;Output: SAMEDOSE - 1: Exact same Dose | 0 - Different Dose
- N SAMEDOSE,EDOSE,VDOSE,NEXTE,NEXTV
- D ERXDOSE^PSOERUT4(ERX,.EDOSE,1)
- D VARXDOSE^PSOERUT4(RX,.VDOSE)
- S SAMEDOSE=1
- S NEXTE="EDOSE" F S NEXTE=$Q(@NEXTE) Q:NEXTE="" D I 'SAMEDOSE Q
- . S NEXTV="VDOSE("_$P(NEXTE,"(",2)
- . I $G(@NEXTE)'=$G(@NEXTV) S SAMEDOSE=0
- Q SAMEDOSE
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOERUT7 6841 printed Feb 18, 2025@23:54:35 Page 2
- PSOERUT7 ;ALB/MFR - eRx Drug Validation (VD) Utilities; 06/25/2023 5:14pm
- +1 ;;7.0;OUTPATIENT PHARMACY;**746,769**;DEC 1997;Build 26
- +2 ;
- DOSEDUE(MODE,NPSPC,ERXIEN,SDERXFLG) ; Sets Dosage & DUE Information
- +1 ; Input: MODE - Display Mode: "RS": Roll & Scroll | "LM": ListMan
- +2 ; NMSPC - ListMan Temp Global Namespace (e.g., "PSOERXP1")
- +3 ; ERXIEN - Pointer to ERX HOLDING QUEUE file (#52.49)
- +4 ; (o)SDERXFLG - Single eRx View/Display Flag - 1: Single eRx View/Display side-by-side | 0: Existing Functionality
- +5 NEW ERXDOSE,DOSE,XE,XEI,XV,XVI,WRPDOSE,I,DISPUNTS,DOSEX,PDUE,DUESEQ,ERXLINES,VALINES,COAGENT,REASON,RESULT,ACK,VAPATINS,ALLLN,ERXALLS
- +6 ;
- +7 DO PDUEDATA^PSOERXU9(.PDUE,ERXIEN,1)
- +8 SET XEI=0
- SET LMLINE=LINE-1
- +9 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="Prescriber Drug Use Evaluation:"
- +10 IF '$DATA(PDUE)
- Begin DoDot:1
- +11 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)=" None"
- SET HIGHLN(LMLINE,2)=4
- End DoDot:1
- +12 IF '$TEST
- Begin DoDot:1
- +13 FOR DUESEQ=1:1
- if '$DATA(PDUE(DUESEQ))
- QUIT
- Begin DoDot:2
- +14 SET COAGENT=$PIECE(PDUE(DUESEQ),"^",8)
- +15 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="Co-Agent: "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(COAGENT,1,29),$EXTRACT(COAGENT,1,29),11,,LMLINE)
- +16 IF $LENGTH(COAGENT)>29
- Begin DoDot:3
- +17 FOR I=1:1
- SET COAGENT=$EXTRACT(COAGENT,30,999)
- if COAGENT=""
- QUIT
- Begin DoDot:4
- +18 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(COAGENT,1,29),$EXTRACT(COAGENT,1,29),11,,LMLINE)
- End DoDot:4
- End DoDot:3
- +19 SET REASON=$PIECE(PDUE(DUESEQ),"^",2)
- IF $$PRESOLV^PSOERXA1(REASON,"REA")
- SET REASON=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(REASON,"REA"),.02)
- +20 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="Reason: "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(REASON,1,30),$EXTRACT(REASON,1,30),9,,LMLINE)
- +21 IF $LENGTH(REASON)>31
- Begin DoDot:3
- +22 FOR I=1:1
- SET REASON=$EXTRACT(REASON,32,999)
- if REASON=""
- QUIT
- Begin DoDot:4
- +23 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(REASON,1,31),$EXTRACT(REASON,1,31),9,,LMLINE)
- End DoDot:4
- End DoDot:3
- +24 SET RESULT=$PIECE(PDUE(DUESEQ),"^",4)
- IF $$PRESOLV^PSOERXA1(RESULT,"RES")
- SET RESULT=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(RESULT,"RES"),.02)
- +25 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="Result: "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(RESULT,1,30),$EXTRACT(RESULT,1,30),9,,LMLINE)
- +26 IF $LENGTH(RESULT)>31
- Begin DoDot:3
- +27 FOR I=1:1
- SET RESULT=$EXTRACT(RESULT,32,999)
- if RESULT=""
- QUIT
- Begin DoDot:4
- +28 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(RESULT,1,31),$EXTRACT(RESULT,1,31),9,,LMLINE)
- End DoDot:4
- End DoDot:3
- +29 SET ACK=$PIECE(PDUE(DUESEQ),"^",9)
- +30 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="Override: "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(ACK,1,29),$EXTRACT(ACK,1,29),11,,LMLINE)
- +31 IF $LENGTH(ACK)>29
- Begin DoDot:3
- +32 FOR I=1:1
- SET ACK=$EXTRACT(ACK,30,999)
- if ACK=""
- QUIT
- Begin DoDot:4
- +33 SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)=" "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(ACK,1,29),$EXTRACT(ACK,1,29),11,,LMLINE)
- End DoDot:4
- End DoDot:3
- +34 IF $ORDER(PDUE(DUESEQ))
- SET XEI=XEI+1
- SET LMLINE=LMLINE+1
- SET ERXLINES(XEI)="......................................"
- End DoDot:2
- End DoDot:1
- +35 ;
- +36 DO ERXDOSE^PSOERUT4(ERXIEN,.ERXDOSE)
- +37 SET XVI=0
- SET LMLINE=LINE-1
- +38 IF '$DATA(ERXDOSE)
- IF '$DATA(PDUE)
- Begin DoDot:1
- +39 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=$SELECT($GET(SDERXFLG):"",MODE="LM":"2)",1:" ")_$SELECT($GET(SDERXFLG):"",1:" ")_" Dosage:"
- +40 IF MODE="LM"
- IF '$GET(SDERXFLG)
- SET UNDERLN(LMLINE,41)=2
- End DoDot:1
- +41 FOR DOSE=1:1
- if '$DATA(ERXDOSE("DOSE",DOSE))
- QUIT
- Begin DoDot:1
- +42 IF '$GET(ERXDOSE("DOSE ORDERED",DOSE))
- Begin DoDot:2
- +43 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Verb: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("VERB",DOSE),ERXDOSE("VERB",DOSE),54,,LMLINE)
- End DoDot:2
- +44 SET DOSEX=ERXDOSE("DOSE",DOSE)
- IF $EXTRACT(DOSEX,1)="."
- IF $GET(ERXDOSE("DOSE ORDERED",DOSE))
- SET DOSEX="0"_DOSEX
- +45 IF $GET(ERXDOSE("UNITS",DOSE))]""
- SET DOSEX=DOSEX_" ("_$$GET1^DIQ(50.607,ERXDOSE("UNITS",DOSE),.01)_")"
- +46 DO WRAP^PSOERUT(DOSEX,24,.WRPDOSE)
- +47 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- +48 SET VALINES(XVI)=$SELECT($GET(SDERXFLG):" ",MODE="LM"&(DOSE=1):"2)",1:" ")_" Dosage: "_$$COMPARE^PSOERUT0("LM",$GET(WRPDOSE(1,0)),$GET(WRPDOSE(1,0)),54,,LMLINE)
- +49 IF MODE="LM"
- IF DOSE=1
- IF '$GET(SDERXFLG)
- SET UNDERLN(LMLINE,41)=2
- +50 FOR I=2:1
- if '$DATA(WRPDOSE(I))
- QUIT
- Begin DoDot:2
- +51 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" "_$$COMPARE^PSOERUT0("LM",$GET(WRPDOSE(I,0)),$GET(WRPDOSE(I,0)),54,,LMLINE)
- End DoDot:2
- +52 IF $GET(ERXDOSE("DOSE ORDERED",DOSE))
- Begin DoDot:2
- +53 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Verb: "_$$COMPARE^PSOERUT0(MODE,$GET(ERXDOSE("VERB",DOSE)),$GET(ERXDOSE("VERB",DOSE)),54,,LMLINE)
- +54 SET DISPUNTS=$SELECT($EXTRACT(ERXDOSE("DOSE ORDERED",DOSE),1)=".":"0",1:"")_ERXDOSE("DOSE ORDERED",DOSE)
- +55 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)="Disp. Units: "_$$COMPARE^PSOERUT0(MODE,$EXTRACT(DISPUNTS,1,27),$EXTRACT(DISPUNTS,1,27),54,,LMLINE)
- +56 IF $LENGTH(DISPUNTS)>27
- Begin DoDot:3
- +57 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=$$COMPARE^PSOERUT0(MODE,$EXTRACT(DISPUNTS,28,999),$EXTRACT(DISPUNTS,28,999),41)
- End DoDot:3
- End DoDot:2
- +58 IF $GET(ERXDOSE("NOUN",DOSE))'=""
- Begin DoDot:2
- +59 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Noun: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("NOUN",DOSE),ERXDOSE("NOUN",DOSE),54,,LMLINE)
- End DoDot:2
- +60 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Route: "_$$COMPARE^PSOERUT0(MODE,$GET(ERXDOSE("ROUTE",DOSE)),$GET(ERXDOSE("ROUTE",DOSE)),54,,LMLINE)
- +61 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Schedule: "_$$COMPARE^PSOERUT0(MODE,$GET(ERXDOSE("SCHEDULE",DOSE)),$GET(ERXDOSE("SCHEDULE",DOSE)),54,,LMLINE)
- +62 IF $GET(ERXDOSE("DURATION",DOSE))'=""
- Begin DoDot:2
- +63 NEW DUR
- SET DUR=ERXDOSE("DURATION",DOSE)
- +64 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" Duration: "_$$COMPARE^PSOERUT0(MODE,DUR_" "_$$FREQ^PSOERUT4(DUR),DUR_" "_$$FREQ^PSOERUT4(DUR),54,,LMLINE)
- End DoDot:2
- +65 IF $GET(ERXDOSE("CONJUNCTION",DOSE))'=""
- Begin DoDot:2
- +66 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)="Conjunction: "_$$COMPARE^PSOERUT0(MODE,ERXDOSE("CONJUNCTION",DOSE),ERXDOSE("CONJUNCTION",DOSE),54,,LMLINE)
- End DoDot:2
- End DoDot:1
- +67 ;
- +68 ; - Patient Instructions
- +69 SET VAPATINS=$$GET1^DIQ(52.49,ERXIEN,27)
- +70 IF $GET(VAPATINS)'=""!(MODE="LM")
- Begin DoDot:1
- +71 IF MODE="LM"
- IF '$GET(SDERXFLG)
- SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)="________________________________________"
- +72 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=$SELECT($GET(SDERXFLG):"",MODE="LM":"3)",1:"")_"Patient Instructions:"
- +73 IF MODE="LM"
- IF '$GET(SDERXFLG)
- SET UNDERLN(LMLINE,41)=2
- +74 KILL VARR
- DO WRAP^PSOERUT($GET(VAPATINS),39,.VARR)
- +75 FOR I=1:1
- if '$DATA(VARR(I))
- QUIT
- Begin DoDot:2
- +76 SET XVI=XVI+1
- SET LMLINE=LMLINE+1
- SET VALINES(XVI)=" "_$$COMPARE^PSOERUT0(MODE,$GET(VARR(I,0)),$GET(VARR(I,0)),42,,LMLINE)
- End DoDot:2
- End DoDot:1
- +77 ;
- +78 ; - Setting eRx Prescriber Drug Use Evaluation (DUE), Matched Dosage and Patient Instructions
- +79 FOR ALLLN=1:1
- if ('$DATA(ERXLINES(ALLLN))&'$DATA(VALINES(ALLLN)))
- QUIT
- Begin DoDot:1
- +80 SET ERXALLS=$GET(ERXLINES(ALLLN))
- SET VAALLS=$GET(VALINES(ALLLN))
- +81 SET XE=$GET(ERXLINES(ALLLN))
- +82 SET XV="|"_$GET(VALINES(ALLLN))
- +83 DO ADDLINE^PSOERUT0(MODE,NMSPC,XE,XV)
- End DoDot:1
- +84 QUIT
- +85 ;
- SAMEDOSE(ERX,RX) ; Returns if the eRx Dosage and VistA Rx Dosage are the same
- +1 ; Input: ERX - Pointer to ERX HOLDING QUEUE file (#52.49)
- +2 ; RX - Pointer to PRESCRIPTION file (#52)
- +3 ;Output: SAMEDOSE - 1: Exact same Dose | 0 - Different Dose
- +4 NEW SAMEDOSE,EDOSE,VDOSE,NEXTE,NEXTV
- +5 DO ERXDOSE^PSOERUT4(ERX,.EDOSE,1)
- +6 DO VARXDOSE^PSOERUT4(RX,.VDOSE)
- +7 SET SAMEDOSE=1
- +8 SET NEXTE="EDOSE"
- FOR
- SET NEXTE=$QUERY(@NEXTE)
- if NEXTE=""
- QUIT
- Begin DoDot:1
- +9 SET NEXTV="VDOSE("_$PIECE(NEXTE,"(",2)
- +10 IF $GET(@NEXTE)'=$GET(@NEXTV)
- SET SAMEDOSE=0
- End DoDot:1
- IF 'SAMEDOSE
- QUIT
- +11 QUIT SAMEDOSE