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

BKMCRS.m

Go to the documentation of this file.
  1. BKMCRS ;PRXM/HC/ALA-STI for CRS ; 01 Mar 2007 7:17 PM
  1. ;;2.2;HIV MANAGEMENT SYSTEM;**2**;Apr 01, 2015;Build 3
  1. ;
  1. Q
  1. ;
  1. ; This function cycles through the V-Lab file checking
  1. ; each lab, CPT4, ICD9, and LOINC associated with a DFN to
  1. ; see if each is in an appropriate taxonomy, old enough,
  1. ; and if required positive.
  1. ;
  1. ; DFN is the patient DFN from file 2 or 9000001.
  1. ;
  1. ; LABT is the text name of the lab taxonomy.
  1. ; LOINCT is the text name of the LOINC taxonomy.
  1. ; CPTT is the text name of the CPT taxonomy.
  1. ; ICDT is the text name of the ICD9 taxonomy.
  1. ;
  1. ; BDATE is the base (starting) date for the search.
  1. ;
  1. ; IDATE is the date of the last item (LAB, LOINC, CPT, or ICD) passed by reference.
  1. ;
  1. ; LDATE is the date of the last LAB passed by reference.
  1. ; LR if there is a LDATE then the LR will be equal to the result.
  1. ; LV if there is a LDATE then the LV is the V Lab IEN.
  1. ;
  1. ; PDATE is the date of the last positive LAB passed by reference.
  1. ; PR if there is a PDATE then the PR will be equal to the positive result.
  1. ; PV if there is a PDATE then the PV is the V Lab IEN.
  1. ;
  1. ; NDATE is the date of the last negative LAB passed by reference.
  1. ; NR if there is a NDATE then the NR will be equal to the negative result.
  1. ; NV if there is a NDATE then the NV is the V Lab IEN.
  1. ;
  1. LABCODES(DFN,LABT,LOINCT,CPTT,ICDT,EDATE,BDATE,IDATE,LDATE,LR,PDATE,PR,NDATE,NR,LV) ;EP
  1. ; Retrieve lab codes.
  1. N QDATE,QV,TARGET,LABTEST,LAB,LABDT,RESULT
  1. S LABT=$G(LABT,""),LOINCT=$G(LOINCT,""),CPTT=$G(CPTT,""),ICDT=$G(ICDT,""),OFLG=$G(OFLG,""),LV=$G(LV,"")
  1. S BDATE=$G(BDATE,""),IDATE=$G(IDATE,""),LDATE=$G(LDATE,""),PDATE=$G(PDATE,""),NDATE=$G(NDATE,""),ODATE=$G(ODATE,"")
  1. S EDATE=$G(EDATE,"")
  1. S (LR,PR,NR,OR)=""
  1. S TARGET="LABTEST(VSTDT,TEST)"
  1. S QDATE="",QV=""
  1. D LABTAX^BKMIXX(DFN,LABT,EDATE,BDATE,TARGET,.QDATE,.QV)
  1. I QDATE="",$D(LABTEST) D
  1. . S QDATE=$O(LABTEST(""),-1),QV=$O(LABTEST(QDATE,""),-1)
  1. I QDATE'="" D
  1. . S LDATE=QDATE\1
  1. . I QV'="" S TVALN=$P(^AUPNVLAB(QV,0),U,1),PRNM=$P($G(^LAB(60,TVALN,.1)),U,1)
  1. . I '$D(VALUE(BKTY,"NUM",BKNMTY,BKDATE)) S VALUE(BKTY,"NUM",BKNMTY,BKDATE)=1_U_$$FMTE^XLFDT(LDATE,"2Z")_" Lab ["_$S(PRNM'="":PRNM,1:$P($G(^LAB(60,TVALN,0)),U,1))_"]"_U_QV
  1. S IDATE=QDATE,LDATE=QDATE,LV=QV
  1. K LABTEST
  1. S QDATE="",QV=""
  1. D LOINC^BKMIXX(DFN,LOINCT,EDATE,BDATE,TARGET,.QDATE,.QV)
  1. I QDATE="",$D(LABTEST) D
  1. . S QDATE=$O(LABTEST(""),-1),QV=$O(LABTEST(QDATE,""),-1)
  1. I QDATE'="" D
  1. . S LDATE=QDATE\1
  1. . I QV'="" S TVALN=$P(^AUPNVLAB(QV,0),U,1),PRNM=$P($G(^LAB(60,TVALN,.1)),U,1)
  1. . I '$D(VALUE(BKTY,"NUM",BKNMTY,BKDATE)) S VALUE(BKTY,"NUM",BKNMTY,BKDATE)=1_U_$$FMTE^XLFDT(LDATE,"2Z")_" Lab ["_$S(PRNM'="":PRNM,1:$P($G(^LAB(60,TVALN,0)),U,1))_"]"_U_QV
  1. ;I QDATE>IDATE S IDATE=QDATE,LDATE=QDATE,LV=QV
  1. K LABTEST
  1. S QDATE="",QV=""
  1. D CPTTAX^BKMIXX(DFN,CPTT,EDATE,BDATE,TARGET,.QDATE,.QV)
  1. I QDATE="",$D(LABTEST) D
  1. . S QDATE=$O(LABTEST(""),-1),QV=$O(LABTEST(QDATE,""),-1)
  1. I QDATE'="" D
  1. . S LDATE=QDATE\1
  1. . I QV'="" S TVALN=$P(^AUPNVCPT(QV,0),U,1) D
  1. .. I $$VERSION^XPDUTL("BCSV") S PRNM=$$ICPT^BKMUL3(TVALN,LDATE,2) Q ; csv
  1. .. S PRNM=$P($G(^ICPT(TVALN,0)),U,1)
  1. . I '$D(VALUE(BKTY,"NUM",BKNMTY,BKDATE)) S VALUE(BKTY,"NUM",BKNMTY,BKDATE)=1_U_$$FMTE^XLFDT(LDATE,"2Z")_" CPT ["_PRNM_"]"_U_QV
  1. ;I QDATE>IDATE S IDATE=QDATE,LDATE=QDATE,LV=QV
  1. K LABTEST
  1. S QDATE="",QV=""
  1. D ICDTAX^BKMIXX1(DFN,ICDT,EDATE,BDATE,TARGET,.QDATE,.QV)
  1. I QDATE="",$D(LABTEST) D
  1. . S QDATE=$O(LABTEST(""),-1),QV=$O(LABTEST(QDATE,""),-1)
  1. I QDATE'="" D
  1. . S LDATE=QDATE\1
  1. . I QV'="" S TVALN=$P(^AUPNVPOV(QV,0),U,1) D
  1. .. I $$VERSION^XPDUTL("BCSV") S PRNM=$$ICD9^BKMUL3(TVALN,LDATE,2) Q ; csv
  1. .. S PRNM=$P($G(^ICD9(TVALN,0)),U,1)
  1. . I '$D(VALUE(BKTY,"NUM",BKNMTY,BKDATE)) S VALUE(BKTY,"NUM",BKNMTY,BKDATE)=1_U_$$FMTE^XLFDT(LDATE,"2Z")_" POV ["_PRNM_"]"_U_QV
  1. Q
  1. ;
  1. HREF ; HIV Refusals
  1. S GLOBAL="BKMT(""HIV"",VSTDT,TEST,""LAB"")" D REFUSAL^BKMIXX2(BKMDFN,60,"BGP HIV TEST TAX","","",GLOBAL)
  1. S GLOBAL="BKMT(""HIV"",VSTDT,TEST,""CPT"")" D REFUSAL^BKMIXX2(BKMDFN,81,"BGP CPT HIV TESTS","","",GLOBAL)
  1. Q
  1. ;
  1. CLRF ; Chlamydia Refusals
  1. S GLOBAL="BKMT(""CHL"",VSTDT,TEST,""LAB"")" D REFUSAL^BKMIXX2(BKMDFN,60,"BGP CHLAMYDIA TESTS TAX","","",GLOBAL)
  1. S GLOBAL="BKMT(""CHL"",VSTDT,TEST,""CPT"")" D REFUSAL^BKMIXX2(BKMDFN,81,"BTPW CHLAMYDIA CPTS","","",GLOBAL)
  1. Q
  1. ;
  1. GRF ; Gonorrhea Refusals
  1. S GLOBAL="BKMT(""GC"",VSTDT,TEST,""LAB"")" D REFUSAL^BKMIXX2(BKMDFN,60,"BKM GONORRHEA TEST TAX","","",GLOBAL)
  1. S GLOBAL="BKMT(""GC"",VSTDT,TEST,""CPT"")" D REFUSAL^BKMIXX2(BKMDFN,81,"BKM GONORRHEA TESTS CPTS","","",GLOBAL)
  1. Q