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

AMQQMULT.m

Go to the documentation of this file.
  1. AMQQMULT ;IHS/CMI/THL - COLLECTS MULTIPLE VALUES ;
  1. ;;2.0;IHS PCC SUITE;**2,4**;MAY 14, 2009
  1. ;-----
  1. VAR F I=1:1:19 D
  1. .S X=$P("GR;ID;ST;FIN;LAST;VAL1;VAL2;UATN;MLT;T;NVAR;FVAR;ITR;NNA;STRT;MSS;MPC;MULZ;USQN",";",I)
  1. .S @("AMQQ"_X)=$P(AMQQX,";",I)
  1. I '$D(AMQQAG) S AMQQAG="AG"
  1. I '$D(AMQQSQVN) S AMQQ=U_AMQQGR_"(""AA"",AMQP(0))"
  1. E S AMQQ=U_AMQQGR_"(""AD"","_AMQQSQVN_")",%=+^AUPNVSIT(AMQQSQVN,0) G:'% EXIT S AMQQVDAT=(9999999-%)\1
  1. S AMQQSPEC=""
  1. I AMQQVAL1["~~" S AMQQSPEC=AMQQVAL2,AMQQVAL2=$P(AMQQVAL1,"~~",2),AMQQVAL1=$P(AMQQVAL1,"~~")
  1. I AMQQVAL2="ANY"!((AMQQVAL1=-999999999)&(AMQQVAL2=999999999)) S AMQQAAFL=""
  1. S AMQQMSS=+AMQQMSS
  1. S AMQQMPC=$S(AMQQMPC:AMQQMPC,1:4)
  1. S AMQQHOLD=0
  1. S AMQT(AMQQT)=0
  1. S AMQQIDN=0
  1. S AMQQLCNT=0
  1. K ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)
  1. I $E(AMQQST)?1P,'$D(AMQQSQVN) D REL^AMQQMULS
  1. I AMQQMULZ S AMQQMUNV=AMQQNVAR,AMQQMUFV=AMQQFVAR,AMQQMULL=AMQQMULZ
  1. I $D(AMQQB) S %=AMQQB,AMQQBOOL=$P(%,";"),AMQQVAL3=$P(%,";",2),AMQQVAL4=$P(%,";",3)
  1. I $D(AMQQSQVN),AMQQID[":" G:$D(@AMQQ) RUN S AMQT(AMQQT)=0 G NULL
  1. I '$D(AMQQSQVN),AMQQID'[":",'$D(@AMQQ@(AMQQID\1)),AMQQ["VLAB" S AMQT(AMQQT)=0 G NULL
  1. I $G(AMQQSPEC)="EXISTS",AMQQSTRT=2,'AMQQST,'AMQQUSQN,AMQQFIN=9999999,AMQQLAST=9999999 S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)="+",AMQP(AMQQFVAR)="+",AMQT(AMQQT)=1 G EXIT
  1. RUN D ID
  1. SQ I $D(AMQV("SQ")) D ^AMQQMULS
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)),AMQQSPEC="NULL" K ^(AMQQUATN) G EXIT
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)) S AMQP(AMQQFVAR)=$P(^(1),U)
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)) G TRUE
  1. NULL I AMQQSPEC'="NULL",AMQQSPEC'="ANY",$G(AMQQVAL2)'="ANY"
  1. E S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)="-",AMQP(AMQQFVAR)="-",AMQT(AMQQT)=1
  1. G EXIT
  1. TRUE I AMQQSPEC="EXISTS" K ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN) S ^(AMQQUATN,1)="+",AMQP(AMQQFVAR)="+"
  1. S AMQT(AMQQT)=1
  1. EXIT I AMQQAG="SAG" K ^UTILITY("AMQQ",$J,"SAG",AMQQUATN)
  1. D EXIT3^AMQQKILL
  1. Q
  1. ;
  1. ID I AMQQID'[":" S AMQQIDX=AMQQID D INC Q
  1. F S AMQQIDN=AMQQIDN+1,AMQQIDX=$P(AMQQID,":",AMQQIDN) Q:AMQQIDX="" D INC I AMQQLCNT=-1 Q
  1. Q
  1. ;
  1. INC I AMQQGR="AUPNVLAB",AMQQIDX["." S AMQQLSS=+$P(AMQQIDX,".",2,99),AMQQIDX=AMQQIDX\1
  1. I $D(AMQQSQVN) S AMQQVNO=0 D VINC Q
  1. I '$D(@AMQQ@(AMQQIDX)) Q
  1. S AMQQVDAT=9999999-AMQQFIN
  1. INCDATE S AMQQVDAT=$O(@AMQQ@(AMQQIDX,AMQQVDAT))
  1. I AMQQVDAT'=+AMQQVDAT Q
  1. I (9999999-AMQQVDAT)<AMQQST Q
  1. S AMQQVNO=0
  1. INCITEM S AMQQVNO=$O(@AMQQ@(AMQQIDX,AMQQVDAT,AMQQVNO))
  1. I 'AMQQVNO G INCDATE
  1. ;IHS/CMI/LAB - EXCLUDE MEASUREMENTS ENTERED IN ERROR
  1. ;S %=U_AMQQGR_"("_AMQQVNO_","_AMQQMSS_")" G:'$D(@%) INCITEM G:'$D(^(0)) INCITEM I AMQQGR="AUPNVLAB" D LABSITE I $G(AMQQLSS1)="UNSPECIFIED SOURCE" G INCITEM
  1. S %=U_AMQQGR_"("_AMQQVNO_","_AMQQMSS_")"
  1. I AMQQGR="AUPNVMSR" G:$P($G(^AUPNVMSR(+AMQQVNO,2)),U,1) INCITEM ;if entered in error skip it
  1. G:'$D(@%) INCITEM G:'$D(^(0)) INCITEM I AMQQGR="AUPNVLAB" D LABSITE I $G(AMQQLSS1)="UNSPECIFIED SOURCE" G INCITEM
  1. S AMQQVALU=$P(@%,U,AMQQMPC)
  1. S AMQQVSIT=$P(^(0),U,3)
  1. S AMQQXXXX=AMQQMPC_U_%_U_@%
  1. I AMQQGR="AUPNVXAM"!(AMQQGR="AUPNVNTS"),AMQQVXAM'="ALL",AMQQVXAM'=AMQQVALU Q ;PATCH XXX
  1. D SET
  1. CNT I AMQQLCNT=AMQQLAST D LASTEVAL I $D(AMQQQUIT) K AMQQQUIT Q
  1. I AMQQSPEC="EXISTS"!(AMQQSPEC="NULL"),AMQQLCNT,'$D(AMQV("SQ")) S AMQQLCNT=-1 Q
  1. G INCITEM
  1. ;
  1. SET I AMQQVAL1="A",AMQQGR="AUPNVIMM",AMQQVALU="" S AMQQVALU=$P($G(^AUTTIMM(AMQQIDX,0)),U,2)_" +" G S1
  1. I AMQQVALU="",$D(AMQQAAFL) S AMQQVALU=" " D S1 Q
  1. I "<>"[$E(AMQQVALU) S AMQQGTLT=$E(AMQQVALU),AMQQVALU=$E(AMQQVALU,2,99)
  1. I AMQQITR'="" S X=AMQQVALU X AMQQITR S AMQQVALU=X
  1. I $D(AMQQNNA),AMQQNNA>1 X "I 0" D ^AMQQMULN D:$T S1 Q
  1. I $D(AMQQB) X "I 0" D BP^AMQQMULN D:$T S1 Q
  1. I AMQQVAL2'=+AMQQVAL2 D TEXT^AMQQFAN D:$T S1 Q
  1. S AMQQVALU=$S(AMQQVALU="":" ",1:+AMQQVALU)
  1. I AMQQVAL1>AMQQVAL2,AMQQVALU<AMQQVAL2!(AMQQVALU>AMQQVAL1) D S1 Q
  1. I AMQQVALU=AMQQVAL1,AMQQVALU=AMQQVAL2 D S1 Q
  1. I AMQQVALU>AMQQVAL1,AMQQVALU<AMQQVAL2 D S1
  1. Q
  1. ;
  1. S1 S AMQQLCNT=AMQQLCNT+1
  1. S AMQQHOLD=AMQQHOLD+1
  1. S %=""
  1. I AMQQGR="AUPNVLAB" S %=$P($G(^AUPNVLAB(AMQQVNO,0)),U,5) I $G(AMQQLSS)=44 S %="" ;_" "_AMQQLSS1
  1. I AMQQGR="AUPNVDXP" S %=$P($G(^AUPNVDXP(AMQQVNO,0)),U,5)
  1. I AMQQVALU'=" ",%]"" S AMQQVALU=AMQQVALU_" "_% S AMQQLDFN=AMQQIDX
  1. I $D(AMQQGTLT) S AMQQVALU=AMQQGTLT_AMQQVALU K AMQQGTLT
  1. S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,AMQQHOLD)=AMQQVALU_U_(9999999-AMQQVDAT)_U_AMQQVSIT_U_AMQQVNO
  1. Q
  1. ;
  1. VINC S AMQQVNO=$O(@AMQQ@(AMQQVNO))
  1. I 'AMQQVNO Q
  1. S %=U_AMQQGR_"("_AMQQVNO_","_AMQQMSS_")"
  1. I $D(@%),$D(^(0)),$P(^(0),U)=AMQQIDX S AMQQVALU=$P(^(AMQQMSS),U,AMQQMPC),AMQQVSIT=$P(^(0),U,3) D SET I 1
  1. E G VINC
  1. I AMQQLCNT=AMQQLAST Q
  1. I AMQQSPEC="EXISTS"!(AMQQSPEC="NULL"),AMQQLCNT S AMQQLCNT=-1 Q
  1. G VINC
  1. ;
  1. LABSITE ;
  1. N %,X
  1. S AMQQLSS1="NO SITE SPECIMEN"
  1. Q:'$D(AMQQLSS)
  1. I AMQQLSS=44 S:$P($G(^AUPNVLAB(+$G(AMQQVNO),11)),U,3) AMQQLSS1="UNSPECIFIED SOURCE" Q
  1. I $G(AMQQIDX),$D(^AMQQ(5,(AMQQIDX+1000.44),0)),AMQQLSS'=44,'$P($G(^AUPNVLAB(+$G(AMQQVNO),11)),U,3) S AMQQLSS1="UNSPECIFIED SOURCE" Q
  1. F %=1:1 S X=+$P(AMQQLSS,".",%) Q:'X I X=$P($G(^AUPNVLAB(AMQQVNO,11)),U,3) S:$G(^LAB(61,X,0))'="" AMQQLSS1=$P(^LAB(61,X,0),U) Q
  1. Q
  1. ;
  1. LASTEVAL ;EP;EVALUATE 'LAST' CONDITION
  1. K AMQQQUIT
  1. I '$D(AMQV("QQ",1,1)) S AMQQQUIT="" Q
  1. I AMQV("QQ",1,1)["%=+$G(^AUPNVSIT(" S AMQQQUIT="" Q
  1. K AMQQQUIT
  1. S AMQP(1)=AMQQVSIT
  1. X AMQV("QQ",1,1)
  1. I '$G(AMQT(1)) S AMQQLAST=AMQQLAST+1 Q
  1. S AMQQQUIT=""
  1. Q