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

APCLDF3.m

Go to the documentation of this file.
  1. APCLDF3 ; IHS/CMI/LAB -IHS ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. DATE ; - ENTRY POINT - from APCLDF2
  1. I BOOL="=" D EQUAL
  1. I BOOL=">" D GREATER
  1. I BOOL="<" D LESSTHAN
  1. I BOOL="<>" D GREATER,LESSTHAN
  1. I COND="LAST" D INVDATE
  1. Q
  1. ;
  1. EQUAL ; Save nodes equal to visit date
  1. S %=0 F S %=$O(^TMP("APCLDF",$J,"TMP",%)) Q:'% I DATE'=% K ^(%)
  1. Q
  1. ;
  1. GREATER ; Kill nodes less than indicated visit date plus 1
  1. ; e.g., if not "<>", after 1/1/87 kills nodes less than 2870102
  1. ; if =">", then kills nodes less than 2870101
  1. NEW TMPDATE
  1. I BOOL=">" S TMPDATE=DATE_.9999 S %="" F S %=$O(^TMP("APCLDF",$J,"TMP",%)) Q:'%!(%>TMPDATE) K ^(%)
  1. I BOOL="<>" S TMPDATE=STDATE-.0001 S %="" F S %=$O(^TMP("APCLDF",$J,"TMP",%)) Q:'%!(%>TMPDATE) K ^(%)
  1. Q
  1. ;
  1. LESSTHAN ; Kill nodes greater than indicated visit date minus .0001
  1. ; e.g., less than 1/1/87 kills nodes greater than 2870100.9999
  1. S X=$S(BOOL="<>":EDATE+.9999,1:DATE-.0001)
  1. F S X=$O(^TMP("APCLDF",$J,"TMP",X)) Q:'X K ^(X)
  1. Q
  1. ;
  1. INVDATE ; If COND is 'LAST', then invert date to have in latest to earliest
  1. S %="" F S %=$O(^TMP("APCLDF",$J,"TMP",%)) Q:$E(%)>3!'% F D=0:0 S D=$O(^TMP("APCLDF",$J,"TMP",%,D)) Q:'D S ^TMP("APCLDF",$J,"TMP",9999999-%,D)=^(D) K ^TMP("APCLDF",$J,"TMP",%,D)
  1. Q
  1. ;
  1. VISIT ; - ENTRY POINT - Evaluate visits
  1. S N=0
  1. I COND'="FIRST",DATE="" F D=0:0 S D=$O(^AUPNVSIT("AA",PAT,D)) Q:'D!(N>NUM) F E=0:0 S E=$O(^(D,E)) Q:'E!(N>NUM) S N=N+1 I N'>NUM S @(APCLY_N_")")=9999999-$P(D,".")_"^^VISIT^^"_E
  1. I COND="FIRST"!(DATE]"") S C=0 F D=0:0 S D=$O(^AUPNVSIT("AA",PAT,D)) D:'D DATE:DATE]"",VISRES Q:'D F E=0:0 S E=$O(^AUPNVSIT("AA",PAT,D,E)) Q:'E S C=C+1,^TMP("APCLDF",$J,"TMP",9999999-$P(D,"."),C)=9999999-$P(D,".")_"^^VISIT^^"_E
  1. K ^TMP("APCLDF",$J,"TMP")
  1. Q
  1. ;
  1. VISRES ; Finds first n visits or visits as a result of date entered
  1. N D
  1. S I=0,%="" F S %=$O(^TMP("APCLDF",$J,"TMP",%)) Q:'% F D=0:0 S D=$O(^TMP("APCLDF",$J,"TMP",%,D)) S:D I=I+1 Q:'D!(I>NUM) D
  1. . S @(APCLY_I_")")=^TMP("APCLDF",$J,"TMP",%,D)
  1. Q
  1. ;