ORWDAL32 ; SLC/REV - Allergy calls to support windows ;5/31/05 14:14 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,109,190,195,233,243**;Dec 17, 1997;Build 242 ; DEF(LST) ; Get dialog data for allergies N ILST,I,X S ILST=0 S LST($$NXT)="~Allergy Types" D ALLGYTYP S LST($$NXT)="~Reactions" D ALLGYTYP S LST($$NXT)="~Nature of Reaction" D NATREACT S LST($$NXT)="~Top Ten" D TOPTEN S LST($$NXT)="~Observ/Hist" D OBSHIST S LST($$NXT)="~Severity" D SEVERITY Q GMRASITE(ORY) ;Return GMRA Site Params N GMRASITE D SITE^GMRAUTL S ORY=$G(^GMRD(120.84,GMRASITE,0)) Q TOPTEN ; Get top ten symptoms from Allergy Site Parameters file N X0,I,CNT,GMRASITE S I=0,X0="",CNT=0 ;233 D SITE^GMRAUTL ;233 F S I=$O(^GMRD(120.84,GMRASITE,1,I)),CNT=CNT+1 Q:+I=0!(CNT>10) D ;233 . S X0=^GMRD(120.84,GMRASITE,1,I,0) Q:'$D(^GMRD(120.83,X0)) Q:$P(^GMRD(120.83,X0,0),"^")="OTHER REACTION" ;233 Don't send this entry . ;233 Don't send if inactive term . I $L($T(SCREEN^XTID)) Q:$$SCREEN^XTID(120.83,.01,X0_",") . S LST($$NXT)="i"_X0_U_$P($G(^GMRD(120.83,X0,0)),U,1) Q ALLSRCH(Y,X) ; Return list of partial matches ; CHANGED TO PRODUCE TREEVIEW IN GUI N ORX,ROOT,XP,CNT,ORFILE,ORSRC,ORIEN,ORREAX S ORIEN=0,CNT=0,ORSRC=0,ORFILE="" S ORX=X,X=$$UP^XLFSTR(X) F ROOT="^GMRD(120.82,""B"")","^GMRD(120.82,""D"")",$$B^PSNAPIS,$$T^PSNAPIS,"^PSDRUG(""B"")","^PSDRUG(""C"")","^PS(50.416,""P"")","^PS(50.605,""C"")" D . S ORSRC=$G(ORSRC)+1,ORFILE=$P(ROOT,",",1)_")",ORSRC(ORSRC)=$P($T(FILENAME+ORSRC),";;",2) . I (ORSRC'=2),(ORSRC'=6) S CNT=CNT+1,Y(CNT)=ORSRC_U_ORSRC(ORSRC)_U_U_U_"TOP"_U_"+" . I ORSRC=1!(ORSRC=2) D .. I $D(@ROOT@(X)) D ... I ORSRC=1,X="OTHER ALLERGY/ADVERSE REACTION" Q ;don't send this entry ... S ORIEN=$O(@ROOT@(X,0)) ... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(120.82,.01,ORIEN_",") Q ;233 Is term active? ... I ORSRC=2 S CNT=CNT+1,Y(CNT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_X_">"_ROOT ... I ORSRC'=2 S CNT=CNT+1,Y(CNT)=ORIEN_U_X_ROOT ... S Y(CNT)=Y(CNT)_U_$P($G(^GMRD(120.82,+Y(CNT),0)),U,2)_U_$S(ORSRC=2:1,1:ORSRC) .. S XP=X F S XP=$O(@ROOT@(XP)) Q:XP="" Q:$E(XP,1,$L(X))'=X D ... I ORSRC=1,XP="OTHER ALLERGY/ADVERSE REACTION" Q ;don't send this entry ... S ORIEN=$O(@ROOT@(XP,0)) ... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(120.82,.01,ORIEN_",") Q ;233 Is term active? ... I ORSRC=2 S CNT=CNT+1,Y(CNT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_XP_">"_ROOT ; partial matches ... I ORSRC'=2 S CNT=CNT+1,Y(CNT)=ORIEN_U_XP_ROOT ... S Y(CNT)=Y(CNT)_U_$P($G(^GMRD(120.82,+Y(CNT),0)),U,2)_U_$S(ORSRC=2:1,1:ORSRC) . I (ORSRC>2),(ORSRC'=4),(ORSRC'=5),(ORSRC'=6) D .. N CODE,LIST,VAL,NAME .. S CODE=$S(ORSRC=3:"S VAL=$$TGTOG2^PSNAPIS(X,.LIST)",ORSRC=4:"D TRDNAME(X,.LIST)",ORSRC=7:"D INGSRCH(X,.LIST)",ORSRC=8:"D CLASRCH(X,.LIST)",1:"") Q:'$L(CODE) .. X CODE I $D(LIST) S ORIEN=0 F S ORIEN=$O(LIST(ORIEN)) Q:'ORIEN D ... S NAME=$P(LIST(ORIEN),U,2) ... Q:$E($P(LIST(ORIEN),U,2),1,$L(X))'=X ... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID($S(ORSRC=3:50.6,(ORSRC=4):50.6,ORSRC=7:50.416,ORSRC=8:50.605,1:0),.01,ORIEN_",") Q ... S CNT=CNT+1,Y(CNT)=ORIEN_U_NAME_ROOT_U_"D"_U_ORSRC . I ORSRC=4 D .. N CODE,LIST,VAL,NAME .. S CODE="D TRDNAME(X,.LIST)" .. X CODE I $D(LIST) S ORIEN=0 F S ORIEN=$O(LIST(ORIEN)) Q:'ORIEN D ... S NAME=$P(LIST(ORIEN),U,2) ... Q:$E($P(LIST(ORIEN),U,2),1,$L(X))'=X ... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(50.6,.01,+LIST(ORIEN)_",") Q ... S CNT=CNT+1,Y(CNT)=+LIST(ORIEN)_U_NAME_ROOT_U_"D"_U_ORSRC Q FILENAME ; Display text of filenames for search treeview ;;VA Allergies File ;;VA Allergies File (Synonyms) SPACER ONLY - NOT DISPLAYED ;;National Drug File - Generic Drug Name ;;National Drug file - Trade Name ;;Local Drug File ;;Local Drug File (Synonyms) SPACER ONLY - NOT DISPLAYED ;;Drug Ingredients File ;;VA Drug Class File ;; NATREACT ; Get the NATURE OF REACTION types ;Removing "R^Adverse Reaction" from choices below until we can add it as a choice in the nature of reaction/mechanism file F X="A^Allergy","P^Pharmacological","U^Unknown" D . S LST($$NXT)="i"_X Q ALLGYTYP ; Get the allergy types F X="D^Drug","F^Food","O^Other","DF^Drug,Food","DO^Drug,Other","FO^Food,Other","DFO^Drug,Food,Other" D . S LST($$NXT)="i"_X Q OBSHIST ; Observed or historical F X="o^Observed","h^Historical" D . S LST($$NXT)="i"_X Q SEVERITY ; Severity F X="3^Severe","2^Moderate","1^Mild" D . S LST($$NXT)="i"_X Q SYMPTOMS(Y,FROM,DIR) ; Return a subset of symptoms ; .Return Array, Starting Text, Direction N I,IEN,CNT,X,NAME,SUB S I=0,CNT=44 ;233 K ^TMP($J,"SIGNS") ;233 ;The following lines were added in 233. Now accounts for synonyms M ^TMP($J,"SIGNS","B")=^GMRD(120.83,"B") ;233 S SYN="" F S SYN=$O(^GMRD(120.83,"D",SYN)) Q:SYN="" S SUB=0 F S SUB=$O(^GMRD(120.83,"D",SYN,SUB)) Q:'+SUB D ;233 .S NAME=$P(^GMRD(120.83,SUB,0),U) S ^TMP($J,"SIGNS","B",(SYN_$C(9)_"<"_NAME_">"_U_NAME),SUB)="" ;233 F Q:I'