| [613] | 1 | PSODGAL ;BIR/LC-DRUG ALLERGY REACTION CHECKING ;08/09/95  02:22
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**26,243**;DEC 1997;Build 22
 | 
|---|
 | 3 |  ;External reference to ^GMRADPT supported by DBIA 10099
 | 
|---|
 | 4 |  ;External reference to ORCHK^GMRAOR supported by DBIA 2378
 | 
|---|
 | 5 |  ;External reference to $P(^GMR(120.8,LP,3),"^",3) supp. by DBIA 2214
 | 
|---|
 | 6 |  ;External reference to ^PS(50.605 supported by DBIA 696
 | 
|---|
 | 7 |  ;External reference to EN1^GMRAOR2 supported by DBIA 2422
 | 
|---|
 | 8 |  ;External reference to GETDATA^GMRAOR supported by DBIA 4847
 | 
|---|
 | 9 |  ;External reference to ^TMP("GMRAOC" supported by DBIA 4848
 | 
|---|
 | 10 |  ;External reference to ^XUSEC("PSORPH" supported by DBIA 10076
 | 
|---|
 | 11 | CHK(DFN,TYP,PTR) ;matched to ndf
 | 
|---|
 | 12 |  K ^TMP("PSODAI",$J) S PSOACK=$$ORCHK^GMRAOR(DFN,TYP,PTR) D:$G(PSOACK)=1 
 | 
|---|
 | 13 |  .Q:$D(^XUSEC("PSORPH",DUZ))
 | 
|---|
 | 14 |  .S ^TMP("PSODAI",$J,0)=1
 | 
|---|
 | 15 |  .S I=0 F  S I=$O(GMRAING(I)) Q:'I  S ^TMP("PSODAI",$J,I,0)=GMRAING(I)
 | 
|---|
 | 16 |  D:$G(PSOACK)=1 DSPLY
 | 
|---|
 | 17 |  K PSOACK,GMRAING,I
 | 
|---|
 | 18 |  Q
 | 
|---|
 | 19 | CHK1(DFN) ;not matched to ndf
 | 
|---|
 | 20 |  K ^TMP("PSODAI",$J)
 | 
|---|
 | 21 |  S GMRA="0^0^001" D ^GMRADPT F LP=0:0 S LP=$O(GMRAL(LP)) Q:'LP!($G(PSOACK))  D:$D(^GMR(120.8,LP,0))
 | 
|---|
 | 22 |  .S:'$D(PSOACK) APTR=$P(^GMR(120.8,LP,0),"^",3)
 | 
|---|
 | 23 |  .I $P(APTR,";",2)="PSDRUG(",$P(APTR,";")=PSODRUG("IEN") S PSOACK=1
 | 
|---|
 | 24 |  .Q:$D(^XUSEC("PSORPH",DUZ))  S:$G(PSOACK)=1 ^TMP("PSODAI",$J,0)=1
 | 
|---|
 | 25 |  D:$G(PSOACK)=1 DSPLY
 | 
|---|
 | 26 |  K APTR,GMRA,GMRAL,LP,PSOACK
 | 
|---|
 | 27 |  Q
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 | CLASS(DFN) ;
 | 
|---|
 | 30 |  N CPT,CLCHK,CT,AGNL,CC,GMRA,LEN
 | 
|---|
 | 31 |  S LEN=4
 | 
|---|
 | 32 |  I $E(PSODRUG("VA CLASS"),1,4)="CN10" S LEN=5 ;look at 5 chars if ANALGESICS
 | 
|---|
 | 33 |  K ^TMP($J,"PSODRCLS")
 | 
|---|
 | 34 |  I $T(GETDATA^GMRAOR)]"" G CLASS2 ; CHECK FOR EXISTENCE OF NEW ENTRY POINT BEFORE USING
 | 
|---|
 | 35 |  S CLCHK=""
 | 
|---|
 | 36 |  S GMRA="0^0^111" D ^GMRADPT F CC=0:0 S CC=$O(GMRAL(CC)) Q:'CC  D
 | 
|---|
 | 37 |  .K AGNL D EN1^GMRAOR2(CC,"AGNL")
 | 
|---|
 | 38 |  .I $D(AGNL("V")) F CT=0:1 S CPT=$O(AGNL("V",CT)) Q:'CPT  I $E($P($G(AGNL("V",CPT)),"^"),1,LEN)=$E(PSODRUG("VA CLASS"),1,LEN) D
 | 
|---|
 | 39 |  ..S CLCHK=$G(CLCHK)+1,^TMP($J,"PSODRCLS",CLCHK)=$P($G(AGNL("V",CPT)),"^")_" "_$P($G(AGNL("V",CPT)),"^",2)
 | 
|---|
 | 40 |  G CLASSDSP
 | 
|---|
 | 41 | CLASS2 ;
 | 
|---|
 | 42 |  N RET
 | 
|---|
 | 43 |  S RET=$$DRCL(DFN)
 | 
|---|
 | 44 |  I '$G(RET) Q
 | 
|---|
 | 45 |  S CLCHK="",CT="" F  S CT=$O(GMRADRCL(CT)) Q:CT=""  D
 | 
|---|
 | 46 |  .I $E(PSODRUG("VA CLASS"),1,LEN)=$E(CT,1,LEN) S CLCHK=$G(CLCHK)+1,^TMP($J,"PSODRCLS",CLCHK)=CT_" "_$P(GMRADRCL(CT),"^",2)
 | 
|---|
 | 47 | CLASSDSP ;
 | 
|---|
 | 48 |  I '$D(^TMP($J,"PSODRCLS")) Q
 | 
|---|
 | 49 |  W $C(7),!,"A Drug-Allergy Reaction exists for this medication and/or class!",!
 | 
|---|
 | 50 |  W !,"Drug: "_PSODRUG("NAME")
 | 
|---|
 | 51 |  S CT="" F  S CT=$O(^TMP($J,"PSODRCLS",CT)) Q:CT=""  W !,"Drug Class: "_^TMP($J,"PSODRCLS",CT)
 | 
|---|
 | 52 |  K ^TMP($J,"PSODRCLS")
 | 
|---|
 | 53 |  S DIR("?",1)="Answer 'YES' if you DO want to enter a reaction for this medication,"
 | 
|---|
 | 54 |  S DIR("?")="       'NO' if you DON'T want to enter a reaction for this medication,"
 | 
|---|
 | 55 |  S DIR(0)="SA^1:YES;0:NO",DIR("A")="Do you want to Intervene? ",DIR("B")="Y" W ! D ^DIR
 | 
|---|
 | 56 |  I Y D ^PSORXI
 | 
|---|
 | 57 |  I '$G(Y) K DIR,DTOUT,DIRUT,DIROUT,DUOUT,Y Q
 | 
|---|
 | 58 |  Q
 | 
|---|
 | 59 | DSPLY ;
 | 
|---|
 | 60 |  W $C(7),!,"A Drug-Allergy Reaction exists for this medication and/or class!",!
 | 
|---|
 | 61 |  I $D(^XUSEC("PSORPH",DUZ)) D
 | 
|---|
 | 62 |  .W !,"Drug: "_PSODRUG("NAME") I $O(GMRAING(0)) W !,?6,"Ingredients: "
 | 
|---|
 | 63 |  .S DIR("?",1)="Answer 'YES' if you DO want to enter a reaction for this medication,"
 | 
|---|
 | 64 |  .S DIR("?")="       'NO' if you DON'T want to enter a reaction for this medication,"
 | 
|---|
 | 65 |  .W ?19 S I=0 F  S I=$O(GMRAING(I)) Q:'I  W:$X+$L($G(GMRAING(I)))+2>IOM !?19 W $G(GMRAING(I))_", "
 | 
|---|
 | 66 |  .S DIR(0)="SA^1:YES;0:NO",DIR("A")="Do you want to Intervene? ",DIR("B")="Y" W ! D ^DIR
 | 
|---|
 | 67 |  .I 'Y K DIR,DTOUT,DIRUT,DIROUT,DUOUT,Y Q
 | 
|---|
 | 68 |  .I Y D ^PSORXI
 | 
|---|
 | 69 |  K DIR,DTOUT,DIRUT,DIROUT,DUOUT,Y
 | 
|---|
 | 70 |  Q
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 | DRCL(DFN) ;
 | 
|---|
 | 73 |  N RET
 | 
|---|
 | 74 |  S RET=0
 | 
|---|
 | 75 |  K GMRADRCL
 | 
|---|
 | 76 |  D GETDATA^GMRAOR(DFN)
 | 
|---|
 | 77 |  Q:'$D(^TMP("GMRAOC",$J,"APC")) 0
 | 
|---|
 | 78 |  N GMRACL
 | 
|---|
 | 79 |  S GMRACL="" F  S GMRACL=$O(^TMP("GMRAOC",$J,"APC",GMRACL)) Q:'$L(GMRACL)  D
 | 
|---|
 | 80 |  .N GMRANM,GMRALOC
 | 
|---|
 | 81 |  .S GMRALOC=^TMP("GMRAOC",$J,"APC",GMRACL)
 | 
|---|
 | 82 |  .S GMRANM=$P(^PS(50.605,+$O(^PS(50.605,"B",GMRACL,0)),0),U,2)
 | 
|---|
 | 83 |  .S GMRADRCL(GMRACL)=GMRACL_U_GMRANM_" ("_GMRALOC_")"
 | 
|---|
 | 84 |  .S RET=RET+1
 | 
|---|
 | 85 |  K ^TMP("GMRAOC",$J)
 | 
|---|
 | 86 |  Q RET
 | 
|---|