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

BLRLINKR.m

Go to the documentation of this file.
  1. BLRLINKR ; IHS/DIR/FJE - VALIDATION OF VARIOUS V FILE FIELDS ; [ 07/30/2002 9:42 AM ]
  1. ;;5.2;BLR;**1001**;FEB 1, 1998
  1. ;
  1. ; The following is post-validation logic for the fields in the various
  1. ; V files 9000010.09 (^AUPNVLAB,^AUPNVMIC,^AUPNVBB, etc.). It is
  1. ; called by the linkage process and will be executed ONLY if the PCC
  1. ; process rejects the write to the V file (PCC error 1 or 2).
  1. ; The functionality of this procedure is to interpret the reason of
  1. ; the V file edit rejection and store the error reason in field 106
  1. ; of file 9009022.
  1. ;
  1. ;
  1. S ALRCHKIP="",BLRLINK=1,BLRCHQ=0
  1. F T=1:1 S BLRTXT=$T(PARSE+T) S BLRSTR=$P(BLRTXT,";",3) Q:BLRSTR=""!(BLRCHQ) D BLDFLD I $D(APCDALVR(BLRNAME)) D:BLRSS1[BLRSS!(BLRSS1="")
  1. .S X=APCDALVR(BLRNAME)
  1. .I 'BLRQUIET D FLDSCHK Q:BLRCHQ
  1. .S BLRVSUB=$S(BLRVSUB'="":BLRVSUB,1:"TRANS")
  1. .D @BLRVSUB
  1. .I '$D(X) W:'BLRQUIET !,BLRLIT_" failed edit in V file" D
  1. ..S:BLRPCC="" BLRBUL=2,BLRPCC="Field "_BLRTLOG_" of file 9009022 is invalid"
  1. ; generic reject message created when specific PCC rejection not determined
  1. S:BLRPCC="" BLRBUL=2,BLRPCC="Write to "_$P(^DIC(BLRVFILE,0),U)_" file rejected"
  1. K BLRTXT,BLRSTR,BLRNAME,BLRVFLD,BLRLIT,BLRTLOG,BLRROOT,BLRPMSG,BLRVPRV,BLRVSUB,BLRCHQ
  1. Q
  1. BLDFLD ; create BLR variables from BLRSTR
  1. S BLRNAME=$P(BLRSTR,"|"),BLRVFLD=$P(BLRSTR,"|",2),BLRLIT=$P(BLRSTR,"|",3),BLRTLOG=$P(BLRSTR,"|",4),BLRROOT=$P(BLRSTR,"|",5),BLRVSUB=$P(BLRSTR,"|",6),BLRSS1=$P(BLRSTR,"|",7) S:BLRTLOG="" BLRTLOG=BLRLIT
  1. Q
  1. ;
  1. TRANS ; perform input transform found in file in DD for appropriate V file
  1. Q:APCDALVR(BLRNAME)=""
  1. S (DIE,DIC)=BLRROOT,DIC(0)=""
  1. X $P(^DD(BLRVFILE,BLRVFLD,0),U,5,99)
  1. Q
  1. ;
  1. VTEST ; validation on required TEST field
  1. I APCDALVR(BLRNAME)="" D REQMSG K X Q
  1. S APCDALVR(BLRNAME)=$P(APCDALVR(BLRNAME),"`",2)
  1. I '$D(^LAB(60,APCDALVR(BLRNAME))) S BLRBUL=2,BLRPCC="Field "_BLRTLOG_" of file 9009022 not a valid test in file 60" K X
  1. Q
  1. VVSIT ; validation on required VISIT field
  1. I APCDALVR(BLRNAME)="" D REQMSG K X Q
  1. I APCDALVR(BLRNAME)'?1N.N S BLRBUL=2,BLRPCC=BLRNAME_" needs to be all numeric" K X Q
  1. I '$D(^AUPNVSIT(APCDALVR(BLRNAME),0)) S BLRBUL=2,BLRPCC=BLRNAME_" not a valid visit" K X
  1. Q:'BLRVIEN
  1. S (DIE,DIC)=BLRROOT,DIC(0)=""
  1. X $P(^DD(BLRVFILE,BLRVFLD,0),U,5,99)
  1. Q
  1. ;
  1. VANTIB ; validation on antibiotic field for Micro or
  1. ; antibody field for blood bank
  1. Q:APCDALVR(BLRNAME)=""
  1. I $E(APCDALVR(BLRNAME))="`" S APCDALVR(BLRNAME)=$P(APCDALVR(BLRNAME),"`",2)
  1. I BLRSS="MI",'$D(^LAB(62.06,APCDALVR(BLRNAME))) S BLRBUL=2,BLRPCC="Field "_BLRTLOG_" of file 9009022 not a valid antibiotic IEN" K X Q
  1. I BLRSS="BB",'$D(^LAB(61.3,APCDALVR(BLRNAME))) S BLRBUL=2,BLRPCC="Field "_BLRTLOG_" of file 9009022 not a valid antibody IEN" K X
  1. Q
  1. ;
  1. VPROV ;
  1. Q:$G(APCDALVR(BLRNAME))=""
  1. S BLRPMSG="Field "_BLRTLOG_" of file 9009022 not in Provider file"
  1. ;I $P(^VA(200,$P(X,"`",2),0),"^",16)="" S BLRBUL=2,BLRPCC=BLRPMSG K X Q
  1. S BLRVPRV=BLROPRV
  1. I BLRVPRV="" S BLRBUL=2,BLRPCC=BLRPMSG K X Q
  1. I '$D(^DIC(6,BLRVPRV)) S BLRBUL=2,BLRPCC=BLRPMSG K X
  1. Q
  1. FLDSCHK ;
  1. D CHK^DIE(BLRVFILE,BLRVFLD,"E",APCDALVR(BLRNAME),.BLRCHK)
  1. I BLRCHK="^" W !,APCDALVR(BLRNAME)_" value is invalid for field "_BLRLIT_" "_BLRVFLD_" in file "_BLRVFILE,! S BLRCHQ=1
  1. K BLRCHK
  1. Q
  1. ;
  1. PARSE ;;subscript name|field # for appropriate V file |literal desc|field # for file #9009022|global root|validation subroutine
  1. ;;APCDTLAB|.01|lab test|.06||VTEST|
  1. ;;APCDVSIT|.03|Visit IEN||^AUPNVSIT(|VVSIT|
  1. ;;APCDTRES|.04|result text|2001|||BB,CH
  1. ;;APCDTABN|.05|Normal flag|2002|||CH
  1. ;;APCDTANT|.05|antibiotic|1303||VANTIB|MI
  1. ;;APCDTANT|.05|antibody|1403||VANTIB|BB
  1. ;;APCDTACC|.06|Acc #|1202|||
  1. ;;APCDTRES|.07|blood bank test name|1402|||BB
  1. ;;APCDTCOL|.08|collection sample|1307|||MI ;IHS/DIR TUC/AAB 04/08/98
  1. ;;APCDTCMD|.09|complete date|1309|||MI ;IHS/DIR TUC/AAB 04/08/98
  1. ;;APCDTUNI|1101|units|2003|||
  1. ;;APCDTORD|1102|order number|1103||
  1. ;;APCDTSTE|1103|site/specimen|2004|^LAB(61,|
  1. ;;APCDTRFL|1104|reference low|2008||
  1. ;;APCDTRFH|1105|reference high|2009||
  1. ;;APCDTCOS|1110|lab test cost|108||
  1. ;;APCDTCDT|1201|date/time collected|1201||
  1. ;;APCDTPRV|1202|ordering provider ien|1104||VPROV
  1. ;;APCDTEPR|1204|encounter provider ien|113||VPROV
  1. ;;APCDTOPR|1210|outside provider name|1105 or 114||
  1. ;;APCDTLC1|1301|free text comment 1|3001||
  1. ;;APCDTLC2|1302|free text comment 2|3001||
  1. ;;APCDTLC3|1303|free text comment 3|3001||
  1. ;;APCDTCPS|1402|cpt string|201||
  1. ;
  1. Q
  1. REQMSG ;creation of required field message
  1. S BLRBUL=2,BLRPCC="Field "_BLRTLOG_" is required for PCC and cannot be null"
  1. Q