- PXRRWLS2 ;ISA/Zoltan - Sort encounters for encounter summary report.;12/1/1998
- ;;1.0;PCE PATIENT CARE ENCOUNTER;**58,61**;Aug 12, 1996
- ;
- ; Code migrated from PXRRWLSE.
- ;
- ; Part 1: migrated code.
- SORT2 ; Migrated from PXRRWLSE
- I '(PXRRQUE!$D(IO("S"))) D INIT^PXRRBUSY(.BUSY)
- ;
- ;Location is true if we are screening by location.
- I $P(PXRRWLSC,U,1)="L" D
- . S LOCATION=1
- . S ^XTMP(PXRRXTMP,"STOIND","LOCATION")=""
- E S LOCATION=0
- ;
- ;CSSCR is true if we want selected clinics.
- I $P($G(PXRRLCSC),U,1)="CS" S CSSCR=1
- E S CSSCR=0
- ;
- ;CLINIC is true if we want clinics instead of hospital locations.
- I $P($G(PXRRLCSC),U,1)["C" D
- . S CLINIC=1
- . S BYCLOC=$S($P(PXRRLCSC,U,3):1,1:0)
- E D
- . S CLINIC=0
- . S BYCLOC=0
- ;
- ;HSSCR is true if we want selected hospital locations.
- I $P($G(PXRRLCSC),U,1)="HS" S HSSCR=1
- E S HSSCR=0
- ;
- ;PROVIDER is true if we select by provider.
- I $P($G(PXRRWLSC),U,1)="P" D
- . S PROVIDER=1
- . S ^XTMP(PXRRXTMP,"STOIND","PROVIDER")=""
- E S PROVIDER=0
- ;
- ;PRVSCR is true if we have selected providers.
- I $D(NPL) S PRVSCR=1
- E S PRVSCR=0
- ;
- ;Allow the task to be cleaned up upon successful completion.
- S ZTREQ="@"
- Q
- ;
- VISIT2 ; Migrated from PXRRWLSE
- ;Clinic screen.
- I CSSCR D
- . S FOUND=0
- . S CLINIEN=$P(VISIT,U,8)
- . F IC=1:1:NCS I $P(PXRRCS(IC),U,2)=CLINIEN D Q
- ..;Mark the clinic as being matched.
- .. S $P(PXRRCS(IC),U,4)="M"
- .. S HLOCNAM=$P(^DIC(40.7,CLINIEN,0),U,1)_U_CLINIEN
- .. S FOUND=1
- ;
- ;Hospital location screen.
- I HSSCR D
- . S FOUND=0
- . S HLOCIEN=$P(VISIT,U,22)
- . F IC=1:1:NHL I $P(PXRRLCHL(IC),U,2)=HLOCIEN D Q
- ..;Mark the hospital location as being matched.
- .. S $P(PXRRLCHL(IC),U,4)="M"
- .. S CLINIEN=$P(^SC(HLOCIEN,0),U,7)
- .. S HLOCNAM=$P(^SC(HLOCIEN,0),U,1)_U_HLOCIEN
- .. S FOUND=1
- Q
- ;
- PRV2 ; Migrated from PXRRWLSE
- ;At this point we have an encounter that can be added to the list.
- ;
- ;Get the hospital location or clinic and stop code.
- I $L(HLOCNAM)'>0 D
- . I 'CLINIC D
- .. ;Get the hospital location.
- .. S HLOCIEN=$P(VISIT,U,22)
- .. I HLOCIEN>0 D
- ... S HLOCNAM=$P(^SC(HLOCIEN,0),U,1)_U_HLOCIEN
- ... S CLINIEN=$P(^SC(HLOCIEN,0),U,7)
- .. E D
- ...;No hospital location, see if we can at least find the clinic.
- ... S HLOCNAM="Unknown"
- ... S CLINIEN=$P(VISIT,U,8)
- . E D
- .. ;Get the clinic.
- .. S CLINIEN=$P(VISIT,U,8)
- .. I $D(^DIC(40.7,CLINIEN,0))[0 S CLINIEN=0
- .. I CLINIEN>0 S HLOCNAM=$P(^DIC(40.7,CLINIEN,0),U,1)_U_CLINIEN
- .. E S HLOCNAM="Unknown"
- ;
- ;Append the clinic stop code.
- I CLINIEN>0 S HLOCNAM=HLOCNAM_U_$P(^DIC(40.7,CLINIEN,0),U,2)
- ;
- I LOCATION S STOIND=HLOCNAM
- ;Make sure that all providers are stored with the person class.
- I PROVIDER D
- . I $P(PPNAME,U,3)="" D
- .. S PCLASS=$$OCCUP^PXBGPRV(NEWPIEN,BD,"",1,"")
- .. S PPNAME=PPNAME_U_$P(PCLASS,U,7)
- . S STOIND=PPNAME_U
- . I PXRRPRLL S STOIND=STOIND_HLOCNAM
- ;
- ;Save the patient information.
- S TEMP=^AUPNVSIT(VIEN,0)
- S DATE=$P(TEMP,U,1)
- S DAY=$P(DATE,".",1)
- S DFN=$P(TEMP,U,5)
- ;Get the patient status, 1 is in, 0 is out.
- S INOUT=$P(VISIT150,U,2)
- I $L(INOUT)=0 S INOUT=-1
- Q
- ;
- GC2 ; Migrated from PXRRWLSE
- S CPT=$P(^AUPNVCPT(IC,0),U,1)
- I +CPT'>0 D
- . W !,"WARNING AUPNVCPT IS CORRUPTED! ENTRY ",IC," does not have a CPT code."
- . S CPT=0
- E D
- . S EM=$P($G(^IBE(357.69,CPT,0)),U,5)
- . I EM="" S EM=0
- ;
- ;Increment the CPT and E&M counts.
- S ^XTMP(PXRRXTMP,FACILITY,STOIND,"CPT")=$G(^XTMP(PXRRXTMP,FACILITY,STOIND,"CPT"))+1
- S ^XTMP(PXRRXTMP,FACILITY,STOIND,"EM",EM)=$G(^XTMP(PXRRXTMP,FACILITY,STOIND,"EM",EM))+1
- ;Calculate totals by facility for multiple provider encounters.
- I MULTPR=1 D
- . D FTOT(FACILITY,"&&","CPT")
- . D FTOT1(FACILITY,"&&","EM",EM)
- Q
- ;
- ;Totals for multiple provider encounters - used in PXRRWLPR.
- FTOT(FL,FLD,FL1) ;
- S ^XTMP(PXRRXTMP,FL,FLD,FL1)=$G(^XTMP(PXRRXTMP,FL,FLD,FL1))+1
- Q
- FTOT1(FL,FLD,FL1,FL2) ;
- S ^XTMP(PXRRXTMP,FL,FLD,FL1,FL2)=$G(^XTMP(PXRRXTMP,FL,FLD,FL1,FL2))+1
- Q
- ;
- NF2 ; Migrated from PXRRWLSE
- ;Count the total unique patients and visits at the facility.
- S TOTUNIQ=0
- S TOTVIS=0
- S VISITS(0)=0
- S VISITS(1)=0
- S DFN=0
- F S DFN=$O(^TMP(PXRRXTMP,$J,FACILITY,"&","PATIENT",DFN)) Q:DFN="" D
- . S TOTUNIQ=TOTUNIQ+1
- . S DAY=""
- . F S DAY=$O(^TMP(PXRRXTMP,$J,FACILITY,"&","PATIENT",DFN,DAY)) Q:DAY="" D
- .. S TOTVIS=TOTVIS+1
- .. S INOUT=-1
- .. F S INOUT=$O(^TMP(PXRRXTMP,$J,FACILITY,"&","PATIENT",DFN,DAY,INOUT)) Q:INOUT="" D
- ... S VISITS(INOUT)=VISITS(INOUT)+1
- S ^XTMP(PXRRXTMP,FACILITY,"&","TOTUNIQ")=TOTUNIQ
- S ^XTMP(PXRRXTMP,FACILITY,"&","TOTVIS")=TOTVIS
- S ^XTMP(PXRRXTMP,FACILITY,"&","TOTINOUT",0)=VISITS(0)
- S ^XTMP(PXRRXTMP,FACILITY,"&","TOTINOUT",1)=VISITS(1)
- Q
- ;
- CLOC2 ; Migrated from PXRRWLSE
- ;Save this to count the total number of unique patients and
- ;the total unique in/out patient encounters.
- S ^TMP(PXRRXTMP,$J,FACILITY,"&","PATIENT",DFN,DAY,INOUT)=""
- ;
- ;Save this to count the unique in/out patient encounters.
- S ^TMP(PXRRXTMP,$J,FACILITY,STOIND,"PATIENT",DFN,DAY,INOUT)=""
- ;
- ;Save this information so we can search for appointments in PXRRWLSA.
- S ^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN,DATE,VIEN)=MULTPR
- ;
- ;Increment the encounter count.
- S ^XTMP(PXRRXTMP,FACILITY,STOIND,"TOTENC")=$G(^XTMP(PXRRXTMP,FACILITY,STOIND,"TOTENC"))+1
- ;
- ;Calculate totals by facility for multiple provider encounters.
- I MULTPR=1 D FTOT(FACILITY,"&&","TOTENC")
- Q
- PXRRWLS2 ;ISA/Zoltan - Sort encounters for encounter summary report.;12/1/1998
- +1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**58,61**;Aug 12, 1996
- +2 ;
- +3 ; Code migrated from PXRRWLSE.
- +4 ;
- +5 ; Part 1: migrated code.
- SORT2 ; Migrated from PXRRWLSE
- +1 IF '(PXRRQUE!$DATA(IO("S")))
- DO INIT^PXRRBUSY(.BUSY)
- +2 ;
- +3 ;Location is true if we are screening by location.
- +4 IF $PIECE(PXRRWLSC,U,1)="L"
- Begin DoDot:1
- +5 SET LOCATION=1
- +6 SET ^XTMP(PXRRXTMP,"STOIND","LOCATION")=""
- End DoDot:1
- +7 IF '$TEST
- SET LOCATION=0
- +8 ;
- +9 ;CSSCR is true if we want selected clinics.
- +10 IF $PIECE($GET(PXRRLCSC),U,1)="CS"
- SET CSSCR=1
- +11 IF '$TEST
- SET CSSCR=0
- +12 ;
- +13 ;CLINIC is true if we want clinics instead of hospital locations.
- +14 IF $PIECE($GET(PXRRLCSC),U,1)["C"
- Begin DoDot:1
- +15 SET CLINIC=1
- +16 SET BYCLOC=$SELECT($PIECE(PXRRLCSC,U,3):1,1:0)
- End DoDot:1
- +17 IF '$TEST
- Begin DoDot:1
- +18 SET CLINIC=0
- +19 SET BYCLOC=0
- End DoDot:1
- +20 ;
- +21 ;HSSCR is true if we want selected hospital locations.
- +22 IF $PIECE($GET(PXRRLCSC),U,1)="HS"
- SET HSSCR=1
- +23 IF '$TEST
- SET HSSCR=0
- +24 ;
- +25 ;PROVIDER is true if we select by provider.
- +26 IF $PIECE($GET(PXRRWLSC),U,1)="P"
- Begin DoDot:1
- +27 SET PROVIDER=1
- +28 SET ^XTMP(PXRRXTMP,"STOIND","PROVIDER")=""
- End DoDot:1
- +29 IF '$TEST
- SET PROVIDER=0
- +30 ;
- +31 ;PRVSCR is true if we have selected providers.
- +32 IF $DATA(NPL)
- SET PRVSCR=1
- +33 IF '$TEST
- SET PRVSCR=0
- +34 ;
- +35 ;Allow the task to be cleaned up upon successful completion.
- +36 SET ZTREQ="@"
- +37 QUIT
- +38 ;
- VISIT2 ; Migrated from PXRRWLSE
- +1 ;Clinic screen.
- +2 IF CSSCR
- Begin DoDot:1
- +3 SET FOUND=0
- +4 SET CLINIEN=$PIECE(VISIT,U,8)
- +5 FOR IC=1:1:NCS
- IF $PIECE(PXRRCS(IC),U,2)=CLINIEN
- Begin DoDot:2
- +6 ;Mark the clinic as being matched.
- +7 SET $PIECE(PXRRCS(IC),U,4)="M"
- +8 SET HLOCNAM=$PIECE(^DIC(40.7,CLINIEN,0),U,1)_U_CLINIEN
- +9 SET FOUND=1
- End DoDot:2
- QUIT
- End DoDot:1
- +10 ;
- +11 ;Hospital location screen.
- +12 IF HSSCR
- Begin DoDot:1
- +13 SET FOUND=0
- +14 SET HLOCIEN=$PIECE(VISIT,U,22)
- +15 FOR IC=1:1:NHL
- IF $PIECE(PXRRLCHL(IC),U,2)=HLOCIEN
- Begin DoDot:2
- +16 ;Mark the hospital location as being matched.
- +17 SET $PIECE(PXRRLCHL(IC),U,4)="M"
- +18 SET CLINIEN=$PIECE(^SC(HLOCIEN,0),U,7)
- +19 SET HLOCNAM=$PIECE(^SC(HLOCIEN,0),U,1)_U_HLOCIEN
- +20 SET FOUND=1
- End DoDot:2
- QUIT
- End DoDot:1
- +21 QUIT
- +22 ;
- PRV2 ; Migrated from PXRRWLSE
- +1 ;At this point we have an encounter that can be added to the list.
- +2 ;
- +3 ;Get the hospital location or clinic and stop code.
- +4 IF $LENGTH(HLOCNAM)'>0
- Begin DoDot:1
- +5 IF 'CLINIC
- Begin DoDot:2
- +6 ;Get the hospital location.
- +7 SET HLOCIEN=$PIECE(VISIT,U,22)
- +8 IF HLOCIEN>0
- Begin DoDot:3
- +9 SET HLOCNAM=$PIECE(^SC(HLOCIEN,0),U,1)_U_HLOCIEN
- +10 SET CLINIEN=$PIECE(^SC(HLOCIEN,0),U,7)
- End DoDot:3
- +11 IF '$TEST
- Begin DoDot:3
- +12 ;No hospital location, see if we can at least find the clinic.
- +13 SET HLOCNAM="Unknown"
- +14 SET CLINIEN=$PIECE(VISIT,U,8)
- End DoDot:3
- End DoDot:2
- +15 IF '$TEST
- Begin DoDot:2
- +16 ;Get the clinic.
- +17 SET CLINIEN=$PIECE(VISIT,U,8)
- +18 IF $DATA(^DIC(40.7,CLINIEN,0))[0
- SET CLINIEN=0
- +19 IF CLINIEN>0
- SET HLOCNAM=$PIECE(^DIC(40.7,CLINIEN,0),U,1)_U_CLINIEN
- +20 IF '$TEST
- SET HLOCNAM="Unknown"
- End DoDot:2
- End DoDot:1
- +21 ;
- +22 ;Append the clinic stop code.
- +23 IF CLINIEN>0
- SET HLOCNAM=HLOCNAM_U_$PIECE(^DIC(40.7,CLINIEN,0),U,2)
- +24 ;
- +25 IF LOCATION
- SET STOIND=HLOCNAM
- +26 ;Make sure that all providers are stored with the person class.
- +27 IF PROVIDER
- Begin DoDot:1
- +28 IF $PIECE(PPNAME,U,3)=""
- Begin DoDot:2
- +29 SET PCLASS=$$OCCUP^PXBGPRV(NEWPIEN,BD,"",1,"")
- +30 SET PPNAME=PPNAME_U_$PIECE(PCLASS,U,7)
- End DoDot:2
- +31 SET STOIND=PPNAME_U
- +32 IF PXRRPRLL
- SET STOIND=STOIND_HLOCNAM
- End DoDot:1
- +33 ;
- +34 ;Save the patient information.
- +35 SET TEMP=^AUPNVSIT(VIEN,0)
- +36 SET DATE=$PIECE(TEMP,U,1)
- +37 SET DAY=$PIECE(DATE,".",1)
- +38 SET DFN=$PIECE(TEMP,U,5)
- +39 ;Get the patient status, 1 is in, 0 is out.
- +40 SET INOUT=$PIECE(VISIT150,U,2)
- +41 IF $LENGTH(INOUT)=0
- SET INOUT=-1
- +42 QUIT
- +43 ;
- GC2 ; Migrated from PXRRWLSE
- +1 SET CPT=$PIECE(^AUPNVCPT(IC,0),U,1)
- +2 IF +CPT'>0
- Begin DoDot:1
- +3 WRITE !,"WARNING AUPNVCPT IS CORRUPTED! ENTRY ",IC," does not have a CPT code."
- +4 SET CPT=0
- End DoDot:1
- +5 IF '$TEST
- Begin DoDot:1
- +6 SET EM=$PIECE($GET(^IBE(357.69,CPT,0)),U,5)
- +7 IF EM=""
- SET EM=0
- End DoDot:1
- +8 ;
- +9 ;Increment the CPT and E&M counts.
- +10 SET ^XTMP(PXRRXTMP,FACILITY,STOIND,"CPT")=$GET(^XTMP(PXRRXTMP,FACILITY,STOIND,"CPT"))+1
- +11 SET ^XTMP(PXRRXTMP,FACILITY,STOIND,"EM",EM)=$GET(^XTMP(PXRRXTMP,FACILITY,STOIND,"EM",EM))+1
- +12 ;Calculate totals by facility for multiple provider encounters.
- +13 IF MULTPR=1
- Begin DoDot:1
- +14 DO FTOT(FACILITY,"&&","CPT")
- +15 DO FTOT1(FACILITY,"&&","EM",EM)
- End DoDot:1
- +16 QUIT
- +17 ;
- +18 ;Totals for multiple provider encounters - used in PXRRWLPR.
- FTOT(FL,FLD,FL1) ;
- +1 SET ^XTMP(PXRRXTMP,FL,FLD,FL1)=$GET(^XTMP(PXRRXTMP,FL,FLD,FL1))+1
- +2 QUIT
- FTOT1(FL,FLD,FL1,FL2) ;
- +1 SET ^XTMP(PXRRXTMP,FL,FLD,FL1,FL2)=$GET(^XTMP(PXRRXTMP,FL,FLD,FL1,FL2))+1
- +2 QUIT
- +3 ;
- NF2 ; Migrated from PXRRWLSE
- +1 ;Count the total unique patients and visits at the facility.
- +2 SET TOTUNIQ=0
- +3 SET TOTVIS=0
- +4 SET VISITS(0)=0
- +5 SET VISITS(1)=0
- +6 SET DFN=0
- +7 FOR
- SET DFN=$ORDER(^TMP(PXRRXTMP,$JOB,FACILITY,"&","PATIENT",DFN))
- IF DFN=""
- QUIT
- Begin DoDot:1
- +8 SET TOTUNIQ=TOTUNIQ+1
- +9 SET DAY=""
- +10 FOR
- SET DAY=$ORDER(^TMP(PXRRXTMP,$JOB,FACILITY,"&","PATIENT",DFN,DAY))
- IF DAY=""
- QUIT
- Begin DoDot:2
- +11 SET TOTVIS=TOTVIS+1
- +12 SET INOUT=-1
- +13 FOR
- SET INOUT=$ORDER(^TMP(PXRRXTMP,$JOB,FACILITY,"&","PATIENT",DFN,DAY,INOUT))
- IF INOUT=""
- QUIT
- Begin DoDot:3
- +14 SET VISITS(INOUT)=VISITS(INOUT)+1
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +15 SET ^XTMP(PXRRXTMP,FACILITY,"&","TOTUNIQ")=TOTUNIQ
- +16 SET ^XTMP(PXRRXTMP,FACILITY,"&","TOTVIS")=TOTVIS
- +17 SET ^XTMP(PXRRXTMP,FACILITY,"&","TOTINOUT",0)=VISITS(0)
- +18 SET ^XTMP(PXRRXTMP,FACILITY,"&","TOTINOUT",1)=VISITS(1)
- +19 QUIT
- +20 ;
- CLOC2 ; Migrated from PXRRWLSE
- +1 ;Save this to count the total number of unique patients and
- +2 ;the total unique in/out patient encounters.
- +3 SET ^TMP(PXRRXTMP,$JOB,FACILITY,"&","PATIENT",DFN,DAY,INOUT)=""
- +4 ;
- +5 ;Save this to count the unique in/out patient encounters.
- +6 SET ^TMP(PXRRXTMP,$JOB,FACILITY,STOIND,"PATIENT",DFN,DAY,INOUT)=""
- +7 ;
- +8 ;Save this information so we can search for appointments in PXRRWLSA.
- +9 SET ^XTMP(PXRRXTMP,FACILITY,STOIND,"PATIENT",DFN,DATE,VIEN)=MULTPR
- +10 ;
- +11 ;Increment the encounter count.
- +12 SET ^XTMP(PXRRXTMP,FACILITY,STOIND,"TOTENC")=$GET(^XTMP(PXRRXTMP,FACILITY,STOIND,"TOTENC"))+1
- +13 ;
- +14 ;Calculate totals by facility for multiple provider encounters.
- +15 IF MULTPR=1
- DO FTOT(FACILITY,"&&","TOTENC")
- +16 QUIT