Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSOVER1.m

    r613 r623  
    1 PSOVER1 ;BHAM ISC/SAB - verify one rx ;3/9/05 12:53pm
    2         ;;7.0;OUTPATIENT PHARMACY;**32,46,90,131,202,207,148,243,268,281**;DEC 1997;Build 41
    3         ;External reference ^PSDRUG( supported by DBIA 221
    4         ;External reference to PSOUL^PSSLOCK supported by DBIA 2789
    5         ;External reference ^PS(55 supported by DBIA 2228
    6         ;External reference to PSSORPH is supported by DBIA 3234
    7         ;External references to ^ORRDI1 supported by DBIA 4659
    8         ;External reference ^XTMP("ORRDI" supported by DBIA 4660
    9 REDO    ;
    10         S (DRG,PSODRUG("NAME"))=$P(^PSDRUG(+$P(^PSRX(PSONV,0),"^",6),0),"^"),PSODRUG("VA CLASS")=$P(^(0),"^",2)
    11         I '$D(PSODFN) S PSODFN=$P(^PSRX(PSONV,0),"^",2)
    12         S (STA,DNM)="",PSDPSTOP=0,$P(PSONULN,"-",79)="-" F  S STA=$O(PSOSD(STA)) Q:STA=""  F  S DNM=$O(PSOSD(STA,DNM)) Q:DNM=""  K PSZZZDUP I $P(PSOSD(STA,DNM),"^",2)<10 D
    13         .I STA="ZNONVA" D NVA Q
    14         .I PSODRUG("NAME")=$P(DNM,"^")&(PSONV'=$P(PSOSD(STA,DNM),"^")) S PSZZZDUP=1 K DIR S DIR(0)="E",DIR("A")="Press RETURN to continue" W ! D ^DIR K DIR S PSDTSTOP=1
    15         .I PSODRUG("VA CLASS")]"",$E(PSODRUG("VA CLASS"),1,4)=$E($P(PSOSD(STA,DNM),"^",5),1,4),PSODRUG("NAME")'=$P(DNM,"^") K DIR S DIR(0)="E",DIR("A")="Press RETURN to continue" W ! D ^DIR K DIR D CLS^PSODRDUP S PSDTSTOP=1
    16         .I $G(PSZZZDUP),$G(PSVFLAG),$P($G(^PSRX($P(PSOSD(STA,DNM),"^"),"STA")),"^")=12,$D(^PS(52.4,$P(PSOSD(STA,DNM),"^"),0)) S DA=$P(PSOSD(STA,DNM),"^"),DIK="^PS(52.4," D ^DIK K DIK
    17         .I $G(PSZZZDUP),$G(PSVFLAG),$P($G(^PSRX($P(PSOSD(STA,DNM),"^"),"STA")),"^")'=12 S PSZZQUIT=1
    18         K MSG I $G(PSZZQUIT),$G(PSVFLAG) K PSZZQUIT,PSODRUG,PSODFN,PSZZZDUP,DNM,PSDTSTOP D CLEAN Q
    19         D REMOTE
    20         K PSODRUG,PSODFN,PSZZZDUP,DNM,PSZZQUIT
    21 ALLR    ;Allergy check
    22         S PSONOAL="" D ALLERGY^PSOORUT2 D:PSONOAL'="" NOALRGY K PSONOAL I $G(PSZZQUIT) K MSG,PSZZQUIT,PSODRUG,PSODFN,PSZZZDUP,DNM,PSDTSTOP D CLEAN Q
    23         G:'$P($G(^PSRX(PSONV,3)),"^",6) EDIT
    24         I '$G(PSDTSTOP) K DIR S DIR(0)="E" D ^DIR K DIR I $D(DTOUT)!($D(DUOUT)) K PSDTSTOP G OUT
    25         W !!,"A Drug-Allergy Reaction exists for this medication!",!!,"***SIGNIFICANT*** Allergy Reaction"
    26         W !,"Drug: ",$P($G(^PSDRUG(+$P($G(^PSRX(PSONV,0)),"^",6),0)),"^")
    27         I $O(^PSRX(PSONV,"DAI",0)) W !?6,"Ingredients: " D
    28         .F PSPPP=0:0 S PSPPP=$O(^PSRX(PSONV,"DAI",PSPPP)) Q:'PSPPP  I $G(^(PSPPP,0))'="" W:$X+$L($G(^PSRX(PSONV,"DAI",PSPPP,0)))+2>IOM !?19 W $G(^PSRX(PSONV,"DAI",PSPPP,0))_", "
    29         W ! K DIR,PSPPP S DIR(0)="Y",DIR("B")="Y",DIR("A")="Do you want to intervene?" D ^DIR K DIR I X["^"!($D(DTOUT))!($D(DUOUT)) K PSDTSTOP G OUT
    30         I Y S PSORX("INTERVENE")=0 D EN1^PSORXI(PSONV)
    31 EDIT    I $G(PKI1)=2 D DCV1^PSOPKIV1 G OUT
    32         K PSDTSTOP S DIR("A")="EDIT",DIR("B")="N",DIR(0)="SB^Y:YES;N:NO;P:PROFILE",DIR("?")="Enter Y to change this RX, P to see a profile, or N to procede with verification"
    33         D ^DIR K DIR I Y="Y",$G(PSOACT)]"" S VALMBCK="R" G OUT
    34         I $D(DIRUT),$G(PSOCLK) S PSOCQ=1 G OUT
    35         I $D(DIRUT),$G(PSOACT)]"" S VALMBCK="R" G OUT
    36         G VERIFY:Y="N",PROF:Y="P",OUT:"YNP"'[$E(Y)
    37 CHANGE  S DA=PSONV,(PSRX1,PSRX2)=$P(^PSRX(PSONV,0),"^",6)
    38         S DEA1=1,DEA2=0,PSDOLD=+DA,DIE="^PSRX(",DR="3;7;8;9;4;5;12;1;22;11;"_$S($P(PSOPAR,"^",12):"35;",1:"")_$S($P(PSOPAR,"^",15):"10.6",1:"")_";@2" D ^DIE
    39         ;I PSRX1'=PSRX2,DEA1'=DEA2 S DR="6////"_PSRX1 D ^DIE
    40         D EXPIRE K DIE,DR,DEA1,DEA2,P(5),PSRX1,PSRX2
    41         K PSD(PSDOLD) S PSDNEW=$P(^PSDRUG($P(^PSRX(PSONV,0),"^",6),0),"^")_"^"_PSONV,PSD(PSDNEW)=PSONV_"^*^1^"_$P(^PSDRUG($P(^PSRX(PSONV,0),"^",6),0),"^",2)
    42         S DA=PSONV D ^PSORXPR
    43         G EDIT:PSDNEW=PSDOLD,REDO
    44 PROF    I '$D(PSOSD) W !,$C(7),"This patient has no other prescriptions on file",!! G EDIT Q
    45         D ^PSODSPL G EDIT Q
    46         ;
    47 EXPIRE  S RX0=^PSRX(DA,0),X1=$P($P(RX0,"^",13),"."),X2=$P(RX0,"^",9)+1*$P(RX0,"^",8),X2=$S($P(RX0,"^",8)=X2:X2,X2<181:184,X2=360:366,1:X2),X=X1 D:X1&X2 C^%DTC
    48         K ^PS(55,PSDFN,"P","A",+$P(^PSRX(DA,2),"^",6),DA) S ^PS(55,PSDFN,"P","A",X,DA)="",$P(^PSRX(DA,2),"^",6)=X,$P(^PS(52.4,DA,0),"^",7)=X Q
    49 VERIFY  G:'$P(PSOPAR,"^",2) VERY
    50         S DIR("A")="VERIFY FOR "_PSONAM_" ? (Y/N/Delete/Quit): ",DIR("B")="Y",DIR(0)="SA^Y:YES;N:NO;D:DELETE;Q:QUIT"
    51         S DIR("?",1)="Enter Y (or return) to verify this prescription",DIR("?",2)="N to leave this prescription non-verified and to end this session of verification",DIR("?")="D to delete this prescription"
    52         D ^DIR K DIR G OUT:Y="N",QUIT:"Q^"[$E(Y),DELETE:Y="D"
    53 VERY    I $G(PKI1)=1 D REA^PSOPKIV1 G:'$D(PKIR) VERIFY
    54         K ^PSRX(PSONV,"DAI") S $P(^PSRX(PSONV,3),"^",6)=""
    55         K ^PSRX(PSONV,"DRI"),SPFL
    56         I '$O(^PSRX(PSONV,6,0)) D  I $D(DUOUT)!($D(DTOUT)) W !!,"Rx: "_$P(^PSRX(DA,0),"^")_" not Verified!!",! H 2 G OUT
    57         .W !!,"Dosing Instructions Missing. Please add!",!
    58         .I $P($G(^PSRX(PSONV,"SIG")),"^")]"",'$P($G(^("SIG")),"^",2) W "SIG: "_$P(^PSRX(PSONV,"SIG"),"^"),!
    59         .I $P($G(^PSRX(PSONV,"SIG")),"^",2),$O(^PSRX(PSONV,"SIG1",0)) D  K I
    60         ..W "SIG: " F I=0:0 S I=$O(^PSRX(PSONV,"SIG1",I)) Q:'I  W ^PSRX(PSONV,"SIG1",I,0),!
    61         .S DA=PSONV,PSOVER=1 K DIR,DIRUT,DUOUT,DTOUT
    62         .S PSODRUG("IEN")=$P(^PSRX(DA,0),"^",6),PSODFN=$P(^(0),"^",2),PSORXED("IRXN")=DA,PSODRUG("OI")=$P(^PSRX(DA,"OR1"),"^")
    63         .D DOSE^PSSORPH(.DOSE,PSODRUG("IEN"),"O",PSODFN),^PSOORED3
    64         .K PSODFN,PSODRUG("IEN"),DOSE,PSOVER
    65         .I '$G(ENT) S DUOUT=1
    66         .Q:$D(DUOUT)!($D(DTOUT))
    67         .K DIR,DIRUT,DUOUT,DTOUT S DIE=52,DR=114 D ^DIE K DIE,DR,DTOUT
    68         .I X'="" D SIG^PSOHELP D:$G(INS1)]"" EN^DDIOL($E(INS1,2,9999999)) S PSORXED("SIG",1)=$E(INS1,2,9999999)
    69         .D EN^PSOFSIG(.PSORXED,1),UDSIG^PSOORED3 H 2
    70         S DA=PSONV,$P(^PSRX(DA,2),"^",10)=DUZ I $P(^PSRX(DA,2),"^",2)>DT,$P(PSOPAR,"^",6) S (SPFL1,PSOVER)="",PSORX("FILL DATE")=$P(^(2),"^",2),RXF=0 D UPSUS S PSTRIVER=1 D SUS^PSORXL K PSORX("FILL DATE"),PSTRIVER G KILL
    71         S PSOVER(PSONV)="" S $P(^PSRX(PSONV,"STA"),"^")=0,$P(PSOSD("NON-VERIFIED",DRG),"^",2)=0,PSOSD("ACTIVE",DRG)=PSOSD("NON-VERIFIED",DRG)
    72         I $G(PKI1)=1,$G(PKIR)]"" D ACT^PSOPKIV1(DA)
    73         K PSOSD("NON-VERIFIED",DRG) D EN^PSOHLSN1(PSONV,"SC","CM","")
    74         ;
    75         ; - Calling ECME for claims generation and transmission / REJECT handling
    76         N ACTION
    77         I $$SUBMIT^PSOBPSUT(PSONV) D  I ACTION="Q"!(ACTION="^") Q
    78         . S ACTION="" D ECMESND^PSOBPSU1(PSONV,,,$S($O(^PSRX(PSONV,1,0)):"RF",1:"OF"))
    79         . I $$FIND^PSOREJUT(PSONV) D
    80         . . S ACTION=$$HDLG^PSOREJU1(PSONV,0,"79,88","OF","IOQ","Q")
    81         ;
    82 KILL    S DA=PSONV,DIK="^PS(52.4," D ^DIK K DA,DIK D DCORD^PSONEW2
    83 OUT     K DIRUT,DTOUT,DUOUT,UPFLAGX D CLEAN Q
    84 DELETE  K UPFLAGX D DELETE^PSOVER2 G:$G(UPFLAGX) OUT K PSOSD("NON-VERIFIED",$G(DRG)) Q
    85 QUIT    S PSOQUIT="" D CLEAN Q
    86 UPSUS   S $P(PSOSD("NON-VERIFIED",DRG),"^",2)=5,PSOSD("ACTIVE",DRG)=PSOSD("NON-VERIFIED",DRG) K PSOSD("NON-VERIFIED",DRG) D EN^PSOHLSN1(PSONV,"SC","CM","")
    87         Q
    88 CLEAN   ;cleans up tmp("psorxdc") global
    89         I $O(^TMP("PSORXDC",$J,0)) F RORD=0:0 S RORD=$O(^TMP("PSORXDC",$J,RORD)) Q:'RORD  D
    90         .D PSOUL^PSSLOCK(RORD_$S($P(^TMP("PSORXDC",$J,RORD,0),"^")="P":"S",1:""))
    91         .W !,$S($P(^TMP("PSORXDC",$J,RORD,0),"^")=52:"Prescription",1:"Pending Order")_" #"_$S($P(^TMP("PSORXDC",$J,RORD,0),"^")=52:$P(^PSRX(RORD,0),"^"),1:RORD)_" NOT Discontinued."
    92         K ^TMP("PSORXDC",$J),RORD
    93         Q
    94 KV1     ;
    95         K PSOANSQD,DRET,LST,PSOQUIT,PSODRUG,PSONEW,SIG,PSODIR,PHI,PRC,ORCHK,ORDRG,PSOSIGFL,PSORX("ISSUE DATE"),PSORX("FILL DATE"),CLOZPAT
    96 KV      K DIR,DIRUT,DTOUT,DUOUT
    97         Q
    98 NVA     ;
    99         I $P(PSOSD(STA,DNM),"^",11) D NVA^PSODRDU1 Q
    100         N PSOOI,CLASS,FLG,X,Y,RXREC,IFN
    101         S (Y,FLG)=""
    102         S RXREC=$P(PSOSD(STA,DNM),"^",10),PSOOI=+$G(^PS(55,DFN,"NVA",RXREC,0)),IFN=RXREC N DNM
    103         F  S Y=$O(^PSDRUG("ASP",PSOOI,Y)) Q:Y=""!(FLG)  S DNM=$P(^PSDRUG(Y,0),"^"),CLASS=$P(^PSDRUG(Y,0),"^",2) I PSODRUG("NAME")=DNM!(CLASS=PSODRUG("VA CLASS")) D DSP^PSODRDU1 S FLG=1 Q
    104         Q
    105 REMOTE  ;
    106         K ^TMP($J,"DD"),^TMP($J,"DC"),^TMP($J,"DI"),^TMP($J,"DI"_PSODFN) D
    107         .I $T(HAVEHDR^ORRDI1)']"" Q
    108         .I '$$HAVEHDR^ORRDI1 Q
    109         .I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) D  Q
    110         ..I $T(REMOTE^PSORX1)]"" Q
    111         ..W !,"Remote data not available - Only local order checks processed." D PAUSE^PSOORRD2
    112         .W !,"Now doing remote order checks. Please wait..."
    113         .D REMOTE^PSOORRDI(PSODFN,+$P($G(^PSRX(PSONV,0)),"^",6))
    114         .I $P($G(^XTMP("ORRDI","PSOO",PSODFN,0)),"^",3)<0 W !,"Remote data not available - Only local order checks processed." D PAUSE^PSOORRD2 Q
    115         .I $D(^TMP($J,"DD")) D DUP^PSOORRD2
    116         .I $D(^TMP($J,"DC")) D CLS^PSOORRD2
    117         .I $D(^TMP($J,"DI"_PSODFN)) K ^TMP($J,"DI") M ^TMP($J,"DI")=^TMP($J,"DI"_PSODFN) D DRGINT^PSOORRD2
    118         K ^TMP($J,"DD"),^TMP($J,"DC"),^TMP($J,"DI"),^TMP($J,"DI"_PSODFN)
    119         Q
    120 NOALRGY ;
    121         W $C(7),!,"There is no allergy assessment on file for this patient."
    122         W !,"You will be prompted to intervene if you continue with this prescription"
    123         K DIR
    124         S DIR(0)="SA^1:YES;0:NO",DIR("A")="Do you want to Continue?: ",DIR("B")="N" D ^DIR
    125         I 'Y S PSZZQUIT=1 Q
    126         S PSORX("INTERVENE")=0
    127         D EN1^PSORXI(PSONV)
    128         Q
     1PSOVER1 ;BHAM ISC/SAB - verify one rx ;3/9/05 12:53pm
     2 ;;7.0;OUTPATIENT PHARMACY;**32,46,90,131,202,207,148,243,268**;DEC 1997;Build 9
     3 ;External reference ^PSDRUG( supported by DBIA 221
     4 ;External reference to PSOUL^PSSLOCK supported by DBIA 2789
     5 ;External reference ^PS(55 supported by DBIA 2228
     6 ;External reference to PSSORPH is supported by DBIA 3234
     7 ;External references to ^ORRDI1 supported by DBIA 4659
     8 ;External reference ^XTMP("ORRDI" supported by DBIA 4660
     9REDO ;
     10 S (DRG,PSODRUG("NAME"))=$P(^PSDRUG(+$P(^PSRX(PSONV,0),"^",6),0),"^"),PSODRUG("VA CLASS")=$P(^(0),"^",2)
     11 I '$D(PSODFN) S PSODFN=$P(^PSRX(PSONV,0),"^",2)
     12 S (STA,DNM)="",PSDPSTOP=0,$P(PSONULN,"-",79)="-" F  S STA=$O(PSOSD(STA)) Q:STA=""  F  S DNM=$O(PSOSD(STA,DNM)) Q:DNM=""  K PSZZZDUP I $P(PSOSD(STA,DNM),"^",2)<10 D
     13 .I STA="ZNONVA" D NVA Q
     14 .I PSODRUG("NAME")=$P(DNM,"^")&(PSONV'=$P(PSOSD(STA,DNM),"^")) S PSZZZDUP=1 K DIR S DIR(0)="E",DIR("A")="Press RETURN to continue" W ! D ^DIR K DIR S PSDTSTOP=1
     15 .I PSODRUG("VA CLASS")]"",$E(PSODRUG("VA CLASS"),1,4)=$E($P(PSOSD(STA,DNM),"^",5),1,4),PSODRUG("NAME")'=$P(DNM,"^") K DIR S DIR(0)="E",DIR("A")="Press RETURN to continue" W ! D ^DIR K DIR D CLS^PSODRDUP S PSDTSTOP=1
     16 .I $G(PSZZZDUP),$G(PSVFLAG),$P($G(^PSRX($P(PSOSD(STA,DNM),"^"),"STA")),"^")=12,$D(^PS(52.4,$P(PSOSD(STA,DNM),"^"),0)) S DA=$P(PSOSD(STA,DNM),"^"),DIK="^PS(52.4," D ^DIK K DIK
     17 .I $G(PSZZZDUP),$G(PSVFLAG),$P($G(^PSRX($P(PSOSD(STA,DNM),"^"),"STA")),"^")'=12 S PSZZQUIT=1
     18 K MSG I $G(PSZZQUIT),$G(PSVFLAG) K PSZZQUIT,PSODRUG,PSODFN,PSZZZDUP,DNM,PSDTSTOP D CLEAN Q
     19 D REMOTE
     20 K PSODRUG,PSODFN,PSZZZDUP,DNM,PSZZQUIT
     21ALLR ;Allergy check
     22 S PSONOAL="" D ALLERGY^PSOORUT2 D:PSONOAL'="" NOALRGY K PSONOAL I $G(PSZZQUIT) K MSG,PSZZQUIT,PSODRUG,PSODFN,PSZZZDUP,DNM,PSDTSTOP D CLEAN Q
     23 G:'$P($G(^PSRX(PSONV,3)),"^",6) EDIT
     24 I '$G(PSDTSTOP) K DIR S DIR(0)="E" D ^DIR K DIR I $D(DTOUT)!($D(DUOUT)) K PSDTSTOP G OUT
     25 W !!,"A Drug-Allergy Reaction exists for this medication!",!!,"***SIGNIFICANT*** Allergy Reaction"
     26 W !,"Drug: ",$P($G(^PSDRUG(+$P($G(^PSRX(PSONV,0)),"^",6),0)),"^")
     27 I $O(^PSRX(PSONV,"DAI",0)) W !?6,"Ingredients: " D
     28 .F PSPPP=0:0 S PSPPP=$O(^PSRX(PSONV,"DAI",PSPPP)) Q:'PSPPP  I $G(^(PSPPP,0))'="" W:$X+$L($G(^PSRX(PSONV,"DAI",PSPPP,0)))+2>IOM !?19 W $G(^PSRX(PSONV,"DAI",PSPPP,0))_", "
     29 W ! K DIR,PSPPP S DIR(0)="Y",DIR("B")="Y",DIR("A")="Do you want to intervene?" D ^DIR K DIR I X["^"!($D(DTOUT))!($D(DUOUT)) K PSDTSTOP G OUT
     30 I Y S PSORX("INTERVENE")=0 D EN1^PSORXI(PSONV)
     31EDIT I $G(PKI1)=2 D DCV1^PSOPKIV1 G OUT
     32 K PSDTSTOP S DIR("A")="EDIT",DIR("B")="N",DIR(0)="SB^Y:YES;N:NO;P:PROFILE",DIR("?")="Enter Y to change this RX, P to see a profile, or N to procede with verification"
     33 D ^DIR K DIR I Y="Y",$G(PSOACT)]"" S VALMBCK="R" G OUT
     34 I $D(DIRUT),$G(PSOCLK) S PSOCQ=1 G OUT
     35 I $D(DIRUT),$G(PSOACT)]"" S VALMBCK="R" G OUT
     36 G VERIFY:Y="N",PROF:Y="P",OUT:"YNP"'[$E(Y)
     37CHANGE S DA=PSONV,(PSRX1,PSRX2)=$P(^PSRX(PSONV,0),"^",6)
     38 S DEA1=1,DEA2=0,PSDOLD=+DA,DIE="^PSRX(",DR="3;7;8;9;4;5;12;1;22;11;"_$S($P(PSOPAR,"^",12):"35;",1:"")_$S($P(PSOPAR,"^",15):"10.6",1:"")_";@2" D ^DIE
     39 ;I PSRX1'=PSRX2,DEA1'=DEA2 S DR="6////"_PSRX1 D ^DIE
     40 D EXPIRE K DIE,DR,DEA1,DEA2,P(5),PSRX1,PSRX2
     41 K PSD(PSDOLD) S PSDNEW=$P(^PSDRUG($P(^PSRX(PSONV,0),"^",6),0),"^")_"^"_PSONV,PSD(PSDNEW)=PSONV_"^*^1^"_$P(^PSDRUG($P(^PSRX(PSONV,0),"^",6),0),"^",2)
     42 S DA=PSONV D ^PSORXPR
     43 G EDIT:PSDNEW=PSDOLD,REDO
     44PROF I '$D(PSOSD) W !,$C(7),"This patient has no other prescriptions on file",!! G EDIT Q
     45 D ^PSODSPL G EDIT Q
     46 ;
     47EXPIRE S RX0=^PSRX(DA,0),X1=$P($P(RX0,"^",13),"."),X2=$P(RX0,"^",9)+1*$P(RX0,"^",8),X2=$S($P(RX0,"^",8)=X2:X2,X2<181:184,X2=360:366,1:X2),X=X1 D:X1&X2 C^%DTC
     48 K ^PS(55,PSDFN,"P","A",+$P(^PSRX(DA,2),"^",6),DA) S ^PS(55,PSDFN,"P","A",X,DA)="",$P(^PSRX(DA,2),"^",6)=X,$P(^PS(52.4,DA,0),"^",7)=X Q
     49VERIFY G:'$P(PSOPAR,"^",2) VERY
     50 S DIR("A")="VERIFY FOR "_PSONAM_" ? (Y/N/Delete/Quit): ",DIR("B")="Y",DIR(0)="SA^Y:YES;N:NO;D:DELETE;Q:QUIT"
     51 S DIR("?",1)="Enter Y (or return) to verify this prescription",DIR("?",2)="N to leave this prescription non-verified and to end this session of verification",DIR("?")="D to delete this prescription"
     52 D ^DIR K DIR G OUT:Y="N",QUIT:"Q^"[$E(Y),DELETE:Y="D"
     53VERY I $G(PKI1)=1 D REA^PSOPKIV1 G:'$D(PKIR) VERIFY
     54 K ^PSRX(PSONV,"DAI") S $P(^PSRX(PSONV,3),"^",6)=""
     55 K ^PSRX(PSONV,"DRI"),SPFL
     56 I '$O(^PSRX(PSONV,6,0)) D  I $D(DUOUT)!($D(DTOUT)) W !!,"Rx: "_$P(^PSRX(DA,0),"^")_" not Verified!!",! H 2 G OUT
     57 .W !!,"Dosing Instructions Missing. Please add!",!
     58 .I $P($G(^PSRX(PSONV,"SIG")),"^")]"",'$P($G(^("SIG")),"^",2) W "SIG: "_$P(^PSRX(PSONV,"SIG"),"^"),!
     59 .I $P($G(^PSRX(PSONV,"SIG")),"^",2),$O(^PSRX(PSONV,"SIG1",0)) D  K I
     60 ..W "SIG: " F I=0:0 S I=$O(^PSRX(PSONV,"SIG1",I)) Q:'I  W ^PSRX(PSONV,"SIG1",I,0),!
     61 .S DA=PSONV,PSOVER=1 K DIR,DIRUT,DUOUT,DTOUT
     62 .S PSODRUG("IEN")=$P(^PSRX(DA,0),"^",6),PSODFN=$P(^(0),"^",2),PSORXED("IRXN")=DA,PSODRUG("OI")=$P(^PSRX(DA,"OR1"),"^")
     63 .D DOSE^PSSORPH(.DOSE,PSODRUG("IEN"),"O",PSODFN),^PSOORED3
     64 .K PSODFN,PSODRUG("IEN"),DOSE,PSOVER
     65 .I '$G(ENT) S DUOUT=1
     66 .Q:$D(DUOUT)!($D(DTOUT))
     67 .K DIR,DIRUT,DUOUT,DTOUT S DIE=52,DR=114 D ^DIE K DIE,DR,DTOUT
     68 .I X'="" D SIG^PSOHELP D:$G(INS1)]"" EN^DDIOL($E(INS1,2,9999999)) S PSORXED("SIG",1)=$E(INS1,2,9999999)
     69 .D EN^PSOFSIG(.PSORXED,1),UDSIG^PSOORED3 H 2
     70 S DA=PSONV,$P(^PSRX(DA,2),"^",10)=DUZ I $P(^PSRX(DA,2),"^",2)>DT,$P(PSOPAR,"^",6) S (SPFL1,PSOVER)="",PSORX("FILL DATE")=$P(^(2),"^",2),RXF=0 D UPSUS S PSTRIVER=1 D SUS^PSORXL K PSORX("FILL DATE"),PSTRIVER G KILL
     71 S PSOVER(PSONV)="" S $P(^PSRX(PSONV,"STA"),"^")=0,$P(PSOSD("NON-VERIFIED",DRG),"^",2)=0,PSOSD("ACTIVE",DRG)=PSOSD("NON-VERIFIED",DRG)
     72 I $G(PKI1)=1,$G(PKIR)]"" D ACT^PSOPKIV1(DA)
     73 K PSOSD("NON-VERIFIED",DRG) D EN^PSOHLSN1(PSONV,"SC","CM","")
     74 ;
     75 ; - Calling ECME for claims generation and transmission / REJECT handling
     76 N ACTION
     77 I $$SUBMIT^PSOBPSUT(PSONV) D  I ACTION="Q"!(ACTION="^") Q
     78 . S ACTION="" D ECMESND^PSOBPSU1(PSONV,,,$S($O(^PSRX(PSONV,1,0)):"RF",1:"OF"))
     79 . I $$FIND^PSOREJUT(PSONV) D
     80 . . S ACTION=$$HDLG^PSOREJU1(PSONV,0,"79,88","OF","IOQ","I")
     81 ;
     82KILL S DA=PSONV,DIK="^PS(52.4," D ^DIK K DA,DIK D DCORD^PSONEW2
     83OUT K DIRUT,DTOUT,DUOUT,UPFLAGX D CLEAN Q
     84DELETE K UPFLAGX D DELETE^PSOVER2 G:$G(UPFLAGX) OUT K PSOSD("NON-VERIFIED",$G(DRG)) Q
     85QUIT S PSOQUIT="" D CLEAN Q
     86UPSUS S $P(PSOSD("NON-VERIFIED",DRG),"^",2)=5,PSOSD("ACTIVE",DRG)=PSOSD("NON-VERIFIED",DRG) K PSOSD("NON-VERIFIED",DRG) D EN^PSOHLSN1(PSONV,"SC","CM","")
     87 Q
     88CLEAN ;cleans up tmp("psorxdc") global
     89 I $O(^TMP("PSORXDC",$J,0)) F RORD=0:0 S RORD=$O(^TMP("PSORXDC",$J,RORD)) Q:'RORD  D
     90 .D PSOUL^PSSLOCK(RORD_$S($P(^TMP("PSORXDC",$J,RORD,0),"^")="P":"S",1:""))
     91 .W !,$S($P(^TMP("PSORXDC",$J,RORD,0),"^")=52:"Prescription",1:"Pending Order")_" #"_$S($P(^TMP("PSORXDC",$J,RORD,0),"^")=52:$P(^PSRX(RORD,0),"^"),1:RORD)_" NOT Discontinued."
     92 K ^TMP("PSORXDC",$J),RORD
     93 Q
     94KV1 ;
     95 K PSOANSQD,DRET,LST,PSOQUIT,PSODRUG,PSONEW,SIG,PSODIR,PHI,PRC,ORCHK,ORDRG,PSOSIGFL,PSORX("ISSUE DATE"),PSORX("FILL DATE"),CLOZPAT
     96KV K DIR,DIRUT,DTOUT,DUOUT
     97 Q
     98NVA ;
     99 I $P(PSOSD(STA,DNM),"^",11) D NVA^PSODRDU1 Q
     100 N PSOOI,CLASS,FLG,X,Y,RXREC,IFN
     101 S (Y,FLG)=""
     102 S RXREC=$P(PSOSD(STA,DNM),"^",10),PSOOI=+$G(^PS(55,DFN,"NVA",RXREC,0)),IFN=RXREC N DNM
     103 F  S Y=$O(^PSDRUG("ASP",PSOOI,Y)) Q:Y=""!(FLG)  S DNM=$P(^PSDRUG(Y,0),"^"),CLASS=$P(^PSDRUG(Y,0),"^",2) I PSODRUG("NAME")=DNM!(CLASS=PSODRUG("VA CLASS")) D DSP^PSODRDU1 S FLG=1 Q
     104 Q
     105REMOTE ;
     106 K ^TMP($J,"DD"),^TMP($J,"DC"),^TMP($J,"DI"),^TMP($J,"DI"_PSODFN) D
     107 .I $T(HAVEHDR^ORRDI1)']"" Q
     108 .I '$$HAVEHDR^ORRDI1 Q
     109 .I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) D  Q
     110 ..I $T(REMOTE^PSORX1)]"" Q
     111 ..W !,"Remote data not available - Only local order checks processed." D PAUSE^PSOORRD2
     112 .W !,"Now doing remote order checks. Please wait..."
     113 .D REMOTE^PSOORRDI(PSODFN,+$P($G(^PSRX(PSONV,0)),"^",6))
     114 .I $P($G(^XTMP("ORRDI","PSOO",PSODFN,0)),"^",3)<0 W !,"Remote data not available - Only local order checks processed." D PAUSE^PSOORRD2 Q
     115 .I $D(^TMP($J,"DD")) D DUP^PSOORRD2
     116 .I $D(^TMP($J,"DC")) D CLS^PSOORRD2
     117 .I $D(^TMP($J,"DI"_PSODFN)) K ^TMP($J,"DI") M ^TMP($J,"DI")=^TMP($J,"DI"_PSODFN) D DRGINT^PSOORRD2
     118 K ^TMP($J,"DD"),^TMP($J,"DC"),^TMP($J,"DI"),^TMP($J,"DI"_PSODFN)
     119 Q
     120NOALRGY ;
     121 W $C(7),!,"There is no allergy assessment on file for this patient."
     122 W !,"You will be prompted to intervene if you continue with this prescription"
     123 K DIR
     124 S DIR(0)="SA^1:YES;0:NO",DIR("A")="Do you want to Continue?: ",DIR("B")="N" D ^DIR
     125 I 'Y S PSZZQUIT=1 Q
     126 S PSORX("INTERVENE")=0
     127 D EN1^PSORXI(PSONV)
     128 Q
Note: See TracChangeset for help on using the changeset viewer.