- PXRRLCSC ;ISL/PKR - PCE reports locations selection criteria routines. ;4/8/97
- ;;1.0;PCE PATIENT CARE ENCOUNTER;**12,18,20,72**;Aug 12, 1996
- ;
- ;=======================================================================
- BYLOC ;Ask if the report should be broken down by clinic location or clinic
- ;stop
- N X,Y
- K DIROUT,DIRUT,DTOUT,DUOUT
- S DIR(0)="S"_U_"L:Location;"
- S DIR(0)=DIR(0)_"S:Stop"
- S DIR("A")="Do you want totals by Clinic Location or Clinic Stop?"
- S DIR("B")="L"
- D ^DIR K DIR
- I Y="L" S $P(PXRRLCSC,U,3)=1
- I $D(DIROUT) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- Q
- ;
- ;=======================================================================
- CSTOP ;Get a list of clinic stop codes.
- K DTOUT,DUOUT
- S NCS=0
- S DIC("A")="Select CLINIC STOP: "
- W !
- NSTOP ;Select the clinic stop codes.
- S DIC=40.7
- S DIC(0)="AEMQZ"
- I NCS'<1 S DIC("A")="Select another CLINIC STOP: "
- D ^DIC K DIC
- I X=(U_U) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- I (NCS=0)&(+Y=-1) W !,"You must select a clinic stop!" G CSTOP
- I +Y'=-1 D G NSTOP
- . S NCS=NCS+1
- .;Save the external form of the name, the IEN, and the stop code.
- . S PXRRCS(NCS)=$P(Y(0,0),U,1)_U_$P(Y,U,1)_U_$P(Y(0),U,2)
- ;Sort the clinic stop list into alphabetical order.
- S NCS=$$SORT^PXRRUTIL(NCS,"PXRRCS",2)
- Q
- ;
- ;=======================================================================
- FACILITY ;Get the facility list.
- N IC,STATION,X,Y
- K DIRUT,DTOUT,DUOUT
- S NFAC=0
- S DIC("B")=+$P($$SITE^VASITE,U,3)
- S DIC("A")="Select FACILITY: "
- W !
- FAC ;Select the facilities.
- S DIC=4
- S DIC(0)="AEMQZ"
- I NFAC'<1 S DIC("A")="Select another FACILITY: "
- D ^DIC K DIC
- I X=(U_U) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- I +Y'=-1 D G FAC
- . S NFAC=NFAC+1
- . S PXRRFAC(NFAC)=Y_U_Y(0,0)
- ;
- ;Save the facility names and station.
- ;We will probably need a DBIA to read DIC(4.
- F IC=1:1:NFAC D
- . S X=$P(PXRRFAC(IC),U,1)
- . S STATION=$P($G(^DIC(4,X,99)),U,1)
- . S PXRRFACN(X)=$P(PXRRFAC(IC),U,2)_U_STATION
- ;
- ;Ask user whether they want to display non-va sites
- S DIR(0)="Y"_U_"N:No;"
- S DIR(0)=DIR(0)_"Y:Yes"
- W !
- S DIR("A")="Do you want to display encounters at Non-VA sites "
- S DIR("B")="N"
- D ^DIR K DIR
- I +Y=1 D
- . S NFAC=NFAC+1
- . S PXRRFACN("*")="NON-VA^*"
- . S PXRRFAC(NFAC)="*^NON-VA^NON-VA"
- . S NONVA=1
- ;
- ;Sort the facility list into alphabetical order.
- S NFAC=$$SORT^PXRRUTIL(NFAC,"PXRRFAC",2)
- Q
- ;
- ;=======================================================================
- HLOC ;Build a list of hospital locations.
- N IEN,SC,X,Y
- K DTOUT,DUOUT
- S NHL=0
- S DIC="^SC("
- S DIC(0)="AEQMZ"
- S DIC("A")="Select HOSPITAL LOCATION: "
- W !
- NHLOC I NHL'<1 S DIC("A")="Select another HOSPITAL LOCATION: "
- D ^DIC
- I X=(U_U) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- I +Y'=-1 D G NHLOC
- . S NHL=NHL+1
- . S IEN=$P(Y,U,1)
- .;Get the stop code.
- .;These will probably require a DBIA.
- . S X=$P(^SC(IEN,0),U,7)
- . I +X>0 S SC=$P(^DIC(40.7,X,0),U,2)
- . E S SC="Unknown"
- . I $L(SC)=0 S SC="Unknown"
- .;Save the IEN, the external form of the name, and the stop code.
- . S PXRRLCHL(NHL)=IEN_U_$P(Y(0,0),U,1)_U_SC
- .;Save the external form of the name, then IEN, and the stop code.
- . S PXRRLCHL(NHL)=$P(Y(0,0),U,1)_U_IEN_U_SC
- E K DIC
- I $D(DUOUT) G HLOC
- I (NHL=0)&(+Y=-1) W !,"You must select a hospital location!" G HLOC
- ;Sort the hospital location list into alphabetical order.
- S NHL=$$SORT^PXRRUTIL(NHL,"PXRRLCHL",2)
- Q
- ;
- ;=======================================================================
- LOC(ADEF,BDEF) ;Establish the location selection criteria.
- N X,Y
- LOC0 K DIROUT,DIRUT,DTOUT,DUOUT
- S DIR(0)="S"_U_"HA:All Hospital Locations (with encounters);"
- S DIR(0)=DIR(0)_"HS:Selected Hospital Locations;"
- S DIR(0)=DIR(0)_"CA:All Clinic Stops (with encounters);"
- S DIR(0)=DIR(0)_"CS:Selected Clinic Stops"
- S DIR("A")=ADEF
- S DIR("B")=BDEF
- D ^DIR K DIR
- I $D(DIROUT) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- S PXRRLCSC=Y_U_Y(0)
- ;
- ;If locations are to be selected individually get the list.
- I Y="HS" D HLOC
- I $D(DTOUT) Q
- I $D(DUOUT) G LOC0
- I Y="CS" D CSTOP
- I $D(DTOUT) Q
- I $D(DUOUT) G LOC0
- Q
- ;
- ;=======================================================================
- NEWPAGE ;Allow the user to decide if they want each location to start on a new
- ;page.
- N X,Y
- K DIROUT,DIRUT,DTOUT,DUOUT
- S DIR(0)="YA0"
- S DIR("A")="Want to start each location on a new page: "
- S DIR("B")="Y"
- W !
- D ^DIR K DIR
- I $D(DIROUT) S DTOUT=1
- I $D(DTOUT)!($D(DUOUT)) Q
- S PXRRLCNP=Y_U_Y(0)
- Q
- ;
- PXRRLCSC ;ISL/PKR - PCE reports locations selection criteria routines. ;4/8/97
- +1 ;;1.0;PCE PATIENT CARE ENCOUNTER;**12,18,20,72**;Aug 12, 1996
- +2 ;
- +3 ;=======================================================================
- BYLOC ;Ask if the report should be broken down by clinic location or clinic
- +1 ;stop
- +2 NEW X,Y
- +3 KILL DIROUT,DIRUT,DTOUT,DUOUT
- +4 SET DIR(0)="S"_U_"L:Location;"
- +5 SET DIR(0)=DIR(0)_"S:Stop"
- +6 SET DIR("A")="Do you want totals by Clinic Location or Clinic Stop?"
- +7 SET DIR("B")="L"
- +8 DO ^DIR
- KILL DIR
- +9 IF Y="L"
- SET $PIECE(PXRRLCSC,U,3)=1
- +10 IF $DATA(DIROUT)
- SET DTOUT=1
- +11 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +12 QUIT
- +13 ;
- +14 ;=======================================================================
- CSTOP ;Get a list of clinic stop codes.
- +1 KILL DTOUT,DUOUT
- +2 SET NCS=0
- +3 SET DIC("A")="Select CLINIC STOP: "
- +4 WRITE !
- NSTOP ;Select the clinic stop codes.
- +1 SET DIC=40.7
- +2 SET DIC(0)="AEMQZ"
- +3 IF NCS'<1
- SET DIC("A")="Select another CLINIC STOP: "
- +4 DO ^DIC
- KILL DIC
- +5 IF X=(U_U)
- SET DTOUT=1
- +6 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +7 IF (NCS=0)&(+Y=-1)
- WRITE !,"You must select a clinic stop!"
- GOTO CSTOP
- +8 IF +Y'=-1
- Begin DoDot:1
- +9 SET NCS=NCS+1
- +10 ;Save the external form of the name, the IEN, and the stop code.
- +11 SET PXRRCS(NCS)=$PIECE(Y(0,0),U,1)_U_$PIECE(Y,U,1)_U_$PIECE(Y(0),U,2)
- End DoDot:1
- GOTO NSTOP
- +12 ;Sort the clinic stop list into alphabetical order.
- +13 SET NCS=$$SORT^PXRRUTIL(NCS,"PXRRCS",2)
- +14 QUIT
- +15 ;
- +16 ;=======================================================================
- FACILITY ;Get the facility list.
- +1 NEW IC,STATION,X,Y
- +2 KILL DIRUT,DTOUT,DUOUT
- +3 SET NFAC=0
- +4 SET DIC("B")=+$PIECE($$SITE^VASITE,U,3)
- +5 SET DIC("A")="Select FACILITY: "
- +6 WRITE !
- FAC ;Select the facilities.
- +1 SET DIC=4
- +2 SET DIC(0)="AEMQZ"
- +3 IF NFAC'<1
- SET DIC("A")="Select another FACILITY: "
- +4 DO ^DIC
- KILL DIC
- +5 IF X=(U_U)
- SET DTOUT=1
- +6 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +7 IF +Y'=-1
- Begin DoDot:1
- +8 SET NFAC=NFAC+1
- +9 SET PXRRFAC(NFAC)=Y_U_Y(0,0)
- End DoDot:1
- GOTO FAC
- +10 ;
- +11 ;Save the facility names and station.
- +12 ;We will probably need a DBIA to read DIC(4.
- +13 FOR IC=1:1:NFAC
- Begin DoDot:1
- +14 SET X=$PIECE(PXRRFAC(IC),U,1)
- +15 SET STATION=$PIECE($GET(^DIC(4,X,99)),U,1)
- +16 SET PXRRFACN(X)=$PIECE(PXRRFAC(IC),U,2)_U_STATION
- End DoDot:1
- +17 ;
- +18 ;Ask user whether they want to display non-va sites
- +19 SET DIR(0)="Y"_U_"N:No;"
- +20 SET DIR(0)=DIR(0)_"Y:Yes"
- +21 WRITE !
- +22 SET DIR("A")="Do you want to display encounters at Non-VA sites "
- +23 SET DIR("B")="N"
- +24 DO ^DIR
- KILL DIR
- +25 IF +Y=1
- Begin DoDot:1
- +26 SET NFAC=NFAC+1
- +27 SET PXRRFACN("*")="NON-VA^*"
- +28 SET PXRRFAC(NFAC)="*^NON-VA^NON-VA"
- +29 SET NONVA=1
- End DoDot:1
- +30 ;
- +31 ;Sort the facility list into alphabetical order.
- +32 SET NFAC=$$SORT^PXRRUTIL(NFAC,"PXRRFAC",2)
- +33 QUIT
- +34 ;
- +35 ;=======================================================================
- HLOC ;Build a list of hospital locations.
- +1 NEW IEN,SC,X,Y
- +2 KILL DTOUT,DUOUT
- +3 SET NHL=0
- +4 SET DIC="^SC("
- +5 SET DIC(0)="AEQMZ"
- +6 SET DIC("A")="Select HOSPITAL LOCATION: "
- +7 WRITE !
- NHLOC IF NHL'<1
- SET DIC("A")="Select another HOSPITAL LOCATION: "
- +1 DO ^DIC
- +2 IF X=(U_U)
- SET DTOUT=1
- +3 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +4 IF +Y'=-1
- Begin DoDot:1
- +5 SET NHL=NHL+1
- +6 SET IEN=$PIECE(Y,U,1)
- +7 ;Get the stop code.
- +8 ;These will probably require a DBIA.
- +9 SET X=$PIECE(^SC(IEN,0),U,7)
- +10 IF +X>0
- SET SC=$PIECE(^DIC(40.7,X,0),U,2)
- +11 IF '$TEST
- SET SC="Unknown"
- +12 IF $LENGTH(SC)=0
- SET SC="Unknown"
- +13 ;Save the IEN, the external form of the name, and the stop code.
- +14 SET PXRRLCHL(NHL)=IEN_U_$PIECE(Y(0,0),U,1)_U_SC
- +15 ;Save the external form of the name, then IEN, and the stop code.
- +16 SET PXRRLCHL(NHL)=$PIECE(Y(0,0),U,1)_U_IEN_U_SC
- End DoDot:1
- GOTO NHLOC
- +17 IF '$TEST
- KILL DIC
- +18 IF $DATA(DUOUT)
- GOTO HLOC
- +19 IF (NHL=0)&(+Y=-1)
- WRITE !,"You must select a hospital location!"
- GOTO HLOC
- +20 ;Sort the hospital location list into alphabetical order.
- +21 SET NHL=$$SORT^PXRRUTIL(NHL,"PXRRLCHL",2)
- +22 QUIT
- +23 ;
- +24 ;=======================================================================
- LOC(ADEF,BDEF) ;Establish the location selection criteria.
- +1 NEW X,Y
- LOC0 KILL DIROUT,DIRUT,DTOUT,DUOUT
- +1 SET DIR(0)="S"_U_"HA:All Hospital Locations (with encounters);"
- +2 SET DIR(0)=DIR(0)_"HS:Selected Hospital Locations;"
- +3 SET DIR(0)=DIR(0)_"CA:All Clinic Stops (with encounters);"
- +4 SET DIR(0)=DIR(0)_"CS:Selected Clinic Stops"
- +5 SET DIR("A")=ADEF
- +6 SET DIR("B")=BDEF
- +7 DO ^DIR
- KILL DIR
- +8 IF $DATA(DIROUT)
- SET DTOUT=1
- +9 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +10 SET PXRRLCSC=Y_U_Y(0)
- +11 ;
- +12 ;If locations are to be selected individually get the list.
- +13 IF Y="HS"
- DO HLOC
- +14 IF $DATA(DTOUT)
- QUIT
- +15 IF $DATA(DUOUT)
- GOTO LOC0
- +16 IF Y="CS"
- DO CSTOP
- +17 IF $DATA(DTOUT)
- QUIT
- +18 IF $DATA(DUOUT)
- GOTO LOC0
- +19 QUIT
- +20 ;
- +21 ;=======================================================================
- NEWPAGE ;Allow the user to decide if they want each location to start on a new
- +1 ;page.
- +2 NEW X,Y
- +3 KILL DIROUT,DIRUT,DTOUT,DUOUT
- +4 SET DIR(0)="YA0"
- +5 SET DIR("A")="Want to start each location on a new page: "
- +6 SET DIR("B")="Y"
- +7 WRITE !
- +8 DO ^DIR
- KILL DIR
- +9 IF $DATA(DIROUT)
- SET DTOUT=1
- +10 IF $DATA(DTOUT)!($DATA(DUOUT))
- QUIT
- +11 SET PXRRLCNP=Y_U_Y(0)
- +12 QUIT
- +13 ;