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

APCLCH2.m

Go to the documentation of this file.
  1. APCLCH2 ; IHS/CMI/LAB - DX BY COMMUNITY LOCAL,SECONDARY,TERTIARY ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. ;
  1. START ;
  1. S APCLJOB=$J,APCLBTH=$H
  1. K ^XTMP("APCLCH2",APCLJOB,APCLBTH)
  1. D XTMP^APCLOSUT("APCLCH2","PCC - DX TALLY")
  1. D INFORM
  1. SU S B=$P(^AUTTLOC(DUZ(2),0),U,5) I B S S=$P(^AUTTSU(B,0),U),DIC("A")="Please Identify your Service Unit: "_S_"//"
  1. S DIC="^AUTTSU(",DIC(0)="AEMQZ" W ! D ^DIC K DIC
  1. I X="^" G XIT
  1. I X="" S (APCLSU,APCLSUF)=B G GETDATES
  1. G:Y=-1 GETDATES
  1. S (APCLSU,APCLSUF)=+Y
  1. GETDATES ;
  1. BD ;
  1. W !!,"Enter the time frame of interest.",! S DIR(0)="D^::EP",DIR("A")="Enter Beginning Visit Date",DIR("?")="Enter the beginning visit date for the search." D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) XIT
  1. S APCLBD=Y
  1. ED ;
  1. S DIR(0)="DA^::EP",DIR("A")="Enter Ending Visit Date: " D ^DIR K DIR,DA S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) XIT
  1. I Y<APCLBD W !,"Ending date must be greater than or equal to beginning date!" G ED
  1. S APCLED=Y
  1. S X1=APCLBD,X2=-1 D C^%DTC S APCLSD=X
  1. COMM ;
  1. S APCLCOMT="" K APCLQUIT,^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES")
  1. K DIR S DIR(0)="S^O:ONE Particular Community;S:All Communities within the "_$P(^AUTTSU(APCLSU,0),U)_" SERVICE UNIT;T:A TAXONOMY or selected set of Communities"
  1. S DIR("A")="Enter a code indicating what COMMUNITIES of RESIDENCE are of interest",DIR("B")="O" K DA D ^DIR K DIR,DA
  1. G:$D(DIRUT) GETDATES
  1. S APCLCOMT=Y
  1. D @APCLCOMT
  1. G:$D(APCLQUIT) COMM
  1. CHECK ;check each community entry for existence of facility identification
  1. K APCLQUIT
  1. W !!,"Checking community table for required items..."
  1. S (APCLX,C)=0 F S APCLX=$O(^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES",APCLX)) Q:APCLX'=+APCLX!($D(APCLQUIT)) D
  1. .S (L,S,T)=0 S:'$P(^AUTTCOM(APCLX,0),U,15) L=1
  1. .I '$P(^AUTTCOM(APCLX,0),U,16) S S=1
  1. .I '$P(^AUTTCOM(APCLX,0),U,17) S T=1
  1. .I 'L,'S,'T Q
  1. .S C=C+1
  1. .I $Y>(IOSL-2) D PAUSE Q:$D(APCLQUIT)
  1. .W !,$P(^AUTTCOM(APCLX,0),U)," is missing "
  1. .W "facility identification in the community table."
  1. I 'C W !,"ALL are okay.",!!,"Be sure to utilize a printer with 132 margin print capability.",! G ZIS
  1. CHECK1 ;
  1. W !!,"Since some of the community entries are missing data, I cannot continue.",!,"See your site manager about fixing the community entries.",!,"You may now select other communities or exit the report.",! G COMM
  1. ZIS ;
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G COMM
  1. W !! S XBRP="^APCLCH2P",XBRC="^APCLCH21",XBNS="APCL",XBRX="XIT^APCLCH2"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. ;
  1. PAUSE ;
  1. S DIR(0)="E",DIR("A")="Press return to continue or '^' to quit" D ^DIR K DIR,DA
  1. S:$D(DIRUT) APCLQUIT=1
  1. W:$D(IOF) @IOF
  1. Q
  1. XIT ;
  1. K APCLQUIT,APCLCOMT,APCLBD,APCLED,APCLDFN,APCLSD,APCLX,APCLY,APCLER,APCL1,APCL2,APCL3,APCLBDO,APCLBT,APCLBTH,APCLC,APCLCOM,APCLCOMI,APCLLOC,APCLTYPE
  1. K APCLDX,APCLEDO,APCLET,APCLF,APCLI,APCLJOB,APCLLFAC,APCLP,APCLPG,APCLSFAC,APCLSU,APCLSUF,APCLTFAC,APCLV,APCLVCNT,APCLVLOC
  1. K L,M,S,T,X,X1,X2,Y,Z,B
  1. D KILL^AUPNPAT
  1. D ^XBFMK
  1. Q
  1. O ;one community
  1. S DIC="^AUTTCOM(",DIC(0)="AEMQ",DIC("A")="Which COMMUNITY: " D ^DIC K DIC
  1. I Y=-1 S APCLQUIT="" Q
  1. S ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES",+Y)=""
  1. Q
  1. S ;all communities within APCLSU su
  1. S X=0 F S X=$O(^AUTTCOM(X)) Q:X'=+X I $P(^AUTTCOM(X,0),U,5)=APCLSU S ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES",X)=""
  1. Q
  1. ;
  1. T ;taxonomy - call qman interface
  1. K ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES")
  1. ASK ; Get community name or cohort
  1. K APCLCOMM
  1. R:'$D(^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES")) !,"Enter community or [search template name: ",X:DTIME
  1. R:$D(^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES")) !,"Enter ANOTHER community or [search template name: ",X:DTIME
  1. I X=""&('$D(^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES"))) S APCLQUIT=1 W !!,$C(7),$C(7),"No communities selected!!",! Q
  1. Q:X=""
  1. I "^"[X K ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES") S APCLQUIT=1 W !!,"Okay - exiting....try again later" Q
  1. I $E(X)'="[" S APCLCOMM=""
  1. E S X=$E(X,2,99)
  1. I '$D(APCLCOMM) S DIC("S")="I $P(^(0),U,15)=9999999.05"
  1. S DIC=$S($D(APCLCOMM):"^AUTTCOM(",1:"^ATXAX("),DIC(0)="EQM" D ^DIC K DIC
  1. I Y=-1 G ASK
  1. I $D(APCLCOMM) S ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES",+Y)=""
  1. E S X=0 F S X=$O(^ATXAX(+Y,21,X)) Q:'X S Z=$P(^ATXAX(+Y,21,X,0),U) I Z]"" S ^XTMP("APCLCH2",APCLJOB,APCLBTH,"COMMUNITIES",$O(^AUTTCOM("B",Z,0)))=""
  1. K APCLCOMM
  1. G ASK
  1. Q
  1. INFORM ;tell user what is going on
  1. ;
  1. W:$D(IOF) @IOF
  1. W !!?5,"DIAGNOSES BY A COMMUNITY'S LOCAL, SECONDARY AND TERTIARY FACILITIES"
  1. W !!,"This report will present a tally of all diagnoses for patients in a community",!,"or communities you select. The report will tally the diagnoses for"
  1. W !,"the community's local, secondary and tertiary facilities. Each community's",!,"report will be 2 pages long, 1 page for outpatient diagnoses and 1 for ",!,"inpatient diagnoses.",!!
  1. Q
  1. SET ;EP - ENTRY POINT
  1. S APCLC="" F S APCLC=$O(^XTMP("APCLCH2",APCLJOB,APCLBTH,"DATA",APCLC)) Q:APCLC="" D
  1. .S APCLF=0 F S APCLF=$O(^XTMP("APCLCH2",APCLJOB,APCLBTH,"DATA",APCLC,APCLF)) Q:APCLF'=+APCLF D
  1. ..S APCL1="OUTDXC",APCL3="OUTDX" D SET1
  1. ..S APCL1="INDXC",APCL3="INDX" D SET1
  1. ..S APCL1="OUTCATC",APCL3="OUTCAT" D SET1
  1. ..S APCL1="INCATC",APCL3="INCAT" D SET1
  1. Q
  1. SET1 ;
  1. S APCL2="^XTMP(""APCLCH2"",APCLJOB,APCLBTH,""DATA"",APCLC,APCLF,"""_APCL3_""",X)"
  1. S X="" F S X=$O(@APCL2) Q:X="" S %=^(X) S ^XTMP("APCLCH2",APCLJOB,APCLBTH,"DATA",APCLC,APCLF,APCL1,9999999-%,X)=%
  1. Q