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

VAFCADT4.m

Go to the documentation of this file.
  1. VAFCADT4 ;ALB/RJS - HL7 ADT BREAKOUT OF VAFCADT1 - APRIL 13,1995
  1. ;;5.3;Registration;**91**;Jun 06, 1996
  1. ;
  1. ;This routine was broken out of routine VAFCADT1 and
  1. ;contains numerous functions and procedures used by that routine
  1. ;
  1. INSERT(DFN,EVENT,VAFHDT,PIVOT) ;
  1. I $$LASTONE(VAFHDT) D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"05","",PIVOT) Q
  1. D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"04","",PIVOT)
  1. I $$RECORD(VAFHDT)["ADMISSION" D BOTH(DFN,VAFHDT,PIVOT) Q
  1. I $$RECORD(VAFHDT)["TRANSFER"&($$RECORD(VAFHDT)["SPECIALTY") D BOTH(DFN,VAFHDT,PIVOT) Q
  1. I $$RECORD(VAFHDT)["TRANSFER" D TRANSFER(DFN,VAFHDT,PIVOT) Q
  1. I $$RECORD(VAFHDT)["SPECIALTY" D SPECLTY(DFN,VAFHDT,PIVOT)
  1. Q
  1. ;
  1. ;
  1. DELETE(DFN,EVENT,VAFHDT,PIVOT,EVTYPE) ;
  1. I $$LASTONE(VAFHDT) D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"05","",PIVOT) Q
  1. D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"04","",PIVOT)
  1. I EVTYPE=2.2 D BOTH(DFN,VAFHDT,PIVOT) Q
  1. I EVTYPE=2.6 D SPECLTY(DFN,VAFHDT,PIVOT) Q
  1. I EVTYPE=3.2 D BOTH(DFN,VAFHDT,PIVOT) Q
  1. I EVTYPE=3.6 D SPECLTY(DFN,VAFHDT,PIVOT) Q
  1. Q
  1. ;
  1. ;
  1. BOTH(DFN,VAFHDT,PIVOT) ;
  1. N FINISHED,FOUND1,FOUND2,RECORD
  1. S (FINISHED,FOUND1,FOUND2)=0
  1. F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
  1. . S IEN=""
  1. . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
  1. . . S RECORD=HISTORY(VAFHDT,IEN)
  1. . . I RECORD["TRANSFER" S FOUND1=1
  1. . . I RECORD["SPECIALTY" S FOUND2=1
  1. . . I FOUND1&(FOUND2) S FINISHED=1 Q
  1. . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
  1. . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
  1. Q
  1. ;
  1. ;
  1. TRANSFER(DFN,VAFHDT,PIVOT) ;
  1. N FINISHED,RECORD S FINISHED=0
  1. F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
  1. . S IEN=""
  1. . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
  1. . . S RECORD=HISTORY(VAFHDT,IEN)
  1. . . I RECORD["TRANSFER" S FINISHED=1 Q
  1. . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
  1. . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
  1. Q
  1. ;
  1. ;
  1. SPECLTY(DFN,VAFHDT,PIVOT) ;
  1. N FINISHED,RECORD S FINISHED=0
  1. F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
  1. . S IEN=""
  1. . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
  1. . . S RECORD=HISTORY(VAFHDT,IEN)
  1. . . I RECORD["SPECIALTY" S FINISHED=1 Q
  1. . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
  1. . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
  1. Q
  1. ;
  1. ENTIRE(PIVOT) ;
  1. N VAFHDT,IEN,RECORD
  1. S VAFHDT=""
  1. F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT="" D
  1. . S IEN="",EVCODE="04"
  1. . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN="" D
  1. . . S RECORD=HISTORY(VAFHDT,IEN)
  1. . . I RECORD["LASTONE" S EVCODE="05"
  1. . . I RECORD["ADMISSION" D BLDMSG^VAFCADT2(DFN,"A01",VAFHDT,"05","",PIVOT) Q
  1. . . I RECORD["TRANSFER" D BLDMSG^VAFCADT2(DFN,"A02",VAFHDT,EVCODE,"",PIVOT) Q
  1. . . I RECORD["SPECIALTY" D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,EVCODE,"",PIVOT) Q
  1. . . I RECORD["DISCHARGE" D BLDMSG^VAFCADT2(DFN,"A03",VAFHDT,EVCODE,IEN,PIVOT) Q
  1. Q
  1. ;
  1. ;
  1. LASTONE(VAFHDT) ;
  1. N IEN,RESULT,NEXTDATE S RESULT=0
  1. S NEXTDATE=$O(HISTORY(VAFHDT))
  1. I $G(NEXTDATE)="" S RESULT=1 G LASTEND
  1. S IEN=$O(HISTORY(VAFHDT,""))
  1. I $G(IEN)'="" D
  1. . I HISTORY(VAFHDT,IEN)["LASTONE" S RESULT=1
  1. LASTEND ;
  1. Q RESULT
  1. ;
  1. ;
  1. RECORD(VAFHDT) ;
  1. N IEN
  1. S IEN=$O(HISTORY(VAFHDT,""))
  1. Q HISTORY(VAFHDT,IEN)
  1. ;
  1. ;
  1. ADMDATE(IEN) ;
  1. N RESULT
  1. S RESULT=$P($G(^DGPM(IEN,0)),"^",1)
  1. Q:$G(RESULT)="" 0
  1. Q RESULT
  1. HISTORY ;
  1. N VAFHDT,IEN
  1. S VAFHDT=""
  1. F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT="" D
  1. . S IEN=""
  1. . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN="" D
  1. . . W !,VAFHDT," ---> ",HISTORY(VAFHDT,IEN)
  1. Q
  1. ;
  1. ADDING(DFN,EVENT,VAFHDT,PIVOT,PIVCHK) ;
  1. I PIVCHK'>0 D ENTIRE(PIVOT) Q
  1. D INSERT(DFN,EVENT,VAFHDT,PIVOT)
  1. Q
  1. ;
  1. PIVINIT(DFN,VAFHDATE,ADMSSN) ;
  1. S PIVCHK=$$PIVCHK^VAFHPIVT(DFN,VAFHDATE,1,ADMSSN_";DGPM(")
  1. S PIVOT=$$PIVNW^VAFHPIVT(DFN,VAFHDATE,1,ADMSSN_";DGPM(")
  1. Q
  1. ;
  1. SETVARS(NODE,DGPMDA) ;
  1. S TYPE=$P(NODE,"^",2),VAFHDT=$P(NODE,"^",1),ADMSSN=$P(NODE,"^",14),IEN=DGPMDA Q
  1. ;
  1. MOVETYPE(NODE) ;
  1. N TYPE
  1. S TYPE=$P(NODE,"^",18)
  1. I TYPE>0 Q TYPE
  1. Q 0