SPNCMR3 ;HIRMFO/RM,WAA-PATIENT CENSUS CALCULATION ; 10/9/92
 ;;2.0;Spinal Cord Dysfunction;;01/02/1997
EN1 ;FINDS ALL PATIENTS WHO HAVE BEEN ADMITTED WITH IN A DATE RANGE
 I SPNSEL["3" F SPNDATE=(SPNST-.0000001):0 S SPNDATE=$O(^DGPM("AMV1",SPNDATE)) Q:SPNDATE'>0!(SPNDATE>SPNED)  D
 .F SPNDFN=0:0 S SPNDFN=$O(^DGPM("AMV1",SPNDATE,SPNDFN)) Q:SPNDFN'>0  F SPNMOV=0:0 S SPNMOV=$O(^DGPM("AMV1",SPNDATE,SPNDFN,SPNMOV)) Q:SPNMOV'>0  D
 ..S WLOC=$P($G(^DGPM(SPNMOV,0)),"^",6),HLOC=+$G(^DIC(42,+WLOC,44)) Q:'HLOC
 ..S SPNX=HLOC D SETPT
 ..Q
 .Q
EN2 ;THIS WILL FIND ALL CURRENT PATIENTS
 I SPNSEL["1" D
 .S SPNX=0
 .F  S SPNX=$O(^TMP($J,"SPNWC",SPNX)) Q:SPNX<1  D
 ..S WLOC=$G(^SC(SPNX,42)) Q:+WLOC<1
 ..S HLOC=$P($G(^DIC(42,+WLOC,0)),U) Q:HLOC=""
 ..S SPNDFN=0 N SPNDT F  S SPNDFN=$O(^DPT("CN",HLOC,SPNDFN)) Q:SPNDFN<1  S SPNDATE="CURRENT" D SETPT
 ..Q
 .Q
 K SPNDATE,SPNX,SPNNUM,HLOC,WLOC,SPNDFN,SPNMOV Q
SETPT ;This entry point is to set the patient data in the TMP global.
 N SPNTMP
 I '$D(^TMP($J,"SPNWC",SPNX)) Q
 I $D(^TMP($J,"SPNWC","B",SPNDFN,SPNX)) Q
 S ^TMP($J,"SPNWC",SPNX,SPNDATE,SPNDFN)=""
 S ^TMP($J,"SPNWC","B",SPNDFN,SPNX)=""
 S SPNTMP(1)=$P(^SC(SPNX,0),U,2)
 S SPNTMP(2)=$P(^SC(SPNX,0),U)
 S SPNTMP(3)=$S(SPNTMP(1)'="":SPNTMP(1),1:SPNTMP(2))
 S ^TMP($J,"SPNWC","C",SPNTMP(3),SPNX)=""
 Q
