1 | PXRHS02 ;ISL/SBW - PCE Visit data extract subroutines ;8-Nov-96
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**13,73,121**;Aug 12, 1996
|
---|
3 | GETREC(PXA,PXCAT,EXTRCODE,IEXDT,PXCNT) ; Get rec and load ^TMP("PXHSV",$J,
|
---|
4 | N DIC,DIQ,DR,DA,REC,VISIT,TYPE,LOC,SERCAT,CHKOUT,CLINIC,WALKAPT,EMCODE,ELIG
|
---|
5 | N HLOC,HLOCABB,OLOC
|
---|
6 | S DIC=9000010,DA=PXA,DIQ="REC(",DIQ(0)="IE"
|
---|
7 | ;--fix for fields .16 and .17 that were removed from file
|
---|
8 | ; and .18 should alway be blank
|
---|
9 | S DR=".01;.03;.06;.07;.08;.09;.11;.21;.22;2101"
|
---|
10 | D EN^DIQ1
|
---|
11 | Q:'$D(REC)
|
---|
12 | Q:$G(PXCAT)'[REC(9000010,DA,.07,"I")!(REC(9000010,DA,.09,"I")'>0)!+(REC(9000010,DA,.11,"I"))
|
---|
13 | S VISIT=REC(9000010,DA,.01,"I")
|
---|
14 | S:+$G(IEXDT)'>0 IEXDT=9999999-VISIT
|
---|
15 | S TYPE=REC(9000010,DA,.03,"E")
|
---|
16 | S LOC=REC(9000010,DA,.06,"E")
|
---|
17 | S SERCAT=REC(9000010,DA,.07,"E")
|
---|
18 | S CLINIC=REC(9000010,DA,.08,"E")
|
---|
19 | ;--fields .16 and .17 are not in file
|
---|
20 | S WALKAPT="" ;REC(9000010,DA,.16,"E")
|
---|
21 | S EMCODE="" ;REC(9000010,DA,.17,"E")
|
---|
22 | ;--field .18 does not have data more that very short term
|
---|
23 | S CHKOUT="" ;REC(9000010,DA,.18,"I")
|
---|
24 | S ELIG=REC(9000010,DA,.21,"E")
|
---|
25 | S HLOC=REC(9000010,DA,.22,"E")
|
---|
26 | S HLOCABB=$$GETHLOC^PXRHS02(REC(9000010,DA,.22,"I"))
|
---|
27 | S OLOC=REC(9000010,DA,2101,"E")
|
---|
28 | S PXCNT=PXCNT+1
|
---|
29 | S ^TMP("PXHSV",$J,IEXDT,PXCNT,0)=VISIT_U_TYPE_U_LOC_U_SERCAT_U_CHKOUT_U_HLOC_U_HLOCABB_U_OLOC_U_CLINIC_U_WALKAPT_U_EMCODE_U_ELIG
|
---|
30 | D:$G(EXTRCODE)["C" GETCPT^PXRHS02(PXA,IEXDT,PXCNT)
|
---|
31 | D:$G(EXTRCODE)["D" GETPOV^PXRHS02(PXA,IEXDT,PXCNT)
|
---|
32 | D:$G(EXTRCODE)["P" GETPROV^PXRHS02(PXA,IEXDT,PXCNT)
|
---|
33 | Q
|
---|
34 | GETHLOC(PXHLOC) ; Get hospital location abbreviation
|
---|
35 | Q $P($G(^SC(+PXHLOC,0)),U,2)
|
---|
36 | GETCPT(PXVDF,IDT,CNT) ; Get Procedures performed during the visit
|
---|
37 | Q:$O(^AUPNVCPT("AD",PXVDF,""))=""
|
---|
38 | N PXPDN,COMMENT
|
---|
39 | S PXPDN=""
|
---|
40 | F S PXPDN=$O(^AUPNVCPT("AD",PXVDF,PXPDN)) Q:'PXPDN D
|
---|
41 | . N DIC,DIQ,DR,DA,REC,CPT,NARR,QTY,PRIM,SUBIEN,MOD
|
---|
42 | . S DIC=9000010.18,DA=PXPDN,DIQ="REC(",DIQ(0)="IE"
|
---|
43 | . S DR=".01;.04;.07;.16;81101"
|
---|
44 | . D EN^DIQ1
|
---|
45 | . Q:'$D(REC)
|
---|
46 | . S CPT=REC(9000010.18,DA,.01,"I")
|
---|
47 | . S NARR=REC(9000010.18,DA,.04,"E")
|
---|
48 | . S QTY=REC(9000010.18,DA,.16,"E")
|
---|
49 | . S PRIM=REC(9000010.18,DA,.07,"I")
|
---|
50 | . S COMMENT=REC(9000010.18,DA,81101,"E")
|
---|
51 | . S ^TMP("PXHSV",$J,IDT,CNT,"C",PXPDN)=CPT_U_NARR_U_QTY_U_PRIM
|
---|
52 | . S ^TMP("PXHSV",$J,IDT,CNT,"C",PXPDN,"COM")=COMMENT
|
---|
53 | . ;get modifiers
|
---|
54 | . K REC D CPTMODIF^PXAAVCPT(PXPDN,.REC)
|
---|
55 | . ;set modifiers
|
---|
56 | . Q:'$D(REC)
|
---|
57 | . S SUBIEN=""
|
---|
58 | . F S SUBIEN=$O(REC(1,SUBIEN)) Q:SUBIEN="" D
|
---|
59 | .. S MOD=$G(REC(1,SUBIEN,.01))
|
---|
60 | .. I MOD'="" S MOD=$$MOD^ICPTMOD(MOD,"I",IDT)
|
---|
61 | .. I $P(MOD,"^")<0 Q
|
---|
62 | .. S ^TMP("PXHSV",$J,IDT,CNT,"C",PXPDN,$P(MOD,"^",2))=""
|
---|
63 | Q
|
---|
64 | GETPOV(PXVDF,IDT,CNT) ; Get Purpose of visit
|
---|
65 | Q:$O(^AUPNVPOV("AD",PXVDF,""))=""
|
---|
66 | N PXPDN,COMMENT
|
---|
67 | S PXPDN=""
|
---|
68 | F S PXPDN=$O(^AUPNVPOV("AD",PXVDF,PXPDN)) Q:'PXPDN D
|
---|
69 | . N DIC,DIQ,DR,DA,REC,POV,NARR,MOD,CAUSE,PLACE,PRIM
|
---|
70 | . S DIC=9000010.07,DA=PXPDN,DIQ="REC(",DIQ(0)="IE"
|
---|
71 | . S DR=".01;.04;.06;.12;81101"
|
---|
72 | . D EN^DIQ1
|
---|
73 | . Q:'$D(REC)
|
---|
74 | . S POV=REC(9000010.07,DA,.01,"I")
|
---|
75 | . S NARR=REC(9000010.07,DA,.04,"E")
|
---|
76 | . S MOD=REC(9000010.07,DA,.06,"E")
|
---|
77 | . S CAUSE="" ;REC(9000010.07,DA,.07,"E")
|
---|
78 | . S PLACE="" ;REC(9000010.07,DA,.11,"E")
|
---|
79 | . S PRIM=REC(9000010.07,DA,.12,"E")
|
---|
80 | . S COMMENT=REC(9000010.07,DA,81101,"E")
|
---|
81 | . S ^TMP("PXHSV",$J,IDT,CNT,"D",PXPDN)=POV_U_MOD_U_CAUSE_U_PLACE_U_PRIM
|
---|
82 | . S ^TMP("PXHSV",$J,IDT,CNT,"D",PXPDN,"N")=NARR
|
---|
83 | . S ^TMP("PXHSV",$J,IDT,CNT,"D",PXPDN,"COM")=COMMENT
|
---|
84 | Q
|
---|
85 | GETPROV(PXVDF,IDT,CNT) ;Entry point to get providers for a visits
|
---|
86 | I $O(^AUPNVPRV("AD",PXVDF,""))="" Q
|
---|
87 | S PXPDN=""
|
---|
88 | F S PXPDN=$O(^AUPNVPRV("AD",PXVDF,PXPDN)) Q:'PXPDN D
|
---|
89 | . N DIC,DIQ,DR,DA,REC,PROV,PRIM,IPRIM
|
---|
90 | . S DIC=9000010.06,DA=PXPDN,DIQ="REC(",DIQ(0)="IE"
|
---|
91 | . S DR=".01;.04"
|
---|
92 | . D EN^DIQ1
|
---|
93 | . Q:'$D(REC)
|
---|
94 | . S PROV=REC(9000010.06,DA,.01,"E")
|
---|
95 | . S PRIM=REC(9000010.06,DA,.04,"E")
|
---|
96 | . S IPRIM=REC(9000010.06,DA,.04,"I")
|
---|
97 | . S:IPRIM="" IPRIM="Z"
|
---|
98 | . S ^TMP("PXHSV",$J,IDT,CNT,"P",IPRIM,PXPDN)=PROV_U_PRIM
|
---|
99 | Q
|
---|