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

BADEUTIL.m

Go to the documentation of this file.
  1. BADEUTIL ;IHS/MSC/PLS - Dentrix HL7 inbound interface ;12-Feb-2010 09:35;PLS
  1. ;;1.0;DENTAL/EDR INTERFACE;**5**;FEB 22, 2010;Build 23
  1. ; Returns patient corresponding to 12 digit facility/hrn code
  1. ;; Modified - IHS/OIT/GAB 03/2016 **5** Check & Add POV's (ICD10 code) coming from Dentrix
  1. HRCNF(HRCN12) ; EP
  1. N DFN,ASUFAC,HRN,Y
  1. S DFN=-1
  1. S ASUFAC=+$E(HRCN12,1,6),HRN=+$E(HRCN12,7,12)
  1. Q:'ASUFAC!'HRN DFN
  1. S ASUFAC=$$FIND1^DIC(9999999.06,,,ASUFAC,"C")
  1. Q:'ASUFAC DFN
  1. S Y=0 F S Y=$O(^AUPNPAT("D",HRN,Y)) Q:'Y Q:$D(^(Y,ASUFAC))
  1. S:Y DFN=Y
  1. Q DFN
  1. ;
  1. ; Enable/Disable a protocol
  1. ; Input: P-Protocol
  1. ; T-Text - Null or not passed removes text.
  1. EDPROT(P,T,ERR) ;EP
  1. N IENARY,PIEN,AIEN,FDA
  1. S T=$G(T,"")
  1. D
  1. .I '$L(P) S ERR="Missing input parameter" Q
  1. .S IENARY(1)=$$FIND1^DIC(101,"","",P)
  1. .I 'IENARY(1) S ERR="Unknown protocol name" Q
  1. .S FDA(101,IENARY(1)_",",2)=$S($L(T):T,1:"@")
  1. .D UPDATE^DIE("S","FDA","IENARY","ERR")
  1. Q
  1. ; Returns default user based on Location
  1. DUSER(LOC) ;EP
  1. N RET
  1. S RET=$$GET^XPAR("DIV.`"_LOC_"^SYS","BADE EDR DEFAULT USER")
  1. Q RET
  1. ; Returns MERGED TO DFN, when present, traversing the chain
  1. MRGTODFN(DFN) ;EP
  1. N RES
  1. S RES=DFN
  1. Q:'$D(^DPT(DFN,-9)) RES ;DFN has not been merged
  1. F S DFN=$P($G(^DPT(DFN,-9)),U) Q:'DFN S RES=DFN Q:'$D(^DPT(DFN,-9))
  1. Q RES
  1. GETPOV ;IHS/OIT/GAB 03/2016 **5** ADDED THIS SEGMENT - GET THE POV FROM THE FT1 SEGMENT & ADD TO THE VISIT
  1. S CNT=1,NOPOV="",FIRST=""
  1. K CODE
  1. F CNT=1:1:4 D
  1. .Q:$G(SEGFT1(20,CNT,1,1))=""
  1. .S CODE(CNT)=(SEGFT1(20,CNT,1,1))
  1. .S POV=CODE(CNT)
  1. .I CNT=1 S FIRST=CODE(CNT)
  1. .Q:FIRST="V72.2"
  1. .D VALIDPOV^BADEUTIL(POV)
  1. .I YES=1 D
  1. ..I '$$HASPOV(APCDVSIT,POV) S APCDALVR("APCDATMP")="[APCDALVR 9000010.07 (ADD)]" D EN^APCDALVR
  1. I (FIRST="V72.2")&&('$$HASPOV(APCDVSIT,"ZZZ.999")) S APCDALVR("APCDTPOV")="ZZZ.999" S APCDALVR("APCDTEXK")=APCDTEXK S APCDALVR("APCDATMP")="[APCDALVR 9000010.07 (ADD)]" D EN^APCDALVR
  1. I FIRST="" S NOPOV=1
  1. Q
  1. VALIDPOV(POV) ; IHS/OIT/GAB **5** ADD A CHECK FOR A VALID POV COMING FROM DENTRIX
  1. N STR,IEN
  1. S YES=""
  1. S STR=$$ICDDATA^ICDXCODE(30,POV,VISDT,"E")
  1. S IEN=$P(STR,"^") S:IEN<0 IEN=""
  1. I IEN="" S YES="" Q ;SET DEFAULT CODE IF IEN DOESN'T EXIST ; Not a valid code
  1. S YES=1
  1. S APCDALVR("APCDTPOV")=POV
  1. S APCDALVR("APCDTEXK")=APCDTEXK ; add the EXKEY for the POV entry to associate with the procedure
  1. Q
  1. HASPOV(V,Y) ;EP IHS/OIT/GAB **5** ADD A CHECK FOR DUPLICATE POV's
  1. ;V is visit ien
  1. ;Y is value of icd code, e.g. Z98.810
  1. I '$G(V) Q "" ;not a valid visit ien
  1. I '$D(^AUPNVSIT(V,0)) Q "" ;not a valid visit ien
  1. NEW X,G,I
  1. S (X,G)=0
  1. F S X=$O(^AUPNVPOV("AD",V,X)) Q:X'=+X!(G) D
  1. .S I=$$VAL^XBDIQ1(9000010.07,X,.01) ;external value of .01 of V POV
  1. .I I=Y S G=X ;if it equals Y quit on ien of the V POV, yes, we already have that V POV
  1. .Q
  1. Q G