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

BGOPROB.m

Go to the documentation of this file.
  1. BGOPROB ; IHS/BAO/TMD - pull patient PROBLEMS ;20-Jun-2017 15:25;DU
  1. ;;1.1;BGO COMPONENTS;**1,3,6,7,8,10,11,13,14,15,19,20,21,23**;Mar 20, 2007;Build 3
  1. ;---------------------------------------------
  1. ; Check for existence of problem id
  1. ; INP = Patient IEN ^ Problem ID ^ Site IEN ^ Problem IEN (optional)
  1. ; Patch 6 removed references to family history since they are in separate components
  1. ; Patch 6 also added ability to view and add classification for ashtma dx
  1. ; Patch 8 changes - problems are now logically deleted
  1. ; Patch 12 changes for AICD
  1. ; Patch 13 - changes were made now for SNOMED and Integrated problem list
  1. ; most sections have been radically changed
  1. ; Patch 20 - laterality added,routine status added
  1. ; Patch 21 - V OB note added
  1. ; Patch 23 - Fracture data added
  1. CKID(RET,INP) ;EP
  1. D CKID^BGOPROB1(.RET,INP)
  1. Q
  1. ; Return next problem id
  1. ; DFN = Patient IEN
  1. ; .RET = Problem ID
  1. NEXTID(RET,DFN) ;EP
  1. D NEXTID^BGOPROB1(.RET,DFN)
  1. Q
  1. ; Set priority
  1. ; INP = Problem IEN ^ Problem Priority
  1. SETPRI(RET,INP) ;EP
  1. D SETPRI^BGOPROB1(.RET,INP)
  1. Q
  1. ; Get problem entries for a patient
  1. ; DFN = Patient IEN
  1. ; TYP= A(chronic),S(sub-acute),E(episodic),O(social/environmental),I(Inactive)
  1. ; If not sent, all active codes will be returned
  1. ; CPTYP= A All
  1. ; C Active
  1. ; L Last date
  1. ; NUM = Number of entries in V files to return
  1. ; ACT = Flag to indicate if care planning activities should be included
  1. ;-------------------------------------------------------------------------
  1. ;Array(n)="P" [1] ^ Problem Ien [2] ^ SNOMED CONCEPT ID [3] ^ SNOMED DESC ID[4] ^Number code [5] ^ Status [6]^ Onset [7] ^ Prov Narrative [8] ^ ICD [9] ^ Priority [10] ^ Class [11] ^ PIP [12] ^ Additional ICD [13]
  1. ; ^ inpt DX [14] ^ Outpt DX [15] ^ Ever used as POV [16] ^ Asthma DX [17] ^ Needs norm/abn [18] ^ Laterality flag [19] ^ Laterality [20]
  1. ;Array(n)="P1" [1] ^ Frequency [2] ^ Eye dx [3] ^last used as INPT [4]
  1. ;Array(n)="A" [1] ^ Classification [2] ^ Control [3] ^ V asthma IEN [4]
  1. ;Array(n)="N" [1] ^ Facility [2] ^ Note IEN [3] ^ Note Nmbr [4] ^ Text [5] ^ Status [6] ^ Date [7] ^ Author [8]
  1. ;Array(n)= "Q" [1] ^ TYPE [2] ^ IEN [3] ^ SNOMED [4] ^ Text [5]
  1. ;The problems are followed by the goals, pt.instructions, visit instructions and activities
  1. ;Array(n)=Type (G OR C) [1] ^ C Plan IEN [2] ^ Prob IEN [4] ^ Who entered [4] ^ Date Entered [5] ^ Status [6] ^ SIGN FLAG [7]
  1. ; =~t [1] ^ Text of the item [2]
  1. ;Array(n)="I" [1] ^ Instr IEN[2] ^ Prob IEN [3] ^ Vst Date [4] ^ Facility [5] ^ Prv IEN [6] ^ Location [7] ^ Entered Dt [8] ^ Visit IEN [9] ^V cat [10] ^ Locked [11] ^ Prov Name [12] ^ signed [13]
  1. ; =~t [1] ^Text of the item [2]
  1. ;Array(n)="O" [1] ^ OB IEN [2] ^ Prob IEN [3] ^ Vst Date [4] ^ Facility [5] ^ Prv IEN [6] ^ Location [7] ^ Entered Dt [8] ^Visit IEN [9] ^ V Cat [10] ^ ^ Locked [11] ^ Prov Name [12] ^ signed [13]
  1. ; =~t [1] ^Text of the item [2]
  1. ;Array(n)="T" [1] ^ TR IEN[2] ^ SNOMED term [3] ^ Prob IEN [4] ^ Vst Date [5] ^ Facility [6] ^ Prv IEN [7] ^ Location [8] ^ Entered Dt [9] ^ Visit IEN [10] ^ V Cat [11] ^Locked [12] ^ Prov name [13]
  1. ;Array(n)="S" [1] ^ SERVICE [2] ^Consult Date [3] ^ STAT [4]
  1. ;Array(n)="R" [1] ^ REFERRAL [2] ^ Referral Date [3] ^ Status [4]
  1. ;Array(n)="E" [1] ^ Topic [2] ^ Date [3]
  1. ;Array(n)="F" [1] ^ Fracture SNOMED ^ Fracture Text
  1. GET(RET,DFN,TYP,CPTYP,NUM,ACT) ;EP
  1. N PRIEN,CNT,PER
  1. S PER=""
  1. ; Default values if not passed in
  1. I $G(TYP)="" S TYP="ASEOR"
  1. I $G(CPTYP)="" S CPTYP="L"
  1. ;For Visit instructions and treatments, the default is the latest visit
  1. I $G(NUM)="" S NUM=1
  1. S ACT=$G(ACT)
  1. S RET=$$TMPGBL^BGOUTL
  1. S (PRIEN,CNT)=0
  1. F S PRIEN=$O(^AUPNPROB("AC",DFN,PRIEN)) Q:'PRIEN D
  1. .D GET2(.RET,PRIEN,DFN,TYP,CPTYP,NUM,ACT,PER)
  1. Q
  1. GET2(RET,PRIEN,DFN,TYP,CPTYP,NUM,ACT,PER,ONE) ;Get information for one problem
  1. N REC,NOTES,POVIEN,ICD,ICDNAME,MODDT,CLS,FAC,FACIEN,FACAB,PIP,INPT,INPTDX,OUTPT,OUTPTDX
  1. N PNAR,DENT,NMBCOD,STAT,ONSET,PRI,CLASS,PRV,ARRAY,PHXCNT,SNOMED,I,EVNDT,NORMAL,FLTR,FRACTURE,FXLST
  1. N CONCT,DESCT,CT,CT2,PTEXT,REC8,IN,OUT,ARR,STAT2,XICD,POVEVER,ASM,VIEN,INJSTR,DEFST
  1. I '$D(CNT) S CNT=0
  1. S PER=$G(PER),ONE=$G(ONE),FRACTURE=""
  1. S (INPTDX,OUTPTDX)="",POVEVER=0
  1. S REC=$G(^AUPNPROB(PRIEN,0))
  1. S REC8=$G(^AUPNPROB(PRIEN,800))
  1. Q:$P(REC,U,2)'=DFN
  1. S POVIEN=$P(REC,U)
  1. Q:POVIEN=""
  1. ;IHS/MSC/MGH Patch 12 changes
  1. S EVNDT=$$FMTDATE^BGOUTL($P($G(^AUPNPROB(PRIEN,0)),U,8))
  1. S ICD=$P($$ICDDX^ICDEX(POVIEN,EVNDT,"","I"),U,2)
  1. Q:ICD=""
  1. ;Check for which statuses to return
  1. S STAT=$P(REC,U,12)
  1. Q:STAT="D"
  1. ;Q:TYP'[STAT
  1. I STAT="" S STAT="I"
  1. I STAT'="I",TYP'[STAT Q ;P20 Inactive/Phx Handled Below
  1. S STAT2=$$GET1^DIQ(9000011,PRIEN,.12)
  1. S CONCT=$P(REC8,U,1)
  1. S DESCT=$P(REC8,U,2)
  1. ;MSC/MGH Patch 23
  1. S SNODATA=$$CONC^BSTSAPI(CONCT_"^^^1")
  1. S FRACTURE=$P(SNODATA,U,10)
  1. S FXLST=$P(SNODATA,U,11)
  1. ;MSC/MGH Patch 20
  1. S DEFST=""
  1. I ONE=1 D
  1. .;S SNODATA=$$CONC^AUPNSICD(CONCT_"^^^1")
  1. .S DEFST=$P(SNODATA,U,9)
  1. .I STAT="I"&(DEFST="") S DEFST="Episodic"
  1. S CLS=$P(REC,U,4)
  1. S:CLS="" CLS="U"
  1. ;Q:'+ONE&(STAT="I")&(((CLS'="P")&(PER="P"))!((CLS="P")&(PER'="P"))) ;P20
  1. S FLTR=0 D Q:FLTR
  1. . I +ONE Q ;Requested specific problem
  1. . I STAT'="I" Q ;Not inactive or PHx
  1. . I CLS'="P",TYP'["I" S FLTR=1 Q ;Inactive, but don't want
  1. . I CLS="P",TYP'["P" S FLTR=1 Q ;PHx, but don't want
  1. I CLS="P" S ARRAY(ICD)=""
  1. S PNAR=$$GET1^DIQ(9000011,PRIEN,.05)
  1. Q:PNAR=""
  1. S FACIEN=+$P(REC,U,6)
  1. S FACAB=$P($G(^AUTTLOC(FACIEN,0)),U,7),FAC=$P($G(^(0)),U,10)
  1. I $G(DUZ("AG"))'="I" S:'$L(FAC) FAC=999999 ;P6
  1. Q:FAC'?6N
  1. S NMBCOD=$P(REC,U,7)
  1. Q:'NMBCOD
  1. I FACAB="" S FACAB="ZZZZ"
  1. S:$L(FACAB) NMBCOD=FACAB_"-"_NMBCOD
  1. S PRV=$P($G(^AUPNPROB(PRIEN,1)),U,4)
  1. S:PRV PRV=$P($G(^VA(200,+PRV,0)),U)
  1. S ONSET=$$FMTDATE^BGOUTL($P(REC,U,13))
  1. S PIP=$P($G(^AUPNPROB(PRIEN,0)),U,19)
  1. S PRI=$O(^BGOPROB("B",PRIEN,0))
  1. S:PRI PRI=$P($G(^BGOPROB(PRI,0)),U,2)
  1. S XICD=$$ADDICD^BGOPROB1(PRIEN)
  1. N X,VAR
  1. S POVEVER=$$USED^BGOPROB1(PRIEN) ;P14
  1. S VAR=$$GETVAR^CIAVMEVT("ENCOUNTER.ID.ALTERNATEVISITID",,"CONTEXT.ENCOUNTER")
  1. S VIEN=""
  1. I VAR'="" D
  1. .S VIEN=$$VSTR2VIS^BEHOENCX(DFN,VAR)
  1. .Q:VIEN<1
  1. .I $P($G(^AUPNVSIT(VIEN,0)),U,7)="H"!($P($G(^AUPNVSIT(VIEN,0)),U,7)="O") D
  1. ..S INPT="" S INPT=$O(^AUPNPROB(PRIEN,15,"B",VIEN,INPT))
  1. ..I +INPT S INPTDX=1
  1. .E D
  1. ..S OUTPT="" S OUTPT=$O(^AUPNPROB(PRIEN,14,"B",VIEN,OUTPT))
  1. ..I +OUTPT D
  1. ...N VPOV,FOUND
  1. ...S FOUND=0
  1. ...S VPOV=0 F S VPOV=$O(^AUPNVPOV("AD",VIEN,VPOV)) Q:VPOV=""!(FOUND=1) D
  1. ....I $P($G(^AUPNVPOV(VPOV,0)),U,16)=PRIEN D
  1. .....S OUTPTDX=VPOV
  1. .....S FOUND=1
  1. S NORMAL=""
  1. I DESCT'="" D QUALLK^BGOVPOV1(.NORMAL,DESCT,"N")
  1. S ASM=""
  1. D CHKASM^BGOASLK(.ASM,ICD,DESCT)
  1. S LAT=$$LAT^BGOPROB1(PRIEN) ;IHS/MSC/MGH Patch 20 for laterality
  1. S CNT=CNT+1
  1. ;S @RET@(CNT)=NMBCOD_U_DFN_U_ICD_U_MODDT_U_CLS_U_PNAR_U_DENT_U_STAT_U_ONSET_U_PRIEN_U_NOTES_U_POVIEN_U_ICDNAME_U_PRV_U_FACIEN_U_PRI_U_CLASS
  1. S @RET@(CNT)="P"_U_PRIEN_U_CONCT_U_DESCT_U_NMBCOD_U_STAT2_U_ONSET_U_PNAR_U_ICD_U_PRI_U_CLS_U_PIP_U_XICD_U_INPTDX_U_OUTPTDX_U_POVEVER_U_ASM_U_NORMAL_U_LAT_U_DEFST
  1. ;Patch 20 added for sorting
  1. D P1^BGOPROB2(.RET,.CNT,DFN,PRIEN,DESCT)
  1. ;MSC/MGH Patch 23
  1. I FRACTURE'="" D
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)="F"_U_FRACTURE_U_FXLST
  1. ;Return qualifiers for this problem
  1. N QUAL,QNODE,SNO,TXT,X,QPRV
  1. S TXT=""
  1. N YQ,Z
  1. F YQ=13,17,18 D
  1. .S QUAL=1 F S QUAL=$O(^AUPNPROB(PRIEN,YQ,QUAL)) Q:'+QUAL D
  1. ..S CNT=CNT+1
  1. ..S QNODE=$G(^AUPNPROB(PRIEN,YQ,QUAL,0))
  1. ..S SNO=$P(QNODE,U,1)
  1. ..S X=$$CONC^BSTSAPI(SNO_"^^^1")
  1. ..I $P(X,U,1)'="" S TXT=$P(X,U,4)
  1. ..S Z=$S(YQ=13:"S",YQ=17:"F",YQ=18:"C")
  1. ..S QPRV=$P(QNODE,U,2)
  1. ..I QPRV'="" S QPRV=$P($G(^VA(200,QPRV,0)),U)
  1. ..;S @RET@(CNT)="Q"_U_Z_U_QUAL_U_SNO_U_TXT_U_$P(QNODE,U,2)_U_$P(QNODE,U,3)
  1. ..S @RET@(CNT)="Q"_U_Z_U_QUAL_U_SNO_U_TXT_U_QPRV_U_$$FMTDATE^BGOUTL($P(QNODE,U,3))
  1. ;IHS/MSC/MGH Patch 15 moved to new routine
  1. ;Get the asthm control information
  1. S CONTROL=$$CLASS^BGOPROB2(REC,DFN,ASM)
  1. I CONTROL'="" D
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=CONTROL
  1. ;Return notes for this problem
  1. S NOTES=""
  1. D NOTES^BGOPRBN(.NOTES,PRIEN,1)
  1. S I="" F S I=$O(NOTES(I)) Q:I="" D
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)="N"_U_$G(NOTES(I))
  1. S INJSTR=$$INJCHK^BGOPROB2(PRIEN,VIEN)
  1. I INJSTR'="" D
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=INJSTR
  1. ;Return goals, care plans, visit instructions and treatments, consults, referrals and education topics
  1. I +ACT>0 D
  1. .D GET^BGOCPLAN(.RET,PRIEN,DFN,"G",CPTYP,.CNT)
  1. .D GET^BGOCPLAN(.RET,PRIEN,DFN,"P",CPTYP,.CNT)
  1. .D GET^BGOVVI(.RET,DFN,PRIEN,NUM,.CNT)
  1. .D GET^BGOVTR(.RET,DFN,PRIEN,NUM,.CNT)
  1. .I ACT=2 D GET^BGOVOB(.RET,DFN,PRIEN,NUM,.CNT)
  1. .D GETCON^BGOVTR(.RET,DFN,PRIEN,NUM,.CNT)
  1. .D GETREF^BGOVTR(.RET,DFN,PRIEN,NUM,.CNT)
  1. .D GETEDU^BGOVTR(.RET,DFN,PRIEN,NUM,.CNT)
  1. Q
  1. ; Delete a problem entry
  1. ; PRIEN = Problem IEN ^ TYPE ^ DELETE REASON ^ OTHER^PROB ID
  1. DEL(RET,PRIEN) ;EP
  1. D DEL^BGOPROB3(.RET,PRIEN)
  1. Q
  1. ; Add a problem entry
  1. ; DFN = Patient IEN
  1. ; PRIEN = IEN of problem, null if new
  1. ; VIEN = Needed if asthma DX
  1. ; List(n)
  1. ; "P"[1] ^ SNOMED CT [2] ^ Descriptive CT [3] ^ Provider text [4] ^ Mapped ICD [5]
  1. ; ^ Location [6] ^ Date of Onset [7] ^ Status [8] ^ Class [9] ^ Problem # [10] ^ Priority [11]
  1. ; ^ INP DX [12] ^ Laterality codes [13]
  1. ; "A"[1] ^ Classification [2] ^ Control [3] ^ V asthma IEN [4]
  1. ; "Q"[1] ^ TYPE [2] ^ Qualifier IEN [3] ^ Qual SNOMED [4] ^ By [5] ^ When [6] ^ Delete [7]
  1. ; SPEC = Special conditions
  1. ; PIP = Prenatal Problem sent from PIP
  1. SET(RET,DFN,PRIEN,VIEN,ARRAY,SPEC,PIP) ;EP
  1. N CLASS,DIEN,ONSET,NARR,LIEN,PRNUM,LOCN,DMOD,DENT,VAPR,INP,INPT,SNODATA
  1. N FDA,IEN,FPNUM,FPIEN,FNUM,IENS,PRNEW,PRIOR,SNOCT,DESCT,XIEN,ERR,IMP,INDIEN
  1. S SPEC=$G(SPEC),PIP=$G(PIP)
  1. S FNUM=$$FNUM,RET="",ERR=0
  1. S (DIEN,SNOCT)=""
  1. S PRIEN=$G(PRIEN),VIEN=$G(VIEN)
  1. S XIEN="" F S XIEN=$O(ARRAY(XIEN)) Q:XIEN=""!(ERR=1) D
  1. .S INP=$G(ARRAY(XIEN))
  1. .I $P(ARRAY(XIEN),U,1)="P" D PROB(.RET,INP,SPEC,PIP)
  1. .I $P(ARRAY(XIEN),U,1)="A" D ASTHMA(.RET,VIEN,INP,DIEN,DESCT)
  1. .I $P(ARRAY(XIEN),U,1)="Q" D QUAL(.RET,INP)
  1. Q
  1. PROB(RET,INP,SPEC,PIP) ;PROBLEM DATA
  1. N X,INDIEN,LAT,LATEXT
  1. S INDIEN=$P($P(INP,U,5),"|",1)
  1. S NARR=$P(INP,U,4)
  1. S NARR=$TR(NARR,"^|","")
  1. S LIEN=$P(INP,U,6)
  1. S ONSET=$$CVTDATE^BGOUTL($P(INP,U,7))
  1. S CLASS=$P(INP,U,9)
  1. S SNOCT=$P(INP,U,2)
  1. ; IHS/MSC/MGH changed to new API-P14
  1. ;S SNODATA=$$CONC^BSTSAPI(SNOCT_"^^^1")
  1. S SNODATA=$$CONC^AUPNSICD(SNOCT_"^^^1")
  1. ;IHS/MSC/MGH changed to handle special cases p14
  1. I +SPEC S DIEN=INDIEN
  1. E S DIEN=$P($P(SNODATA,U,5),";",1)
  1. ;I ((DIEN="")!(DIEN=".9999")!(DIEN="ZZZ.999"))&(INDIEN'="") S DIEN=INDIEN
  1. I DIEN="" D
  1. .;Patch 14 check for which undefined code to use
  1. .S IMP=$$IMP^ICDEX("10D",DT)
  1. .I IMP'>$$NOW^XLFDT S DIEN="ZZZ.999"
  1. .I IMP>$$NOW^XLFDT S DIEN=".9999"
  1. I DIEN'["." S DIEN=DIEN_"."
  1. S DESCT=$P(INP,U,3)
  1. ;I CLASS="P"&(DUZ("AG")'="I") S CLASS="I"
  1. S STAT=$P(INP,U,8)
  1. ;MSC/MGH Store default status from lookup patch 20
  1. I STAT="" S STAT=$P(SNODATA,U,9)
  1. I STAT="" S STAT="Episodic"
  1. S STAT=$S(STAT="Chronic":"A",STAT="Inactive":"I",STAT="Sub-acute":"S",STAT="Episodic":"E",STAT="Social/Environmental":"O",STAT="Routine/Admin":"R",STAT="Admin":"R",1:"E")
  1. S VAPR=$S(STAT="A":"C",STAT="S":"C",STAT="O":"C",STAT="E":"A",STAT="R":"C",1:"")
  1. I '$D(^DPT(DFN,0)) S ERR=1,RET=$$ERR^BGOUTL(1001) Q
  1. S PRNUM=$P(INP,U,10)
  1. S PRNEW='PRIEN
  1. S PRIOR=$P(INP,U,11)
  1. S DIEN=$P($$ICDDX^ICDEX(DIEN,"","","E"),U,1)
  1. I 'DIEN S ERR=1,RET=$$ERR^BGOUTL(1048) Q
  1. ;IHS/MSC/MGH update date modified to include time
  1. S DMOD=$$NOW^XLFDT,DENT=$S(PRIEN:"",1:DT)
  1. I 'LIEN S ERR=1,RET=$$ERR^BGOUTL(1049) Q
  1. ;Provider narrative is now provider text | descriptive SNOMED CT
  1. ;Patch 20 provider narrative is now provider text | descriptive SNOMED CT | laterality
  1. S LAT=$P(INP,U,13)
  1. ;Do not store unspecified laterality
  1. I LAT="272741003|261665006"!(LAT="272741003|") S LAT=""
  1. I LAT'="" D
  1. .S LATEXT=$$CVPARM^BSTSMAP1("LAT",$P(LAT,"|",2))
  1. .S NARR=NARR_"|"_DESCT_"|"_LATEXT
  1. E S NARR=NARR_"|"_DESCT
  1. I $L(NARR) D Q:RET
  1. .S RET=$$FNDNARR^BGOUTL2(NARR)
  1. .S:RET>0 NARR=RET,RET=""
  1. S FPIEN=""
  1. I PRIEN D
  1. .S IENS=PRIEN_","
  1. E D
  1. .S:'PRNUM PRNUM=1+$E($O(^AUPNPROB("AA",DFN,LIEN,""),-1),2,99)
  1. .S (FPIEN,FPNUM)=""
  1. .S IENS="+1,"
  1. S FDA=$NA(FDA(FNUM,IENS))
  1. S @FDA@(.01)=DIEN
  1. S:PRNEW @FDA@(.02)=DFN
  1. S @FDA@(.03)=DMOD
  1. S @FDA@(.14)=DUZ
  1. I CLASS="P" S STAT="I"
  1. S @FDA@(.04)=$S($L(CLASS):CLASS,1:"@")
  1. S @FDA@(.05)=$S(NARR:NARR,1:"@")
  1. S:PRNEW @FDA@(.06)=LIEN
  1. S:PRNUM @FDA@(.07)=PRNUM
  1. S:PRNEW @FDA@(.08)=DENT
  1. S @FDA@(1.03)=DUZ
  1. S @FDA@(.12)=STAT
  1. S @FDA@(.13)=ONSET
  1. S:PRNEW @FDA@(1.04)=DUZ
  1. S @FDA@(1.14)=VAPR
  1. S @FDA@(80001)=SNOCT
  1. S @FDA@(80002)=DESCT
  1. I $P(LAT,"|",2)'="" S @FDA@(.22)=LAT ;Patch 20
  1. S RET=$$UPDATE^BGOUTL(.FDA,,.IEN)
  1. Q:RET
  1. S:'PRIEN PRIEN=IEN(1)
  1. D SETPRI(,PRIEN_U_PRIOR)
  1. ;IHS/MSC/MGH Set prenatal PIP if called from CVG Patch 20
  1. I +PIP D
  1. .I $$TEST^CIAUOS("SET^BJPNAPIS") S RET=$$SET^BJPNAPIS(PRIEN) Q:RET ;Set Prenatal PIP entry
  1. S:'RET RET=PRIEN
  1. D:RET>0 EVT(PRIEN,'PRNEW)
  1. N RES
  1. ;Set any extra ICD codes
  1. D SETICD^BGOPROB1(.RES,PRIEN,$P(SNODATA,U,5),";")
  1. ;Set inpt DX
  1. N RES1
  1. S INPT=$P(INP,U,12)
  1. I INPT=1 S RES1="" D HOSP^BGOHOS(.RES1,PRIEN,VIEN)
  1. ;S:FPIEN RET=$$DELETE^BGOUTL(FPNUM,FPIEN)
  1. ;S:'RET&(DUZ("AG")="I") RET=$$SETFP(PRIEN)
  1. Q
  1. ASTHMA(RET,VIEN,INP,DIEN,DESCT) ;ASTHMA DATA
  1. D ASTHMA^BGOPROB3(.RET,VIEN,INP,DIEN,DESCT)
  1. Q
  1. QUAL(RET,INP) ;QUALIFIERS
  1. D QUAL^BGOPROB1(.RET,INP)
  1. Q
  1. ; Broadcast a problem event
  1. EVT(PRIEN,OPR,X) ;EP
  1. N DFN,DATA
  1. S:'$D(X) X=$G(^AUPNPROB(PRIEN,0))
  1. S DFN=$P(X,U,2),DATA=PRIEN_U_$G(CIA("UID"))_U_OPR
  1. D:DFN BRDCAST^CIANBEVT("PCC."_DFN_".PRB",DATA)
  1. Q
  1. ; Return file number
  1. FNUM() Q 9000011