VistA-WorldVistAEHR/r/MENTAL_HEALTH-YS-RUCL-YI-YT/YSGAFAP1.m

37 lines
1.2 KiB
Mathematica

YSGAFAP1 ;ALB/ASF-GLOBAL ASSESSMENT OF FUNCTIONING ;2/4/00 13:55
;;5.01;MENTAL HEALTH;**64**;Dec 30, 1994
Q
ENT(YSDATA,YS) ;Enter GAF information
; DFN - Patient IEN
; GAF - GAF Score (Axis 5)
; DATE - Date/Time of Diagnosis
; STAFF - Diagnosis By DUZ
PARSE ;
S YSPN=$G(YS("DFN"))
S YSGN=$G(YS("GAF"))
S YSGD=$G(YS("DATE"),"NOW") S X=YSGD,%DT="T" D ^%DT S YSGD=Y
S YSGC=$G(YS("STAFF"))
IF YSPN'>0!('$D(^DPT(YSPN,0))) S YSDATA(1)="[ERROR]",YSDATA(2)="bad DFN" Q ;------->
IF YSGC'>0!('$D(^VA(200,YSGC,0))) S YSDATA(1)="[ERROR]",YSDATA(2)="bad staff" Q ;---->
IF YSGN'?1N.N!(YSGN<1)!(YSGN>100) S YSDATA(1)="[ERROR]",YSDATA(2)="bad dx" Q ;----->
IF YSGD<0 S YSDATA(1)="[ERROR]",YSDATA(2)="bad date" Q ;---->
;
SET K DD,DO,DA,DINUM
S DLAYGO=627.8,X="NOW",%DT="TR" D ^%DT S X=Y
S DIC="^YSD(627.8,",DIC(0)="L"
D FILE^DICN Q:Y'>0 S YSDA=+Y
S DFN=+YSPN
D PATSTAT^YSDX3B
I '$D(DFN) D QUIT ;--->
. D EN^YSGAFOBX(YSDA)
S DIE="^YSD(627.8,",DA=YSDA
S DR=".02////"_YSPN_";.03////"_YSGD_";.04////"_YSGC_";.05////"_DUZ
S DR=DR_";65////"_YSGN_";66////"_YSSTAT
L +^YSD(627.8,YSDA):9999 Q:'$T
D ^DIE
L -^YSD(627.8,YSDA)
K YSDATA S YSDATA(1)="[DATA]"
D EN^YSGAFOBX(YSDA)
K %DT,DA,DIC,DIE,DLAYGO,DR,X,Y,YSDA,YSPN,YSGN,YSGD,YSGC,YSSTAT
Q