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

BQITD081.m

Go to the documentation of this file.
  1. BQITD081 ;APTIV/HC/DB-HIV/AIDS Definition (cont) ; 04 Jun 2008 9:01 AM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ; Utilities called by BQITD08
  1. ;
  1. Q
  1. ;
  1. POV(DFN,GLOB,TMREF,DXOK) ; EP - Process HIV/AIDS POV date logic
  1. ;
  1. ; At least two POVs ever at least 60 days apart
  1. ;
  1. ; Input
  1. ; DFN - patient whose HIV/AIDS POVs are being examined
  1. ; GLOB - Global where data is to be stored
  1. ; Structure:
  1. ; GLOB(DFN,"CRITERIA",criteria or taxonomy,visit ien)=date/time
  1. ; TMREF - Global used to temporarily store diagnoses that may meet the
  1. ; POV logic and, if so, will be stored in GLOB
  1. ; DXOK - If set to '1', patient meets the POV logic for HIV/AIDS - value
  1. ; may be returned (if called by PAT subroutine)
  1. ; Variables
  1. ; NOK - If set to '1', no diagnoses remaining that will meet the date logic
  1. ; LDX - Most recent diagnosis that meets the POV criteria
  1. ; FDX - Other diagnosis that must be compared to LDX to determine if they
  1. ; meet the date logic
  1. N NOK,LDX,FDX,DX
  1. I $G(@TMREF@(DFN))<2 K @TMREF@(DFN) Q
  1. S DXOK=0,NOK=0
  1. F D Q:DXOK!NOK K @TMREF@(DFN,LDX)
  1. . S LDX=$O(@TMREF@(DFN,"A"),-1) I LDX="" S NOK=1 Q
  1. . S FDX=LDX
  1. . F S FDX=$O(@TMREF@(DFN,FDX),-1) Q:FDX="" D Q:DXOK
  1. .. I $$FMDIFF^XLFDT(LDX,FDX,1)>59 S DXOK=1 D
  1. ... ; Delete remaining entries from temporary file
  1. ... S DX=""
  1. ... F S DX=$O(@TMREF@(DFN,DX)) Q:DX="" I DX'=LDX,DX'=FDX K @TMREF@(DFN,DX)
  1. ; Update global with criteria
  1. I DXOK D
  1. . M @GLOB@(DFN)=@TMREF@(DFN)
  1. . NEW IEN,FREF,EXDT
  1. . S VSDT="",EXDT=""
  1. . F S VSDT=$O(@TMREF@(DFN,VSDT)) Q:VSDT="" D
  1. .. S TIEN="" F S TIEN=$O(@TMREF@(DFN,VSDT,TIEN)) Q:TIEN="" D
  1. ... S VISIT=$P(@TMREF@(DFN,VSDT,TIEN),U,2),VTYP=$P(@TMREF@(DFN,VSDT,TIEN),U,1)
  1. ... S IEN=$P(@TMREF@(DFN,VSDT,TIEN),U,4),FREF=$P(@TMREF@(DFN,VSDT,TIEN),U,5)
  1. ... S @GLOB@(DFN,"CRITERIA",TAX,VTYP,VISIT,IEN)=VSDT_U_EXDT_U_IEN_U_FREF
  1. Q
  1. ;
  1. CDVL(DFN,GLOB,TMREF,DXOK) ; EP - Process CD4/Viral Load date logic
  1. ;
  1. ; At least two CD4 or Viral Load lab tests in the past two years
  1. ; at least 60 days apart
  1. ; Note: one CD4 and one Viral Load lab test in the past two years
  1. ; at least 60 days apart also meet this criteria
  1. ;
  1. ; Input
  1. ; DFN - patient whose CD4 and Viral Load lab tests are being examined
  1. ; GLOB - Global where data is to be stored
  1. ; Structure:
  1. ; GLOB(DFN,"CRITERIA",criteria or taxonomy,visit ien)=date/time
  1. ; TMREF - Global used to temporarily store diagnoses that may meet the
  1. ; POV logic and, if so, will be stored in GLOB
  1. ; DXOK - If set to '1', patient meets the lab test logic for HIV/AIDS
  1. ; - value may be returned (if called by PAT subroutine)
  1. ; Variables
  1. ; NOK - If set to '1', no lab tests remaining that will meet the date logic
  1. ; LDX - Most recent lab test that meets the POV criteria
  1. ; FDX - Other lab test that must be compared to LDX to determine if they
  1. ; meet the date logic
  1. N NOK,LDX,FDX,DX,ENDT
  1. I $G(@TMREF@(DFN))<2 K @TMREF@(DFN) Q
  1. S ENDT=$$FMADD^XLFDT(DT,-730) ; Can only be within the past 2 years
  1. S DXOK=0,NOK=0
  1. F D Q:DXOK!NOK K @TMREF@(DFN,LDX)
  1. . S LDX=$O(@TMREF@(DFN,"A"),-1) I LDX<ENDT S NOK=1 Q
  1. . S FDX=LDX
  1. . F S FDX=$O(@TMREF@(DFN,FDX),-1) Q:FDX<ENDT D Q:DXOK
  1. .. I $$FMDIFF^XLFDT(LDX,FDX,1)>59 S DXOK=1 D
  1. ... ; Delete remaining entries from temporary file
  1. ... S DX=""
  1. ... F S DX=$O(@TMREF@(DFN,DX)) Q:DX="" I DX'=LDX,DX'=FDX K @TMREF@(DFN,DX)
  1. ; Update global with criteria
  1. I DXOK D
  1. . M @GLOB@(DFN)=@TMREF@(DFN)
  1. . NEW IEN,FREF,EXDT
  1. . S VSDT="",EXDT=""
  1. . F S VSDT=$O(@TMREF@(DFN,VSDT)) Q:VSDT="" D
  1. .. S TIEN="" F S TIEN=$O(@TMREF@(DFN,VSDT,TIEN)) Q:TIEN="" D
  1. ... S VISIT=$P(@TMREF@(DFN,VSDT,TIEN),U,2),VTYP=$P(@TMREF@(DFN,VSDT,TIEN),U,1)
  1. ... S IEN=$P(@TMREF@(DFN,VSDT,TIEN),U,4),FREF=$P(@TMREF@(DFN,VSDT,TIEN),U,5)
  1. ... S @GLOB@(DFN,"CRITERIA",TAX,VTYP,VISIT,IEN)=VSDT_U_EXDT_U_IEN_U_FREF
  1. Q