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

APCLGCDC.m

Go to the documentation of this file.
  1. APCLGCDC ; IHS/CMI/LAB - APCL Visits to General and Dental Clinic (Same Day) ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;IHS/CMI/LAB - new report per task order
  1. ;
  1. ;this routine will print a list of visits that had a general clinic
  1. ;and dental clinic visit on the same day
  1. ;
  1. MAIN ;-- this is the main routine driver
  1. W:$D(IOF) @IOF
  1. W !,"This report will produce a list of patients who have had a dental clinic",!,"visit and a general clinic visit on the same day.",!!
  1. D DTR G XIT:Y<0
  1. S XBRP="PRT^APCLGCDC",XBRC="SORT^APCLGCDC"
  1. S XBRX="XIT^APCLGCDC",XBNS="APCL"
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G MAIN
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. ;
  1. DTR ;-- get the date range
  1. S %DT="AE",%DT("A")="Enter the Beginning Date: "
  1. D ^%DT
  1. Q:Y<0
  1. S APCLBDT=+Y
  1. S APCLSBDT=APCLBDT-.00001
  1. K %DT
  1. S %DT="AE",%DT("A")="Enter the End Date: "
  1. D ^%DT
  1. Q:Y<0
  1. S APCLEDT=+Y
  1. S APCLSEDT=APCLEDT+.99999
  1. K %DT
  1. K DIR
  1. ;
  1. S APCLLOC=$$GETLOC^APCLOCCK
  1. I APCLLOC=-1 S Y=-1
  1. Q
  1. ;
  1. SORT ;-- get loop through the visit file
  1. S APCLH=$H,APCLJ=$J
  1. S APCLDESC="Visits to General Clinic and Dental Clinic on same day"
  1. S ^XTMP("APCLGCDC",APCLJ,APCLH,0)=$$DT14_U_DT_U_APCLDESC
  1. S APCLGEN=$O(^DIC(40.7,"B","GENERAL",0))
  1. S APCLDEN=$O(^DIC(40.7,"B","DENTAL",0))
  1. S APCLDA=APCLSBDT F S APCLDA=$O(^AUPNVSIT("B",APCLDA)) Q:APCLDA>APCLSEDT!(APCLDA="") D
  1. . S APCLDFN=0 F S APCLDFN=$O(^AUPNVSIT("B",APCLDA,APCLDFN)) Q:APCLDFN="" D
  1. .. Q:'$D(^AUPNVSIT(APCLDFN,0))
  1. .. Q:$P(^AUPNVSIT(APCLDFN,0),U,5)=""
  1. .. Q:$$DEMO^APCLUTL($P(^AUPNVSIT(APCLDFN,0),U,5),$G(APCLDEMO))
  1. .. Q:$P(^AUPNVSIT(APCLDFN,0),U,8)=""
  1. .. I $$CHKLOC^APCLOCCK(APCLLOC,$P(^AUPNVSIT(APCLDFN,0),U,6))=0 Q
  1. .. S APCLVDT=$P(APCLDA,".")
  1. .. S APCLPAT=$P(^(0),U,5)
  1. .. S APCLCLN=$P(^(0),U,8)
  1. .. I APCLCLN=APCLGEN S $P(^TMP("APCLGCDC",$J,APCLPAT,APCLVDT),U)=1
  1. .. I APCLCLN=APCLDEN S $P(^TMP("APCLGCDC",$J,APCLPAT,APCLVDT),U,2)=1
  1. S APCLTP=0 F S APCLTP=$O(^TMP("APCLGCDC",$J,APCLTP)) Q:APCLTP="" D
  1. . S APCLTV=0 F S APCLTV=$O(^TMP("APCLGCDC",$J,APCLTP,APCLTV)) Q:APCLTV="" D
  1. .. I $P(^TMP("APCLGCDC",$J,APCLTP,APCLTV),U),$P(^TMP("APCLGCDC",$J,APCLTP,APCLTV),U,2) S ^XTMP("APCLGCDC",APCLJ,APCLH,APCLTV,APCLTP)=""
  1. Q
  1. ;
  1. PRT ;-- print out the routine
  1. D XHDR
  1. I '$D(^XTMP("APCLGCDC",APCLJ,APCLH)) W !!,"No visits to report." G EOJ
  1. S APCLXV=0 F S APCLXV=$O(^XTMP("APCLGCDC",APCLJ,APCLH,APCLXV)) Q:APCLXV=""!$D(DIRUT) D
  1. . S APCLXP=0 F S APCLXP=$O(^XTMP("APCLGCDC",APCLJ,APCLH,APCLXV,APCLXP)) Q:APCLXP=""!$D(DIRUT) D
  1. .. D:$Y+2>IOSL HDR Q:$D(DIRUT)
  1. .. W !,$$FMTE^XLFDT(APCLXV),?20,$$VAL^XBDIQ1(2,APCLXP,.01)
  1. .. W ?55,$$HRN^AUPNPAT(APCLXP,DUZ(2))
  1. ;
  1. EOJ ;
  1. K ^XTMP("APCLGCDC",APCLJ,APCLH)
  1. K APCLH,APCLJ
  1. Q
  1. ;
  1. HDR ;-- report header
  1. I $E(IOST,1,1)="C" S DIR(0)="E" D ^DIR I Y<1 S DIRUT=1 Q
  1. XHDR W @IOF
  1. W !,?16,"General Clinic and Dental Clinic Visits (Same Day)"
  1. S APCLLOCT=$S(APCLLOC=0:"ALL",1:"SELECTED")
  1. S APCLLENG=21+$L(APCLLOCT)
  1. W !,?((80-APCLLENG)/2),"Location of Visits: ",APCLLOCT
  1. W !!,"Date Range: "_$$FMTE^XLFDT(APCLBDT)_" to "_$$FMTE^XLFDT(APCLEDT)
  1. W !
  1. W !,"Visit Date",?20,"Patient Name",?55,"Chart #",!
  1. F XI=1:1:80 W "-"
  1. Q
  1. ;
  1. XIT ;-- kill variables and quit
  1. K APCLBDT,APCLCLN,APCLDA,APCLDEN,APCLDESC,APCLDFN,APCLEDT,APCLGEN
  1. K APCLPAT,APCLSEDT,APCDTP,APCLTV,APCLVDT,APCLXP,APCLXV,APCLSBDT
  1. K X,X1,X2,XBNS,XBRC,XBRP,XBRX,XI,Y,APCLTP
  1. K ^TMP("APCLGCDC",$J)
  1. Q
  1. ;
  1. DT14() ;-- return 14 days in the future
  1. S X1=DT,X2=+14 D C^%DTC
  1. Q X
  1. ;