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

BGOCC.m

Go to the documentation of this file.
  1. BGOCC ; IHS/BAO/TMD - Manage Chief Complaints ;09-Apr-2012 14:19;DU
  1. ;;1.1;BGO COMPONENTS;**1,3,4,11**;Mar 20, 2007;Build 3
  1. ; Returns chief complaint for current vuecentric visit context for
  1. ; use by TIU object. Assumes DFN is defined.
  1. TIUML(TARGET) ;
  1. N X
  1. S X=$$GETVAR^CIANBUTL("ENCOUNTER.ID.ALTERNATEVISITID",,"CONTEXT.ENCOUNTER")
  1. Q:X="" " "
  1. S X=$$VSTR2VIS^BEHOENCX(DFN,X)
  1. Q:X<1 " "
  1. D GET(.X,X)
  1. S X=$P(X,U,3),X=$S($L(X):"Chief Complaint: "_X,1:"No Chief Complaint.")
  1. K @TARGET
  1. S @TARGET@(1,0)=X
  1. Q "~@"_$NA(@TARGET)
  1. ; Returns chief complaint history. If there is a V Narrative of type CHIEF COMPLAINT,
  1. ; this is returned preferentially. Otherwise, the value of the CHIEF COMPLAINT field
  1. ; of the VISIT file entry is returned.
  1. ; INP = Visit IEN
  1. ; .RET = List in format:
  1. ; IEN [1] ^ Author [2] ^ Line Count [3]
  1. ; Text Lines
  1. GET(RET,INP) ;EP
  1. N VIEN,VNT,I,N,CCTYPE,CNT,AUTH
  1. S VIEN=+INP,RET=$$TMPGBL^BGOUTL
  1. I 'VIEN S @RET@(0)=$$ERR^BGOUTL(1002) Q
  1. I '$D(^AUPNVSIT(VIEN,0)) S @RET@(0)=$$ERR^BGOUTL(1003) Q
  1. S CCTYPE=$$CCTYPE
  1. S (CNT,VNT)=0
  1. F S VNT=$O(^AUPNVNT("AD",VIEN,VNT)) Q:'VNT D
  1. .Q:$P($G(^AUPNVNT(VNT,0)),U)'=CCTYPE
  1. .S AUTH=$P($G(^AUPNVNT(VNT,12)),U,4)
  1. .S:AUTH AUTH=AUTH_"~"_$P($G(^VA(200,AUTH,0)),U)
  1. .S (I,N)=0,CNT=CNT+1
  1. .F S N=$O(^AUPNVNT(VNT,11,N)) Q:'N S I=I+1,@RET@(CNT,I)=$G(^(N,0))
  1. .S @RET@(CNT)=VNT_U_AUTH_U_I
  1. S I=$P($G(^AUPNVSIT(VIEN,14)),U)
  1. S:$L(I) CNT=CNT+1,@RET@(CNT)="0^^1",@RET@(CNT,1)=I
  1. Q
  1. ; Return IEN for Chief Complaint. Optionally create it if not found.
  1. CCTYPE(CREATE) ;
  1. N TYPE,FDA,IEN
  1. S TYPE=$O(^AUTTNTYP("B","CHIEF COMPLAINT",0))
  1. I 'TYPE,$G(CREATE) D
  1. .S FDA(9999999.89,"+1,",.01)="CHIEF COMPLAINT"
  1. .S:'$$UPDATE^BGOUTL(.FDA,,.IEN) TYPE=$G(IEN(1))
  1. Q TYPE
  1. ; Delete chief complaint
  1. DEL(RET,VNT) ;EP
  1. D VFDEL^BGOUTL2(.RET,$$FNUM,VNT)
  1. Q
  1. ; Add/edit chief complaint
  1. ; INP = Visit IEN ^ V Narrative IEN ^ Chief Complaint
  1. ; .RET = V Narrative IEN or -n^error text
  1. SET(RET,INP) ;EP
  1. N VIEN,VFIEN,CC,TYPE,VFNEW,FNUM,FDA
  1. S FNUM=$$FNUM
  1. S VIEN=+INP
  1. S RET=$$CHKVISIT^BGOUTL(VIEN,,"AIT")
  1. Q:RET
  1. S VFIEN=+$P(INP,U,2)
  1. S CC=$P(INP,U,3)
  1. S CC=$$TOWP^BGOUTL("CC")
  1. S TYPE=$$CCTYPE(1)
  1. I 'TYPE S RET=$$ERR^BGOUTL(1004) Q
  1. I CC="" D:VFIEN DEL(.RET,VFIEN) Q
  1. I VFIEN D Q:RET
  1. .N X
  1. .S X=$P($G(^AUPNVNT(VFIEN,12)),U,4)
  1. .I X,X'=DUZ S RET=$$ERR^BGOUTL(1005,$P($G(^VA(200,X,0)),U))
  1. S VFNEW='VFIEN
  1. I 'VFIEN D Q:RET
  1. .D VFNEW^BGOUTL2(.RET,FNUM,TYPE,VIEN)
  1. .S:RET>0 VFIEN=RET,RET=""
  1. S FDA=$NA(FDA(FNUM,VFIEN_","))
  1. S @FDA@(1100)=CC
  1. S @FDA@(1201)="N"
  1. S @FDA@(1204)="`"_DUZ
  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 RET=$$UPDATE^BGOUTL(.FDA,"E@")
  1. I RET,VFNEW,$$DELETE^BGOUTL(FNUM,VFIEN)
  1. D:'RET VFEVT^BGOUTL2(FNUM,VFIEN,'VFNEW)
  1. S:'RET RET=VFIEN
  1. Q
  1. ; Return pick list entries for chief complaint
  1. ; TYP = 1: Symptom, 2: Disease, 3: Request
  1. ; .RET is list of records in format:
  1. ; IEN ^ Display Text ^ Body Location Related
  1. GETPL(RET,TYP) ;EP
  1. N IEN,NAME,BODY,CNT
  1. S RET=$$TMPGBL^BGOUTL
  1. I '$G(TYP) S @RET@(1)=$$ERR^BGOUTL(1006) Q
  1. S (IEN,CNT)=0
  1. F S IEN=$O(^BGOCCPL("AC",TYP,IEN)) Q:'IEN D
  1. .N NAME,BODY,X
  1. .S X=$G(^BGOCCPL(IEN,0))
  1. .S NAME=$P(X,U),BODY=$P(X,U,3)
  1. .S CNT=CNT+1,@RET@(CNT)=IEN_U_NAME_U_BODY
  1. Q
  1. ; Add a pick list entry
  1. ; INP = Name ^ Type ^ Body Related
  1. SETPL(RET,INP) ;EP
  1. N NAME,TYPE,BODY,FDA,IENS,IEN
  1. S NAME=$P(INP,U)
  1. I NAME="" S RET=$$ERR^BGOUTL(1007) Q
  1. S TYPE=+$P(INP,U,2)
  1. S BODY=$P(INP,U,3)
  1. S IENS=$O(^BGOCCPL("B",NAME,0))
  1. S IENS=$S(IENS:IENS_",",1:"+1,")
  1. S FDA=$NA(FDA(90362.2,IENS))
  1. S @FDA@(.01)=NAME
  1. S @FDA@(.02)=TYPE
  1. S @FDA@(.03)=BODY
  1. S RET=$$UPDATE^BGOUTL(.FDA,"E",.IEN)
  1. S:'RET RET=$G(IEN(1),+IENS)
  1. Q
  1. ; Delete pick list name
  1. ; IEN = Pick List IEN
  1. ; .RET = -1^error text if error
  1. DELPL(RET,IEN) ;EP
  1. S:IEN RET=$$DELETE^BGOUTL("^BGOCCPL(",IEN)
  1. Q
  1. ; Return V File #
  1. FNUM() Q 9000010.34