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

BGOICDP2.m

Go to the documentation of this file.
  1. BGOICDP2 ; IHS/BAO/TMD - ICD PREFERENCES MANAGER 2 ;20-Mar-2007 13:52;DKM
  1. ;;1.1;BGO COMPONENTS;**1,3**;Mar 20, 2007
  1. ; Clone ICD preferences from PCC
  1. ; INP = Provider IEN ^ ICD Preference IEN
  1. CLONEOTH(RET,INP) ;EP
  1. N PRV,CAT,PIEN,ICD,TXT
  1. S RET=""
  1. S PRV=+INP
  1. I 'PRV S RET=$$ERR^BGOUTL(1027) Q
  1. I '$D(^VEN(7.1,"B",PRV)) S RET=$$ERR^BGOUTL(1028) Q
  1. S CAT=$P(INP,U,2)
  1. I 'CAT S RET=$$ERR^BGOUTL(1018) Q
  1. I '$D(^BGOICDPR(CAT,0)) S RET=$$ERR^BGOUTL(1019) Q
  1. S PIEN=0
  1. F S PIEN=$O(^VEN(7.1,"B",PRV,PIEN)) Q:'PIEN D Q:RET
  1. .S ICD=$P(^VEN(7.1,PIEN,0),U,2)
  1. .Q:ICD=""
  1. .S ICD=$O(^ICD9("AB",ICD,0))
  1. .Q:'ICD
  1. .Q:$O(^BGOICDPR(CAT,1,"B",ICD,0))
  1. .S TXT=$P(^VEN(7.1,PIEN,0),U,3)
  1. .S RET=$$UPDITEM^BGOPFUTL(90362.35,CAT,ICD,0,TXT)
  1. Q
  1. ; Clone a preference
  1. ; INP = Pref IEN (from) ^ Pref IEN (to)
  1. CLONE(RET,INP) ;EP
  1. D CLONE^BGOPFUTL(.RET,INP,90362.35)
  1. Q
  1. ; Return list of PCC+ provider names
  1. ; Returned as a list of records of the format:
  1. ; Provider Name ^ Provider IEN
  1. OTHCATS(RET,DUMMY) ;EP
  1. N PRV,CNT
  1. S (PRV,CNT)=0
  1. F S PRV=$O(^VEN(7.1,"B",PRV)) Q:'PRV D
  1. .S:$D(^VA(200,PRV,0)) CNT=CNT+1,RET(CNT)=$P(^(0),U)_U_PRV
  1. Q
  1. ; Execute query
  1. ; INP = Category IEN [1] ^ Provider IEN [2] ^ Clinic IEN [3] ^ Provider Class [4] ^ Hospital Location [5] ^
  1. ; Start Date [6] ^ End Date [7] ^ Max Hits [8]
  1. QUERY(RET,INP) ;EP
  1. N CAT,PRV,CLN,CLS,HL,BEGDT,ENDDT,VD,VIEN,VIS,PIEN,DX,ICD,REC,ICD,TXT,CNT,MAX,X
  1. S RET=""
  1. S CAT=$P(INP,U)
  1. S PRV=$P(INP,U,2)
  1. S CLN=$P(INP,U,3)
  1. S CLS=$P(INP,U,4)
  1. S HL=$P(INP,U,5)
  1. S BEGDT=$P(INP,U,6)
  1. S ENDDT=$P(INP,U,7)
  1. S MAX=+$P(INP,U,8)
  1. I CLN="",CLS="",PRV="",HL="" S RET=$$ERR^BGOUTL(1022) Q
  1. S RET=$$QRYINIT^BGOPFUTL(90362.35,CAT)
  1. Q:RET
  1. S VD=$S(BEGDT:BEGDT,1:DT-20000)
  1. S:'ENDDT ENDDT=DT
  1. S CNT=0
  1. F S VD=$O(^AUPNVSIT("B",VD)) Q:'VD!RET!(VD>ENDDT) D
  1. .S VIEN=0
  1. .F S VIEN=$O(^AUPNVSIT("B",VD,VIEN)) Q:'VIEN!RET D
  1. ..S VIS=$G(^AUPNVSIT(VIEN,0))
  1. ..Q:VIS=""
  1. ..I CLN,$P(VIS,U,8)'=CLN Q
  1. ..I HL,$P(VIS,U,22)'=HL Q
  1. ..I PRV!CLS,'$$VISPRCL^BGOPFUTL(VIEN,PRV,CLS) Q
  1. ..S DX=0
  1. ..F S DX=$O(^AUPNVPOV("AD",VIEN,DX)) Q:'DX!RET D
  1. ...S CNT=CNT+1
  1. ...S:CNT=MAX RET=CNT
  1. ...S REC=^AUPNVPOV(DX,0)
  1. ...S ICD=+REC
  1. ...S TXT=$P($G(^AUTNPOV(+$P(REC,U,4),0)),U)
  1. ...D QRYADD^BGOPFUTL(90362.35,CAT,ICD,TXT)
  1. S RET=$$QRYDONE^BGOPFUTL(90362.35,CAT)
  1. Q