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

BQIDCERV.m

Go to the documentation of this file.
  1. BQIDCERV ;GDIT/HCSD/ALA-Emergency Room Visits (Pt List) ; 25 Feb 2013 4:09 PM
  1. ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
  1. ;
  1. Q
  1. ;
  1. EN(DATA,PARMS,MPARMS) ;EP
  1. ;
  1. ;Description
  1. ; Executable to retrieve inpatients for the specified parameters
  1. ;Input
  1. ; PARMS = Array of parameters and their values
  1. ; MPARMS = Multiple array of a parameter
  1. ;Output
  1. ; ^TMP("BQIDCINP",UID,DFN,VISIT IEN)=""
  1. ;
  1. NEW UID,IEN,EAFROM,EATHRU,EARANGE,EDFROM,EDTHRU,EDRANGE,EDTYP,EDACU,EVTYP
  1. NEW AFDT,AEDT,RFROM,RTHRU,DFDT,DEDT,IEN,DFN,CT,MCT,PCT
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIDCINP",UID))
  1. S DCRIT=$NA(^TMP("BQICRIT",UID))
  1. K @DATA,@DCRIT
  1. ;
  1. ; Set the parameters into variables
  1. I '$D(PARMS) Q
  1. S PCT=0
  1. ;
  1. S NM="" F S NM=$O(PARMS(NM)) Q:NM="" S @NM=PARMS(NM)
  1. S EAFROM=$G(EAFROM,""),EATHRU=$G(EATHRU,""),EARANGE=$G(EARANGE,"")
  1. S EDFROM=$G(EDFROM,""),EDTHRU=$G(EDTHRU,""),EDRANGE=$G(EDRANGE,"")
  1. S EDTYP=$G(EDTYP,""),EDACU=$G(EDACU,""),EVTYP=$G(EVTYP,"")
  1. S CURERV=$G(CURERV,"N")
  1. I $G(EDTYP)'=""!($D(MPARMS("EDTYP"))) S PCT=PCT+1
  1. I $G(EDACU)'=""!($D(MPARMS("EDACU"))) S PCT=PCT+1
  1. I $G(EVTYP)'=""!($D(MPARMS("EVTYP"))) S PCT=PCT+1
  1. ;
  1. I $G(EARANGE)'="" D
  1. . I $G(PPIEN)'="" D RANGE^BQIDCAH1(EARANGE,PPIEN,"EARANGE")
  1. . S AFDT=$S($G(RFROM)'="":RFROM,1:$G(EAFROM))
  1. . S AEDT=$S($G(RTHRU)'="":RTHRU,1:$G(EATHRU))
  1. I $G(EAFROM)'="" S AFDT=EAFROM,AEDT=$G(EATHRU)
  1. ;
  1. I $G(EDRANGE)'="" D
  1. . I $G(PPIEN)'="" D RANGE^BQIDCAH1(EDRANGE,PPIEN,"EDRANGE")
  1. . S DFDT=$S($G(RFROM)'="":RFROM,1:$G(EDFROM))
  1. . S DEDT=$S($G(RTHRU)'="":RTHRU,1:$G(EDTHRU))
  1. I $G(EDFROM)'="" S DFDT=EDFROM,DEDT=$G(EDTHRU)
  1. ;
  1. I $G(CURERV)="Y" D
  1. . S DFN=0
  1. . F S DFN=$O(^AMERADM(DFN)) Q:'DFN D
  1. .. S IEN=DFN,PCT=1
  1. .. D UPD(1,0)
  1. .. S ADM=$P(^AMERADM(DFN,0),U,2)\1
  1. .. I $G(AFDT)'="",(ADM<AFDT)!(ADM>AEDT) Q
  1. .. D UPD(1,1)
  1. ;
  1. I $G(CURERV)="N" D
  1. . I $G(AFDT)'="" S PCT=PCT+1 D
  1. .. S AFDT=AFDT-.0001
  1. .. F S AFDT=$O(^AMERVSIT("B",AFDT)) Q:AFDT=""!(AFDT\1>AEDT) D
  1. ... S IEN=""
  1. ... F S IEN=$O(^AMERVSIT("B",AFDT,IEN)) Q:IEN="" D
  1. .... S DFN=$P(^AMERVSIT(IEN,0),U,2) D UPD(1,0)
  1. .... D UPD(1,1)
  1. .... D OTH
  1. . ;
  1. . I $G(DFDT)'="" S PCT=PCT+1 D
  1. .. NEW BGDT
  1. .. S BGDT=$$FMADD^XLFDT(DFDT,-120)
  1. .. F S BGDT=$O(^AMERVSIT("B",BGDT)) Q:BGDT=""!(BGDT\1>DEDT) D
  1. ... S IEN=""
  1. ... F S IEN=$O(^AMERVSIT("B",BGDT,IEN)) Q:IEN="" D
  1. .... S DEPDT=$P($G(^AMERVSIT(IEN,6)),U,2)\1
  1. .... S DFN=$P(^AMERVSIT(IEN,0),U,2) D UPD(4,0)
  1. .... I DEPDT<DFDT!(DEPDT>DEDT) D UPD(4,0) Q
  1. .... D UPD(4,1)
  1. .... D OTH
  1. ;
  1. S DFN=""
  1. F S DFN=$O(@DCRIT@("ERV",DFN)) Q:DFN="" D
  1. . S IEN=""
  1. . F S IEN=$O(@DCRIT@("ERV",DFN,IEN)) Q:IEN="" D CNF
  1. Q
  1. ;
  1. CNF ;EP - confirm
  1. S CT=0,MCT=0
  1. F I=1:1:$L(@DCRIT@("ERV",DFN,IEN),U) D
  1. . ;I $P(@DCRIT@("ERV",DFN,IEN),U,I)'="" S CT=CT+1
  1. . I $P(@DCRIT@("ERV",DFN,IEN),U,I)'="",$P(@DCRIT@("ERV",DFN,IEN),U,I)=1 S MCT=MCT+1
  1. I MCT=0 K @DCRIT@("ERV",DFN,IEN) Q
  1. I PCT'=MCT K @DCRIT@("ERV",DFN,IEN) Q
  1. I PCT=MCT S @DATA@(DFN)=""
  1. Q
  1. ;
  1. UPD(PEC,VAL) ;EP
  1. S $P(@DCRIT@("ERV",DFN,IEN),U,PEC)=VAL
  1. Q
  1. ;
  1. OTH ;EP
  1. I $G(EVTYP)="",'$D(MPARMS("EVTYP")) D UPD(2,"")
  1. I $G(EVTYP)'="" D UPD(2,0) I $P(^AMERVSIT(IEN,0),U,5)=EVTYP D UPD(2,1)
  1. I $G(EVTYP)="",$D(MPARMS("EVTYP")) D
  1. . S EVTYP="" D UPD(2,0)
  1. . F S EVTYP=$O(MPARMS("EVTYP",EVTYP)) Q:EVTYP="" I $P(^AMERVSIT(IEN,0),U,5)=EVTYP D UPD(2,1)
  1. I $G(EDTYP)="",'$D(MPARMS("EDTYP")) D UPD(3,"")
  1. I $G(EDTYP)'="" D UPD(3,0) I $P($G(^AMERVSIT(IEN,6)),U,1)=EDTYP D UPD(3,1)
  1. I $G(EDTYP)="",$D(MPARMS("EDTYP")) D
  1. . S EDTYP="" D UPD(3,0)
  1. . F S EDTYP=$O(MPARMS("EDTYP",EDTYP)) Q:EDTYP="" I $P($G(^AMERVSIT(IEN,6)),U,1)=EDTYP D UPD(3,1)
  1. I $G(EDACU)="",'$D(MPARMS("EDACU")) D UPD(5,"")
  1. I $G(EDACU)'="" D UPD(5,0) I $P($G(^AMERVSIT(IEN,5.1)),U,4)=EDACU D UPD(5,1)
  1. I $G(EDACU)="",$D(MPARMS("EDACU")) D
  1. . S EDACU="" D UPD(5,0)
  1. . F S EDACU=$O(MPARMS("EDACU",EDACU)) Q:EDACU="" I $P($G(^AMERVSIT(IEN,5.1)),U,4)=EDACU D UPD(5,1)
  1. Q