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

GMTSPXIM.m

Go to the documentation of this file.
GMTSPXIM ;SLC/SBW,KER - PCE Immunization component ;Sep 08, 2023@13:21
 ;;2.7;Health Summary;**8,10,28,56,89,114,115,144**;Oct 20, 1995;Build 17
 ;
 ; Reference to IMMUN^PXRHS03 and CONREF^PXRHS03 in ICR #1239
 ;
IMMUNCDT ;Main entry point for chron (SIMC)
 S GMTSSORT="C" D IMMUN
 Q
 ;
IMMUNRDT ;Main entry point for reverse chron (SIMR)
 S GMTSSORT="R" D IMMUN
 Q
 ;
IMMUND ;Main entry point for detailed display (DIM)
 N GMTSF
 S GMTSF=""  ; set flag to display detailed
IMMUN ; Main Entry Point for simple format (IM,SIM)
 N GMSX1,GMSX2,GMIFN,GMW,GMSITE,GMN0,GMN1,GMSIR,GMSIC,X,GMTSDAT,CNT
 N GMTSX,GMCKP,GMTAB,COMMENT,GMTSLN,GMICL,GMIX,GMTSNPG
 N GMTSEDAT,GMFOOTC,GMFOOTR,GMTSTYPE,GMTSCOUNT,GMTSBLANK,GMTSFIRST
 I '$D(GMTSSORT) S GMTSSORT="A"
 K ^TMP("PXI",$J),^TMP("PXCRI",$J)
 D IMMUN^PXRHS03(DFN,GMTSSORT)
 D CONREF^PXRHS03(DFN,GMTSSORT)
 I '$D(^TMP("PXI",$J)),'$D(^TMP("PXCRI",$J)) Q
 S GMTSTYPE="ADMINISTERED"
 D SECTHDR
 I $D(^TMP("PXI",$J)) D
 . I '$D(GMTSF) D HDR Q:$D(GMTSQIT)
 . S (GMTSCOUNT,GMTSFIRST)=1
 . S GMSX1="" F  S GMSX1=$O(^TMP("PXI",$J,GMSX1)) Q:GMSX1=""  D  Q:$D(GMTSQIT)
 . . S GMSX2=""
 . . I GMTSFIRST S GMTSFIRST=0,GMTSBLANK=0
 . . E  S GMTSBLANK=1
 . . F  S GMSX2=$O(^TMP("PXI",$J,GMSX1,GMSX2)) Q:GMSX2=""  D  Q:$D(GMTSQIT)
 . . . S GMIFN=0
 . . . F  S GMIFN=$O(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN)) Q:GMIFN'>0  D @($S($D(GMTSF):"IMMDET",1:"IMMDSP")) Q:$D(GMTSQIT)
 . . . S GMTSBLANK=0
 I '$D(^TMP("PXI",$J)) D
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !,"  No data available"
 D CKP^GMTSUP Q:$D(GMTSQIT)
 I 'GMTSNPG W !
 D CKP^GMTSUP Q:$D(GMTSQIT)
 I 'GMTSNPG W !
 D CONREF("C","CONTRAINDICATED")
 D CONREF("R","REFUSED")
 I '$D(GMTSF),$D(GMNOTE) D CKP^GMTSUP Q:$D(GMTSQIT)  D FOOT(.GMNOTE)
 K ^TMP("PXI",$J),^TMP("PXCRI",$J),GMTSSORT
 Q
 ;
IMMDSP ; Display Immunization data
 N GMTSNPG
 S (GMFOOTR,GMFOOTC)=""
 S CNT=0,COMMENT="",GMN0=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,0)) Q:GMN0']""
 S GMN1=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,1))
 S GMSITE=$$GETSITE(GMN1)
 S X=$P(GMN0,U,3) D REGDT4^GMTSU S GMTSDAT=X
 S GMSIR=$S($P(GMN0,U,6)="NONE":"",1:$P(GMN0,U,6)),GMSIC=$S(+$P(GMN0,U,7):"DO NOT REPEAT",1:"")
 I GMSIC]"",GMSIR]"" S GMSIR=$$TRUNCATE(GMSIR,20)_"; "
 I GMSIC]""!(GMSIR]"") S GMFOOTR="<**>",GMNOTE("R")=""
 S GMSIR=GMSIR_GMSIC
 I GMTSBLANK D
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .I GMTSNPG D SECTHDR,HDR Q
 .W !
 ; Comments
 S COMMENT=$P(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"COM"),U)
 I COMMENT]"" S GMNOTE("C")="",GMFOOTC="<C>"
 D CKP^GMTSUP Q:$D(GMTSQIT)  D:GMTSNPG SECTHDR,HDR
 W !,$$TRUNCATE($P(GMN0,U,1),33)
 W ?35,$P(GMN0,U,4),?42,GMTSDAT,?53,$$TRUNCATE(GMSITE,10),?65,GMFOOTR,?74,GMFOOTC
 ; Footer
 I GMFOOTR]"" D
 . S GMIX=$S('$D(GMIX):1,1:GMIX+1)
 . S GMNOTE("R",GMIX)=$P(GMN0,U,1)_U_GMTSDAT_U_GMSIR
 Q
CONREF(GMTSSUB,GMTSTYPE) ; Process contraindications/refusals
 N GMTSSUB1,GMTSSUB2,GMTSIFN,GMTSNPG
 D SECTHDR
 I $D(^TMP("PXCRI",$J,GMTSSUB)) D
 .S (GMTSCOUNT,GMTSFIRST)=1
 .I '$D(GMTSF) D HDR Q:$D(GMTSQIT)
 .S GMTSSUB1="" F  S GMTSSUB1=$O(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1)) Q:GMTSSUB1=""!($D(GMTSQIT))  D
 ..I GMTSFIRST S GMTSFIRST=0,GMTSBLANK=0
 ..E  S GMTSBLANK=1
 ..S GMTSSUB2=0 F  S GMTSSUB2=$O(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2)) Q:GMTSSUB2=""!($D(GMTSQIT))  D
 ...S GMTSIFN=0 F  S GMTSIFN=$O(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN)) Q:'+GMTSIFN!($D(GMTSQIT))  D
 ....D @($S($D(GMTSF):"CRDET("""_GMTSSUB_""")",1:"CRDSP("""_GMTSSUB_""")"))
 ....S GMTSBLANK=0
 I '$D(^TMP("PXCRI",$J,GMTSSUB)) D
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !,"  No data available"
 D CKP^GMTSUP Q:$D(GMTSQIT)!(GMTSNPG)
 W !
 D CKP^GMTSUP Q:$D(GMTSQIT)!(GMTSNPG)
 W !
 Q
CRDSP(GMTSSUB) ; Display Contraindicated/Refusal data
 N X,GMTSCOM,GMTSN1,GMTSNPG
 I GMTSBLANK D
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .I GMTSNPG D SECTHDR,HDR Q
 .W !
 D CKP^GMTSUP Q:$D(GMTSQIT)  D:GMTSNPG SECTHDR,HDR
 W !,$$TRUNCATE($P($G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,0)),U,1),33)
 S X=$P($G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,0)),U,2) D REGDT4^GMTSU S GMTSDAT=X
 W ?35,X
 S GMTSN1=$G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,1))
 W ?46,$$TRUNCATE($$GETSITE(GMTSN1),10)
 S GMTSCOM=$P(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"COM"),U)
 I GMTSCOM'="" W ?58,"<C>" S GMNOTE("C")=""
 E  W ?58,"<I>" S GMNOTE("I")=""
 Q
SECTHDR ; Section Header
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,GMTSTYPE
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,$$REPEAT^XLFSTR("=",$L(GMTSTYPE))
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !
 I GMTSTYPE'[" (CONT.)" S GMTSTYPE=GMTSTYPE_" (CONT.)"
 Q
HDR ; Sub-header
 D CKP^GMTSUP Q:$D(GMTSQIT) 
 I GMTSTYPE["ADMINISTERED" D
 .W !,"Immunization",?35,"Series",?42,"Date",?53,"Facility",?65,"Reaction",?74,"Info"
 I GMTSTYPE["CONTRAINDICATED"!(GMTSTYPE["REFUSED") D
 .W !,"Immunization",?35,"Date",?46,"Facility",?58,"Info"
 Q
 ;
 N GMF,GMIX
 I $D(GMNOTE("R")) D  Q:$D(GMTSQIT)
 . S GMIX="" F  S GMIX=$O(GMNOTE("R",GMIX)) Q:GMIX=""!($D(GMTSQIT))  D
 . . D CKP^GMTSUP Q:$D(GMTSQIT)
 . . W !,"<**> ",$$TRUNCATE($P(GMNOTE("R",GMIX),U),23),?30,$P(GMNOTE("R",GMIX),U,2),?42,$P(GMNOTE("R",GMIX),U,3)
 I $D(GMNOTE("C")) D  Q:$D(GMTSQIT)
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,"<C>  See the Detailed Immunizations Health Summary Component[DIM] for Comments"
 I $D(GMNOTE("I")) D
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,"<I>  See the Detailed Immunizations Health Summary Component[DIM] for Additional Information"
 I $D(GMNOTE("*")) D
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !," *   Value is truncated; see the Detailed Immunizations Health Summary Component[DIM] for"
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,"     complete text"
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !
 K GMNOTE
 Q
 ;
IMMDET  ;Main entry point for Detailed format (DIM)
 N GMNVIS,PXVI,PXV,GMN2,GMN3,GMN4,GMN0,GMN1,FULLNAME,GMSIR,GMSIC,GMTSRDAT
 N GMTSRRDAT,GMTSPART,RCOMMENT,GMTSRESULT,GMTSREADER,GMTSVIS
 S GMN0=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,0)) Q:GMN0']""
 S GMN1=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,1))
 S GMN2=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,2))
 S GMN3=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,3))
 S GMN4=$G(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,4))
 S GMSIR=$P(GMN0,U,6),GMSIC=$S(+$P(GMN0,U,7):"DO NOT REPEAT",1:"")
 S PXVI="" F  S PXVI=$O(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"VIS",PXVI)) Q:PXVI'>0  D
 . S GMNVIS(PXVI)=^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"VIS",PXVI)
 S GMSITE=$$GETSITE(GMN1)
 S X=$P(GMN0,U,3) D REGDT4^GMTSU S GMTSDAT=X
 S X=$P($G(GMN3),U,3) D REGDT4^GMTSU S GMTSEDAT=X
 S X=$P($G(GMN4),U,3) D REGDT4^GMTSU S GMTSRDAT=X
 S X=$P($G(GMN4),U,5) D REGDT4^GMTSU S GMTSRRDAT=X
 I GMTSCOUNT>1 D  Q:$D(GMTSQIT)
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !
 D FORMAT^GMTSU($P(GMN0,U),"IMMUNIZATION",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 S GMTSPART=0 F  S GMTSPART=$O(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"FN",GMTSPART)) Q:'+GMTSPART!($D(GMTSQIT))  D
 .D FORMAT^GMTSU(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"FN",GMTSPART),$S(GMTSPART=1:"FULL NAME",1:""),2)
 D LINE^GMTSU(2) Q:$D(GMTSQIT)
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"DOSAGE: "_$S($P(GMN2,U,3)="":"",1:$P(GMN2,U,3)),?40,"SERIES: "_$P(GMN0,U,4)
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"DATE ADMINISTERED: "_GMTSDAT
 D FORMAT^GMTSU($P($G(GMN3),U,2),"MANUFACTURER",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"LOT #: "_$P($G(GMN3),U,1),?40,"EXP DATE: "_GMTSEDAT
 D FORMAT^GMTSU($P(GMN2,U,1)_" "_$P(GMN2,U,2),"ADMIN ROUTE/SITE",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"REACTION/CONTRAINDICATED: "_GMSIR_$S(GMSIC]"":"; "_GMSIC,1:"")
 D FORMAT^GMTSU(GMSITE,"LOCATION",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 S RCOMMENT=$P(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"RCOM"),U)
 ;If any of the reading fields are populated, display all of them
 I $$TRIM^XLFSTR($TR(GMN4,"^"," "))'=""!(RCOMMENT'="") D  Q:$D(GMTSQIT)
 . S GMTSRESULT=$P(GMN4,U,1)
 . I $L(GMTSRESULT)>27 D  Q:$D(GMTSQIT)
 . . D FORMAT^GMTSU(GMTSRESULT,"RESULTS",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 . . D FORMAT^GMTSU($P(GMN4,U,2),"READING",2),LINE^GMTSU(2)
 . I $L(GMTSRESULT)<=27 D
 . . D CKP^GMTSUP Q:$D(GMTSQIT)
 . . W !,?2,"RESULTS: "_GMTSRESULT,?40,"READING: "_$P(GMN4,U,2)
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,?2,"DATE READ: "_GMTSRDAT
 . S GMTSREADER=$P(GMN4,U,4)
 . I $L(GMTSREADER)>32 D  Q:$D(GMTSQIT)
 . . D FORMAT^GMTSU(GMTSREADER,"READER",2),LINE^GMTSU(2)
 . I $L(GMTSREADER)<=32 W ?40,"READER: "_GMTSREADER
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,?2,"READING RECORDED: "_GMTSRRDAT,?40,"HOURS READ POST-INOCULATION: "_$P(GMN4,U,6)
 . I RCOMMENT="" D  Q
 . . D CKP^GMTSUP Q:$D(GMTSQIT)
 . . W !,?2,"READING COMMENT:"
 . D FORMAT^GMTSU(RCOMMENT,"READING COMMENT",2),LINE^GMTSU(2)
 I $D(GMNVIS) D  Q:$D(GMTSQIT)
 . F PXV=0:0 S PXV=$O(GMNVIS(PXV)) Q:PXV=""!($D(GMTSQIT))  D
 . . S GMTSVIS=$P(GMNVIS(PXV),U)
 . . S X=$P(GMNVIS(PXV),U,2) D REGDT4^GMTSU
 . . I $L(GMTSVIS)>30 D
 . . . D FORMAT^GMTSU($P(GMNVIS(PXV),U),"VIS",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 . . . D FORMAT^GMTSU(X,"  EDITION DATE",2),LINE^GMTSU(2)
 . . I $L(GMTSVIS)<=30 D
 . . . D CKP^GMTSUP Q:$D(GMTSQIT)
 . . . W !,?2,"VIS: ",GMTSVIS,?40,"EDITION DATE: "_X
 E  D CKP^GMTSUP Q:$D(GMTSQIT)  W !,?2,"VIS: ",?40,"EDITION DATE:"
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"ADMINISTERED BY: "_$P(GMN0,U,9)
 I $P(GMN0,U,8)'=""!($P(GMN0,U,10)) D
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . I $P(GMN0,U,10) D  Q
 . . W !,?2,"ORDERED BY: POLICY"
 . W !,?2,"ORDERED BY: "_$P(GMN0,U,8)
 I $P(GMN2,U,4)'="",$P(GMN2,U,4)'=$P(GMN0,U,9) D
 . D CKP^GMTSUP Q:$D(GMTSQIT)
 . W !,?2,"DOCUMENTED BY: "_$P(GMN2,U,4)
 S COMMENT=$P(^TMP("PXI",$J,GMSX1,GMSX2,GMIFN,"COM"),U)
 I COMMENT="" D CKP^GMTSUP Q:$D(GMTSQIT)  W !,?2,"COMMENTS:"
 I COMMENT'="" D FORMAT^GMTSU(COMMENT,"COMMENTS",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 S GMTSCOUNT=GMTSCOUNT+1
 Q
CRDET(GMTSSUB) ; Display Contraindicated/Refusal data in detailed format
 N GMTSN0,GMTSN1,GMTSPART,GMTSDATE,GMTSCOMMENT,GMTSGNAME,GMTSGROUP,GMTSIMIEN
 N GMTSINDENT
 S GMTSN0=$G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,0)) Q:GMTSN0=""
 S GMTSN1=$G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,1))
 I GMTSCOUNT>1 D  Q:$D(GMTSQIT)
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !
 D FORMAT^GMTSU($P(GMTSN0,U,1),"IMMUNIZATION",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 S GMTSPART=0 F  S GMTSPART=$O(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"FN",GMTSPART)) Q:'+GMTSPART!($D(GMTSQIT))  D
 .D FORMAT^GMTSU(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"FN",GMTSPART),$S(GMTSPART=1:"FULL NAME",1:""),2)
 D LINE^GMTSU(2) Q:$D(GMTSQIT)
 S X=$P(GMTSN0,U,2) D REGDT4^GMTSU S GMTSDATE=X
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"DATE "_$S(GMTSSUB="C":"CONTRAINDICATED",1:"REFUSED")_": "_GMTSDATE
 D FORMAT^GMTSU($$GETSITE(GMTSN1),"LOCATION",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 D CKP^GMTSUP Q:$D(GMTSQIT)
 W !,?2,"REASON: "_$P(GMTSN0,U,4)
 I GMTSSUB="C" D
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !,?4,"TYPE: "_$P(GMTSN0,U,8)
 .S GMTSPART=1
 .S GMTSIMIEN=0 F  S GMTSIMIEN=$O(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"LIMITED",GMTSIMIEN)) Q:'+GMTSIMIEN!($D(GMTSQIT))  D
 ..I GMTSPART=1 D  Q:$D(GMTSQIT)
 ...D CKP^GMTSUP Q:$D(GMTSQIT)
 ...W !,?4,"APPLIES TO IMMUNIZATION(S):"
 ...S GMTSPART=0
 ..S GMTSINDENT=4
 ..D FORMAT^GMTSU($G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"LIMITED",GMTSIMIEN)),"",1),LINE^GMTSU(2)
 I GMTSSUB="R" D  Q:$D(GMTSQIT)
 .D CKP^GMTSUP Q:$D(GMTSQIT)
 .W !,?2,"REFUSED VACCINE GROUP: "_$P(GMTSN0,U,6)
 .M GMTSGROUP=^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"RGROUP")
 .I '$D(GMTSGROUP) Q
 .S GMTSPART=1
 .S GMTSGNAME="" F  S GMTSGNAME=$O(GMTSGROUP(GMTSGNAME)) Q:GMTSGNAME=""!($D(GMTSQIT))  D
 ..I GMTSPART=1 S GMTSPART="  VACCINE GROUP(S)"
 ..E  S GMTSINDENT=20,GMTSPART=""
 ..D FORMAT^GMTSU(GMTSGNAME,GMTSPART,2),LINE^GMTSU(2)
 S GMTSCOMMENT=$P($G(^TMP("PXCRI",$J,GMTSSUB,GMTSSUB1,GMTSSUB2,GMTSIFN,"COM")),U,1)
 I GMTSCOMMENT="" D CKP^GMTSUP Q:$D(GMTSQIT)  W !,?2,"COMMENTS:"
 I GMTSCOMMENT'="" D FORMAT^GMTSU(GMTSCOMMENT,"COMMENTS",2),LINE^GMTSU(2) Q:$D(GMTSQIT)
 S GMTSCOUNT=GMTSCOUNT+1
 Q
TRUNCATE(GMTSTEXT,GMTSLEN) ; Truncate the given text to the specified length
 N GMTSNEW
 S GMTSNEW=GMTSTEXT
 I $L(GMTSTEXT)>+GMTSLEN D
 .S GMTSNEW=$E(GMTSTEXT,1,(GMTSLEN-1))
 .I $E(GMTSNEW,"*")=" " S GMTSNEW=$E(GMTSNEW,1,$L(GMTSNEW)-1)
 .S GMTSNEW=GMTSNEW_"*"
 I '$D(GMTSF),GMTSNEW["*" S GMNOTE("*")=""
 Q GMTSNEW
GETSITE(GMTSNODE) ; Return site name for display
 Q $S($P(GMTSNODE,U,3)]"":$P(GMTSNODE,U,3),$P(GMTSNODE,U,4)]"":$P(GMTSNODE,U,4),1:"No Site")