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

BKMVFAPI.m

Go to the documentation of this file.
  1. BKMVFAPI ;PRXM/HC/ALA - Autopopulate Code for iCare ; 15 Nov 2005 5:46 PM
  1. ;;2.1;HIV MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ;
  1. Q
  1. ;
  1. EN(GLBREF,BKMDEC) ;EP - Entry point
  1. ;
  1. ;Description
  1. ; Find all the patients that would meet the HMS autopopulate logic
  1. ;Input
  1. ; GLBREF - Global reference where the data will be filed (^TMP("name",$j)
  1. ; BKMDEC - Include deceased patients
  1. ;
  1. NEW REGISTER
  1. S REGISTER=$$HIVIEN^BKMIXX3()
  1. I REGISTER="" S BMXSEC="There is no HMS register defined." Q
  1. ;
  1. ;if we have to check for valid user
  1. ;I '$$VALID^BKMIXX3(DUZ) S BMXSEC="You are not a valid HMS user." Q
  1. ;
  1. DXN ; Check the ICD9 Diagnosis taxonomies
  1. K ^TMP("BKMARRAY",$J),^TMP("BKMPOP",$J)
  1. D BLDTAX^BKMIXX5("BGP HIV/AIDS DXS","^TMP(""BKMARRAY"",$J)")
  1. S DXN="" F S DXN=$O(^TMP("BKMARRAY",$J,DXN)) Q:DXN="" D
  1. . S LIEN="" F S LIEN=$O(^AUPNVPOV("B",DXN,LIEN)) Q:LIEN="" D
  1. .. S DFN=$P(^AUPNVPOV(LIEN,0),U,2)
  1. .. I DFN="" Q
  1. .. I 'BKMDEC,$$GET1^DIQ(2,DFN,.351,"I")'="" Q
  1. .. I '$$HRN^BKMVUTL(DFN) Q
  1. .. D NPAT(DFN)
  1. . ;
  1. . S LIEN="" F S LIEN=$O(^AUPNPROB("B",DXN,LIEN)) Q:LIEN="" D
  1. .. S DFN=$P(^AUPNPROB(LIEN,0),U,2) I DFN="" Q
  1. .. I 'BKMDEC,$$GET1^DIQ(2,DFN,.351,"I")'="" Q
  1. .. I '$$HRN^BKMVUTL(DFN) Q
  1. .. D NPAT(DFN)
  1. ;
  1. K DXN,LIEN
  1. ;
  1. MED ; Check the medication taxonomies
  1. K ^TMP("BKMARRAY",$J)
  1. D BLDTAX^BKMIXX5("BKMV NRTI MED NDCS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV NRTI MED NDCS")
  1. D BLDTAX^BKMIXX5("BKMV NRTI MEDS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV NRTI MEDS")
  1. D BLDTAX^BKMIXX5("BKMV NNRTI MED NDCS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV NNRTI MED NDCS")
  1. D BLDTAX^BKMIXX5("BKMV NNRTI MEDS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV NNRTI MEDS")
  1. D BLDTAX^BKMIXX5("BKMV PI MED NDCS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV PI MED NDCS")
  1. D BLDTAX^BKMIXX5("BKMV PI MEDS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV PI MEDS")
  1. D BLDTAX^BKMIXX5("BKMV EI MED NDCS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV EI MED NDCS")
  1. D BLDTAX^BKMIXX5("BKMV EI MEDS","^TMP(""BKMARRAY"",$J)")
  1. S MED="" F S MED=$O(^TMP("BKMARRAY",$J,MED)) Q:MED="" D FMD("BKMV EI MEDS")
  1. K ^TMP($J,"BKMVMEDS")
  1. ;
  1. LAB ; Check the lab, CPT, and LOINC codes in the Lab V-File.
  1. ;
  1. ; Build the lab tests from taxonomies to check
  1. K ^TMP("BKMARRAY",$J),^TMP("BKMCPT",$J)
  1. D BLDTAX^BKMIXX5("BGP HIV TEST TAX","^TMP(""BKMARRAY"",$J)")
  1. S LAB="" F S LAB=$O(^TMP("BKMARRAY",$J,LAB)) Q:LAB="" D FLB("BGP HIV TEST TAX")
  1. K ^TMP("BKMARRAY",$J)
  1. D BLDTAX^BKMIXX5("BGP HIV TEST LOINC CODES","^TMP(""BKMARRAY"",$J)")
  1. S LAB="" F S LAB=$O(^TMP("BKMARRAY",$J,LAB)) Q:LAB="" D FLB("BGP HIV TEST LOINC CODES")
  1. K ^TMP("BKMARRAY",$J)
  1. D BLDTAX^BKMIXX5("BGP CPT HIV TESTS","^TMP(""BKMCPT"",$J)")
  1. S CPT="" F S CPT=$O(^TMP("BKMCPT",$J,CPT)) Q:CPT="" D
  1. . S BCPTR=0 F S BCPTR=$O(^BLRCPT(BCPTR)) Q:'BCPTR D
  1. .. I $D(^BLRCPT(BCPTR,11,"B",CPT)) S LAB=$P($G(^BLRCPT(BCPTR,1)),U,1) I LAB'="" S ^TMP("BKMARRAY",$J,LAB)=$P(^LAB(60,LAB,0),U,1)
  1. K ^TMP("BKMCPT",$J),CPT,BCPTR
  1. S LAB="" F S LAB=$O(^TMP("BKMARRAY",$J,LAB)) Q:LAB="" D FLB("BGP CPT HIV TESTS")
  1. ;
  1. XIT ;KILL LOCALS AND EXIT
  1. D ^XBFMK
  1. K DIR,REGISTER,BKM,FOUND,LOINC,MED,VMEDIEN,Y,ZTDESC,ZTIO,ZTSAVE
  1. K STATUS,ZTRTN,ZTSK,AIDX,AIEN,AOK,DXN,HIDX,HIEN,LIEN,QFL,VISDTM,VISIT
  1. K ^TMP("BKMPOP",$J),^TMP("BKMARRAY",$J),^TMP("BKMTST",$J)
  1. K ^TMP("BKMAIDS",$J),^TMP("BKMHIV",$J),^TMP("BKMCD4",$J)
  1. K DCT,DIAGCAT,HAIDSDT,IAIDSDT,RDATE,LAB,RDA,SBFILE,SUBFIL,XCNP,IGNORE
  1. K BKCIEN,BKMIEN,BKMPOPDT,DFN,ERR,ERROR,BCPTR,CPT,ENTRY,BKMDEC
  1. Q
  1. ;
  1. FMD(MTAX) ; Find Medications
  1. NEW LIEN
  1. S LIEN="" F S LIEN=$O(^AUPNVMED("B",MED,LIEN)) Q:LIEN="" D
  1. . S DFN=$P(^AUPNVMED(LIEN,0),U,2)
  1. . I DFN="" Q
  1. . I 'BKMDEC,$$GET1^DIQ(2,DFN,.351,"I")'="" Q
  1. . I '$$HRN^BKMVUTL(DFN) Q
  1. . S ^TMP($J,"BKMVMEDS",DFN)=$G(^TMP($J,"BKMVMEDS",DFN))+1
  1. . Q
  1. S DFN="" F S DFN=$O(^TMP($J,"BKMVMEDS",DFN)) Q:DFN="" D
  1. . I $G(^TMP($J,"BKMVMEDS",DFN))>1 D NPAT(DFN)
  1. K ^TMP($J,"BKMVMEDS",DFN),^TMP("BKMARRAY",$J)
  1. K DFN,MTAX
  1. Q
  1. ;
  1. FLB(LTAX) ; Find Lab tests
  1. NEW LIEN
  1. S LIEN="" F S LIEN=$O(^AUPNVLAB("B",LAB,LIEN)) Q:LIEN="" D
  1. . S DFN=$P(^AUPNVLAB(LIEN,0),U,2)
  1. . I DFN="" Q
  1. . I 'BKMDEC,$$GET1^DIQ(2,DFN,.351,"I")'="" Q
  1. . I '$$HRN^BKMVUTL(DFN) Q
  1. . S RESULT=$$GET1^DIQ(9000010.09,LIEN,.04,"E") Q:RESULT=""
  1. . I $$POSITIVE^BKMVF32(RESULT) D NPAT(DFN)
  1. K LIEN,LTAX,RESULT,DFN
  1. Q
  1. ;
  1. NPAT(DFN) ;
  1. S @GLBREF@(DFN,0)=""
  1. Q