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

PXRMINPL.m

Go to the documentation of this file.
  1. PXRMINPL ;SLC/RMS,PKR - List computed findings for inpatient info. ; 09/08/2008
  1. ;;2.0;CLINICAL REMINDERS;**12**;Feb 04, 2005;Build 73
  1. ;=====================================
  1. ADM(NGET,BDT,EDT,PLIST,PARAM) ;All admissions during a date range.
  1. D ADMDISCH(BDT,EDT,PLIST,PARAM,"ATT1")
  1. Q
  1. ;
  1. ;=====================================
  1. ADMDISCH(BDT,EDT,PLIST,PARAM,SUB) ;Build admission and discharge lists.
  1. ;Admissions when SUB="ATT1" and discharges when SUB="ATT3"
  1. ;DBIAs (^DIC(4: #2251,#10090), (^DIC(42: #10039),
  1. ;(^DGPM: #1480), (^DPT: #187), (^SC: #10040)
  1. N CNT,DATA,DATE,DFN,HLOC,IEN,LOCLIST,OK,WARD,WARDP
  1. K ^TMP($J,PLIST),^TMP($J,"CNT")
  1. S DATE=BDT-.000001
  1. S OK=1
  1. S LOCLIST=$S(PARAM'="":+$O(^PXRMD(810.9,"B",PARAM,0)),1:0)
  1. F S DATE=$O(^DGPM(SUB,DATE)) Q:(DATE>EDT)!(DATE="") D
  1. . S IEN=""
  1. . F S IEN=$O(^DGPM(SUB,DATE,IEN)) Q:IEN="" D
  1. .. S DATA=^DGPM(IEN,0)
  1. .. S DFN=$P(DATA,U,3)
  1. .. I SUB="ATT1" D
  1. ...;WARD is a required field but it may not exist for older entries.
  1. ... S WARDP=+$P(DATA,U,6)
  1. ... S WARD=WARDP_";"_$S(WARDP>0:$P($G(^DIC(42,WARDP,0)),U,1),1:0)
  1. .. I SUB="ATT3" D
  1. ... S WARD=$$GET1^DIQ(405,IEN,200)
  1. ... S WARDP=$S(WARD'="":$O(^DIC(42,"B",WARD,"")),1:0)
  1. ... S WARD=WARDP_";"_WARD
  1. ..;If a location list has been passed in make sure the hospital
  1. ..;location for the ward is on the list.
  1. .. S HLOC=$S(WARDP>0:^DIC(42,WARDP,44),1:0)
  1. .. I LOCLIST>0 S OK=$S($D(^PXRMD(810.9,LOCLIST,44,"B",HLOC)):1,1:0)
  1. .. I 'OK Q
  1. .. S (CNT,^TMP($J,"CNT",DFN))=+$G(^TMP($J,"CNT",DFN))+1
  1. .. S ^TMP($J,PLIST,DFN,CNT)=U_DATE_U_405_U_DFN_U_WARD
  1. .. S INST=$S(HLOC>0:+$P(^SC(HLOC,0),U,4),1:0)
  1. .. S INSTNM=INST_";"_$S(INST>0:$P(^DIC(4,INST,0),U,1),1:0)
  1. .. S INSTNM=INSTNM_";"_$S(INST>0:$P($G(^DIC(4,INST,99)),U,1),1:0)
  1. .. S ^TMP($J,PLIST,DFN,CNT,"VALUE")=WARD
  1. .. S ^TMP($J,PLIST,DFN,CNT,"INSTITUTION")=INSTNM
  1. .. S ^TMP($J,PLIST,DFN,CNT,"TYPE_OF_MVMT")=$$GET1^DIQ(405.1,$P(DATA,U,4),.01)
  1. K ^TMP($J,"CNT")
  1. Q
  1. ;
  1. ;=====================================
  1. CURR(NGET,BDT,EDT,PLIST,PARAM) ;Current inpatients.
  1. ; DBIAs #10035, #10039, #10040, #10061, #10090
  1. N CNT,DFN,HLOC,INST,INSTNM,LOCLIST,OK,WARD,WARDP,WARDSUB,VAIN,VAERR
  1. K ^TMP($J,PLIST),^TMP($J,"CNT")
  1. S OK=1
  1. S LOCLIST=$S(PARAM'="":+$O(^PXRMD(810.9,"B",PARAM,0)),1:0)
  1. S WARD=""
  1. F S WARD=$O(^DPT("CN",WARD)) Q:WARD="" D
  1. . S DFN=0
  1. . F S DFN=$O(^DPT("CN",WARD,DFN)) Q:'+DFN D
  1. ..;If a location list has been passed in make sure the hospital
  1. ..;location for the ward is on the list.
  1. .. S WARDP=+$O(^DIC(42,"B",WARD,""))
  1. .. S HLOC=+$G(^DIC(42,WARDP,44))
  1. .. I LOCLIST>0 S OK=$S($D(^PXRMD(810.9,LOCLIST,44,"B",HLOC)):1,1:0)
  1. .. I 'OK Q
  1. .. K VAIN,VAERR D INP^VADPT
  1. .. S WARDSUB=+VAIN(4)_";"_WARD
  1. .. S (CNT,^TMP($J,"CNT",DFN))=+$G(^TMP($J,"CNT",DFN))+1
  1. .. S ^TMP($J,PLIST,DFN,CNT)=U_+VAIN(7)_U_2_U_DFN_U_WARDSUB
  1. .. S INST=$S(HLOC>0:+$P(^SC(HLOC,0),U,4),1:0)
  1. .. S INSTNM=INST_";"_$S(INST>0:$P(^DIC(4,INST,0),U,1),1:0)
  1. .. S INSTNM=INSTNM_";"_$S(INST>0:$P($G(^DIC(4,INST,99)),U,1),1:0)
  1. .. S ^TMP($J,PLIST,DFN,CNT,"VALUE")=WARDSUB
  1. .. S ^TMP($J,PLIST,DFN,CNT,"INSTITUTION")=INSTNM
  1. .. S ^TMP($J,PLIST,DFN,CNT,"ADMIT DATE")=VAIN(7)
  1. K ^TMP($J,"CNT")
  1. Q
  1. ;
  1. ;=====================================
  1. DISCH(NGET,BDT,EDT,PLIST,PARAM) ;Discharges during a date range.
  1. ;NOTE: ASIH is not accounted for in this version.
  1. D ADMDISCH(BDT,EDT,PLIST,PARAM,"ATT3")
  1. Q
  1. ;