- HMPCORD5 ;SLC/AGP,ASMR/EJK,RRB - Retrieved Orderable Items;Sep 1, 2016 17:27:27
- ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**3**;Sep 01, 2011;Build 15
- ;Per VA Directive 6402, this routine should not be modified.
- ;
- ; DE2497/RRB - Removed unused variable, HMP777
- ;
- ; DE6652 - JD - 9/1/16: Removed code behind synching sign-symptom domain for operational data.
- ; SIGNS tag.
- ;
- Q
- ;
- IMMTYPE ;
- N ORWLST,ORDT,HMPIMM
- S (ORWLST,ORDT)=""
- S (HMPCNT,HMPLAST,HMPI)=0
- N IMM
- ;D IMMTYPE^ORWPCE2(.ORWLST,ORDT) ;use existing broker call ORWPCE GET IMMUNIZATION TYPE
- N IEN,CNT,BINDEX S (IEN,CNT)=0
- S:'$G(ORDT) ORDT=DT
- ; ^AUTTIMM - IMMUNIZATION file #9999999.14, ***DBIA2454 subscription needed***
- F S IEN=$O(^AUTTIMM(IEN)) Q:IEN=""!(IEN'?1N.N) D
- . I $D(^AUTTIMM(IEN,0))#2,+$P(^(0),"^",7)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$G(^(0))
- . Q
- S IMM="",HMPIMM=""
- F S IMM=$O(ORWLST(IMM)) Q:IMM="" D
- . S HMPIMM("localId")=$P(ORWLST(IMM),"^",1) ;get the ien for each item found
- . S HMPIMM("name")=$P(ORWLST(IMM),"^",2) ;get the name for each item found
- . S HMPIMM("mnemonic")=$P(ORWLST(IMM),"^",3) ;get the mnemonic for each entry
- . S HMPIMM("uid")=$$SETUID^HMPUTILS("immunization",,HMPIMM("localId")) ;set the uid string
- . S HMPCNT=HMPCNT+1
- . D ADD^HMPEF("HMPIMM") S HMPLAST=HMPCNT ;add it to the JSON results array
- . Q
- S HMPFINI=1
- Q
- ;
- ALLTYPE ; deprecated
- ;N ORX,ROOT,XP,CNT,ORFILE,ORSRC,ORIEN,ORREAX,ALLCNT,ALLLAST,ALLITEM
- ;S ORIEN=0,CNT=0,ORSRC=0,ORFILE="",ALLCNT=0,ALLLAST=0
- ;S X=""
- ;F ROOT="^GMRD(120.82)","^PSNDF(50.6)","^PSNDF(50.67)","^PSDRUG(""B"")","^PS(50.416)","^PS(50.605)" D
- ;F ROOT="^GMRD(120.82,""B"")","^GMRD(120.82,""D"")","^PSDRUG(""C"")","^PS(50.416,""P"")","^PS(50.605,""C"")",$$B^PSNAPIS,$$T^PSNAPIS,"^PSDRUG(""B"")" D
- ;F ROOT="^GMRD(120.82,""B"")","^PSDRUG(""C"")","^PS(50.416,""P"")","^PS(50.605,""C"")",$$B^PSNAPIS,$$T^PSNAPIS,"^PSDRUG(""B"")" D
- ;. S ORSRC=$G(ORSRC)+1,ORFILE=$P(ROOT,",",1)_")",ORSRC(ORSRC)=$P($T(FILENAME+ORSRC),";;",2)
- ;. I (ORSRC'=2),(ORSRC'=6) S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORSRC_U_ORSRC(ORSRC)_U_U_U_"TOP"_U_"+"
- ;. I ORSRC=1!(ORSRC=2) D
- ;.. F S X=$O(@ROOT@(X)) Q: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:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_X_">"_ROOT
- ;... I ORSRC'=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_X_ROOT
- ;... S Y(ORIEN_";"_ROOT)=Y(ORIEN_";"_ROOT)_U_$P($G(^GMRD(120.82,+ORIEN,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:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_XP_">"_ROOT ; partial matches
- ;... I ORSRC'=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_XP_ROOT
- ;... S:'$D(Y(ORIEN_";"_ROOT)) Y(ORIEN_";"_ROOT)=Y(ORIEN_";"_ROOT)_U_$P($G(^GMRD(120.82,+ORIEN,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:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=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:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=+LIST(ORIEN)_U_NAME_ROOT_U_"D"_U_ORSRC
- ;S CNT=""
- ;F S CNT=$O(Y(CNT)) Q:CNT="" D
- ;. K ALLERGY
- ;. S ALLITEM=$G(Y(CNT))
- ;. I Y(CNT)["^TOP^+" Q
- ;. I Y(CNT)'["^TOP^+" D
- ;.. S ALLERGY("localId")=$P(ALLITEM,"^",1)
- ;.. S ALLERGY("name")=$P(ALLITEM,"^",2)
- ;.. S ALLERGY("root")=$P(ALLITEM,"^",3)
- ;.. S ALLERGY("uid")=$$SETUID^HMPUTILS("allergy-list",,ALLERGY("localId")_";"_$TR(ALLERGY("root"),"""","")) ;set the uid string
- ;.. S HMPCNT=$G(HMPCNT)+1 D ADD^HMPEF("ALLERGY") S HMPLAST=HMPCNT
- ;.. Q
- ;. Q
- ;S HMPFINI=1
- ;K X,Y
- Q
- ;
- VTYPE ; ;VITALS TYPE
- N IEN
- S (HMPCNT,HMPI,HMPLAST,IEN)=0
- F S IEN=$O(^GMRD(120.51,IEN)) Q:IEN=""!(IEN'?1N.N) D
- . S VTYPE("localId")=IEN
- . S VTYPE("name")=$P(^GMRD(120.51,IEN,0),"^",1)
- . S VTYPE("abbreviation")=$P(^GMRD(120.51,IEN,0),"^",2)
- . S VTYPE("rate")=$P(^GMRD(120.51,IEN,0),"^",4)
- . I VTYPE("rate")]"" S VTYPE("rate")=$S(VTYPE("rate")=1:"YES",1:"NO")
- . S VTYPE("pce")=$P(^GMRD(120.51,IEN,0),"^",7)
- . S VTYPE("vuid")="urn:va:vuid:"_$P($G(^GMRD(120.51,IEN,"VUID")),"^",1)
- . S VTYPE("masterVuid")=$P($G(^GMRD(120.51,IEN,"VUID")),"^",2)
- . I VTYPE("masterVuid")]"" S VTYPE("masterVuid")=$S(VTYPE("masterVuid")=1:"YES",1:"NO")
- . S VTYPE("effective")=$P($G(^GMRD(120.51,IEN,"TERMSTATUS",1,0)),"^",1)
- . I VTYPE("effective")]"" S VTYPE("effective")=$$JSONDT^HMPUTILS(VTYPE("effective"))
- . S VTYPE("status")=$P($G(^GMRD(120.51,IEN,"TERMSTATUS",1,0)),"^",2)
- . I VTYPE("status")]"" S VTYPE("status")=$S(VTYPE("status")=1:"ACTIVE",1:"INACTIVE")
- . S VTYPE("uid")=$$SETUID^HMPUTILS("vital-type",,VTYPE("localId"))
- . S HMPCNT=HMPCNT+1 D ADD^HMPEF("VTYPE") S HMPLAST=HMPCNT
- S HMPFINI=1
- K VTYPE
- Q
- ;
- VQUAL ; VITALS QUALIFIER
- N IEN,I
- S (HMPCNT,HMPI,HMPLAST,IEN)=0
- F S IEN=$O(^GMRD(120.52,IEN)) Q:IEN=""!(IEN'?1N.N) D
- . S VQUAL("localId")=IEN
- . S VQUAL("synonym")=$P(^GMRD(120.52,IEN,0),"^",2)
- . S I=0
- . K VQUAL("vtype") ;ejk - stop bleed over from previous extracts.
- . F S I=$O(^GMRD(120.52,IEN,1,I)) Q:I=""!(I'?1N.N) D
- .. S VQUAL("vtype",I,"vitalType")=$P($G(^GMRD(120.52,IEN,1,I,0)),"^",1)
- .. S VQUAL("vtype",I,"category")=$P($G(^GMRD(120.52,IEN,1,I,0)),"^",2)
- .. ;ejk DE294 - vital type and vital category need to be presented as urn entries and not the name
- .. ;I VQUAL("vtype",I,"vitalType")]"" S VQUAL("vtype",I,"vitalType")=$P($G(^GMRD(120.51,I,0)),"^",1)
- .. ;I VQUAL("vtype",I,"category")]"" S VQUAL("vtype",I,"category")=$P($G(^GMRD(120.53,I,0)),"^",1)
- .. I VQUAL("vtype",I,"vitalType")]"" S VQUAL("vtype",I,"vitalType")=$$SETUID^HMPUTILS("vital-type",,VQUAL("vtype",I,"vitalType"))
- .. I VQUAL("vtype",I,"category")]"" S VQUAL("vtype",I,"category")=$$SETUID^HMPUTILS("vital-category",,VQUAL("vtype",I,"category"))
- .. Q
- . S VQUAL("vuid")="urn:va:vuid:"_$P($G(^GMRD(120.52,IEN,"VUID")),"^",1)
- . S VQUAL("masterVuid")=$P($G(^GMRD(120.52,IEN,"VUID")),"^",2)
- . I VQUAL("masterVuid")]"" S VQUAL("masterVuid")=$S(VQUAL("masterVuid")=1:"YES",1:"NO")
- . S VQUAL("effectiveDate")=$P($G(^GMRD(120.52,IEN,"TERMSTATUS",1,0)),"^",1)
- . I VQUAL("effectiveDate")]"" S VQUAL("effectiveDate")=$$JSONDT^HMPUTILS(VQUAL("effectiveDate"))
- . S VQUAL("status")=$P($G(^GMRD(120.52,IEN,"TERMSTATUS",1,0)),"^",2)
- . I VQUAL("status")]"" S VQUAL("status")=$S(VQUAL("status")=1:"ACTIVE",1:"INACTIVE")
- . S VQUAL("uid")=$$SETUID^HMPUTILS("vital-qualifier",,VQUAL("localId"))
- . S VQUAL("qualifier")=$$SETUID^HMPUTILS("vital-qualifier",,VQUAL("localId"))
- . ;ejk DE295 do not include qualifier if it is the same value as the uid
- . I VQUAL("uid")=VQUAL("qualifier") K VQUAL("qualifier")
- . S HMPCNT=HMPCNT+1 D ADD^HMPEF("VQUAL") S HMPLAST=HMPCNT
- S HMPFINI=1
- K VQUAL
- Q
- ;
- VCAT ;VITALS CATAGORY
- N IEN,I
- S (HMPCNT,HMPI,HMPLAST,IEN)=0
- F S IEN=$O(^GMRD(120.53,IEN)) Q:IEN=""!(IEN'?1N.N) D
- . S VCAT("localId")=IEN
- . I $P($G(^GMRD(120.53,IEN,0)),"^",1)]"" S VCAT("category")=$P(^GMRD(120.53,IEN,0),"^",1)
- . I $P($G(^GMRD(120.53,IEN,0)),"^",2)]"" S VCAT("synonym")=$P(^GMRD(120.53,IEN,0),"^",2)
- . I $G(VCAT("synonym"))="" K VCAT("synonym")
- . S I=0
- . ;EJK - kill off vtype array to stop inheriting values from previous extracts
- . K VCAT("vtype")
- . F S I=$O(^GMRD(120.53,IEN,1,I)) Q:I=""!(I'?1N.N) D
- .. ;ejk DE298 do not send null values.
- .. I $P($G(^GMRD(120.53,IEN,1,I,0)),"^",1)]"" S VCAT("vtype",I,"vitalType")=$P($G(^GMRD(120.53,IEN,1,I,0)),"^",1)
- .. I VCAT("vtype",I,"vitalType")]"" S VCAT("vtype",I,"vitalType")=$$SETUID^HMPUTILS("vital-type",,VCAT("vtype",I,"vitalType"))
- .. I $P($G(^GMRD(120.53,IEN,1,I,0)),"^",3)]"" S VCAT("vtype",I,"maxEntries")=$P($G(^GMRD(120.53,IEN,1,I,0)),"^",3)
- .. I $P($G(^GMRD(120.53,IEN,1,I,0)),"^",5)]"" S VCAT("vtype",I,"printOrder")=$P($G(^GMRD(120.53,IEN,1,I,0)),"^",5)
- .. I $P($G(^GMRD(120.53,IEN,1,I,0)),"^",6)]"" S VCAT("vtype",I,"editOrder")=$P($G(^GMRD(120.53,IEN,1,I,0)),"^",6)
- .. I $P($G(^GMRD(120.53,IEN,1,I,0)),"^",7)]"" S VCAT("vtype",I,"defaultQualifier")=$P($G(^GMRD(120.53,IEN,1,I,0)),"^",7),VCAT("vtype",I,"defaultQualifier")=$$SETUID^HMPUTILS("vital-qualifier",,VCAT("vtype",I,"defaultQualifier"))
- .. Q
- . S VCAT("vuid")="urn:va:vuid:"_$P($G(^GMRD(120.53,IEN,"VUID")),"^",1)
- . S VCAT("masterVuid")=$P($G(^GMRD(120.53,IEN,"VUID")),"^",2)
- . I VCAT("masterVuid")]"" S VCAT("masterVuid")=$S(VCAT("masterVuid")=1:"YES",1:"NO")
- . S VCAT("effectiveDate")=$P($G(^GMRD(120.53,IEN,"TERMSTATUS",1,0)),"^",1)
- . I VCAT("effectiveDate")]"" S VCAT("effectiveDate")=$$JSONDT^HMPUTILS(VCAT("effectiveDate"))
- . S VCAT("status")=$P($G(^GMRD(120.53,IEN,"TERMSTATUS",1,0)),"^",2)
- . I VCAT("status")]"" S VCAT("status")=$S(VCAT("status")=1:"ACTIVE",1:"INACTIVE")
- . S VCAT("uid")=$$SETUID^HMPUTILS("vital-category",,VCAT("localId"))
- . S HMPCNT=HMPCNT+1 D ADD^HMPEF("VCAT") S HMPLAST=HMPCNT
- . Q
- S HMPFINI=1
- K VCAT
- Q
- ;
- INGSRCH(NAME,LIST) ;
- K ^TMP($J,"ORWDAL32")
- D NAME^PSN50P41(NAME,"ORWDAL32")
- I $D(^TMP($J,"ORWDAL32","P")) D
- . N I S I="" F S I=$O(^TMP($J,"ORWDAL32","P",I)) Q:I="" D
- .. N J S J=0 F S J=$O(^TMP($J,"ORWDAL32","P",I,J)) Q:'J S LIST(J)=J_U_I
- K ^TMP($J,"ORWDAL32")
- Q
- CLASRCH(NAME,LIST) ;
- K ^TMP($J,"ORWDAL32")
- D C^PSN50P65(,NAME,"ORWDAL32")
- I $D(^TMP($J,"ORWDAL32","C")) D
- . N I S I="" F S I=$O(^TMP($J,"ORWDAL32","C",I)) Q:I="" D
- .. N J S J=0 F S J=$O(^TMP($J,"ORWDAL32","C",I,J)) Q:'J S LIST(J)=J_U_$G(^TMP($J,"ORWDAL32",J,1))
- K ^TMP($J,"ORWDAL32")
- Q
- TRDNAME(NAME,LIST) ;
- K ^TMP($J,"ORWDAL32")
- D ALL^PSN5067(,NAME,,"ORWDAL32")
- I $D(^TMP($J,"ORWDAL32","B")) D
- . N I S I="" F S I=$O(^TMP($J,"ORWDAL32","B",I)) Q:I="" D
- .. N J,K S J=$O(^TMP($J,"ORWDAL32","B",I,0)) Q:'J S K=$$TGTOG^PSNAPIS(I),LIST(J)=K_U_$G(^TMP($J,"ORWDAL32",J,4))
- K ^TMP($J,"ORWDAL32")
- 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
- ;;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHMPCORD5 11465 printed Mar 13, 2025@20:57:40 Page 2
- HMPCORD5 ;SLC/AGP,ASMR/EJK,RRB - Retrieved Orderable Items;Sep 1, 2016 17:27:27
- +1 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**3**;Sep 01, 2011;Build 15
- +2 ;Per VA Directive 6402, this routine should not be modified.
- +3 ;
- +4 ; DE2497/RRB - Removed unused variable, HMP777
- +5 ;
- +6 ; DE6652 - JD - 9/1/16: Removed code behind synching sign-symptom domain for operational data.
- +7 ; SIGNS tag.
- +8 ;
- +9 QUIT
- +10 ;
- IMMTYPE ;
- +1 NEW ORWLST,ORDT,HMPIMM
- +2 SET (ORWLST,ORDT)=""
- +3 SET (HMPCNT,HMPLAST,HMPI)=0
- +4 NEW IMM
- +5 ;D IMMTYPE^ORWPCE2(.ORWLST,ORDT) ;use existing broker call ORWPCE GET IMMUNIZATION TYPE
- +6 NEW IEN,CNT,BINDEX
- SET (IEN,CNT)=0
- +7 if '$GET(ORDT)
- SET ORDT=DT
- +8 ; ^AUTTIMM - IMMUNIZATION file #9999999.14, ***DBIA2454 subscription needed***
- +9 FOR
- SET IEN=$ORDER(^AUTTIMM(IEN))
- if IEN=""!(IEN'?1N.N)
- QUIT
- Begin DoDot:1
- +10 IF $DATA(^AUTTIMM(IEN,0))#2
- IF +$PIECE(^(0),"^",7)=0
- SET CNT=CNT+1
- SET ORWLST(CNT)=IEN_"^"_$GET(^(0))
- +11 QUIT
- End DoDot:1
- +12 SET IMM=""
- SET HMPIMM=""
- +13 FOR
- SET IMM=$ORDER(ORWLST(IMM))
- if IMM=""
- QUIT
- Begin DoDot:1
- +14 ;get the ien for each item found
- SET HMPIMM("localId")=$PIECE(ORWLST(IMM),"^",1)
- +15 ;get the name for each item found
- SET HMPIMM("name")=$PIECE(ORWLST(IMM),"^",2)
- +16 ;get the mnemonic for each entry
- SET HMPIMM("mnemonic")=$PIECE(ORWLST(IMM),"^",3)
- +17 ;set the uid string
- SET HMPIMM("uid")=$$SETUID^HMPUTILS("immunization",,HMPIMM("localId"))
- +18 SET HMPCNT=HMPCNT+1
- +19 ;add it to the JSON results array
- DO ADD^HMPEF("HMPIMM")
- SET HMPLAST=HMPCNT
- +20 QUIT
- End DoDot:1
- +21 SET HMPFINI=1
- +22 QUIT
- +23 ;
- ALLTYPE ; deprecated
- +1 ;N ORX,ROOT,XP,CNT,ORFILE,ORSRC,ORIEN,ORREAX,ALLCNT,ALLLAST,ALLITEM
- +2 ;S ORIEN=0,CNT=0,ORSRC=0,ORFILE="",ALLCNT=0,ALLLAST=0
- +3 ;S X=""
- +4 ;F ROOT="^GMRD(120.82)","^PSNDF(50.6)","^PSNDF(50.67)","^PSDRUG(""B"")","^PS(50.416)","^PS(50.605)" D
- +5 ;F ROOT="^GMRD(120.82,""B"")","^GMRD(120.82,""D"")","^PSDRUG(""C"")","^PS(50.416,""P"")","^PS(50.605,""C"")",$$B^PSNAPIS,$$T^PSNAPIS,"^PSDRUG(""B"")" D
- +6 ;F ROOT="^GMRD(120.82,""B"")","^PSDRUG(""C"")","^PS(50.416,""P"")","^PS(50.605,""C"")",$$B^PSNAPIS,$$T^PSNAPIS,"^PSDRUG(""B"")" D
- +7 ;. S ORSRC=$G(ORSRC)+1,ORFILE=$P(ROOT,",",1)_")",ORSRC(ORSRC)=$P($T(FILENAME+ORSRC),";;",2)
- +8 ;. I (ORSRC'=2),(ORSRC'=6) S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORSRC_U_ORSRC(ORSRC)_U_U_U_"TOP"_U_"+"
- +9 ;. I ORSRC=1!(ORSRC=2) D
- +10 ;.. F S X=$O(@ROOT@(X)) Q:X="" D
- +11 ;... I ORSRC=1,X="OTHER ALLERGY/ADVERSE REACTION" Q ;don't send this entry
- +12 ;... S ORIEN=$O(@ROOT@(X,0))
- +13 ;... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(120.82,.01,ORIEN_",") Q ;233 Is term active?
- +14 ;... I ORSRC=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_X_">"_ROOT
- +15 ;... I ORSRC'=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_X_ROOT
- +16 ;... S Y(ORIEN_";"_ROOT)=Y(ORIEN_";"_ROOT)_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,2)_U_$S(ORSRC=2:1,1:ORSRC)
- +17 ;.. S XP=X F S XP=$O(@ROOT@(XP)) Q:XP="" Q:$E(XP,1,$L(X))'=X D
- +18 ;... I ORSRC=1,XP="OTHER ALLERGY/ADVERSE REACTION" Q ;don't send this entry
- +19 ;... S ORIEN=$O(@ROOT@(XP,0))
- +20 ;... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(120.82,.01,ORIEN_",") Q ;233 Is term active?
- +21 ;... I ORSRC=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,1)_" <"_XP_">"_ROOT ; partial matches
- +22 ;... I ORSRC'=2 S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_XP_ROOT
- +23 ;... S:'$D(Y(ORIEN_";"_ROOT)) Y(ORIEN_";"_ROOT)=Y(ORIEN_";"_ROOT)_U_$P($G(^GMRD(120.82,+ORIEN,0)),U,2)_U_$S(ORSRC=2:1,1:ORSRC)
- +24 ;.. I (ORSRC>2),(ORSRC'=4),(ORSRC'=5),(ORSRC'=6) D
- +25 ;.. N CODE,LIST,VAL,NAME
- +26 ;.. 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)
- +27 ;.. X CODE I $D(LIST) S ORIEN=0 F S ORIEN=$O(LIST(ORIEN)) Q:'ORIEN D
- +28 ;... S NAME=$P(LIST(ORIEN),U,2)
- +29 ;... Q:$E($P(LIST(ORIEN),U,2),1,$L(X))'=X
- +30 ;... 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
- +31 ;... S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=ORIEN_U_NAME_ROOT_U_"D"_U_ORSRC
- +32 ;.. I ORSRC=4 D
- +33 ;.. N CODE,LIST,VAL,NAME
- +34 ;.. S CODE="D TRDNAME(X,.LIST)"
- +35 ;.. X CODE I $D(LIST) S ORIEN=0 F S ORIEN=$O(LIST(ORIEN)) Q:'ORIEN D
- +36 ;... S NAME=$P(LIST(ORIEN),U,2)
- +37 ;... Q:$E($P(LIST(ORIEN),U,2),1,$L(X))'=X
- +38 ;... I $L($T(SCREEN^XTID)) I $$SCREEN^XTID(50.6,.01,+LIST(ORIEN)_",") Q
- +39 ;... S:'$D(Y(ORIEN_";"_ROOT)) CNT=CNT+1,Y(ORIEN_";"_ROOT)=+LIST(ORIEN)_U_NAME_ROOT_U_"D"_U_ORSRC
- +40 ;S CNT=""
- +41 ;F S CNT=$O(Y(CNT)) Q:CNT="" D
- +42 ;. K ALLERGY
- +43 ;. S ALLITEM=$G(Y(CNT))
- +44 ;. I Y(CNT)["^TOP^+" Q
- +45 ;. I Y(CNT)'["^TOP^+" D
- +46 ;.. S ALLERGY("localId")=$P(ALLITEM,"^",1)
- +47 ;.. S ALLERGY("name")=$P(ALLITEM,"^",2)
- +48 ;.. S ALLERGY("root")=$P(ALLITEM,"^",3)
- +49 ;.. S ALLERGY("uid")=$$SETUID^HMPUTILS("allergy-list",,ALLERGY("localId")_";"_$TR(ALLERGY("root"),"""","")) ;set the uid string
- +50 ;.. S HMPCNT=$G(HMPCNT)+1 D ADD^HMPEF("ALLERGY") S HMPLAST=HMPCNT
- +51 ;.. Q
- +52 ;. Q
- +53 ;S HMPFINI=1
- +54 ;K X,Y
- +55 QUIT
- +56 ;
- VTYPE ; ;VITALS TYPE
- +1 NEW IEN
- +2 SET (HMPCNT,HMPI,HMPLAST,IEN)=0
- +3 FOR
- SET IEN=$ORDER(^GMRD(120.51,IEN))
- if IEN=""!(IEN'?1N.N)
- QUIT
- Begin DoDot:1
- +4 SET VTYPE("localId")=IEN
- +5 SET VTYPE("name")=$PIECE(^GMRD(120.51,IEN,0),"^",1)
- +6 SET VTYPE("abbreviation")=$PIECE(^GMRD(120.51,IEN,0),"^",2)
- +7 SET VTYPE("rate")=$PIECE(^GMRD(120.51,IEN,0),"^",4)
- +8 IF VTYPE("rate")]""
- SET VTYPE("rate")=$SELECT(VTYPE("rate")=1:"YES",1:"NO")
- +9 SET VTYPE("pce")=$PIECE(^GMRD(120.51,IEN,0),"^",7)
- +10 SET VTYPE("vuid")="urn:va:vuid:"_$PIECE($GET(^GMRD(120.51,IEN,"VUID")),"^",1)
- +11 SET VTYPE("masterVuid")=$PIECE($GET(^GMRD(120.51,IEN,"VUID")),"^",2)
- +12 IF VTYPE("masterVuid")]""
- SET VTYPE("masterVuid")=$SELECT(VTYPE("masterVuid")=1:"YES",1:"NO")
- +13 SET VTYPE("effective")=$PIECE($GET(^GMRD(120.51,IEN,"TERMSTATUS",1,0)),"^",1)
- +14 IF VTYPE("effective")]""
- SET VTYPE("effective")=$$JSONDT^HMPUTILS(VTYPE("effective"))
- +15 SET VTYPE("status")=$PIECE($GET(^GMRD(120.51,IEN,"TERMSTATUS",1,0)),"^",2)
- +16 IF VTYPE("status")]""
- SET VTYPE("status")=$SELECT(VTYPE("status")=1:"ACTIVE",1:"INACTIVE")
- +17 SET VTYPE("uid")=$$SETUID^HMPUTILS("vital-type",,VTYPE("localId"))
- +18 SET HMPCNT=HMPCNT+1
- DO ADD^HMPEF("VTYPE")
- SET HMPLAST=HMPCNT
- End DoDot:1
- +19 SET HMPFINI=1
- +20 KILL VTYPE
- +21 QUIT
- +22 ;
- VQUAL ; VITALS QUALIFIER
- +1 NEW IEN,I
- +2 SET (HMPCNT,HMPI,HMPLAST,IEN)=0
- +3 FOR
- SET IEN=$ORDER(^GMRD(120.52,IEN))
- if IEN=""!(IEN'?1N.N)
- QUIT
- Begin DoDot:1
- +4 SET VQUAL("localId")=IEN
- +5 SET VQUAL("synonym")=$PIECE(^GMRD(120.52,IEN,0),"^",2)
- +6 SET I=0
- +7 ;ejk - stop bleed over from previous extracts.
- KILL VQUAL("vtype")
- +8 FOR
- SET I=$ORDER(^GMRD(120.52,IEN,1,I))
- if I=""!(I'?1N.N)
- QUIT
- Begin DoDot:2
- +9 SET VQUAL("vtype",I,"vitalType")=$PIECE($GET(^GMRD(120.52,IEN,1,I,0)),"^",1)
- +10 SET VQUAL("vtype",I,"category")=$PIECE($GET(^GMRD(120.52,IEN,1,I,0)),"^",2)
- +11 ;ejk DE294 - vital type and vital category need to be presented as urn entries and not the name
- +12 ;I VQUAL("vtype",I,"vitalType")]"" S VQUAL("vtype",I,"vitalType")=$P($G(^GMRD(120.51,I,0)),"^",1)
- +13 ;I VQUAL("vtype",I,"category")]"" S VQUAL("vtype",I,"category")=$P($G(^GMRD(120.53,I,0)),"^",1)
- +14 IF VQUAL("vtype",I,"vitalType")]""
- SET VQUAL("vtype",I,"vitalType")=$$SETUID^HMPUTILS("vital-type",,VQUAL("vtype",I,"vitalType"))
- +15 IF VQUAL("vtype",I,"category")]""
- SET VQUAL("vtype",I,"category")=$$SETUID^HMPUTILS("vital-category",,VQUAL("vtype",I,"category"))
- +16 QUIT
- End DoDot:2
- +17 SET VQUAL("vuid")="urn:va:vuid:"_$PIECE($GET(^GMRD(120.52,IEN,"VUID")),"^",1)
- +18 SET VQUAL("masterVuid")=$PIECE($GET(^GMRD(120.52,IEN,"VUID")),"^",2)
- +19 IF VQUAL("masterVuid")]""
- SET VQUAL("masterVuid")=$SELECT(VQUAL("masterVuid")=1:"YES",1:"NO")
- +20 SET VQUAL("effectiveDate")=$PIECE($GET(^GMRD(120.52,IEN,"TERMSTATUS",1,0)),"^",1)
- +21 IF VQUAL("effectiveDate")]""
- SET VQUAL("effectiveDate")=$$JSONDT^HMPUTILS(VQUAL("effectiveDate"))
- +22 SET VQUAL("status")=$PIECE($GET(^GMRD(120.52,IEN,"TERMSTATUS",1,0)),"^",2)
- +23 IF VQUAL("status")]""
- SET VQUAL("status")=$SELECT(VQUAL("status")=1:"ACTIVE",1:"INACTIVE")
- +24 SET VQUAL("uid")=$$SETUID^HMPUTILS("vital-qualifier",,VQUAL("localId"))
- +25 SET VQUAL("qualifier")=$$SETUID^HMPUTILS("vital-qualifier",,VQUAL("localId"))
- +26 ;ejk DE295 do not include qualifier if it is the same value as the uid
- +27 IF VQUAL("uid")=VQUAL("qualifier")
- KILL VQUAL("qualifier")
- +28 SET HMPCNT=HMPCNT+1
- DO ADD^HMPEF("VQUAL")
- SET HMPLAST=HMPCNT
- End DoDot:1
- +29 SET HMPFINI=1
- +30 KILL VQUAL
- +31 QUIT
- +32 ;
- VCAT ;VITALS CATAGORY
- +1 NEW IEN,I
- +2 SET (HMPCNT,HMPI,HMPLAST,IEN)=0
- +3 FOR
- SET IEN=$ORDER(^GMRD(120.53,IEN))
- if IEN=""!(IEN'?1N.N)
- QUIT
- Begin DoDot:1
- +4 SET VCAT("localId")=IEN
- +5 IF $PIECE($GET(^GMRD(120.53,IEN,0)),"^",1)]""
- SET VCAT("category")=$PIECE(^GMRD(120.53,IEN,0),"^",1)
- +6 IF $PIECE($GET(^GMRD(120.53,IEN,0)),"^",2)]""
- SET VCAT("synonym")=$PIECE(^GMRD(120.53,IEN,0),"^",2)
- +7 IF $GET(VCAT("synonym"))=""
- KILL VCAT("synonym")
- +8 SET I=0
- +9 ;EJK - kill off vtype array to stop inheriting values from previous extracts
- +10 KILL VCAT("vtype")
- +11 FOR
- SET I=$ORDER(^GMRD(120.53,IEN,1,I))
- if I=""!(I'?1N.N)
- QUIT
- Begin DoDot:2
- +12 ;ejk DE298 do not send null values.
- +13 IF $PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",1)]""
- SET VCAT("vtype",I,"vitalType")=$PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",1)
- +14 IF VCAT("vtype",I,"vitalType")]""
- SET VCAT("vtype",I,"vitalType")=$$SETUID^HMPUTILS("vital-type",,VCAT("vtype",I,"vitalType"))
- +15 IF $PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",3)]""
- SET VCAT("vtype",I,"maxEntries")=$PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",3)
- +16 IF $PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",5)]""
- SET VCAT("vtype",I,"printOrder")=$PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",5)
- +17 IF $PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",6)]""
- SET VCAT("vtype",I,"editOrder")=$PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",6)
- +18 IF $PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",7)]""
- SET VCAT("vtype",I,"defaultQualifier")=$PIECE($GET(^GMRD(120.53,IEN,1,I,0)),"^",7)
- SET VCAT("vtype",I,"defaultQualifier")=$$SETUID^HMPUTILS("vital-qualifier",,VCAT("vtype",I,"defaultQualifier"))
- +19 QUIT
- End DoDot:2
- +20 SET VCAT("vuid")="urn:va:vuid:"_$PIECE($GET(^GMRD(120.53,IEN,"VUID")),"^",1)
- +21 SET VCAT("masterVuid")=$PIECE($GET(^GMRD(120.53,IEN,"VUID")),"^",2)
- +22 IF VCAT("masterVuid")]""
- SET VCAT("masterVuid")=$SELECT(VCAT("masterVuid")=1:"YES",1:"NO")
- +23 SET VCAT("effectiveDate")=$PIECE($GET(^GMRD(120.53,IEN,"TERMSTATUS",1,0)),"^",1)
- +24 IF VCAT("effectiveDate")]""
- SET VCAT("effectiveDate")=$$JSONDT^HMPUTILS(VCAT("effectiveDate"))
- +25 SET VCAT("status")=$PIECE($GET(^GMRD(120.53,IEN,"TERMSTATUS",1,0)),"^",2)
- +26 IF VCAT("status")]""
- SET VCAT("status")=$SELECT(VCAT("status")=1:"ACTIVE",1:"INACTIVE")
- +27 SET VCAT("uid")=$$SETUID^HMPUTILS("vital-category",,VCAT("localId"))
- +28 SET HMPCNT=HMPCNT+1
- DO ADD^HMPEF("VCAT")
- SET HMPLAST=HMPCNT
- +29 QUIT
- End DoDot:1
- +30 SET HMPFINI=1
- +31 KILL VCAT
- +32 QUIT
- +33 ;
- INGSRCH(NAME,LIST) ;
- +1 KILL ^TMP($JOB,"ORWDAL32")
- +2 DO NAME^PSN50P41(NAME,"ORWDAL32")
- +3 IF $DATA(^TMP($JOB,"ORWDAL32","P"))
- Begin DoDot:1
- +4 NEW I
- SET I=""
- FOR
- SET I=$ORDER(^TMP($JOB,"ORWDAL32","P",I))
- if I=""
- QUIT
- Begin DoDot:2
- +5 NEW J
- SET J=0
- FOR
- SET J=$ORDER(^TMP($JOB,"ORWDAL32","P",I,J))
- if 'J
- QUIT
- SET LIST(J)=J_U_I
- End DoDot:2
- End DoDot:1
- +6 KILL ^TMP($JOB,"ORWDAL32")
- +7 QUIT
- CLASRCH(NAME,LIST) ;
- +1 KILL ^TMP($JOB,"ORWDAL32")
- +2 DO C^PSN50P65(,NAME,"ORWDAL32")
- +3 IF $DATA(^TMP($JOB,"ORWDAL32","C"))
- Begin DoDot:1
- +4 NEW I
- SET I=""
- FOR
- SET I=$ORDER(^TMP($JOB,"ORWDAL32","C",I))
- if I=""
- QUIT
- Begin DoDot:2
- +5 NEW J
- SET J=0
- FOR
- SET J=$ORDER(^TMP($JOB,"ORWDAL32","C",I,J))
- if 'J
- QUIT
- SET LIST(J)=J_U_$GET(^TMP($JOB,"ORWDAL32",J,1))
- End DoDot:2
- End DoDot:1
- +6 KILL ^TMP($JOB,"ORWDAL32")
- +7 QUIT
- TRDNAME(NAME,LIST) ;
- +1 KILL ^TMP($JOB,"ORWDAL32")
- +2 DO ALL^PSN5067(,NAME,,"ORWDAL32")
- +3 IF $DATA(^TMP($JOB,"ORWDAL32","B"))
- Begin DoDot:1
- +4 NEW I
- SET I=""
- FOR
- SET I=$ORDER(^TMP($JOB,"ORWDAL32","B",I))
- if I=""
- QUIT
- Begin DoDot:2
- +5 NEW J,K
- SET J=$ORDER(^TMP($JOB,"ORWDAL32","B",I,0))
- if 'J
- QUIT
- SET K=$$TGTOG^PSNAPIS(I)
- SET LIST(J)=K_U_$GET(^TMP($JOB,"ORWDAL32",J,4))
- End DoDot:2
- End DoDot:1
- +6 KILL ^TMP($JOB,"ORWDAL32")
- +7 QUIT
- FILENAME ; Display text of filenames for search treeview
- +1 ;;VA Allergies File
- +2 ;;VA Allergies File (Synonyms) SPACER ONLY - NOT DISPLAYED
- +3 ;;National Drug File - Generic Drug Name
- +4 ;;National Drug file - Trade Name
- +5 ;;Local Drug File
- +6 ;;Local Drug File (Synonyms) SPACER ONLY - NOT DISPLAYED
- +7 ;;Drug Ingredients File
- +8 ;;VA Drug Class File
- +9 ;;