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

ACHSHLGQ.m

Go to the documentation of this file.
  1. ACHSHLGQ ; IHS/ITSC/PMF - QUEUE CHS HOSPITAL LOG SUMMARY ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. Q ; Under Development
  1. D ^ACHSVAR Q:'$D(^ACHSF(DUZ(2)))
  1. K ^TMP($J)
  1. S ACHSUSR=$$USR^ACHS,ACHSFAC=$$LOC^ACHS
  1. W !,$$C^XBFUNC("*************************************",80)
  1. W !,$$C^XBFUNC("* Queue HOSPITAL LOG for "_ACHSFAC_" "_"*",80)
  1. W !,$$C^XBFUNC("* Enter '?' at any time for HELP."_" "_"*",80)
  1. W !,$$C^XBFUNC("*************************************",80)
  1. SELQBY ;Select method of report.
  1. K DIR,ACHSQBY,ACHSPAT,ACHSVNDR,ACHSDIAG,ACHSADM
  1. S DIR("A")="QUEUE HOSPITAL LOG BY",DIR(0)="S^P:PATIENT;S:STATUS TYPE;V:VENDOR;D:DIAGNOSIS",DIR("B")="PATIENT",DIR("?")="^D QBYHELP^ACHSHLPP"
  1. D ^DIR K DIR
  1. I $D(DIRUT)!$D(DIROUT) K ACHSQBY G END
  1. S ACHSQBY=$S("P,S,V,D"[Y:Y,1:"SELQBY")
  1. I ACHSQBY["S" S ACHSSTAT=""
  1. G @ACHSQBY
  1. P ;Select individual or all patients
  1. S DIR("A")="Include ALL PATIENTS",DIR(0)="Y",DIR("B")="YES",DIR("?",1)="Enter 'Y' or <RETURN> to include all patients",DIR("?")="or enter 'N' to select an individual patient."
  1. W ! D ^DIR K DIR
  1. I $D(DIRUT) K ACHSPAT G SELQBY
  1. G END:$D(DIROUT)
  1. I Y=1 S ACHSPAT(0)="" G S
  1. DICP W !! K DIC S DIC="^AUPNPAT(",DIC(0)="AEQM" D ^DIC K DIC
  1. I +Y<1,'$D(ACHSPAT) G END
  1. I +Y<1,$D(ACHSPAT) G S
  1. S:+Y>0 ACHSPAT(+Y)="" G DICP
  1. V ; Select vendor or all vendors
  1. S DIR("A")=" S = SPECIFY VENDOR A = ALL VENDORS",DIR(0)="SB^S:SPECIFIED VENDOR;A:ALL VENDORS",DIR("B")="ALL",DIR("?",1)="Enter 'A' or <RETURN> to include all vendors",DIR("?")="or enter 'S' to select a specific vendor."
  1. W ! D ^DIR K DIR
  1. I $D(DIRUT) K ACHSVNDR G SELQBY
  1. G END:$D(DIROUT)
  1. I Y="A" S ACHSVNDR(0)="" G S
  1. DICV ; Lookup vendor if single vendor.
  1. W !!
  1. K DIC
  1. S DIC="^AUTTVNDR(",DIC(0)="AEQM"
  1. D ^DIC
  1. K DIC
  1. I +Y<1,'$D(ACHSVNDR) G END
  1. I +Y<1,$D(ACHSVNDR) G S
  1. S:+Y>0 ACHSVNDR(+Y)="" G DICV
  1. D ; Select diagnosis or all diagnoses
  1. S DIR("A")=" S = SPECIFY DIAGNOSIS A = ALL DIAGNOSES",DIR(0)="SB^S:SPECIFY DIAGNOSIS;A:ALL DIAGNOSIS",DIR("B")="ALL",DIR("?",1)="Enter 'A' or <RETURN> to include all diagnoses",DIR("?")="or enter 'S' to select a specific diagnosis."
  1. W ! D ^DIR K DIR
  1. I $D(DIRUT) K ACHSDIAG G SELQBY
  1. G END:$D(DIROUT)
  1. I Y="A" S ACHSDIAG(0)="" G S
  1. DICD W !! K DIC S DIC="^ICD9(",DIC(0)="AEQM" D ^DIC K DIC
  1. I +Y<1,'$D(ACHSDIAG) G END
  1. I +Y<1,$D(ACHSDIAG) G S
  1. S:+Y>0 ACHSDIAG(+Y)="" G DICD
  1. S ;Select active/non-active/scheduled/all
  1. K DIR,ACHSATYP
  1. S DIR("A")="STATUS TYPE",DIR(0)="S^A:Active (Current Inpatients);N:Non-Active (Discharged Patients);S:Scheduled Admissions (Est. DOS) **NOT USED WITH DIAG**;L:List All (of the above)",DIR("B")="List All"
  1. S DIR("?",1)="Enter 'A' to include current inpatient data only."
  1. S DIR("?",2)="Enter 'N' to include discharged patient data only."
  1. S DIR("?",3)="Enter 'S' to include scheduled admission data only. **NOT USED WITH DIAG**"
  1. S DIR("?")="Enter 'L' to include data on all of the above."
  1. W ! D ^DIR K DIR
  1. G END:$D(DIROUT),SELQBY:$D(DIRUT),END:$D(DTOUT),END:$D(DUOUT)
  1. I Y="S",$D(ACHSDIAG) W *7,*7,!!?5,"*** Scheduled Admissions is unavailable with the Diagnosis option ***" G S
  1. S ACHSATYP=Y
  1. SELBEG ;Select beginning date
  1. S X1=DT,X2=365 D C^%DTC S ACHSMAX=X
  1. S DIR(0)=$S(ACHSATYP="A":"D^:DT:EX",ACHSATYP="N":"D^:DT:EX",ACHSATYP="S":"D^DT:"_ACHSMAX_":EX",ACHSATYP="L":"D^:DT:EX",1:"??")
  1. S DIR("A")="Enter the BEGINNING "_$S(ACHSATYP="A":"Active Date",ACHSATYP="N":"Discharge Date",ACHSATYP="S":"Estimated Date of Service",ACHSATYP="L":"date for all status types",1:"")
  1. W ! D ^DIR K DIR G S:$D(DUOUT),END:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)
  1. S ACHSBEG=Y,X1=DT,X2=365 D C^%DTC S ACHSMAX=X
  1. SELEND ;Select ending date
  1. S DIR(0)=$S(ACHSATYP="A":"D^:DT:EX",ACHSATYP="N":"D^:DT:EX",ACHSATYP="S":"D^DT:"_ACHSMAX_":EX",ACHSATYP="L":"D^:DT:EX",1:"??")
  1. S DIR("A")="Enter the ENDING "_$S(ACHSATYP="A":"Active Date",ACHSATYP="N":"Discharge Date",ACHSATYP="S":"Estimated Date of Service",ACHSATYP="L":"date for all status types",1:"")
  1. W ! D ^DIR K DIR G SELBEG:$D(DUOUT),END:$D(DIRUT)!$D(DIROUT)!$D(DTOUT)
  1. S ACHSEND=Y
  1. REPTYP ;Choose Report Type
  1. S DIR(0)="S^S:SUMMARY;D:DETAILED",DIR("B")="Summary",DIR("A")=" Report Type ",DIR("B")="SUMMARY",DIR("?")="^D RPTHELP^ACHSHLPP"
  1. D ^DIR K DIR
  1. G SELBEG:$D(DUOUT),END:$D(DIROUT)!$D(DTOUT)!$D(DIRUT)
  1. S ACHSRTYP=Y
  1. DEVICE ;Device Selection
  1. W *7,!!?20,"This report may take awhile to compile.",!?9," It is recommended that you QUEUE your output to a PRINTER.",!
  1. S %ZIS="PQ" D ^%ZIS
  1. I POP W !,"NO DEVICE SELECTED - REQUEST ABORTED" S DIR(0)="E" D ^DIR K DIR
  1. D HOME^%ZIS G END:Y=0,SELQBY:Y=1
  1. I '$D(IO("Q")) W:'$D(IO("S")) ! D:'$D(IO("S")) WAIT^DICD G ^ACHSHLGC
  1. I $D(IO("S"))!($E(IOST)'="P") G DEVICE
  1. ZTLOAD ; Load Taskman
  1. S ZTRTN="^ACHSHLGC",ZTIO="",ZTDESC="HOSPITAL LOG REPORT",ACHSQIO=ION_";"_IOST_";"_IOM_";"_IOSL
  1. F %="ACHSUSR","ACHSQIO","ACHSFAC(","ACHSSRCH","ACHSBEG","ACHSEND" S ZTSAVE(%)=""
  1. D ^%ZTLOAD K IO("Q"),ZTSK D HOME^%ZIS
  1. END ; Kill vars, quit.
  1. K ACHSFAC,ACHSMAX,ACHSQIO,ACHSATYP,ACHSUSR,ACHSBEG,ACHSEND,ACHSSTAT
  1. K DIR,DIROUT,DIRUT,DTOUT,DUOUT
  1. Q