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

AMQQ.m

Go to the documentation of this file.
  1. AMQQ ; IHS/CMI/THL - QUERY UTILITY ENTRY ROUTINE ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ; THIS IS THE 'DEVELOPMENT' ENTRY POINT FOR Q-MAN. THE 'PRODUCTION' ENTRY POINT IS EN^AMQQ
  1. ;-----
  1. N AMQQADAM
  1. S AMQQADAM=""
  1. START D TRAP,VAR
  1. AGAIN I $D(AMQQEN3) S AMQQEN31=AMQQEN3,AMQQEN3=-1 S AMQQOPT="SEARCH" G LOOP
  1. D ^AMQQOPT I $D(AMQQQUIT)!('$D(AMQQOPT)) G EXIT
  1. LOOP F D EXIT1^AMQQKILL,TRAP,@AMQQOPT I $D(AMQQQUIT)!($D(AMQQEN3))!('$D(AMQQOPT)) Q
  1. I $D(AMQQQUIT) K AMQQQUIT S AMQQAGIN=1 G AGAIN
  1. EXIT ; ENTRY POINT FROM AMQQCMPL
  1. I $G(AMQQETRP)]"" S $ZT=AMQQETRP K AMQQETRP
  1. D EXIT1^AMQQKILL
  1. I $D(^%ZOSF("NBRK")) X ^("NBRK")
  1. I '$D(AMQQXX),'$D(AMQQYY),$D(IOF) W @IOF
  1. D EXIT^AMQQKILL
  1. Q
  1. ;
  1. FAST ; ENTRY POINT FOR FAST FACTS
  1. I '$D(AMQQXX) W @IOF I $G(AMQQOPT)="SEARCH" W ?20,"***** SEARCH CRITERIA *****",!!!
  1. INIT S (AMQQUSQL,AMQQUATN)=1
  1. S (AMQQUNBC,AMQQUSQN,AMQQURGN,AMQQUQQN)=0,U="^"
  1. ; ALL THE AMQQU* VARIABLES ARE COUNTERS WHICH MUST EXIST IN ALL
  1. ; ROUTINES AT ALL LEVELS AND MUST NEVER BE NEWED
  1. RUN I '$D(AMQQXX) D ^AMQQ1,^AMQQQ:$D(AMQQXX) K AMQQXX I $D(AMQQQUIT) K:'AMQQQUIT AMQQQUIT Q
  1. I $D(AMQQXX) D EN^AMQQQ Q
  1. I $D(AMQQEN3),$G(AMQQCCLS)'="P" W !!!,"Sorry...the subject of your search must be a patient.",!!!,*7 H 3 Q
  1. AT D ^AMQQAT
  1. I $D(AMQQXSQF) K AMQQXSQF D LIST G AT
  1. I $D(AMQQQUIT),AMQQUATN=1,AMQQQ="" Q
  1. I $D(AMQQQUIT) K AMQQQUIT Q
  1. I '$D(AMQQNOET),$$VERSION^%ZOSV(1)["Cache" S X="ERROR^AMQQ",@^%ZOSF("TRAP")
  1. I '$D(AMQQNOET),$$VERSION^%ZOSV(1)'["Cache" S X="ERROR^AMQQ",@^%ZOSF("TRAP")
  1. I $D(AMQQSCPF) K AMQQSCPF G AT
  1. I AMQQUATN=1,AMQQQ="" Q
  1. I AMQQQ="" D ^AMQQCMPL K AMQQQUIT Q
  1. I $D(AMQQANYF) K AMQQANYF D LIST G AT
  1. I $D(AMQQTXMT) K AMQQTXMT G SET
  1. I $D(AMQQONE),'$D(AMQQMULT) D LIST G AT
  1. I $D(AMQQSVFL) K AMQQSVFL D LIST G AT
  1. SET D ^AMQQATR
  1. D ^AMQQATL
  1. D ^AMQQATS
  1. D LIST
  1. S AMQQUATN=AMQQUATN+1
  1. I '$D(AMQQNULL) S AMQQUNBC=AMQQUNBC+1
  1. K AMQQNULL
  1. G AT
  1. ;
  1. SAVE D ^AMQQQE
  1. Q
  1. ;
  1. VIEW D VIEW^AMQQOPT1
  1. Q
  1. ;
  1. TRAP ;TRAP
  1. K AMQQNOET
  1. I '$D(^DD("OS")) S AMQQNOET="" Q
  1. S %=^DD("OS"),%=$P(^DD("OS",%,0),U) I %'["CACHE",%'["MSM",%'["MICRONETICS",%'["DSM(V" S AMQQNOET="" Q
  1. I '$D(AMQQNOET)!($D(AMQQADAM)),$D(^%ZOSF("BRK")) X ^("BRK")
  1. I '$D(^%ZOSF("TRAP"))!($D(AMQQADAM)) S AMQQNOET=""
  1. Q:$D(AMQQNOET)
  1. S AMQQETRP=$ZT
  1. I $$VERSION^%ZOSV(1)["Cache" S X="ERR^AMQQ",@^%ZOSF("TRAP")
  1. E S X="ERR^AMQQ",@^%ZOSF("TRAP")
  1. Q
  1. OLDTRAP K AMQQNOET
  1. I '$D(^DD("OS")) S AMQQNOET="" Q
  1. S %=^DD("OS")
  1. S %=$P(^DD("OS",%,0),U)
  1. I %'["MSM",%'["MICRONETICS",%'["DSM(V" S AMQQNOET="" Q
  1. I '$D(^%ZOSF("TRAP"))!($D(AMQQADAM)) S AMQQNOET=""
  1. Q
  1. VAREN ; ENTRY POINT TO SET VARIABLES
  1. VAR S X=$T(AMQQ+1) S AMQQVER=$P(X,";",3)
  1. S X=$P(^AMQQ(8,DUZ(2),0),U,6)
  1. F %=3,6,16 S AMQQ200(%)=$S(X:"^VA(200)",1:("^DIC("_%_")"))
  1. I '$D(AMQQXX) S IOP="0;79" D ^%ZIS
  1. I $D(AMQQRV),$D(AMQQNV) Q
  1. I '$D(AMQQXX) S X=$G(^%ZIS(2,IOST(0),5)),AMQQRV=$P(X,U,4),AMQQNV=$P(X,U,5)
  1. E S AMQQRV=""
  1. I AMQQRV="" S (AMQQRV,AMQQNV)="AMQQXV",AMQQXV=""
  1. ;
  1. LIST ; ENTRY POINT FROM AMQQAT1
  1. I $D(AMQQXX) Q
  1. W !!
  1. F %=0:0 S %=$O(^UTILITY("AMQQ",$J,"LIST",%)) Q:'% W ! X ^(%)
  1. W !!
  1. Q
  1. ;
  1. ERROR I '$D(AMQQNOET) X "I $P($ZE,"">"")=""<INRPT""!($P($ZE,"">"")=""<INTERRUPT"")" I W !!,"QMAN Session terminated...",!! H 2 S AMQQQUIT="" G EXIT
  1. D EMSG
  1. H 4
  1. D AT
  1. G EXIT
  1. ;
  1. EMSG W !!,"WHOOPS!!!!!!!!!!!!!"
  1. W !,"Something just happened which caused me to come to a grinding halt."
  1. W !,"Try to enter the ATTRIBUTE again, but if this problem persists you must"
  1. W !,"take a different approach.",!!!,*7
  1. Q
  1. ;
  1. ERR ; The following line contains vendor specific $Z for DSM and MSM - an
  1. ; an exemption to SAC 6.1.2.3 has been granted for version 2 only per
  1. ; memo dated 5/5/93 from J. MacArthur - This needs to be changed in
  1. ; the next release. **BRJ/IHS ** 6/7/93
  1. I $P($ZE,">")["<INRPT"!($P($ZE,">")["<INTERRUPT")!($P($ZE,">")["<DSCON") W !!,"Session terminated...",!! H 2 S AMQQQUIT="" G EXIT
  1. W !!,"ERROR DETECTED...Try again...If problem persists try a different approach",!!,*7
  1. H 4
  1. G LOOP:$D(AMQQOPT),EXIT
  1. ;
  1. ;
  1. ;
  1. EN ;EP; PRIMARY ENTRY POINT FOR QMAN FROM THE KERNEL MENU SYSTEM
  1. D ^AMQQDFN
  1. D START
  1. Q
  1. ;
  1. EN1 ; PROGRAMMER ENTRY POINT ; SCRIPT INTERFACE
  1. D ^AMQQDFN
  1. I '$D(AMQQXX) S AMQQFAIL=1 Q
  1. I '$D(AMQQYY) S AMQQFAIL=2 Q
  1. S X=$S($E(AMQQXX)'="^":$P(AMQQXX,"("),1:"")
  1. S Y=$S($E(AMQQYY)'="^":$P(AMQQYY,"("),1:"")
  1. S %="DT,DTIME,DUZ,IO,IOF,IOM,IOSL,IOXY,U,XQDIC,XQPSM,XQY,XQY0,ZTQUEUED,AMQQXX,AMQQYY,AMQQFAIL,AMQQADAM,AMQQSURV,AMQQARRY"
  1. S:X]"" %=%_","_X
  1. S:Y]"" %=%_","_Y
  1. S %="N ("_%_") D INDER"
  1. X %
  1. Q
  1. INDER ; Special Entry Point For Call From Above Execute
  1. S %=$E(AMQQYY,$L(AMQQYY))
  1. I %="("!(%=",") S X=$E(AMQQYY,1,$L(AMQQYY)-1),Y=X_$S(%="(":"",1:")") K @Y
  1. I '$D(AMQQYY(0)) S AMQQYY(0)=""
  1. D EXIT1^AMQQKILL
  1. D TRAP
  1. D VAR
  1. D SEARCH
  1. D EXIT
  1. Q
  1. ;
  1. EN2 ; PROGRAMMER ENTRY POINT FOR NATL LANGUAGE INTERFACE
  1. ; USED BY PHARMACY PKG AND OTHERS. SET AUPNPAT = PT DFN
  1. I '$D(AUPNPAT) Q
  1. D ^AMQQDFN
  1. S AMQQFEN2=""
  1. S AMQQOPT="FAST"
  1. S AMQQSAUT="^DPT^"_AUPNPAT_U_$P(^DPT(AUPNPAT,0),U)
  1. D TRAP
  1. D VAR
  1. D LOOP
  1. D EXIT
  1. K AMQQFEN2
  1. Q
  1. ;
  1. EN3 ; PROGRAMMER ENTRY POINT FOR SEARCH TEMPLATE SUBSTITUTION. INPUT AMQQEN3 CONTAINS THE DIBT ENTRY NUMBER AND OUTPUT RETURNS THE TOTAL NUMBER OF ENTRIES IN THE NEW TEMPLATE
  1. ; IF AMQQND=0, HITS NOT DISPLAYED, AMQQND=1 DOTS WILL BE DISPLAYED FOR EACH HIT
  1. I '$D(AMQQEN3) S AMQQEN3=-1 Q
  1. I AMQQEN3 S %=$P($G(^DIBT(AMQQEN3,0)),U,4) I %'=2,%'=9000001 K % S AMQQEN3=-1 Q
  1. D EN
  1. K AMQQND
  1. Q
  1. ;