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

ADEXSU1.m

Go to the documentation of this file.
  1. ADEXSU1 ; IHS/HQT/MJL - DENTAL EXTRACT PART 3 ; [ 05/12/1999 5:04 PM ]
  1. ;;6.0;ADE;**1**;MAY 12, 1999
  1. START ;EP
  1. S ADERC=0
  1. U IO
  1. W !!!,?10,"D E N T A L D A T A E X T R A C T I O N B E G U N",!
  1. ;K ^ADENDATA ;^ADENDATA is a transient working global
  1. D:$D(^ADENDATA)
  1. .S ADESUB=""
  1. .F S ADESUB=$O(^ADENDATA(ADESUB)) Q:ADESUB="" K ^ADENDATA(ADESUB)
  1. .K ADESUB
  1. I $D(ADERERUN) D
  1. . Q:'$D(ADEXDA)
  1. . S ADELETE="@"
  1. . S DIK="^ADELOG(",DA=ADEXDA
  1. . D ^DIK
  1. . K ADELETE,DR,DIE,DIDEL
  1. I '$D(ADEREX) D
  1. . N DIC,X,DR,ADELAST
  1. . S DIC="^ADELOG(",DIC(0)="L",X=ADEXDT
  1. . S DIC("DR")="1///"_ADEBDT_";2///"_ADEND_";3///0;4///D;5///ABORTED"
  1. . S ADELAST=1
  1. . K DD,DO
  1. . D FILE^DICN
  1. . S ADEXDA=+Y
  1. . K DIC,X,DR,ADELAST
  1. D CHKY1
  1. ;
  1. I ADERC S ^ADENDATA(0)=$P(^AUTTLOC($P(^AUTTSITE(1,0),U,1),0),U,10)_U_$P(^DIC(4,$P(^AUTTSITE(1,0),U,1),0),U,1)_U_(17000000+ADEXDT)_U_(17000000+ADEBDT)_U_(17000000+ADEND)_"^^"_ADERC
  1. ;
  1. ;If it's NOT a re-extract, update both RECORD COUNT and STATUS
  1. ;If it IS a re-extract, update record count ONLY
  1. D
  1. . N DIE,DR,DA,ADELAST
  1. . S DIE="^ADELOG(",DA=ADEXDA,ADELAST=1
  1. . S DR="3///"_ADERC_";5///COMPLETED NORMALLY"
  1. . I $D(ADEREX) S DR="3///"_ADERC
  1. . D ^DIE
  1. . K DIE,DR,DA,ADELAST
  1. G FIN^ADEXSU3
  1. ;
  1. CHKY1 ;GET FIRST DATE FROM "AF" XREF
  1. W !,?15,"RECORD SCANNING "
  1. S ADEDT=ADEBDT-1
  1. F S ADEDT=$O(^ADEPCD("AC",ADEDT)) Q:(ADEDT="")!(ADEDT>ADEND) W "." D CHKY2
  1. W !,?15,"COMPLETED",!
  1. Q
  1. CHKY2 S ADEA=0
  1. I $D(^%ZOSF("TRAP")) S X="ERR^ADEXSU3",@^%ZOSF("TRAP")
  1. RESTART ;EP
  1. F S ADEA=$O(^ADEPCD("AC",ADEDT,ADEA)) Q:'+ADEA D CHKY3
  1. Q
  1. CHKY3 Q:'$D(^ADEPCD(ADEA,0))
  1. S ADERROR=0,ADEVNODE=^ADEPCD(ADEA,0)
  1. G:'$D(ADEREX) CHKY3B
  1. Q:$P(^ADEPCD(ADEA,0),U,6)'=ADEXDT
  1. D EXT1 Q:ADERROR D VIS1 Q
  1. CHKY3B Q:$P(^ADEPCD(ADEA,0),U,6)
  1. I 'ADECHS,$P(^ADEPCD(ADEA,0),U,9)="c" Q
  1. D EXT1 Q:ADERROR D VIS1 Q:ADERROR
  1. S $P(^ADEPCD(ADEA,0),U,6)=ADEXDT,^ADEPCD("AI",ADEXDT,ADEA)=""
  1. Q
  1. EXT1 ;
  1. S (ADEDOB,ADESEX,ADEZIP,ADENAT,ADEVDTE,ADEVDTP,ADETCOST,ADEASF,ADEHRN,ADESITE)=""
  1. S ADEDFN=$P(ADEVNODE,U)
  1. G:'$D(^DPT(ADEDFN,0)) ERR4^ADEXSU2
  1. S ADENODE=^DPT(ADEDFN,0)
  1. ;S ADEDOB=$E($P(ADENODE,U,3),2,7)
  1. S ADEDOB=$P(ADENODE,U,3)
  1. S ADESEX=$P(ADENODE,U,2)
  1. S:$D(^DPT(ADEDFN,.11)) ADEZIP=$P(^DPT(ADEDFN,.11),U,6)
  1. I '$D(^AUPNPAT(ADEDFN,11)) S ADENAT="I" Q
  1. S ADENAT=$P(^AUPNPAT(ADEDFN,11),U,11)
  1. I ADENAT="" S ADENAT="I" Q
  1. S ADENAT=$P(^AUTTBEN(ADENAT,0),U,2)
  1. S ADENAT=$S(ADENAT="01":"I",1:"O")
  1. Q
  1. ;
  1. VIS1 ;S ADEVDTE=$E($P(ADEVNODE,U,2),2,7) ;MJL 4/26/99
  1. ;S ADEVDTE=$P(ADEVNODE,U,2) ;MJL 4/26/99 Need the entire internal FileMan formatted visit date to convert to the CCYYMMDD format
  1. S ADEVDTE=$P(ADEVNODE,U,2)\1 ;MJL 5/12/99 Performed integer divide by 1 to remove fractional part (time portion)
  1. I ADEVDTE="" G ERR5^ADEXSU2
  1. S ADEREPD=$P(ADEVNODE,U,4)
  1. I ADEREPD="" G ERR6^ADEXSU2
  1. S ADEVDTP=$S($D(^DIC(16,ADEREPD,0)):$P(^DIC(16,ADEREPD,0),U,9),1:"")
  1. I ADEVDTP="" G ERR12^ADEXSU2
  1. S ADETYPE=$S($P(ADEVNODE,U,9)="c":"K",1:"D")
  1. S ADESITE=$P(ADEVNODE,U,3)
  1. I ADESITE="" G ERR3^ADEXSU2
  1. I '$D(^AUTTLOC(ADESITE,0)) G ERR3^ADEXSU2
  1. S ADEASF=$P(^AUTTLOC(ADESITE,0),U,10) ;G:ADEASF'?6.6N ERR2^ADEXSU2
  1. S ADEHRN=$S($D(^AUPNPAT(ADEDFN,41,ADESITE,0)):$E(1000000+$P(^(0),U,2),2,7),1:"000000")
  1. S ADETCOST=$P(ADEVNODE,U,8)
  1. S:ADETCOST]"" ADETCOST=$E(1000000+(ADETCOST*100\1),2,7)
  1. S ADEASITE=$E(ADEASF,1,2),ADESUFAC=$E(ADEASF,3,6)
  1. I '$D(^ADEPCD(ADEA,"ADA","B")) G ERR10^ADEXSU2
  1. S ADESVCS=""
  1. S ADEADACP=0
  1. F ADEIDX=1:1:15 S ADEADACP=$O(^ADEPCD(ADEA,"ADA","B",ADEADACP)) Q:ADEADACP="" D ADAQ
  1. S ADERC=ADERC+1,^ADENDATA(ADERC)="AD1"_U_ADENAT_U_ADETYPE_U_ADEASITE_U_ADEVDTP_U_ADESUFAC_U_(17000000+ADEVDTE)_U_U_(17000000+ADEDOB)_U_ADESEX_U_ADEASF_ADEHRN_U_ADEZIP_U_U_ADETCOST_U_ADESVCS
  1. Q
  1. ADAQ Q:'$D(^AUTTADA(ADEADACP,0))
  1. S ADEC=0,ADEADAQ=0,ADEADAF=0
  1. ;
  1. ADAQ1 S ADEC=$O(^ADEPCD(ADEA,"ADA","B",ADEADACP,ADEC))
  1. G:ADEC="" ADAQ2
  1. I '$D(^ADEPCD(ADEA,"ADA",ADEC,0)) G ADAQ1
  1. I $P(^ADEPCD(ADEA,"ADA",ADEC,0),U,5)]"" G ADAQ1
  1. S ADEADAQ=ADEADAQ+1
  1. S ADEADAF=ADEADAF+$P(^ADEPCD(ADEA,"ADA",ADEC,0),U,3)
  1. G ADAQ1
  1. ;
  1. ADAQ2 S ADECOD=$P(^AUTTADA(ADEADACP,0),U)
  1. Q:"0191;0192;0193;0194;0195;0196;0197;0198;0199"[ADECOD
  1. S ADEADAQ=$E(100+ADEADAQ,2,3)
  1. S ADEADAF=$E(100000+$J(ADEADAF,0,0),2,6)
  1. S ADESVCS=ADESVCS_(ADECOD_ADEADAQ_ADEADAF)
  1. Q