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

PXRMEVFI.m

Go to the documentation of this file.
  1. PXRMEVFI ;SLC/PKR - Driver for finding evaluation. ;23-Mar-2015 10:11;DU
  1. ;;2.0;CLINICAL REMINDERS;**6,1001,18,1005**;Feb 04, 2005;Build 23
  1. ;IHS/MSC/MGH Patch 1001 and 1005 add IHS findings
  1. ;=====================================================
  1. BRANCH(DFN,DEFARR,ENODE,FIEVAL) ;Branch to appropriate evalution routine.
  1. I ENODE="AUTTHF(" D EVALFI^PXRMHF(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PXD(811.2," D EVALFI^PXRMTAX(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PXRMD(810.9," D EVALFI^PXRMLOCF(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PXRMD(811.4," D EVALFI^PXRMCF(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PXRMD(811.5," D EVALFI^PXRMTERM(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PS(50.605," D EVALFI^PXRMDRCL(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PSDRUG(" D EVALFI^PXRMDRUG(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="PSNDF(50.6," D EVALFI^PXRMDGEN(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="RAMIS(71," D EVALFI^PXRMRAD(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. I ENODE="YTT(601.71," D EVALFI^PXRMMH(DFN,.DEFARR,ENODE,.FIEVAL) Q
  1. ; IHS/MSC/MGH - 2/28/2012 PATCH 1001 Calls below are to resolve findings using
  1. ; files from IHS that are not used by VA.
  1. I ENODE="AUTTMSR(" D EVALFI^BPXRMEA(DFN,.DEFARR,ENODE,.FIEVAL) Q ;V Measurement file
  1. I ENODE="AUTTREFT(" D EVALFI^BPXRMREF(DFN,.DEFARR,ENODE,.FIEVAL) Q ;Refusal File
  1. I ENODE="APCDACV(" D EVALFI^BPXRMAS1(DFN,.DEFARR,ENODE,.FIEVAL) Q ;PCC asthma control
  1. ;All others use EVALFI^PXRMINDX directly.
  1. ;"AUTTEDT(", "AUTTEXAM(", "AUTTIMM(","AUTTSK(","GMRD(120.51,"
  1. ;"LAB(60,", "ORD(101.43,"
  1. D EVALFI^PXRMINDX(DFN,.DEFARR,ENODE,.FIEVAL)
  1. Q
  1. ;
  1. ;=====================================================
  1. EVAL(DFN,DEFARR,FIEVAL) ;Evaluate findings, first those that don't have any
  1. ;date dependencies using the "E"index then those that do have date
  1. ;dependencies using the "EDEP" index.
  1. ;index.
  1. N BDT,EDT,IND,ITEM,ENODE,FINDING,NOCC,TDEFARR
  1. I $G(PXRMDEBG) D
  1. . S FINDING=0
  1. . F S FINDING=$O(DEFARR(20,FINDING)) Q:FINDING="" S FIEVAL(FINDING,"BDT")=$P(DEFARR(20,FINDING,0),U,8),FIEVAL(FINDING,"EDT")=$P(DEFARR(20,FINDING,0),U,11)
  1. S ENODE=""
  1. F S ENODE=$O(DEFARR("E",ENODE)) Q:ENODE="" D BRANCH(DFN,.DEFARR,ENODE,.FIEVAL)
  1. I '$D(DEFARR("EDEP")) G FF
  1. M TDEFARR=DEFARR
  1. S IND=0
  1. F S IND=$O(TDEFARR("EDEP",IND)) Q:IND="" D
  1. . S ENODE=$O(TDEFARR("EDEP",IND,""))
  1. . S ITEM=$O(TDEFARR("EDEP",IND,ENODE,""))
  1. . S FINDING=$O(TDEFARR("EDEP",IND,ENODE,ITEM,""))
  1. .;If either dependent finding is false then set this finding false and
  1. .;skip the evaluation.
  1. . S BDT=+$P(TDEFARR("EDEP",IND,ENODE,ITEM,FINDING),U,1)
  1. . I BDT>0,FIEVAL(BDT)=0 S FIEVAL(FINDING)=0 Q
  1. . S EDT=+$P(TDEFARR("EDEP",IND,ENODE,ITEM,FINDING),U,2)
  1. . I EDT>0,FIEVAL(EDT)=0 S FIEVAL(FINDING)=0 Q
  1. .;Convert beginning and ending date/time to internal FM dates.
  1. . D SSPAR^PXRMUTIL(TDEFARR(20,FINDING,0),.NOCC,.BDT,.EDT)
  1. . I (BDT=-1)!(EDT=-1) D Q
  1. .. S FIEVAL(FINDING)=0
  1. .. I $G(PXRMDEBG) S FIEVAL(FINDING,"BDTE")=BDT,FIEVAL(FINDING,"EDTE")=EDT
  1. . S $P(TDEFARR(20,FINDING,0),U,8)=BDT
  1. . S $P(TDEFARR(20,FINDING,0),U,11)=EDT
  1. .;Build an "E" node to evaluate this finding.
  1. . K TDEFARR("E",ENODE)
  1. . S TDEFARR("E",ENODE,ITEM,FINDING)=""
  1. .;At this point branch to appropriate EVALFI
  1. . D BRANCH(DFN,.TDEFARR,ENODE,.FIEVAL)
  1. ;Evaluate function findings.
  1. FF D EVAL^PXRMFF(DFN,.DEFARR,.FIEVAL)
  1. Q
  1. ;
  1. ;=====================================================
  1. EVALPL(DEFARR,FINUM,PLIST) ;Create a patient list for a regular
  1. ;finding.
  1. N FINDPA,TERMARR
  1. S FINDPA(0)=DEFARR(20,FINUM,0)
  1. S FINDPA(3)=DEFARR(20,FINUM,3)
  1. S FINDPA(10)=DEFARR(20,FINUM,10)
  1. S FINDPA(11)=DEFARR(20,FINUM,11)
  1. D GENTERM^PXRMPLST(FINDPA(0),FINUM,.TERMARR)
  1. D EVALPL^PXRMTERL(.FINDPA,.TERMARR,PLIST)
  1. Q
  1. ;