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

APCLPP2.m

Go to the documentation of this file.
  1. APCLPP2 ; IHS/CMI/LAB - ; 23 May 2014 10:44 AM
  1. ;;2.0;IHS PCC SUITE;**7,11**;MAY 14, 2009;Build 58
  1. ;
  1. ;
  1. START ;
  1. D XIT
  1. S APCLJOB=$J,APCLBTH=$H
  1. K ^XTMP("APCLPP2",APCLJOB,APCLBTH)
  1. D INFORM
  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. PROV ;
  1. K APCLPROV,APCLPRVN,APCLPRVD
  1. S APCLPT=""
  1. S DIR(0)="S^O:ONE Provider;C:COHORT or Selected Set of Providers",DIR("A")="Prepare report for",DIR("B")="O" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G GETDATES
  1. S APCLPT=Y
  1. I APCLPT="C" G PROVC
  1. PROV1 ;
  1. S DIC("A")="Prepare report for which PROVIDER: ",DIC=$S($P(^DD(9000001,.14,0),U,2)[200:"^VA(200,",1:"^DIC(6,"),DIC(0)="AEMQ" D ^DIC K DIC,DA G:Y<0 GETDATES
  1. S APCLPROV(+Y)="",APCLPRVN(+Y)=$S($P(^DD(9000001,.14,0),U,2)[200:$P(^VA(200,+Y,0),U),1:$P(^DIC(16,+Y,0),U))
  1. S APCLPRVD(+Y)=$$VAL^XBDIQ1($S($P(^DD(9000001,.14,0),U,2)[200:200,1:6),+Y,$S($P(^DD(9000001,.14,0),U,2)[200:53.5,1:2))
  1. G FAC
  1. PROVC ;cohort
  1. K APCLPROV,APCLPRVN,APCLPRVD
  1. S X="PRIMARY PROVIDER",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,"APCLPROV(")
  1. I '$D(APCLPROV) G PROV
  1. I $D(APCLPROV("*")) W !,"all not allowed with this report" K APCLPROV G PROV
  1. S Y=0 F S Y=$O(APCLPROV(Y)) Q:Y'=+Y D
  1. .S APCLPROV(Y)="",APCLPRVN(Y)=$S($P(^DD(9000001,.14,0),U,2)[200:$P(^VA(200,Y,0),U),1:$P(^DIC(16,Y,0),U))
  1. .S APCLPRVD(Y)=$$VAL^XBDIQ1($S($P(^DD(9000001,.14,0),U,2)[200:200,1:6),Y,$S($P(^DD(9000001,.14,0),U,2)[200:53.5,1:2))
  1. FAC ;
  1. S APCLSUH=""
  1. W !!,"For use in reporting Hospital and In-Hospital information, please enter",!,"your Service Unit's Hospital. If there is no hospital in your service unit",!,"press ENTER to bypass the prompt.",!
  1. S DIC(0)="AEMQ",DIC="^AUTTLOC(" D ^DIC
  1. I X="" G LS
  1. I ($D(DUOUT))!($D(DTOUT)) G PROV
  1. I Y=-1 G FAC
  1. S APCLSUH=+Y
  1. LS ;
  1. S APCLLSV=""
  1. S DIR(0)="S^L:Long Version (10 items in each list);S:Short Version (5 items in each list)",DIR("A")="Which Report would you like"
  1. S DIR("B")="S" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G FAC
  1. S APCLLSV=Y
  1. EXCL ;exclude any diagnoses codes?
  1. K APCLEXCL,APCLDXT
  1. W !!,"In the list of leading purpose of visits you have the option of excluding ",!,"certain ICD diagnoses from the list of top ten diagnoses.",!
  1. S APCLEXCL=""
  1. W !,"Do you wish to exclude any diagnoses codes from the list of "
  1. S DIR(0)="Y",DIR("A")="top "_$S(APCLLSV="L":10,1:5)_" Purpose of Visits",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) G LS
  1. S APCLEXCL=Y
  1. EXCL1 ;which ones to exclude
  1. K APCLDXT
  1. I 'APCLEXCL G ZIS
  1. W !,"Enter the diagnoses to be excluded.",!
  1. DX1 ;
  1. S X="DIAGNOSIS",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,"APCLDXT(")
  1. I '$D(APCLDXT) G EXCL
  1. I $D(APCLDXT("*")) K APCLDXT
  1. ZIS ;
  1. ST ;;template of patients?
  1. S APCLSEAT=""
  1. S DIR(0)="S^A:ALL PATIENTS;S:SEARCH TEMPLATE OF PATIENTS",DIR("A")="Which set of patients should be included in this report",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) EXCL
  1. I Y="A" G DEMO
  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. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G EXCL
  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) G XIT
  1. I $G(Y)="B" D BROWSE,XIT Q
  1. S XBRP="^APCLPP2P",XBRC="^APCLPP21",XBNS="APCL",XBRX="XIT^APCLPP2"
  1. D ^XBDBQUE
  1. Q
  1. ;
  1. XIT ;
  1. D EN^XBVK("APCL")
  1. D KILL^AUPNPAT
  1. D ^XBFMK
  1. Q
  1. BROWSE ;
  1. S XBRP="VIEWR^XBLM(""^APCLPP2P"")"
  1. S XBNS="APCL",XBRC="^APCLPP21",XBRX="XIT^APCLPP2",XBIOP=0 D ^XBDBQUE
  1. Q
  1. ;
  1. INFORM ;tell user what is going on
  1. W:$D(IOF) @IOF
  1. W $$CTR("************* PROVIDER PRACTICE DESCRIPTION REPORT ************",80)
  1. W !!,"This report will present a profile of services provided by a selected provider."
  1. W !,"You will be asked to enter a date range and to identify the provider's name.",!
  1. Q
  1. SET ;EP - ENTRY POINT
  1. S APCLC=0 F S APCLC=$O(APCLPROV(APCLC)) Q:APCLC'=+APCLC D SETC
  1. Q
  1. SETC ;
  1. S APCL4="REPORT",APCL1="COMMC",APCL3="COMM" D SET1
  1. S APCL4="REPORT",APCL1="TRIBEC",APCL3="TRIBE" D SET1
  1. S APCL4="REPORT",APCL1="SCC",APCL3="SC" D SET1
  1. S APCL4="REPORT",APCL1="LOCC",APCL3="LOC" D SET1
  1. S APCL4="REPORT",APCL1="OUTDXC",APCL3="OUTDX" D SET1
  1. S APCL4="REPORT",APCL1="INPTDXC",APCL3="INPTDX" D SET1
  1. S APCL4="REPORT",APCL1="PATEDC",APCL3="PATED" D SET1
  1. S APCL4="REPORT",APCL1="SURGPROCC",APCL3="SURGPROC" D SET1
  1. S APCL4="REPORT",APCL1="RXC",APCL3="RX" D SET1
  1. S APCL4="REPORT",APCL1="EMC",APCL3="EM" D SET1
  1. S APCL4="REPORT",APCL1="INPTSURGPROCC",APCL3="INPTSURGPROC" D SET1
  1. Q
  1. SET1 ;
  1. S APCL2="^XTMP(""APCLPP2"",APCLJOB,APCLBTH,""RP"","""_APCLC_""","""_APCL4_""","""_APCL3_""",X)"
  1. S X="" F S X=$O(@APCL2) Q:X="" S %=^(X) S ^XTMP("APCLPP2",APCLJOB,APCLBTH,"RP",APCLC,APCL4,APCL1,9999999-%,X)=%
  1. Q
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
  1. ;----------
  1. EOP ;EP - End of page.
  1. Q:$E(IOST)'="C"
  1. Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
  1. NEW DIR
  1. K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
  1. S DIR("A")="End of Report. Press return",DIR(0)="E" D ^DIR
  1. Q
  1. ;----------
  1. USR() ;EP - Return name of current user from ^VA(200.
  1. Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
  1. ;----------
  1. LOC() ;EP - Return location name from file 4 based on DUZ(2).
  1. Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
  1. ;----------
  1. ;