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

APCDVCHK.m

Go to the documentation of this file.
  1. APCDVCHK ; IHS/CMI/LAB - CHECK VISIT ;
  1. ;;2.0;IHS PCC SUITE;**2,8,11,15,17**;MAY 14, 2009;Build 18
  1. ;
  1. ; APCDVSIT must equal the VISIT DFN to be checked.
  1. ; U must exist and be equal to "^".
  1. ;
  1. START ;
  1. ;D EN1^APCDKMM ;for future use with X Linkage
  1. Q:'$D(^AUPNVSIT(APCDVSIT))
  1. S APCDVREC=^AUPNVSIT(APCDVSIT,0)
  1. Q:"EX"[$P(APCDVREC,U,7)
  1. S APCDVCLC=$P(APCDVREC,U,6)
  1. Q:APCDVCLC=""
  1. S APCDVCLC=$E($P(^AUTTLOC(APCDVCLC,0),U,10),5,6)
  1. I '$D(^AUPNVPOV("AD",APCDVSIT)) W !,"WARNING: No purpose of visit entered for this visit!",!,$C(7)
  1. I '$D(^AUPNVPRV("AD",APCDVSIT)) W !,"WARNING: No provider of service entered for this VISIT!",!,$C(7)
  1. I $P(APCDVREC,U,8)="",$P(APCDVREC,U,7)="A","I6TP"[$P(APCDVREC,U,3),APCDVCLC>0,APCDVCLC<50 W !,"WARNING: No Clinic Type entered for this visit!",!,$C(7) S APCDNOCL=""
  1. I $P(APCDVREC,U,7)="H",$P(APCDVREC,U,3)'="C",'$D(^AUPNVINP("AD",APCDVSIT)) W !,"WARNING: No V Hospitalization record has been created!",$C(7)
  1. I $P(APCDVREC,U,3)="C",'$D(^AUPNVCHS("AD",APCDVSIT)) W !,"WARNING: No V CHS record has been created!",$C(7)
  1. I $P(APCDVREC,U,7)="H",$P(APCDVREC,U,3)'["CV" D ^APCDVCH
  1. S (APCDVC1,APCDVC2)=0 F APCDVCL=0:0 S APCDVC2=$O(^AUPNVPRV("AD",APCDVSIT,APCDVC2)) Q:APCDVC2="" I $P(^AUPNVPRV(APCDVC2,0),U,4)="P" S APCDVC1=APCDVC1+1
  1. I APCDVC1=0 W !,"WARNING: No primary provider entered for this visit!",!,$C(7)
  1. E I APCDVC1>1 W !,"WARNING: Multiple primary providers were entered for this visit!",!,$C(7) S APCDMPQ=0
  1. I $D(^AUPNVPRC("AD",APCDVSIT)),$P(APCDVREC,U,7)'="H" D CHKPRC
  1. I $$CLINIC^APCLV(APCDVSIT,"C")=30 D CHKER ;IHS/CMI/GRL
  1. I "AOSCTRM"[$P(^AUPNVSIT(APCDVSIT,0),U,7),$P(^APCCCTRL(DUZ(2),0),U,12)]"",$P($P(^AUPNVSIT(APCDVSIT,0),U),".")>$P(^APCCCTRL(DUZ(2),0),U,12) D CHKEHR
  1. ;above added for EHR and auditing of visits, d/e created
  1. CHKH ;
  1. I $P(APCDVREC,U,7)="H",$P(APCDVREC,U,3)'="C" D CHKH1
  1. D CHKCHA
  1. K APCDVC1,APCDVC2,APCDVCL,APCDVCLC,APCDERR,APCD1,APCD2,APCDVCPV,APCDTS,APCDDS,APCDVREC,APCDDX,APCDOPDX,APCDDXP,APCDFOUN,APCDPX
  1. Q
  1. ;
  1. CHKPRC ;check outpatient procedures vs. dx for priv. billing
  1. K APCDDXP S APCDDX=0 F S APCDDX=$O(^AUPNVPOV("AD",APCDVSIT,APCDDX)) Q:APCDDX="" S APCDDXP($P(^AUPNVPOV(APCDDX,0),U))=""
  1. K APCDOPDX S APCDPX=0 F S APCDPX=$O(^AUPNVPRC("AD",APCDVSIT,APCDPX)) Q:APCDPX="" S APCDOPDX=$P(^AUPNVPRC(APCDPX,0),U,5) I APCDOPDX]"" D CHKDXOP2
  1. Q
  1. CHKDXOP2 ;
  1. K APCDFOUN F S APCDDX=$O(APCDDXP(APCDDX)) Q:APCDDX="" I APCDDX=APCDOPDX S APCDFOUN=1
  1. I '$D(APCDFOUN) W !,$C(7),"WARNING: Operation ",$$CODEC^ICDEX(80.1,$P(^AUPNVPRC(APCDPX,0),U,1))," Not for Diagnosis in V POV file!",!,"Notify your Supervisor or Correct!",!
  1. Q
  1. ;
  1. CHKH1 ;
  1. ;NO LONGER NECESSARY WITH THE DATA WAREHOUSE EXPORT, PCC EXPORT NO LONGER USED
  1. Q:'$D(^AUPNVINP("AD",APCDVSIT))
  1. Q:'$D(^AUPNVPRV("AD",APCDVSIT))
  1. Q:'$D(^AUPNVPOV("AD",APCDVSIT))
  1. K DIR,DIRUT,DUOUT,DTOUT,X,Y
  1. S DIR(0)="Y",DIR("A")="Is this Hospitalization visit ready for export to Headquarters (coding complete)",DIR("B")="Y" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. Q:$D(DIRUT)
  1. W !,"This visit will be exported to the Data Warehouse."
  1. I Y=0 W !,"Don't forget to finalize the coding so this Hospitalization visit ",!,"can be exported.",! Q
  1. ;W !,"This Hospitalization Visit will now be considered complete and will be",!,"exported to Headquarters with your next regular PCC export!",!
  1. ;W !,"This visit will be exported to the Data Warehouse."
  1. S DIE="^AUPNVINP(",DA=$O(^AUPNVINP("AD",APCDVSIT,"")),DR=".15///@" D ^DIE
  1. Q
  1. CHKEHR2 ;
  1. ;if visit is deleted, don't bother with status update
  1. I $P(^AUPNVSIT(APCDVSIT,0),U,11) Q ;visit is deleted.
  1. I "AOSCTRM"[$P(^AUPNVSIT(APCDVSIT,0),U,7),$P(^APCCCTRL(DUZ(2),0),U,12)]"",$P($P(^AUPNVSIT(APCDVSIT,0),U),".")>$P(^APCCCTRL(DUZ(2),0),U,12) D CHKEHR
  1. Q
  1. CHKEHR ;
  1. Q:$G(APCDCAF)="IN CAF"
  1. ;K DIR,DIRUT,DUOUT,DTOUT,X,Y
  1. ;S DIR(0)="Y",DIR("A")="Is coding complete for this visit (is all data entry completed)",DIR("B")=$P($G(^APCDSITE(DUZ(2),0)),U,29) D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. ;I $D(DIRUT) S APCDYN=0 G N
  1. ;S APCDYN=Y
  1. N W !!,"Please update the visit status for this visit.",! D UPDATE Q
  1. CHKCHA ;
  1. Q:'$P($G(^APCDSITE(DUZ(2),0)),U,35)
  1. CHA ;
  1. Q:DUZ("AG")'="I"
  1. Q:"ETC"[$P(APCDVREC,U,7)
  1. Q:"V"[$P(APCDVREC,U,3)
  1. Q:'$D(^AUPNVPRV("AD",APCDVSIT))
  1. Q:'$D(^AUPNVPOV("AD",APCDVSIT))
  1. S APCDRV("CHA")=0
  1. S (APCDRV(1),APCDRV(2))=0
  1. F S APCDRV(2)=$O(^AUPNVPRV("AD",APCDVSIT,APCDRV(2))) Q:APCDRV(2)="" D DISC
  1. ;check secondary providers
  1. CHA2 ;
  1. Q:APCDRV("CHA")=0
  1. I '$D(^AUPNVTM("AD",APCDVSIT)) W !!,"WARNING: COMMUNITY HEALTH NURSE RECORD - NO ACTIVITY TIME ENTERED",$C(7)
  1. K APCDRV
  1. Q
  1. DISC ;
  1. D DISC200
  1. Q
  1. DISC200 ;
  1. S APCDRV("AP")=$P(^AUPNVPRV(APCDRV(2),0),U,1),APCDRV("DISC")=""
  1. Q:'$D(^VA(200,APCDRV("AP")))
  1. S APCDRV("CHA DISC")=$$PROVCLSC^XBFUNC1(APCDRV("AP"))
  1. Q:APCDRV("CHA DISC")'=13&(APCDRV("CHA DISC")'=32)
  1. S APCDRV("CHA")=APCDRV("CHA")+1
  1. Q
  1. CHKER ;IHS/CMI/GRL Check for ER visit w/o V ER record
  1. K DIR,DA,X,Y
  1. Q:$D(^AUPNVER("AD",APCDVSIT))
  1. W !!,"WARNING ... Emergency Clinic visit with NO ER record!",$C(7),!
  1. S DIR(0)="Y",DIR("A")="Quit without entering ER Record"
  1. S DIR("A",1)="ER record with a minimum of Disposition and Departure date and time recommended."
  1. S DIR("A",2)=""
  1. S DIR("B")="N"
  1. D ^DIR K DIR
  1. I Y=1 Q
  1. I Y=0 S APCDMPQ=0 Q
  1. Q
  1. ;
  1. UPDATE ;
  1. K DIC,DD,D0,DO
  1. S X=$$NOW^XLFDT,DIC="^AUPNVCA(",DIC(0)="L",DIADD=1,DLAYGO=9000010.45,DIC("DR")=".02////"_$P(^AUPNVSIT(APCDVSIT,0),U,5)_";.03////"_APCDVSIT_";.05////"_DUZ_";1216////"_$$NOW^XLFDT D FILE^DICN
  1. I Y=-1 W !!,"updating status failed" H 2 G UPDATEX
  1. K DIC,DD,D0,DIADD,DLAYGO
  1. S (APCDVCA,DA)=+Y
  1. UPD0 ;EP
  1. K DIC,DD,D0,DO
  1. ;
  1. UPD1 ;
  1. D ^XBFMK
  1. S DA=APCDVCA,DIE="^AUPNVCA(",DR=".04" D ^DIE K DA,DIE,DR
  1. S APCDCAR=$P(^AUPNVCA(APCDVCA,0),U,4)
  1. I APCDCAR="" W !!,"You must enter a status" G UPD1
  1. S APCDERR=$$ERRORCHK^APCDCAF(APCDVSIT)
  1. I APCDERR]"",APCDCAR="R" W !!,"This visit has the following error: ",APCDERR,!,"You cannot mark a visit as Reviewed/Completed if there is an error." S DA=APCDVCA,DIE="^AUPNVCA(",DR=".04///I" D ^DIE G UPD1
  1. S DIE="^AUPNVSIT(",DA=APCDVSIT,DR=".13////"_DT_";1111////"_APCDCAR D ^DIE K DIE,DA,DR
  1. I APCDCAR="R" D RNU^APCDCAF4 G UPDATEX
  1. R ;
  1. D EN^XBNEW("EN^APCDCAF6(APCDVSIT)","APCDVSIT")
  1. I '$$FINDPEND^APCDCAF6(APCDVSIT),$$VALI^XBDIQ1(9000010,APCDVSIT,1111)'="R",$P(^APCDSITE(DUZ(2),0),U,32) W !!,"A chart Deficiency reason is required." H 3 G R
  1. ;
  1. UPDATEX ;
  1. K DIADD,DLAYGO
  1. D ^XBFMK
  1. K APCDCAR,APCDVCA
  1. Q
  1. ;
  1. ADDCANT ;
  1. S ^AUPNCANT(APCDVSIT,0)=APCDVSIT_U_$P(^AUPNVSIT(APCDVSIT,0),U,5)
  1. S DA=APCDVSIT,DIK="^AUPNCANT(" D IX1^DIK
  1. Q