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

AMQQSQA0.m

Go to the documentation of this file.
  1. AMQQSQA0 ; IHS/CMI/THL - AMQQSQA SUBROUTINE...GETS ATTRIBUTE ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. FUNQ W !,AMQQSQQQ
  1. R X:DTIME E S X=U
  1. K AMQQSVAL
  1. I $E(X)="\" S X=$E(X,2,999),AMQQLCOF=""
  1. I X="",AMQQSQFN=1,"ILG"'[AMQQSQST D WHAT
  1. I X="AGAIN" W ! G FUNQ
  1. I X="ALL",AMQQSQFN=1,AMQQSQST="I" S X=""
  1. I X="" S AMQQSQQT="QUIT" Q
  1. I $E(X)=U S AMQQQUIT="" Q
  1. I X?1."?",AMQQSQSN=378 S X="AF^29" D EN1^AMQQHELP G FUNQ
  1. I $D(AMQQSQDV),X?1."?" D EN2^AMQQHEL2 G FUNQ
  1. I $D(AMQQGVF)!($G(AMQQSQSN)=226),X?1."?" S X="AF^17" D ^AMQQHELP G FUNQ
  1. I X="?" N %A,%B S XQH=$O(^DIC(9.2,"B","AMQQHELP","")) D EN1^XQH G FUNQ
  1. I X?4."?" N %A,%B S XQH=$O(^DIC(9.2,"B","AMQQANAL","")) D EN1^XQH G FUNQ
  1. I X?2.3"?",$D(AMQQSQCF) N %A,%B S XQH=$O(^DIC(9.2,"B","AMQQBOOL","")) D EN1^XQH G FUNQ
  1. I X="??" D EN1^AMQQHEL2 G FUNQ
  1. TEMPLOOK I X="????",AMQQCCLS="P" D ITEM^AMQQHELP G FUNQ
  1. I X[" ",$E(X,$L(X))?1N S AMQQSVAL=$P(X," ",$L(X," ")),X=$P(X," ",1,$L(X," ")-1)
  1. I "><="[$E(X) S X=$TR(X," ","") I +$E(X,2,9) S AMQQSVAL=$E(X,2,99),X=$E(X)
  1. EN1 ; ENTRY POINT FROM AMQQQ1
  1. I X["NOT"!(X["'") D NOT I X="" G FUNQ
  1. I X="VISIT" W !!,"Enter a specific VISIT characteristic like: LOCATION, CLINIC, PROVIDER etc.",!! G FUNQ
  1. ADIC S DIC="^AMQQ(5,"
  1. S DIC(0)="ES"
  1. S D="C"
  1. S DIC("S")="I +Y<1000"
  1. I $D(AMQQXX),$D(AMQQNECO) S DIC(0)=""
  1. D ^AMQQSQAC
  1. D IX^DIC
  1. K DIC
  1. SY I +Y=315!(+Y=35) D ^AMQQSQP Q:$D(AMQQQUIT) G FUNQ
  1. I Y'=-1,AMQQCCLS="V",'$D(AMQQXX),$P(^AMQQ(5,+Y,0),U,20)="M" D NOVM G FUNQ
  1. I $D(AMQQSQNT),"EV"[AMQQSQST,$P(^AMQQ(5,+Y,0),U,20)="B",Y["BETWEEN" S X="",Y=-1,AMQQSQFN=1 K AMQQSQNT
  1. I Y=-1 D SPEC I '$D(Y) Q
  1. I Y=-1,$D(AMQQXX) S AMQQFAIL=10 Q
  1. I Y=-1 W " ??",*7,! K AMQQSQNT G FUNQ
  1. I $P(Y,U,2)="VALUE" W !,"OK, enter the logical condition to be applied to the attribue ""VALUE""...",! G FUNQ
  1. I $P(^AMQQ(5,+Y,0),U,4)=99 W !,"Enter the specific name of the ",$P($P(Y,U,2),",") W !! G FUNQ
  1. I $P(^AMQQ(5,+Y,0),U,5)=9 D EN1^AMQQATAL I $D(AMQQNOL) K AMQQNOL S Y=-1 K AMQQSQNT G FUNQ
  1. S %=^AMQQ(5,+Y,0),%=$P(%,U,5) I % S:%=9 %=+Y+($J/100000) S %=^AMQQ(1,%,0),%=$P(%,U,5) I %=7 S AMQQSQRD=""
  1. I $D(AMQQZSQL),+Y S %=AMQQZSQL K AMQQSQZL S ^UTILITY("AMQQ",$J,"SQXL",+%,$P(%,U,2),$P(%,U,3))=""
  1. I AMQQSQST="V",$P(^AMQQ(5,+Y,0),U,20)="B" D ^AMQQSQVS G:('$D(AMQQQUIT)&($G(AMQQSQCV)="")) FUNQ Q
  1. I AMQQSQST="E",$P(^AMQQ(5,+Y,0),U,20)="B" S AMQQDISV=$P(Y,U,2) D ^AMQQSQBP G:('$D(AMQQQUIT)&($G(AMQQSQCV)="")) FUNQ Q
  1. Q
  1. ;
  1. NOT I $E(X,1,4)="NOT " S X=$E(X,5,99),AMQQSQNT="" Q
  1. I $E(X)="'" S X=$E(X,2,99),AMQQSQNT="" Q
  1. S %=$L(X)
  1. I $E(X,%-3,%)=" NOT" S X=$E(X,1,%-4),AMQQSQNT=""
  1. Q
  1. ;
  1. SPEC I X="*" W " (All values)"
  1. I X="@" W " (Null)"
  1. SCK ; ENTRY POINT FROM AMQQSQA
  1. S Z="ANY;*;ALL;EXISTS;BLANK;EMPTY;NULL;@"
  1. F I=1:1 S %=$P(Z,";",I) Q:%="" I X=$E(%,1,$L(X)) W $E(%,$L(X)+1,99) S X=% D S1 G SCKEXIT
  1. I $G(AMQQSQST)="Q",$L(X)>2 S %=$E(X,1,3) F I=1:1 S Z=$P("POS^ABN^NEG^NML^NOR",U,I) Q:Z="" I Z=% S AMQQSVAL=$S($E(Z)="N":"NEG",1:"POS"),Y="72^IS" G SCKEXIT
  1. I $G(AMQQSQST)="S",$L(X)>2 D SET^AMQQSQA1 G SCKEXIT
  1. SCKEXIT I $D(AMQQRECV),$G(AMQQCOMP)'="" S $P(AMQQRECV,U,11)=$P(AMQQCOMP,";",4)
  1. Q
  1. ;
  1. S1 S X=$S(I=1:"ANY",I<5:"ALL",1:"NULL")
  1. K Y
  1. I AMQQSQST="I" S $P(AMQQCOMP,";",5)=X,AMQQSQQT="" Q
  1. I X'="NULL",$G(AMQQCOMP)'=";;"!($G(AMQQSQFN)>1) S Y=-1 Q
  1. I $D(AMQQSQNT),X="NULL" S X="EXISTS" K AMQQSQNT W " = ",X
  1. I $D(AMQQSQNT),X="EXISTS" S X="NULL" K AMQQSQNT W " = ",X
  1. I $D(AMQQNMAS),X'="NULL" S Y=-1 Q
  1. I $G(AMQQCOMP)?1.";",'$D(^UTILITY("AMQQ",$J,"SQ",$S($D(AMQQSQNN):AMQQSQNN,1:"ZZZ"))) S $P(AMQQCOMP,";",4)=X,AMQQSQCV=AMQQCOMP,AMQQSQQT="" Q
  1. S AMQQSQCV=AMQQCOMP
  1. S AMQQSQQT=""
  1. S AMQQSQNN=+$G(AMQQSQNN)
  1. S:$D(AMQQFSQN) ^UTILITY("AMQQ",$J,"SQ",AMQQSQNN,X)=""
  1. I X="NULL",'$D(AMQQFSQN) S AMQQFSQX=""
  1. I X="NULL",$G(AMQQSQAA),$D(AMQQSQGF) S ^UTILITY("AMQQ",$J,$S(AMQQUSQL>1:"SQXS",1:"SQXQ"),AMQQSQAA,AMQQSQNN)=""
  1. I $D(AMQQYYMI) S AMQQYYMS="" Q
  1. I '$D(AMQQXX) D ^AMQQSQL
  1. Q
  1. ;
  1. NOVM W !!,"Sorry, """,$P(Y,U,2),""" should be entered as a new attribute of VISIT"
  1. W !,"and not a subquery of """,AMQQATNM,""""
  1. W !!,*7
  1. Q
  1. ;
  1. WHAT S DIR(0)="SO^1:WHOOPS...let me try again;2:"_$S($G(AMQQONE)="":("FIND ALL "_AMQQCNAM_" who have a "_AMQQSQAN_" recorded"),1:("SHOW every "_AMQQSQAN_" for "_AMQQONE))_";3:EXIT"
  1. S DIR("A")=$C(10)_" What do you want to do"
  1. S DIR("B")=1,DIR("?")=""
  1. D ^DIR
  1. K DIR
  1. I $D(DUOUT)+$D(DTOUT)+$D(DIRUT) K DTOUT,DIRUT,DTOUT S X="" Q
  1. S X=$S(Y=1:"AGAIN",Y=2:"ALL",Y=3:"^",1:"")
  1. Q
  1. ;