1 | PXCEVFI4 ;ISL/dee - Routine to display a visit or v-file entry and input providers in to V PROVIDER from other V Files ;6/20/96
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**124**;Aug 12, 1996
|
---|
3 | Q
|
---|
4 | DISPLAY ; -- display the data
|
---|
5 | Q:PXCECAT="CSTP"
|
---|
6 | N PXCELINE,PXCETEXT,PXCEINT,PXCEEXT
|
---|
7 | I PXCECAT="APPM"!(PXCECAT="HIST") N PXCECODE S PXCECODE="PXCESIT"
|
---|
8 | W !
|
---|
9 | F PXCELINE=1:1 S PXCETEXT=$P($T(FORMAT+PXCELINE^@PXCECODE),";;",2) Q:PXCETEXT']"" D
|
---|
10 | . S (PXCEINT,PXCEEXT)=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
11 | . I PXCEINT="@" S PXCEEXT="<deleted>"
|
---|
12 | . E I PXCEINT'="" D
|
---|
13 | .. I $P(PXCETEXT,"~",6)]"" S @("PXCEEXT="_$P(PXCETEXT,"~",6)_"("""_PXCEINT_""")")
|
---|
14 | .. E D
|
---|
15 | ... N DIERR,PXCEDILF
|
---|
16 | ... S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
17 | ... S PXCEEXT=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
18 | . I ($L($P(PXCETEXT,"~",5))+$L(PXCEEXT))'>80 D
|
---|
19 | .. W !,$P(PXCETEXT,"~",5),PXCEEXT
|
---|
20 | . E D
|
---|
21 | .. N PXCEWRAP,PXCECOUN
|
---|
22 | .. D WRAP(PXCEEXT,80-$L($P(PXCETEXT,"~",5)),.PXCEWRAP)
|
---|
23 | .. W !,$P(PXCETEXT,"~",5),$G(PXCEWRAP(1))
|
---|
24 | .. S PXCECOUN=1
|
---|
25 | .. F S PXCECOUN=$O(PXCEWRAP(PXCECOUN)) Q:PXCECOUN']"" D
|
---|
26 | ... W !,$J("",$L($P(PXCETEXT,"~",5))),PXCEWRAP(PXCECOUN)
|
---|
27 | Q
|
---|
28 | ;
|
---|
29 | WRAP(X,DIWR,WRAPPED) ;Copies the text in X into the array WRAPPED
|
---|
30 | N DIWL,DIWF,PXCEINDX
|
---|
31 | K ^UTILITY($J,"W")
|
---|
32 | S DIWL=1
|
---|
33 | S DIRF=""
|
---|
34 | D ^DIWP
|
---|
35 | S PXCEINDX=0
|
---|
36 | F S PXCEINDX=$O(^UTILITY($J,"W",DIWL,PXCEINDX)) Q:'PXCEINDX S WRAPPED(PXCEINDX)=^UTILITY($J,"W",DIWL,PXCEINDX,0)
|
---|
37 | K ^UTILITY($J,"W")
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | PROVIDER(PXCEPRV) ;See if it is a new provider and if it is add them.
|
---|
41 | N PXCEVPRV,PXCEKPRV,PXCENPRV,PXCEPRIM
|
---|
42 | N DIR,DA,X,Y
|
---|
43 | S (PXCEVPRV,PXCEKPRV)=""
|
---|
44 | S PXCEPRIM=0
|
---|
45 | ;See if this provider is already in V Provider for this Encounter
|
---|
46 | F S PXCEVPRV=$O(^AUPNVPRV("AD",PXCEVIEN,PXCEVPRV)) Q:PXCEVPRV'>0 Q:PXCEPRV=$P(^AUPNVPRV(PXCEVPRV,0),"^",1) S:"P"=$P(^AUPNVPRV(PXCEVPRV,0),"^",4) PXCEPRIM=1
|
---|
47 | Q:PXCEVPRV>0
|
---|
48 | ;See if this provider is in the ^TMP("PXK",$J,
|
---|
49 | F S PXCEKPRV=$O(^TMP("PXK",$J,"PRV",PXCEKPRV)) Q:PXCEKPRV'>0 Q:PXCEPRV=+^TMP("PXK",$J,"PRV",PXCEKPRV,0,"AFTER") S:"P"=$P(^TMP("PXK",$J,"PRV",PXCEKPRV,0,"AFTER"),"^",4) PXCEPRIM=1
|
---|
50 | Q:PXCEKPRV>0
|
---|
51 | I 'PXCEPRIM D I $D(DTOUT)!$D(DUOUT) Q
|
---|
52 | . N DIR,DA
|
---|
53 | . S DIR(0)="9000010.06,.04A"
|
---|
54 | . S DIR("A")="Is this provider Primary or Secondary? "
|
---|
55 | . S DIR("B")=$S(PXCEPRIM:"S",1:"P")
|
---|
56 | . D ^DIR
|
---|
57 | I PXCEPRIM S Y="S"
|
---|
58 | ;Set PXCENPRV to the next provider in ^TMP("PXK",$J,"PRV",
|
---|
59 | I $Q(^TMP("PXK",$J,"PRV"))["PXK,"_$J_",PRV" S PXCENPRV=+$O(^TMP("PXK",$J,"PRV",""),-1)+1
|
---|
60 | E S PXCENPRV=1
|
---|
61 | S ^TMP("PXK",$J,"PRV",PXCENPRV,"IEN")=""
|
---|
62 | S ^TMP("PXK",$J,"PRV",PXCENPRV,0,"BEFORE")=""
|
---|
63 | S ^TMP("PXK",$J,"PRV",PXCENPRV,0,"AFTER")=PXCEPRV_"^"_PXCEPAT_"^"_PXCEVIEN_"^"_$P(Y,"^")
|
---|
64 | S ^TMP("PXK",$J,"PRV",PXCENPRV,812,"BEFORE")=""
|
---|
65 | S ^TMP("PXK",$J,"PRV",PXCENPRV,812,"AFTER")="^"_PXCEPKG_"^"_PXCESOR
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | DIAGNOS(PXCEPOV) ;See if it is a new diagnosis and if it is add them.
|
---|
69 | N PXCEVPOV,PXCEKPOV,PXCENPOV,PXCEPMSC,PXCENARR,PXCEMOD,PXCEDXSC,PXCEX,PXCEY
|
---|
70 | N DIR,DA,X,Y
|
---|
71 | S (PXCEVPOV,PXCEKPOV)=""
|
---|
72 | S PXCEPRIM=0
|
---|
73 | ;See if this diagnosis is already in V POV for this Encounter
|
---|
74 | F S PXCEVPOV=$O(^AUPNVPOV("AD",PXCEVIEN,PXCEVPOV)) Q:PXCEVPOV'>0 Q:PXCEPOV=$P(^AUPNVPOV(PXCEVPOV,0),"^",1) S:"P"=$P(^AUPNVPOV(PXCEVPOV,0),"^",12) PXCEPRIM=1
|
---|
75 | Q:PXCEVPOV>0
|
---|
76 | ;See if this diagnosis is in the ^TMP("PXK",$J,
|
---|
77 | F S PXCEKPOV=$O(^TMP("PXK",$J,"POV",PXCEKPOV)) Q:PXCEKPOV'>0 Q:PXCEPOV=+^TMP("PXK",$J,"POV",PXCEKPOV,0,"AFTER") S:"P"=$P(^TMP("PXK",$J,"POV",PXCEKPOV,0,"AFTER"),"^",12) PXCEPRIM=1
|
---|
78 | Q:PXCEKPOV>0
|
---|
79 | ;Is this diagnosis primary P/S
|
---|
80 | I 'PXCEPRIM D I $D(DTOUT)!$D(DUOUT) S PXCEEND=1,PXCEQUIT=1 Q
|
---|
81 | . N DIR,DA
|
---|
82 | . S DIR(0)="9000010.07,.12A"
|
---|
83 | . S DIR("A")="Diagnosis is Primary? "
|
---|
84 | . S DIR("B")="P"
|
---|
85 | . D ^DIR
|
---|
86 | . S PXCEPMSC=$P(Y,"^",1)
|
---|
87 | . S:PXCEPMSC="P" PXCEPRIM=1
|
---|
88 | S:'$D(PXCEPMSC) PXCEPMSC="S"
|
---|
89 | ;Diagnosis narrative
|
---|
90 | D I $D(DTOUT)!$D(DUOUT) S PXCEEND=1,PXCEQUIT=1 Q
|
---|
91 | . N DIR,DA
|
---|
92 | . S DIR(0)="9000010.07,.04AO"
|
---|
93 | . S DIR("A")="Provider Narrative: "
|
---|
94 | . D ^DIR
|
---|
95 | S PXCEX=Y
|
---|
96 | I PXCEX="" S PXCEX=$$EXTTEXT^PXUTL1(+PXCEPOV,1,80,10,3)
|
---|
97 | W !,PXCEX
|
---|
98 | S PXCEY=$$PROVNARR^PXAPI(PXCEX,9000010.07) I +PXCEY'>0 W "??",$C(7) S PXCEEND=1,PXCEQUIT=1 Q
|
---|
99 | S PXCENARR=$P(PXCEY,"^",1)
|
---|
100 | ;Diagnosis modifier
|
---|
101 | D I $D(DTOUT)!$D(DUOUT) S PXCEEND=1,PXCEQUIT=1 Q
|
---|
102 | . N DIR,DA
|
---|
103 | . S DIR(0)="9000010.07,.06A"
|
---|
104 | . S DIR("A")="Diagnosis Modifier: "
|
---|
105 | . D ^DIR
|
---|
106 | S PXCEMOD=$P(Y,U,2)
|
---|
107 | ;Diagnosis Service Connected, Clinical Indicators
|
---|
108 | D GET800^PXCED800
|
---|
109 | ;Set PXCENPOV to the next diagnosis in ^TMP("PXK",$J,"POV",
|
---|
110 | I $Q(^TMP("PXK",$J,"POV"))["PXK,"_$J_",POV" S PXCENPOV=+$O(^TMP("PXK",$J,"POV",""),-1)+1
|
---|
111 | E S PXCENPOV=1
|
---|
112 | S ^TMP("PXK",$J,"POV",PXCENPOV,"IEN")=""
|
---|
113 | S ^TMP("PXK",$J,"POV",PXCENPOV,0,"BEFORE")=""
|
---|
114 | S ^TMP("PXK",$J,"POV",PXCENPOV,0,"AFTER")=PXCEPOV_"^"_PXCEPAT_"^"_PXCEVIEN_"^"_PXCENARR_"^^"_PXCEMOD_"^^^^^^"_PXCEPMSC
|
---|
115 | S ^TMP("PXK",$J,"POV",PXCENPOV,800,"BEFORE")=""
|
---|
116 | S ^TMP("PXK",$J,"POV",PXCENPOV,800,"AFTER")=PXCEDXSC
|
---|
117 | S ^TMP("PXK",$J,"POV",PXCENPOV,812,"BEFORE")=""
|
---|
118 | S ^TMP("PXK",$J,"POV",PXCENPOV,812,"AFTER")="^"_PXCEPKG_"^"_PXCESOR
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | ;
|
---|