Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXRRLCSC

PXRRLCSC.m

Go to the documentation of this file.
  1. 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
  1. ;
  1. ;=======================================================================
  1. BYLOC ;Ask if the report should be broken down by clinic location or clinic
  1. ;stop
  1. N X,Y
  1. K DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="S"_U_"L:Location;"
  1. S DIR(0)=DIR(0)_"S:Stop"
  1. S DIR("A")="Do you want totals by Clinic Location or Clinic Stop?"
  1. S DIR("B")="L"
  1. D ^DIR K DIR
  1. I Y="L" S $P(PXRRLCSC,U,3)=1
  1. I $D(DIROUT) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. Q
  1. ;
  1. ;=======================================================================
  1. CSTOP ;Get a list of clinic stop codes.
  1. K DTOUT,DUOUT
  1. S NCS=0
  1. S DIC("A")="Select CLINIC STOP: "
  1. W !
  1. NSTOP ;Select the clinic stop codes.
  1. S DIC=40.7
  1. S DIC(0)="AEMQZ"
  1. I NCS'<1 S DIC("A")="Select another CLINIC STOP: "
  1. D ^DIC K DIC
  1. I X=(U_U) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. I (NCS=0)&(+Y=-1) W !,"You must select a clinic stop!" G CSTOP
  1. I +Y'=-1 D G NSTOP
  1. . S NCS=NCS+1
  1. .;Save the external form of the name, the IEN, and the stop code.
  1. . S PXRRCS(NCS)=$P(Y(0,0),U,1)_U_$P(Y,U,1)_U_$P(Y(0),U,2)
  1. ;Sort the clinic stop list into alphabetical order.
  1. S NCS=$$SORT^PXRRUTIL(NCS,"PXRRCS",2)
  1. Q
  1. ;
  1. ;=======================================================================
  1. FACILITY ;Get the facility list.
  1. N IC,STATION,X,Y
  1. K DIRUT,DTOUT,DUOUT
  1. S NFAC=0
  1. S DIC("B")=+$P($$SITE^VASITE,U,3)
  1. S DIC("A")="Select FACILITY: "
  1. W !
  1. FAC ;Select the facilities.
  1. S DIC=4
  1. S DIC(0)="AEMQZ"
  1. I NFAC'<1 S DIC("A")="Select another FACILITY: "
  1. D ^DIC K DIC
  1. I X=(U_U) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. I +Y'=-1 D G FAC
  1. . S NFAC=NFAC+1
  1. . S PXRRFAC(NFAC)=Y_U_Y(0,0)
  1. ;
  1. ;Save the facility names and station.
  1. ;We will probably need a DBIA to read DIC(4.
  1. F IC=1:1:NFAC D
  1. . S X=$P(PXRRFAC(IC),U,1)
  1. . S STATION=$P($G(^DIC(4,X,99)),U,1)
  1. . S PXRRFACN(X)=$P(PXRRFAC(IC),U,2)_U_STATION
  1. ;
  1. ;Ask user whether they want to display non-va sites
  1. S DIR(0)="Y"_U_"N:No;"
  1. S DIR(0)=DIR(0)_"Y:Yes"
  1. W !
  1. S DIR("A")="Do you want to display encounters at Non-VA sites "
  1. S DIR("B")="N"
  1. D ^DIR K DIR
  1. I +Y=1 D
  1. . S NFAC=NFAC+1
  1. . S PXRRFACN("*")="NON-VA^*"
  1. . S PXRRFAC(NFAC)="*^NON-VA^NON-VA"
  1. . S NONVA=1
  1. ;
  1. ;Sort the facility list into alphabetical order.
  1. S NFAC=$$SORT^PXRRUTIL(NFAC,"PXRRFAC",2)
  1. Q
  1. ;
  1. ;=======================================================================
  1. HLOC ;Build a list of hospital locations.
  1. N IEN,SC,X,Y
  1. K DTOUT,DUOUT
  1. S NHL=0
  1. S DIC="^SC("
  1. S DIC(0)="AEQMZ"
  1. S DIC("A")="Select HOSPITAL LOCATION: "
  1. W !
  1. NHLOC I NHL'<1 S DIC("A")="Select another HOSPITAL LOCATION: "
  1. D ^DIC
  1. I X=(U_U) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. I +Y'=-1 D G NHLOC
  1. . S NHL=NHL+1
  1. . S IEN=$P(Y,U,1)
  1. .;Get the stop code.
  1. .;These will probably require a DBIA.
  1. . S X=$P(^SC(IEN,0),U,7)
  1. . I +X>0 S SC=$P(^DIC(40.7,X,0),U,2)
  1. . E S SC="Unknown"
  1. . I $L(SC)=0 S SC="Unknown"
  1. .;Save the IEN, the external form of the name, and the stop code.
  1. . S PXRRLCHL(NHL)=IEN_U_$P(Y(0,0),U,1)_U_SC
  1. .;Save the external form of the name, then IEN, and the stop code.
  1. . S PXRRLCHL(NHL)=$P(Y(0,0),U,1)_U_IEN_U_SC
  1. E K DIC
  1. I $D(DUOUT) G HLOC
  1. I (NHL=0)&(+Y=-1) W !,"You must select a hospital location!" G HLOC
  1. ;Sort the hospital location list into alphabetical order.
  1. S NHL=$$SORT^PXRRUTIL(NHL,"PXRRLCHL",2)
  1. Q
  1. ;
  1. ;=======================================================================
  1. LOC(ADEF,BDEF) ;Establish the location selection criteria.
  1. N X,Y
  1. LOC0 K DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="S"_U_"HA:All Hospital Locations (with encounters);"
  1. S DIR(0)=DIR(0)_"HS:Selected Hospital Locations;"
  1. S DIR(0)=DIR(0)_"CA:All Clinic Stops (with encounters);"
  1. S DIR(0)=DIR(0)_"CS:Selected Clinic Stops"
  1. S DIR("A")=ADEF
  1. S DIR("B")=BDEF
  1. D ^DIR K DIR
  1. I $D(DIROUT) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. S PXRRLCSC=Y_U_Y(0)
  1. ;
  1. ;If locations are to be selected individually get the list.
  1. I Y="HS" D HLOC
  1. I $D(DTOUT) Q
  1. I $D(DUOUT) G LOC0
  1. I Y="CS" D CSTOP
  1. I $D(DTOUT) Q
  1. I $D(DUOUT) G LOC0
  1. Q
  1. ;
  1. ;=======================================================================
  1. NEWPAGE ;Allow the user to decide if they want each location to start on a new
  1. ;page.
  1. N X,Y
  1. K DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="YA0"
  1. S DIR("A")="Want to start each location on a new page: "
  1. S DIR("B")="Y"
  1. W !
  1. D ^DIR K DIR
  1. I $D(DIROUT) S DTOUT=1
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. S PXRRLCNP=Y_U_Y(0)
  1. Q
  1. ;