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

AMQQMUL1.m

Go to the documentation of this file.
  1. AMQQMUL1 ; IHS/CMI/THL - COLLECT MULTIPLE VALUES FOR POVS, PROCEDURES, ETC. ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. VAR F I=1:1:19 D
  1. .S X=$P("GR;ID;ST;FIN;LAST;VAL1;SPEC;UATN;MLT;T;NVAR;FVAR;ITR;NNA;STRT;MSS;MPC;MULZ;USQN",";",I)
  1. .S @("AMQQ"_X)=$P(AMQQX,";",I)
  1. I $D(^TMP("AMQQ",$J,+$G(AMQP(.1)),AMQP(0))) S AMQT(AMQQT)=0 Q ;TEMP FOR REGISTER TESTING
  1. I '$D(AMQQAG) S AMQQAG="AG"
  1. I '$D(AMQQSQVN) S AMQQ=U_AMQQGR_"(""A"_$S(AMQQGR="AUPNVPRV":"C",1:"A")_""",AMQP(0))"
  1. E S AMQQ=U_AMQQGR_"(""AD"","_AMQQSQVN_")",%=+^AUPNVSIT(AMQQSQVN,0) G:'% EXIT S AMQQVDAT=(9999999-%)\1,AMQQVSIT=AMQQSQVN
  1. S AMQQVAL1=+AMQQVAL1
  1. S AMQQMSS=+AMQQMSS
  1. S AMQQMPC=AMQQMPC+'AMQQMPC
  1. S AMQQHOLD=0
  1. S AMQT(AMQQT)=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(AMQQSQVN),'$D(@AMQQ) 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 I '$D(AMQQSQVN),AMQQGR="AUPNVHF" D HINC G SQ
  1. I $G(AMQP(0)),$G(AMQQONE)]""!($G(AMQV(1))["DIBT("),$G(AMQP(.1))="","^AUPNVRAD^AUPNVCPT^AUPNVDXP^AUPNVMSR^"[(U_AMQQGR_U),$D(^UTILITY("AMQQ TAX",$J)) D AMQP G SQ
  1. I '$D(AMQQSQVN),AMQQGR'="AUPNVPRV" D INC G SQ
  1. S AMQQVNO=0
  1. D VINC
  1. SQ I $D(AMQV("SQ")) D ^AMQQMULS
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)),AMQQSPEC="NULL"!(AMQQSPEC="INVERSE") K ^(AMQQUATN) G EXIT
  1. I $D(^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN)) G TRUE
  1. NULL I AMQQSPEC'="NULL",AMQQSPEC'="ANY",AMQQSPEC'="INVERSE"
  1. E S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,1)="-",AMQP(AMQQFVAR)="-",AMQT(AMQQT)=1
  1. G EXIT
  1. TRUE I AMQQSPEC="EXISTS",AMQQ'["AUPNVIF" 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. INC S AMQQVDAT=9999999-AMQQFIN
  1. INCDATE I "^AUPNVRAD^AUPNVCPT^AUPNVDXP^AUPNVMSR^"'[(U_AMQQGR_U) S AMQQVDAT=$O(@AMQQ@(AMQQVDAT))
  1. E S AMQQVDAT=$O(@AMQQ@($S('$G(AMQP(99.1)):AMQP(.1),1:AMQP(99.1)),AMQQVDAT))
  1. I AMQQVDAT'=+AMQQVDAT Q
  1. I (9999999-AMQQVDAT)'>AMQQST Q
  1. S AMQQVNO=0
  1. INCITEM S AMQQVNO=$S(AMQQGR'["AUPNVRAD"&(AMQQGR'["AUPNVCPT")&(AMQQGR'["VDXP")&(AMQQGR'["VMSR"):$O(@AMQQ@(AMQQVDAT,AMQQVNO)),1:$O(@AMQQ@($S('$G(AMQP(99.1)):AMQP(.1),1:AMQP(99.1)),AMQQVDAT,AMQQVNO)))
  1. I 'AMQQVNO G INCDATE
  1. I AMQQGR="AUPNVPOV",'$D(AMQP(3)) S AMQP(3)=AMQQVNO
  1. S %=U_AMQQGR_"("_AMQQVNO_","_AMQQMSS_")"
  1. I $D(@%),$D(^(0)) S AMQQVALU=$P(^(AMQQMSS),U,AMQQMPC),AMQQVSIT=$P(^(0),U,3) D SET I 1
  1. E G INCITEM
  1. I AMQQLCNT=AMQQLAST D LASTEVAL^AMQQMULT I $D(AMQQQUIT) K AMQQQUIT Q
  1. I AMQQSPEC="EXISTS"&(AMQQ'["AUPNVIF")!(AMQQSPEC="NULL"),AMQQLCNT,'$D(AMQV("SQ")) S AMQQLCNT=-1 Q
  1. G INCITEM
  1. ;
  1. SET I AMQQVALU="" Q
  1. I '$D(^UTILITY("AMQQ TAX",$J,AMQQVAL1,AMQQVALU)),'$D(^("*")),'$D(^("-")) Q
  1. S1 S AMQQHOLD=AMQQHOLD+1
  1. S AMQQLCNT=AMQQLCNT+1
  1. S ^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,AMQQHOLD)=AMQQVALU_U_(9999999-AMQQVDAT)_U_AMQQVSIT_U_AMQQVNO
  1. K AMQQOK
  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)) S AMQQVALU=$P(^(AMQQMSS),U,AMQQMPC) S:AMQQGR="AUPNVPRV" AMQQVSIT=$P(^(0),U,3),AMQQVDAT=9999999-(+^AUPNVSIT(AMQQVSIT,0)) D SET I 1
  1. E G VINC
  1. I AMQQLCNT=AMQQLAST Q
  1. I AMQQSPEC="NULL"!(AMQQSPEC="EXISTS")!(AMQQSPEC="INVERSE") Q
  1. G VINC
  1. ;
  1. HINC N AMQQHFNO,AMQQOLD
  1. S AMQQOLD=AMQQ
  1. N AMQQ
  1. S AMQQ=U_AMQQGR_"(""AA"",AMQP(0),AMQQHFNO)"
  1. F AMQQHFNO=0:0 S AMQQHFNO=$O(@AMQQOLD@(AMQQHFNO)) Q:'AMQQHFNO D INC
  1. Q
  1. ;
  1. CHS ; ENTRY POINT FROM METADICTIONARY
  1. I '$D(AMQQAG) S AMQQAG="AG"
  1. N Y,Z,%
  1. S X=""
  1. S %=^UTILITY("AMQQ",$J,AMQQAG,AMQQUATN,AMQQHOLD)
  1. S Z=^AUPNVCHS($P(%,U,4),0)
  1. I %=""!(Z="") S X="??" Q
  1. S Y=$P(%,U,4)
  1. I Y'="" S X="#"_Y_" "
  1. S Y=$P(%,U,2)
  1. I Y X ^DD("DD") S X=X_Y_" "
  1. S Y=$P(Z,U,14)
  1. I Y S Y=$P(^AUTTVNDR(Y,0),U),Y=$E(Y,1,12) I Y'="" S X=X_Y_" "
  1. D LOS
  1. I Y'="" S X=X_"("_Y_" days) "
  1. S Y=$P(Z,U,6)
  1. I Y'="" S X=X_"$"_Y
  1. Q
  1. ;
  1. LOS S Y=%
  1. N H,%,%H,%Y,%T,X,Z
  1. S %=Y
  1. S Y=$P(%,U,2)
  1. S Z=$P(%,U,4)
  1. S Z=$P(^AUPNVCHS(Z,0),U,7)
  1. I 'Z!('Y) S Y="" Q
  1. F X=Z,Y D H^%DTC S:$D(Z) H=+%H S:'$D(Z) Y=H-(+%H) K Z
  1. Q
  1. AMQP ;
  1. N XXX,YYY
  1. S XXX=0
  1. F S XXX=$O(^UTILITY("AMQQ TAX",$J,XXX)) Q:'XXX D
  1. .S AMQP(.1)=$O(^UTILITY("AMQQ TAX",$J,XXX,""))
  1. .I AMQP(.1)="*" D AMQPALL Q
  1. .S AMQP(.1)=0
  1. .F S AMQP(.1)=$O(^UTILITY("AMQQ TAX",$J,XXX,AMQP(.1))) Q:'AMQP(.1) D INC
  1. Q
  1. AMQPALL ;
  1. S YYY=U_AMQQGR_"(""B"")"
  1. S AMQP(.1)=0
  1. F S AMQP(.1)=$O(@YYY@(AMQP(.1))) Q:'AMQP(.1) D INC
  1. Q