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

BGOVPED.m

Go to the documentation of this file.
  1. BGOVPED ; IHS/BAO/TMD - Patient Education ;16-Jul-2014 09:35;DU
  1. ;;1.1;BGO COMPONENTS;**1,2,3,5,6,8,11,12,13,22**;Mar 20, 2007;Build 2
  1. ;---------------------------------------------
  1. ; Get patient ed records for a patient
  1. ; INP = Patient IEN ^ Visit IEN (optional)
  1. ; .RET returned as list of records in format:
  1. ; Topic Name [1] ^ Visit Date [2] ^ Level [3] ^ Provider Name [4] ^ Group/Individual [5] ^ Length [6] ^
  1. ; CPT [7] ^ Comment [8] ^ Topic Category [9] ^ Behavior [10] ^ Objective Met [11] ^ Visit Locked [12] ^
  1. ; Location Name [13] ^ VFile IEN [14] ^ Visit IEN [15] ^ Topic IEN [16] ^ Location IEN [17] ^ Provider IEN [18] ^
  1. ; Visit Category [19] ^ ICD9 text [20] ^ Comments [21] ^ ICD9 IEN [22] ^ CPT IEN [23] ^ Readiness to learn [24] ^ ICD code [25] ^ Entry date [26]
  1. GET(RET,INP) ;EP
  1. N BGO,CNT,REC,TOPIC,VIEN,PRV,GRP,LNGTH,ICD,ICDIEN,CPTIEN,ICDCD,EVNDT
  1. N CPT,COMMENT,CAT,BEHAV,OBJMET,NARR,EDTIEN,LVL,VPED,DFN,VIENX
  1. N LOCNAME,LOCIEN,VDT,VDATE,VCAT,PRVIEN,COMMENTS,MAJTOPIC,NAMEP,READY
  1. N XREF,ICDFIELD,IN,OUT,X,SNO,TXT,TOPTYP,MAX,QFLG
  1. S RET=$$TMPGBL^BGOUTL
  1. S DFN=+INP
  1. S VIENX=$P(INP,U,2)
  1. S XREF=$$VFPTXREF^BGOUTL2
  1. S MAX=$$GET^XPAR("ALL","BGO PAT EDU MAX ENTRIES") I MAX="" S MAX=200
  1. S (CNT,QFLG)=0,VPED=""
  1. F S VPED=$O(^AUPNVPED(XREF,DFN,VPED),-1) Q:VPED=""!(QFLG) D
  1. .S REC=$G(^AUPNVPED(VPED,0))
  1. .Q:REC=""
  1. .I CNT>MAX S QFLG=1 Q
  1. .S EDTIEN=$P(REC,U)
  1. .S NAMEP=$$NEWVPED+1
  1. .S TOPIC=$P($G(^AUTTEDT(EDTIEN,0)),U,NAMEP)
  1. .S TOPTYP=$P($P($G(^AUTTEDT(EDTIEN,0)),U,1),"-",2)
  1. .Q:TOPIC=""
  1. .S MAJTOPIC=$P($G(^AUTTEDT(EDTIEN,0)),U,6)
  1. .I MAJTOPIC'="" D
  1. ..S MAJTOPIC=$O(^AUTTEDMT("B",MAJTOPIC,0))
  1. ..S MAJTOPIC=$P($G(^AUTTEDMT(+MAJTOPIC,0)),U)
  1. .S:$L(MAJTOPIC) TOPIC=MAJTOPIC_"-"_$S($P(TOPIC,"-",2)'="":$P(TOPIC,"-",2,4),1:TOPIC)
  1. .S VIEN=$P(REC,U,3)
  1. .I VIENX,VIEN'=VIENX Q
  1. .S PRVIEN=$P(REC,U,5)
  1. .;Patch 11 add event date
  1. .S EVNDT=$$FMTDATE^BGOUTL($P($G(^AUPNVPED(VPED,12)),U,1))
  1. .I EVNDT="" S EVNDT=$P($G(^AUPNVSIT(VIEN,0)),U,1)
  1. .S PRV=$P($G(^VA(200,+PRVIEN,0)),U)
  1. .S LVL=$$EXTERNAL^DILFD($$FNUM,.06,,$P(REC,U,6))
  1. .S GRP=$P(REC,U,7)
  1. .S GRP=$S(GRP="I":"Individual",GRP="G":"Group",1:"")
  1. .S LNGTH=$P(REC,U,8)
  1. .S CPTIEN=$P(REC,U,9)
  1. .S:'CPTIEN CPTIEN=$P($G(^AUTTEDT(EDTIEN,0)),U,11)
  1. .S CPT=$S(CPTIEN:$P($G(^ICPT(+CPTIEN,0)),U,2),1:"")
  1. .S:$L(CPT) TOPIC=CPT_"-"_$P(TOPIC,"-",2)
  1. .;Changes made to support RPMS and VistA databases
  1. .S ICDFIELD=$$ICDF^BGOVPED ;P6
  1. .S ICDIEN=$P(REC,U,ICDFIELD) ;P6
  1. .S:'ICDIEN ICDIEN=$P($G(^AUTTEDT(EDTIEN,0)),U,ICDFIELD) ;P6
  1. .;Patch 12 changed for AICD
  1. .;S ICD=$S(ICDIEN:$P($G(^ICD9(+ICDIEN,0)),U,3),1:"")
  1. .I $$AICD^BGOUTL2 D
  1. ..S ICD=$P($$ICDDX^ICDEX(ICDIEN,EVNDT,"","I"),U,4)
  1. .E D
  1. ..S ICD=$S(ICDIEN:$P($G(^ICD9(+ICDIEN,0)),U,3),1:"")
  1. .;IHS/MSC/MGH patch 8
  1. .;IHS/MSC/MGH patch 12
  1. .;S ICDCD=$S(ICDIEN:$P($G(^ICD9(+ICDIEN,0)),U,1),1:"")
  1. .I $$AICD^BGOUTL2 D
  1. ..S ICDCD=$P($$ICDDX^ICDEX(ICDIEN,EVNDT,"","I"),U,2)
  1. .E D
  1. ..S ICDCD=$P($$ICDDX^ICDCODE(ICDIEN,EVNDT),U,2)
  1. .;end changes
  1. .S:$L(ICD) TOPIC=ICD_"-"_$P(TOPIC,"-",2)
  1. .;Patch 13 check for SNOMED topic
  1. .;IHS/MSC/MGH added for patch 13, process SNOMED topics
  1. .I $P($G(^AUTTEDT(EDTIEN,0)),U,12)'="" D
  1. ..S TXT=""
  1. ..S SNO=$P($G(^AUTTEDT(EDTIEN,0)),U,12)
  1. ..S IN=SNO_U_36_U_U_1
  1. ..S X=$$CONC^BSTSAPI(IN)
  1. ..S TXT=$P(X,U,4)
  1. ..S ICDCD=SNO
  1. ..I $L(TXT) S TOPIC=TXT_"-"_TOPTYP
  1. .S COMMENT=$P(REC,U,11)
  1. .S CAT=$P(REC,U,12)
  1. .S:CAT CAT=$P($G(^APCDEDCV(CAT,0)),U)
  1. .S BEHAV=$P(REC,U,13)
  1. .S OBJMET=$P(REC,U,14)
  1. .S NARR=$P($G(^AUPNVPED(VPED,11)),U)
  1. .;IHS/MSC/MGH Added for patch 6
  1. .S READY=$P($G(^AUPNVPED(VPED,11)),U,2)
  1. .S:READY READY=$P($G(^AUTTRTL(READY,0)),U)
  1. .S COMMENTS=$P($G(^AUPNVPED(VPED,811)),U)
  1. .I $L(OBJMET) S COMMENTS=OBJMET
  1. .I $L(COMMENTS) D
  1. ..N P,X
  1. ..S P=$S(BEHAV="GM":2,BEHAV="GNM":3,1:1)
  1. ..S X=$P(COMMENTS,"|",P)
  1. ..S:$L(X) OBJMET=X
  1. .S BEHAV=$$EXTERNAL^DILFD($$FNUM,.13,,BEHAV)
  1. .S LOCIEN=$P($G(^AUPNVSIT(VIEN,0)),U,6)
  1. .S LOCNAME=$P($G(^DIC(4,+LOCIEN,0)),U)
  1. .S:$P($G(^AUPNVSIT(VIEN,21)),U)'="" LOCNAME=$P(^(21),U)
  1. .S VCAT=$P($G(^AUPNVSIT(VIEN,0)),U,7),VDT=+$G(^(0))
  1. .S VDATE=$$FMTDATE^BGOUTL(VDT)
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=TOPIC_U_VDATE_U_LVL_U_PRV_U_GRP_U_LNGTH_U_CPT_U_COMMENT_U_CAT_U_BEHAV_U_OBJMET_U_$$ISLOCKED^BEHOENCX(VIEN)_U_LOCNAME_U_VPED_U_VIEN_U_EDTIEN_U_LOCIEN_U_PRVIEN_U_VCAT_U_ICD_U_COMMENTS_U_ICDIEN_U_CPTIEN_U_READY_U_ICDCD_U_EVNDT
  1. Q
  1. ; Delete a patient ed entry
  1. DEL(RET,VPED) ;EP
  1. N X
  1. S X=$G(^AUPNVPED(+VPED,0))
  1. I $P(X,U,6)=5,$$REFDEL2^BGOUTL2(+$P(X,U,3),+X,"EDUCATION TOPICS")
  1. D VFDEL^BGOUTL2(.RET,$$FNUM,VPED)
  1. Q
  1. ; Get primary provider for patient ed entry
  1. PRIPRV(RET,VPED) ;EP
  1. S RET=$$PRIPRV^BGOUTL($P(^AUPNVPED(VPED,0),U,3))
  1. Q
  1. ; Get education topics
  1. ; MODE = 0:category, 1:diagnosis, 2:non-diagnosis
  1. ; Returned as a list of records in the format:
  1. ; Name ^ Category Name ^ ICD IEN ^ ICD Name ^ Education Topic IEN ^ Type
  1. GETTYPES(RET,MODE) ;EP
  1. N BGO,NAME,CATNAME,ICD,ICDNAME,CATP,EDT,CNT,REC,TYPE,CAT,XX,NAMEP
  1. N MNEXREF,ICDFIELD
  1. S RET=$$TMPGBL^BGOUTL
  1. S (CNT,EDT)=0
  1. S NAMEP=$$NEWVPED+1
  1. S MNEXREF=$E("CB",NAMEP)
  1. S ICDFIELD=$$ICDF^BGOVPED ;P6
  1. S XX=""
  1. F S XX=$O(^AUTTEDT(MNEXREF,XX)),EDT=0 Q:XX="" D
  1. .F S EDT=$O(^AUTTEDT(MNEXREF,XX,EDT)) Q:'EDT D
  1. ..S REC=$G(^AUTTEDT(EDT,0))
  1. ..Q:'$L(REC)
  1. ..Q:$P(REC,U,3)
  1. ..S CATNAME="",ICDNAME="",TYPE="E"
  1. ..S NAME=$P(REC,U,NAMEP)
  1. ..S ICD=$P(REC,U,ICDFIELD)
  1. ..;MSC/IHS/MGH Patch 12
  1. ..;I ICD S ICDNAME=$P($G(^ICD9(ICD,0)),U,3)
  1. ..I $$AICD^BGOUTL2 D
  1. ...S ICDNAME=$P($$ICDDX^ICDEX(ICD,$$NOW^XLFDT,"","I"),U,4)
  1. ..E D
  1. ...S ICDNAME=$S(ICD:$P($G(^ICD9(+ICD,0)),U,3),1:"")
  1. ..S CATP=$P(REC,U,6)
  1. ..I CATP'="" D
  1. ...I $L(CATP)>4 S CATP=$E(CATP,1,4)
  1. ...S CATP=$O(^AUTTEDMT("B",CATP,0))
  1. ...S:CATP CATNAME=$P($G(^AUTTEDMT(CATP,0)),U)
  1. ..Q:CATNAME=""
  1. ..I 'MODE,CATNAME'="" D
  1. ...Q:$D(CAT(CATNAME))
  1. ...S CAT(CATNAME)=""
  1. ...S CNT=CNT+1,@RET@(CNT)=CATNAME_U_CATNAME_"^^^^C"
  1. ..E I MODE=1 D
  1. ...S CATNAME=ICDNAME
  1. ...Q:ICDNAME=""
  1. ...Q:$D(CAT(ICDNAME))
  1. ...S CAT(ICDNAME)=""
  1. ...S CNT=CNT+1,@RET@(CNT)=ICDNAME_U_ICDNAME_"^^^^C"
  1. ..S:'$L(ICD) CNT=CNT+1,@RET@(CNT)=NAME_U_CATNAME_U_ICD_U_ICDNAME_U_EDT_U_TYPE
  1. Q
  1. ; Returns category for an education topic
  1. ; EDT = Education topic IEN
  1. GETNAME(RET,EDT) ;EP
  1. N X,X0,Z
  1. S RET=""
  1. Q:'$G(EDT)
  1. S X0=$G(^AUTTEDT(EDT,0))
  1. S X=$P(X0,U,6)
  1. I $L(X) D
  1. .S X=$O(^AUTTEDMT("B",X,0))
  1. .S:X RET=$P($G(^AUTTEDMT(X,0)),U)
  1. I '$L(RET) D
  1. .S X=$P(X0,U,4)
  1. .;IHS/MSC/MGH Patch 12
  1. .;S:X RET=$P($G(^ICD9(X,0)),U,3)
  1. .I $$AICD^BGOUTL2 D
  1. ..S X=$P($$ICDDX^ICDEX(X,$$NOW^XLFDT,"","I"),U,4)
  1. .E D
  1. ..S X=$S(X:$P($G(^ICD9(X,0)),U,3),1:"")
  1. .S:X'="" RET=X
  1. I '$L(RET) D
  1. .S X=$P(X0,U,11)
  1. .S:X RET=$P($G(^ICPT(X,0)),U,2)
  1. ;Patch 13 for SNOMED terms
  1. I '$L(RET) D
  1. .S SNO=$P(X0,U,12)
  1. .S IN=SNO_U_36_U_U_1
  1. .S Z=$$CONC^BSTSAPI(IN)
  1. .I Z>0 S RET=$P(Z,U,4)
  1. .;S X=$G(@OUT@(1,"PRE","TRM")) ; DKA Patch 13
  1. .;S:X RET=X
  1. Q
  1. ; Returns a list of education topics for PCC data entry
  1. GETTOPIC(RET,DUMMY) ;EP
  1. N X,CNT
  1. S (X,CNT)=0,RET=$$TMPGBL^BGOUTL
  1. F S X=$O(^APCDEDCV(X)) Q:'X D
  1. .S CNT=CNT+1,@RET@(CNT)=X_U_$P(^APCDEDCV(X,0),U)
  1. Q
  1. ; Return outcome and standard counts for an education topic
  1. GETOS(RET,EDT) ;EP
  1. N X,CNT,NAMEP,TOPIC,MAJTOPIC
  1. K RET
  1. I '$G(EDT) S RET(1)=$$ERR^BGOUTL(1008) Q
  1. I '$D(^AUTTEDT(EDT,0)) S RET(1)=$$ERR^BGOUTL(1088) Q
  1. S NAMEP=$$NEWVPED+1
  1. S TOPIC=$P(^AUTTEDT(EDT,0),U,NAMEP),MAJTOPIC=$P(^(0),U,6)
  1. S:$L(MAJTOPIC) MAJTOPIC=$O(^AUTTEDMT("B",MAJTOPIC,0)),MAJTOPIC=$P($G(^AUTTEDMT(+MAJTOPIC,0)),U)
  1. S:$L(MAJTOPIC) TOPIC=MAJTOPIC_"-"_$S($P(TOPIC,"-",2)'="":$P(TOPIC,"-",2,4),1:TOPIC)
  1. S CNT=0
  1. D GO1(TOPIC),GO2(1),GO2(2)
  1. Q
  1. ; Add to output array
  1. GO1(X) S CNT=CNT+1,RET(CNT)=X
  1. Q
  1. ; Add outcome/standard text to output array
  1. GO2(N) N X,Y,L
  1. S X=0,L=$P("OUTCOME^STANDARD",U,N)
  1. F S X=$O(^AUTTEDT(EDT,N,X)) Q:'X S Y=$G(^(X,0)) D
  1. .I $L(L) D
  1. ..D GO1("")
  1. ..D:$E(Y,1,$L(L))'=L GO1(L_":")
  1. ..S L=""
  1. .D GO1(Y)
  1. Q
  1. ; Sets/returns diagnostic-based topic/education
  1. ; INP = ICD9 IEN ^ EDC IEN
  1. SETDXTOP(RET,INP,ICDFLG) ;EP
  1. S RET=$$SETTOP($P(INP,U),$P(INP,U,2),$G(ICDFLG))
  1. Q
  1. ; Sets/returns procedure-based topic/education
  1. ; INP = CPT4 IEN ^ EDC IEN
  1. SETPXTOP(RET,INP) ;EP
  1. S RET=$$SETTOP($P(INP,U),$P(INP,U,2),0)
  1. Q
  1. ;Patch 13 Set/returns SNOMED topic/education
  1. SETSNTOP(RET,INP) ;EP
  1. S RET=$$SETTOP($P(INP,U),$P(INP,U,2),2)
  1. Q
  1. ; Sets/Returns DX/PX-topic education
  1. SETTOP(CODEIEN,EDCVIEN,ICDFLG) ;
  1. N CODE,CODENM,TOPIC,TOP,NAME,MNEM,F01,RET,ICDFLD
  1. Q:'EDCVIEN ""
  1. S ICDFLG=$G(ICDFLG)
  1. S TOPIC=$P($G(^APCDEDCV(EDCVIEN,0)),U),TOP=$P($G(^(0)),U,2)
  1. Q:'$L(TOPIC)!'$L(TOP) ""
  1. ;IHS/MSC/MGH Patch 12
  1. ;I ICDFLG S CODE=$P($G(^ICD9(CODEIEN,0)),U),CODENM=$P($G(^(0)),U,3)
  1. I ICDFLG=1 D
  1. .I $$AICD^BGOUTL2 D
  1. ..S Y=$$ICDDX^ICDEX(CODEIEN,$$NOW^XLFDT,"","I")
  1. ..S CODE=$P(Y,U,2),CODENM=$P(Y,U,4)
  1. .E D
  1. ..S Y=$$ICDDX^ICDCODE(CODEIEN,$$NOW^XLFDT)
  1. ..S CODE=$P(Y,U,2),CODENM=$P(Y,U,4)
  1. ;Patch 13 SNOMED codes
  1. E D
  1. .I ICDFLG=2 D
  1. ..S CODENM="",CODE=""
  1. ..S IN=CODEIEN_U_U_U_1
  1. ..S X=$$CONC^BSTSAPI(IN)
  1. ..I $P(X,U,1)="" D
  1. ...S IN=CODEIEN_U_U_1
  1. ...S X=$$DESC^BSTSAPI(IN)
  1. ...I +$P(X,U,1) S CODE=$P(X,U,1),CODENM=""
  1. ..E S CODE=CODEIEN,CODENM=""
  1. .E S CODE=$P($G(^ICPT(CODEIEN,0)),U),CODENM=$P($G(^(0)),U,2)
  1. ;IHS/MSC/MGH changed to store code
  1. S:'$L(CODENM) CODENM=CODEIEN,CODEIEN="" ; Uncoded entry
  1. S NAME=CODE_"-"_TOPIC,MNEM=CODE_"-"_TOP
  1. S F01=$S($$NEWVPED:MNEM,1:NAME)
  1. S ICDFLD=$$ICDFNUM^BGOVPED ;Patch 8
  1. S RET=$O(^AUTTEDT("B",F01,0))_U_F01
  1. I 'RET D
  1. .N FDA,IEN
  1. .S FDA=$NA(FDA(9999999.09,"+1,"))
  1. .S @FDA@(.01)=F01
  1. .S @FDA@(1)=$S($$NEWVPED:NAME,1:MNEM)
  1. .;Patch 11
  1. .I ICDFLG=1 D
  1. ..S @FDA@(ICDFLD)=CODEIEN ;Patch 8 change
  1. .I ICDFLG=2 D
  1. ..S @FDA@(.12)=CODE
  1. .E S @FDA@(.11)=CODEIEN
  1. .S RET=$$UPDATE^BGOUTL(.FDA,,.IEN)
  1. .S:'RET RET=IEN(1)_U_F01
  1. Q RET
  1. ; Set patient ed entry
  1. ; INP = VFile IEN [1] ^ Topic [2] ^ Patient IEN [3] ^ Visit IEN [4] ^ Provider IEN [5] ^
  1. ; Level Understanding [6] ^ Individual/Group [7] ^ Length [8] ^ CPT [9] ^ Comment [10] ^
  1. ; Behavior Code [11] ^ Objectives [12] ^ Event Date [13] ^ Location IEN [14] ^
  1. ; Other Location [15] ^ Historical [16] ^ Readiness [17] ^ Allow Dups [18] ^ Problem IEN[19]
  1. SET(RET,INP) ;EP
  1. N VIEN,FDA,VCAT,APCDALVR,DFN,CPT,VFIEN,TYPE,LVL,PRV,GRP,LEN,COMMENT,BEHAV,OBJMET,SNO,PROB
  1. N EVNTDT,LOCIEN,OUTLOC,HIST,DX,OLDLVL,READY,FNUM,VFNEW,DUPS,ICDFIELD,READY,ICDFNUM,CT
  1. S RET="",FNUM=$$FNUM
  1. S ICDFIELD=$$ICDF^BGOVPED ;P6
  1. S VFIEN=+INP
  1. S VFNEW='VFIEN
  1. S TYPE=+$P(INP,U,2)
  1. I '$D(^AUTTEDT(TYPE,0)) S RET=$$ERR^BGOUTL(1088) Q
  1. S DFN=+$P(INP,U,3)
  1. I '$D(^AUPNPAT(DFN,0)) S RET=$$ERR^BGOUTL(1001) Q
  1. S VIEN=+$P(INP,U,4)
  1. S PRV=$P(INP,U,5)
  1. S LVL=$P(INP,U,6)
  1. S GRP=$P(INP,U,7)
  1. S LEN=$P(INP,U,8)
  1. S CPT=$P(INP,U,9)
  1. S COMMENT=$P(INP,U,10)
  1. S BEHAV=$P(INP,U,11)
  1. S OBJMET=$P(INP,U,12)
  1. S EVNTDT=$$CVTDATE^BGOUTL($P(INP,U,13))
  1. S LOCIEN=$P(INP,U,14)
  1. S OUTLOC=$P(INP,U,15)
  1. S HIST=$P(INP,U,16)
  1. S READY=$P(INP,U,17)
  1. S DUPS=$P(INP,U,18)
  1. S PROB=$P(INP,U,19)
  1. S:'$L(DUPS) DUPS=1
  1. S VCAT=$P($G(^AUPNVSIT(VIEN,0)),U,7)
  1. S:VCAT="E" HIST=1
  1. I 'VIEN,'HIST S RET=$$ERR^BGOUTL(1002) Q
  1. I HIST D Q:RET<0
  1. .S RET=$$MAKEHIST^BGOUTL(DFN,EVNTDT,$S($L(OUTLOC):OUTLOC,1:LOCIEN),VIEN)
  1. .S:RET>0 VIEN=RET
  1. S RET=$$CHKVISIT^BGOUTL(VIEN,DFN)
  1. Q:RET
  1. S DX=$P(^AUTTEDT(TYPE,0),U,ICDFIELD) ;P6
  1. S SNO=$P(^AUTTEDT(TYPE,0),U,12) ;P13 snomed field
  1. I 'VFIEN D Q:'VFIEN
  1. .D VFNEW^BGOUTL2(.RET,FNUM,TYPE,VIEN,$S('DUPS:"Education",1:""))
  1. .S:RET>0 VFIEN=RET,RET=""
  1. .S OLDLVL=""
  1. E S OLDLVL=$P($G(^AUPNVPED(VFIEN,0)),U,6)
  1. S FDA=$NA(FDA(FNUM,VFIEN_","))
  1. S @FDA@(.01)="`"_TYPE
  1. S ICDFNUM=$$ICDFNUM^BGOVPED
  1. S @FDA@(.04)=$S(DX:"`"_DX,1:"") ;Patch 8 change
  1. S @FDA@(.05)=$S(PRV:"`"_PRV,1:"")
  1. S @FDA@(.06)=LVL
  1. S @FDA@(.07)=GRP
  1. S @FDA@(.08)=LEN
  1. S @FDA@(.09)=$S(CPT:"`"_CPT,1:"")
  1. S @FDA@(.11)=COMMENT
  1. S @FDA@(.13)=BEHAV
  1. S @FDA@(1204)="`"_DUZ
  1. S @FDA@(1201)="N"
  1. S @FDA@(1301)=SNO
  1. I PROB'="" S @FDA@(1103)="`"_PROB ;p13 edu may be connected to problem
  1. ;Patch 11 Set date entered
  1. I VFNEW D
  1. .S @FDA@(1216)="N"
  1. .S @FDA@(1217)="`"_DUZ
  1. ;Patch 11 Set last modified
  1. S @FDA@(1218)="N"
  1. S @FDA@(1219)="`"_DUZ
  1. S @FDA@(1102)=READY ;IHS/MSC/MGH patch 6
  1. I $L(OBJMET) D
  1. .N P,COMMENTS
  1. .S COMMENTS=$P($G(^AUPNVPED(VFIEN,811)),U)
  1. .S P=$S(BEHAV="GM":2,BEHAV="GNM":3,1:1)
  1. .S:P>1 $P(COMMENTS,"|",5-P)=""
  1. .S $P(COMMENTS,"|",P)=$TR(OBJMET,"|")
  1. .I $L(OBJMET) S COMMENTS=OBJMET
  1. .;S @FDA@(81101)=COMMENTS
  1. .S @FDA@(.14)=COMMENTS
  1. S RET=$$UPDATE^BGOUTL(.FDA,"E")
  1. I RET,VFNEW,$$DELETE^BGOUTL(FNUM,VFIEN)
  1. I 'RET,LVL=5,OLDLVL'=LVL D
  1. .S CT=443390004
  1. .S RET=$$REFSET^BGOUTL2(VIEN,TYPE,"EDUCATION TOPICS","R",COMMENT,"",CT)
  1. I 'RET,OLDLVL=5,OLDLVL'=LVL S RET=$$REFDEL2^BGOUTL2(VIEN,TYPE,"EDUCATION TOPICS")
  1. D:'RET VFEVT^BGOUTL2(FNUM,VFIEN,'VFNEW)
  1. S:'RET RET=VFIEN
  1. Q
  1. ; Returns true if new V Patient Ed format
  1. NEWVPED() Q $$FLDNUM^DILFD(9999999.09,"NAME")'=.01
  1. ; Return V File #
  1. FNUM() Q 9000010.16
  1. ICDF() Q $S($G(DUZ("AG"))="I":"4",1:"10")
  1. ICDFNUM() Q $S($G(DUZ("AG"))="I":".04",1:".1")