1 | PXRHS14 ;ISL/SBW - PCE Visit data extract routine ;7/25/96 09:06
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;;Aug 12, 1996
|
---|
3 | ; Extract returns visit data in block of OCCLIM. Can be called multiple
|
---|
4 | ; times for a patient. Parameter passing by reference with FROM and
|
---|
5 | ; RECNO variables allows the routine to process multiple calls without
|
---|
6 | ; missing data.
|
---|
7 | VISIT(DFN,FROM,RECNO,OCCLIM,CATCODE,PSTAT) ; Control branching
|
---|
8 | ;INPUT: DFN - Pointer to PATIENT file (#2).
|
---|
9 | ; FROM - Index entry from which to begin the list.
|
---|
10 | ; Passed by reference.
|
---|
11 | ; RECNO - Record number. Passed by reference.
|
---|
12 | ; - Should be null for 1st call to this entry point.
|
---|
13 | ; OCCLIM - Maximum number of visits to return.
|
---|
14 | ; CATCODE - Pattern Match which controls visit data that is
|
---|
15 | ; returned (Can include multiple codes).
|
---|
16 | ; A = AMBULATORY
|
---|
17 | ; H = HOSPITALIZATION
|
---|
18 | ; I = IN HOSPITAL
|
---|
19 | ; C = CHART REVIEW
|
---|
20 | ; T = TELECOMMUNICATIONS
|
---|
21 | ; N = NOT FOUND
|
---|
22 | ; S = DAY SURGERY
|
---|
23 | ; O = OBSERVATION
|
---|
24 | ; E = EVENT (HISTORICAL)
|
---|
25 | ; R = NURSING HOME
|
---|
26 | ; D = DAILY HOSPITALIZATION DATA
|
---|
27 | ; X = ANCILLARY PACKAGE DAILY DATA
|
---|
28 | ; PSTAT - Patient Status.
|
---|
29 | ; 1 = Inpatient
|
---|
30 | ; 0 or NULL = Outpatient
|
---|
31 | ;
|
---|
32 | ;OUTPUT:
|
---|
33 | ; Data from VISIT (9000010) file except for hosp. loc. abbr.
|
---|
34 | ; ^TMP("PXV",$J,InvExDt,RecNo,0) = VISIT/ADMIT DATE&TIME [I;.01]
|
---|
35 | ; ^ LOC. OF ENCOUNTER [E;.06] ^ SERVICE CATEGORY [E;.07]
|
---|
36 | ; ^ CLINIC [E;.08] ^ WALK IN/APPT (deleted field always null)[E;.16]
|
---|
37 | ; ^ EVALUATION AND MANAGEMENT CODE (deleted field always null)[E;.17]
|
---|
38 | ; ^ HOSPITAL LOCATION [E;.22]
|
---|
39 | ;
|
---|
40 | ; [] = [I(nternal)/E(xternal); Field #]
|
---|
41 | ; Subscripts:
|
---|
42 | ; InvExDt - Inverted Visit Date from "AA" x-ref
|
---|
43 | ; RecNo - Record Number
|
---|
44 | ;
|
---|
45 | ; Calling routine is required to delete ^TMP("PXV",$J). It can be
|
---|
46 | ; deleted between multiple calls to this entry point or after
|
---|
47 | ; the calling routine makes the last call depending on how the data
|
---|
48 | ; needs to be accumulated.
|
---|
49 | Q:$G(DFN)']""!'$D(^AUPNVSIT("AA",DFN))
|
---|
50 | N PXCNT,FIRST
|
---|
51 | N DIC,DIQ,DR,DA,VISIT,LOC,SERCAT,CLINIC,WALKAPT,LEVEL,HLOC
|
---|
52 | S FIRST=1
|
---|
53 | S:+$G(OCCLIM)'>0 OCCLIM=999
|
---|
54 | S:+$G(FROM)'>0 FROM=""
|
---|
55 | S:+$G(RECNO)'>0 RECNO=""
|
---|
56 | S PXCNT=0
|
---|
57 | F S:(RECNO=""!'FIRST) FROM=$O(^AUPNVSIT("AA",DFN,FROM)) Q:+FROM'>0 D Q:PXCNT'<OCCLIM
|
---|
58 | . I 'FIRST S RECNO=0
|
---|
59 | . S FIRST=0
|
---|
60 | . F S RECNO=$O(^AUPNVSIT("AA",DFN,FROM,RECNO)) Q:+RECNO'>0 D Q:PXCNT'<OCCLIM
|
---|
61 | . . N REC
|
---|
62 | . . S DIC=9000010,DA=RECNO,DIQ="REC(",DIQ(0)="IE"
|
---|
63 | . . S DR=".01;.06;.07;.08;.09;.11;.22;15002"
|
---|
64 | . . D EN^DIQ1
|
---|
65 | . . Q:'$D(REC)
|
---|
66 | . . Q:$G(CATCODE)'[REC(9000010,DA,.07,"I")!(REC(9000010,DA,.09,"I")'>0)!+(REC(9000010,DA,.11,"I"))!(+$G(PSTAT)'=+REC(9000010,DA,15002,"I"))
|
---|
67 | . . S VISIT=REC(9000010,DA,.01,"I")
|
---|
68 | . . S LOC=REC(9000010,DA,.06,"E")
|
---|
69 | . . S SERCAT=REC(9000010,DA,.07,"E")
|
---|
70 | . . S CLINIC=REC(9000010,DA,.08,"E")
|
---|
71 | . . ;- return null for deleted fields .16 and .17
|
---|
72 | . . S WALKAPT="" ;REC(9000010,DA,.16,"E")
|
---|
73 | . . S LEVEL="" ;REC(9000010,DA,.17,"E")
|
---|
74 | . . S HLOC=REC(9000010,DA,.22,"E")
|
---|
75 | . . S ^TMP("PXV",$J,FROM,RECNO)=VISIT_U_LOC_U_SERCAT_U_CLINIC_U_WALKAPT_U_HLOC
|
---|
76 | . . S PXCNT=PXCNT+1
|
---|
77 | Q
|
---|