1 | PXBPL ;ISL/JVS - ADD DIAGNOSIS TO PROBLEM LIST ; 3/27/02 4:48pm
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,94,115,130**;Aug 12, 1996
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | W !,"THIS IS NOT AN ENTRY POINT" Q
|
---|
7 | SET ;--SETUP AND NEW VARIABLES
|
---|
8 | N OK,PXBPL,FLAG,DATA,ICDCODE
|
---|
9 | D WIN17^PXBCC(PXBCNT)
|
---|
10 | I '$G(NOPLLIST) Q
|
---|
11 | PRMPT ;--Ask if you want to put entries in PL
|
---|
12 | S DIR(0)="Y,A,O"
|
---|
13 | S DIR("B")="NO"
|
---|
14 | I PXBCNT'>1 S DIR("A")="Would you like to add this Diagnosis to the Problem List? "
|
---|
15 | I PXBCNT>1 S DIR("A")="Would you like to add any Diagnoses to the Problem List? "
|
---|
16 | D ^DIR K DIR
|
---|
17 | I Y=0!(Y="^")!(Y="") Q
|
---|
18 | SELECT ;--Select entries for PL
|
---|
19 | W !
|
---|
20 | I PXBCNT'>1 S OK=1
|
---|
21 | I PXBCNT>1 W !,"Select 1 or several Diagnoses (eg 1,3,4,7,3-6,2-5): " R OK:DTIME
|
---|
22 | I OK?1.N1"E".NAP S OK=" "_OK
|
---|
23 | I OK?24.N S OK=$E(OK,1,24)
|
---|
24 | ;
|
---|
25 | ;
|
---|
26 | I OK["-" D
|
---|
27 | .N PIECE,PXBI,PXBJ,PXBK
|
---|
28 | .S PIECE="" F PXBI=1:1:$L(OK,",") S PIECE=$P(OK,",",PXBI) I PIECE["-" D
|
---|
29 | ..S PXBJ=0 F PXBJ=$P(PIECE,"-",1):1:$P(PIECE,"-",2) S PXBK=","_PXBJ,OK=OK_PXBK
|
---|
30 | ;
|
---|
31 | ;
|
---|
32 | ;
|
---|
33 | S PXBLEN=0
|
---|
34 | I OK["?" W !,"Enter the ITEM numbers of the entries you whish to add to the PROBLEM LIST." G SELECT
|
---|
35 | ;----SPACE BAR---------
|
---|
36 | I OK'=" ",OK'["^",OK'="" S ^DISV(DUZ,"PXBPL-2")=OK
|
---|
37 | I OK=" ",$D(^DISV(DUZ,"PXBPL-2")) S OK=^DISV(DUZ,"PXBPL-2") W OK
|
---|
38 | ;-----------------------
|
---|
39 | S PXBLEN=$L(OK,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(OK,",",PXI) D
|
---|
40 | .Q:PXBPIECE=""
|
---|
41 | .I $D(PXBSAM(PXBPIECE)) D
|
---|
42 | ..S FLAG=1
|
---|
43 | ..D REVPOV^PXBCC(PXBPIECE)
|
---|
44 | I '$G(FLAG) S DIR(0)="Y^AO",DIR("B")="NO",DIR("A")="INVALID entry. Would you like to try again" D ^DIR K DIR I Y=1 K Y G SELECT
|
---|
45 | PRV ;--Ask for provider
|
---|
46 | I '$G(FLAG) Q
|
---|
47 | S FROM="PL" D PRV^PXBGPRV(PXBVST)
|
---|
48 | R K ERROR S FROM="PL" D PRV^PXBPPRV G:$G(ERROR) R W IOEDEOP
|
---|
49 | I DATA["^P" D LOC^PXBCC(3,0),EN0^PXBDPRV,LOC^PXBCC(15,0) G PRV
|
---|
50 | D POV^PXBGPOV(PXBVST)
|
---|
51 | LOOP ;--Loop through diagnosis
|
---|
52 | S PXBLEN=$L(OK,",") F PXI=1:1:PXBLEN S PXBPIECE=$P(OK,",",PXI) D
|
---|
53 | .I PXBPIECE="" Q
|
---|
54 | .I $D(PXBSAM(PXBPIECE)) D
|
---|
55 | ..S PXBPL("PATIENT")=PATIENT
|
---|
56 | ..S PXBPL("NARRATIVE")=$P($G(PXBSAM(PXBPIECE)),"^",3)
|
---|
57 | ..S PXBPL("PROVIDER")=$P(REQI,"^",1)
|
---|
58 | ..S PXBPL("DIAGNOSIS")=+^AUPNVPOV($O(PXBSKY(PXBPIECE,0)),0)
|
---|
59 | ..S PXBPL("LOCATION")=$P(^AUPNVSIT(PXBVST,0),"^",22)
|
---|
60 | ..;PRH - PX*1*115 - Set up Service Conditions
|
---|
61 | ..N PXSCSTR,PXII,PXTYP
|
---|
62 | ..S PXSCSTR="SC^AO^IR^EC^MST^HNC^CV"
|
---|
63 | ..F PXII=1:1:7 D
|
---|
64 | ...S PXTYP=$P(PXSCSTR,"^",PXII)
|
---|
65 | ...S PXBPL(PXTYP)=$P($G(^AUPNVSIT(PXBVST,800)),"^",PXII)
|
---|
66 | ..S ICDCODE="",ICDCODE=$P($G(PXBSAM(PXBPIECE)),"^",1)
|
---|
67 | ..I ICDCODE'="" D ; Get Lexicon entry for ICD Code
|
---|
68 | ...KILL LEXS D EN^LEXCODE(ICDCODE)
|
---|
69 | ...I $G(LEXS("ICD",0))>0 S PXBPL("LEXICON")=$P($G(LEXS("ICD",1)),"^",1)
|
---|
70 | ..D CREATE^GMPLUTL(.PXBPL,.PXBRES)
|
---|
71 | ..D PR
|
---|
72 | K NOPLLIST
|
---|
73 | Q
|
---|
74 | SEND ;--Entry point to send data to problem list
|
---|
75 | N PXBPL,OK,ICDCODE
|
---|
76 | I '$D(IORVON) D TERM^PXBCC
|
---|
77 | S PXBPL("PATIENT")=PATIENT
|
---|
78 | S PXBPL("NARRATIVE")=PXBSAM($O(PXBKY($P($P(REQE,"^",5)," ",1),0)),"LNARR")
|
---|
79 | S PXBPL("PROVIDER")=$P(REQI,"^",1)
|
---|
80 | S PXBPL("DIAGNOSIS")=$P(REQI,"^",5)
|
---|
81 | S PXBPL("LOCATION")=$P(^AUPNVSIT(PXBVST,0),"^",22)
|
---|
82 | ;PRH - PX*1*115 - Set up Service Conditions
|
---|
83 | N PXSCSTR,PXII,PXTYP
|
---|
84 | S PXSCSTR="SC^AO^IR^EC^MST^HNC^CV"
|
---|
85 | F PXII=1:1:6 D
|
---|
86 | . S PXTYP=$P(PXSCSTR,"^",PXII)
|
---|
87 | . S PXBPL(PXTYP)=$P($G(^AUPNVSIT(PXBVST,800)),"^",PXII)
|
---|
88 | S ICDCODE="",ICDCODE=$P($G(PXBSAM($O(PXBKY($P($P(REQE,"^",5)," ",1),0)))),"^",1)
|
---|
89 | I ICDCODE'="" D ; Get Lexicon entry for ICD Code
|
---|
90 | .KILL LEXS D EN^LEXCODE(ICDCODE)
|
---|
91 | .I $G(LEXS("ICD",0))>0 S PXBPL("LEXICON")=$P($G(LEXS("ICD",1)),"^",1)
|
---|
92 | D CREATE^GMPLUTL(.PXBPL,.PXBRES)
|
---|
93 | PR ;
|
---|
94 | I PXBRES<0 D Q ;'Q'uit added for PX*1*115
|
---|
95 | .W !,IORVON,"--WARNING-Problem NOT Created because: ",PXBRES(0),IORVOFF
|
---|
96 | .D HELP1^PXBUTL1("CON") R OK:DTIME
|
---|
97 | ;
|
---|
98 | ;PX*1*115 - Add Problem File Pointer to V POV file
|
---|
99 | I PXBRES>0 D
|
---|
100 | . N DA,DIE,DR,PXBPLARR,PXBPLERR,PXBPLPOV
|
---|
101 | . S DA=$O(PXBSKY(PXBPIECE,0))
|
---|
102 | . S PXBPLPOV=9000010.07
|
---|
103 | . K PXBPLARR,PXBPLERR
|
---|
104 | . D GETS^DIQ(PXBPLPOV,(DA_","),.16,"I","PXBPLARR","PXBPLERR")
|
---|
105 | . Q:$D(PXBPLERR)
|
---|
106 | . I $L($G(PXBPLARR(PXBPLPOV,(DA_","),.16,"I"))) Q
|
---|
107 | . ;
|
---|
108 | . S DIE="^AUPNVPOV(",DR=".16////"_PXBRES
|
---|
109 | . D ^DIE
|
---|
110 | ;
|
---|
111 | Q
|
---|