[613] | 1 | DGPMOBS ;ALB/MM - Observation API;11/25/98
|
---|
| 2 | ;;5.3;Registration;**212**;Aug 13 1993
|
---|
| 3 | ;
|
---|
| 4 | ;This routine provides 3 entry points to obtain observation statuses.
|
---|
| 5 | ;Line labels MVT, PT, and SPEC document required input variables and
|
---|
| 6 | ;output values.
|
---|
| 7 | ;
|
---|
| 8 | MVT(IFN) ;This entry point returns the observation status based on
|
---|
| 9 | ;a specified Patient Movement (#405) file entry
|
---|
| 10 | ;
|
---|
| 11 | ;Input:
|
---|
| 12 | ; Patient Movement (#405) file IFN (Required)
|
---|
| 13 | ;
|
---|
| 14 | ;Output:
|
---|
| 15 | ; If an obseration treating specialty return:
|
---|
| 16 | ; 1^Facility Treating Specialty (#45.7)file IFN^Facility
|
---|
| 17 | ; Treating Specialty (#45.7) file name^Specialty (#42.4)
|
---|
| 18 | ; file IFN^Specialty (#42.4) file name
|
---|
| 19 | ;
|
---|
| 20 | ; If not an observation treating specialty return:
|
---|
| 21 | ; 0^Facility Treating Specialty (#45.7) file IFN^Facility
|
---|
| 22 | ; Treating Specialty (#45.7) file name^Specialty (#42.4)
|
---|
| 23 | ; file IFN^Specialty (#42.4) file name
|
---|
| 24 | ;
|
---|
| 25 | ; If Patient (#2) file DFN, Patient Movement (#405) IFN, or
|
---|
| 26 | ; Specialty (#42.4) file IFN not defined or invalid return:
|
---|
| 27 | ; -1^Error condition
|
---|
| 28 | ;
|
---|
| 29 | N DFN,OBS,SPIFN,VAIP
|
---|
| 30 | S OBS=0
|
---|
| 31 | I '$D(IFN) S OBS="-1^Patient Movement (#405) file IFN undefined" Q OBS
|
---|
| 32 | I '$G(^DGPM(+IFN,0)) S OBS="-1^No Patient Movement (#405) file entry" Q OBS
|
---|
| 33 | S DFN=+$P($G(^DGPM(+IFN,0)),U,3)
|
---|
| 34 | I 'DFN S OBS="-1^Patient (#2) file DFN not defined" Q OBS
|
---|
| 35 | ;VAIP("E") contains the Patient Movement (#405) file IFN
|
---|
| 36 | S VAIP("E")=+IFN
|
---|
| 37 | D INP
|
---|
| 38 | Q OBS
|
---|
| 39 | PT(DFN,MVTDT) ;This entry point returns observation status for a patient
|
---|
| 40 | ;based on the treating specialty associated for a designated date/time.
|
---|
| 41 | ;If not defined, defaults to status for the current date/time.
|
---|
| 42 | ;
|
---|
| 43 | ;Input:
|
---|
| 44 | ; DFN from Patient (#2) file
|
---|
| 45 | ; MVTDT (optional) if not defined defaults to current date/time
|
---|
| 46 | ;
|
---|
| 47 | ;Output:
|
---|
| 48 | ; Same as output documented for MVT entry point
|
---|
| 49 | ;
|
---|
| 50 | N OBS,SPIFN,VAIP
|
---|
| 51 | S OBS=0
|
---|
| 52 | ;If date not defined, defaults to current date/time
|
---|
| 53 | S:'$D(MVTDT) MVTDT=$$NOW^XLFDT
|
---|
| 54 | ;MVTDT must contain a time
|
---|
| 55 | I $P(MVTDT,".",2)']"" S OBS="-1^Time required" Q OBS
|
---|
| 56 | I '$D(DFN) S OBS="-1^Patient (#2) file DFN not defined" Q OBS
|
---|
| 57 | I '$D(^DPT(+DFN,0)) S OBS="-1^No Patient (#2) file entry" Q OBS
|
---|
| 58 | S VAIP("D")=MVTDT
|
---|
| 59 | D INP
|
---|
| 60 | Q OBS
|
---|
| 61 | INP ;Get inpatient data based on criteria from MVT and PT entry points
|
---|
| 62 | D IN5^VADPT
|
---|
| 63 | ;VAIP(8) returned by IN5^VADPT call is the treating specialty from
|
---|
| 64 | ;the Facility Treating Specialty (#45.7) file in internal^external
|
---|
| 65 | ;format
|
---|
| 66 | ;SPIFN is a pointer to the SPECIALTY (#42.4) file from the SPECIALTY
|
---|
| 67 | ;(#1) field
|
---|
| 68 | S SPIFN=$P($G(^DIC(45.7,+VAIP(8),0)),U,2)
|
---|
| 69 | S OBS=$$SPEC(SPIFN)
|
---|
| 70 | I +OBS'=-1 S OBS=OBS_U_VAIP(8)_U_SPIFN_U_$P($G(^DIC(42.4,+SPIFN,0)),U)
|
---|
| 71 | Q
|
---|
| 72 | SPEC(SPIFN) ;This entry point determines if the Specialty file (#42.4)
|
---|
| 73 | ;is an observation specialty.
|
---|
| 74 | ;
|
---|
| 75 | ;Observation specialties from the Specialty (#42.4) file are:
|
---|
| 76 | ;
|
---|
| 77 | ; 18 - Neurology Observation
|
---|
| 78 | ; 23 - Spinal Cord Injury Observation
|
---|
| 79 | ; 24 - Medical Observation
|
---|
| 80 | ; 36 - Blind Rehab Observation
|
---|
| 81 | ; 41 - Rehab Medicine Observation
|
---|
| 82 | ; 65 - Surgical Observation
|
---|
| 83 | ; 94 - Psychiatric Observation
|
---|
| 84 | ;
|
---|
| 85 | ;Input:
|
---|
| 86 | ; SPIFN - Specialty (#42.4) IFN
|
---|
| 87 | ;
|
---|
| 88 | ;Output:
|
---|
| 89 | ; 1 observation treating specialty
|
---|
| 90 | ; 0 not an observation specialty
|
---|
| 91 | ; -1 no treating specialty IFN defined or
|
---|
| 92 | ; IFN not found in Specialty (#42.4) file
|
---|
| 93 | ;
|
---|
| 94 | N SPEC,TX
|
---|
| 95 | S TX=0
|
---|
| 96 | I '$D(SPIFN) S TX="-1^Specialty (#42.4) IFN not defined" Q TX
|
---|
| 97 | I '$D(^DIC(42.4,+SPIFN,0)) S TX="-1^No Specialty (#42.4) file entry" Q TX
|
---|
| 98 | ;SPEC=observation treating specialty IFNs
|
---|
| 99 | F SPEC=18,23,24,36,41,65,94 I SPEC=SPIFN S TX=1 Q
|
---|
| 100 | Q TX
|
---|