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

AZAXCADZ.m

Go to the documentation of this file.
  1. AZAXCAD ;IHS/PHXAO/AEF - CAD/STATIN STUDY DATA EXTRACT
  1. ;;1.0;ANNE'S SPECIAL ROUTINES;;MAR 23, 2004
  1. ;;
  1. DESC ;----- PROGRAM DESCRIPTION
  1. ;;
  1. ;; This routine loops through the VISIT file for the specified
  1. ;; date range and finds all patients who have a heart related
  1. ;; diagnosis and who are taking statin drugs.
  1. ;;
  1. ;;$$END
  1. EN ;----- MAIN ENTRY POINT
  1. ;
  1. N AZAXD,AZAXDTS,AZAXI,AZAXP,AZAXPDTS,AZAXY
  1. ;
  1. K ^TMP("AZAX",$J)
  1. ;
  1. D TXT
  1. ;
  1. D DATES("VISIT DATE",.AZAXY)
  1. Q:'AZAXY
  1. S AZAXDTS=AZAXY
  1. ;
  1. D DATES("DISPENSED DATE",.AZAXY)
  1. Q:'AZAXY
  1. S AZAXPDTS=AZAXY
  1. ;
  1. D BLD(.AZAXI,.AZAXP,.AZAXD)
  1. ;
  1. D LOOP1(AZAXDTS,.AZAXI,.AZAXP)
  1. ;
  1. D LOOP2(AZAXPDTS,.AZAXD)
  1. ;
  1. D FILE
  1. ;
  1. ;K ^TMP("AZAX",$J)
  1. ;
  1. Q
  1. LOOP1(AZAXDTS,AZAXI,AZAXP) ;
  1. ;----- LOOP THROUGH VISIT FILE AND FIND ALL PATIENTS WITH HEART DX
  1. ;
  1. ; INCOMING:
  1. ; AZAXDTS = DATE RANGE IN BEG^END FORMAT
  1. ; AZAXI = ARRAY OF ICD DIAGNOSIS CODES TO BE SEARCHED FOR
  1. ; AZAXP = ARRAY OF ICD PROCEDURE CODES TO BE SEARCHED FOR
  1. ;
  1. N AZAXBEG,AZAXDFN,AZAXDT,AZAXEND,AZAXICD0,AZAXICNA,AZAXVSD0
  1. ;
  1. S AZAXBEG=$P(AZAXDTS,U)
  1. S AZAXEND=$P(AZAXDTS,U,2)
  1. S AZAXDT=AZAXBEG-1
  1. ;
  1. F S AZAXDT=$O(^AUPNVSIT("B",AZAXDT)) Q:'AZAXDT Q:AZAXDT>AZAXEND D
  1. . S AZAXVSD0=0
  1. . F S AZAXVSD0=$O(^AUPNVSIT("B",AZAXDT,AZAXVSD0)) Q:'AZAXVSD0 D
  1. . . S AZAXDFN=$P($G(^AUPNVSIT(AZAXVSD0,0)),U,5)
  1. . . S AZAXICD0=$P($G(^AUPNVSIT(AZAXVSD0,11)),U,7) ;CODED CHIEF COMPLAINT
  1. . . S AZAXICNA=$$ICD^AZAXCADU(AZAXICD0)
  1. . . I $P(AZAXICNA,".")]"",$D(AZAXI($P(AZAXICNA,"."))) D SET1(AZAXVSD0,AZAXDFN,AZAXICNA)
  1. . . D POV(AZAXVSD0,AZAXDFN,.AZAXI) ;CHECK PURPOSE OF VISITS
  1. . . D PROC(AZAXVSD0,AZAXDFN,.AZAXP) ;CHECK PROCEDURES
  1. . . D MED(AZAXVSD0,.AZAXD) ;CHECK V MEDICATIONS FILE
  1. ;
  1. Q
  1. POV(AZAXVSD0,AZAXDFN,AZAXI) ;
  1. ;----- CHECK V POV FILE FOR PURPOSE OF VISITS
  1. ;
  1. ; INCOMING:
  1. ; AZAXDFN = PATIENT IEN
  1. ; AZAXI = ARRAY CONTAINING ICD DIAGNOSIS CODES
  1. ; AZAXVSD0 = VISIT IEN
  1. ;
  1. N AZAXD0,AZAXICD0,AZAXICDNA
  1. ;
  1. S AZAXD0=0
  1. F S AZAXD0=$O(^AUPNVPOV("AD",AZAXVSD0,AZAXD0)) Q:'AZAXD0 D
  1. . S AZAXICD0=$P($G(^AUPNVPOV(AZAXD0,0)),U)
  1. . S AZAXICNA=$$ICD^AZAXCADU(AZAXICD0)
  1. . Q:$P(AZAXICNA,".")']""
  1. . Q:'$D(AZAXI($P(AZAXICNA,".")))
  1. . D SET1(AZAXVSD0,AZAXDFN,AZAXICNA)
  1. Q
  1. PROC(AZAXVSD0,AZAXDFN,AZAXP) ;
  1. ;----- CHECK V PROCEDURE FILE FOR PROCEDURES
  1. ;
  1. ; INCOMING:
  1. ; AZAXDFN = PATIENT IEN
  1. ; AZAXP = ARRAY CONTAINING ICD PROCEDURE CODES
  1. ; AZAXVSD0 = VISIT IEN
  1. ;
  1. N AZAXD0,AZAXICD0,AZAXICNA
  1. ;
  1. S AZAXD0=0
  1. F S AZAXD0=$O(^AUPNVPRC("AD",AZAXVSD0,AZAXD0)) Q:'AZAXD0 D
  1. . S AZAXICD0=$P($G(^AUPNVPRC(AZAXD0,0)),U)
  1. . S AZAXICNA=$$PICD^AZAXCADU(AZAXICD0)
  1. . Q:AZAXICNA']""
  1. . Q:'$D(AZAXP(AZAXICNA))
  1. . D SET1(AZAXVSD0,AZAXDFN,AZAXICNA)
  1. Q
  1. MED(AZAXVSD0,AZAXD) ;
  1. ;----- CHECK V MEDICATION FILE FOR DRUGS
  1. ;
  1. ; INCOMING:
  1. ; AZAXVSD0 = VISIT IEN
  1. ;
  1. S AZAXVMD0=0
  1. F S AZAXVMD0=$O(^AUPNMED("AD",AZAXVSD0,AZAXVMD0)) Q:'AZAXVMD0 D
  1. . S AZAXDATA=$G(^AUPNVMED(AZAXVMD0,0))
  1. . S AZAXDGNA=$$DRUG^AZAXCADU($P(AZAXDATA,U))
  1. . Q:AZAXDGNA']""
  1. . Q:'$D(AZAXD($P(AZAXDGNA," ")))
  1. . D SET6(AZAXVSD0)
  1. Q
  1. . S AZAXDFN=$P(AZAXDATA,U,2)
  1. . S AZAXDSP=$$VSDT^AZAXCADU($P(AZAXDATA,U,3))
  1. . ;
  1. . S Z=""
  1. . S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. . S $P(Z,U,2)=AZAXDGNA ;2-DRUG NAME
  1. . S $P(Z,U,3)=$$SLDATE^AZAXCADU($P(AZAXDSP,".")) ;3-DISPENSED DATE
  1. . S $P(Z,U,4)=$P(AZAXDATA,U,7) ;4-DAYS SUPPLIED
  1. . S $P(Z,U,5)=$$NDC^AZAXCADU($P(AZAXDATA,U)) ;5-NDC
  1. . S $P(Z,U,6)=$P(AZAXDATA,U,6) ;6-QUANTITY
  1. . S $P(Z,U,7)=$P(AZAXDATA,U,5) ;7-SIG
  1. . ;
  1. . Q:'AZAXDFN
  1. . Q:'AZAXVMD0
  1. . Q:'AZAXDSP
  1. . ;
  1. . S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"VMED",AZAXVMD0,AZAXDSP,0)=Z
  1. Q
  1. LOOP2(AZAXPDTS,AZAXD) ;
  1. ;----- LOOP THROUGH PRESCRIPTION FILE AND FIND ALL PATIENTS IN LOOP1
  1. ; WHO ARE PRESCRIBED THE SPECIFIED DRUGS
  1. ;
  1. ; INCOMING:
  1. ; AZAXPDTS = DISPENSED DATE RANGE IN BEG^END FORMAT
  1. ; AZAXD = ARRAY OF DRUG NAMES TO BE SEARCHED
  1. ;
  1. ; VARIABLES USED IN THIS SUBROUTINE:
  1. ; AZAXDFN = PATIENT IEN
  1. ; AZAXDGD0 = DRUG IEN
  1. ; AZAXDGNA = DRUG NAME
  1. ; AZAXPSD1 = PRESCRIPTION PROFILE IEN FROM PHARMACY PATIENT FILE
  1. ; AZAXRXD0 = PRESCRIPTION IEN
  1. ;
  1. N AZAXDFN,AZAXPSD1,AZAXRXD0
  1. ;
  1. Q:'$D(^TMP("AZAX",$J,"X"))
  1. ;
  1. S AZAXDFN=0
  1. F S AZAXDFN=$O(^TMP("AZAX",$J,"X",$$SITE^AZAXCADU,AZAXDFN)) Q:'AZAXDFN D
  1. . S AZAXPSD1=0
  1. . F S AZAXPSD1=$O(^PS(55,AZAXDFN,"P",AZAXPSD1)) Q:'AZAXPSD1 D
  1. . . S AZAXRXD0=$G(^PS(55,AZAXDFN,"P",AZAXPSD1,0))
  1. . . Q:'AZAXRXD0
  1. . . D INITIAL(AZAXRXD0,AZAXPDTS)
  1. . . D REFILLS(AZAXRXD0,AZAXPDTS)
  1. . . D PARTIAL(AZAXRXD0,AZAXPDTS)
  1. ;
  1. Q
  1. INITIAL(AZAXRXD0,AZAXPDTS) ;
  1. ;----- PROCESS INITIAL PRESCRIPTION
  1. ;
  1. N AZAXDGD0,AZAXDGNA,AZAXDSP
  1. ;
  1. S AZAXDSP=$P($G(^PSRX(AZAXRXD0,2)),U,5)
  1. Q:AZAXDSP<$P(AZAXPDTS,U)
  1. Q:AZAXDSP>$P(AZAXPDTS,U,2)
  1. ;
  1. S AZAXDGD0=$P($G(^PSRX(AZAXRXD0,0)),U,6)
  1. Q:'AZAXDGD0
  1. ;
  1. S AZAXDGNA=$$DRUG^AZAXCADU(AZAXDGD0)
  1. Q:AZAXDGNA']""
  1. Q:'$D(AZAXD($P(AZAXDGNA," ")))
  1. ;
  1. D SET2(AZAXRXD0)
  1. Q
  1. REFILLS(AZAXD0,AZAXPDTS) ;
  1. ;----- LOOP THROUGH PRESCRIPTION REFILLS
  1. ;
  1. ; AZAXD0 = PRESCRIPTION FILE IEN
  1. ;
  1. N AZAXD1,AZAXDSP
  1. ;
  1. S AZAXD1=0
  1. F S AZAXD1=$O(^PSRX(AZAXD0,1,AZAXD1)) Q:'AZAXD1 D
  1. . S AZAXDSP=$P($G(^PSRX(AZAXD0,1,AZAXD1,0)),U,19)
  1. . Q:AZAXDSP<$P(AZAXPDTS,U)
  1. . Q:AZAXDSP>$P(AZAXPDTS,U,2)
  1. . D SET3(AZAXD0,AZAXD1)
  1. Q
  1. PARTIAL(AZAXD0,AZAXPDTS) ;
  1. ;----- LOOP THROUGH PARTIAL PRESCRIPTION FILLS
  1. ;
  1. ; AZAXD0 = PRESCRIPTION FILE IEN
  1. ;
  1. N AZAXD1,AZAXDSP
  1. ;
  1. S AZAXD1=0
  1. F S AZAXD1=$O(^PSRX(AZAXD0,"P",AZAXD1)) Q:'AZAXD1 D
  1. . S AZAXDSP=$P($G(^PSRX(AZAXD0,"P",AZAXD1,0)),U,13)
  1. . Q:AZAXDSP<$P(AZAXPDTS,U)
  1. . Q:AZAXDSP>$P(AZAXPDTS,U,2)
  1. . D SET4(AZAXD0,AZAXD1)
  1. Q
  1. SET1(AZAXVSD0,AZAXDFN,AZAXICNA) ;
  1. ;----- SET ICD DX DATA INTO ^TMP GLOBAL
  1. ;
  1. ; NOTE: The actual ICD name is being used to set this global
  1. ; since the ICD code could either be a diagnosis or
  1. ; procedure code. Using the IEN could cause problems
  1. ; as 2 different files are involved, i.e., the
  1. ; ICD DIAGNOSIS and the ICD OPERATION/PROCEDURE, could
  1. ; possibly share the same IEN for a diagnosis and procedure.
  1. ;
  1. ; INCOMING:
  1. ; AZAXDFN = PATIENT IEN
  1. ; AZAXVSD0 = VISIT IEN
  1. ; AZAXICNA = ICD CODE NAME (DX OR PROCEDURE)
  1. ;
  1. N AZAXVSDT,Z
  1. ;
  1. S AZAXVSDT=$$VISDT^AZAXCADU(AZAXVSD0)
  1. S AZAXVSDT=$P(AZAXVSDT,".")
  1. S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. S $P(Z,U,2)=$$SEX^AZAXCADU(AZAXDFN) ;2-SEX
  1. S $P(Z,U,3)=$$AGE^AZAXCADU(AZAXDFN) ;3-AGE
  1. S $P(Z,U,4)=AZAXICNA ;4-ICD CODE
  1. S $P(Z,U,5)=$$LOC^AZAXCADU(AZAXVSD0) ;5-LOCATION
  1. S $P(Z,U,6)=$$SLDATE^AZAXCADU(AZAXVSDT) ;6-VISIT DATE
  1. ;
  1. Q:'AZAXDFN
  1. Q:'AZAXVSD0
  1. Q:AZAXICNA']""
  1. ;
  1. S ^TMP("AZAX",$J,"X",$$SITE^AZAXCADU,AZAXDFN,AZAXVSD0,AZAXICNA,0)=Z
  1. Q
  1. SET2(AZAXD0) ;
  1. ;----- SET RX DATA INTO ^TMP GLOBAL
  1. ;
  1. ; INCOMING:
  1. ; AZAXD0 = PRESCRIPTION FILE IEN
  1. ;
  1. N AZAXDATA,AZAXDFN,AZAXDSP,Z
  1. ;
  1. S Z=""
  1. S AZAXDATA=$G(^PSRX(AZAXD0,0))
  1. S AZAXDFN=$P(AZAXDATA,U,2)
  1. S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. S $P(Z,U,2)=$$DRUG^AZAXCADU($P(AZAXDATA,U,6)) ;2-DRUG NAME
  1. S $P(Z,U,4)=$P(AZAXDATA,U,8) ;4-DAYS SUPPLIED
  1. S $P(Z,U,6)=$P(AZAXDATA,U,7) ;6-QUANTITY
  1. S $P(Z,U,7)=$P(AZAXDATA,U,10) ;7-SIG
  1. S AZAXDATA=$G(^PSRX(AZAXD0,2))
  1. S AZAXDSP=$P(AZAXDATA,U,5)
  1. S $P(Z,U,3)=$$SLDATE^AZAXCADU(AZAXDSP) ;3-DISPENSED DATE
  1. S $P(Z,U,5)=$P(AZAXDATA,U,7) ;5-NDC
  1. ;
  1. Q:'AZAXDFN
  1. Q:'AZAXD0
  1. Q:'AZAXDSP
  1. ;
  1. S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"DRUG",AZAXD0,AZAXDSP,0)=Z
  1. S ^TMP("AZAX",$J,"DRUG",0)=$G(^TMP("AZAX",$J,"DRUG",0))+1
  1. ;
  1. D SET5(AZAXDFN)
  1. ;
  1. Q
  1. SET3(AZAXD0,AZAXD1) ;
  1. ;----- SET RX REFILL DATA INTO ^TMP GLOBAL
  1. ;
  1. ; INCOMING:
  1. ; AZAXD0 = PRESCRIPTION FILE IEN
  1. ; AZAXD1 = REFILL IEN
  1. ;
  1. N AZAXDATA,AZAXDFN,AZAXDSP,Z
  1. ;
  1. S Z=""
  1. S AZAXDATA=$G(^PSRX(AZAXD0,0))
  1. S AZAXDFN=$P(AZAXDATA,U,2)
  1. S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. S $P(Z,U,2)=$$DRUG^AZAXCADU($P(AZAXDATA,U,6)) ;2-DRUG NAME
  1. S $P(Z,U,7)=$P(AZAXDATA,U,10) ;7-SIG
  1. S AZAXDATA=$G(^PSRX(AZAXD0,1,AZAXD1,0))
  1. S AZAXDSP=$P(AZAXDATA,U,19)
  1. S $P(Z,U,3)=$$SLDATE^AZAXCADU(AZAXDSP) ;3-DISPENSED DATE
  1. S $P(Z,U,4)=$P(AZAXDATA,U,10) ;4-DAYS SUPPLY
  1. S $P(Z,U,5)=$P(AZAXDATA,U,13) ;5-NDC
  1. S $P(Z,U,6)=$P(AZAXDATA,U,4) ;6-QTY
  1. ;
  1. Q:'AZAXDFN
  1. Q:'AZAXD0
  1. Q:'AZAXDSP
  1. ;
  1. S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"DRUG",AZAXD0,AZAXDSP,0)=Z
  1. S ^TMP("AZAX",$J,"DRUG",0)=$G(^TMP("AZAX",$J,"DRUG",0))+1
  1. ;
  1. D SET5(AZAXDFN)
  1. ;
  1. Q
  1. SET4(AZAXD0,AZAXD1) ;
  1. ;---- SET RX PARTIAL FILL DATA INTO ^TMP GLOBAL
  1. ;
  1. ; INCOMING:
  1. ; AZAXD0 = PRESCRIPTION FILE IEN
  1. ; AZAXD1 = PARTIAL FILL IEN
  1. ;
  1. N AZAXDATA,AZAXDFN,AZAXDSP,Z
  1. ;
  1. S Z=""
  1. S AZAXDATA=$G(^PSRX(AZAXD0,0))
  1. S AZAXDFN=$P(AZAXDATA,U,2)
  1. S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. S $P(Z,U,2)=$$DRUG^AZAXCADU($P(AZAXDATA,U,6)) ;2-DRUG NAME
  1. S $P(Z,U,7)=$P(AZAXDATA,U,10) ;7-SIG
  1. S AZAXDATA=$G(^PSRX(AZAXD0,"P",AZAXD1,0))
  1. S AZAXDSP=$P(AZAXDATA,U,13)
  1. S $P(Z,U,3)=$$SLDATE^AZAXCADU(AZAXDSP) ;3-DISPENSED DATE
  1. S $P(Z,U,4)=$P(AZAXDATA,U,10) ;4-DAYS SUPPLY
  1. S $P(Z,U,5)=$P(AZAXDATA,U,12) ;5-NDC
  1. S $P(Z,U,6)=$P(AZAXDATA,U,4) ;6-QTY
  1. ;
  1. Q:'AZAXDFN
  1. Q:'AZAXD0
  1. Q:'AZAXDSP
  1. ;
  1. S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"DRUG",AZAXD0,AZAXDSP,0)=Z
  1. S ^TMP("AZAX",$J,"DRUG",0)=$G(^TMP("AZAX",$J,"DRUG",0))+1
  1. ;
  1. D SET5(AZAXDFN)
  1. ;
  1. Q
  1. SET5(AZAXDFN) ;
  1. ;----- SETS ^TMP GLOBAL FOR PATIENTS WHO HAVE BOTH THE ICD AND THE DRUG
  1. ;
  1. ; INCOMING:
  1. ; AZAXDFN = PATIENT IEN
  1. ;
  1. N AZAXICNA,AZAXVD0,Z
  1. ;
  1. S AZAXVD0=0
  1. F S AZAXVD0=$O(^TMP("AZAX",$J,"X",$$SITE^AZAXCADU,AZAXDFN,AZAXVD0)) Q:'AZAXVD0 D
  1. . S AZAXICNA=""
  1. . F S AZAXICNA=$O(^TMP("AZAX",$J,"X",$$SITE^AZAXCADU,AZAXDFN,AZAXVD0,AZAXICNA)) Q:AZAXICNA']"" D
  1. . . S Z=$G(^TMP("AZAX",$J,"X",$$SITE^AZAXCADU,AZAXDFN,AZAXVD0,AZAXICNA,0))
  1. . . S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"ICDS",AZAXVD0,AZAXICNA,0)=Z
  1. . . S ^TMP("AZAX",$J,"ICDS",0)=$G(^TMP("AZAX",$J,"ICDS",0))+1
  1. Q
  1. SET6(AZAXVMD0) ;
  1. ;----- SET V MEDICATION DATA INTO ^TMP GLOBAL
  1. ;
  1. ; INPUT:
  1. ; AZAXVMD0 = V MEDICATION FILE IEN
  1. ;
  1. N AZAXDATA,AZAXDFN,AZAXDSP,Z
  1. ;
  1. S AZAXDATA=$G(^AUPNVMED(AZAXVMD0,0))
  1. S AZAXDFN=$P(AZAXDATA,U,2)
  1. S AZAXDSP=$$VSDT^AZAXCADU($P(AZAXDATA,U,3))
  1. ;
  1. S Z=""
  1. S $P(Z,U)=$$UID^AZAXCADU(AZAXDFN) ;1-UNIQUE PATIENT ID
  1. S $P(Z,U,2)=$$DRUG^AZAXCADU($P(AZAXDATA,U)) ;2-DRUG NAME
  1. S $P(Z,U,3)=$$SLDATE^AZAXCADU($P(AZAXDSP,".")) ;3-DISPENSED DATE
  1. S $P(Z,U,4)=$P(AZAXDATA,U,7) ;4-DAYS SUPPLIED
  1. S $P(Z,U,5)=$$NDC^AZAXCADU($P(AZAXDATA,U)) ;5-NDC
  1. S $P(Z,U,6)=$P(AZAXDATA,U,6) ;6-QUANTITY
  1. S $P(Z,U,7)=$P(AZAXDATA,U,5) ;7-SIG
  1. ;
  1. Q:'AZAXDFN
  1. Q:'AZAXVMD0
  1. Q:'AZAXDSP
  1. ;
  1. S ^TMP("AZAX",$J,$$SITE^AZAXCADU,AZAXDFN,"VMED",AZAXVMD0,AZAXDSP,0)=Z
  1. Q
  1. FILE ;
  1. ;----- WRITE ^TMP GLOBAL TO DATA FILES
  1. ;
  1. N AZAXTYPE
  1. ;
  1. F AZAXTYPE="DRUG","ICDS" D PUT(AZAXTYPE)
  1. ;
  1. Q
  1. PUT(AZAXTYPE) ;
  1. ;----- WRITE DATA FROM ^TMP FILE TO DATA FILE
  1. ;
  1. N %FILE,AZAXD0,AZAXD1,AZAXD2,AZAXD3,AZAXFILE,AZAXOUT,AZAXPATH,X
  1. ;
  1. I '$G(^TMP("AZAX",$J,AZAXTYPE,0)) D Q
  1. . W !,"NO "_AZAXTYPE_" DATA FOUND!"
  1. ;
  1. S AZAXFILE=$$FNAME^AZAXCADU(AZAXTYPE)
  1. Q:AZAXFILE']""
  1. ;
  1. S AZAXPATH=$$PATH^AZAXCADU($$SITE^AZAXCADU)
  1. Q:AZAXPATH']""
  1. ;
  1. D HFS^AZAXCADU(AZAXPATH,AZAXFILE,.%FILE,.AZAXOUT)
  1. Q:$G(AZAXOUT)
  1. ;
  1. U %FILE
  1. ;
  1. S AZAXD0=0
  1. F S AZAXD0=$O(^TMP("AZAX",$J,AZAXD0)) Q:'AZAXD0 D
  1. . S AZAXD1=0
  1. . F S AZAXD1=$O(^TMP("AZAX",$J,AZAXD0,AZAXD1)) Q:'AZAXD1 D
  1. . . S AZAXD2=0
  1. . . F S AZAXD2=$O(^TMP("AZAX",$J,AZAXD0,AZAXD1,AZAXTYPE,AZAXD2)) Q:'AZAXD2 D
  1. . . . S AZAXD3=0
  1. . . . F S AZAXD3=$O(^TMP("AZAX",$J,AZAXD0,AZAXD1,AZAXTYPE,AZAXD2,AZAXD3)) Q:'AZAXD3 D
  1. . . . . S X=$G(^TMP("AZAX",$J,AZAXD0,AZAXD1,AZAXTYPE,AZAXD2,AZAXD3,0))
  1. . . . . S X=$$FORMAT^AZAXCADU(X)
  1. . . . . Q:X']""
  1. . . . . W X
  1. . . . . W !
  1. ;
  1. D ^%ZISC
  1. ;
  1. I $E($G(IOST),1,2)="C-" W !?5,"FILE "_AZAXFILE_" HAS BEEN CREATED"
  1. ;
  1. Q
  1. DATES(AZAXTXT,AZAXY) ;
  1. ;----- ASK DATE RANGE
  1. ;
  1. ; INPUT:
  1. ; AZAXTXT = PROMPT TEXT
  1. ;
  1. ; OUTPUT:
  1. ; AZAXY = BEGIN^END DATES
  1. ;
  1. DL ;----- DATE LOOP
  1. ;
  1. N AZAXBEG,AZAXEND,DIR,DIRUT,DTOUT,DUOUT,X,Y
  1. ;
  1. W !
  1. S AZAXY=""
  1. S DIR(0)="DO^::E"
  1. S DIR("A")="Begin with "_AZAXTXT
  1. S DIR("?")="The "_AZAXTXT_" to include in the range"
  1. D ^DIR
  1. Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
  1. Q:Y=""
  1. S AZAXBEG=Y
  1. S DIR("A")="End with "_AZAXTXT
  1. D ^DIR
  1. Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
  1. Q:Y=""
  1. S AZAXEND=Y
  1. I AZAXEND<AZAXBEG D G DL
  1. . W *7,!?5,"ENDING DATE cannot be less than BEGINNING DATE"
  1. S AZAXY=AZAXBEG_U_AZAXEND
  1. Q
  1. TXT ;----- PRINT OPTION TEXT
  1. ;
  1. N I,X
  1. F I=1:1 S X=$P($T(DESC+I),";",3) Q:X["$$END" W !,X
  1. Q
  1. BLD(AZAXICD,AZAXPRC,AZAXDRG) ;
  1. ;----- BUILD ICD DX CODE, PROCEDURE CODE AND DRUG ARRAYS
  1. ;
  1. N I,X
  1. ;
  1. K AZAXICD,AZAXPRC,AZAXDRG
  1. ;
  1. F I=1:1 S X=$P($T(I+I),";",3) Q:X']"" Q:X["$$END" S AZAXI(X)=""
  1. F I=1:1 S X=$P($T(P+I),";",3) Q:X']"" Q:X["$$END" S AZAXP(X)=""
  1. F I=1:1 S X=$P($T(D+I),";",3) Q:X']"" Q:X["$$END" S AZAXD(X)=""
  1. Q
  1. I ;----- ICD DIAGNOSIS CODES BEING SEARCHED:
  1. ;;;714;RHEUMATOID ARTHRITIS;*** TESTING - AEF *** REMOVE THIS LINE
  1. ;;;250;DIABETES;*** TESTING - AEF *** REMOVE THIS LINE
  1. ;;;$$END ;*** TESTING - AEF *** REMOVE THIS LINE
  1. ;;410;ACUTE MYOCARDIAL INFARCTION
  1. ;;411;UNSTABLE ANGINA PECTORIS
  1. ;;412;PREVIOUS ACUTE MYOCARDIAL INFARCTION
  1. ;;413;ANGINA PECTORIS
  1. ;;414;OTHER CHRONIC ISCHEMIC HEART DISEASE
  1. ;;$$END
  1. ;
  1. P ;----- ICD PROCEDURE CODES BEING SEARCHED:
  1. ;;45.82;PERCUTANEOUS TRANSLUMINAL CORONARY ANGIOPLASTY
  1. ;;$$END
  1. ;
  1. D ;----- DRUGS BEING SEARCHED:
  1. ;;;ASPIRIN;;*** TESTING - AEF *** REMOVE THIS LINE
  1. ;;;$$END ;*** TESTING - AEF *** REMOVE THIS LINE
  1. ;;ATORVASTATIN;LIPITOR
  1. ;;LOVASTATIN;MEVACOR
  1. ;;ROSUVASTATIN;CRESTOR
  1. ;;PRAVASTATIN;PRAVACHOL
  1. ;;SIMVASTATIN;ZOCOR
  1. ;;FLUVASTATIN;LESCOL
  1. ;;CERIVASTATIN;BAYCOL
  1. ;;$$END