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

APCDEAPC.m

Go to the documentation of this file.
  1. APCDEAPC ; IHS/CMI/LAB - ENTRY OF DATA FROM APC FORMS ;
  1. ;;2.0;IHS PCC SUITE;**17**;MAY 14, 2009;Build 18
  1. ;FILE 200 CONV
  1. ;
  1. ;
  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. D ^APCDEIN S APCDTPLT=0
  1. Q:APCDFLG
  1. PROC ;
  1. D GETLOC
  1. G:APCDLOC="" EOJ
  1. S APCDDATE="" F D GETDATE Q:APCDDATE="" F S APCDPAT="" D GETPAT Q:APCDPAT="" D PROCESS
  1. D EOJ
  1. Q
  1. ;
  1. ;
  1. ;
  1. GETLOC ; GET LOCATION OF ENCOUNTER
  1. S APCDLOC="",APCDTYPE="",APCDCAT=""
  1. S APCDTYPE=$P(APCDPARM,U,11) I APCDTYPE="" W !!,"Default TYPE FOF VISIT NOT in Site Parameter File",$C(7),$C(7) H 4 Q
  1. S APCDCAT="A"
  1. S APCDLOC="" I $D(APCDDEFL),APCDDEFL]"" S DIC("B")=$P(^DIC(4,APCDDEFL,0),U)
  1. S DIC("A")="Enter LOCATION of VISIT......: ",DIC="^AUTTLOC(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. S APCDLOC=+Y
  1. Q
  1. ;
  1. ;
  1. GETDATE ; GET DATE OF ENCOUNTER
  1. S APCDDATE=""
  1. W !,"Enter VISIT DATE.............: " R X:$S($D(DTIME):DTIME,1:300) S:'$T X=""
  1. Q:X=""!(X="^")
  1. S %DT="ET" D ^%DT G:Y<0 GETDATE
  1. I Y>DT W " <Future dates not allowed>",$C(7),$C(7) K X G GETDATE
  1. S (APCDDATE,APCDHDAT)=Y
  1. Q
  1. GETPAT ; GET PATIENT
  1. S APCDDATE=APCDHDAT
  1. W:$D(IOF) @IOF W !!,"Entering forms for ",$P(^DIC(4,APCDLOC,0),U)," for visit date ",$$FMTE^XLFDT(APCDDATE,1)
  1. S APCDPAT=""
  1. S DIC("A")="Enter PATIENT NAME...........: ",DIC="^AUPNPAT(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. I $D(APCDPARM),$P(APCDPARM,U,3)="Y" W !?25,"Ok" S %=1 D YN^DICN Q:%'=1
  1. S APCDPAT=+Y
  1. I DUZ("AG")="I" D ^APCDEMDI I $D(^APCDSITE(DUZ(2),11)) D ^APCDECC
  1. Q
  1. ;
  1. PROCESS ; PROCESS PATIENT
  1. TIME ;
  1. S DIR(0)="SB^1:8AM - NOON;2:NOON - 5PM;3:5PM - 10PM;4:10PM - 8AM",DIR("A")="Enter TIME OF DAY" K DA D ^DIR K DIR
  1. I $D(DIRUT) W !,"Time is required",!! Q
  1. S APCDDATE=APCDDATE_"."_$S(Y=1:"08",Y=2:12,Y=3:17,Y=4:22,1:12)
  1. CLINIC ;
  1. K DIC S DIC(0)="AEMQ",DIC="^DIC(40.7,",DIC("A")="Enter TYPE OF CLINIC CODE....: " D ^DIC K DIC
  1. I Y<0 W !!,"Clinic is required",!! H 2 Q
  1. ;S DIR(0)="9000010,.08",DIR("A")="Enter TYPE OF CLINIC CODE...." K DA D ^DIR K DIR
  1. ;I $D(DIRUT) W !!,"Clinic is required",!! Q
  1. S APCDCLN="`"_+Y
  1. D VISIT
  1. Q
  1. ;
  1. VISIT ; create visit
  1. ;W !!,"Creating PCC Visit for ",$P(^DPT(APCDPAT,0),U)," on ",$$FMTE^XLFDT(APCDDATE,"1P"),!!
  1. S X=$$FMTE^XLFDT(APCDDATE,1) X $P(^DD(9000010,.01,0),U,5,99)
  1. I '$D(X) W !!,"Visit information NOT correct for this patient.",!,$C(7),$C(7) H 3 Q
  1. K APCDALVR
  1. D ^APCDALV
  1. I $D(APCDALVR("APCDAFLG")) W !!,$C(7),$C(7),"Visit creation failed!!",! Q
  1. I '$G(APCDVSIT) W !!,"No visit selected!!" Q
  1. ;I $D(APCDVSIT("NEW")),$P(^APCCCTRL(DUZ(2),0),U,12)]"",$P($P(^AUPNVSIT(APCDVSIT,0),U),".")>$P(^APCCCTRL(DUZ(2),0),U,12) S DA=APCDVSIT,DIE="^AUPNVSIT(",DR="1111///R" D ^DIE K DIE,DA,DR
  1. ;above added for EHR and auditing of visits, d/e created
  1. K APCDALVR
  1. D PROVIDER
  1. I '$$PRIMPROV^APCLV(APCDVSIT,"I") W !!,$C(7),$C(7),"Primary Provider Not Entered correctly. Deleting incomplete visit.",! H 5 D DELETE Q
  1. D APCPOV
  1. I '$$PRIMPOV^APCLV(APCDVSIT,"I") W !!,$C(7),$C(7),"Purpose of Visit Not Entered correctly. Deleting incomplete visit.",! H 5 D DELETE Q
  1. D MNEPROC
  1. Q
  1. MNEPROC ; PROCESS MNEMONICS UNTIL DONE
  1. W !!,"You may now enter any other information using the PCC mnemonics.",!
  1. S APCDMPQ=0
  1. F D GETMNE D:$D(APCDEQX) CHKEHR2^APCDVCHK I APCDMPQ Q
  1. D GETMNEK
  1. K APCDMPQ
  1. Q
  1. ;
  1. GETMNE ; GET MNEMONIC
  1. W !
  1. S DIC="^APCDTKW(",DIC(0)="AEMQ",DIC("A")="MNEMONIC: ",DIC("S")="I $L($P(^(0),U))<5" D ^DIC K DIC("A"),DIC("S")
  1. I Y<0 D CHECK^APCDEGP0 Q
  1. S APCDMNE=+Y,APCDMNE("NAME")=$P(Y,U,2)
  1. K APCDMOD
  1. D ^APCDEA3
  1. I $D(APCDEQX) D ^APCDEQX I $D(APCDEQX) S APCDMPQ=1 Q
  1. I $D(APCDMOD) W !!,"Switching to Modify Mode for ONE Mnemonic ONLY!" S APCDMODE="M",APCDVLK=APCDVSIT D GETMNE K APCDVLK,APCDMOD S APCDMODE="A" W !!,"Switching back to ENTER Mode!" Q
  1. Q
  1. ;
  1. GETMNEK ; KILL GETMNE SPECIFIC VARIABLES
  1. K APCDVSIT,APCDEGX,APCDEQX
  1. Q
  1. APCPOV ;get APC RECODES AND FILE
  1. K APCDALVR
  1. S DIC="^AUTTRCD(",DIC(0)="AEMQ",DIC("A")="Enter APC CODE...............: " D ^DIC K DIC,DA
  1. I Y=-1&((X="")!(X="^"))&('$$PRIMPOV^APCLV(APCDVSIT,"I")) G ICDPOV
  1. Q:Y=-1
  1. S APCDAPCC=$P(Y,U,2),APCDAPC=+Y I APCDAPCC>699&(APCDAPCC<800) D INJ
  1. S APCDICD=$P(^AUTTRCD(APCDAPC,0),U,6) I APCDICD="" W !!,$C(7),$C(7),"NO ICD CODE ASSOCIATED WITH APC CODE ",APCDAPCC H 3 Q
  1. S APCDALVR("APCDTPOV")=APCDICD
  1. S APCDALVR("APCDVSIT")=APCDVSIT,APCDALVR("APCDATMP")="[APCDALVR 9000010.07 (ADD)]",APCDALVR("APCDPAT")=APCDPAT
  1. S APCDALVR("APCDTNQ")=$P(^AUTTRCD(APCDAPC,0),U,3)
  1. D ^APCDALVR
  1. I $D(APCDALVR("APCDAFLG")) W !!,$C(7),$C(7),"Creating V Provider failed..."
  1. G APCPOV
  1. Q
  1. ICDPOV ;
  1. K APCDALVR
  1. S DIC="^APCDTKW(",DIC(0)="E",X="IPV" D ^DIC K DIC,DA
  1. I Y=-1 W !!,$C(7),$C(7),"Can't find IPV mnemonic!!",! H 4 Q
  1. S APCDMNE=+Y,APCDMNE("NAME")=$P(Y,U,2)
  1. D ^APCDEA3
  1. Q
  1. PROVIDER ;
  1. X:$D(^DD(9000010.06,.01,12.1)) ^DD(9000010.06,.01,12.1)
  1. S DIC=$S($P(^DD(9000010.06,.01,0),U,2)[200:"^VA(200,",1:"^DIC(6,"),DIC(0)="AEMQ",DIC("A")=$S('$$PRIMPROV^APCLV(APCDVSIT,"I"):"Enter PRIMARY Provider.......: ",1:"Enter OTHER Provider.........: ") D ^DIC K DIC
  1. Q:Y=-1
  1. PROV11 ;
  1. S APCDALVR("APCDTPRO")="`"_+Y
  1. S APCDALVR("APCDVSIT")=APCDVSIT,APCDALVR("APCDATMP")="[APCDALVR 9000010.06 (ADD)]",APCDALVR("APCDPAT")=APCDPAT
  1. S APCDALVR("APCDTPS")=$S($$PRIMPROV^APCLV(APCDVSIT,"I"):"S",1:"P")
  1. D ^APCDALVR
  1. I $D(APCDALVR("APCDAFLG")) W !!,$C(7),$C(7),"Creating V Provider failed..."
  1. G PROVIDER
  1. Q
  1. INJ ;
  1. CAUSE ;
  1. S DIC="^AUTTRIJ(",DIC(0)="AEMQ",DIC("A")="Enter EXTERNAL CAUSE OF INJURY: " D ^DIC K DA,DIC
  1. I Y=-1 W !,"NO External Cause entered.",! G PLACE
  1. S APCDALVR("APCDTCI")=$P(^AUTTRIJ(+Y,0),U,3)
  1. S APCDALVR("APCDTFR")="F"
  1. PLACE ;
  1. S DIR(0)="9000010.07,.11",DIR("A")="Enter PLACE OF INJURY" K DA D ^DIR K DIR
  1. G:$D(DIRUT) CAUSEDX
  1. G:Y="" CAUSEDX
  1. S APCDALVR("APCDTPA")=Y
  1. CAUSEDX ;
  1. S DIR(0)="9000010.07,.07",DIR("A")="Enter CAUSE OF DX (if alcohol related)" K DA D ^DIR K DIR
  1. W !
  1. Q:$D(DIRUT)
  1. Q:Y=""
  1. S APCDALVR("APCDTCD")=Y
  1. Q
  1. DELETE ;
  1. S APCDVDLT=APCDVSIT D ^APCDVDLT
  1. W !!,"Deleted.",!
  1. Q
  1. EOJ ; END OF JOB
  1. D KILL^AUPNPAT
  1. K APCDVSIT,APCDAPC,APCDAPCC,APCDHDAT,APCDDATE,APCDLOC,APCDTYPE,APCDCAT,APCDMNE,APCDALVR,APCDICD,APCDRV,APCDTCB,APCDTCM,APCDTORH
  1. D ^APCDEKL
  1. Q
  1. TEXT ;
  1. ;;PCC Data Entry Module
  1. ;;
  1. ;;***********************
  1. ;;* APC FORM ENTRY Mode *
  1. ;;***********************
  1. ;;