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

APCDEA.m

Go to the documentation of this file.
  1. APCDEA ; IHS/CMI/LAB - DATA ENTRY ENTER MODE ;
  1. ;;2.0;IHS PCC SUITE;**2**;MAY 14, 2009
  1. ;PATCH 2 commented out writing of date
  1. ;
  1. ; APCDFLG=0 ... RUN
  1. ; APCDFLG=1 ... ERROR
  1. ;
  1. ; APCDMODE=A ... ADD
  1. ; APCDMODE=M ... MOD
  1. ;
  1. HDR ; Write Header
  1. W:$D(IOF) @IOF
  1. I $D(APCDMINI) F APCDJ=7:1:11 S APCDX=$P($T(TEXT+APCDJ),";;",2) W !?80-$L(APCDX)\2,APCDX
  1. I '$D(APCDMINI) F APCDJ=1:1:5 S APCDX=$P($T(TEXT+APCDJ),";;",2) W !?80-$L(APCDX)\2,APCDX
  1. K APCDX,APCDJ,APCDEXIT
  1. W !!
  1. D ^APCDEIN
  1. Q:APCDFLG
  1. S APCDTPLT("NAME")="MNEMONIC",APCDTPLT=0,APCDLOC="" F D GETLOC Q:APCDLOC="" S APCDTYPE="" F D GETTYPE Q:APCDTYPE="" S APCDCAT="" F D GETCAT Q:APCDCAT="" D RESTOFIT
  1. D EOJ
  1. Q
  1. ;
  1. RESTOFIT S APCDDATE="" F D GETDATE Q:APCDDATE="" S APCDPAT="" D GETPAT D:APCDPAT]"" PROCESS
  1. Q
  1. ;
  1. GETTMPLT ; GET TEMPLATE
  1. Q
  1. ;
  1. GETLOC ; GET LOCATION OF ENCOUNTER
  1. Q:$D(APCDEXIT)
  1. ;S APCDLOC="" I $D(APCDDEFL),APCDDEFL]"" S DIC("B")=$P(^DIC(4,APCDDEFL,0),U)
  1. S APCDLOC=""
  1. I $G(APCDDEFL) S DIC("B")=APCDDEFL,DIC(0)="AMEBQN",DIC="^AUTTLOC(" D ^DIC K DIC
  1. I '$G(APCDDEFL) S DIC(0)="AEMQ",DIC="^AUTTLOC(" D ^DIC K DIC
  1. ;S DIC="^AUTTLOC(",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. I $P(^AUTTLOC(+Y,0),U,21)]"" W !!,"That location has been inactivated! See you supervisor." G GETLOC
  1. S APCDLOC=+Y
  1. Q
  1. ;
  1. GETTYPE ; GET TYPE OF ENCOUNTER
  1. Q:$D(APCDEXIT)
  1. S APCDTYPE=""
  1. K DTOUT,DUOUT,DIRUT,DIROUT,DIR,DA
  1. I $D(APCDDEFT),APCDDEFT]"" S DIR("B")=APCDDEFT
  1. S DIR(0)="9000010,.03O",DIR("A")="TYPE" D ^DIR K DIR
  1. I $D(DIRUT) S X="" Q
  1. S APCDTYPE=Y
  1. Q
  1. ;
  1. GETCAT ; GET SERVICE CATEGORY
  1. Q:$D(APCDEXIT)
  1. S APCDCAT=""
  1. K DTOUT,DUOUT,DIRUT,DIROUT,DIR,DA
  1. I $D(APCDDEFS),APCDDEFS]"" S DIR("B")=APCDDEFS
  1. S DIR(0)="9000010,.07O",DIR("A")="SERVICE CATEGORY" D ^DIR K DIR
  1. I $D(DIRUT) S X="" Q
  1. S APCDCAT=Y
  1. Q
  1. ;
  1. GETDATE ; GET DATE OF ENCOUNTER
  1. Q:$D(APCDEXIT)
  1. S:APCDDATE APCDODAT=APCDDATE\1
  1. S APCDDATE=""
  1. W !!,"VISIT/ADMIT DATE: " R X:$S($D(DTIME):DTIME,1:300) S:'$T X=""
  1. Q:X=""!(X="^")
  1. I X="^^" S (APCDDATE,APCDLOC,APCDCAT,APCDTYPE,APCDEXIT)="" Q
  1. I X=" ",$D(APCDODAT),APCDODAT]"" S X=APCDODAT ;W X
  1. I X["@" W " <Date only, please - no time specification>",$C(7),$C(7) K X G GETDATE ;IHS/NPO/MAW - 12/13/05 ADDED LINE TO CORRECT IF USER PUT IN A DATE WITH TIME VICE DATE ONLY
  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. K APCDODAT
  1. S APCDDATE=X
  1. GETTIME ;
  1. S APCDTIME=""
  1. I APCDTYPE="C"!("CNT"[APCDCAT) S APCDTIME="12:00"
  1. W !,"TIME OF VISIT: ",$S(APCDTIME]"":APCDTIME_"// ",1:"") R X:$S($D(DTIME):DTIME,1:300) S:'$T X="^" S:X="" X=APCDTIME
  1. S APCDTIME=""
  1. I X="^" S APCDDATE="" Q
  1. I X="" W APCDBEEP," Time Required!" G GETTIME
  1. I X["?" W !,"Enter time of visit, or 'D' for default." G GETTIME
  1. I X="D" S X="12:00" W " ",X
  1. EDTIME S APCDTIME=X,X=APCDDATE_"@"_APCDTIME
  1. X ^TMP("APCD",$J,"APCDDATE")
  1. I '$D(X) W APCDBEEP G GETDATE
  1. I X="-1" W ! G GETDATE
  1. S APCDDATE=X
  1. Q
  1. GETPAT ;EP - GET PATIENT
  1. W !
  1. S APCDPAT=""
  1. I $G(APCDCAF("IN CAF W/PATIENT")) S APCDPAT=APCDCAF("IN CAF W/PATIENT") S Y=APCDPAT D ^AUPNPAT Q
  1. I '$P($G(^APCDSITE(DUZ(2),0)),U,34) S AUPNLK("INAC")=1
  1. S 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. D INAC(APCDPAT,.X) I 'X S APCDPAT="" Q
  1. I DUZ("AG")="I" D ^APCDEMDI I $D(^APCDSITE(DUZ(2),11)) D ^APCDECC
  1. Q
  1. ;
  1. PROCESS ; PROCESS PATIENT
  1. D ^APCDEA2
  1. I $D(APCDAPP) W !!,"Returning to Add Mode.",! K APCDAPP
  1. Q
  1. ;
  1. EOJ ; END OF JOB
  1. D ^APCDEKL
  1. Q
  1. INAC(P,RETVAL) ;EP - called to check to see if patient is inactive
  1. S RETVAL=1
  1. I $P($G(^AUPNPAT(P,41,DUZ(2),0)),U,3)]"" D Q
  1. .W !!,"***Warning*** You have selected a patient with an Inactive Chart.",!
  1. .K DIR S DIR(0)="Y",DIR("A")="Do you wish to continue to add data for this patient",DIR("B")="Y" KILL DA D ^DIR KILL DIR
  1. .I $D(DIRUT) S RETVAL=0
  1. .S RETVAL=Y
  1. Q
  1. TEXT ;
  1. ;;PCC Data Entry Module
  1. ;;
  1. ;;**************
  1. ;;* ENTER Mode *
  1. ;;**************
  1. ;;
  1. ;;PCC Data Entry Module
  1. ;;
  1. ;;********************
  1. ;;* Mini ENTER Mode *
  1. ;;********************