1 | PXRRWLSA ;ISL/PKR - Sort appointments for encounter summary report. ;12/1/98
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**20,61**;Aug 12, 1996
|
---|
3 | ;
|
---|
4 | ;Sort the encounters found in PXRRWLSE and attach them to appointments.
|
---|
5 | SORT ;
|
---|
6 | N APPT,BUSY,DATE,DFN,FACILITY,IC,OUPENC,POV,STOIND,VIEN
|
---|
7 | N MULTPR
|
---|
8 | ;
|
---|
9 | ;Allow the task to be cleaned up upon successful completion.
|
---|
10 | S ZTREQ="@"
|
---|
11 | ;
|
---|
12 | I '(PXRRQUE!$D(IO("S"))) D INIT^PXRRBUSY(.BUSY)
|
---|
13 | ;
|
---|
14 | S FACILITY=0
|
---|
15 | NFAC S FACILITY=$O(^XTMP(PXRRXTMP,FACILITY))
|
---|
16 | I +FACILITY=0 G DONE
|
---|
17 | ;
|
---|
18 | S STOIND=""
|
---|
19 | NIND S STOIND=$O(^XTMP(PXRRXTMP,FACILITY,STOIND))
|
---|
20 | I STOIND="" G NFAC
|
---|
21 | ;
|
---|
22 | S DFN=0
|
---|
23 | NDFN S DFN=$O(^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN))
|
---|
24 | I +DFN=0 G NIND
|
---|
25 | ;
|
---|
26 | S DATE=0
|
---|
27 | NDATE S DATE=$O(^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN,DATE))
|
---|
28 | I +DATE=0 G NDFN
|
---|
29 | ;
|
---|
30 | ;If this is an interactive session let the user know that something
|
---|
31 | ;is happening.
|
---|
32 | I '(PXRRQUE!$D(IO("S"))) D SPIN^PXRRBUSY("Sorting appointments",.BUSY)
|
---|
33 | ;
|
---|
34 | ;Check for a user request to stop the task.
|
---|
35 | I $$S^%ZTLOAD S ZTSTOP=1 D EXIT^PXRRGUT
|
---|
36 | ;
|
---|
37 | S VIEN=0
|
---|
38 | NVISIT S VIEN=$O(^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN,DATE,VIEN))
|
---|
39 | I +VIEN=0 G NDATE
|
---|
40 | ;
|
---|
41 | S MULTPR=$G(^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN,DATE,VIEN))
|
---|
42 | ;
|
---|
43 | ;We have a DFN, DATE, and a VIEN look for an appointment.
|
---|
44 | ;We will need DBIAs for reading DPT and SCE.
|
---|
45 | S APPT=$G(^DPT(DFN,"S",DATE,0))
|
---|
46 | S OUPENC=$P(APPT,U,20)
|
---|
47 | I $L(OUPENC)>0 D
|
---|
48 | .;Make sure that we point back to the same visit.
|
---|
49 | . I $P($G(^SCE(OUPENC,0)),U,5)=VIEN D
|
---|
50 | ..;Save the purpose of visit.
|
---|
51 | .. S POV=$P(APPT,U,7)
|
---|
52 | .. S ^XTMP(PXRRXTMP,FACILITY,STOIND,"POV",POV)=$G(^XTMP(PXRRXTMP,FACILITY,STOIND,"POV",POV))+1
|
---|
53 | .. I MULTPR=1 D
|
---|
54 | ... S ^XTMP(PXRRXTMP,FACILITY,"&&","POV",POV)=$G(^XTMP(PXRRXTMP,FACILITY,"&&","POV",POV))+1
|
---|
55 | G NVISIT
|
---|
56 | ;
|
---|
57 | DONE ;
|
---|
58 | ;Sorting is done.
|
---|
59 | I '(PXRRQUE!$D(IO("S"))) D DONE^PXRRBUSY("done")
|
---|
60 | EXIT ;
|
---|
61 | ;
|
---|
62 | ;Print the report information.
|
---|
63 | I PXRRQUE D
|
---|
64 | .;Start the printing that was queued but not scheduled.
|
---|
65 | . N DESC,ROUTINE,TASK
|
---|
66 | . S ROUTINE="PXRRWLPR"
|
---|
67 | . S DESC="Encounter Summary Report - print"
|
---|
68 | . S ZTDTH=$$NOW^XLFDT
|
---|
69 | . S TASK=^XTMP(PXRRXTMP,"PRZTSK")
|
---|
70 | . D REQUE^PXRRQUE(DESC,ROUTINE,TASK)
|
---|
71 | E D ^PXRRWLPR
|
---|
72 | Q
|
---|
73 | ;
|
---|