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

APCDLINK.m

Go to the documentation of this file.
  1. APCDLINK ; IHS/CMI/LAB - LINK IN HOSPITAL VISITS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. HDR ; Write Header
  1. W:$D(IOF) @IOF
  1. F APCDJ=1:1:5 S APCDX=$P($T(TEXT+APCDJ),";;",2) W !?80-$L(APCDX)\2,APCDX
  1. K APCDX,APCDJ
  1. W !!
  1. PROCESS ;
  1. S APCDPAT=""
  1. D GETPAT
  1. I APCDPAT="" W !!,"No PATIENT selected!" D EOJ Q
  1. S APCDI=""
  1. D GETIN
  1. I APCDI="" W !!,"No IN-HOSPITAL Visit selected!" D EOJ Q
  1. S APCDH=""
  1. D GETHOSP
  1. I APCDH="" W !!,"No HOSPITALIZATION Visit selected!" D EOJ Q
  1. S APCDANS=""
  1. D CONFIRM
  1. I 'APCDANS W !!,"Leaving this option BYE!",! D EOJ Q
  1. S APCDFAIL="" D LINK
  1. I APCDFAIL=1 W !!,"The LINK failed!! Try again later."
  1. D EOJ
  1. Q
  1. GETPAT ; GET PATIENT
  1. W !
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. S APCDPAT=+Y
  1. Q
  1. ;
  1. GETIN S DIR(0)="DO^::EP",DIR("A")="Enter IN-HOSPITAL Visit date" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. K APCDLKT
  1. S APCDLDC=Y,(APCDLI,APCDLV)=0 K Y
  1. F S APCDLV=$O(^AUPNVSIT("AC",APCDPAT,APCDLV)) Q:APCDLV="" I APCDLDC=$P(+^AUPNVSIT(APCDLV,0),"."),'$P(^(0),U,11),$P(^(0),U,7)="I" S APCDLI=APCDLI+1,APCDLKT(APCDLI)=APCDLV
  1. I '$D(APCDLKT) W !,"No In-Hospital Visit on that date for this patient!" Q
  1. I APCDLI=1 S APCDI=APCDLKT(1) S DA=APCDI D DISP Q
  1. D SELECT
  1. I APCDDFN="" Q
  1. S APCDI=APCDDFN S DA=APCDI D DISP Q
  1. Q
  1. SELECT ; SELECT EXISTING VISIT
  1. W !!,"PATIENT: ",$P(^DPT(APCDPAT,0),U)," has one or more IN-HOSPITAL Visits on this date.",!
  1. S APCDLI="" F S APCDLI=$O(APCDLKT(APCDLI)) Q:APCDLI="" S APCDLX=^AUPNVSIT(APCDLKT(APCDLI),0) D WRITE
  1. S APCDLV=""
  1. SRDR S APCDDFN="" W !!,"Select one: " R APCDLI:DTIME E S APCDLI="" Q
  1. Q:APCDLI=""!(APCDLI="^")
  1. I APCDLI'?1N.N W $C(7),$C(7) G SELECT
  1. I '$D(APCDLKT(APCDLI)) W $C(7),$C(7) G SELECT
  1. S APCDDFN=APCDLKT(APCDLI)
  1. Q
  1. ;
  1. GETHOSP S DIR(0)="DO^::EP",DIR("A")="Enter HOSPITALIZATION Admission date" D ^DIR K DIR S:$D(DUOUT) DIRUT=1 I $D(DTOUT) S X=""
  1. K APCDLKT
  1. S APCDLDC=Y,(APCDLI,APCDLV)=0 K Y
  1. F S APCDLV=$O(^AUPNVSIT("AC",APCDPAT,APCDLV)) Q:APCDLV="" I APCDLDC=$P(+^AUPNVSIT(APCDLV,0),"."),'$P(^(0),U,11),$P(^(0),U,7)="H" S APCDLI=APCDLI+1,APCDLKT(APCDLI)=APCDLV
  1. I '$D(APCDLKT) W !,"No Hospitalization Visit on that date for this patient!" Q
  1. I APCDLI=1 S APCDH=APCDLKT(1) S DA=APCDH D DISP Q
  1. S APCDDFN=""
  1. D SELECT
  1. I APCDDFN="" Q
  1. S (APCDH,DA)=APCDDFN D DISP Q
  1. Q
  1. ;
  1. S DA=APCDI,DIE="^AUPNVSIT(",DR=".12///`"_APCDH D ^DIE
  1. I $D(Y) S APCDFAIL=1 Q
  1. ; -- IHS/DAOU/EJN for HL7
  1. Q:'$G(APCDI)
  1. I $T(A08^BTSEVENT)]"" S APCDHLER=$$A08^BTSEVENT(APCDI) K APCDHLER
  1. ; -- END HL7 mods
  1. W !,"In-Hospital Visit Linked!!"
  1. Q
  1. CONFIRM ;
  1. S DIR(0)="Y",DIR("A")="Do you want to continue",DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) S APCDANS=0 Q
  1. S APCDANS=Y
  1. Q
  1. ;
  1. WRITE ; WRITE VISITS FOR SELECT
  1. S APCDLT=$P(+APCDLX,".",2),APCDLT=$S(APCDLT="":"<NONE>",$L(APCDLT)=1:APCDLT_"0:00 ",1:$E(APCDLT,1,2)_":"_$E(APCDLT,3,4)_$E("00",1,2-$L($E(APCDLT,3,4)))_" ")
  1. S APCDLOC=""
  1. I $P(APCDLX,U,6),$D(^AUTTLOC($P(APCDLX,U,6),0)) S APCDLOC=$P(^(0),U,7),APCDLOC=APCDLOC_$E(" ",1,4-$L(APCDLOC))
  1. S:APCDLOC="" APCDLOC="...."
  1. W !,APCDLI," TIME: ",APCDLT," LOC: ",APCDLOC," TYPE: ",$P(APCDLX,U,3)," CATEGORY: ",$P(APCDLX,U,7)," CLINIC: ",$S($P(APCDLX,U,8)]"":$P(^DIC(40.7,$P(APCDLX,U,8),0),U),1:"<NONE>")
  1. K APCDLT,APCDLOC
  1. Q
  1. ;
  1. DISP ;
  1. W !
  1. S DIC="^AUPNVSIT(" D EN^DIQ K DIC,DIQ,DR,Y,X,S,A,DK,DL,D0
  1. W !,"Do you want to see the Entire Visit (V FILE entries)?" S %=2 D YN^DICN S %Y=$E(%Y)
  1. I "Nn"[%Y K DA Q
  1. S APCDVDSP=DA D ^APCDVDSP K DA
  1. Q
  1. EOJ ;
  1. K APCDLDC,APCDLDT,APCDLI,APCDLKT,APCDLOC,APCDLT,APCDLV,APCDLX,Y,APCDPAT,APCDI,APCDH,APCDDFN,DA,DIC,Y,%Y,DR,X,Y,%,%DT,D,C,D0,DA,DICR,DIE,DIH,DIU,DIV,DIW,APCDFAIL,APCDANS
  1. Q
  1. TEXT ;
  1. ;;PCC Data Entry Module
  1. ;;
  1. ;;*********************************************
  1. ;;* Link In-Hospital Visit to Hospitalization *
  1. ;;*********************************************
  1. Q