1 | PXCADXP1 ;ISL/dee & LEA/Chylton - Validates & Translates data from the PCE Device Interface into a call to V POV & update Problem List ;3/20/97
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**24,33**;Aug 12, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | PART1 ;
|
---|
6 | N PXCACLEX
|
---|
7 | S (PXCADIAG,PXCAPROB)=0
|
---|
8 | I "^^^"'[$P(PXCADXPL,"^",5,8) S PXCAPROB=1
|
---|
9 | ;Note
|
---|
10 | S PXCAITEM=$P($G(PXCA("DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,"NOTE")),"^",1),PXCAITM2=$L(PXCAITEM)
|
---|
11 | I PXCAITEM]"" D
|
---|
12 | . I PXCAITM2<3!(PXCAITM2>60) S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,"NOTE",1)="PROBLEM Note must be 1-60 Characters^"_PXCAITEM
|
---|
13 | . S PXCAPROB=1
|
---|
14 | ;
|
---|
15 | ;Diagnosis Code
|
---|
16 | S PXCAITEM=$P(PXCADXPL,"^",1)
|
---|
17 | I PXCAITEM>0 D
|
---|
18 | . N DIC,DR,DA,DIQ,PXCADIQ1
|
---|
19 | . S DIC=80
|
---|
20 | . S DR=".01;102"
|
---|
21 | . S DA=PXCAITEM
|
---|
22 | . S DIQ="PXCADIQ1("
|
---|
23 | . S DIQ(0)="I"
|
---|
24 | . D EN^DIQ1
|
---|
25 | . I $G(PXCADIQ1(80,DA,.01,"I"))="" S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,1)="ICD9 Code not in file 80^"_PXCAITEM
|
---|
26 | . E I $G(PXCADIQ1(80,DA,102,"I")),PXCADIQ1(80,DA,102,"I")'>+PXCADT S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,1)="ICD9 Code is INACTIVE^"_PXCAITEM
|
---|
27 | ;
|
---|
28 | ;Diagnosis Specification Code
|
---|
29 | S PXCAITM2=$P(PXCADXPL,"^",2)
|
---|
30 | I PXCAITM2'="" D
|
---|
31 | . S PXCADIAG=1
|
---|
32 | . I '((PXCAITM2="P")!(PXCAITM2="S")!(PXCAITM2="PS")!(PXCAITM2="SP")) S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,2)="Diagnosis specification code must be P|S^"_PXCAITM2
|
---|
33 | . E I PXCAITM2["P",PXCAITEM>0 D
|
---|
34 | .. I 'PXCAPDX S PXCAPDX=PXCAITEM
|
---|
35 | .. E I $P($G(^PX(815,1,"DI")),"^",2) S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,2)="There is already a Primary Diagnosis for this encounter^"_PXCAITM2
|
---|
36 | .. E D
|
---|
37 | ... S PXCA("WARNING","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,2)="There is already a Primary Diagnosis. This one is changed to Secondary^"_PXCAITM2
|
---|
38 | ... S $P(PXCADXPL,"^",2)="S"
|
---|
39 | . I PXCAITEM'>0 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,1)="ICD9 Code is required for DIAGNOSIS^"_PXCAITEM
|
---|
40 | ;
|
---|
41 | ;Clinical Lexicon Term
|
---|
42 | S PXCAITEM=$P(PXCADXPL,"^",3)
|
---|
43 | I PXCAITEM]"" D
|
---|
44 | . I $D(^LEX(757.01)) D
|
---|
45 | .. I $D(^LEX(757.01,PXCAITEM,0))#2'=1 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,3)="Lexicon Utility term is not in file 757.01^"_PXCAITEM
|
---|
46 | .. E S PXCACLEX=PXCAITEM
|
---|
47 | . E I $D(^GMP(757.01)) D
|
---|
48 | .. I $D(^GMP(757.01,PXCAITEM,0))#2'=1 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,3)="Clinical Lexicon Utility term is not in file 757.01^"_PXCAITEM
|
---|
49 | .. E S PXCACLEX=PXCAITEM
|
---|
50 | . E S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,3)="Lexicon Utility is not installed^"_PXCAITEM
|
---|
51 | ;
|
---|
52 | ;Problem List IEN
|
---|
53 | S PXCAITEM=$P(PXCADXPL,"^",4)
|
---|
54 | ;Add to Problem List
|
---|
55 | S PXCAITM2=$P(PXCADXPL,"^",5)
|
---|
56 | I PXCAITEM]"" D
|
---|
57 | . I $G(^AUPNPROB(PXCAITEM,0))="" S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,4)="Problem not in file 9000011^"_PXCAITEM
|
---|
58 | . E I PXCAPAT'=$P($G(^AUPNPROB(PXCAITEM,0)),"^",2) S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,4)="Problem in file 9000011 is for a different Patient^"_PXCAITEM
|
---|
59 | . I PXCAITM2=1 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,5)="Cannot ADD existing Problem to file 9000011^"_PXCAITM2
|
---|
60 | E I PXCAPROB,PXCAITM2'=1 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,4)="Cannot update an existing Problem with out an IEN to file 9000011^"_PXCAITEM
|
---|
61 | I '(PXCAITM2=1!(PXCAITM2=0)!(PXCAITM2="")) S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,5)="Add to Problem List flag bad^"_PXCAITM2
|
---|
62 | I PXCAITM2=1,PXCAPRV'>0 S PXCA("ERROR","DIAGNOSIS/PROBLEM",PXCAPRV,PXCAINDX,0)="Provider is required to add a new Problem^"_PXCAPRV
|
---|
63 | ;
|
---|
64 | Q
|
---|
65 | ;
|
---|