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

BGOVTC.m

Go to the documentation of this file.
  1. BGOVTC ; IHS/BAO/TMD - Manage V TRANSACTION CODES ;20-Mar-2007 13:52;DKM
  1. ;;1.1;BGO COMPONENTS;**1,3**;Mar 20, 2007
  1. ; Get transaction code entry
  1. GETTC(RET,TCIEN) ;EP
  1. N IENS,X
  1. K RET
  1. I '$D(^BCMTCF(TCIEN,0)) S RET(0)=$$ERR^BGOUTL(1100) Q
  1. S IENS=TCIEN_","
  1. D GETS^DIQ(90092.02,IENS,".01;.05;.06;.07;.09;1103","IE","RET")
  1. S IENS=+^BCMTCF(TCIEN,0)_","
  1. D GETS^DIQ(90092.01,IENS,".05;1102;1103;1104","IE","RET")
  1. S X=$G(RET(90092.01,IENS,.05,"I"))
  1. S:X RET(90092.01,IENS,.05,"E")=$P($G(^BCMSCC(X,0)),U,2)
  1. S X=$G(RET(90092.01,IENS,1102,"I"))
  1. S:X RET(90092.01,IENS,1102,"E")=$P($G(^ICPT(X,0)),U,2)
  1. S X=$G(RET(90092.01,IENS,1103,"I"))
  1. S:X RET(90092.01,IENS,1103,"E")=$P($G(^AUTTCMOD(X,0)),U,2)
  1. Q
  1. ; Get transaction code info for a single entry or for a visit
  1. ; INP = Patient IEN [1] ^ V File IEN [2] ^ Visit IEN [3]
  1. GET(RET,INP) ;EP
  1. D VFGET^BGOUTL2(.RET,INP,$$FNUM,".01;.02;.03;.04;.05;.06;.07;.09;.11;.12;.13;1201;1204")
  1. Q
  1. ; Add/edit V Transaction Code
  1. ; INP = V File IEN [1] ^ TC IEN [2] ^ Visit IEN [3] ^ Patient IEN [4] ^ No dups [5]
  1. SET(RET,INP) ;EP
  1. N VIEN,VFIEN,VFNEW,TYPE,DFN,DUPS,TCA,MOD,FDA,FNUM,SVRCLS,CAN,NARR,DEPT
  1. N CHRG,MODCODE,REVCD,X,Y
  1. S RET="",FNUM=$$FNUM
  1. S VFIEN=+INP
  1. S VFNEW='VFIEN
  1. S TYPE=+$P(INP,U,2)
  1. S VIEN=+$P(INP,U,3)
  1. S DFN=+$P(INP,U,4)
  1. S DUPS='$P(INP,U,5)
  1. S RET=$$CHKVISIT^BGOUTL(VIEN,DFN)
  1. Q:RET
  1. I 'TYPE S RET=$$ERR^BGOUTL(1099) Q
  1. S X=$G(^BCMTCF(TYPE,0)),Y=$G(^(11))
  1. I '$L(X) S RET=$$ERR^BGOUTL(1100) Q
  1. I $P(X,U,4) S RET=$$ERR^BGOUTL(1101) Q
  1. S TCA=$P(X,U),CAN=$P(X,U,5),SVRCLS=$P(X,U,6),NARR=$P(X,U,7),DEPT=$P(X,U,9),CHRG=$P(Y,U,3)
  1. S X=$G(^BCMTCA(TCA,0)),Y=$G(^(11))
  1. S SVRCLS=$P(X,U,5),CPT=$P(Y,U,2),MODCODE=$P(Y,U,3),REVCD=$P(Y,U,4)
  1. S MOD=$S($L(MODCODE):$O(^AUTTCMOD("B",MODCODE,0)),1:"")
  1. I 'VFIEN D Q:'VFIEN
  1. .D VFNEW^BGOUTL2(.RET,FNUM,TYPE,VIEN,$S('DUPS:"Transaction code",1:""))
  1. .S:RET>0 VFIEN=RET,RET=""
  1. S FDA=$NA(FDA(FNUM,VFIEN_","))
  1. S @FDA@(.01)="`"_TYPE
  1. S @FDA@(.04)=$S(CAN:"`"_CAN,1:"")
  1. S @FDA@(.05)=$S(SVRCLS:"`"_SVRCLS,1:"")
  1. S @FDA@(.06)=CHRG
  1. S @FDA@(.08)=MODCODE
  1. S @FDA@(.11)=NARR
  1. S @FDA@(.12)=$S(MOD:"`"_MOD,1:"")
  1. S @FDA@(.13)=$S(DEPT:"`"_DEPT,1:"")
  1. S @FDA@(1201)="N"
  1. S @FDA@(1204)="`"_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. ; Delete a V Transaction Code entry
  1. DEL(RET,VFIEN) ;EP
  1. D VFDEL^BGOUTL2(.RET,$$FNUM,VFIEN)
  1. Q
  1. ; Retrieve CM list
  1. CMLKUP(RET,INP) ;EP
  1. N IEN,FLD,CNT,TRNCODE,CPT
  1. S RET=$$TMPGBL^BGOUTL
  1. S TRNCODE=$P(INP,U,2),CPT=""
  1. S:TRNCODE?5.6N CPT=TRNCODE,TRNCODE=""
  1. I TRNCODE'?8N,TRNCODE'="" D Q
  1. .D FIND^DIC(90092.02,,"@;.01;.07;.05;.06","P",TRNCODE,"","","","",RET)
  1. .K @RET@("DILIST",0)
  1. S CNT=0
  1. I TRNCODE D
  1. .S IEN=0
  1. .F S IEN=$O(^BCMTCF("B",TRNCODE,IEN)) Q:'IEN D CM1
  1. E I CPT D
  1. .S TRNCODE=0
  1. .F S TRNCODE=$O(^BCMTCA("C",CPT,TRNCODE)) Q:'TRNCODE D
  1. ..S IEN=0
  1. ..F S IEN=$O(^BCMTCF("B",TRNCODE,IEN)) Q:'IEN D CM1
  1. E D
  1. .S IEN=0
  1. .F S IEN=$O(^BCMTCF(IEN)) Q:'IEN D CM1
  1. Q
  1. CM1 N X
  1. S X=$G(^BCMTCF(IEN,0))
  1. Q:'$L(X)
  1. Q:$P(X,U,4)
  1. S CNT=CNT+1,@RET@(CNT)=IEN_U_$P(X,U)_U_$P(X,U,7)_U_$$EXTERNAL^DILFD(90092.02,.05,,$P(X,U,5))_U_$$EXTERNAL^DILFD(90092.02,.06,,$P(X,U,6))
  1. Q
  1. ; Return V File #
  1. FNUM() Q 9000010.33