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

AMHRL.m

Go to the documentation of this file.
  1. AMHRL ; IHS/CMI/LAB - BH GENERAL RETRIEVAL DRIVER ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**6**;JUN 02, 2010;Build 10
  1. START ;
  1. I '$D(IOF) D HOME^%ZIS
  1. I '$G(DUZ(2)) W $C(7),$C(7),!!,"SITE NOT SET IN DUZ(2) - NOTIFY SITE MANAGER!!",!! Q
  1. I '$G(DUZ) W $C(7),$C(7),!!,"USER NOT SET IN DUZ - NOTIFY SITE MANAGER!!",!! Q
  1. K AMHQUIT
  1. I AMHPTVS="P" S AMHPTTX="Patient",AMHPTTS="Patients"
  1. I AMHPTVS="S" S AMHPTTX="Suicide Form",AMHPTTS="Suicide Forms"
  1. I AMHPTVS="V" S AMHPTTX="Visit",AMHPTTS="Visits"
  1. TYPE ;--- get type of report (patient, date range or search template)
  1. D INFORM^AMHRL01
  1. I AMHPTVS="S" S AMHTYPE="SU" D SU,XIT Q
  1. K DIR,X,Y S DIR(0)="S^S:Search Template"_$S(AMHPTVS="V":";D:Date Range",1:";P:Patient File"),DIR("A")="Select and Print "_$S(AMHPTVS="P":"Patient ",1:"Encounter ")_"List from" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) XIT
  1. S AMHTYPE=Y
  1. D @AMHTYPE
  1. D XIT
  1. Q
  1. P ;patient lister
  1. D ADD I $D(AMHQUIT) D DEL K AMHQUIT G TYPE
  1. I '$D(AMHCAND) D P1 Q
  1. I $D(AMHCAND),$P(^AMHTRPT(AMHRPT,0),U,11) D I $D(DIRUT)!'($D(AMHBDD))!('$D(AMHEDD)) Q
  1. .S AMHRDTR=""
  1. .W !!,"You have selected at least one item that requires a date range selection."
  1. .D GETDATES
  1. D TITLE I $D(AMHQUIT) K AMHQUIT G TYPE
  1. D ZIS
  1. Q
  1. P1 ;if patient, no prev defined report used
  1. P11 K ^AMHTRPT(AMHRPT,11),AMHRDTR D SCREEN I $D(AMHQUIT) K AMHQUIT D DEL Q:AMHPTVS="S" G TYPE
  1. I $D(AMHRDTR) D
  1. .W !!,"You have selected at least one item that requires a date range selection."
  1. .D GETDATES
  1. .I '$D(AMHBDD)!('$D(AMHEDD))!($D(DIRUT)) G P11
  1. P12 K ^AMHTRPT(AMHRPT,12) S AMHTCW=0 D COUNT I $D(AMHQUIT) K AMHQUIT G P11
  1. P13 D TITLE I $D(AMHQUIT) K AMHQUIT G P12
  1. D SAVE
  1. D ZIS
  1. Q
  1. S ;--- search template
  1. D S0
  1. Q:$D(AMHQUIT)
  1. S1 ;EP
  1. D ADD I $D(AMHQUIT) G S
  1. S12 K ^AMHTRPT(AMHRPT,12) S AMHTCW=0 D COUNT I $D(AMHQUIT) K AMHQUIT G S
  1. S13 D TITLE I $D(AMHQUIT) K AMHQUIT G S12
  1. D ZIS
  1. Q
  1. S0 ;
  1. S:AMHPTVS="V" DIC("S")="I $P(^(0),U,4)=9002011" S:AMHPTVS="P" DIC("S")="I $P(^(0),U,4)=2!($P(^(0),U,4)=9000001)" S DIC="^DIBT(",DIC("A")="Enter SEARCH TEMPLATE name: ",DIC(0)="AEMQ" D ^DIC K DIC,DA,DR,DICR
  1. I Y=-1 S AMHQUIT="" Q
  1. S AMHSEAT=+Y
  1. ;
  1. Q
  1. D ;
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! K DIR,X,Y S DIR(0)="D^:DT:EP",DIR("A")="Enter Beginning Encounter Date for search" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) D DEL G TYPE
  1. S AMHBD=Y
  1. ED ;get ending date
  1. W ! K DIR,X,Y S DIR(0)="D^"_AMHBD_":DT:EP",DIR("A")="Enter Ending Encounter Date for search" S Y=AMHBD D DD^%DT D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S AMHED=Y
  1. S X1=AMHBD,X2=-1 D C^%DTC S AMHD=X S Y=AMHBD D DD^%DT S AMHBDD=Y S Y=AMHED D DD^%DT S AMHEDD=Y
  1. Q:$D(AMHRDTR)
  1. D ADD I $D(AMHQUIT) D DEL K AMHQUIT G D
  1. I '$D(AMHCAND) D D1 Q
  1. D TITLE I $D(AMHQUIT) K AMHQUIT G TYPE
  1. D ZIS
  1. Q
  1. SU ;
  1. SBD ;get beginning date
  1. W ! K DIR,X,Y S DIR(0)="D^:DT:EP",DIR("A")="Enter Beginning Date for search" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) D XIT Q
  1. S AMHBD=Y
  1. SED ;get ending date
  1. W ! K DIR,X,Y S DIR(0)="D^"_AMHBD_":DT:EP",DIR("A")="Enter Ending Date for search" S Y=AMHBD D DD^%DT D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G SBD
  1. S AMHED=Y
  1. S X1=AMHBD,X2=-1 D C^%DTC S AMHD=X S Y=AMHBD D DD^%DT S AMHBDD=Y S Y=AMHED D DD^%DT S AMHEDD=Y
  1. D ADD I $D(AMHQUIT) D DEL K AMHQUIT D XIT Q
  1. I '$D(AMHCAND) D P1 Q
  1. D TITLE I $D(AMHQUIT) K AMHQUIT G TYPE ;**
  1. D ZIS ;**
  1. Q ;**
  1. D1 ;if visit, no prev defined report used
  1. D11 K ^AMHTRPT(AMHRPT,11),AMHRDTR D SCREEN I $D(AMHQUIT) K AMHQUIT D DEL D XIT Q
  1. D12 K ^AMHTRPT(AMHRPT,12) S AMHTCW=0 D COUNT I $D(AMHQUIT) K AMHQUIT G D11
  1. D13 D TITLE I $D(AMHQUIT) K AMHQUIT G D12
  1. D SAVE
  1. D ZIS
  1. Q
  1. SCREEN ;
  1. ;D SCREEN^AMHRL3
  1. S AMHCNTL="S" D ^AMHRL4
  1. Q
  1. COUNT ;count only or detailed report
  1. D COUNT^AMHRL3
  1. Q
  1. TITLE ;
  1. Q:AMHCTYP="F"
  1. Q:AMHCTYP="T"
  1. K DIR,X,Y S DIR(0)="Y",DIR("A")="Would you like a custom title for this report",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) S AMHQUIT=1 Q
  1. Q:Y=0
  1. S AMHLENG=$S(AMHTCW:AMHTCW-8,1:60)
  1. I Y=1 K DIR,X,Y S DIR(0)="F^3:"_AMHLENG,DIR("A")="Enter custom title",DIR("?")=" Enter from 3 to "_AMHLENG_" characters" D ^DIR K DIR
  1. G:$D(DIRUT) TITLE
  1. S AMHTITL=Y
  1. Q
  1. SAVE ;
  1. Q:$D(AMHCAND)
  1. Q:AMHCTYP'="D" ;--- must be a detailed report to be saved
  1. S AMHSAVE=""
  1. K DIR,X,Y S DIR(0)="Y",DIR("A")="Do you wish to SAVE this "_$S('$D(AMHEP1):"SEARCH/",1:"")_"PRINT/SORT logic for future use",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. Q:'Y
  1. K DIR,X,Y S DIR(0)="9001003.8,.03",DIR("A")="Enter NAME for this REPORT DEFINITION" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) SAVE
  1. S AMHNAME=Y
  1. S DIE="^AMHTRPT(",DA=AMHRPT,DR=".02////1;.03///"_AMHNAME_";.06///"_AMHPTVS_";.05///"_AMHCTYP_";.11///"_$G(AMHRDTR) S:$D(AMHEP1) DR=DR_";.09///"_AMHPACK D CALLDIE^AMHLEIN
  1. Q
  1. ZIS ;call to XBDBQUE
  1. DEMO ;
  1. D DEMOCHK^AMHUTIL1(.AMHDEMO)
  1. I AMHDEMO=-1 Q
  1. I 'AMHTCW S AMHTCW=IOM
  1. S AMHDONE=""
  1. D SHOW^AMHRLS,SHOWP^AMHRLS I AMHCTYP'="T",AMHCTYP'="S" D SHOWR^AMHRLS
  1. D XIT1
  1. I AMHCTYP="D"!(AMHCTYP="S") D
  1. .S DIR(0)="S^P:PRINT Output;B:BROWSE Output on Screen",DIR("A")="Do you wish to ",DIR("B")="P" K DA D ^DIR K DIR
  1. .I $D(DIRUT) S AMHQUIT="" Q
  1. .S AMHOPT=Y
  1. G:$G(AMHQUIT) SAVE
  1. I $G(AMHOPT)="B" D BROWSE,XIT Q
  1. S XBRP="^AMHRLP",XBRC="^AMHRL1",XBRX="XIT^AMHRL",XBNS="AMH"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. DEL ;EP DELETE LOG ENTRY IF ONE EXISTS AND USER "^" OUT
  1. I $G(AMHRPT),$D(^AMHTRPT(AMHRPT,0)),'$P(^AMHTRPT(AMHRPT,0),U,2) S DIK="^AMHTRPT(",DA=AMHRPT D ^DIK K DIK,DA,DIC
  1. Q
  1. ADD ;
  1. D ADD^AMHRL01
  1. Q
  1. BROWSE ;
  1. S XBRP="VIEWR^XBLM(""^AMHRLP"")"
  1. S XBRC="^AMHRL1",XBRX="XIT^AMHRL",XBIOP=0 D ^XBDBQUE
  1. Q
  1. XIT ;
  1. D XIT^AMHRL1
  1. K AMHOPT
  1. XIT1 ;
  1. D XIT1^AMHRL1
  1. Q