- DGPTAE04 ;ALB/MTC/ADL - 401 Edit Checks Cont ; 13 NOV 92
- ;;5.3;Registration;**510,744,1015**;Aug 13, 1993;Build 21
- ;;ADL;Updated for CSV Project;;Mar 24, 2003
- ;
- TRAN ;-- verify transplant status
- I " 12"'[DGPT40PT S DGPTERC=417
- Q
- ;
- CHIEF ;
- 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 ;
- 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 ;
- 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
- ;
- I (+DGPTSO1=1371)!(+DGPTSO1=39610)!(+DGPTSO1=39611)!(+DGPTSO1=39612) S DGPTERC=450 D ERR G:DGPTEDFL EXIT
- LOOP ;
- F DGPTL3=1:1:5 S DGPTERC=0 D CHKOPC I DGPTERC D ERR G:DGPTEDFL EXIT
- Q
- CHKOPC ;
- S DGPTOC=(@("DGPTSO"_DGPTL3)),DGPTOC=$P(DGPTOC," ",1) Q:DGPTOC=""
- S DGPTERC=410+DGPTL3
- S DGPTOC=$E(DGPTOC_" ",1,2)_"."_$E(DGPTOC,3,7)
- I $D(^ICD0("AB",DGPTOC)) S DGPTERC=0 D GEN Q
- Q
- GEN ;
- S DGPTOPP=$O(^ICD0("AB",DGPTOC,0)) I DGPTOPP="" S DGPTERC=451 Q
- S DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,$S($G(DGPTSDD)'="":DGPTSDD,1:DT)) ;use date of surgery from rec if it exists, else today
- ; DG*744 - check against discharge date
- ;I DGPTTMP=-1!('$P(DGPTTMP,U,10)) S DGPTERC=451 Q
- I DGPTTMP=-1!('$P(DGPTTMP,U,10)) S DGPTERC=451 N DGPTDAT S DGPTDAT=+$G(^DGPT(PTF,70)) I DGPTDAT S DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,DGPTDAT) 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 ;
- S DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,$S($G(DGPTSDD)'="":DGPTSDD,1:DT)) ;use date of surgery from rec if it exists, else today
- I ($P(DGPTTMP,U,10)=0)&($P(DGPTSDD,1,7)>$P(DGPTTMP,U,12)) S DGPTERC=474+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
- DGPTAE04 ;ALB/MTC/ADL - 401 Edit Checks Cont ; 13 NOV 92
- +1 ;;5.3;Registration;**510,744,1015**;Aug 13, 1993;Build 21
- +2 ;;ADL;Updated for CSV Project;;Mar 24, 2003
- +3 ;
- TRAN ;-- verify transplant status
- +1 IF " 12"'[DGPT40PT
- SET DGPTERC=417
- +2 QUIT
- +3 ;
- CHIEF ;
- +1 NEW FLAG,I
- +2 IF "VMN"[DGPTSCS
- QUIT
- +3 IF "1234567"'[DGPTSCS
- SET DGPTERC=407
- QUIT
- +4 SET FLAG=1
- FOR I=10,11,30,40,42
- IF DGPTSTTY["^"_I_"^"
- SET FLAG=0
- QUIT
- +5 IF FLAG
- SET DGPTERC=407
- +6 QUIT
- FAST ;
- +1 NEW FLAG,I
- +2 IF DGPTSFA=" "
- QUIT
- +3 SET FLAG=0
- FOR I=20:1:26
- IF DGPTSTTY["^"_I_"^"
- SET FLAG=1
- SET DGPTSFA=" "
- QUIT
- +4 IF FLAG
- QUIT
- +5 IF "12345678"'[DGPTSFA
- SET DGPTERC=408
- QUIT
- +6 QUIT
- ANES ;
- +1 NEW FLAG,I
- +2 IF DGPTSAT=" "
- QUIT
- +3 SET FLAG=0
- FOR I=20:1:26
- IF DGPTSTTY["^"_I_"^"
- SET FLAG=1
- SET DGPTSAT=" "
- QUIT
- +4 IF FLAG
- QUIT
- +5 IF "0123456789RX"'[DGPTSAT
- SET DGPTERC=409
- QUIT
- +6 SET DGPTERC=409
- FOR I=10,11,30,40,42
- IF DGPTSTTY["^"_I_"^"
- SET DGPTERC=0
- QUIT
- +7 QUIT
- +8 ;
- FIRST ;-- Edit surgeries - present in ICD0 OPERATIONS, current, gender ok
- +1 ;
- +2 IF (+DGPTSO1=1371)!(+DGPTSO1=39610)!(+DGPTSO1=39611)!(+DGPTSO1=39612)
- SET DGPTERC=450
- DO ERR
- IF DGPTEDFL
- GOTO EXIT
- LOOP ;
- +1 FOR DGPTL3=1:1:5
- SET DGPTERC=0
- DO CHKOPC
- IF DGPTERC
- DO ERR
- IF DGPTEDFL
- GOTO EXIT
- +2 QUIT
- CHKOPC ;
- +1 SET DGPTOC=(@("DGPTSO"_DGPTL3))
- SET DGPTOC=$PIECE(DGPTOC," ",1)
- IF DGPTOC=""
- QUIT
- +2 SET DGPTERC=410+DGPTL3
- +3 SET DGPTOC=$EXTRACT(DGPTOC_" ",1,2)_"."_$EXTRACT(DGPTOC,3,7)
- +4 IF $DATA(^ICD0("AB",DGPTOC))
- SET DGPTERC=0
- DO GEN
- QUIT
- +5 QUIT
- GEN ;
- +1 SET DGPTOPP=$ORDER(^ICD0("AB",DGPTOC,0))
- IF DGPTOPP=""
- SET DGPTERC=451
- QUIT
- +2 ;use date of surgery from rec if it exists, else today
- SET DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,$SELECT($GET(DGPTSDD)'="":DGPTSDD,1:DT))
- +3 ; DG*744 - check against discharge date
- +4 ;I DGPTTMP=-1!('$P(DGPTTMP,U,10)) S DGPTERC=451 Q
- +5 IF DGPTTMP=-1!('$PIECE(DGPTTMP,U,10))
- SET DGPTERC=451
- NEW DGPTDAT
- SET DGPTDAT=+$GET(^DGPT(PTF,70))
- IF DGPTDAT
- SET DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,DGPTDAT)
- IF $PIECE(DGPTTMP,U,10)=1
- SET DGPTERC=0
- +6 IF DGPTERC=451
- QUIT
- +7 IF $PIECE(DGPTTMP,U,11)]""&(DGPTGEN'=$PIECE(DGPTTMP,U,11))
- SET DGPTERC=451
- QUIT
- CURR ;
- +1 ;use date of surgery from rec if it exists, else today
- SET DGPTTMP=$$ICDOP^ICDCODE(DGPTOPP,$SELECT($GET(DGPTSDD)'="":DGPTSDD,1:DT))
- +2 IF ($PIECE(DGPTTMP,U,10)=0)&($PIECE(DGPTSDD,1,7)>$PIECE(DGPTTMP,U,12))
- SET DGPTERC=474+DGPTL3
- QUIT
- SAVE ;
- +1 SET @("DGPTSO"_DGPTL3)=DGPTOC
- ARRAY ;
- +1 SET DGPTOPAR(DGPTSDD)=$SELECT($DATA(DGPTOPAR(DGPTSDD)):DGPTOPAR(DGPTSDD)_U_DGPTOPP,1:DGPTOPP_U)
- +2 QUIT
- EXIT ;
- +1 KILL DGPTL3,DGPTOC,DGPTOC1,DGPTOPP
- +2 QUIT
- ERR ;
- +1 DO WRTERR^DGPTAE(DGPTERC,NODE,SEQ)
- +2 QUIT