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

BEDDUTID.m

Go to the documentation of this file.
  1. BEDDUTID ;VNGT/HS/BEE-BEDD Utility Routine 2 ; 08 Nov 2011 12:00 PM
  1. ;;2.0;BEDD DASHBOARD;**1,2,3**;Jun 04, 2014;Build 12
  1. ;
  1. ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. ;
  1. ;Adapted from BEDDUTL1/CNDH/RPF
  1. ;
  1. Q
  1. ;
  1. KEYCK(DUZ) ;EP - Determine if user has BEDDZMGR Key
  1. ;
  1. ; Input:
  1. ; DUZ - User IEN
  1. ;
  1. I $G(DUZ)="" Q 0
  1. ;
  1. NEW KIEN
  1. S KIEN=$O(^DIC(19.1,"B","BEDDZMGR","")) Q:KIEN="" 0
  1. I DUZ>0,$D(^VA(200,"AB",KIEN,DUZ,KIEN)) Q 1
  1. Q 0
  1. ;
  1. ADDDX(VIEN,DXI,DUZ) ;EP - Add DX TO V POV FILE
  1. ;
  1. ; Add new DX to V POV (#9000010.07)
  1. ;
  1. ; Input:
  1. ; VIEN - Visit Entry Pointer
  1. ; DXI - Diagnosis Code - Entered from Discharge Page
  1. ; DUZ - User IEN
  1. ;
  1. S VIEN=$G(VIEN,""),DXI=$G(DXI,"") S:$G(U)="" U="^"
  1. ;
  1. NEW DFN,NOW,XIEN,PDX,I9,STS
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. ;Define DUZ variable
  1. I $G(DUZ)="" S STS="Missing DUZ" Q
  1. D DUZ^XUP(DUZ)
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTID D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S NOW=$$FNOW^BEDDUTIL
  1. S DFN=$$GETF^BEDDUTIL(9000010,VIEN,.05,"I")
  1. ;
  1. ;Add entry to PROVIDER NARRATIVE - If not there
  1. S XIEN=$O(^AUTNPOV("B",DXI)) I XIEN="" D
  1. . NEW DIC,X,Y,DINUM,DLAYGO
  1. . S DIC="^AUTNPOV(",DIC(0)="XML",X=DXI,DLAYGO="9999999.27"
  1. . K DO,DD D FILE^DICN
  1. . I +Y<0 Q
  1. . S XIEN=+Y
  1. I XIEN="" Q
  1. ;
  1. ;Determine if Primary/Secondary Diagnosis
  1. S PDX="P" I $D(^AUPNVPOV("AD",VIEN)) S PDX="S"
  1. ;
  1. ;Hardset to UNCODED DIAGNOSIS
  1. S I9=$O(^ICD9("AB",.9999,"")) I I9'="" D
  1. . NEW DIC,X,Y,DINUM,DLAYGO
  1. . S DIC="^AUPNVPOV(",DIC(0)="XML",X=I9,DLAYGO=9000010.07
  1. . S DIC("DR")=".02////"_DFN_";.03////"_VIEN_";.04////"_XIEN_";.12////"_PDX_";1201////"_NOW
  1. . K DO,DD D FILE^DICN
  1. Q
  1. ;
  1. EDCON(AMERVSIT,EDCONS) ;EP - Get list of ER Consults
  1. ;
  1. ; Input:
  1. ; AMERVSIT - Pointer to ER VISIT file
  1. ;
  1. ; Output:
  1. ; EDCONS Array - List of ER Consults
  1. ;
  1. I $G(AMERVSIT)="" S EDCONS=0 Q
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTID D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW EIEN
  1. K EDCONS
  1. S EDCONS=0
  1. ;
  1. S EIEN=0 F S EIEN=$O(^AMERVSIT(AMERVSIT,19,EIEN)) Q:'EIEN D
  1. . NEW DA,IENS,COTY,DATE,CONS
  1. . S DA(1)=AMERVSIT,DA=EIEN,IENS=$$IENS^DILF(.DA)
  1. . S COTY=$$GET1^DIQ(9009080.019,IENS,.01,"E") Q:COTY=""
  1. . S DATE=$$FMTE^BEDDUTIL($$GET1^DIQ(9009080.019,IENS,.02,"I"))
  1. . S CONS=$$GET1^DIQ(9009080.019,IENS,.03,"E")
  1. . S EDCONS=EDCONS+1,EDCONS(EDCONS)=COTY_"^"_DATE_"^"_CONS
  1. ;
  1. Q
  1. ;
  1. PROC(AMERVSIT,ERPROC) ;EP - Get list of ER Procedures Performed
  1. ;
  1. ; Input:
  1. ; AMERVSIT - Pointer to ER VISIT file
  1. ;
  1. ; Output:
  1. ; ERPROC Array - List of ER Procedures Performed
  1. ;
  1. I $G(AMERVSIT)="" S ERPROC=0 Q
  1. ;
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTID D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW EIEN
  1. K ERPROC
  1. S ERPROC=0
  1. ;
  1. S EIEN=0 F S EIEN=$O(^AMERVSIT(AMERVSIT,4,EIEN)) Q:'EIEN D
  1. . NEW DA,IENS,PROC
  1. . S DA(1)=AMERVSIT,DA=EIEN,IENS=$$IENS^DILF(.DA)
  1. . S PROC=$$GET1^DIQ(9009080.04,IENS,.01,"E") Q:PROC=""
  1. . S ERPROC=ERPROC+1,ERPROC(ERPROC)=PROC
  1. ;
  1. Q
  1. ;
  1. DX(AMERVSIT,ERDX) ;EP - Get list of ER DX'S
  1. ;
  1. ; Input:
  1. ; AMERVSIT - Pointer to ER VISIT file
  1. ;
  1. ; Output:
  1. ; ERDX Array - List of DX' LOGGED BY ER
  1. ;
  1. I $G(AMERVSIT)="" S ERDX=0 Q
  1. ;
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTID D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW EIEN
  1. K ERDX
  1. S ERDX=0
  1. ;
  1. S EIEN=0 F S EIEN=$O(^AMERVSIT(AMERVSIT,5,EIEN)) Q:'EIEN D
  1. . NEW DA,IENS,DX,DXN
  1. . S DA(1)=AMERVSIT,DA=EIEN,IENS=$$IENS^DILF(.DA)
  1. . S DX=$$GET1^DIQ(9009080.05,IENS,.01,"E") Q:DX=""
  1. . S DXN=$$GET1^DIQ(9009080.05,IENS,1,"E")
  1. . S ERDX=ERDX+1,ERDX(ERDX)=DX_"^"_DXN
  1. ;
  1. Q
  1. ;
  1. MDTRN(DFN) ;EP - Update Patient's MODE OF TRANSPORT
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTID D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. NEW MD,MDO,AMUPD,ERROR
  1. ;
  1. S MD=$$GET1^DIQ(9009081,DFN_",",6,"I") Q:MD]"" 1
  1. S MDO=$$GET1^DIQ(9009081,DFN_",",2.3,"I") Q:MDO="" 1
  1. S AMUPD(9009081,DFN_",",6)=MDO
  1. I $D(AMUPD) D FILE^DIE("","AMUPD","ERROR")
  1. Q 1
  1. ;
  1. EMV(VIEN) ;EP - Return V EMERGENCY VISIT RECORD entry
  1. ;
  1. Q $O(^AUPNVER("AD",VIEN,""))
  1. ;
  1. DSUM() ;EP - Return if Discharge Summary Global is defined
  1. ;
  1. I $D(^TMP("BEDDDSC",$J,"XBDT")) Q 1
  1. Q 0
  1. ;
  1. HTIME(TM) ;EP - Given seconds portion of $H value, return time
  1. ;
  1. NEW T
  1. ;
  1. ;To use FileMan Utility add the date, and then strip it off afterwards
  1. S T=+$H_","_TM
  1. S T=$$HTE^XLFDT(T)
  1. Q $P(T,"@",2)
  1. ;
  1. PRIMDX(VIEN,OBJID) ;EP - Retrieve/Save the Primary EHR DX
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. NEW DX
  1. ;
  1. S DX=""
  1. ;
  1. I $D(^AUPNVPOV("AD",VIEN)) D
  1. . NEW RIEN
  1. . S ICD="",ICDN="",RPFI="",RPFIN=""
  1. . S RIEN="" F S RIEN=$O(^AUPNVPOV("AD",VIEN,RIEN)) Q:RIEN="" D
  1. .. NEW ICD,ICDN,RPFI,RPFIN
  1. .. S (ICD,ICDN,RPFI,RPFIN)=""
  1. .. I $$GET1^DIQ(9000010.07,RIEN_",",.12,"I")="P" D
  1. ... S ICD=$$GET1^DIQ(9000010.07,RIEN_",",".04","I")
  1. ... S RPFI=$$GET1^DIQ(9000010.07,RIEN_",",".01","I")
  1. ... S RPFIN=$$GET1^DIQ(80,RPFI_",",.01,"I")
  1. .. I ICD>0 S ICDN=$$GET1^DIQ(9999999.27,ICD_",",.01,"I")
  1. . I ICD>0 D
  1. ..S DX=ICD_"^"_ICDN_"^"_RPFI_"^"_RPFIN_"^"_OBJID
  1. ..D SAVEDX^BEDDUTW(DX)
  1. Q DX
  1. ;
  1. AGE(DFN) ;EP - Return Patients Age
  1. ;
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. Q $$AGE^AUPNPAT(DFN,,1)
  1. ;
  1. ;
  1. DSAVE(DFN,AMERVSIT,VIEN,OBJID,DUZ,SITE,BEDDARY) ;EP - Dashboard Discharge Screen Save
  1. ;
  1. ; Input:
  1. ; DFN - Patient IEN
  1. ; BEDDARY - Array of entries to save
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. NEW AUPNVSIT,STS
  1. ;
  1. ;Define DUZ variable
  1. I $G(DUZ)="" S STS="Missing DUZ" Q 0
  1. D DUZ^XUP(DUZ)
  1. ;
  1. ;File ER ADMISSION entries
  1. I $G(DFN)]"" D
  1. . S:$D(BEDDARY("Trg")) AMUPD(9009081,DFN_",",20)=BEDDARY("Trg")
  1. . S:$D(BEDDARY("TrgNow")) AMUPD(9009081,DFN_",",21)=$$DATE^BEDDUTIL(BEDDARY("TrgNow"))
  1. . S:$D(BEDDARY("TrgN")) AMUPD(9009081,DFN_",",19)=BEDDARY("TrgN")
  1. . S:$D(BEDDARY("AdPvTm")) AMUPD(9009081,DFN_",",22)=$$DATE^BEDDUTIL(BEDDARY("AdPvTm"))
  1. . S:$D(BEDDARY("AdmPrv")) AMUPD(9009081,DFN_",",18)=BEDDARY("AdmPrv")
  1. ;
  1. ;File VISIT entries
  1. ;I $G(VIEN)]"" D
  1. ;. S:$G(BEDDARY("txcln"))]"" AMUPD(9000010,VIEN_",",.08)=$O(^DIC(40.7,"C",BEDDARY("txcln"),""))
  1. ;
  1. I $D(AMUPD) D FILE^DIE("","AMUPD","ERROR")
  1. ;
  1. ;Complete Discharge
  1. D DC^BEDDUTIS(DFN,OBJID,VIEN,DUZ,SITE,.BEDDARY)
  1. ;
  1. ;Flag visit as edited
  1. S AUPNVSIT=VIEN D MOD^AUPNVSIT
  1. ;
  1. I $D(ERROR) Q 0
  1. Q 1
  1. ;
  1. CLIN(CLIN) ;EP - Return List of Applicable Clinics
  1. ;
  1. ;Moved to BEDDUTL2
  1. D CLIN^BEDDUTL2(.CLIN)
  1. ;
  1. Q
  1. ;
  1. DISP(DISP) ;EP - Return List of Dispositions
  1. ;
  1. ;Input:
  1. ; None
  1. ;
  1. ;Output:
  1. ; DISP Array - List of Dispositions
  1. ;
  1. NEW CNT,DSIEN,DIEN,DSP
  1. K DISP
  1. S DSIEN=$O(^AMER(2,"B","DISPOSITION","")) Q:DSIEN=""
  1. S DIEN="" F S DIEN=$O(^AMER(3,"AC",DSIEN,DIEN)) Q:+DIEN=0 D
  1. . NEW D
  1. . S D=$$GET1^DIQ(9009083,DIEN_",",".01","I") Q:D=""
  1. . S DSP(D)=DIEN_"^"_D
  1. ;
  1. ;Re-sort
  1. S CNT=0,DSP="" F S DSP=$O(DSP(DSP)) Q:DSP="" D
  1. . S CNT=CNT+1
  1. . S DISP(CNT)=DSP(DSP)
  1. ;
  1. Q
  1. ;
  1. TRNF(TRNF) ;EP - Return List of Transfer Facilities
  1. ;
  1. ;Input:
  1. ; None
  1. ;
  1. ;Output:
  1. ; TRNF Array - List of Transfer Facilities
  1. ;
  1. NEW CNT,FCIEN,FIEN
  1. K TRNF
  1. S CNT=0,FCIEN="" F S FCIEN=$O(^AMER(2.1,"B",FCIEN)) Q:FCIEN="" D
  1. . S FIEN="" F S FIEN=$O(^AMER(2.1,"B",FCIEN,FIEN)) Q:FIEN="" D
  1. .. S CNT=CNT+1
  1. .. S TRNF(CNT)=FIEN_"^"_$$GET1^DIQ(9009082.1,FIEN_",",".01","I")
  1. ;
  1. Q
  1. ;
  1. INST(INST) ;EP - Return list of Followup Instructions
  1. ;
  1. ;Input:
  1. ; None
  1. ;
  1. ;Output:
  1. ; INST Array - List of Followup Instructions
  1. ;
  1. NEW CNT,INIEN,IIEN,INS
  1. K INST
  1. S INIEN=$O(^AMER(2,"B","FOLLOW UP INSTRUCTIONS","")) Q:INIEN=""
  1. S IIEN="" F S IIEN=$O(^AMER(3,"AC",INIEN,IIEN)) Q:IIEN="" D
  1. . S INS=$$GET1^DIQ(9009083,IIEN_",",".01","I") Q:INS=""
  1. . S INS(INS)=IIEN_U_INS
  1. ;
  1. S CNT=0,INS="" F S INS=$O(INS(INS)) Q:INS="" D
  1. . S CNT=CNT+1
  1. . S INST(CNT)=INS(INS)
  1. ;
  1. Q
  1. ;
  1. PROV(PROV) ;EP - Return List of Providers
  1. ;
  1. ;Input:
  1. ; None
  1. ;
  1. ;Output:
  1. ; PROV Array - List of Providers
  1. ;
  1. NEW CNT,PNAME,PIEN,X
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. K PROV
  1. S CNT=0,PNAME="" F S PNAME=$O(^VA(200,"AK.PROVIDER",PNAME)) Q:PNAME="" D
  1. . S PIEN=0 F S PIEN=$O(^VA(200,"AK.PROVIDER",PNAME,PIEN)) Q:+PIEN=0 D
  1. .. ;BEDD*2.0*2;Handle future termination dates
  1. .. ;I $$GET1^DIQ(200,PIEN_",","9.2","I")]"" Q
  1. .. NEW TERM
  1. .. S TERM=$$GET1^DIQ(200,PIEN_",","9.2","I")
  1. .. I TERM]"",TERM<DT Q
  1. .. ;
  1. .. S CNT=CNT+1
  1. .. S PROV(CNT)=PIEN_"^"_PNAME
  1. ;
  1. Q
  1. ;
  1. CCLN(CLIN) ;EP - Return Clinic Mnemonic
  1. Q $$GET1^DIQ(40.7,CLIN_",",1,"I")
  1. ;
  1. SCLN(CLN) ;EP - Convert Clinic
  1. ;
  1. I CLN="" Q ""
  1. ;
  1. NEW CLIN,XCLIN
  1. S CLIN=$O(^DIC(40.7,"C",CLN,"")) Q:CLIN="" ""
  1. S XCLIN=$$GET1^DIQ(40.7,CLIN_",",.01,"E") Q:XCLIN="" ""
  1. S CLIN=$O(^AMER(3,"B",XCLIN,"")) Q:CLIN="" ""
  1. Q CLIN
  1. ;
  1. ;
  1. XDATE(X) ;EP - Convert External Date to FileMan
  1. ;
  1. NEW %DT
  1. ;
  1. S X=$TR(X," ","@")
  1. ;
  1. ;Strip off seconds
  1. S X=$P(X,":",1,2)
  1. ;
  1. S:X="N" X="NOW"
  1. S %DT="T" D ^%DT
  1. S:Y=-1 Y=""
  1. ;
  1. Q $$FMTE^BEDDUTIL(Y)
  1. ;
  1. DXLKP(VALUE,OBJID,DUZ,FILTER) ;EP - Lookup to File 80 (DX)
  1. ;
  1. NEW VIEN,EXEC,VDT,SEX,STS
  1. ;
  1. ;Verify that the object id was passed in
  1. I $G(OBJID)="" Q
  1. ;
  1. ;Make sure filter is populated
  1. S:$G(FILTER)="" FILTER=0
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. ;Define DUZ variable
  1. I $G(DUZ)="" S STS="Missing DUZ" Q
  1. D DUZ^XUP(DUZ)
  1. ;
  1. ;Get the visit ien
  1. S VIEN=""
  1. S EXEC="S BEDDVST=""""" X EXEC
  1. S EXEC="S BEDDVST=##CLASS(BEDD.EDVISIT).%OpenId(OBJID,1)" X EXEC
  1. S EXEC="S VIEN=BEDDVST.VIEN" X EXEC
  1. S EXEC="S BEDDVST=""""" X EXEC
  1. ;
  1. ;Get the visit date and gender
  1. S VDT="" I $G(VIEN)]"" D
  1. .NEW DFN
  1. . S DFN=$$GET1^DIQ(9000010,VIEN_",",".05","I")
  1. . S SEX=$$GET1^DIQ(2,DFN_",",".02","I")
  1. . S VDT=$P($$GET1^DIQ(9000010,VIEN_",",".01","I"),".")
  1. S:$G(VDT)="" VDT=DT
  1. S:$G(SEX)="" SEX=""
  1. ;
  1. ;Get the gender
  1. ;
  1. ;Call the new lookup
  1. D DXLKP^BEDDPOV(VALUE,VDT,.SEX,FILTER)
  1. Q
  1. ;
  1. ESAVE(DFN,AMERVSIT,VIEN,BEDDARY) ;EP - Dashboard Edit Screen Save
  1. ;
  1. ; Input:
  1. ; DFN - Patient IEN
  1. ; BEDDARY - Array of entries to save
  1. ;
  1. NEW CLINIC
  1. ;
  1. ;Error Trapping
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ;File ER ADMISSION entries
  1. I $G(DFN)]"" D
  1. . ;BEDD*2.0*8;Switch complaint to field 23 (from 8)
  1. . ;S:$D(BEDDARY("COMP")) AMUPD(9009081,DFN_",",8)=BEDDARY("COMP")
  1. . S:$D(BEDDARY("COMP")) AMUPD(9009081,DFN_",",23)=BEDDARY("COMP")
  1. . S:$D(BEDDARY("Trg")) AMUPD(9009081,DFN_",",20)=BEDDARY("Trg")
  1. . S:$D(BEDDARY("TrgNow")) AMUPD(9009081,DFN_",",21)=$$DATE^BEDDUTIL(BEDDARY("TrgNow"))
  1. . S:$D(BEDDARY("AdmPrv")) AMUPD(9009081,DFN_",",18)=BEDDARY("AdmPrv")
  1. . S:$D(BEDDARY("TrgN")) AMUPD(9009081,DFN_",",19)=BEDDARY("TrgN")
  1. . S:$D(BEDDARY("AdPvTm")) AMUPD(9009081,DFN_",",22)=BEDDARY("AdPvTm")
  1. ;
  1. ;File VISIT entries
  1. S CLINIC=$G(BEDDARY("txcln"))
  1. I $G(VIEN)]"" D
  1. . NEW ERR
  1. . ;GDIT/HS/BEE 05/10/2018;CR#10213 - BEDD*2.0*3 - Allow different hospital locations
  1. . S ERR=$$CKHLOC^AMERBSD(VIEN,CLINIC)
  1. . ;
  1. . ;Chief Complaint
  1. . S AMUPD(9000010,VIEN_",",1401)=$S($G(BEDDARY("COMP"))]"":BEDDARY("COMP"),1:"@")
  1. . ;
  1. . ;BEDDv2.0;Save Decision to admit date
  1. . S AMUPD(9000010,VIEN_",",1116)=$S($G(BEDDARY("DecAdmit"))]"":BEDDARY("DecAdmit"),1:"@")
  1. ;
  1. ;File ER VISIT entries
  1. I $G(AMERVSIT)]"" S AMUPD(9009080,AMERVSIT_",",.04)=$S(CLINIC]"":CLINIC,1:"@")
  1. ;
  1. ;File visit entries
  1. I $D(AMUPD) D
  1. . NEW AUPNVSIT
  1. . D FILE^DIE("","AMUPD","ERROR")
  1. . ;
  1. . ;Flag that visit was changed
  1. . D MOD^AUPNVSIT
  1. ;
  1. ;BEDD*2.0*1;Update V EMERGENCY VISIT
  1. D VER^AMERVER($G(DFN),$G(VIEN))
  1. ;
  1. I $D(ERROR) Q 0
  1. Q 1
  1. ;
  1. PLCHLD(OBJID,VIEN) ;EP - Look for Diagnosis Default
  1. ;
  1. I $G(OBJID)="" Q ""
  1. ;
  1. ;
  1. ;Make sure initial variables are set
  1. S X="S:$G(U)="""" U=""^""" X X
  1. S X="S:$G(DT)="""" DT=$$DT^XLFDT" X X
  1. ;
  1. NEW CDIEN,DXNM,DIC,X,Y,VDT,DFLTDX,BEDDPOV
  1. ;
  1. ;Get visit date, if blank use DT
  1. I $G(VIEN)]"" S VDT=$P($$GET1^DIQ(9000010,VIEN,".01","I"),".")
  1. S:$G(VDT)="" VDT=DT
  1. ;
  1. ;Quit if patient already has DX codes
  1. ;I $$DXCNT^BEDDUTIS(OBJID)>0 Q ""
  1. I $$POV^AMERUTIL("",VIEN,.BEDDPOV)>0 Q ""
  1. ;
  1. ;Determine if pre-AICD 4.0, pre-ICD-10, or post ICD-10
  1. S (DFLTDX,X)=".9999"
  1. I $$VERSION^XPDUTL("AICD")>3.51,$$IMP^ICDEXA(30)'>VDT S (DFLTDX,X)="ZZZ.999"
  1. ;
  1. S DIC="^ICD9(",DIC(0)="XMO" D ^DIC I +Y<0 Q ""
  1. S CDIEN=+Y
  1. ;
  1. S DXNM=$E($P($$ICDDX^AUPNVUTL(CDIEN,VDT),U,4),1,55)
  1. Q DFLTDX_"^"_CDIEN_"^"_DXNM
  1. ;
  1. UPPER(X) ;EP - Convert to uppercase
  1. Q $TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. ;
  1. ERR ;EP - Capture the error
  1. D ^%ZTER
  1. Q