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

BGOREF.m

Go to the documentation of this file.
  1. BGOREF ; IHS/BAO/TMD - Manage REFUSALS ;18-Apr-2014 12:29;DU
  1. ;;1.1;BGO COMPONENTS;**1,3,5,11,13**;Mar 20, 2007;Build 16
  1. ; Add/edit a refusal
  1. ; INP = Refusal IEN [1] ^ Refusal Type [2] ^ Item IEN [3] ^ Patient IEN [4] ^
  1. ; Refusal Date [5] ^ Comment [6] ^ Provider IEN [7] ^ Reason [8]
  1. ;Patch 5, changed mammogram code for bilateral mammogram
  1. ;Patch 13,changes for SNOMED
  1. SET(RET,INP) ;EP
  1. N DFN,REFIEN,REFTYP,ITEMIEN,REFDATE,COMMENT,REASON,PRV,HST,HIS,CT
  1. S (CT,HIS)=""
  1. S DFN=$P(INP,U,4)
  1. I 'DFN S RET=$$ERR^BGOUTL(1050) Q
  1. I '$D(^AUPNPAT(DFN,0)) S RET=$$ERR^BGOUTL(1001) Q
  1. S REFIEN=+INP
  1. S REFTYP=$P(INP,U,2)
  1. S ITEMIEN=$P(INP,U,3)
  1. S REFDATE=$P(INP,U,5)
  1. S COMMENT=$P(INP,U,6)
  1. S PRV=$P(INP,U,7)
  1. S REASON=$P(INP,U,8)
  1. I $L(REASON)>0 D
  1. .;IHS/MSC/MGH Patch 11
  1. .;S REASON=$$UPPER^BGOVPED2(REASON)
  1. .;S REASON=$S(REASON="REFUSED SERVICE":"R",REASON="UNABLE TO SCREEN":"U",REASON="NOT MEDICALLY INDICATED":"N",REASON="NO RESPONSE TO FOLLOWUP":"F",REASON="PROVIDER DISCONTINUED":"P",1:"")
  1. .;Patch 13 cfhanged reason to SNOMED
  1. .S CT=$$GET1^DIQ(9999999.102,REASON,.01)
  1. .S HIS=$$GET1^DIQ(9999999.102,REASON,.04,"I")
  1. ;S:REASON="" REASON="R"
  1. S RET=$$REFSET2^BGOUTL2(DFN,REFDATE,ITEMIEN,REFTYP,HIS,COMMENT,PRV,REFIEN,CT)
  1. Q
  1. ; Get refusal data
  1. ; INP = Patient IEN ^ Refusal IEN
  1. ; List of records in the format:
  1. ; R ^ Refusal IEN [2] ^ Type IEN [3] ^ Type Name [4] ^ Item IEN [5] ^ Item Name [6] ^ Provider IEN [7] ^
  1. ; Provider Name [8] ^ Date [9] ^ Locked [10] ^ Reason [11] ^ Comment [12]
  1. GET(RET,INP) ;EP
  1. N CNT,DFN,REFIEN
  1. S RET=$$TMPGBL^BGOUTL
  1. S DFN=+INP
  1. S REFIEN=$P(INP,U,2)
  1. I REFIEN S @RET@(1)=$$REFGET1^BGOUTL2(REFIEN)
  1. E D
  1. .S REFIEN="",CNT=0
  1. .F S REFIEN=$O(^AUPNPREF("AC",DFN,REFIEN),-1) Q:'REFIEN D
  1. ..S CNT=CNT+1,@RET@(CNT)=$$REFGET1^BGOUTL2(REFIEN)
  1. Q
  1. ; Delete a refusal
  1. DEL(RET,REFIEN) ;EP
  1. S RET=$$REFDEL^BGOUTL2(REFIEN)
  1. Q
  1. ; Return IEN for pap smear/mammogram/ekg
  1. REFLIST(RET,INP) ;EP
  1. S INP=$$UP^XLFSTR(INP)
  1. I INP="PAP SMEAR" S RET=$O(^LAB(60,"B","PAP SMEAR",0))
  1. E I INP="MAMMOGRAM" S RET=$O(^RAMIS(71,"D",76056,0))
  1. E I INP="EKG" S RET=$O(^AUTTDXPR("B","ECG SUMMARY",0))
  1. E S RET=$$ERR^BGOUTL(1051,INP)
  1. Q
  1. ;Return the list of SNOMED reasons for refusal
  1. ;Returns the list with the
  1. ;IEN [1] ^ TEXT [2]
  1. GETREA(RET,TYPE) ;EP
  1. N IEN,SCREEN,CNT
  1. S RET=$$TMPGBL^BGOUTL
  1. S TYPE=$$UP^XLFSTR(TYPE)
  1. S CNT=0
  1. I $G(TYPE)="" S TYPE="IMMUNIZATION"
  1. S IEN=0 F S IEN=$O(^AUTTREFR(IEN)) Q:'+IEN D
  1. .S SCREEN=$$GET1^DIQ(9999999.102,IEN,.06,"I")
  1. .I TYPE="MEDICATION/DRUG"&(SCREEN=1!(SCREEN=3)) D ADD(IEN)
  1. .E I SCREEN=2!(SCREEN=3) D ADD(IEN)
  1. Q
  1. ADD(IEN) ;Add to array
  1. N IN,OUT,X,ARR,DESC,TXT
  1. S CT=$$GET1^DIQ(9999999.102,IEN,.01)
  1. S IN=CT_"^36^^1^"
  1. S OUT="ARR"
  1. S X=$$CNCLKP^BSTSAPI(.OUT,.IN)
  1. I X>0 D
  1. .S TXT=@OUT@(1,"PRE","TRM")
  1. .S CNT=CNT+1
  1. .S @RET@(CNT)=IEN_U_TXT
  1. Q