VistA-FOIAVistA/r/SPINAL_CORD_DYSFUNCTION-SPN/SPNCTCLS.m

50 lines
1.9 KiB
Mathematica

SPNCTCLS ;WDE/SD CLOSE OPEN CARE EPISODES 154.1 ;6/18/2002
;;2.0;Spinal Cord Dysfunction;**19**;01/02/1997
;
;
;---------------------------------------------------------------------
CHK ;Calling routine SPNFEDT0
;
; Called when the user is adding a new outcome to the group
; If the outcome has a record type of outpatient follow up
; then prompt to ask them if they want to close this episode
; If Yes then prompt for date and Assign to all outcomes in
; this episode
;
; spnxmit=0 for just the one or 1 for all in the group
; spnclose 0 no to close 1 to close
; Note that spndate is the date recorded asked in the calling rtn
;
S (SPNXMIT,SPNCLOSE,SPNEXIT)=0
I $P($G(^TMP($J,0)),U,3)'="" S SPNXMIT=0 Q ;episode is closed
S %=1 W !,"Do you wish to close this episode of care"
D YN^DICN
I %Y["?" W !!,"Enter Yes to close this episode or No to leave it open.",! G CHK
I %=-1 S SPNEXIT=1 Q
S SPNYN=$S(%=1:"Y",1:"N")
I SPNYN="Y" D
.I $P($G(^TMP($J,0)),U,3)="" S (SPNXMIT,SPNCLOSE)=1 S $P(^TMP($J,0),U,3)=SPNDATE Q
;
I SPNYN="N" S SPNXMIT=0,SPNCLOSE=0 ;spnxmit is = 1 to transmit all outcome
; ;in the group
; ;or its set to 0 to just transmit the
; ;current outcome
;I SPNYN="^" S SPNEXIT=1 Q
;I SPNYN="" S SPNEXIT=1 Q
I SPNYN="N" I SPNCT=1 D ZAP^SPNOGRDA G RESTART^SPNCTINA
I SPNYN="N" I SPNCT=2 D ZAP^SPNOGRDA G RESTART^SPNCTOUA
Q
;-------------------------------------------------------------------
CLOSE ;
;loop through 154.1 and get outcomes with the same care date
S SPNA=0 F S SPNA=$O(^TMP($J,SPNA)) Q:SPNA="" S SPNB=0 S SPNB=$O(^TMP($J,SPNA,SPNB)) Q:SPNB="" S SPNC="" S SPNC=$O(^TMP($J,SPNA,SPNB,SPNC)) Q:SPNC="" D
.S SPNFIEN=$P($G(^TMP($J,SPNA,SPNB,SPNC)),U,1)
.Q:SPNFIEN=""
.S DIE="^SPNL(154.1,"
.S DA=SPNFIEN,DR="1002///"_$P($G(^TMP($J,0)),U,3)
.D ^DIE
.K DIE,DA,DR
.Q
Q
ZAP ;