[613] | 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 | ;
|
---|