GMRAEF1 ;HIRMFO/WAA-FDA EXCEPTION REPORT ; 11/25/92
;;4.0;Adverse Reaction Tracking;;Mar 29, 1996
EN1 ; Entry to PRINT PATIENT FDA EXCEPTION DATA option
K DIC S GMRAOUT=0
W ! S DIC="^DPT(",DIC(0)="AEQM"
D ^DIC K DIC,DLAYGO G:+Y'>0 EN1Q
S GMRDFN=+Y D EN2 G:'GMRAOUT EN1
EN1Q K GMRDFN,DIC,GMRAOUT
D KILL^XUSCLEAN G EXIT
EN2 ;
S GMRAX=$P($G(^GMR(120.86,GMRDFN,0)),U,2) I GMRAX=0 W !,"This patient has No Known Allergies" K GMRAX Q
S X=0 F X=0:0 S X=$O(^GMR(120.8,"B",GMRDFN,X)) Q:X'>0 I '+$G(^GMR(120.8,X,"ER")) S X=X+1 Q
I 'X W !,"This patient has no allergies on file" Q
DDATE ;Select discharge date
K DIR S DIR("A")="Enter the Date to start search (Time optional)"
S DIR("B")="T-30",DIR(0)="DO^::AET"
S DIR("?")="ENTER THE DATE YOU WANT THE SYSTEM TO START IT'S SEARCH"
D ^DIR K DIR
I "^^"[Y S GMRAOUT=1 G EXIT
I $D(DIRUT) G EXIT
S GMRASTDT=Y
S GMRAIEN=0 F S GMRAIEN=$O(^GMR(120.8,"B",GMRDFN,GMRAIEN)) Q:GMRAIEN<1 D
.Q:+$G(^GMR(120.8,GMRAIEN,"ER"))
.S GMRA(0)=$G(^GMR(120.8,GMRAIEN,0))
.Q:GMRA(0)=""
.I $P(GMRA(0),U,6)'="o"!($P(GMRA(0),U,20)'["D") Q
.I '$P(GMRA(0),U,12) Q
.I $P(GMRA(0),U,4)<GMRASTDT Q
.I $$CMPFDA(GMRAIEN) Q
.S GMRABGDT=$P(GMRA(0),U,4)
.S ^TMP($J,"GMRAEF",GMRDFN,GMRABGDT)=GMRAIEN
.Q
D EN1^GMRAEF
Q
CMPFDA(DA) ; GIVEN DA ENTRY IN 120.8 RETURN 0 IF THERE IS INCOMPLETE
; FDA DATA, ELSE RETURN 1
N X
S X=0,Y=0 ; Pre set quit flag to valid
;loop through for each entry
F S X=$O(^GMR(120.85,"C",DA,X)) Q:X'>0 D Q:'Y
.S X(0)=$G(^GMR(120.85,X,0)) ; get the zero node
.; Required data
.I $P(X(0),U)="" Q ; Date/Time of Event
.I $P(X(0),U,2)="" Q ; Patient
.I $P(X(0),U,18)="" Q ; Date Reported
.I $P(X(0),U,19)="" Q ; Reporting User
.I '$O(^GMR(120.85,X,2,0)) Q ; Reaction
.I '$O(^GMR(120.85,X,3,0)) Q ; Suspected Agent
.S Y=1
.I $P(X(0),U,3)'="" Q ; Question 1
.I $P(X(0),U,4)'="" Q ; Question 2
.I $P(X(0),U,5)'="" Q ; Question 3
.I $P(X(0),U,6)'="" Q ; Question 4
.I $P(X(0),U,7)'="" Q ; Question 5
.I $P(X(0),U,9)'="" Q ; Question 6
.I $P(X(0),U,10)'="" Q ; Question 7
.I $P(X(0),U,11)'="" Q ; Question 8
.I $P(X(0),U,16)'="" Q ; Question 9
.I $P(X(0),U,17)'="" Q ; Question 10
.S Y=0
.Q
Q Y
EXIT ;EXIT OF ROUTINE
K DIC
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRAEF1 2282 printed Dec 13, 2024@01:39:02 Page 2
GMRAEF1 ;HIRMFO/WAA-FDA EXCEPTION REPORT ; 11/25/92
+1 ;;4.0;Adverse Reaction Tracking;;Mar 29, 1996
EN1 ; Entry to PRINT PATIENT FDA EXCEPTION DATA option
+1 KILL DIC
SET GMRAOUT=0
+2 WRITE !
SET DIC="^DPT("
SET DIC(0)="AEQM"
+3 DO ^DIC
KILL DIC,DLAYGO
if +Y'>0
GOTO EN1Q
+4 SET GMRDFN=+Y
DO EN2
if 'GMRAOUT
GOTO EN1
EN1Q KILL GMRDFN,DIC,GMRAOUT
+1 DO KILL^XUSCLEAN
GOTO EXIT
EN2 ;
+1 SET GMRAX=$PIECE($GET(^GMR(120.86,GMRDFN,0)),U,2)
IF GMRAX=0
WRITE !,"This patient has No Known Allergies"
KILL GMRAX
QUIT
+2 SET X=0
FOR X=0:0
SET X=$ORDER(^GMR(120.8,"B",GMRDFN,X))
if X'>0
QUIT
IF '+$GET(^GMR(120.8,X,"ER"))
SET X=X+1
QUIT
+3 IF 'X
WRITE !,"This patient has no allergies on file"
QUIT
DDATE ;Select discharge date
+1 KILL DIR
SET DIR("A")="Enter the Date to start search (Time optional)"
+2 SET DIR("B")="T-30"
SET DIR(0)="DO^::AET"
+3 SET DIR("?")="ENTER THE DATE YOU WANT THE SYSTEM TO START IT'S SEARCH"
+4 DO ^DIR
KILL DIR
+5 IF "^^"[Y
SET GMRAOUT=1
GOTO EXIT
+6 IF $DATA(DIRUT)
GOTO EXIT
+7 SET GMRASTDT=Y
+8 SET GMRAIEN=0
FOR
SET GMRAIEN=$ORDER(^GMR(120.8,"B",GMRDFN,GMRAIEN))
if GMRAIEN<1
QUIT
Begin DoDot:1
+9 if +$GET(^GMR(120.8,GMRAIEN,"ER"))
QUIT
+10 SET GMRA(0)=$GET(^GMR(120.8,GMRAIEN,0))
+11 if GMRA(0)=""
QUIT
+12 IF $PIECE(GMRA(0),U,6)'="o"!($PIECE(GMRA(0),U,20)'["D")
QUIT
+13 IF '$PIECE(GMRA(0),U,12)
QUIT
+14 IF $PIECE(GMRA(0),U,4)<GMRASTDT
QUIT
+15 IF $$CMPFDA(GMRAIEN)
QUIT
+16 SET GMRABGDT=$PIECE(GMRA(0),U,4)
+17 SET ^TMP($JOB,"GMRAEF",GMRDFN,GMRABGDT)=GMRAIEN
+18 QUIT
End DoDot:1
+19 DO EN1^GMRAEF
+20 QUIT
CMPFDA(DA) ; GIVEN DA ENTRY IN 120.8 RETURN 0 IF THERE IS INCOMPLETE
+1 ; FDA DATA, ELSE RETURN 1
+2 NEW X
+3 ; Pre set quit flag to valid
SET X=0
SET Y=0
+4 ;loop through for each entry
+5 FOR
SET X=$ORDER(^GMR(120.85,"C",DA,X))
if X'>0
QUIT
Begin DoDot:1
+6 ; get the zero node
SET X(0)=$GET(^GMR(120.85,X,0))
+7 ; Required data
+8 ; Date/Time of Event
IF $PIECE(X(0),U)=""
QUIT
+9 ; Patient
IF $PIECE(X(0),U,2)=""
QUIT
+10 ; Date Reported
IF $PIECE(X(0),U,18)=""
QUIT
+11 ; Reporting User
IF $PIECE(X(0),U,19)=""
QUIT
+12 ; Reaction
IF '$ORDER(^GMR(120.85,X,2,0))
QUIT
+13 ; Suspected Agent
IF '$ORDER(^GMR(120.85,X,3,0))
QUIT
+14 SET Y=1
+15 ; Question 1
IF $PIECE(X(0),U,3)'=""
QUIT
+16 ; Question 2
IF $PIECE(X(0),U,4)'=""
QUIT
+17 ; Question 3
IF $PIECE(X(0),U,5)'=""
QUIT
+18 ; Question 4
IF $PIECE(X(0),U,6)'=""
QUIT
+19 ; Question 5
IF $PIECE(X(0),U,7)'=""
QUIT
+20 ; Question 6
IF $PIECE(X(0),U,9)'=""
QUIT
+21 ; Question 7
IF $PIECE(X(0),U,10)'=""
QUIT
+22 ; Question 8
IF $PIECE(X(0),U,11)'=""
QUIT
+23 ; Question 9
IF $PIECE(X(0),U,16)'=""
QUIT
+24 ; Question 10
IF $PIECE(X(0),U,17)'=""
QUIT
+25 SET Y=0
+26 QUIT
End DoDot:1
if 'Y
QUIT
+27 QUIT Y
EXIT ;EXIT OF ROUTINE
+1 KILL DIC
+2 QUIT