[613] | 1 | VAFCADT4 ;ALB/RJS - HL7 ADT BREAKOUT OF VAFCADT1 - APRIL 13,1995
|
---|
| 2 | ;;5.3;Registration;**91**;Jun 06, 1996
|
---|
| 3 | ;
|
---|
| 4 | ;This routine was broken out of routine VAFCADT1 and
|
---|
| 5 | ;contains numerous functions and procedures used by that routine
|
---|
| 6 | ;
|
---|
| 7 | INSERT(DFN,EVENT,VAFHDT,PIVOT) ;
|
---|
| 8 | I $$LASTONE(VAFHDT) D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"05","",PIVOT) Q
|
---|
| 9 | D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"04","",PIVOT)
|
---|
| 10 | I $$RECORD(VAFHDT)["ADMISSION" D BOTH(DFN,VAFHDT,PIVOT) Q
|
---|
| 11 | I $$RECORD(VAFHDT)["TRANSFER"&($$RECORD(VAFHDT)["SPECIALTY") D BOTH(DFN,VAFHDT,PIVOT) Q
|
---|
| 12 | I $$RECORD(VAFHDT)["TRANSFER" D TRANSFER(DFN,VAFHDT,PIVOT) Q
|
---|
| 13 | I $$RECORD(VAFHDT)["SPECIALTY" D SPECLTY(DFN,VAFHDT,PIVOT)
|
---|
| 14 | Q
|
---|
| 15 | ;
|
---|
| 16 | ;
|
---|
| 17 | DELETE(DFN,EVENT,VAFHDT,PIVOT,EVTYPE) ;
|
---|
| 18 | I $$LASTONE(VAFHDT) D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"05","",PIVOT) Q
|
---|
| 19 | D BLDMSG^VAFCADT2(DFN,EVENT,VAFHDT,"04","",PIVOT)
|
---|
| 20 | I EVTYPE=2.2 D BOTH(DFN,VAFHDT,PIVOT) Q
|
---|
| 21 | I EVTYPE=2.6 D SPECLTY(DFN,VAFHDT,PIVOT) Q
|
---|
| 22 | I EVTYPE=3.2 D BOTH(DFN,VAFHDT,PIVOT) Q
|
---|
| 23 | I EVTYPE=3.6 D SPECLTY(DFN,VAFHDT,PIVOT) Q
|
---|
| 24 | Q
|
---|
| 25 | ;
|
---|
| 26 | ;
|
---|
| 27 | BOTH(DFN,VAFHDT,PIVOT) ;
|
---|
| 28 | N FINISHED,FOUND1,FOUND2,RECORD
|
---|
| 29 | S (FINISHED,FOUND1,FOUND2)=0
|
---|
| 30 | F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
|
---|
| 31 | . S IEN=""
|
---|
| 32 | . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
|
---|
| 33 | . . S RECORD=HISTORY(VAFHDT,IEN)
|
---|
| 34 | . . I RECORD["TRANSFER" S FOUND1=1
|
---|
| 35 | . . I RECORD["SPECIALTY" S FOUND2=1
|
---|
| 36 | . . I FOUND1&(FOUND2) S FINISHED=1 Q
|
---|
| 37 | . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
|
---|
| 38 | . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
|
---|
| 39 | Q
|
---|
| 40 | ;
|
---|
| 41 | ;
|
---|
| 42 | TRANSFER(DFN,VAFHDT,PIVOT) ;
|
---|
| 43 | N FINISHED,RECORD S FINISHED=0
|
---|
| 44 | F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
|
---|
| 45 | . S IEN=""
|
---|
| 46 | . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
|
---|
| 47 | . . S RECORD=HISTORY(VAFHDT,IEN)
|
---|
| 48 | . . I RECORD["TRANSFER" S FINISHED=1 Q
|
---|
| 49 | . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
|
---|
| 50 | . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
|
---|
| 51 | Q
|
---|
| 52 | ;
|
---|
| 53 | ;
|
---|
| 54 | SPECLTY(DFN,VAFHDT,PIVOT) ;
|
---|
| 55 | N FINISHED,RECORD S FINISHED=0
|
---|
| 56 | F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT=""!(FINISHED) D
|
---|
| 57 | . S IEN=""
|
---|
| 58 | . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN=""!(FINISHED) D
|
---|
| 59 | . . S RECORD=HISTORY(VAFHDT,IEN)
|
---|
| 60 | . . I RECORD["SPECIALTY" S FINISHED=1 Q
|
---|
| 61 | . . I (RECORD["LASTONE") D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"05",IEN,PIVOT) S FINISHED=1 Q
|
---|
| 62 | . . D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,"04","",PIVOT)
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | ENTIRE(PIVOT) ;
|
---|
| 66 | N VAFHDT,IEN,RECORD
|
---|
| 67 | S VAFHDT=""
|
---|
| 68 | F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT="" D
|
---|
| 69 | . S IEN="",EVCODE="04"
|
---|
| 70 | . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN="" D
|
---|
| 71 | . . S RECORD=HISTORY(VAFHDT,IEN)
|
---|
| 72 | . . I RECORD["LASTONE" S EVCODE="05"
|
---|
| 73 | . . I RECORD["ADMISSION" D BLDMSG^VAFCADT2(DFN,"A01",VAFHDT,"05","",PIVOT) Q
|
---|
| 74 | . . I RECORD["TRANSFER" D BLDMSG^VAFCADT2(DFN,"A02",VAFHDT,EVCODE,"",PIVOT) Q
|
---|
| 75 | . . I RECORD["SPECIALTY" D BLDMSG^VAFCADT2(DFN,"A08",VAFHDT,EVCODE,"",PIVOT) Q
|
---|
| 76 | . . I RECORD["DISCHARGE" D BLDMSG^VAFCADT2(DFN,"A03",VAFHDT,EVCODE,IEN,PIVOT) Q
|
---|
| 77 | Q
|
---|
| 78 | ;
|
---|
| 79 | ;
|
---|
| 80 | LASTONE(VAFHDT) ;
|
---|
| 81 | N IEN,RESULT,NEXTDATE S RESULT=0
|
---|
| 82 | S NEXTDATE=$O(HISTORY(VAFHDT))
|
---|
| 83 | I $G(NEXTDATE)="" S RESULT=1 G LASTEND
|
---|
| 84 | S IEN=$O(HISTORY(VAFHDT,""))
|
---|
| 85 | I $G(IEN)'="" D
|
---|
| 86 | . I HISTORY(VAFHDT,IEN)["LASTONE" S RESULT=1
|
---|
| 87 | LASTEND ;
|
---|
| 88 | Q RESULT
|
---|
| 89 | ;
|
---|
| 90 | ;
|
---|
| 91 | RECORD(VAFHDT) ;
|
---|
| 92 | N IEN
|
---|
| 93 | S IEN=$O(HISTORY(VAFHDT,""))
|
---|
| 94 | Q HISTORY(VAFHDT,IEN)
|
---|
| 95 | ;
|
---|
| 96 | ;
|
---|
| 97 | ADMDATE(IEN) ;
|
---|
| 98 | N RESULT
|
---|
| 99 | S RESULT=$P($G(^DGPM(IEN,0)),"^",1)
|
---|
| 100 | Q:$G(RESULT)="" 0
|
---|
| 101 | Q RESULT
|
---|
| 102 | HISTORY ;
|
---|
| 103 | N VAFHDT,IEN
|
---|
| 104 | S VAFHDT=""
|
---|
| 105 | F S VAFHDT=$O(HISTORY(VAFHDT)) Q:VAFHDT="" D
|
---|
| 106 | . S IEN=""
|
---|
| 107 | . F S IEN=$O(HISTORY(VAFHDT,IEN)) Q:IEN="" D
|
---|
| 108 | . . W !,VAFHDT," ---> ",HISTORY(VAFHDT,IEN)
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | ADDING(DFN,EVENT,VAFHDT,PIVOT,PIVCHK) ;
|
---|
| 112 | I PIVCHK'>0 D ENTIRE(PIVOT) Q
|
---|
| 113 | D INSERT(DFN,EVENT,VAFHDT,PIVOT)
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | PIVINIT(DFN,VAFHDATE,ADMSSN) ;
|
---|
| 117 | S PIVCHK=$$PIVCHK^VAFHPIVT(DFN,VAFHDATE,1,ADMSSN_";DGPM(")
|
---|
| 118 | S PIVOT=$$PIVNW^VAFHPIVT(DFN,VAFHDATE,1,ADMSSN_";DGPM(")
|
---|
| 119 | Q
|
---|
| 120 | ;
|
---|
| 121 | SETVARS(NODE,DGPMDA) ;
|
---|
| 122 | S TYPE=$P(NODE,"^",2),VAFHDT=$P(NODE,"^",1),ADMSSN=$P(NODE,"^",14),IEN=DGPMDA Q
|
---|
| 123 | ;
|
---|
| 124 | MOVETYPE(NODE) ;
|
---|
| 125 | N TYPE
|
---|
| 126 | S TYPE=$P(NODE,"^",18)
|
---|
| 127 | I TYPE>0 Q TYPE
|
---|
| 128 | Q 0
|
---|