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

GMRAOR2.m

Go to the documentation of this file.
  1. GMRAOR2 ; HIRMFO/RM - OERR UTILITIES ;May 11, 2021@12:06:30
  1. ;;4.0;Adverse Reaction Tracking;**21,41,46,63**;Mar 29, 1996;Build 34
  1. EN1(IEN,ARRAY) ;RETURNS DATA FOR SPECIFIC ADVERSE REACTION
  1. ;CONTROLLED BY SUPPORTED INTEGRATION AGREEMENT #2422
  1. ;*BD
  1. N GMRAV1
  1. S GMRAV1=1
  1. ;*ED
  1. D DATA($G(IEN),$G(ARRAY,"GMRACT"))
  1. Q
  1. EN2(IEN,ARRAY) ;RETURNS DATA FOR SPECIFIC ADVERSE REACTION
  1. ;CONTROLLED BY SUPPORTED INTEGRATION AGREEMENT #2422
  1. ;PARAMETERS: IEN => INTERNAL ENTRY NUMBER IN PATIENT ALLERGIES FILE (#120.8)
  1. ; ARRAY => NAME OF THE ARRAY IN WHICH TO RETURN THE
  1. ; REACTION DATA. IF NOTHING IS PASSED IN, DATA
  1. ; IS RETURNED IN THE GMRACT ARRAY.
  1. D DATA($G(IEN),$G(ARRAY,"GMRACT"))
  1. Q
  1. DATA(IEN,ARRAY) ;ASSEMBLE DATA TO RETURN
  1. ;PARAMETERS: IEN => IEN IN FILE #120.8
  1. ; ARRAY => NAME OF THE ARRAY IN WHICH TO RETURN THE
  1. ; REACTION DATA.
  1. Q:$G(IEN)=""
  1. N GMRAPA,GMRAOTH,GMRAI,GMRAGMR,GMRAORIG,GMRAIDX
  1. K @ARRAY
  1. S GMRAPA=IEN,GMRAPA(0)=$G(^GMR(120.8,GMRAPA,0)) Q:GMRAPA(0)=""
  1. ;*BD
  1. I $G(GMRAV1) S @ARRAY=$P(GMRAPA(0),U,2)_U
  1. I '$G(GMRAV1) D
  1. .;*ED (C U DOTS)
  1. .I $P(GMRAPA(0),U,20)["D" D
  1. ..S GMRAGMR=$$EXTERNAL^DILFD(120.8,1,,$P(GMRAPA(0),U,3))
  1. ..I $P(GMRAPA(0),U,2)'=GMRAGMR S @ARRAY=GMRAGMR_" ["_$P(GMRAPA(0),U,2)_"]"_U
  1. .I $P(GMRAPA(0),U,20)'["D"!('$D(@ARRAY)) D
  1. ..S @ARRAY=$P(GMRAPA(0),U,2)_U
  1. S GMRAORIG=$P(GMRAPA(0),U,5)
  1. I +GMRAORIG>0 D
  1. .S @ARRAY=@ARRAY_$$GET1^DIQ(120.8,GMRAPA_",",5)_U_$$GET1^DIQ(200,GMRAORIG_",",8)_U
  1. I +GMRAORIG=0 D
  1. .S @ARRAY=@ARRAY_"<None>"_U_U
  1. S @ARRAY=@ARRAY_$S($P(GMRAPA(0),U,16)=1:"",1:"NOT ")_"VERIFIED"_U
  1. S @ARRAY=@ARRAY_$S($P(GMRAPA(0),U,6)="o":"OBSERVED",$P(GMRAPA(0),U,6)="h":"HISTORICAL",1:"")_U
  1. S @ARRAY=@ARRAY_$S($P(GMRAPA(0),U,14)="A":"ALLERGY",$P(GMRAPA(0),U,14)="P":"PHARMACOLOGIC",$P(GMRAPA(0),U,14)="U":"UNKNOWN",1:"")_U
  1. S @ARRAY=@ARRAY_$$OUTTYPE^GMRAUTL($P(GMRAPA(0),U,20))_U_$S($P(GMRAPA(0),U,16)&('$P(GMRAPA(0),U,18)):"<auto-verified>",1:$$GET1^DIQ(120.8,GMRAPA_",",21))_U_$P(GMRAPA(0),U,17)
  1. S @ARRAY=@ARRAY_U_$$FMTE^XLFDT($P(GMRAPA(0),U,4))
  1. ;Comments
  1. S GMRAI=0 F GMRAIDX=1:1 S GMRAI=$O(^GMR(120.8,GMRAPA,26,GMRAI)) Q:GMRAI<1 D
  1. .N GMRACOM
  1. .S GMRACOM=$G(^GMR(120.8,GMRAPA,26,GMRAI,0)) Q:GMRACOM=""
  1. .S @ARRAY@("C",GMRAIDX)=$P(GMRACOM,U)_U_$S($P(GMRACOM,U,3)="V":"VERIFIER",$P(GMRACOM,U,3)="O":"ORIGINATOR",1:"")_U_$$GET1^DIQ(200,$P(GMRACOM,U,2)_",",.01)
  1. .M @ARRAY@("C",GMRAIDX)=^GMR(120.8,GMRAPA,26,GMRAI,2)
  1. ;Observer information from file #120.85
  1. I $P(GMRAPA(0),U,6)="o" D
  1. .S GMRAI=0 F GMRAIDX=1:1 S GMRAI=$O(^GMR(120.85,"C",GMRAPA,GMRAI)) Q:GMRAI<1 D
  1. ..N GMRACOM
  1. ..S GMRACOM=$G(^GMR(120.85,GMRAI,0)) Q:GMRACOM=""
  1. ..S @ARRAY@("O",GMRAIDX)=$P(GMRACOM,U)_U_$S($P(GMRACOM,U,14)=1:"MILD",$P(GMRACOM,U,14)=2:"MODERATE",$P(GMRACOM,U,14)=3:"SEVERE",1:"")
  1. ;Historical information
  1. I $P(GMRAPA(0),U,6)="h" D
  1. .I $P(GMRAPA(0),U,8)="",$P(GMRAPA(0),U,9)="" Q
  1. .S @ARRAY@("H")=$P(GMRAPA(0),U,9)_U_$S($P(GMRAPA(0),U,8)=1:"MILD",$P(GMRAPA(0),U,8)=2:"MODERATE",$P(GMRAPA(0),U,8)=3:"SEVERE",1:"")
  1. ;Signs/Symptoms
  1. S GMRAOTH=$O(^GMRD(120.83,"B","OTHER REACTION",0))
  1. S GMRAI=0 F GMRAIDX=1:1 S GMRAI=$O(^GMR(120.8,GMRAPA,10,GMRAI)) Q:GMRAI<1 D
  1. .N GMRAZ
  1. .S GMRAZ=$G(^GMR(120.8,GMRAPA,10,GMRAI,0)) Q:GMRAZ=""
  1. .S @ARRAY@("S",GMRAIDX)=$S(+GMRAZ'=GMRAOTH:$P($G(^GMRD(120.83,+GMRAZ,0)),U),1:$P(GMRAZ,U,2))_$S($P(GMRAZ,U,4)'="":" ("_$$FMTE^XLFDT($P(GMRAZ,U,4),2)_")",1:"")
  1. ;VA Drug Classes
  1. S GMRAI=0 F GMRAIDX=1:1 S GMRAI=$O(^GMR(120.8,GMRAPA,3,GMRAI)) Q:GMRAI<1 D
  1. .N GMRACOM
  1. .S GMRACOM=$G(^GMR(120.8,GMRAPA,3,GMRAI,0)) Q:GMRACOM=""
  1. .S @ARRAY@("V",GMRAIDX)=$$CLP2CLDA^GMRAPENC(GMRACOM)
  1. ;Drug Ingredients
  1. S GMRAI=0 F GMRAIDX=1:1 S GMRAI=$O(^GMR(120.8,GMRAPA,2,GMRAI)) Q:GMRAI<1 D
  1. .N GMRACOM
  1. .S GMRACOM=$G(^GMR(120.8,GMRAPA,2,GMRAI,0)) Q:GMRACOM=""
  1. .S @ARRAY@("I",GMRAIDX)=$$INP2INNA^GMRAPENC(GMRACOM)
  1. Q