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

DGPTAE04.m

Go to the documentation of this file.
DGPTAE04 ;ALB/MTC/ADL,HIOFO/FT - 401 Edit Checks Cont ;6/11/15 11:10am
 ;;5.3;Registration;**510,744,870,850,884**;Aug 13, 1993;Build 31
 ;;ADL;Updated for CSV Project;;Mar 24, 2003
 ;
 ; ICDEX APIs - #5747
 ; ICDXCODE APIs - #5699
 ;
TRAN ;-- verify transplant status
 Q:DGPTFMT=3  ;transplant status is not used with ICD-10
 I " 12"'[DGPT40PT S DGPTERC=417
 Q
 ;
CHIEF ;chief surgeon
 N FLAG,I
 Q:"VMN"[DGPTSCS
 I "1234567"'[DGPTSCS S DGPTERC=407 Q
 S FLAG=1 F I=10,11,30,40,42 I DGPTSTTY["^"_I_"^" S FLAG=0 Q
 S:FLAG DGPTERC=407
 Q
FAST ;first assistant
 N FLAG,I
 Q:DGPTSFA=" "
 S FLAG=0 F I=20:1:26 I DGPTSTTY["^"_I_"^" S FLAG=1,DGPTSFA=" " Q
 I FLAG Q
 I "12345678"'[DGPTSFA S DGPTERC=408 Q
 Q
ANES ;anesthesia technique
 N FLAG,I
 Q:DGPTSAT=" "
 S FLAG=0 F I=20:1:26 I DGPTSTTY["^"_I_"^" S FLAG=1,DGPTSAT=" " Q
 I FLAG Q
 I "0123456789RX"'[DGPTSAT S DGPTERC=409 Q
 S DGPTERC=409 F I=10,11,30,40,42 I DGPTSTTY["^"_I_"^" S DGPTERC=0 Q
 Q
 ;
FIRST ;-- Edit surgeries - present in ICD0 OPERATIONS, current, gender ok
 ;
 ; -- 850 - aas - hard coded ICD codes
 ; -- 39.610, 39.611, 39.612 inactive 10/1/79
 I (DGPTSO1="1371   ")!(DGPTSO1="39610  ")!(DGPTSO1="39611  ")!(DGPTSO1="39612  ") S DGPTERC=450 D ERR G:DGPTEDFL EXIT
LOOP ;check surgery procedure codes
 I DGPTFMT=2 F DGPTL3=1:1:5 S DGPTERC=0 D CHKOPC I DGPTERC D ERR G:DGPTEDFL EXIT
 I DGPTFMT=3 F DGPTL3=1:1:25 S DGPTERC=0 D CHKOPC I DGPTERC D ERR G:DGPTEDFL EXIT
 Q
CHKOPC ;
 N SYS,EFFDATE,IMPDATE,DGPTDAT
 D EFFDATE^DGPTIC10($G(PTF))
 S SYS=$$SYS^ICDEX("PROC",EFFDATE)
 S DGPTOC=@("DGPTSO"_DGPTL3),DGPTOC=$P(DGPTOC," ",1) Q:DGPTOC=""
 S DGPTERC=$S(DGPTL3<6:410+DGPTL3,DGPTL3<23:412+DGPTL3,1:423+DGPTL3)
 I SYS=2 S DGPTOC=$E(DGPTOC_"       ",1,2)_"."_$E(DGPTOC,3,7)
 S DGPTOPP=+$$CODEN^ICDEX(DGPTOC,80.1) I $P(DGPTOPP,U,1)'=-1 S DGPTERC=0 D GEN Q
 Q
GEN ;check patient's gender - 884 no longer flags a gender error
 N EFFDATE,IMPDATE,DGPTDAT
 D EFFDATE^DGPTIC10($G(PTF))
 ; DG*5.3*850
 S DGPTOPP=+$$CODEN^ICDEX(DGPTOC,80.1) I $P(DGPTOPP,U,1)=-1 S DGPTERC=$S(DGPTL3<6:410+DGPTL3,DGPTL3<23:412+DGPTL3,1:423+DGPTL3) Q
 S DGPTTMP=$$ICDDATA^ICDXCODE("PROC",DGPTOPP,EFFDATE)
 ; DG*744 - check against discharge date
 I DGPTTMP=-1!('$P(DGPTTMP,U,10)) S DGPTERC=$S(DGPTL3<6:410+DGPTL3,DGPTL3<23:412+DGPTL3,1:423+DGPTL3) N DGPTDAT S DGPTDAT=+$G(^DGPT(PTF,70)) I DGPTDAT S DGPTTMP=$$ICDDATA^ICDXCODE("PROC",DGPTOPP,EFFDATE) I $P(DGPTTMP,U,10)=1 S DGPTERC=0
 ;I DGPTERC=451 Q
 ;I $P(DGPTTMP,U,11)]""&(DGPTGEN'=$P(DGPTTMP,U,11)) S DGPTERC=451 Q
CURR ;current procedure. check procedure status, inactive date and surgery date
 S DGPTTMP=$$ICDDATA^ICDXCODE("PROC",DGPTOPP,EFFDATE)
 I ($P(DGPTTMP,U,10)=0)&($P(DGPTSDD,1,7)>$P(DGPTTMP,U,12)) S DGPTERC=$S(DGPTL3<6:410+DGPTL3,DGPTL3<23:412+DGPTL3,1:423+DGPTL3) Q
SAVE ;
 S @("DGPTSO"_DGPTL3)=DGPTOC
ARRAY ;
 S DGPTOPAR(DGPTSDD)=$S($D(DGPTOPAR(DGPTSDD)):DGPTOPAR(DGPTSDD)_U_DGPTOPP,1:DGPTOPP_U)
 Q
EXIT ;
 K DGPTL3,DGPTOC,DGPTOC1,DGPTOPP
 Q
ERR ;
 D WRTERR^DGPTAE(DGPTERC,NODE,SEQ)
 Q