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

BQITD11.m

Go to the documentation of this file.
  1. BQITD11 ;PRXM/HC/ALA-PreDM Metabolic Syndrome ; 10 Apr 2006 6:48 PM
  1. ;;2.4;ICARE MANAGEMENT SYSTEM;;Apr 01, 2015;Build 41
  1. Q
  1. ;
  1. POP(BQARY,TGLOB) ; EP -- By population
  1. ;
  1. ;Description
  1. ; Finds all patients who meet the criteria for PreDM Metabolic Syndrome
  1. ;Input
  1. ; BQARY - Array of taxonomies and other information
  1. ; TGLOB - Global where data is to be stored and passed back
  1. ; to calling routine
  1. ; Structure:
  1. ; TGLOB(DFN,"CRITERIA",criteria or taxonomy,visit or problem ien)=date/time
  1. ;Variables
  1. ; TAX - Taxonomy name
  1. ; NIT - Number of iterations
  1. ; TMFRAME - Time frame of check
  1. ;
  1. ; Clean up all current entries
  1. NEW DXNN,TDFN,DA,DIK,CIRCUM
  1. ;
  1. ; Check for 2 diagnoses ever of DX.13 or on Active Problem List
  1. I $D(@BQARY) D
  1. . S TMGLB=$NA(^TMP("BQITD11",UID))
  1. . D POP^BQITDGN(BQARY,TMGLB)
  1. ;
  1. ; Check if any of the defined pre-DM patients have already been identified a diabetic
  1. S TXDXCN=$$GDXN^BQITUTL("Diabetes")
  1. S TDFN=""
  1. F S TDFN=$O(@TMGLB@(TDFN)) Q:'TDFN D
  1. . I '$$ATAG^BQITDUTL(TDFN,"Diabetes") M @TGLOB@(TDFN)=@TMGLB@(TDFN)
  1. K @TMGLB
  1. ;
  1. ; Any three or more of the following in the past year:
  1. NEW TMFRAME
  1. S TMFRAME="T-12M",EXDT="",DTDIF=""
  1. S TMGLB1=$NA(^TMP("BQITD11A",UID))
  1. I $G(TMFRAME)'="" D
  1. . S ENDT=$$DATE^BQIUL1(TMFRAME),STDT=$$DT^XLFDT()
  1. . S DTDIF=$$FMDIFF^XLFDT(STDT,ENDT,1)
  1. ;
  1. ; Triglyceride test value
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S TAX="DM AUDIT TRIGLYCERIDE TAX" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="BGP TRIGLYCERIDE LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S TIEN=0 F S TIEN=$O(@TREF@(TIEN)) Q:'TIEN D
  1. . S IEN=""
  1. . F S IEN=$O(@GREF@("B",TIEN,IEN),-1) Q:IEN="" D
  1. .. I $G(@GREF@(IEN,0))="" Q
  1. .. S DFN=$$GET1^DIQ(FREF,IEN,.02,"I") Q:DFN=""
  1. .. I $$ATAG^BQITDUTL(DFN,"Diabetes") Q
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I RESULT'>149 Q
  1. .. D STOR(DFN,"Triglyceride Test Value",VISIT,IEN)
  1. ;
  1. ; HDL test value
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S TAX="DM AUDIT HDL TAX" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="BGP HDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. S TIEN=0 F S TIEN=$O(@TREF@(TIEN)) Q:'TIEN D
  1. . S IEN=""
  1. . F S IEN=$O(@GREF@("B",TIEN,IEN),-1) Q:IEN="" D
  1. .. I $G(@GREF@(IEN,0))="" Q
  1. .. S DFN=$$GET1^DIQ(FREF,IEN,.02,"I") Q:DFN=""
  1. .. I $$ATAG^BQITDUTL(DFN,"Diabetes") Q
  1. .. S SEX=$$GET1^DIQ(2,DFN,.02,"I")
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I SEX="M"!(SEX="U"),RESULT<40 D STOR(DFN,"HDL Test Value",VISIT,IEN) Q
  1. .. I SEX="F",RESULT<50 D STOR(DFN,"HDL Test Value",VISIT,IEN)
  1. ;
  1. ; Fasting Glucose test value
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S TAX="DM AUDIT FASTING GLUCOSE TESTS" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="DM AUDIT FASTING GLUC LOINC" D BLD^BQITUTL(TAX,TREF)
  1. S TIEN=0 F S TIEN=$O(@TREF@(TIEN)) Q:'TIEN D
  1. . S IEN=""
  1. . F S IEN=$O(@GREF@("B",TIEN,IEN),-1) Q:IEN="" D
  1. .. S DFN=$$GET1^DIQ(FREF,IEN,.02,"I") Q:DFN=""
  1. .. I $$ATAG^BQITDUTL(DFN,"Diabetes") Q
  1. .. S SEX=$$GET1^DIQ(2,DFN,.02,"I")
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I RESULT<100!(RESULT'<126) Q
  1. .. D STOR(DFN,"Fasting Glucose Test Value",VISIT,IEN)
  1. ;
  1. S FREF=9000010.07,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S TAX="BGP IMPAIRED FASTING GLUCOSE" D BLD^BQITUTL(TAX,.TREF)
  1. ;D BLDSV^BQITUTL(80,790.21,TREF)
  1. S TIEN=0 F S TIEN=$O(@TREF@(TIEN)) Q:'TIEN D
  1. . S IEN=""
  1. . F S IEN=$O(@GREF@("B",TIEN,IEN),-1) Q:IEN="" D
  1. .. I $G(@GREF@(IEN,0))="" Q
  1. .. S DFN=$$GET1^DIQ(FREF,IEN,.02,"I") Q:DFN=""
  1. .. I $$ATAG^BQITDUTL(DFN,"Diabetes") Q
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. D STOR(DFN,"Fasting Glucose Test Value",VISIT,IEN)
  1. ;
  1. ; Patients diagnosed with hypertension
  1. S TDXN=$$GDXN^BQITUTL("Hypertension")
  1. S BQDREF="BQIREF" K @BQDREF
  1. D ARY^BQITUTL(TDXN,BQDREF)
  1. S $P(BQIREF(1),U,4)="T-12M",TAX=$P(BQIREF(1),U,1)
  1. S TMGLB2=$NA(^TMP("BQITD11B",UID)) K @TMGLB2
  1. D POP^BQITDGN(.BQDREF,.TMGLB2,1)
  1. S TDFN=""
  1. F S TDFN=$O(@TMGLB2@(TDFN)) Q:TDFN="" D
  1. . I $$ATAG^BQITDUTL(TDFN,"Diabetes") Q
  1. . I $G(@TMGLB1@(TDFN))>3 Q
  1. . I $D(@TMGLB1@(TDFN,"CRITERIA",TAX))>0 Q
  1. . S @TMGLB1@(TDFN)=$G(@TMGLB1@(TDFN))+1
  1. . M @TMGLB1@(TDFN)=@TMGLB2@(TDFN)
  1. K BQIREF
  1. ;
  1. ; Patients with mean Blood Pressure value
  1. S TMPG=$NA(^TMP("BQIBP",UID)),FREF="9000010.01"
  1. K @TMPG
  1. D ABP^BQITBMI(TMFRAME,.TMPG)
  1. S TDFN=0
  1. F S TDFN=$O(@TMPG@(TDFN)) Q:'TDFN D
  1. . I $$ATAG^BQITDUTL(TDFN,"Diabetes") Q
  1. . S TBP=@TMPG@(TDFN)
  1. . S SYS=$P(TBP,U,1),DIA=$P(TBP,U,2),VISITS=$P(TBP,U,3),IIENS=$P(TBP,U,4)
  1. . I SYS'<130!(DIA'<85) D
  1. .. I '$D(@TMGLB2@(TDFN)) D STOR(TDFN,"Mean BP Value",VISITS,IIENS)
  1. K @TMGLB2,TMGLB2
  1. ;
  1. S TMPG=$NA(^TMP("BQIBMI",UID))
  1. K @TMPG
  1. D ABMI^BQITBMI(TMFRAME,.TMPG)
  1. S TDFN=0
  1. F S TDFN=$O(@TMPG@(TDFN)) Q:'TDFN D
  1. . I $$ATAG^BQITDUTL(TDFN,"Diabetes") Q
  1. . S BMI=$P(@TMPG@(TDFN),"^",1)
  1. . I BMI'<30 D
  1. .. S @TMGLB1@(TDFN)=$G(@TMGLB1@(TDFN))+1
  1. .. F TX="BMI-Height","BMI-Weight" S VST="" D
  1. ... F S VST=$O(@TMPG@(TDFN,"CRITERIA",TX,"V",VST)) Q:VST="" D
  1. .... S IEN="",FREF=9000010.01,EXDT=""
  1. .... F S IEN=$O(@TMPG@(TDFN,"CRITERIA",TX,"V",VST,IEN)) Q:IEN="" D
  1. ..... S VSDTM=$P(@TMPG@(TDFN,"CRITERIA",TX,"V",VST,IEN),U,1)
  1. ..... I DTDIF'="" S EXDT=$$FMADD^XLFDT(VSDTM,DTDIF)
  1. ..... S $P(@TMGLB1@(TDFN,"CRITERIA","BMI =>30","V",VST,IEN),U,1)=VSDTM_U_EXDT_U_IEN_U_FREF
  1. .. D STOR(TDFN,"BMI =>30")
  1. K @TMPG
  1. ;
  1. S TMPG=$NA(^TMP("BQIWST",UID))
  1. K @TMPG
  1. D AWC^BQITDWC(TMFRAME,.TMPG)
  1. S TDFN=0
  1. F S TDFN=$O(@TMPG@(TDFN)) Q:'TDFN D
  1. . I $$ATAG^BQITDUTL(TDFN,"Diabetes") Q
  1. . S SEX=$$GET1^DIQ(2,TDFN,.02,"I")
  1. . S DATE="",QFL=0
  1. . F S DATE=$O(@TMPG@(TDFN,DATE),-1) Q:DATE="" D Q:QFL
  1. .. ; check if Waist Circumference is M>40 or F>35
  1. .. S CIRCUM=$P(@TMPG@(TDFN,DATE),"^",1)
  1. .. S VISIT=$P(@TMPG@(TDFN,DATE),"^",2)
  1. .. S IEN=$P(@TMPG@(TDFN,DATE),"^",3)
  1. .. S FREF=$P(@TMPG@(TDFN,DATE),"^",4)
  1. .. I SEX="M",CIRCUM>40 D STOR(TDFN,"Waist Circumference",VISIT,IEN) S QFL=1 Q
  1. .. I SEX="F"!(SEX="U"),CIRCUM>35 D STOR(TDFN,"Waist Circumference",VISIT,IEN) S QFL=1
  1. K @TMPG,TMPG
  1. ;
  1. S TDFN=""
  1. F S TDFN=$O(@TMGLB1@(TDFN)) Q:TDFN="" I @TMGLB1@(TDFN)<3 K @TMGLB1@(TDFN)
  1. ;
  1. ; Finish with all the logic and have a list of patients to file from TGLOB
  1. S TDFN=""
  1. F S TDFN=$O(@TMGLB1@(TDFN)) Q:TDFN="" D
  1. . I '$$ATAG^BQITDUTL(TDFN,"Diabetes") M @TGLOB@(TDFN)=@TMGLB1@(TDFN)
  1. ;
  1. K @TMGLB,@TMGLB1,@TREF
  1. K TDFN,SYS,DIA,TBP,TDXN,RESULT,VSDTM,VISIT,SEX,DFN,IEN,TIEN
  1. K TAX,GREF,FREF,TREF,TX,SDFN,PC,TMGLB,TMGLB1,TXDXCN,TMPG
  1. Q
  1. ;
  1. PAT(DEF,TGLOB,PDFN) ; EP -- By patient
  1. ;Description
  1. ; Checks if a patient meets the criteria for PreDM Metabolic Syndrome
  1. ;Input
  1. ; BQARY - Array of taxonomies and other information
  1. ; DFN - patient internal entry number
  1. ;
  1. NEW DXOK,TMFRAME,ENDT,TMGLB1,FREF,GREF,TREF,TAX,GLOBAL,PC,IEN,TIEN,VISIT,VSDTM
  1. NEW SYS,DIA,TBP,SEX,BQARY,VISITS,TXDXCN,BMID,VIENS,HYOK,IIENS,BDT,EDT
  1. ;
  1. I $$ATAG^BQITDUTL(PDFN,"Diabetes") Q 0
  1. ;
  1. S BQDXN=$$GDXN^BQITUTL(DEF)
  1. S BQARY="BQIRY"
  1. D GDF^BQITUTL(BQDXN,BQARY)
  1. S DXOK=0
  1. S DXOK=$$PAT^BQITDGN(BQARY,TGLOB,PDFN) I DXOK Q DXOK
  1. ;
  1. S TMFRAME="T-12M",EXDT="",DTDIF="",BDT=$$DATE^BQIUL1(TMFRAME),EDT=DT
  1. S TMGLB1=$NA(^TMP("BQITD11A",UID))
  1. K @TMGLB1
  1. I $G(TMFRAME)'="" D
  1. . S ENDT=$$DATE^BQIUL1(TMFRAME),STDT=$$DT^XLFDT()
  1. . S DTDIF=$$FMDIFF^XLFDT(STDT,ENDT,1)
  1. ;
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID))
  1. K @TREF
  1. S TAX="DM AUDIT TRIGLYCERIDE TAX" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="BGP TRIGLYCERIDE LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. D
  1. . S IEN="",QFL=0
  1. . F S IEN=$O(@GREF@("AC",PDFN,IEN),-1) Q:IEN="" D Q:QFL
  1. .. S TIEN=$$GET1^DIQ(FREF,IEN,.01,"I") Q:TIEN=""
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I RESULT'>149 Q
  1. .. D STOR(PDFN,"Triglyceride Test Value",VISIT,IEN)
  1. .. S QFL=1
  1. ;
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID))
  1. K @TREF
  1. S TAX="DM AUDIT HDL TAX" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="BGP HDL LOINC CODES" D BLD^BQITUTL(TAX,TREF)
  1. D
  1. . S IEN="",QFL=0
  1. . F S IEN=$O(@GREF@("AC",PDFN,IEN),-1) Q:IEN="" D Q:QFL
  1. .. S TIEN=$$GET1^DIQ(FREF,IEN,.01,"I") Q:TIEN=""
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S SEX=$$GET1^DIQ(2,PDFN,.02,"I")
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I SEX="M"!(SEX="U"),RESULT<40 D STOR(PDFN,"HDL Test Value",VISIT,IEN) S QFL=1 Q
  1. .. I SEX="F",RESULT<50 D STOR(PDFN,"HDL Test Value",VISIT,IEN) S QFL=1
  1. ;
  1. S FREF=9000010.09,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID))
  1. K @TREF
  1. S TAX="DM AUDIT FASTING GLUCOSE TESTS" D BLD^BQITUTL(TAX,TREF,"L")
  1. S TAX="DM AUDIT FASTING GLUC LOINC" D BLD^BQITUTL(TAX,TREF)
  1. D
  1. . S IEN="",QFL=0
  1. . F S IEN=$O(@GREF@("AC",PDFN,IEN),-1) Q:IEN="" D Q:QFL
  1. .. S TIEN=$$GET1^DIQ(FREF,IEN,.01,"I") Q:TIEN=""
  1. .. I '$D(@TREF@(TIEN)) Q
  1. .. S SEX=$$GET1^DIQ(2,PDFN,.02,"I")
  1. .. S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. .. I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. .. S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. .. I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. .. S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. .. I RESULT="" Q
  1. .. I RESULT<100!(RESULT'<126) Q
  1. .. D STOR(PDFN,"Fasting Glucose Test Value",VISIT,IEN)
  1. .. S QFL=1
  1. ;
  1. S FREF=9000010.07,GREF=$$ROOT^DILFD(FREF,"",1),TREF=$NA(^TMP("BQITAX",UID)) K @TREF
  1. S TAX="BGP IMPAIRED FASTING GLUCOSE" D BLD^BQITUTL(TAX,.TREF)
  1. ;D BLDSV^BQITUTL(80,790.21,TREF)
  1. S IEN="",QFL=0
  1. F S IEN=$O(@GREF@("AC",PDFN,IEN),-1) Q:IEN="" D Q:QFL
  1. . S TIEN=$$GET1^DIQ(FREF,IEN,.01,"I") Q:TIEN=""
  1. . I '$D(@TREF@(TIEN)) Q
  1. . S VISIT=$$GET1^DIQ(FREF,IEN,.03,"I") Q:VISIT=""
  1. . I $$GET1^DIQ(9000010,VISIT,.11,"I")=1 Q
  1. . S VSDTM=$$GET1^DIQ(9000010,VISIT,.01,"I")\1 Q:'VSDTM
  1. . I $G(TMFRAME)'="",VSDTM<ENDT Q
  1. . S RESULT=$$GET1^DIQ(FREF,IEN,.04,"E")
  1. . I RESULT="" Q
  1. . I RESULT<100!(RESULT'<126) Q
  1. . D STOR(PDFN,"Fasting Glucose Test Value",VISIT,IEN)
  1. . S QFL=1
  1. ;
  1. S BQDXN=$$GDXN^BQITUTL("Hypertension")
  1. S BQARY="BQIRY"
  1. D GDF^BQITUTL(BQDXN,BQARY)
  1. S $P(BQIRY(1),U,4)="T-12M",TAX=$P(BQIRY(1),U,1)
  1. S TMGLB2=$NA(^TMP("BQITD11B",UID)) K @TMGLB2
  1. S DXOK=0,HYOK=0
  1. S DXOK=$$PAT^BQITDGN(BQARY,TMGLB2,PDFN)
  1. I DXOK D
  1. . I $G(@TMGLB1@(PDFN))>3 Q
  1. . I $D(@TMGLB1@(PDFN,"CRITERIA",TAX))>0 Q
  1. . M @TMGLB1@(PDFN,"CRITERIA")=@TMGLB2@(PDFN,"CRITERIA")
  1. . S @TMGLB1@(PDFN)=$G(@TMGLB1@(PDFN))+1,HYOK=1,DXOK=0
  1. K @TMGLB2
  1. ;
  1. S FREF="9000010.01"
  1. S TBP=$$BP^BQITBMI(PDFN,TMFRAME)
  1. S SYS=$P(TBP,U,1),DIA=$P(TBP,U,2),VISITS=$P(TBP,U,3),IIENS=$P(TBP,U,4)
  1. I SYS'<130!(DIA'<85) I 'HYOK D STOR(PDFN,"Mean BP Value",VISITS,IIENS)
  1. ;
  1. ;S BMID=$$OBMI^BQITBMI(PDFN,TMFRAME)
  1. NEW BV,BMI,BMR,QFL
  1. S BMID=$$PBMI^APCLV(PDFN,DT)
  1. S BMI=$P(BMID,"^",1)
  1. I BMI'="" D
  1. . I $P(BMID,"^",3)<BDT!($P(BMID,"^",3)>EDT)!($P(BMID,"^",6)<BDT)!($P(BMID,"^",7)>EDT) S BMI="" Q
  1. . S VIENS=$P(BMID,"^",4)_","_$P(BMID,"^",7),IIENS=$P(BMID,"^",10)
  1. . I IIENS="" S QFL=0 D
  1. .. I $P(BMID,"^",4)=$P(BMID,"^",7) D Q:QFL
  1. ... S BV=$P(BMID,"^",4),BVI="",BMR=$$FIND1^DIC(9999999.07,,"MX","BMI")
  1. ... F S BVI=$O(^AUPNVMSR("AD",BV,BVI)) Q:BVI="" I $P(^AUPNVMSR(BVI,0),"^",1)=BMR S IIENS=BVI,QFL=1
  1. .. S BV=$P(BMID,"^",4),BVI="",BMR=$$FIND1^DIC(9999999.07,,"MX","HEIGHT")
  1. .. F S BVI=$O(^AUPNVMSR("AD",BV,BVI)) Q:BVI="" I $P(^AUPNVMSR(BVI,0),"^",1)=BMR S IIENS=BVI_","
  1. .. S BV=$P(BMID,"^",7),BVI="",BMR=$$FIND1^DIC(9999999.07,,"MX","WEIGHT")
  1. .. F S BVI=$O(^AUPNVMSR("AD",BV,BVI)) Q:BVI="" I $P(^AUPNVMSR(BVI,0),"^",1)=BMR S IIENS=IIENS_BVI
  1. I BMI'<30 D STOR(PDFN,"BMI =>30",VIENS,IIENS)
  1. ;
  1. NEW VALUE
  1. S VALUE=$$WC^BQITDWC(PDFN,TMFRAME)
  1. S CIRCUM=$P(VALUE,U,1),VISIT=$P(VALUE,U,2),IEN=$P(VALUE,U,3)
  1. S SEX=$$GET1^DIQ(2,PDFN,.02,"I")
  1. I SEX="M",CIRCUM>40 I '$D(@TMGLB1@(PDFN,"CRITERIA","BMI =>30")) D STOR(PDFN,"Waist Circumference",VISIT,IEN)
  1. I SEX="F"!(SEX="U"),CIRCUM>35 I '$D(@TMGLB1@(PDFN,"CRITERIA","BMI =>30")) D STOR(PDFN,"Waist Circumference",VISIT,IEN)
  1. ;
  1. I $G(@TMGLB1@(PDFN))<3 S DXOK=$S(DXOK=1:1,1:0)
  1. I $G(@TMGLB1@(PDFN))'<3 S DXOK=1
  1. ;
  1. I DXOK M @TGLOB@(PDFN)=@TMGLB1@(PDFN)
  1. K @TMGLB1
  1. Q DXOK
  1. ;
  1. STOR(SDFN,CRIT,VIENS,IENS) ; Store the patient's met criteria
  1. NEW VST,I,VSDTM,IIEN
  1. I $G(@TMGLB1@(SDFN))>3 Q
  1. ;I $D(@TMGLB1@(SDFN,"CRITERIA",CRIT))>0 Q
  1. S @TMGLB1@(SDFN)=$G(@TMGLB1@(SDFN))+1
  1. S @TMGLB1@(SDFN,"CRITERIA",CRIT)=""
  1. I $G(VIENS)["," D Q
  1. . F I=1:1 S VST=$P(VIENS,",",I) Q:VST="" D
  1. .. I IENS["," S IIEN=$P(IENS,",",I)
  1. .. I IENS'["," S IIEN=IENS
  1. .. S VSDTM=$$GET1^DIQ(9000010,VST_",",.01,"I") Q:'VSDTM
  1. .. I DTDIF'="" S EXDT=$$FMADD^XLFDT(VSDTM,DTDIF)
  1. .. S @TMGLB1@(SDFN,"CRITERIA",CRIT,"V",VST,IIEN)=VSDTM_U_U_IIEN_U_FREF
  1. .. I EXDT'="" S $P(@TMGLB1@(SDFN,"CRITERIA",CRIT,"V",VST,IIEN),U,2)=EXDT
  1. I $G(VIENS)'="" D
  1. . S VSDTM=$$GET1^DIQ(9000010,VIENS_",",.01,"I") Q:'VSDTM
  1. . I DTDIF'="" S EXDT=$$FMADD^XLFDT(VSDTM,DTDIF)
  1. . S @TMGLB1@(SDFN,"CRITERIA",CRIT,"V",VIENS,IENS)=VSDTM_U_U_IENS_U_FREF
  1. . I EXDT'="" S $P(@TMGLB1@(SDFN,"CRITERIA",CRIT,"V",VIENS,IENS),U,2)=EXDT
  1. Q