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

AGDICLK.m

Go to the documentation of this file.
  1. AGDICLK ; IHS/ASDS/EFG - DICTIONARY ENTRY LOOK-UP UTILITY ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. L1 ;
  1. K AGPCC,AG("LKPRINT"),AG("LKDATA"),AG("LKERR"),AGL,AG("AGDENT"),AGNEW
  1. G END:'$D(DR)!'$D(DIC)!'$D(DA)
  1. S AGLK("I")=1
  1. S DIC(1)=DIC
  1. S DR(1)=DR
  1. G END:+DR<.01!(+DIC<1)!(+DA<1)
  1. I $D(^DD(DIC,DR,0)) S G=^DD(DIC,DR,0) G COMP:$P(G,"^",2)["C" I +$P(G,"^",2)>0 S AG("LKERR")=5 G END
  1. L2 ;
  1. I '$D(^DD(DIC(AGLK("I")),DR(AGLK("I")),0)) D G END
  1. . S AG("LKERR")=3
  1. S AGSUB=$P(^DD(DIC(AGLK("I")),DR(AGLK("I")),0),"^",4)
  1. S AGPC(AGLK("I"))=$P(AGSUB,";",2)
  1. S AGSUB(AGLK("I"))=$P(AGSUB,";",1)
  1. I '$D(^DD(DIC(AGLK("I")),0,"UP")) G L4
  1. L3 ;
  1. S AG("LKERR")=4
  1. S:$D(AG("DRENT1")) AG("DRENT")=0
  1. G END:'$D(AG("DRENT"))
  1. G END:AG("DRENT")'="0"&(+AG("DRENT")<0)
  1. G END:AG("DRENT")\1'=AG("DRENT")
  1. S:AG("DRENT")=0 AGNEW=""
  1. K AG("LKERR")
  1. S AGLK("I")=AGLK("I")+1
  1. S DIC(AGLK("I"))=^DD(DIC(AGLK("I")-1),0,"UP")
  1. S DR(AGLK("I"))=0
  1. S DR(AGLK("I"))=$O(^DD(DIC(AGLK("I")),"SB",DIC(AGLK("I")-1),DR(AGLK("I"))))
  1. G L2
  1. L4 ;
  1. S AGL=^DIC(DIC(AGLK("I")),0,"GL")_DA
  1. S AGL(1)=AGL_",0)"
  1. I '$D(@AGL(1)) D G END
  1. . S AG("LKERR")=1
  1. I AGLK("I")=1 D G L5
  1. . K AG("DRENT")
  1. F AGLK("J")=AGLK("I"):-1:2 D
  1. . S AGL=AGL_","_AGSUB(AGLK("J"))
  1. . S:AGLK("J")>2 AGL=AGL_",1"
  1. L5 ;
  1. S AGPCC=AGPC(1) I '$D(AG("DRENT")) S AG("DRENT")="" G L6
  1. L5A ;
  1. S AGL(0)=AGL_",0)" I '$D(@AGL(0)) S AG("LKERR")=6,AGL=AGL_",1,0)" G END
  1. L5B ;
  1. S AGDENT=$P(@AGL(0),"^",4) S:AGDENT="" AGDENT=0 I AGDENT=0!(AG("DRENT")>AGDENT) S AG("LKERR")=2 G END
  1. L5BB ;
  1. I $D(AG("DRENT1")) D DNT4 G L5E:AGDNT'="" S AG("LKERR")=2 G END
  1. L5C ;
  1. I AG("DRENT")>0 D DNT2 S AG("DRENT")=AGDNT G L5E:AGDNTT>0 S AG("LKERR")=2 G END
  1. L5D ;
  1. S AGL(0)=AGL_",0)" D DNT
  1. L5E ;
  1. S AG("DRENT")=","_AG("DRENT")
  1. L6 ;
  1. S AGL=AGL_AG("DRENT")_","_AGSUB(1)_")" I AGL[",," S AG("LKERR")=2,AGNEW="" G END
  1. I '$D(@AGL) S AG("LKERR")=2,AGNEW="" G END
  1. L6A ;
  1. S (AG("LKPRINT"),AG("LKDATA"))=$P(@AGL,"^",AGPC(1)) G END:AG("LKPRINT")=""
  1. L7 ;
  1. S AGG=$P(G,"^",2),AGLK("H")=$P(G,"^",3) G SET:AGG["S",DATE:AGG["D",PTR:AGG["P",TRX:$D(^DD(DIC(1),DR(1),2))
  1. END ;
  1. K AG("DRENT"),AG("DRENT1"),D0
  1. K AGDNT,AGDNTT,AGLK,AGLKH,AGG,AGGG,AGLL,AGSUB,AGPC
  1. S:'$D(AG("LKPRINT"))&'$D(AG("LKERR")) AG("LKERR")=0
  1. Q
  1. DNT ;
  1. S AGDNT=0
  1. DNT1 ;
  1. S AGLL=AGL_",AGDNT)",AGDNT=$O(@AGLL) Q:AGDNT'=+AGDNT S AG("DRENT")=AGDNT G DNT1
  1. DNT2 ;
  1. S (AGDNT,AGDNTT)=0
  1. DNT3 ;
  1. S AGLL=AGL_",AGDNT)",AGDNT=$O(@AGLL) Q:AGDNT="" S AGDNTT=AGDNTT+1 Q:AGDNTT=AG("DRENT") G DNT3
  1. DNT4 ;
  1. S AGDNT=0
  1. DNT5 ;
  1. S AGLL=AGL_",AGDNT)",AGDNT=$O(@AGLL) Q:AGDNT="" S:AGDNT=AG("DRENT1") AG("DRENT")=AGDNT Q:AG("DRENT")=AGDNT G DNT5
  1. SET ;
  1. F AGLK("I")=1:1 S AGGG=$P(AGLK("H"),";",AGLK("I")) G END:AGGG="" S:$P(AGGG,":",1)=AG("LKDATA") AG("LKPRINT")=$P(AGGG,":",2)
  1. G END
  1. DATE ;
  1. S Y=AG("LKDATA")
  1. D DD^%DT
  1. S AG("LKPRINT")=Y
  1. G END
  1. PTR ;
  1. S AGGG="^"_AGLK("H")_AG("LKDATA")_",0)" I '$D(@AGGG) S AG("LKERR")=7 G END
  1. S AG("LKPRINT")=$P(@AGGG,"^",1) G END
  1. COMP ;
  1. S AGLKH=$E($P(G,";",2),3,999),D0=DA X AGLKH S AG("LKPRINT")=X G END
  1. TRX ;
  1. S Y=AG("LKDATA") X ^DD(DIC(1),DR(1),2) S AG("LKPRINT")=Y G END