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

EDPRPT8.m

Go to the documentation of this file.
  1. EDPRPT8 ;SLC/MKB - Acuity Report ;2/28/12 08:33am
  1. ;;2.0;EMERGENCY DEPARTMENT;**6**;Feb 24, 2012;Build 200
  1. ;
  1. ACU(BEG,END,CSV) ; Get Acuity Report for EDPSITE by date range
  1. ; CNT = counters by acuity
  1. ; ADM = counters for all admissions
  1. ; VA = counters for VA admissions
  1. ; MIN = accumulate #minutes
  1. N IN,OUT,X,X0,X1,X3,X4,DISP,ACU,CNT,ADM,MIN,VA,ROW,ADMDEC,ADMDEL,LOG
  1. D INIT ;set counters, sums to 0
  1. S IN=BEG-.000001
  1. F S IN=$O(^EDP(230,"ATI",EDPSITE,IN)) Q:'IN Q:IN>END S LOG=0 F S LOG=+$O(^EDP(230,"ATI",EDPSITE,IN,LOG)) Q:LOG<1 D
  1. . S X0=^EDP(230,LOG,0),X1=$G(^(1)),X3=$G(^(3)),X4=$G(^(4,1,0))
  1. . S DISP=$$ECODE^EDPRPT($P(X1,U,2)),ACU=$$ECODE($P(X3,U,3))
  1. . S CNT=CNT+1,CNT(ACU)=CNT(ACU)+1
  1. . ; all admissions
  1. . S (ADMDEC,ADMDEL)=0
  1. . S X=$$ADMIT^EDPRPT(LOG) I X D ;decision to admit
  1. .. S ADM=ADM+1,ADM(ACU)=ADM(ACU)+1
  1. .. S ADMDEC=$$FMDIFF^XLFDT(X,IN,2)\60
  1. .. S:ADMDEC MIN("DEC")=MIN("DEC")+ADMDEC,MIN("DEC",ACU)=MIN("DEC",ACU)+ADMDEC
  1. .. S OUT=$P(X0,U,9) ;S:OUT="" OUT=NOW
  1. .. S:OUT ADMDEL=$$FMDIFF^XLFDT(OUT,X,2)\60
  1. . ;TDP - Patch 2, insure all VA Admissions are counted. Added VADMIT1.
  1. . I (($$VADMIT^EDPRPT2(DISP))!($$VADMIT1^EDPRPT2($P(X1,U,2)))) D ;VA admissions
  1. .. S VA=VA+1,VA(ACU)=VA(ACU)+1
  1. .. S MIN("VADEC")=MIN("VADEC")+ADMDEC
  1. .. S MIN("VADEC",ACU)=MIN("VADEC",ACU)+ADMDEC
  1. .. S MIN("VADEL")=MIN("VADEL")+ADMDEL
  1. .. S MIN("VADEL",ACU)=MIN("VADEL",ACU)+ADMDEL
  1. A1 ; return counts and averages
  1. S I="" F S I=$O(ADM(I)) Q:I="" D ;avg #min admit dec by acuity
  1. . S MIN("DEC",I)=$S(ADM(I):$$ETIME^EDPRPT(MIN("DEC",I)\ADM(I)),1:0)
  1. . S MIN("VADEC",I)=$S(VA(I):$$ETIME^EDPRPT(MIN("VADEC",I)\VA(I)),1:0)
  1. . S MIN("VADEL",I)=$S(VA(I):$$ETIME^EDPRPT(MIN("VADEL",I)\VA(I)),1:0)
  1. S CNT("total")=CNT,ADM("total")=ADM,VA("total")=VA
  1. S CNT("type")="Number of Patients",ADM("type")="Number Admitted",VA("type")="Number VA Admitted"
  1. S MIN("DEC","type")="Avg All Admit Dec Time",MIN("VADEC","type")="Avg VA Admit Dec Time",MIN("VADEL","type")="Avg VA Admit Delay Time"
  1. S MIN("DEC","total")=$S(ADM:$$ETIME^EDPRPT(MIN("DEC")\ADM),1:0)
  1. S MIN("VADEC","total")=$S(VA:$$ETIME^EDPRPT(MIN("VADEC")\VA),1:0)
  1. S MIN("VADEL","total")=$S(VA:$$ETIME^EDPRPT(MIN("VADEL")\VA),1:0)
  1. ; as CSV
  1. I $G(CSV) D Q
  1. . N TAB S TAB=$C(9)
  1. . ;S X="Acuity->"_TAB_"0"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average"
  1. . S X="Acuity->"_TAB_"None"_TAB_"1"_TAB_"2"_TAB_"3"_TAB_"4"_TAB_"5"_TAB_"Total/Average"
  1. . D ADD^EDPCSV(X)
  1. . D ROW("Number of Patients",.CNT)
  1. . D ROW("Number Admitted",.ADM)
  1. . D ROW("Number VA Admitted",.VA)
  1. . M ROW=MIN("DEC") D ROW("Avg All Admit Dec Time",.ROW) K ROW
  1. . M ROW=MIN("VADEC") D ROW("Avg VA Admit Dec Time",.ROW) K ROW
  1. . M ROW=MIN("VADEL") D ROW("Avg VA Admit Delay Time",.ROW) K ROW
  1. ; or as XML
  1. D XML^EDPX("<statistics>")
  1. S X=$$XMLA^EDPX("row",.CNT) D XML^EDPX(X)
  1. S X=$$XMLA^EDPX("row",.ADM) D XML^EDPX(X)
  1. S X=$$XMLA^EDPX("row",.VA) D XML^EDPX(X)
  1. M ROW=MIN("DEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
  1. M ROW=MIN("VADEC") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
  1. M ROW=MIN("VADEL") S X=$$XMLA^EDPX("row",.ROW) D XML^EDPX(X) K ROW
  1. D XML^EDPX("</statistics>")
  1. Q
  1. ;
  1. ROW(NAME,LIST) ; add line
  1. N I S X=NAME
  1. F I="none","one","two","three","four","five","total" S X=X_TAB_LIST(I)
  1. D ADD^EDPCSV(X)
  1. Q
  1. ;
  1. INIT ; Initialize acuity counters
  1. N X S (CNT,ADM,VA)=0
  1. F X="none","one","two","three","four","five" D
  1. . S (CNT(X),ADM(X),VA(X),MIN("DEC",X),MIN("VADEC",X),MIN("VADEL",X))=0
  1. F X="DEC","VADEC","VADEL" S MIN(X)=0
  1. Q
  1. ;
  1. ECODE(IEN) ; Return external value for an Acuity code
  1. N X0,X,Y S X0=$G(^EDPB(233.1,+IEN,0))
  1. S X=$P(X0,U,3) S:X<1 X=$P(X0,U,4) ;code or nat'l code
  1. S Y=$S(X=1:"one",X=2:"two",X=3:"three",X=4:"four",X=5:"five",1:"none")
  1. Q Y