156 lines
5.8 KiB
Mathematica
156 lines
5.8 KiB
Mathematica
SCDXPOV3 ; ALB/SCK - VISIT REPORT BY NPCDB TRANSMISSION STATUS ; 05 Oct 98 8:38 PM
|
|
;;5.3;Scheduling;**73,159,173**;AUG 13, 1993
|
|
Q
|
|
VISIT(SCXDT,SCXP,SCXE,SCXET,SCXV,SCXC) ; Update visit count for this encounter
|
|
; Input:
|
|
; SCXDT - Visit date
|
|
; SCXP - Patients DFN
|
|
; SCXE - Vet Eligibility status of encounter
|
|
; SCXET - Vet. or Non-Vet status
|
|
; SCXV - Category of visit
|
|
; SCXC - C&P status of encounter
|
|
;
|
|
; Variables:
|
|
; SCHL - Current Hierarchy level
|
|
; L1 - Local variable
|
|
;
|
|
N L1,SCHL
|
|
;
|
|
I $D(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)) D
|
|
. S SCHL=$P(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP),U,3)
|
|
. S L1=$$ELGPRI^SCDXPOV2(SCXE,SCHL)
|
|
. S:$P(L1,U,2) ^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)=SCXE_U_SCXET_U_$P(L1,U)
|
|
E S ^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)=SCXE_U_SCXET_U_$P($$ELGPRI^SCDXPOV2(SCXE,0),U)
|
|
;
|
|
I $D(^TMP("SCDXV",$J,"COV",SCXDT,SCXP)) D
|
|
. S SCHL=$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U,2)
|
|
. S L1=$$COVPRI^SCDXPOV2(SCXV,SCHL)
|
|
. S:$P(L1,U,2) ^TMP("SCDXV",$J,"COV",SCXDT,SCXP)=SCXV_U_$P(L1,U)
|
|
E S ^TMP("SCDXV",$J,"COV",SCXDT,SCXP)=SCXV_U_$P($$COVPRI^SCDXPOV2(SCXV,0),U)
|
|
;
|
|
I SCXC,'$D(^TMP("SCDXV",$J,"CP",SCXDT,SCXP)) D
|
|
. S ^TMP("SCDXV",$J,"CP",SCXDT,SCXP)=1
|
|
Q
|
|
;
|
|
WRT ; Call procedures to initialize report data global, build the report global, and then print the report.
|
|
;
|
|
; Variables
|
|
; DVN - Facility number from VASITE
|
|
; DNAME - Facility name from VASITE
|
|
;
|
|
N SDBDASH,SDASH,DNAME,DVN
|
|
S $P(SDBDASH,"=",75)="",$P(SDASH,"-",15)=""
|
|
U IO
|
|
;
|
|
S DVN=$P($$SITE^VASITE(SCXBEG),U,3),DNAME=$P($$SITE^VASITE(SCXBEG),U,2)
|
|
D INIT^SCDXPOV("VISITS"),BLDRPT,VISRPT
|
|
Q
|
|
;
|
|
BLDRPT ; Build data global for report. Order through date/patient TMP global, and count the number of unique
|
|
; visits. Increment the appropriate report data global.
|
|
;
|
|
; Variables
|
|
; SCXDT - Date the Visit occurred (Encounter date)
|
|
; SCXP - DFN of patient for this encounter
|
|
; SCX - Node of TMP global visits are being counted from
|
|
; LV1 - Local variable for incremneting report data global
|
|
;
|
|
N SCXDT,SCXP,SCX,LV1
|
|
S SCXDT=""
|
|
; Count visits for Vet./Non-Vet. eligibility
|
|
F S SCXDT=$O(^TMP("SCDXV",$J,"ELG",SCXDT)) Q:SCXDT'>0 D
|
|
. S SCXP="" F S SCXP=$O(^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)) Q:'SCXP D
|
|
.. S SCX=^TMP("SCDXV",$J,"ELG",SCXDT,SCXP)
|
|
.. S LV1=$P($G(^TMP("SCDXPOV",$J,"VISITS",$S($P(SCX,U,2)="Y":"VELIG",1:"NVELIG"),$P(SCX,U))),U)
|
|
.. S $P(^TMP("SCDXPOV",$J,"VISITS",$S($P(SCX,U,2)="Y":"VELIG",1:"NVELIG"),$P(SCX,U)),U)=LV1+1
|
|
;
|
|
; Count visits for Category of Visit.
|
|
F S SCXDT=$O(^TMP("SCDXV",$J,"COV",SCXDT)) Q:SCXDT'>0 D
|
|
. S SCXP="" F S SCXP=$O(^TMP("SCDXV",$J,"COV",SCXDT,SCXP)) Q:'SCXP D
|
|
.. S LV1=$P(^TMP("SCDXPOV",$J,"VISITS","COV",$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U)),U)
|
|
.. S $P(^TMP("SCDXPOV",$J,"VISITS","COV",$P(^TMP("SCDXV",$J,"COV",SCXDT,SCXP),U)),U)=LV1+1
|
|
;
|
|
; Count visits with a type of appt. of C&P
|
|
F S SCXDT=$O(^TMP("SCDXV",$J,"CP",SCXDT)) Q:SCXDT'>0 D
|
|
. S SCXP="" F S SCXP=$O(^TMP("SCDXV",$J,"CP",SCXDT,SCXP)) Q:'SCXP D
|
|
.. S $P(^TMP("SCDXPOV",$J,"VISITS","CP"),U)=$P(^TMP("SCDXPOV",$J,"VISITS","CP"),U)+1
|
|
Q
|
|
;
|
|
VISRPT ; Print body of the Visit report consolidated by number of visits.
|
|
;
|
|
; Variables
|
|
; SBTT - Subtotal of categories
|
|
; NUM - local counting variable
|
|
; SCDXABRT - Abort Printing (Screen only)
|
|
;
|
|
N NUM,SBTT,L1
|
|
;
|
|
D HDR
|
|
I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
W !,?5,"VETERAN ELIGIBILITY",!
|
|
S (NUM,SBTT)=0
|
|
F S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM)) Q:'NUM D I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
. W !?8,$P(^DIC(8,NUM,0),U),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM),U),6)
|
|
. S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","VELIG",NUM),U)
|
|
;
|
|
W !?42,SDASH,!,?5,"Veteran Sub-Total",?45,$J(SBTT,6)
|
|
I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
;
|
|
W !!,?5,"NON-VETERAN ELIGIBILITY",!
|
|
S (NUM,SBTT)=0
|
|
F S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM)) Q:'NUM D I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
. W !?8,$P(^DIC(8,NUM,0),U),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM),U),6)
|
|
. S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","NVELIG",NUM),U)
|
|
;
|
|
W !?42,SDASH,!,?5,"Non-Veteran Sub-Total",?45,$J(SBTT,6)
|
|
I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
;
|
|
W !!,?5,"CATEGORY OF VISIT",!
|
|
S (NUM,SBTT)=0
|
|
F S NUM=$O(^TMP("SCDXPOV",$J,"VISITS","COV",NUM)) Q:'NUM D I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
. W !?8,$P($T(VISIT+NUM^SCDXPOV1),";",3),?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","COV",NUM),U),6)
|
|
. S SBTT=+$G(SBTT)+$P(^TMP("SCDXPOV",$J,"VISITS","COV",NUM),U)
|
|
;
|
|
W !?42,SDASH,!,?5,"Category Sub-Total",?45,$J(SBTT,6)
|
|
I $Y>(IOSL-8) D NEWPAGE G:SCXABRT VISQ
|
|
;
|
|
W !!,?8,"Compensation and Penison appointments are included in the above",!?8,"categories and totals and are shown here for information only"
|
|
W !!?8,"COMPENSATION AND PENSION",?45,$J($P(^TMP("SCDXPOV",$J,"VISITS","CP"),U),6)
|
|
;
|
|
VISQ Q
|
|
;
|
|
HDR ; Print the report header
|
|
; Variables
|
|
; LINEOUT - Message line for header
|
|
; END - Timeout or Uparrow flag for read
|
|
;
|
|
N END,LINEOUT,LL,HD1,HD2
|
|
;
|
|
W @IOF
|
|
S HD2="VISIT REPORT FOR ACTIVITY TRANSMITTED TO NPCDB"
|
|
W !?(IOM-$L(HD2))/2,HD2
|
|
S HD1="FOR PERIOD "
|
|
S Y=SCXBEG D DTS^SDUTL
|
|
S HD1=HD1_Y_" THRU "
|
|
S Y=SCXEND D DTS^SDUTL
|
|
S HD1=HD1_Y
|
|
W !?2,"Facility: "_DNAME,?(IOM-$L(HD1))-5,HD1
|
|
W !!
|
|
F LL=0:1 S LINEOUT=$P($T(MSG+(LL+1)),";;",2) Q:LINEOUT["$$END" W !?8,LINEOUT
|
|
W !!?48,"VISITS"
|
|
W !,SDBDASH
|
|
Q
|
|
;
|
|
NEWPAGE ;
|
|
N LL
|
|
I IOST?1"C-".E S DIR(0)="E" D ^DIR S SCXABRT='+$G(Y) D CLEAR^SCDXPOV2
|
|
;W !," Press RETURN to continue or '^' to exit: " R LL:DTIME S SCXABRT='$T!(LL="^")
|
|
I 'SCXABRT D HDR
|
|
Q
|
|
;
|
|
MSG ;
|
|
;;*NOTE* This section consolidates all encounters into visits, where
|
|
;;one visit is all encounters for a patient on a single day. For
|
|
;;example, three encounters for a patient on one day, is one visit.
|
|
;;$$END
|