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

APCLCH1.m

Go to the documentation of this file.
  1. APCLCH1 ; IHS/CMI/LAB - COMMUNITY HEALTH PROFILE ;
  1. ;;2.0;IHS PCC SUITE;**2,7**;MAY 14, 2009
  1. ;
  1. ;
  1. START ;
  1. S APCLJOB=$J,APCLBTH=$H
  1. K ^XTMP("APCLCH1",APCLJOB,APCLBTH)
  1. D XTMP^APCLOSUT("APCLCH1","PCC - COMMUNITY HEALTH PROFILE")
  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 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("APCLCH1",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. ST ;;template of patients?
  1. S APCLSEAT=""
  1. S DIR(0)="S^A:ALL PATIENTS;S:SEARCH TEMPLATE OF PATIENTS",DIR("A")="Include which patients in the tally of diagnoses",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) COMM
  1. I Y="A" G ZIS
  1. S APCLSEAT=""
  1. ;
  1. W ! S DIC("S")="I $P(^(0),U,4)=9000001" S DIC="^DIBT(",DIC("A")="Enter Patient SEARCH TEMPLATE name: ",DIC(0)="AEMQ" D ^DIC K DIC,DA,DR,DICR
  1. I Y=-1 S APCLSEAT="" G ST
  1. S APCLSEAT=+Y
  1. ZIS ;
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G COMM
  1. S XBRP="^APCLCH1P",XBRC="^APCLCH11",XBNS="APCL",XBRX="XIT^APCLCH1"
  1. D ^XBDBQUE
  1. Q
  1. ;
  1. XIT ;
  1. K APCLQUIT,APCLCOMT,APCLBD,APCLED,APCLDFN,APCLSD,APCLX,APCLY,APCLER,APCL1,APCL2,APCL3,APCL4,APCLAGEP,APCLC,APCLCOMI,APCLLCOM,APCLMDFN,APCLSCOM,APCLSU,APCLSUF,APCLVAL
  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("APCLCH1",APCLJOB,APCLBTH,"COMMUNITIES",$P(^AUTTCOM(+Y,0),U))=""
  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("APCLCH1",APCLJOB,APCLBTH,"COMMUNITIES",$P(^AUTTCOM(X,0),U))=""
  1. Q
  1. ;
  1. T ;taxonomy - call qman interface
  1. K APCLCOMM
  1. S X="COMMUNITY",DIC="^AMQQ(5,",DIC(0)="FM",DIC("S")="I $P(^(0),U,14)" D ^DIC K DIC,DA I Y=-1 W "OOPS - QMAN NOT CURRENT - QUITTING" G XIT
  1. D PEP^AMQQGTX0(+Y,"APCLCOMM(")
  1. I '$D(APCLCOMM) G COMM
  1. I $D(APCLCOMM("*")) K APCLCOMM,^XTMP("APCLCH1",APCLJOB,APCLBTH,"COMMUNITIES") W !!,$C(7),$C(7),"ALL communities is NOT an option with this report",! G T
  1. S X="" F S X=$O(APCLCOMM(X)) Q:X="" S ^XTMP("APCLCH1",APCLJOB,APCLBTH,"COMMUNITIES",X)=""
  1. K APCLCOMM
  1. Q
  1. INFORM ;tell user what is going on
  1. ;
  1. W:$D(IOF) @IOF
  1. W !!?10,"************* COMMUNITY HEALTH PROFILE ************"
  1. W !!,"This report will present a profile of health care for patients who reside in a",!,"community or communities that you select. You will be asked to enter a date",!,"range and to identify the communities of interest.",!!
  1. Q
  1. SET ;EP - ENTRY POINT
  1. S APCLC="" F S APCLC=$O(^XTMP("APCLCH1",APCLJOB,APCLBTH,"RP",APCLC)) Q:APCLC="" D
  1. .S APCL4="REPORT",APCL1="OUTDXC",APCL3="OUTDX" D SET1
  1. .S APCL4="REPORT",APCL1="INDXC",APCL3="INDX" D SET1
  1. .S APCL4="REPORT",APCL1="INJC",APCL3="INJ" D SET1
  1. .S APCL4="REPORT",APCL1="DENTALC",APCL3="DENT" D SET1
  1. .S APCL4="REPORT",APCL1="SURG PROCC",APCL3="SURG PROC" D SET1
  1. D SETSU
  1. Q
  1. SET1 ;
  1. S APCL2="^XTMP(""APCLCH1"",APCLJOB,APCLBTH,""RP"","""_APCLC_""","""_APCL4_""","""_APCL3_""",X)"
  1. S X="" F S X=$O(@APCL2) Q:X="" S %=^(X) S ^XTMP("APCLCH1",APCLJOB,APCLBTH,"RP",APCLC,APCL4,APCL1,9999999-%,X)=%
  1. Q
  1. SETSU ;
  1. S APCL4="SU",APCL1="OUTDXC",APCL3="OUTDX" D SETSU1
  1. S APCL4="SU",APCL1="INDXC",APCL3="INDX" D SETSU1
  1. S APCL4="SU",APCL1="INJC",APCL3="INJ" D SETSU1
  1. S APCL4="SU",APCL1="DENTALC",APCL3="DENT" D SETSU1
  1. S APCL4="SU",APCL1="SURG PROCC",APCL3="SURG PROC" D SETSU1
  1. Q
  1. SETSU1 ;
  1. S APCL2="^XTMP(""APCLCH1"",APCLJOB,APCLBTH,"""_APCL4_""","""_APCL3_""",X)"
  1. S X="" F S X=$O(@APCL2) Q:X="" S %=^(X) S ^XTMP("APCLCH1",APCLJOB,APCLBTH,APCL4,APCL1,9999999-%,X)=%
  1. Q