Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMRAPED3

GMRAPED3.m

Go to the documentation of this file.
  1. GMRAPED3 ;HIRMFO/YMP,RM-VALIDATE ENTRY FOR .02 FIELD IN FILE 120.8 ;16-Mar-2011 09:16;DU
  1. ;;4.0;Adverse Reaction Tracking;**1002**;Mar 29, 1996;Build 32
  1. EN1 ; GIVEN DFN, SELECT PATIENT ALLERGY
  1. K GMRAAR S GMRAAR=""
  1. W !!,"CAUSATIVE AGENT: "_$P(GMRAPA(0),"^",2)_"// (Uneditable)"
  1. Q
  1. REAC ;EP Called to reactivate an inactive entry
  1. N GMRAOUT,GMRA,DFN
  1. S GMRAOUT=0
  1. W @IOF D PAT^GMRAPAT ; Select A Patient
  1. D:'GMRAOUT EN21
  1. ;G:'GMRAOUT REAC
  1. K DFN,DIC,GMRAOUT,GMRARET,GMA,GMRAUSER
  1. D EN1^GMRAKILL
  1. Q
  1. EN21 ;Load the inactive allergies and ask user to select one
  1. N GMRAIEN,GMALAR,GMRAOUT,GMRACNT,VADM,GMRALOC,GMRANAM,GMRASEX,X
  1. S GMRACNT=0 D 1^VADPT
  1. S GMRALOC=$P(VAIN(4),U,2),GMRANAM=VADM(1),GMRASEX=VADM(5)
  1. D LIST(DFN,.GMRAL)
  1. I GMRAL=0 W !,"This patient has no inactive allergies" Q
  1. I GMRAL D EN1^GMRADSP0(.GMRAL) Q:GMRAOUT
  1. R !!,"Enter Item to Reactivate: ",GMRALAR:DTIME S:'$T GMRALAR="^^" S:GMRALAR="" GMRARET=1 I "^^"[GMRALAR S GMRAOUT='$L(GMRALAR)+1 G REAC
  1. I GMRALAR?1P.E!($L(GMRALAR)<3)!($L(GMRALAR)>30) S GMRAHLP=1 D EN1^GMRAHLP0 G EN1:'GMRAOUT
  1. I GMRALAR?.E1L.E S GMRALAR=$$UP^XLFSTR(GMRALAR)
  1. K Y,DTOUT,DUOUT S DGSENFLG="",DIC="^GMR(120.8,",DIC(0)="SEZ",X=GMRANAM,DIC("S")="I '+$G(^(""ER"")),$P(^(0),U,2)?@(""1""""""_GMRALAR_"""""".E""),$D(^GMR(120.8,""B"",DFN,+Y))",DIC("W")="W $P(^(0),U,2)"
  1. W !!,"Checking existing PATIENT ALLERGIES (#120.8) file for matches..."
  1. D ^DIC S X=$P($G(Y(0)),"^",2) K DIC,DGSENFLG,DTOUT,DUOUT D DIC I GMRAOUT S GMRAOUT=GMRAOUT-1 G:GMRAOUT Q1 G REAC
  1. S:+Y>0 GMRAPA=+Y G Q1:+Y<1!GMRAOUT
  1. I +GMRAPA D
  1. .D REACT(DFN,GMRAPA)
  1. .S X=$$FIND1^DIC(101,,"BX","GMRA ALLERGY UPDATE")_";ORD(101,"
  1. .D:X EN^XQOR ;Process protocols hanging off this protocol
  1. Q
  1. REACT(DFN,GMRAPA) ;Find the entry to inactivate
  1. N Z,INACT,REACT,VAL,DATA
  1. S Z=9999999 S Z=$O(^GMR(120.8,GMRAPA,9999999.12,Z),-1) I +Z D
  1. .S INACT=$P($G(^GMR(120.8,GMRAPA,9999999.12,Z,0)),U,1)
  1. .S REACT=$P($G(^GMR(120.8,GMRAPA,9999999.12,Z,0)),U,4)
  1. .I +INACT&(REACT="") D
  1. ..S VAL("GMRAINACT")=INACT
  1. ..D RESET(.DATA,GMRAPA,DFN,.VAL)
  1. ..I DATA=GMRAPA W !,"Reaction has been reactivated" D HANGT^GMRAPEH0 G REAC
  1. Q
  1. LIST(DFN,GMRA) ;Get all the reaction for a patient
  1. N GMRAPA,Z,INACT,REACT,INZ
  1. S (GMRAPA,GMRA)=0
  1. F S GMRAPA=$O(^GMR(120.8,"B",DFN,GMRAPA)) Q:GMRAPA<1 D
  1. .Q:$G(^GMR(120.8,GMRAPA,0))=""
  1. .Q:+$G(^GMR(120.8,GMRAPA,"ER"))
  1. .S INZ=0
  1. .S Z=9999999 S Z=$O(^GMR(120.8,GMRAPA,9999999.12,Z),-1) I +Z D
  1. ..S INACT=$P($G(^GMR(120.8,GMRAPA,9999999.12,Z,0)),U,1)
  1. ..S REACT=$P($G(^GMR(120.8,GMRAPA,9999999.12,Z,0)),U,4)
  1. ..I +INACT&(REACT="") S INZ=1
  1. .I INZ=1 D
  1. ..D PASS^GMRADPT(GMRAPA,.GMRA)
  1. ..I 'GMRA S GMRA=1
  1. .Q
  1. Q
  1. Q1 ;
  1. S:GMRAPA>0 GMRAPA(0)=$S($D(^GMR(120.8,+GMRAPA,0)):^(0),1:"")
  1. K %,D,DA,DIC,DTOUT,DUOUT,GMRAAR,GMRAHLP,GMRAING,GMRALAGO,GMRALAR,PSNDA,PSODA,X,Y
  1. Q
  1. DIC ; VALIDATE LOOKUP FOR A/AR
  1. S:$D(DTOUT) X="^^" I X="^^" S GMRAOUT=1 Q
  1. S:$D(DUOUT) Y=0 Q:+Y'>0
  1. YNOK W !?3,X," OK" S %=1 D YN^DICN S:%=-1 GMRAOUT=1,Y=-1 Q:GMRAOUT
  1. S:%=2 Y=-1 Q:Y=-1 I % W ! Q ;19
  1. W !?5,$C(7),"ANSWER YES IF THIS IS THE CORRECT ALLERGY/ADVERSE REACTION,",!?5,"ELSE ANSWER NO."
  1. G YNOK
  1. ;reactivate allergy
  1. RESET(DATA,GMRAPA,DFN,VAL) ;Reactivate
  1. N X,Y,STOP,FNUM,AIEN,BIEN,ERR,SIEN,SIEN,MIEN,IEN,CANVER,VER
  1. I GMRAPA="" S DATA="-1^Missing entry to reactivate" Q
  1. D CKIN^BEHOARMU(DFN)
  1. S STOP=0,FNUM=120.899999912,BIEN=GMRAPA
  1. S SIEN=$O(^GMR(120.8,GMRAPA,9999999.12,$C(0)),-1)
  1. I STOP!'SIEN S DATA="-1^Unable to find entry to reactivate" Q
  1. S AIEN=SIEN_","_GMRAPA_","
  1. I $G(VAL("GMRAINREBY"))="" S VAL("GMRAINREBY")=DUZ
  1. I $G(VAL("GMRAINRE"))="" S VAL("GMRAINRE")=$$NOW^XLFDT
  1. S FDA(120.899999912,AIEN,3)=$G(VAL("GMRAINRE"))
  1. S FDA(120.899999912,AIEN,4)=$G(VAL("GMRAINREBY"))
  1. D UPDATE^DIE(,"FDA","IEN","ERR")
  1. I $G(ERR("DIERR",1)) S DATA=-ERR("DIERR",1)_U_ERR("DIERR",1,"TEXT",1) Q
  1. S DATA=GMRAPA
  1. K FDA,ERR
  1. ;Remove the verification, must be redone
  1. S AIEN=BIEN_","
  1. S FDA(120.8,AIEN,19)="@"
  1. S FDA(120.8,AIEN,20)="@"
  1. S FDA(120.8,AIEN,21)="@"
  1. D FILE^DIE("","FDA","ERR")
  1. S CANVER=$$HASKEY^BEHOUSCX("GMRA-ALLERGY VERIFY")
  1. I $$CANVERIF^BEHOART(GMRAPA,.VER)!(CANVER=1) D
  1. .S AIEN=BIEN_","
  1. .S FDA(120.8,AIEN,19)=1
  1. .S FDA(120.8,AIEN,20)=$$NOW^XLFDT
  1. .S FDA(120.8,AIEN,21)=DUZ
  1. .D UPDATE^DIE(,"FDA","IEN","ERR")
  1. D FIREEVT^BEHOART(DFN,1,GMRAPA)
  1. K FDA,ERR
  1. Q