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

AQAOLKP.m

Go to the documentation of this file.
  1. AQAOLKP ; IHS/ORDC/LJF - LOOKUP UTILITIES ;
  1. ;;1.01;QAI MANAGEMENT;;OCT 05, 1995
  1. ;
  1. ;This rtn contains entry points for occurrence selection, adding an
  1. ;occurrence and extrinsic variables for asking user to select occ
  1. ;date, indicator, beginning date, and ending date. Also includes
  1. ;extrinsic variable for a screen on review type.
  1. ;
  1. ASK ;ENTRY POINT for selecting occurrence
  1. ; >>> ask for occ id or patient name or indicator
  1. K AQAOIFN W !! K DIC S DIC="^AQAOC(",DIC(0)="AEMQZ"
  1. S DIC("A")="Select OCCURRENCE (ID #, Patient, or Indicator): "
  1. S DIC("S")="D OCCCHK^AQAOSEC I $D(AQAOCHK(""OK""))"
  1. D ^DIC Q:$D(DTOUT) Q:$D(DUOUT) Q:X="" Q:Y=-1
  1. S AQAOIFN=+Y,AQAOCID=Y(0,0)
  1. S AQAOPAT=$P(Y(0),U,2),AQAOIND=$P(Y(0),U,8),AQAODATE=$P(Y(0),U,4)
  1. ;
  1. ; >> display occurrence
  1. S L="",DIC="^AQAOC(",FLDS="[AQAO OCC SHORT DISPLAY]"
  1. S BY="@NUMBER",(TO,FR)=AQAOIFN,IOP=IO(0) D EN1^DIP ;display occurrence
  1. K DIR S DIR(0)="E"
  1. S DIR("A")="Press RETURN to continue OR '^' to select another occurrence"
  1. D ^DIR
  1. Q
  1. ;
  1. ;
  1. ADD ;ENTRY POINT for adding new occurrence
  1. ; >>> ask patient name & date & indicator then enter
  1. W ! K DIC S DIC="^DPT(",DIC(0)="AEMQ" D ^DIC Q:Y=-1 S AQAOPAT=+Y
  1. ;
  1. W ! S %DT="AEX",%DT("A")="Enter OCCURRENCE DATE: " D ^%DT
  1. G:Y=-1 ADD S AQAODATE=+Y
  1. ;
  1. W ! K DIC S DIC="^AQAO(2,",DIC(0)="AEMQ" ;indicator lookup
  1. S DIC("S")="D INDCHK^AQAOSEC I $D(AQAOCHK(""OK"")),+$G(^AQAO(2,Y,1))"
  1. S DIC("A")="Enter CLINICAL INDICATOR: "
  1. D ^DIC K AQAOCHK("OK") W ! G:Y=-1 ADD S AQAOIND=+Y
  1. ;
  1. ;
  1. CHECK ; >>> check if occurrence already entered; if so go to edit
  1. D ^AQAOENTQ I $D(DIRUT) K DIRUT G ADD
  1. I $D(AQAO) S AQAOUDIT("DA")=AQAOIFN,AQAOUDIT("ACTION")="E",AQAOUDIT("COMMENT")="EDIT OCCURRENCE" D ^AQAOAUD Q
  1. D CREATE G ASK:'$D(AQAOCID)
  1. Q
  1. ;
  1. ;
  1. CREATE ;ENTRY POINT else, create case identifier than add entry
  1. W !!,"Please wait while I create the occurrence entry . . ."
  1. S AQAOCID=$$OCCID^AQAOCID Q:AQAOCID=""
  1. S DIC="^AQAOC(",DIC(0)="AEMQ"
  1. S DIC("DR")=".02////"_AQAOPAT_";.04////"_AQAODATE_";.08////"_AQAOIND_";.09////"_DUZ(2)_";.11///^S X=0"
  1. L +^AQAGU(0):1 I '$T W !!,"CANNOT ADD; AUDIT FILE LOCKED. TRY AGAIN.",! Q
  1. L +(^AQAOC(0)):1 I '$T W !,"CANNOT ADD NEW ENTRY; ANOTHER USER ADDING TO FILE. TRY AGAIN." Q
  1. S X=AQAOCID K DD,DO,DINUM D FILE^DICN K DIC("DR")
  1. L -(^AQAOC(0)):0 I Y=-1 L -^AQAGU(0) Q
  1. S AQAOIFN=+Y ;ifn in qi occurrence file
  1. W !!,"Your CASE # is ",AQAOCID,!
  1. ;
  1. AUDIT S AQAOUDIT("DA")=AQAOIFN,AQAOUDIT("ACTION")="O"
  1. S AQAOUDIT("COMMENT")="OPEN A RECORD" D ^AQAOAUD
  1. Q
  1. ;
  1. ;
  1. OCCDT(V) ;ENTRY POINT EXTR FUNC to ask user for occ date;PATCH 2
  1. N Y,%DT
  1. W ! S %DT="AEX",%DT("A")="Enter OCCURRENCE DATE: "
  1. S %DT("B")=V D ^%DT ;PATCH 2
  1. Q Y
  1. ;
  1. ;
  1. IND() ;ENTRY POINT EXTR VAR to ask user for indicator
  1. N DIC,Y
  1. W !! S DIC="^AQAO(2,",DIC(0)="AEMQZ"
  1. S DIC("S")="D INDCHK^AQAOSEC I $D(AQAOCHK(""OK""))"
  1. S DIC("A")="Enter CLINICAL INDICATOR: " D ^DIC K AQAOCHK("OK")
  1. I $D(DTOUT)!($D(DUOUT))!(X="") S Y=U
  1. Q Y
  1. ;
  1. ;
  1. BDATE() ;ENTRY POINT EXTR VAR ask user to choose beginning date for report
  1. BD1 N DIR,Y
  1. W !! S DIR(0)="DO^::EX",DIR("A")="Select EARLIEST OCCURRENCE DATE"
  1. D ^DIR I Y>DT W *7," NO FUTURE DATES" G BD1
  1. S Y=$S(Y>0:Y,$D(DTOUT):U,1:"")
  1. Q Y
  1. ;
  1. EDATE() ;ENTRY POINT EXTR VAR ask user to choose ending date for report
  1. ED1 N DIR,Y
  1. W ! S DIR(0)="DO^::EX",DIR("A")="Select LATEST OCCURRENCE DATE"
  1. D ^DIR I Y>DT W *7," NO FUTURE DATES" G ED1
  1. I +Y,(Y<AQAOBD) W *7," ENDING DATE MUST BE AFTER BEGINNING DATE" S Y=""
  1. S Y=$S(Y>0:Y,$D(DTOUT):U,1:"")
  1. Q Y
  1. ;
  1. ;
  1. RTYPE() ;EP; EXTRN VAR - screen on selecting review types
  1. ; to select BTR must have Blood Product file
  1. ; to select PTF must have Drug file
  1. N X S X=0
  1. I (Y<3)!(Y>5) S X=1 G RTEND ;not type that needs screen
  1. I (Y=3),$O(^LAB(66,0)) S X=1 G RTEND ;check for blood product file
  1. I $O(^PSDRUG(0)),$D(^DD(50.6,0))#2 S X=1 ;check for drug file
  1. RTEND Q X
  1. ;
  1. EXCEP(X) ;EP; EXTRN FUNC to test whether ind has exception recorded
  1. Q $S($P($G(^AQAOC(X,1)),U,2)]"":1,1:0)