PXRMVCPT ; SLC/PKR - Code to handle VCPT data. ;10/21/2005 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21 ; ;=============================================== FPDAT(DFN,TAXARR,NGET,SDIR,BDT,EDT,FLIST) ;Find data for a patient. N DAS,DATE,DS,EDTT,ICPTP,NFOUND,NODE,NNODE,TDATE,TIND,TE,TLIST,TS I $G(^PXRMINDX(9000010.18,"DATE BUILT"))="" D Q . D NOINDEX^PXRMERRH("TX",TAXARR("IEN"),9000010.18) I '$D(^PXRMINDX(9000010.18,"PPI",DFN)) Q S NNODE=+$P($G(TAXARR("PDS",9000010.18,81)),U,2) I NNODE=0 Q ;Get the start and end of the taxonomy. S TS=$O(TAXARR(81,""))-1 S TE=$O(TAXARR(81,""),-1) S EDTT=$S(EDT[".":EDT+.0000001,1:EDT+.240001) S DS=$S(SDIR=+1:BDT-.000001,1:EDTT) S NFOUND=0 F IND=1:1:NNODE D . S NODE=TAXARR("PDS",9000010.18,81,IND) . S ICPTP=TS . F S ICPTP=$O(^PXRMINDX(9000010.18,"PPI",DFN,NODE,ICPTP)) Q:(ICPTP>TE)!(ICPTP="") D .. I '$D(TAXARR(81,ICPTP)) Q .. S DATE=DS .. F S DATE=+$O(^PXRMINDX(9000010.18,"PPI",DFN,NODE,ICPTP,DATE),SDIR) Q:$S(DATE=0:1,DATEEDTT:1,1:0) D ... S DAS=$O(^PXRMINDX(9000010.18,"PPI",DFN,NODE,ICPTP,DATE,"")) ... S NFOUND=NFOUND+1 ... S TLIST(DATE,NFOUND)=DAS_U_ICPTP_U_NODE_U_"CPT" ... I NFOUND>NGET D .... S TDATE=$O(TLIST(""),-SDIR),TIND=$O(TLIST(TDATE,"")) .... K TLIST(TDATE,TIND) ;Return up to NGET of the most recent entries. S NFOUND=0 S DATE="" F S DATE=$O(TLIST(DATE),SDIR) Q:(DATE="")!(NFOUND=NGET) D . S IND=0 . F S IND=$O(TLIST(DATE,IND)) Q:(IND="")!(NFOUND=NGET) D .. S NFOUND=NFOUND+1 .. S FLIST(DATE,NFOUND,9000010.18)=TLIST(DATE,IND) Q ; ;=============================================== GETDATA(DAS,FIEVT) ;Return data for a specified V CPT entry. ;DBIA #4250. D VCPT^PXPXRM(DAS,.FIEVT) Q ; ;=============================================== GPLIST(TAXARR,NOCC,BDT,EDT,PLIST) ;Build patient list for V CPT entries. N DAS,DATE,DFN,DS,ICPTP,NFOUND,NODE,NNODE,TEMP,TLIST I $G(^PXRMINDX(9000010.18,"DATE BUILT"))="" D Q . D NOINDEX^PXRMERRH("TX",TAXARR("IEN"),9000010.18) S TLIST="GPLIST_PXRMVPOV" K ^TMP($J,TLIST) S DS=$S(EDT[".":EDT+.0000001,1:EDT+.240001) S NNODE=+$P($G(TAXARR("PDS",9000010.18,81)),U,2) I NNODE=0 Q S ICPTP="" F S ICPTP=$O(TAXARR(81,ICPTP)) Q:(ICPTP="") D . I '$D(^PXRMINDX(9000010.18,"IPP",ICPTP)) Q . F IND=1:1:NNODE D .. S NODE=TAXARR("PDS",9000010.18,81,IND) .. I '$D(^PXRMINDX(9000010.18,"IPP",ICPTP,NODE)) Q .. S DFN=0 .. F S DFN=$O(^PXRMINDX(9000010.18,"IPP",ICPTP,NODE,DFN)) Q:DFN="" D ... S DATE=DS ... F S DATE=+$O(^PXRMINDX(9000010.18,"IPP",ICPTP,NODE,DFN,DATE),-1) Q:(DATE=0)!(DATE