1 | PXSCH1 ;ISL/JVS - SCHEDULING REDESIGN PROCEDURES ;6/11/96
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;;Aug 12, 1996
|
---|
3 | ; Variable List
|
---|
4 | ;
|
---|
5 | ; PXS(***) The various pieces of data to move
|
---|
6 | ; PXS1..PXSn Scratch Variables
|
---|
7 | ; PXSCNT Counter- Number of a particular procedure
|
---|
8 | ; PXSCS0 ^TMP("SCCVEVT",$J,"CS",0) node
|
---|
9 | ; PXSCSI0 ^TMP("SCCVEVT",$J,"CS",xx,0) node
|
---|
10 | ; PXSCISPR ^TMP("SCCVEVT",$J,"CS",xx,"PR") node
|
---|
11 | ; PXSOE ^TMP("SCCVEVT",$J,"SDOE",xx,0) node
|
---|
12 | ; PXSDOE IEN on the $O(^TMP("SCCVEVT",$J,"SDOE",0) node
|
---|
13 | ; PXSDVI IEN on the $O(^TMP("SCCVEVT",$J,"CS",0) node
|
---|
14 | ; PXSDX Pointer to the Diagnosis
|
---|
15 | ; PXSIEN Scratch Variable for $Ordering
|
---|
16 | ; PXSINDX increment subscripts in ^TMP("PXK" global
|
---|
17 | ; PXSPR Pointer to the main Provider
|
---|
18 | ;
|
---|
19 | ;
|
---|
20 | EN1 ;Entry point
|
---|
21 | N PXS1,PXS2,PXS3,PXS4,PXSCNT,PXSCS0,PXSCSI0,PXSCSIPR,PXSDOE,PXSDVI
|
---|
22 | N PXSDX,PXSIEN,PXSINDX,PXSOE,PXSPR,CPTNOD0,CPTNOD12,CPTNOD8
|
---|
23 | N PXSCPT,PXSCPTQ,PXSDX,PXSINDX,PXSPNN,PXSPNNN,PXSPR,PRVNOD0,PRVNOD12
|
---|
24 | N PXSCT,PXSPRV,DXN800,DXN802,DXNOD0,DXNOD12
|
---|
25 | N PXSZPN,PXSFILE
|
---|
26 | ;
|
---|
27 | CHECK ;Check on variables and/or environment
|
---|
28 | S PXS1=12 Q:$G(PXS1)'[SCCVEVT
|
---|
29 | Q:$G(SCCVORG)'=2
|
---|
30 | SET ;Set up needed variables
|
---|
31 | S PXSDVI=$O(^TMP("SCCVEVT",$J,"CS",0))
|
---|
32 | S PXSDOE=$O(^TMP("SCCVEVT",$J,"SDOE",0))
|
---|
33 | LOCLIZE ; Set the tmp global into local array for speed
|
---|
34 | S PXSCS0=$G(^TMP("SCCVEVT",$J,"CS",0))
|
---|
35 | S PXSCSI0=$G(^TMP("SCCVEVT",$J,"CS",PXSDVI,0))
|
---|
36 | S PXSCSIPR=$G(^TMP("SCCVEVT",$J,"CS",PXSDVI,"PR"))
|
---|
37 | S PXSOE=$G(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,0))
|
---|
38 | ARRAY ;Set all of the data into variables
|
---|
39 | S PXS("DATE")=$P(PXSCS0,"^")
|
---|
40 | S PXS("PATIENT")=$P(PXSCS0,"^",2)
|
---|
41 | S PXS("DIVISION")=$P(PXSCS0,"^",3)
|
---|
42 | S PXS("STOP CODE")=$P(PXSCSI0,"^")
|
---|
43 | S PXS("CLINIC")=$P(PXSCSI0,"^",3)
|
---|
44 | S PXS("ELIGIBILITY")=$P(PXSCSI0,"^",4)
|
---|
45 | S PXS("OUT PAT ENCOU")=PXSDOE
|
---|
46 | S PXS("PROCEDURE",1)=$P(PXSCSIPR,"^",1)
|
---|
47 | S PXS("PROCEDURE",2)=$P(PXSCSIPR,"^",2)
|
---|
48 | S PXS("PROCEDURE",3)=$P(PXSCSIPR,"^",3)
|
---|
49 | S PXS("PROCEDURE",4)=$P(PXSCSIPR,"^",4)
|
---|
50 | S PXS("PROCEDURE",5)=$P(PXSCSIPR,"^",5)
|
---|
51 | S PXS("STOP CODE ORIG")=$P(PXSOE,"^",3)
|
---|
52 | S PXS("VISIT")=$P(PXSOE,"^",5)
|
---|
53 | Q:$G(PXS("VISIT"))'>0
|
---|
54 | S PXS("PARENT ENCOUNTER")=$P(PXSOE,"^",6)
|
---|
55 | ;
|
---|
56 | DX ;Set Diagnosis array
|
---|
57 | I $D(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"DX")) D
|
---|
58 | .S PXSIEN=0 F S PXSIEN=$O(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"DX",PXSIEN)) Q:PXSIEN="" D
|
---|
59 | ..S PXS("DIAGNOSIS",PXSIEN)=$G(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"DX",PXSIEN,0))
|
---|
60 | ;
|
---|
61 | DOC ;Set Provider array
|
---|
62 | I $D(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"PR")) D
|
---|
63 | .S PXSIEN=0 F S PXSIEN=$O(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"PR",PXSIEN)) Q:PXSIEN="" D
|
---|
64 | ..S PXS("PROVIDER",PXSIEN)=$G(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"PR",PXSIEN,0))
|
---|
65 | CLASS ;Set Classification array
|
---|
66 | I $D(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"CL")) D
|
---|
67 | .S PXSIEN=0 F S PXSIEN=$O(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"CL",PXSIEN)) Q:PXSIEN="" D
|
---|
68 | ..S PXS("CLASSIFICATION",$P($G(^TMP("SCCVEVT",$J,"SDOE",PXSDOE,"CL",PXSIEN,0)),"^",1))=""
|
---|
69 | ;
|
---|
70 | COUNT ;Count up the total number of procedures
|
---|
71 | N PXS1,PXS2,PXS3,PXS4,PXSCNT
|
---|
72 | S (PXS1,PXS2,PXS3,PXS4)=0,PXSCNT=0
|
---|
73 | F S PXS1=$O(PXS("PROCEDURE",PXS1)) Q:PXS1="" D
|
---|
74 | .S PXS4=$G(PXS("PROCEDURE",PXS1))
|
---|
75 | .S PXS2="" F S PXS2=$O(PXS("PROCEDURE",PXS2)) Q:PXS2="" D
|
---|
76 | ..I $G(PXS("PROCEDURE",PXS2))=PXS4 S PXSCNT=PXSCNT+1
|
---|
77 | .I PXS4'="" S PXS("PROC",PXS4)=PXSCNT S PXSCNT=0
|
---|
78 | ;
|
---|
79 | I $D(PXS("DIAGNOSIS")) S PXSDX=+$G(PXS("DIAGNOSIS",$O(PXS("DIAGNOSIS",0))))
|
---|
80 | I $D(PXS("PROVIDER")) S PXSPR=+$G(PXS("PROVIDER",$O(PXS("PROVIDER",0))))
|
---|
81 | S PXSINDX=0
|
---|
82 | D CPT^PXSCH2,PRV^PXSCH3,DIAG^PXSCH4
|
---|
83 | D EN1^PXKMAIN
|
---|
84 | EXIT ;
|
---|
85 | K PXS,PXSPNN,PXSPNNN,PXKCO
|
---|
86 | K ^TMP("PXK",$J)
|
---|
87 | K %DD,%DT,%W,%Y,D,D0,DI,DIC,DQ,X,S,DX
|
---|
88 | Q
|
---|