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

PXRMASU.m

Go to the documentation of this file.
  1. PXRMASU ;SLC/PKR - Clinical Reminder ASU routines. ;01/29/2010
  1. ;;2.0;CLINICAL REMINDERS;**17**;Feb 04, 2005;Build 102
  1. ;==========================================================
  1. CLASS(DFN,NGET,BDT,EDT,NFOUND,TEST,DATE,DATA,TEXT) ;Computed finding
  1. ;for user class. Use of USRLM covered by DBIA #2324.
  1. S NFOUND=0
  1. Q:NGET=0
  1. N CLASSOK,CLIST,CNAME,EFFDATE,EXPDATE,FEFFDATE,DONE,IND,JND,LIST
  1. N NOCC,OLIST,OVERLAP,SDIR,TCLASS,USER
  1. S TCLASS=TEST
  1. S USER=DUZ
  1. D WHATIS^USRLM(USER,"LIST",1)
  1. ;Order the list by Effective Date.
  1. S IND=0
  1. F S IND=$O(LIST(IND)) Q:IND="" D
  1. . S EFFDATE=+$P(LIST(IND),U,4),EXPDATE=$P(LIST(IND),U,5)
  1. . I EXPDATE="" S EXPDATE=$$NOW^PXRMDATE
  1. .;Only keep the entries whose date range, defined by Effective Date
  1. .;and Expiration Date is in the date range defined by BDT and EDT.
  1. . I $$OVERLAP^PXRMINDX(EFFDATE,EXPDATE,BDT,EDT)'="O" Q
  1. .;If TCLASS is not null then check for membership in the specified
  1. .;class or subclass.
  1. . S CLASSOK=$S(TCLASS="":1,TCLASS=$P(LIST(IND),U,3):1,1:$$SUBCLASS^USRLM($P(LIST(IND),U,1),TCLASS))
  1. . I CLASSOK S JND(EFFDATE)=+$G(JND(EFFDATE))+1,OLIST(EFFDATE,JND(EFFDATE))=LIST(IND)
  1. S SDIR=$S(NGET>0:-1,1:1)
  1. S NOCC=$S(NGET>0:NGET,1:-NGET)
  1. S DONE=0,EFFDATE=""
  1. F S EFFDATE=$O(OLIST(EFFDATE),SDIR) Q:(DONE)!(EFFDATE="") D
  1. . S IND=0
  1. . F S IND=$O(OLIST(EFFDATE,IND)) Q:(DONE)!(IND="") D
  1. .. S CNAME=$P(OLIST(EFFDATE,IND),U,3)
  1. .. S EXPDATE=$P(OLIST(EFFDATE,IND),U,5)
  1. .. S NFOUND=NFOUND+1
  1. .. I NFOUND=NOCC S DONE=1
  1. .. S TEST(NFOUND)=1
  1. .. S DATE(NFOUND)=EFFDATE
  1. .. S DATA(NFOUND,"ASU CLASS")=CNAME
  1. .. S DATA(NFOUND,"EFFECTIVE DATE")=EFFDATE
  1. .. S DATA(NFOUND,"EXPIRATION DATE")=EXPDATE
  1. .. S FEFFDATE=$S(EFFDATE=0:"00/00/0000",1:$$FMTE^XLFDT(EFFDATE,"5Z"))
  1. .. I EXPDATE'="" S EXPDATE=$$EDATE^PXRMDATE(EXPDATE)
  1. .. S TEXT(NFOUND)=CNAME_" ("_FEFFDATE_" - "_EXPDATE_")"
  1. Q
  1. ;