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

BEHOENCX.m

Go to the documentation of this file.
  1. BEHOENCX ;MSC/IND/DKM - Encounter Context Support ;27-May-2014 14:53;DU
  1. ;;1.1;BEH COMPONENTS;**005003,005004,005007,005010,005011**;Sep 18, 2007;Build 1
  1. ;=================================================================
  1. ; RPC: Fetch visit data given visit file IEN
  1. ; Returns hosp loc^visit date^service category^dfn^visit id^locked
  1. ; IHS/MGH/MGH EHR 12 allow I visits that have hospital locations to be visible
  1. ;=================================================================
  1. GETVISIT(DATA,IEN) ;EP
  1. N VSIT,DLM
  1. S (DLM,DATA)=""
  1. Q:$$LOOKUP^VSIT(IEN,"I",0)<1
  1. Q:$G(VSIT("DEL"))
  1. F VSIT="LOC","VDT","SVC","PAT","VID" S DATA=DATA_DLM_VSIT(VSIT),DLM=U
  1. S DATA=DATA_U_$$ISLOCKED(IEN)
  1. Q
  1. ; RPC: Fetch visit IEN given visit id
  1. VID2IEN(DATA,VID) ;EP
  1. S DATA=$$VID2IEN^VSIT(VID)
  1. Q
  1. ; RPC: Return IEN of hospital location
  1. LOCIEN(DATA,LOC) ;EP
  1. S DATA=$$FIND1^DIC(44,"","QX",LOC)
  1. Q
  1. ; RPC: Return values for specified encounter
  1. ; DFN = Patient IEN
  1. ; VSTR = Visit string (extended)
  1. ; PRV = Provider
  1. ; CREATE= -1=Always, 0=never, 1=If not found
  1. ; Return value =
  1. ; 1 2 3 4 5 6 7 8 9
  1. ; LOCNAME^LOCABBR^ROOMBED^PROVIEN^PROVNAME^VISITIEN^VISITID^LOCKED^ERRORTXT
  1. FETCH(DATA,DFN,VSTR,PRV,CREATE) ;EP
  1. N IEN,X,FETCH
  1. S PRV=+$G(PRV)
  1. S FETCH=$$GET^XPAR("ALL","BEHOENCX PROV ENC FETCH")
  1. I 'PRV,$$ISPROV^BEHOUSCX S PRV=DUZ
  1. S IEN=$$VSTR2VIS(DFN,.VSTR,.CREATE,PRV)
  1. I IEN>0,'PRV,FETCH D
  1. .D GETPRV2(.X,IEN,1)
  1. .S PRV=+$O(X(0))
  1. S DATA=$P($G(^SC(+VSTR,0)),U,1,2)
  1. S $P(DATA,U,3)=$P($G(^DPT(DFN,.101)),U)
  1. S $P(DATA,U,4)=PRV
  1. S $P(DATA,U,5)=$P($G(^VA(200,PRV,0)),U)
  1. I IEN>0 S $P(DATA,U,6)=IEN,$P(DATA,U,7)=$P($G(^AUPNVSIT(IEN,150)),U),$P(DATA,U,8)=$$ISLOCKED(IEN)
  1. E S $P(DATA,U,9)=$P(IEN,U,2)
  1. Q
  1. ; RPC: Return location info
  1. ; Returns 0 node of HOSPITAL LOCATION file for specified entry.
  1. LOCINFO(DATA,LOC) ;
  1. Q $G(^SC(+LOC,0))
  1. ; Find a visit
  1. ; DFN = Patient IEN
  1. ; DAT = Visit date/time
  1. ; CAT = Service category
  1. ; LOC = Value to compare (location or stop code)
  1. ; CRE = Force create?
  1. ; PRV = Provider IEN to restrict search (optional)
  1. ; ELC = Encounter location (optional)
  1. ; Returns one of:
  1. ; If found or created: visit ien
  1. ; If not found: 0
  1. ; If error: -1^error message
  1. FNDVIS(DFN,DAT,CAT,LOC,CRE,PRV,ELC) ;PEP - Find a visit
  1. N IN,OUT,IEN,DIF
  1. S IN("PAT")=DFN
  1. S IN("VISIT DATE")=DAT
  1. S IN("VISIT TYPE")=$S(CAT="E":"O",1:$S($G(DUZ("AG"))="I":$$GET1^DIQ(9001000,DUZ(2),.04,"I"),1:$$GET^XPAR("ALL","BEHOENCX VISIT TYPE")))
  1. S IN("SRV CAT")=CAT
  1. S IN("TIME RANGE")=60
  1. S IN("USR")=DUZ
  1. S:$G(LOC) IN("HOS LOC")=LOC
  1. S:$G(XQY) IN("APCDOPT")=XQY
  1. S:$G(PRV) IN("PROVIDER")=PRV
  1. S ELC=$G(ELC)
  1. I $L(ELC),ELC'=+ELC D
  1. .S IN("APCDOLOC")=ELC
  1. .S ELC=$$GET^XPAR("ALL","BEHOENCX OTHER LOCATION")
  1. S IN("SITE")=$S(ELC:ELC,$P($G(^SC(+$G(LOC),0)),U,4):$P(^(0),U,4),1:DUZ(2))
  1. I 'CRE S IN("NEVER ADD")=1
  1. E I CRE<0 S IN("FORCE ADD")=1
  1. I $G(DUZ("AG"))="I" D
  1. .D GETVISIT^BSDAPI4(.IN,.OUT)
  1. E D GETVISIT^BEHOENC1(.IN,.OUT)
  1. Q:'OUT(0) $S(OUT(0)[U:"-1^"_$P(OUT(0),U,2),1:0)
  1. S IEN=0,DIF=999999
  1. F S IEN=$O(OUT(IEN)) Q:'IEN D
  1. .I OUT(IEN)="ADD" D
  1. ..N VSTR
  1. ..S VSTR=$$VIS2VSTR(DFN,IEN)
  1. ..D BRDCAST^CIANBEVT("PCC."_DFN_".VST",VSTR)
  1. ..D:$G(PRV) UPDPRV(,DFN,VSTR,PRV)
  1. .S:$$ABS(OUT(IEN))<DIF DIF=$$ABS(OUT(IEN)),IEN(0)=IEN
  1. Q IEN(0)
  1. ; Return absolute value
  1. ABS(X) Q $S(X<0:-X,1:X)
  1. ; Return a visit ien from a visit string (create if necessary)
  1. ; DFN = Patient IEN
  1. ; VSTR = Visit string
  1. ; CREATE = Create flag
  1. ; 0 = Don't create
  1. ; >0 = Create if not found
  1. ; <0 = Always create
  1. ; PRV = Provider IEN to restrict visit search (optional)
  1. VSTR2VIS(DFN,VSTR,CREATE,PRV) ;PEP - Convert visit string to visit IEN
  1. N IEN,DAT,CAT,LOC,FLG,VSIT,LP
  1. S LOC=+VSTR,DAT=+$P(VSTR,";",2),CAT=$P(VSTR,";",3),IEN=+$P(VSTR,";",4),CREATE=+$G(CREATE)
  1. I 'IEN,CREATE'<0 S IEN=$$FNDVIS(DFN,DAT,CAT,LOC,0,.PRV)
  1. I 'IEN,CREATE'<0 S IEN=$$FNDVIS(DFN,DAT,CAT,LOC,0)
  1. I 'IEN,CREATE S IEN=$$FNDVIS(DFN,DAT,CAT,LOC,CREATE,.PRV)
  1. S:IEN>0 VSTR=$$VIS2VSTR(DFN,IEN,.IEN),$P(VSTR,";")=LOC
  1. Q IEN
  1. ; Return a visit string given visit ien
  1. VIS2VSTR(DFN,IEN,ERR) ;PEP - Convert visit IEN to visit string
  1. N VSTR
  1. S VSTR=$G(^AUPNVSIT(+IEN,0))
  1. I '$L(VSTR) S ERR="-1^Visit does not exist"
  1. E I $P(VSTR,U,5)'=DFN S ERR="-1^Visit does not belong to current patient",VSTR=""
  1. E S VSTR=$P(VSTR,U,22)_";"_+VSTR_";"_$P(VSTR,U,7)_";"_IEN
  1. Q VSTR
  1. ; RPC: Return a list of appointments
  1. ; APPTTIME^LOCIEN^LOCNAME^EXTSTATUS
  1. APPTLST(DATA,DFN) ;EP
  1. N VASD,I
  1. S VASD("F")=$$HTFM^XLFDT($H-30,1)
  1. S VASD("T")=$$HTFM^XLFDT($H+1,1)_".2359"
  1. S VASD("W")="123456789"
  1. D SDA^VADPT
  1. S I=0
  1. F S I=$O(^UTILITY("VASD",$J,I)) Q:'I D
  1. .S DATA(I)=$P(^UTILITY("VASD",$J,I,"I"),U,1,2)_U_$P(^("E"),U,2,3)
  1. K ^UTILITY("VASD",$J)
  1. Q
  1. ; RPC: Return a list of admissions
  1. ; VSTR^LOCNAME^ADMDATE^TYPE^LOCKED
  1. ADMITLST(DATA,DFN,BEG,END) ;EP
  1. N TIM,MOV,CNT,IDT,IDT2
  1. S CNT=0,TIM=""
  1. S:'$G(BEG) BEG=2000000
  1. S:'$G(END) END=DT
  1. S IDT2=9999999-(BEG\1)+.9,IDT=9999999-(END\1)
  1. F Q:'IDT!(IDT>IDT2) D S IDT=$O(^DGPM("ATID1",DFN,IDT))
  1. .S MOV=0 F S MOV=$O(^DGPM("ATID1",DFN,IDT,MOV)) Q:MOV'>0 D
  1. ..S X=$$ADMITINF(DFN,MOV)
  1. ..S:X CNT=CNT+1,DATA(CNT)=X
  1. Q
  1. ; RPC: Return current admission info
  1. ; VSTR^LOCNAME^ADMDATE^TYPE^LOCKED
  1. ADMITCUR(DATA,DFN) ;EP
  1. S DATA=$$ADMITINF(DFN,+$G(^DPT(DFN,.105)))
  1. Q
  1. ; Return admission info
  1. ; VSTR^LOCNAME^ADMDATE^TYPE^LOCKED
  1. ADMITINF(DFN,MOV) ;EP
  1. N VIEN,VSTR,LLOC,XLOC,HLOC,CMOV,AMOV,DMOV,LMOV,MTIM,XTYP,X0
  1. S X0=$G(^DGPM(+MOV,0))
  1. Q:$P(X0,U,3)'=DFN ""
  1. S MTIM=$P(X0,U),DMOV=$P(X0,U,17),VIEN=$P(X0,U,27)
  1. S:'$D(^AUPNVSIT(+VIEN,0)) VIEN=""
  1. S CMOV=+$G(^DPT(DFN,.102)),AMOV=+$G(^(.105))
  1. S XTYP=$P($G(^DG(405.1,+$P(X0,U,4),0)),U)
  1. I MOV=AMOV,CMOV'=AMOV,$D(^DGPM(CMOV,0)) S LMOV=CMOV
  1. E S LMOV=MOV
  1. D AL2(MOV,.XLOC,.HLOC),AL2(LMOV,.LLOC,.HLOC):LMOV'=MOV
  1. I $L($G(LLOC)),LLOC'=XLOC S XLOC=XLOC_" ("_LLOC_")"
  1. S VSTR=HLOC_";"_MTIM_";H;"_VIEN
  1. Q VSTR_U_XLOC_U_MTIM_U_XTYP_U_$$ISLOCKED(VIEN)
  1. ; Return ward location name and associated hospital location ien for movement
  1. AL2(MOV,WLOC,HLOC) ;
  1. S WLOC=+$P($G(^DGPM(MOV,0)),U,6),WLOC=$P($G(^DIC(42,WLOC,0)),U),HLOC=+$G(^(44))
  1. Q
  1. ; RPC: Get discharge movement information
  1. DISCHRG(DATA,DFN,ADMITDT) ;EP
  1. N VAIP
  1. S DATA=DT
  1. Q:'$G(ADMITDT)
  1. S VAIP("D")=ADMITDT
  1. D 52^VADPT
  1. S:VAIP(17) DATA=+VAIP(17,1)
  1. Q
  1. ; Returns true if active hospital location
  1. ; LOC = IEN of hospital location
  1. ; DAT = optional date to check (defaults to today)
  1. ACTLOC(LOC,DAT) ;PEP - Is active location?
  1. N D0,X
  1. S X=$G(^SC(LOC,0))
  1. Q:'$L(X) 0 ; Screen nonexistent entries
  1. S X=$P($G(^DG(40.8,+$P(X,U,15),0)),U,7)
  1. I X,X'=DUZ(2) Q 0 ; Screen clinics not in current division
  1. Q:+$G(^SC(LOC,"OOS")) 0 ; Screen OOS entry
  1. S D0=+$G(^SC(LOC,42)),DAT=$G(DAT,DT)\1
  1. I D0 D WIN^DGPMDDCF Q 'X ; Check out of svc wards
  1. S X=$G(^SC(LOC,"I"))
  1. Q:'X 1 ; No inactivate date
  1. Q:DAT'<$P(X,U)&($P(X,U,2)=""!(DAT<$P(X,U,2))) 0 ; Check reactivate date
  1. Q 1 ; Must still be active
  1. ; RPC: Return a set of hospital locations
  1. HOSPLOC(DATA,FROM,DIR,MAX,TYPE,START,END) ;EP
  1. N IEN,CNT,APT
  1. S FROM=$G(FROM),DIR=$G(DIR,1),MAX=$G(MAX,44),TYPE=$G(TYPE),CNT=0
  1. S START=$G(START)\1,END=$G(END)\1
  1. S:'END END=START
  1. F S FROM=$O(^SC("B",FROM),DIR),IEN="" Q:FROM="" D Q:CNT'<MAX
  1. .F S IEN=$O(^SC("B",FROM,IEN),DIR) Q:'IEN D
  1. ..I $$ACTLOC(IEN),$P(^SC(IEN,0),U,3)[TYPE D
  1. ...I START S APT=$O(^SC(IEN,"S",START-.1))\1 Q:'APT!(APT>END)
  1. ...S CNT=CNT+1,DATA(CNT)=IEN_U_$P(^SC(IEN,0),U)_U_$S($G(DUZ("AG"))="I":$P($G(^BSDSC(IEN,0)),U,12),1:$P($G(^SC(IEN,0)),U,9))
  1. Q
  1. ; RPC: Return a set of clinics
  1. CLINLOC(DATA,FROM,DIR,MAX,START,END) ;EP
  1. D HOSPLOC(.DATA,.FROM,.DIR,.MAX,"C",.START,.END)
  1. Q
  1. ; RPC: Return a set of wards
  1. INPLOC(DATA,FROM,DIR,MAX) ;EP
  1. D HOSPLOC(.DATA,.FROM,.DIR,.MAX,"W")
  1. Q
  1. ; RPC: Return appts/visits for patient
  1. ; DFN = Patient IEN
  1. ; BEG = Beginning date to search (optional)
  1. ; Defaults to BEHOENCX SEARCH RANGE START
  1. ; END = Ending date to search (optional)
  1. ; Defaults to BEHOENCX SEARCH RANGE END
  1. ; LOC = If not specified, return all locations and all active appointments
  1. ; If <0, return all locations and all appointments (except checked-in)
  1. ; If >0, return only specified location and only active appointments
  1. ; SCEXC = Contains service category types to exclude (defaults to HXI)
  1. ; IGPFLG = Ignore pending check-in appointments
  1. ; .DATA= List of results in format:
  1. ; VSTR^LOCNAME^DATE^STATUS^LOCKED^PRV^PRVNM^STANDALONE
  1. VISITLST(DATA,DFN,BEG,END,LOC,SCEXC,IGPFLG) ;EP
  1. N VAERR,VASD,CNT,IDT,IDT2,STS,DTM,LOCNAM,LOCIEN,VSTR,IEN,LP,XI,XE,X
  1. S CNT=0,DATA=$$TMPGBL^CIAVMRPC,LOC=+$G(LOC)
  1. S SCEXC=$G(SCEXC,"X") ;p9 removed H, p12 removed I
  1. S:'$G(BEG) BEG=$$DTSTART
  1. S:'$G(END) END=$$DTSTOP+.9
  1. S:'$G(IGPFLG) IGPFLG=0
  1. ; Return list of visits for a patient
  1. S IDT2=9999999-(BEG\1)+.9,IDT=9999999-(END\1)
  1. F Q:'IDT!(IDT>IDT2) D S IDT=$O(^AUPNVSIT("AA",DFN,IDT))
  1. .F IEN=0:0 S IEN=$O(^AUPNVSIT("AA",DFN,IDT,IEN)) Q:'IEN D
  1. ..N PRV
  1. ..S XI=$G(^AUPNVSIT(IEN,0)),DTM=+XI,LOCIEN=$P(XI,U,22),LOCNAM=$P($G(^SC(+LOCIEN,0),"Unknown"),U),X=$P(XI,U,7)
  1. ..Q:$P(XI,U,11) ; Ignore if logically deleted
  1. ..Q:'LOC&'LOCIEN
  1. ..Q:LOC>0&(LOC'=LOCIEN)
  1. ..D GETPRV2(.PRV,IEN,1)
  1. ..S PRV=$P($G(PRV(+$O(PRV(0)))),U,1,2)
  1. ..S VSTR=LOCIEN_";"_DTM_";"_X_";"_IEN,STS=$$SET^CIAU(X,$P($G(^DD(9000010,.07,0)),U,3))
  1. ..;IHS/MSC/MGH p12 allow I visits with location
  1. ..I X="I"&(+LOCIEN>0) S CNT=CNT+1,@DATA@(-DTM,CNT)=VSTR_U_LOCNAM_U_DTM_U_STS_U_$$ISLOCKED(IEN)_U_PRV_U_'$D(^SCE("AVSIT",IEN))
  1. ..E S:SCEXC'[X CNT=CNT+1,@DATA@(-DTM,CNT)=VSTR_U_LOCNAM_U_DTM_U_STS_U_$$ISLOCKED(IEN)_U_PRV_U_'$D(^SCE("AVSIT",IEN))
  1. Q:LOC>0
  1. Q:IGPFLG>0
  1. ; Get appointments pending check-in
  1. S VASD("F")=$S(LOC<0:BEG,BEG<DT:DT,1:BEG)
  1. S VASD("T")=END
  1. S VASD("W")=$S(LOC<0:123456789,1:1)
  1. D SDA^VADPT
  1. S LP=0
  1. F S LP=$O(^UTILITY("VASD",$J,LP)) Q:'LP D
  1. .S XI=^UTILITY("VASD",$J,LP,"I"),XE=^("E")
  1. .S DTM=$P(XI,U),LOCIEN=$P(XI,U,2),LOCNAM=$P(XE,U,2)
  1. .Q:$$CHKDIN(DFN,LOCIEN,DTM)
  1. .S XI=$G(^DPT(DFN,"S",DTM,0))
  1. .Q:+XI'=LOCIEN
  1. .S XI=$P(XI,U,20),STS=$S(LOC<0:$P(XE,U,3),1:"Pending Check-In")
  1. .I XI,$P($G(^SCE(XI,0)),U,5) Q
  1. .S VSTR=LOCIEN_";"_DTM_";A"
  1. .S CNT=CNT+1,@DATA@(-DTM,CNT)=VSTR_U_LOCNAM_U_DTM_U_STS
  1. K ^UTILITY("VASD",$J)
  1. Q
  1. ; Returns true if checked in
  1. CHKDIN(DFN,LOCIEN,DTM) ;
  1. Q:$G(DUZ("AG"))="I" $$CI^BSDU2(DFN,LOCIEN,DTM)
  1. Q ''$P($$STATUS^SDAMA308(DFN,DTM,LOCIEN),";",4)
  1. ; Returns visit lock status:
  1. ; -1: Visit not found
  1. ; 0: Visit is not locked
  1. ; 1: Visit is locked
  1. ISLOCKED(IEN) ;PEP - Is visit locked?
  1. N DAT,DAYS,EXPDT
  1. S DAT=$$VISREFDT(IEN)
  1. Q:'DAT -1
  1. ;IHS/MSC/PLS - 02/18/09 - Parameter now holds lock expiration date
  1. S EXPDT=$$GET^XPAR("USR","BEHOENCX VISIT LOCK OVERRIDE","`"_IEN)
  1. Q:EXPDT'<$$DT^XLFDT() 0
  1. D:EXPDT DEL^XPAR("USR","BEHOENCX VISIT LOCK OVERRIDE","`"_IEN) ; remove expired locked
  1. ;Q:$$GET^XPAR("USR","BEHOENCX VISIT LOCK OVERRIDE","`"_IEN) 0
  1. S DAYS=$$GET^XPAR("ALL","BEHOENCX VISIT LOCKED")
  1. Q $$FMDIFF^XLFDT(DT,DAT)>$S(DAYS<1:1,1:DAYS)
  1. ; Returns reference date for visit lock check
  1. VISREFDT(IEN) ;
  1. N ADM,DIS,DAT
  1. S DAT=$P($G(^AUPNVSIT(+IEN,0)),U,2)
  1. Q:'DAT ""
  1. S ADM=$O(^DGPM("AVISIT",IEN,0))
  1. Q:'ADM DAT
  1. S DIS=$P($G(^DGPM(ADM,0)),U,17)
  1. Q $S(DIS:$P($G(^DGPM(DIS,0)),U),1:DT)
  1. ; RPC: Return providers associated with a visit (by VSTR)
  1. ; If PRI is set, returns primary only
  1. ; Returns as DATA(DUZ)=DUZ^Name^Primary^EncDT
  1. GETPRV(DATA,DFN,VSTR,PRI) ;EP
  1. D GETPRV2(.DATA,$$VSTR2VIS(DFN,VSTR,0),.PRI)
  1. Q
  1. ; RPC: Return providers associated with a visit (by IEN)
  1. ; If PRI is set, returns primary only
  1. ; Returns as DATA(DUZ)=DUZ^Name^Primary^EncDT
  1. GETPRV2(DATA,IEN,PRI) ;EP
  1. N LP,ED,PP,PR,X
  1. K DATA
  1. S LP=0,IEN=+IEN,PRI=+$G(PRI)
  1. F S LP=$O(^AUPNVPRV("AD",IEN,LP)) Q:'LP D
  1. .S X=$G(^AUPNVPRV(LP,0)),ED=$P($G(^(12)),U),PP=$P(X,U,4)="P",PR=+X
  1. .I $P(X,U,3)=IEN,'PRI!PP S DATA(PR)=PR_U_$$GET1^DIQ(200,PR,.01)_U_PP_U_ED
  1. Q
  1. ; RPC: Add/Remove providers to/from a visit
  1. UPDPRV(DATA,DFN,VSTR,PRV) ;EP
  1. N PCC,ACT,PRI,PFG,RTN
  1. S:$D(PRV)=1 PRV(PRV)="P"
  1. S PRV="",PFG=0
  1. F S PRV=$O(PRV(PRV)) Q:'$L(PRV) D
  1. .S ACT=PRV(PRV),PRI=0
  1. .S:ACT="P" PRI='PFG,ACT="+",PFG=1
  1. .D ADDPCC("PRV"_ACT_U_PRV_"^^^^"_PRI)
  1. D:$D(PCC) SAVE^BEHOENPC(.DATA,.PCC)
  1. Q
  1. ; RPC: Check visit for missing elements
  1. CHKVISIT(DATA,IEN) ;
  1. Q:$T(+2^BEHOXQPC)=""
  1. N RTN,CNT
  1. S CNT=0
  1. D NOPOV^BEHOXQPC(.RTN,IEN),CV1("POV")
  1. D NOEMC^BEHOXQPC(.RTN,IEN),CV1("E&M")
  1. Q
  1. CV1(DX) S:$D(RTN) CNT=CNT+1,$P(RTN,U)=DX,DATA(CNT)=RTN
  1. K RTN
  1. Q
  1. ; Build PCC array
  1. ADDPCC(X) ;
  1. S:'$D(PCC) PCC(1)="HDR^^^"_VSTR,PCC(2)="VST^PT^"_DFN
  1. S PCC($O(PCC(""),-1)+1)=X
  1. Q
  1. ; VST may either be the visit ien or a visitstr
  1. ; Optionally returns success indicator
  1. SETCTX(VST) ;PEP - Set the encounter context
  1. N UID
  1. S UID=$$GETUID^CIANBUTL
  1. D:$L(UID) QUEUE^CIANBEVT("CONTEXT.ENCOUNTER",VST,UID)
  1. Q:$Q ''$L(UID)
  1. Q
  1. ; Return FM date given relative date
  1. ; DAT = Relative date (e.g., T+1)
  1. ; DFL = Default relative date (if DAT is not specified)
  1. TOFM(DAT,DFL) ;
  1. N %DT,X,Y
  1. S X=$S(DAT="":DFL,1:DAT),%DT="TS"
  1. D ^%DT
  1. Q Y
  1. ; Return start date for encounters
  1. DTSTART() ;EP
  1. Q $$TOFM($$GET^XPAR("ALL","BEHOENCX SEARCH RANGE START",1,"I"),"T-365")
  1. ; Return stop date for encounters
  1. DTSTOP() ;EP
  1. Q $$TOFM($$GET^XPAR("ALL","BEHOENCX SEARCH RANGE STOP",1,"I"),"T+90")
  1. ; Return formatted visit detail report
  1. ENINQ(DATA,VIEN) ;
  1. S DATA=$$TMPGBL^CIAVMRPC
  1. D CAPTURE^CIAUHFS($TR($$GET^XPAR($$ENT^CIAVMRPC("BEHOENCX DETAIL REPORT"),"BEHOENCX DETAIL REPORT"),"~",U),DATA,80)
  1. Q
  1. ; Return boolean value represent if location is linked to stop code.
  1. ISSTOPCD(DATA,LOCIEN,STOPCODE) ;EP-
  1. S DATA=$$GET1^DIQ(40.7,$$GET1^DIQ(44,LOCIEN,8,"I"),1)=STOPCODE
  1. Q