PSOERUT7 ;ALB/MFR - eRx Drug Validation (VD) Utilities; 06/25/2023 5:14pm
 ;;7.0;OUTPATIENT PHARMACY;**746,769,770**;DEC 1997;Build 145
 ;
DOSEDUE(MODE,NPSPC,ERXIEN) ; 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)
 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(MODE="LM":"2)",1:"")_"   Dosage:"
 . I MODE="LM" 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(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 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" S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)="" ;________________________________________"
 . S XVI=XVI+1,LMLINE=LMLINE+1,VALINES(XVI)=$S(MODE="LM":"3)",1:"")_"Patient Instructions:"
 . I MODE="LM" 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   6582     printed  Sep 23, 2025@20:04:31                                                                                                                                                                                                    Page 2
PSOERUT7  ;ALB/MFR - eRx Drug Validation (VD) Utilities; 06/25/2023 5:14pm
 +1       ;;7.0;OUTPATIENT PHARMACY;**746,769,770**;DEC 1997;Build 145
 +2       ;
DOSEDUE(MODE,NPSPC,ERXIEN) ; 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        NEW ERXDOSE,DOSE,XE,XEI,XV,XVI,WRPDOSE,I,DISPUNTS,DOSEX,PDUE,DUESEQ,ERXLINES,VALINES,COAGENT,REASON,RESULT,ACK,VAPATINS,ALLLN,ERXALLS
 +5       ;
 +6        DO PDUEDATA^PSOERXU9(.PDUE,ERXIEN,1)
 +7        SET XEI=0
           SET LMLINE=LINE-1
 +8        SET XEI=XEI+1
           SET LMLINE=LMLINE+1
           SET ERXLINES(XEI)="Prescriber Drug Use Evaluation:"
 +9        IF '$DATA(PDUE)
               Begin DoDot:1
 +10               SET XEI=XEI+1
                   SET LMLINE=LMLINE+1
                   SET ERXLINES(XEI)=" None"
                   SET HIGHLN(LMLINE,2)=4
               End DoDot:1
 +11      IF '$TEST
               Begin DoDot:1
 +12               FOR DUESEQ=1:1
                       if '$DATA(PDUE(DUESEQ))
                           QUIT 
                       Begin DoDot:2
 +13                       SET COAGENT=$PIECE(PDUE(DUESEQ),"^",8)
 +14                       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)
 +15                       IF $LENGTH(COAGENT)>29
                               Begin DoDot:3
 +16                               FOR I=1:1
                                       SET COAGENT=$EXTRACT(COAGENT,30,999)
                                       if COAGENT=""
                                           QUIT 
                                       Begin DoDot:4
 +17                                       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
 +18                       SET REASON=$PIECE(PDUE(DUESEQ),"^",2)
                           IF $$PRESOLV^PSOERXA1(REASON,"REA")
                               SET REASON=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(REASON,"REA"),.02)
 +19                       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)
 +20                       IF $LENGTH(REASON)>31
                               Begin DoDot:3
 +21                               FOR I=1:1
                                       SET REASON=$EXTRACT(REASON,32,999)
                                       if REASON=""
                                           QUIT 
                                       Begin DoDot:4
 +22                                       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
 +23                       SET RESULT=$PIECE(PDUE(DUESEQ),"^",4)
                           IF $$PRESOLV^PSOERXA1(RESULT,"RES")
                               SET RESULT=$$GET1^DIQ(52.45,$$PRESOLV^PSOERXA1(RESULT,"RES"),.02)
 +24                       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)
 +25                       IF $LENGTH(RESULT)>31
                               Begin DoDot:3
 +26                               FOR I=1:1
                                       SET RESULT=$EXTRACT(RESULT,32,999)
                                       if RESULT=""
                                           QUIT 
                                       Begin DoDot:4
 +27                                       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
 +28                       SET ACK=$PIECE(PDUE(DUESEQ),"^",9)
 +29                       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)
 +30                       IF $LENGTH(ACK)>29
                               Begin DoDot:3
 +31                               FOR I=1:1
                                       SET ACK=$EXTRACT(ACK,30,999)
                                       if ACK=""
                                           QUIT 
                                       Begin DoDot:4
 +32                                       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
 +33                       IF $ORDER(PDUE(DUESEQ))
                               SET XEI=XEI+1
                               SET LMLINE=LMLINE+1
                               SET ERXLINES(XEI)="......................................"
                       End DoDot:2
               End DoDot:1
 +34      ;
 +35       DO ERXDOSE^PSOERUT4(ERXIEN,.ERXDOSE)
 +36       SET XVI=0
           SET LMLINE=LINE-1
 +37       IF '$DATA(ERXDOSE)
               IF '$DATA(PDUE)
                   Begin DoDot:1
 +38                   SET XVI=XVI+1
                       SET LMLINE=LMLINE+1
                       SET VALINES(XVI)=$SELECT(MODE="LM":"2)",1:"")_"   Dosage:"
 +39                   IF MODE="LM"
                           SET UNDERLN(LMLINE,41)=2
                   End DoDot:1
 +40       FOR DOSE=1:1
               if '$DATA(ERXDOSE("DOSE",DOSE))
                   QUIT 
               Begin DoDot:1
 +41               IF '$GET(ERXDOSE("DOSE ORDERED",DOSE))
                       Begin DoDot:2
 +42                       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
 +43               SET DOSEX=ERXDOSE("DOSE",DOSE)
                   IF $EXTRACT(DOSEX,1)="."
                       IF $GET(ERXDOSE("DOSE ORDERED",DOSE))
                           SET DOSEX="0"_DOSEX
 +44               IF $GET(ERXDOSE("UNITS",DOSE))]""
                       SET DOSEX=DOSEX_" ("_$$GET1^DIQ(50.607,ERXDOSE("UNITS",DOSE),.01)_")"
 +45               DO WRAP^PSOERUT(DOSEX,24,.WRPDOSE)
 +46               SET XVI=XVI+1
                   SET LMLINE=LMLINE+1
 +47               SET VALINES(XVI)=$SELECT(MODE="LM"&(DOSE=1):"2)",1:"  ")_"   Dosage: "_$$COMPARE^PSOERUT0("LM",$GET(WRPDOSE(1,0)),$GET(WRPDOSE(1,0)),54,,LMLINE)
 +48               IF MODE="LM"
                       IF DOSE=1
                           SET UNDERLN(LMLINE,41)=2
 +49               FOR I=2:1
                       if '$DATA(WRPDOSE(I))
                           QUIT 
                       Begin DoDot:2
 +50                       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
 +51               IF $GET(ERXDOSE("DOSE ORDERED",DOSE))
                       Begin DoDot:2
 +52                       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)
 +53                       SET DISPUNTS=$SELECT($EXTRACT(ERXDOSE("DOSE ORDERED",DOSE),1)=".":"0",1:"")_ERXDOSE("DOSE ORDERED",DOSE)
 +54                       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)
 +55                       IF $LENGTH(DISPUNTS)>27
                               Begin DoDot:3
 +56                               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
 +57               IF $GET(ERXDOSE("NOUN",DOSE))'=""
                       Begin DoDot:2
 +58                       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
 +59               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)
 +60               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)
 +61               IF $GET(ERXDOSE("DURATION",DOSE))'=""
                       Begin DoDot:2
 +62                       NEW DUR
                           SET DUR=ERXDOSE("DURATION",DOSE)
 +63                       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
 +64               IF $GET(ERXDOSE("CONJUNCTION",DOSE))'=""
                       Begin DoDot:2
 +65                       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
 +66      ;
 +67      ; - Patient Instructions
 +68       SET VAPATINS=$$GET1^DIQ(52.49,ERXIEN,27)
 +69       IF $GET(VAPATINS)'=""!(MODE="LM")
               Begin DoDot:1
 +70      ;________________________________________"
                   IF MODE="LM"
                       SET XVI=XVI+1
                       SET LMLINE=LMLINE+1
                       SET VALINES(XVI)=""
 +71               SET XVI=XVI+1
                   SET LMLINE=LMLINE+1
                   SET VALINES(XVI)=$SELECT(MODE="LM":"3)",1:"")_"Patient Instructions:"
 +72               IF MODE="LM"
                       SET UNDERLN(LMLINE,41)=2
 +73               KILL VARR
                   DO WRAP^PSOERUT($GET(VAPATINS),39,.VARR)
 +74               FOR I=1:1
                       if '$DATA(VARR(I))
                           QUIT 
                       Begin DoDot:2
 +75                       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
 +76      ;
 +77      ; - Setting eRx Prescriber Drug Use Evaluation (DUE), Matched Dosage and Patient Instructions
 +78       FOR ALLLN=1:1
               if ('$DATA(ERXLINES(ALLLN))&'$DATA(VALINES(ALLLN)))
                   QUIT 
               Begin DoDot:1
 +79               SET ERXALLS=$GET(ERXLINES(ALLLN))
                   SET VAALLS=$GET(VALINES(ALLLN))
 +80               SET XE=$GET(ERXLINES(ALLLN))
 +81               SET XV="|"_$GET(VALINES(ALLLN))
 +82               DO ADDLINE^PSOERUT0(MODE,NMSPC,XE,XV)
               End DoDot:1
 +83       QUIT 
 +84      ;
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