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

ADEGRL5A.m

Go to the documentation of this file.
  1. ADEGRL5A ; IHS/HQT/MJL - CODE EDITS ; [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;**23**;JUN 6, 2011
  1. ;IHS/HMW 10-31-91 HAPPY HALLOWEEN
  1. ;INPUTS - ADEV(ADECOD),ADEHX ARRAY
  1. ;$O THRU ^ADEDIT("AC",ADECOD,RESOLUTION TYPE,ENTRY NUMBER)
  1. ;DO SUBR CORRESPONDING TO EDIT TYPE - RESOLVE PRN
  1. ;OUTPUT - FLAG ON ADA CODE, REJECT ADA CODE, REPLACE ADA CODE
  1. ;
  1. ;FHL 9/9/98 B
  1. CTRL N ADERTYP,ADERDFN,ADENOD,ADEDTYP,ADECONF,ADELIM,ADEJJ,ADEVFM,ADEPC
  1. G:'$D(^ADEDIT("AC",ADECOD)) EXIT
  1. RES ;$O THRU RESOLUTION TYPE XREF
  1. S ADERTYP=0
  1. F S ADERTYP=$O(^ADEDIT("AC",ADECOD,ADERTYP)) Q:'+ADERTYP D RES1 Q:'$D(ADEV(ADECOD))
  1. EXIT Q
  1. K ADERTYP,ADERDFN,ADENOD,ADEDTYP,ADECONF,ADELIM,ADEJJ,ADEVFM,ADEPC ;*NE
  1. K ADEKK ;*NE
  1. ;
  1. RES1 S ADERDFN=0
  1. F S ADERDFN=$O(^ADEDIT("AC",ADECOD,ADERTYP,ADERDFN)) Q:'+ADERDFN Q:'$D(ADEV(ADECOD)) D EDIT Q:'$D(ADEV(ADECOD))
  1. Q
  1. EDIT S ADENOD=^ADEDIT(ADERDFN,0)
  1. Q:$P(ADENOD,U,4)="n" ;FHL 9/9/98 ;edit not enabled
  1. S ADEDTYP=$P(ADENOD,U,2)
  1. I ADEDTYP=1 D E1
  1. I ADEDTYP=2 D E2
  1. I ADEDTYP=3 D E3
  1. I ADEDTYP=4 D E4
  1. Q
  1. E1 ;EDIT TYPE 1 -- INCOMPATIBLE CODES
  1. N ADEK,ADEPC,ADEVFM,ADEOP,ADEOPC,ADEKK
  1. ;FIRST GET LIST OF CODES
  1. S ADECONF=^ADEDIT(ADERDFN,1)
  1. I ADECONF["[" S ADECONF=$P(ADECONF,"[",2),ADECONF=^ADEDIT("GRP",$O(^ADEDIT("GRP","B",ADECONF,0)),1) ;W "ADECONF=",ADECONF H 1
  1. ;SEE IF CURRENT CODE ADECOD IS IN LIST - IF SO, RESOLVE
  1. I $P(^ADEDIT(ADERDFN,0),U,3)]"" D E1A ;Opsite specific
  1. I $P(^ADEDIT(ADERDFN,0),U,3)="" D E1B
  1. Q
  1. E1A F ADEKK=1:1:$L(ADECONF,"|") I $D(ADEV($P(ADECONF,"|",ADEKK))),$P(ADECONF,"|",ADEKK)'=ADECOD D
  1. . F Q:'$D(ADEV(ADECOD)) S ADEOP=$P(ADEV(ADECOD),U,2) S ADEPC=ADEOP_","_$P(ADEV($P(ADECONF,"|",ADEKK)),U,2) S ADEOPC=$$DUPE^ADEGRL5C(ADEPC) Q:'ADEOPC D RESOLVE^ADEGRL5B
  1. Q
  1. E1B S ADEJJ=0 F S ADEJJ=$O(ADEV(ADEJJ)) Q:ADEJJ="" I ADECOD'=ADEJJ,ADECONF[ADEJJ D RESOLVE^ADEGRL5B Q
  1. Q
  1. E2 ;EDIT TYPE 2 -- TIME LIMIT ON CODES
  1. N ADEK,ADEPC,ADEVFM,ADEOP,ADEOPC,ADEKK,ADEQTY
  1. S ADECONF=^ADEDIT(ADERDFN,1)
  1. I ADECONF["[" S ADECONF=$P(ADECONF,"[",2),ADECONF=^ADEDIT("GRP",$O(^ADEDIT("GRP","B",ADECONF,0)),1)
  1. S X=ADEVDATE,%DT="T" D ^%DT S (ADEVFM,X1)=Y K %DT,X,Y ;IHS/HMW **2**
  1. S X2=$P(^ADEDIT(ADERDFN,2),U)
  1. S X2=$TR(X2,"|",";") ;Delimiter may be | or ;
  1. S ADEQTY=$P(X2,";",2),X2=$P(X2,";")
  1. I X2="FY" D
  1. . ;Set ADELIM to beginning of FY
  1. . S ADELIM=$$FY^ADEUTL(ADEVDATE)
  1. E D
  1. . S X2=-X2
  1. . D C^%DTC S ADELIM=X K X
  1. ;
  1. ;$O THRU ADEHXC & SEE IF ANY OF THESE CODES HAVE DATES AFTER LIMIT TIME
  1. I $P(^ADEDIT(ADERDFN,0),U,3)]"" D E2A ;Opsite specific
  1. I $P(^ADEDIT(ADERDFN,0),U,3)="" D E2B
  1. Q
  1. E2A ;
  1. S ADEOP=$P(ADEV(ADECOD),U,2)
  1. F ADEK=1:1:$L(ADEOP,",") S ADEOPC=$P(ADEOP,",",ADEK) D E2A2 ;Q:$D(ADEXFLG)
  1. Q
  1. E2A2 F ADEKK=1:1:$L(ADECONF,"|") S ADEPC=$P(ADECONF,"|",ADEKK) I $D(ADEHXO(ADEOPC,ADEPC)),$O(ADEHXO(ADEOPC,ADEPC,ADELIM))]"",$O(ADEHXO(ADEOPC,ADEPC,ADELIM))<ADEVFM D E2A3 Q
  1. Q
  1. E2A3 N ADECNT,ADED
  1. S ADECNT=0,ADED=ADELIM
  1. F S ADED=$O(ADEHXO(ADEOPC,ADEPC,ADED)) Q:'+ADED Q:ADED>ADEVFM S ADECNT=ADECNT+1
  1. I ADECNT>(ADEQTY-1) D RESOLVE^ADEGRL5B
  1. Q
  1. E2B F ADEK=1:1:$L(ADECONF,"|") S ADEPC=$P(ADECONF,"|",ADEK) I $D(ADEHXC(ADEPC)),$O(ADEHXC(ADEPC,ADELIM))]"",$O(ADEHXC(ADEPC,ADELIM))<ADEVFM D RESOLVE^ADEGRL5B Q
  1. Q
  1. ;
  1. E3 ;Age Screen
  1. N ADEOP,ADEK,ADEPC,ADEOPC,ADETST
  1. ;FHL 9/9/98 B
  1. S ADETST=$P(^ADEDIT(ADERDFN,2),U,4)
  1. ;I @((AUPNDAYS\365.25)_"'"_$P(^ADEDIT(ADERDFN,2),U,4)) Q
  1. I $E(ADETST,1,1)=">"!($E(ADETST,1,1)="<") S ADETST="'(X"_ADETST_")"
  1. S X=AUPNDAYS\365.25
  1. I @ADETST Q
  1. ;
  1. I $P(^ADEDIT(ADERDFN,0),U,3)]"" D E3A ;Opsite specific
  1. I $P(^ADEDIT(ADERDFN,0),U,3)="" D RESOLVE^ADEGRL5B
  1. Q
  1. E3A S ADEOP=$P(ADEV(ADECOD),U,2)
  1. F ADEK=1:1:$L(ADEOP,",") S ADEOPC=$P(ADEOP,",",ADEK) D RESOLVE^ADEGRL5B
  1. Q
  1. E4 ;Permissible Opsites -use only with codes that require opsites
  1. ; and use only Resolution 1 (reject)
  1. N ADEPERM,ADEK,ADEOP,ADEOPC
  1. S ADEPERM=$P(^ADEDIT(ADERDFN,4),U)
  1. I ADEPERM["[" S ADEPERM=$P(ADEPERM,"[",2),ADEPERM=$O(^ADEDIT("GRP","B",ADEPERM,0)),ADEPERM=$P(^ADEDIT("GRP",ADEPERM,1),U)
  1. F ADEK=1:1:$L(ADEPERM,"|") D
  1. . S ADEPC=$P(ADEPERM,"|",ADEK)
  1. . S ADEPC=$O(^ADEOPS("B",ADEPC,0))
  1. . S:ADEPC ADEPERM(ADEPC)=""
  1. S ADEOP=$P(ADEV(ADECOD),U,2)
  1. Q:'ADEOP ;IHS;SD;TPF H31091 PATCH 23
  1. F ADEK=1:1:$L(ADEOP,",") S ADEOPC=$P(ADEOP,",",ADEK) D
  1. . I '$D(ADEPERM(ADEOPC)) D RESOLVE^ADEGRL5B
  1. Q
  1. K ADEPERM ;*NE