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

APCDCHKI.m

Go to the documentation of this file.
  1. APCDCHKI ; IHS/CMI/LAB - I-LINKER ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. ;IHS/CMI - patch 4 added check for mfi created visits
  1. W !!,"This routine will find all In-Hospital visits that are not linked to a",!,"hospitalization and link them if possible."
  1. W !!,"This process could take some time so you may want to queue the report to ",!,"print after-hours.",!
  1. W !,"A report will be printed -- please enter the device for printing."
  1. W !! S %ZIS="PQ" D ^%ZIS G:POP EOJ G:$D(IO("Q")) TSKMN
  1. INIT ;
  1. S:$D(ZTQUEUED) ZTREQ="@"
  1. K ^XTMP("ILINK",$J)
  1. S U="^",APCDIDFN=""
  1. DRIVER F S APCDIDFN=$O(^AUPNVSIT("AI",APCDIDFN)) Q:APCDIDFN'=+APCDIDFN D PROCESS
  1. D ^APCDCHKP
  1. D EOJ
  1. Q
  1. ;
  1. PROCESS ; Process each "In hospital" record
  1. ; Set variables
  1. I '$D(^AUPNVSIT(APCDIDFN,0)) K ^AUPNVSIT("AI",APCDIDFN) Q
  1. S APCDIVR=^AUPNVSIT(APCDIDFN,0)
  1. I $P(APCDIVR,U,11) K ^AUPNVSIT("AI",APCDIDFN) Q
  1. I $P(APCDIVR,U,23)=.5 K ^AUPNVSIT("AI",APCDIDFN) Q
  1. I $P($G(^AUPNVSIT(APCDIDFN,11)),U,13) K ^AUPNVSIT("AI",APCDIDFN) Q
  1. I $P(APCDIVR,U,12) K ^AUPNVSIT("AI",APCDIDFN) Q
  1. S APCDIDAT=+$P(APCDIVR,U),DFN=$P(APCDIVR,U,5),APCDITYP=$P(APCDIVR,U,3),APCDILOC=$P(APCDIVR,U,6),(APCDFND,APCDOLD,APCDHDFN)=0,APCDVD=$P(APCDIDAT,".") K APCDHOSP
  1. ; Check for hospitalization prior to (or on same day) as the "I" visit
  1. S APCDVDH=(9999999-APCDVD),APCDSVD=(APCDVDH-1)_".9999",APCDHDFN=""
  1. F S APCDSVD=$O(^AUPNVSIT("AAH",DFN,APCDSVD)) Q:APCDSVD'=+APCDSVD!($P(APCDSVD,".")<APCDVDH) D PROC2
  1. I APCDFND>1 S APCDHDFN=0 F APCDL=0:0 S APCDHDFN=$O(APCDHOSP(APCDHDFN)) Q:APCDHDFN'=+APCDHDFN S ^XTMP("ILINK",$J,"TWOHITS",APCDIDFN,APCDHDFN)=""
  1. I 'APCDFND D CHKYR
  1. ;
  1. I APCDFND=1 S APCDHDFN=$O(APCDHOSP("")),DIE="^AUPNVSIT(",DA=APCDIDFN,DR=".12///`"_APCDHDFN D
  1. .D ^DIE K DA,DR,DIE
  1. .S ^XTMP("ILINK",$J,"HIT",APCDHDFN,APCDIDFN)=APCDDCD
  1. .D CHKPROC
  1. .S AUPNVSIT=APCDHDFN D MOD^AUPNVSIT
  1. . ; -- IHS/DAOU/EJN for HL7
  1. . Q:'$G(APCDIDFN)
  1. . I $T(A08^BTSEVENT)]"" S APCDHLER=$$A08^BTSEVENT(APCDIDFN) K APCDHLER
  1. . ; -- END HL7 mods
  1. I 'APCDFND,'APCDOLD S ^XTMP("ILINK",$J,"NOHIT",APCDIDFN)=""
  1. Q
  1. ;
  1. PROC2 ;
  1. S APCDHDFN=0 F S APCDHDFN=$O(^AUPNVSIT("AAH",DFN,APCDSVD,APCDHDFN)) Q:APCDHDFN'=+APCDHDFN I APCDHDFN]"",$D(^AUPNVSIT(APCDHDFN,0)),'$P(^(0),U,11),$P(^(0),U,9) D CHECK
  1. Q
  1. CHECK ;
  1. S APCDHVR=^AUPNVSIT(APCDHDFN,0)
  1. S APCDHDAT=+$P(APCDHVR,U),APCDHTYP=$P(APCDHVR,U,3),APCDHLOC=$P(APCDHVR,U,6)
  1. CHKHOSP ; Check corresponding V Hospitalization for discharge date
  1. S APCDINPD="",APCDINPD=$S(APCDITYP="C":$O(^AUPNVCHS("AD",APCDHDFN,"")),1:$O(^AUPNVINP("AD",APCDHDFN,"")))
  1. Q:APCDINPD=""
  1. S:APCDITYP="C" APCDDCD=$P(^AUPNVCHS(APCDINPD,0),U,7)
  1. S:APCDITYP'="C" APCDDCD=$P(^AUPNVINP(APCDINPD,0),U)
  1. I APCDDCD'<APCDVD S APCDFND=APCDFND+1,APCDHOSP(APCDHDFN)=""
  1. Q
  1. CHKYR ;
  1. S %=DT-APCDVD I %>10000 I 'APCDFND S ^XTMP("ILINK",$J,"ONEYR",APCDIDFN)="",APCDOLD=1 K ^AUPNVSIT("AI",APCDIDFN)
  1. Q
  1. CHKPROC ;
  1. S APCDVPRC=0 F S APCDVPRC=$O(^AUPNVPRC("AD",APCDHDFN,APCDVPRC)) Q:APCDVPRC'=+APCDVPRC I $D(^AUPNVPRC(APCDVPRC,0)) S APCDHPRC($P(^AUPNVPRC(APCDVPRC,0),U))=APCDVPRC
  1. S APCDVPRC=0 F S APCDVPRC=$O(^AUPNVPRC("AD",APCDIDFN,APCDVPRC)) Q:APCDVPRC'=+APCDVPRC I $D(^AUPNVPRC(APCDVPRC,0)) S APCDICDP=$P(^AUPNVPRC(APCDVPRC,0),U) I $D(APCDHPRC(APCDICDP)) D DELPRC
  1. Q
  1. DELPRC ;
  1. I $P(^AUPNVPRC(APCDHPRC(APCDICDP),0),U,4)'=$P(^AUPNVPRC(APCDVPRC,0),U,4) Q
  1. ;quit if provider narratives are NOT the same - per Diana 7/12/90
  1. S ^XTMP("ILINK",$J,"PROC ERROR",APCDVPRC)=^AUPNVPRC(APCDVPRC,0)
  1. S DA=APCDVPRC,DIE="^AUPNVPRC(",DR=".01///@" D ^DIE K DA,DR,DIE
  1. I $D(Y) K ^XTMP("ILINK",$J,"PROC ERROR",APCDVPRC) Q
  1. Q
  1. EOJ ; Clean up and XIT
  1. D ^%ZISC
  1. K ^XTMP("ILINK",$J)
  1. K APCDIDFN,APCDFND,APCDOLD,APCDHDFN,DFN,APCDINPD,APCDVD,APCDIDAT,APCDSVD,APCDVDH,APCDDCD,APCDDT,APCDHDFN,APCDHOSP,APCDHV,APCDHDAT,APCDHLOC,APCDHTYP,APCDHVR,APCDILOC,APCDIVR,APCDTYPE,APCDITYP,IO("Q"),APCDPG,APCDT
  1. K APCDHPRC,APCDICDP,APCDL,APCDVPRC
  1. Q
  1. TSKMN ;
  1. K ZTSAVE
  1. S ZTCPU=$G(IOCPU),ZTIO=ION,ZTRTN="INIT^APCDCHKI",ZTDTH="",ZTDESC="PCC DATA ENTRY - IN HOSP LINK" D ^%ZTLOAD D EOJ Q