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

AMQQMGR2.m

Go to the documentation of this file.
  1. AMQQMGR2 ; IHS/CMI/THL - QMAN USAGE LOG ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. ASK S DIR("??")="AMQQLOG"
  1. S DIR("A")=$C(10)_" Your choice"
  1. S DIR("?")="Enter a code from the list or type '??' for more information"
  1. S DIR(0)="SO^1:ACTIVATE Log;2:INACTIVATE Log;3:PURGE Log;4:VIEW Log;9:HELP;0:EXIT"
  1. D ^DIR
  1. K DIR
  1. I 'Y K DUOUT,DIRUT,DTOUT G EXIT
  1. I Y=9 W !!,"Enter a code from the list or type '??' for more information." G ASK
  1. D @("L"_Y)
  1. I '$D(AMQQQUIT) G MENU
  1. EXIT K AMQQQUIT,X,Y,AMQQLLD,AMQQLOG1,AMQQLOGN,%,%H,%I,A,B,C,D,FR,TO,H,M,S,T,Z
  1. Q
  1. ;
  1. CHK I $D(DTOUT)+$D(DUOUT)+(Y=-1)+(Y="") K DIRUT,DUOUT,DTOUT S AMQQQUIT="" Q
  1. Q
  1. ;
  1. LOG ; ENTRY POINT
  1. I '$P($G(^AMQQ(8,DUZ(2),0)),U,7) Q
  1. I '$D(^AMQQ(8,DUZ(2),4,0)) S ^(0)="^9009078.04D^^0"
  1. N X,%,Y,DIC,DIE,DA,DR,DINUM,Z,%I,%H
  1. S Z="D"
  1. S %=$$KEYCHECK^AMQQUTIL("AMQQZCLIN")
  1. I % S Z="C"
  1. D NOW^%DTC
  1. S (DINUM,X)=%
  1. S DIC="^AMQQ(8,DA(1),4,"
  1. S DIC(0)="L"
  1. S DA(1)=DUZ(2)
  1. D FILE^DICN
  1. I Y=-1 Q
  1. S (DA,AMQQLOGN)=+Y
  1. S AMQQLOG1=%H
  1. S DIE=DIC
  1. S DR=".02////"_DUZ_";.03////"_Z
  1. I $G(ION)'="" S DR=DR_";.04////"_$O(^%ZIS(1,"B",ION,""))
  1. S %=$G(AMQQCNAM)
  1. S:%="LIVING PATIENTS" %="PATIENTS"
  1. I %'="" S %=%_": "
  1. S Y=0
  1. F Z=0:0 S Z=$O(^UTILITY("AMQQ",$J,"Q",Z)) Q:'Z S:Y %=%_", " S %=%_$P(^(Z),U,2),Y=1
  1. I %'="" S %=$E(%,1,189),DR=DR_";.07////"_%
  1. D ^DIE
  1. Q
  1. ;
  1. TIME ; ENTRY POINT
  1. I '$D(AMQQLOGN)!('$D(AMQQLOG1)) K AMQQLOGN,AMQQLOG1 Q
  1. N A,B,C,D,%,Z,DA,DR,DIE,DIC,%H,%I,T,S,H,M
  1. D NOW^%DTC
  1. S S=%H
  1. S A=+S
  1. S B=$P(S,",",2)
  1. S Z=(60*60*24)
  1. S C=+AMQQLOG1
  1. S D=$P(AMQQLOG1,",",2)
  1. I (B-D)<0 S B=B+Z,A=A-1
  1. S S=((A-C)*Z)+(B-D)
  1. S T=S
  1. S H=T\3600
  1. I H S T=T#3600
  1. S M=T\60
  1. I M S T=T#60
  1. F %="H","M","T" S @%=$S('@%:"00",@%<10:("0"_@%),1:@%)
  1. S T=H_":"_M_":"_T
  1. S DA(1)=DUZ(2)
  1. S DIE="^AMQQ(8,DA(1),4,"
  1. S DA=AMQQLOGN
  1. S DR=".05////"_S_";.06////"_T
  1. D ^DIE
  1. K AMQQLOGN,AMQQLOG1,%I
  1. Q
  1. ;
  1. TEST ;
  1. S FLDS="[AMQQ LOG]"
  1. S DIC="^AMQQ(8,"
  1. S BY="@40,.01,@40,.05"
  1. S FR="2910423.13000"
  1. S TO="2910501,55"
  1. D EN1^DIP
  1. Q
  1. ;
  1. L4 ; VIEW LOG
  1. W @IOF,!,?20,"***** VIEW QUERY LOG *****",!!
  1. S DIR(0)="DO^::ETS"
  1. S DIR("A")="Start with what date"
  1. D ^DIR
  1. K DIR
  1. I Y="" S Y=2100000 W " Start with first entry"
  1. I 'Y K DUOUT,DTOUT,DIRUT Q
  1. S AMQQLD1=Y
  1. S DIR(0)="DO^::ETS"
  1. S DIR("A")="End with what date"
  1. D ^DIR
  1. K DIR
  1. I Y="" S Y=3900000 W " Go to last entry"
  1. I 'Y K DUOUT,DTOUT,DIRUT Q
  1. S AMQQLD2=Y
  1. I AMQQLD1>AMQQLD2 W " ????",*7 H 2 G L4
  1. W !!!,"When viewing the log, you may sort by one of the following attributes =>",!!
  1. S DIR(0)="SO^1:USER (e.g. DOE,JOHN);2:SECURITY LEVEL (DEMOGRAPHIC or CLINICAL);3:OUTPUT DEVICE;4:SESSION DURATION (SECONDS);0:NONE"
  1. S DIR("A")="Your choice"
  1. S DIR("B")="NONE"
  1. D ^DIR
  1. K DIR
  1. I Y=0 G LIST
  1. I 'Y K DUOUT,DTOUT,DIRUT Q
  1. S AMQQLBY=",@40,.0"_(Y+1)
  1. LIST S BY="@40,.01"_$G(AMQQLBY)
  1. S FR=AMQQLD1_",?"
  1. S TO=AMQQLD2_",?"
  1. S DIC="^AMQQ(8,"
  1. S FLDS="[AMQQ LOG]"
  1. S DHD="QMAN LOG"
  1. W !! D EN1^DIP
  1. S DIR(0)="E"
  1. D ^DIR
  1. K DUOUT,DTOUT,DIRUT,DIR
  1. K AMQQLBY,AMQQLD1,AMQQLD2,DIJ,B
  1. Q
  1. ;
  1. L1 S X=1
  1. G LACT
  1. L2 S X=0
  1. LACT S DIE="^AMQQ(8,"
  1. S DA=DUZ(2)
  1. S DR=".07////"_X
  1. D ^DIE
  1. K DIE,DA,DR
  1. W !!,"The Q-Man LOG has been ",$S(X:"activated",1:"deactivated"),!!
  1. H 2
  1. Q
  1. ;
  1. L3 ; PURGE
  1. W !!
  1. S DIR(0)="DO^::ET"
  1. S DIR("A")="Purge all QMan LOG entries prior to what date"
  1. S DIR("B")="NOW"
  1. D ^DIR
  1. K DIR
  1. I 'Y K DUOUT,DTOUT,DIRUT Q
  1. S AMQQLLD=Y
  1. F DA=0:0 S DA=$O(^AMQQ(8,DUZ(2),4,DA)) Q:'DA Q:DA>AMQQLLD S DIK="^AMQQ(8,DA(1),4,",DA(1)=DUZ(2) D ^DIK W "."
  1. K DA,DA,DIK,AMQQLLD
  1. W !!,"The Q-MAN LOG has been purged as requested",!!
  1. H 2
  1. Q
  1. ;