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

DBTSTSK.m

Go to the documentation of this file.
  1. DBTSTSK ;BAO/DMH QUEUED ROUTINE [ 10/29/1999 5:24 PM ]
  1. ;
  1. ; this is queued to go check the patient data and see if anything
  1. ; needs to be sent to sql
  1. ;
  1. ;
  1. ;
  1. ST ;
  1. ;
  1. ;
  1. S %DT="R",X="NOW" D ^%DT
  1. S $P(^DBTSPAT("CHK FOR DATA"),"^",1)=Y
  1. S DBTSP=0
  1. F S DBTSP=$O(^DBTSPAT(DBTSP)) Q:+DBTSP=0 D START
  1. S %DT="R",X="NOW" D ^%DT
  1. S $P(^DBTSPAT("CHK FOR DATA"),"^",2)=Y
  1. K DBTS,DBTSP,ARRAY
  1. Q
  1. ;
  1. START ;
  1. K DBTSNEW
  1. S ARRAY=0
  1. ;S DBTSP=13051 ;uncomment if want to test with call to TEST directly
  1. ;S DBTSP=17897 ;crow demo patient dfn for testing
  1. ;
  1. D ^XBKVAR
  1. I DUZ(2)=4526 S DUZ(2)=2348
  1. S DBTS("LOC")=$P($G(^AUTTLOC(DUZ(2),0)),"^",10)
  1. I DBTS("LOC")="" S DBTSRET(1)="-1" Q
  1. S DBTS("ID")=DBTS("LOC")_"|1419200BEG|"_DBTSP
  1. ;
  1. ;
  1. ;K DBTS("NEWPAT")
  1. ;I '$D(^DBTSPAT(DBTSP)) S DBTS("NEWPAT")="Y" D G SET
  1. ;.K ^DBTSPAT("B",DBTSP)
  1. ;.S X=DBTSP,DINUM=X,DIC(0)="XNL",DIC="^DBTSPAT(" D FILE^DICN
  1. ;.S DBTSNEW="Y"
  1. ;.Q
  1. ;
  1. ; put the patient log information to a temporary holding
  1. ;I '$D(^DBTSPAT(DBTSP)) S DBTSRET(1)="-1" Q
  1. ;S NODE=""
  1. ;F S NODE=$O(^DBTSPAT(DBTSP,NODE)) Q:NODE="" D
  1. ;.S ^DBTS("TMP",DBTSP,NODE)=^DBTSPAT(DBTSP,NODE)
  1. ;.Q
  1. ;S ^DBTS("TMP",DBTSP,"ZZSAVEDON")=DT
  1. SET ;
  1. I '$D(^DBTSPAT(DBTSP)) S DBTSRET(1)="-1" Q
  1. E S DBTSRET(1)=""
  1. ;E S DBTSRET(1)=DBTS("ID")_U_DBTS("LOC")_U_DBTSP_U_"BEGIN"
  1. ;Q:$D(DBTSNEW)
  1. F ENT=1:1:6 K DBTSAU D ^DBTSB1 D APPEND
  1. F ENT=7:1:12 K DBTSAU D ^DBTSB2 D APPEND
  1. F ENT=13:1:17 K DBTSAU D ^DBTSB3 D APPEND
  1. S %DT="R",X="NOW" D ^%DT
  1. S DTTIME=Y
  1. S DBTSRET(1)=$TR(DBTSRET(1),"^","|")
  1. S $P(^DBTSPAT(DBTSP,"A"),"^",1)=DTTIME
  1. S $P(^DBTSPAT(DBTSP,"A"),"^",2)=DBTSRET(1)
  1. Q
  1. 1 ; chk for demographic chgs or adds
  1. I $P($G(^DBTSPAT(DBTSP,0)),"^",2)="" S DBTSAU=1 D APPEND Q
  1. S DBTS("LM")=$P(^AUPNPAT(DBTSP,0),U,3)
  1. S DBTS("LDT")=$P($G(^DBTSPAT(DBTSP,0)),U,2)
  1. I (DBTS("LDT")>(DBTS("LM"))) S DBTSAU=0
  1. E S DBTSAU=1
  1. D APPEND
  1. Q
  1. 2 ; chk for meas. chgs. or adds
  1. F X="BP","HT","WT" D
  1. .S REC=$G(^DBTSPAT(DBTSP,X))
  1. .S LDFN=$P(REC,U,1),LDT=$P(REC,U,2)
  1. .I '$D(DBTS("LDFN")) S DBTS("LDFN")=LDFN
  1. .I '$D(DBTS("LDT")) S DBTS("LDT")=LDT
  1. .I LDT>(DBTS("LDT")) S DBTS("LDT")=LDT
  1. .I LDFN>(DBTS("LDFN")) S DBTS("LDFN")=LDFN
  1. S DBTSAU=0
  1. S N=0
  1. F S N=$O(^AUPNVMSR("AC",DBTSP,N)) Q:+N=0 D I DBTSAU=1 Q
  1. .I N>(DBTS("LDFN")) S DBTSAU=1 Q
  1. .S DV=$P($G(^AUPNVMSR(N,0)),U,3)
  1. .S DBTS("MODDT")=$P($G(^AUPNVSIT(DV,0)),U,13)
  1. .I DBTS("LDT")'>(DBTS("MODDT")) S DBTSAU=1
  1. .Q
  1. D APPEND
  1. Q
  1. 3 ; chk for immunizations chgs or adds
  1. S REC=$G(^DBTSPAT(DBTSP,"IMM"))
  1. S DBTS("LDFN")=$P(REC,U,1),DBTS("LDT")=$P(REC,U,2)
  1. S DBTSAU=0
  1. S N=0
  1. F S N=$O(^AUPNVIMM("AC",DBTSP,N)) Q:+N=0 D I DBTSAU=1 Q
  1. .I N>(DBTS("LDFN")) S DBTSAU=1 Q
  1. .S DV=$P($G(^AUPNVIMM(N,0)),U,3)
  1. .S DBTS("MODDT")=$P($G(^AUPNVSIT(DV,0)),U,13)
  1. .I DBTS("LDT")'>(DBTS("MODDT")) S DBTSAU=1
  1. .Q
  1. D APPEND
  1. Q
  1. 4 ; chk for ppd chgs or adds
  1. S DBTSAU=0
  1. S PPD=$O(^AUTTSK("B","PPD",0))
  1. I PPD="" D APPEND Q
  1. S REC=$G(^DBTSPAT(DBTSP,"PPD"))
  1. S DBTS("LDFN")=$P(REC,U,1),DBTS("LDT")=$P(REC,U,2)
  1. S N=0
  1. F S N=$O(^AUPNVSK("AC",DBTSP,N)) Q:+N=0 D I DBTSAU=1 Q
  1. .S SKIN=$G(^AUPNVSK(N,0))
  1. .S DBTS("PPD")=$P(SKIN,U,1)
  1. .Q:DBTS("PPD")'=PPD
  1. .I N>(DBTS("LDFN")) S DBTSAU=1 Q
  1. .S DV=$P($G(^AUPNVSK(N,0)),U,3)
  1. .S DBTS("MODDT")=$P($G(^AUPNVSIT(DV,0)),U,13)
  1. .I DBTS("LDT")'>(DBTS("MODDT")) S DBTSAU=1
  1. .Q
  1. D APPEND
  1. Q
  1. 5 ; chk for breast exam chgs or adds
  1. S REC=$G(^DBTSPAT(DBTSP,"BRE"))
  1. S DBTS("LDFN")=$P(REC,U,1),DBTS("LDT")=$P(REC,U,2)
  1. S DBTSAU=0
  1. S N=0
  1. F S N=$O(^AUPNVXAM("AC",DBTSP,N)) Q:+N=0 D I DBTSAU=1 Q
  1. .S EXAM=$G(^AUPNVXAM(N,0))
  1. .S CODE=$P(EXAM,U,1)
  1. .I CODE="" Q
  1. .S CODE=$P($G(^AUTTEXAM(EXAM,0)),U,2)
  1. .Q:CODE'="06"
  1. .I N>(DBTS("LDFN")) S DBTSAU=1 Q
  1. .S DV=$P($G(^AUPNVXAM(N,0)),U,3)
  1. .S DBTS("MODDT")=$P($G(^AUPNVSIT(DV,0)),U,13)
  1. .I DBTS("LDT")'>(DBTS("MODDT")) S DBTSAU=1
  1. .Q
  1. D APPEND
  1. Q
  1. 6 ; chk for dental chgs or adds
  1. Q
  1. 7 ; patient education chgs or adds
  1. Q
  1. 8 ; eye exam chgs or adds
  1. Q
  1. 9 ; amputation chgs or adds
  1. Q
  1. 10 ; foot check chgs or adds
  1. Q
  1. 11 ; foot exam chgs or adds
  1. Q
  1. 12 ; pelvic exam chgs or adds
  1. Q
  1. 13 ; rectal exam chgs or adds
  1. Q
  1. 14 ; cardiac chgs or adds
  1. Q
  1. 15 ; ekg chgs or adds
  1. Q
  1. 16 ; medications chgs or adds
  1. Q
  1. 17 ; labs chgs or adds
  1. Q
  1. APPEND ;
  1. S DBTSRET(1)=DBTSRET(1)_DBTSAU_U
  1. Q