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

ADEPQA1D.m

Go to the documentation of this file.
  1. ADEPQA1D ; IHS/HQT/MJL - CODE SCREENS ; [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;;APRIL 1999
  1. ;
  1. CODSCN(ADEDFN) ;EP - Returns 1 if ADEDFN passes code screens in ADEADA(1)
  1. Q:$P(ADEADA(1),U,2)="" 1 ;No code screens at all
  1. N ADEK,ADEJ,ADEL,ADEFLG,ADEVFLG,ADECOD,ADEFOL,ADEOP,ADEPAT,ADEDAYS,ADESAM,ADEVDAT
  1. S ADEPAT=$P(ADENOD,U)
  1. S ADEVDAT=$P(ADENOD,U,2)
  1. I $P(ADEADA(1),U,3)]"",'$D(ADEHXC) S ADEHXC=ADEPAT D ^ADEGRL33
  1. I $P(ADEADA(1),U,3)]"",ADEHXC'=ADEPAT K ADEHXC,ADEHXO S ADEHXC=ADEPAT D ^ADEGRL33
  1. S ADEFLG=0,ADEVFLG=0
  1. S ADEDAYS=$P(ADEADA(1),U,5) I ADEDAYS]"" D
  1. . S X1=ADEVDAT ;FM Date of current entry
  1. . S X2=ADEDAYS
  1. . S %DT="" D C^%DTC S ADEDAYS=X K X
  1. S ADESAM=$P(ADEADA(1),U,6)
  1. F ADEJ=1:1:$L($P(ADEADA(1),U,2),",") S ADECOD=$P($P(ADEADA(1),U,2),",",ADEJ) D
  1. . F ADEK=1:1:$L($P(ADEADA(1),U,3),",") S ADEFOL=$P($P(ADEADA(1),U,3),",",ADEK) D
  1. . . F ADEL=1:1:$L($P(ADEADA(1),U,7),",") S ADEOP=$P($P(ADEADA(1),U,7),",",ADEL) D
  1. . . . S ADEFLG=$$CODSCN1(ADECOD,ADEFOL,ADEOP,ADEDAYS,ADESAM) S:ADEFLG ADEVFLG=1
  1. Q ADEVFLG
  1. K ADEDAYS,ADESAM,ADEVDAT,ADEVFLG ;*NE
  1. ;
  1. CODSCN1(ADECOD,ADEFOL,ADEOP,ADEDAYS,ADESAM) ;Returns 1 if code assoc w opsite exists
  1. N ADEFLG,ADEJ,ADENOD,ADEFLG2
  1. S ADEFLG=0
  1. I '$D(^ADEPCD(ADEDFN,"ADA","B",ADECOD)) Q 0
  1. S ADEJ=0
  1. F S ADEJ=$O(^ADEPCD(ADEDFN,"ADA","B",ADECOD,ADEJ)) Q:'ADEJ D
  1. . S ADENOD=^ADEPCD(ADEDFN,"ADA",ADEJ,0)
  1. . I $P(ADENOD,U,5)'="" Q
  1. . I ADEOP]"",$P(ADENOD,U,2)'=ADEOP Q
  1. . ;At this point, the primary code must exist, so test for followed-by
  1. . I ADEFOL="" S ADEFLG=1 S ^ADEUTL("ADEPQA",$J,ADEDFN,ADEJ)="" Q
  1. . ;Find out if this code hits on the followed by
  1. . S ADEFLG2=$$CODSCN2(ADECOD,ADEFOL,ADESAM,ADEOP,ADEDAYS)
  1. . ;If it does:
  1. . ; and NOT then quit this Do (ADEFLG unchanged)
  1. . I ADEFLG2,$P(ADEADA(1),U,4) Q
  1. . ; and not NOT then set D0,D1 and ADEFLG=1 and quit this Do
  1. . I ADEFLG2,'$P(ADEADA(1),U,4) S ADEFLG=1,^ADEUTL("ADEPQA",$J,ADEDFN,ADEJ)="" Q
  1. . ;If it does not:
  1. . ; and NOT then set D0,D1 and ADEFLG=1 and quit this Do
  1. . I 'ADEFLG2,$P(ADEADA(1),U,4) S ADEFLG=1,^ADEUTL("ADEPQA",$J,ADEDFN,ADEJ)="" Q
  1. . ; and not NOT then quit this Do (ADEFLG still 0)
  1. . I 'ADEFLG2,'$P(ADEADA(1),U,4) Q
  1. ;
  1. ;I ADEFOL="" Q ADEFLG
  1. ;I $P(ADEADA(1),U,4) Q:ADEFLG 0 Q 1 ;If the NOT flag applies
  1. Q ADEFLG
  1. K ADEFLG2 ;*NE
  1. ;
  1. CODSCN2(ADECOD,ADEFOL,ADESAM,ADEOP,ADEDAYS) ;
  1. ;Returns 1 if ADECOD is followed by ADEFOL within ADEDAYS
  1. ;If ADESAM, then both ADEFOL and ADECOD must apply to the same opsite
  1. ;If ADEOP is defined, both must apply to it
  1. ;Assumes ADEHXC and ADEHXO arrays (pt tx history) have been defined
  1. ;Have to convert ADECOD from DFN to ADA CODE since ADEHXn arrays
  1. ;ADEVDAT-.0001 Means will hit on codes on same visit. Need addtl
  1. ;parameter to know if should or shouldn't hit on same visit
  1. N ADEOPC,ADEFLG,ADESAME
  1. S ADESAME=ADEVDAT ;-.0001
  1. I $P(ADEADA(1),U,8)]"" S ADESAME=ADESAME-.0001
  1. S ADEFLG=0
  1. S ADECOD=$P(^AUTTADA(ADECOD,0),U)
  1. S ADEFOL=$P(^AUTTADA(ADEFOL,0),U)
  1. I ADEOP="",ADESAM]"" D Q ADEFLG
  1. . S ADEOPC=$P(ADENOD,U,2)
  1. . I ADEOPC="" Q
  1. . I '$D(ADEHXO(ADEOPC,ADEFOL)) Q
  1. . I $O(ADEHXO(ADEOPC,ADEFOL,ADESAME))="" Q
  1. . I $O(ADEHXO(ADEOPC,ADEFOL,ADESAME))<ADEDAYS S ADEFLG=1
  1. I ADEOP="",ADESAM="" D Q ADEFLG
  1. . I '$D(ADEHXC(ADEFOL)) Q
  1. . I $O(ADEHXC(ADEFOL,ADESAME))="" Q
  1. . I $O(ADEHXC(ADEFOL,ADESAME))<ADEDAYS S ADEFLG=1
  1. I ADEOP]"",ADESAM]"" D Q ADEFLG
  1. . I '$D(ADEHXO(ADEOP,ADEFOL)) Q
  1. . I $O(ADEHXO(ADEOP,ADEFOL,ADESAME))="" Q
  1. . I $O(ADEHXO(ADEOP,ADEFOL,ADESAME))<ADEDAYS S ADEFLG=1
  1. I ADEOP]"",ADESAM="" D Q ADEFLG
  1. . I '$D(ADEHXC(ADEFOL)) Q
  1. . I $O(ADEHXC(ADEFOL,ADESAME))="" Q
  1. . I $O(ADEHXC(ADEFOL,ADESAME))<ADEDAYS S ADEFLG=1
  1. Q ADEFLG
  1. K ADEFOL ;*NE