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

AMQQSQP.m

Go to the documentation of this file.
  1. AMQQSQP ; IHS/CMI/THL - SPECIAL SUBQUERY FOR PROVIDERS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. INTRO W @IOF,?17,"***** PROVIDER-RELATED CRITERIA *****"
  1. W !!!,"You can either specify one or more providers by NAME, or.....",!
  1. W "You can specify one or more PROVIDER ATTRIBUTES (affiliation, specialty, etc)"
  1. W !,"to be used as selection criteria.",!!!
  1. S DIR(0)="SO^1:NAME(S) of providers;2:ATTRIBUTE(S) of providers"
  1. S DIR("A")=$C(10)_" Your choice"
  1. S DIR("B")="NAME(S)"
  1. D ^DIR
  1. K DIR
  1. I $D(DUOUT)+$D(DTOUT) K DUOUT,DIRUT,DTOUT S AMQQQUIT="" G EXIT
  1. I Y="" Q
  1. S AMQQSQPY=Y
  1. RUN D @$P("NAME^ATT",U,Y)
  1. I $D(AMQQQUIT) G EXIT
  1. I $D(AMQQSQPQ) K AMQQSQPQ G EXIT
  1. D PRIME
  1. I $D(AMQQSQPQ)!($D(AMQQQUIT)) K AMQQSQPQ G EXIT
  1. D @$P("SETN^SETA",U,AMQQSQPY)
  1. I '$D(AMQQXX),AMQQSQFN>1 W !! F %=0:0 S %=$O(^UTILITY("AMQQ",$J,"SQL",AMQQUSQN,%)) Q:'% W ! X ^(%)
  1. EXIT K X,Y,AMQQSQPH,AMQQSQPL,AMQQSQPY,%,Z,AMQQSQP
  1. W !!
  1. Q
  1. ;
  1. NAME N AMQQTAX
  1. S X=35
  1. D EN1^AMQQTX
  1. I '$D(AMQQTAX) S AMQQSQPQ="",AMQQQUIT="" Q
  1. S AMQQSQP=AMQQTAX
  1. S (AMQQSQP1,AMQQSQP2)=AMQQUQQN+1+('$D(AMQQVPF))
  1. Q
  1. ;
  1. PRIME W !!,"When I check the providers from each encounter, you can limit my analysis"
  1. W !,"to the PRIMARY provider only, SECONDARY providers, or ALL providers.",!!
  1. S DIR(0)="SO^1:PRIMARY provider only;2:SECONDARY providers only;3:ALL providers"
  1. S DIR("A")=$C(10)_" Your choice"
  1. S DIR("B")="ALL"
  1. D ^DIR
  1. K DIR
  1. I $D(DUOUT)+$D(DTOUT) K DUOUT,DIRUT,DTOUT S (Y,AMQQQUIT)=""
  1. I Y="" Q
  1. S AMQQSQPS=Y
  1. S AMQQSQPL=$S(AMQQSQPS=1:"PRIMARY",AMQQSQPS=2:"SECONDARY",1:"")
  1. I AMQQSQPL'="" S AMQQSQPL=AMQQSQPL_" "
  1. Q
  1. ;
  1. SETA I $D(AMQQVPF) D SETVP G SETA1
  1. D CHK
  1. S ^UTILITY("AMQQ",$J,"SQL",AMQQUSQN,AMQQSQFN)="W ?"_$S($D(AMQQGVF):6,1:((3*AMQQUSQL)+6))_","""_AMQQSQPL_"PROVIDER ATTRIBUTES"""
  1. S ^UTILITY("AMQQ",$J,"QQ",AMQQSQPH)="212^PROVIDER^Y^0^^^^^"_AMQQSQPS_";"_AMQQSQP1_";"_AMQQSQP2_"^^^^^^"_AMQQSQPS_";"_AMQQSQP1_";"_AMQQSQP2
  1. S ^UTILITY("AMQQ",$J,"SQ",AMQQUSQN,AMQQSQFN)="0^LINK^22^SUB^AMQQF1^V^"_AMQQSQPH
  1. D SQIX
  1. SETA1 S AMQQSQFN=AMQQSQFN+1
  1. Q
  1. ;
  1. SETN I $D(AMQQVPF) D SETVP G SETN1
  1. D CHK
  1. D SETZ
  1. S Z=AMQQSQPL_"PROVIDERS "_Z
  1. S ^UTILITY("AMQQ",$J,"SQL",AMQQUSQN,AMQQSQFN)="W ?"_$S($D(AMQQGVF):6,1:((3*AMQQUSQL)+6))_","""_Z_""""
  1. S AMQQUQQN=AMQQUQQN+1
  1. S ^UTILITY("AMQQ",$J,"QQ",AMQQUQQN)="212^PROVIDER^Y^0^^^^^"_AMQQSQPS_";"_AMQQSQP1_";"_AMQQSQP2_"^^^^^^"_AMQQSQPS_";"_AMQQSQP1_";"_AMQQSQP2
  1. S ^UTILITY("AMQQ",$J,"SQ",AMQQUSQN,AMQQSQFN)="0^LINK^22^SUB^AMQQF1^V^"_AMQQUQQN
  1. D SQIX
  1. S AMQQSQFN=AMQQSQFN+1
  1. SETN1 S AMQQUQQN=AMQQUQQN+1
  1. S ^UTILITY("AMQQ",$J,"QQ",AMQQUQQN)="203^PROVIDER^L^0^^^^^;;;"_AMQQSQP_"^^^^^1^"_AMQQSQP_";"_AMQQSQP_";^0^"_AMQQSQP
  1. Q
  1. ;
  1. SETZ N AMQQQ
  1. S AMQQQ="203^^^^^^^^;;;"_AMQQSQP,Z="" I AMQQSQPY=1 D ZSET^AMQQATL1
  1. Q
  1. ;
  1. SETVP S AMQQLINK=212
  1. S AMQQATNM="PROVIDER"
  1. S AMQQCTXS=0
  1. S AMQQCOMP=AMQQSQPS_";"_AMQQSQP1_";"_AMQQSQP2_";"_$G(AMQQSQP),AMQQNVAR=1,AMQQFTYP="Y",AMQQSQFN=0
  1. I AMQQSQPY=2 S AMQQLINK=212.1
  1. K AMQQTAX
  1. Q
  1. ;
  1. CHK I AMQQSQFN=1 D SET1^AMQQSQS S AMQQSQQQ="Next"_$S($D(AMQQGVF):" generic visit condition",1:(" condition of """_AMQQSQSJ_""""))_": "
  1. Q
  1. ;
  1. SQIX I '$D(AMQQGVF) S %=@$S(AMQQUSQL>1:"AMQQSQAA",1:"AMQQUATN"),X=$S(AMQQUSQL>1:"SQXS",1:"SQXQ") I '$D(^UTILITY("AMQQ",$J,X,%)) S ^(%,1)=""
  1. Q
  1. ;
  1. ATT N AMQQSQQF,AMQQCCLS,AMQQQ,AMQQLINK,AMQQFTYP,AMQQCTXS,AMQQCOND,AMQQNOCO,AMQQCONM,AMQQSYMB,AMQQCOMP,AMQQVCL,AMQQSER,AMQQORTX,AMQQFRED,AMQQNVAR,AMQQFILT,AMQQSNOT,AMQQTAX,AMQQUATN,AMQQATNM,AMQQCNAM
  1. S AMQQSQPH=AMQQUQQN+('$D(AMQQVPF))
  1. S AMQQCCLS="H"
  1. S AMQQCNAM="PROVIDER"
  1. S AMQQUATN=1
  1. ATT1 S AMQQQ=""
  1. W !!
  1. D ATT2
  1. I $G(AMQQQ)="" S AMQQSQP1=AMQQSQPH+1,AMQQSQP2=AMQQUQQN S:AMQQUQQN<AMQQSQPH AMQQSQPQ="" Q
  1. I AMQQUQQN<AMQQSQPH S AMQQUQQN=AMQQUQQN+1
  1. S (AMQQSQQF,AMQQUQQN)=AMQQUQQN+1
  1. S AMQQUATN=AMQQUATN+1
  1. D ^AMQQATS
  1. I '$D(AMQQVPF) D ALIST
  1. G ATT1
  1. Q
  1. ;
  1. ATT2 N AMQQVPF
  1. D ^AMQQAT
  1. Q
  1. ;
  1. ALIST S %=AMQQSQFN
  1. N AMQQSQLS,AMQQSQCT,AMQQSQFN,AMQQSQNN
  1. S AMQQSQFN=+(%_"."_AMQQSQQF)
  1. S AMQQSQLS="W ?"_$S($D(AMQQGVF):9,$D(AMQQUSQL):(3*AMQQUSQL+6),1:9)_","""
  1. S AMQQSQNN=AMQQUSQN+1
  1. S AMQQSQCT="V"
  1. D EN1^AMQQSQL
  1. Q
  1. ;