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

AUPNLKB.m

Go to the documentation of this file.
  1. AUPNLKB ; IHS/CMI/LAB - Broke up AUPNLK because of size ;
  1. ;;99.1;IHS DICTIONARIES (PATIENT);;MAR 09, 1999
  1. ;
  1. LOOKUPS ; EXTERNAL ENTRY POINT
  1. S AUPBEG=1,(AUPDFN,AUPNUM)=0
  1. D QUICK ; Try quick lookups first
  1. Q:AUPQF
  1. D XREFS ; Try lookup on xrefs
  1. Q:AUPQF
  1. I DIC(0)["N" D DFN ; Try by DFN
  1. Q:AUPQF
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. QUICK ; QUICK LOOKUPS
  1. I $D(AUPNLK("ICN")) D ICN Q
  1. I AUPX=+AUPX,$L(AUPX)<7 D IHSCHRT I AUPDFN>0 S AUPQF=4 Q
  1. I AUPX["^" S AUPQF=3 Q
  1. S AUPDFN=0
  1. I AUPX=" " S Y=$S('($D(DUZ)#2):-1,$D(^DISV(DUZ,"^DPT(")):^("^DPT("),1:-1) D SETAUP^AUPNLKUT:Y>0 S AUPDFN=$S($D(AUPS(Y)):Y,1:-1) D CHKDFN K AUPSP Q
  1. I $E(AUPX)="`" S Y=$S($D(^DPT(+$P(AUPX,"`",2),0)):+$P(AUPX,"`",2),1:-1) D SETAUP^AUPNLKUT:Y>0 S AUPDFN=$S($D(AUPS(Y)):Y,1:-1) D CHKDFN Q
  1. Q
  1. ;
  1. ICN ; LOOKUP BY ICN (for MFI)
  1. S AUPDFN=-1
  1. S X=$P(AUPNLK("ICN"),":",2),AUPNLK("ICN")=$P(AUPNLK("ICN"),":",1)
  1. Q:X'?1N.N
  1. Q:AUPNLK("ICN")'?1N.N
  1. Q:'$D(^AUTTLOC(AUPNLK("ICN"),0))
  1. Q:'$D(^AUPNPAT("AICN",AUPNLK("ICN"),X))
  1. S (AUPDFN,Y)=$O(^(X,0))
  1. S:$D(DIC("S")) AUPNLK("DICS")=DIC("S") K DIC("S") D SETAUP^AUPNLKUT S:$D(AUPNLK("DICS")) DIC("S")=AUPNLK("DICS") K AUPNLK("DICS")
  1. S AUPQF=4
  1. Q
  1. ;
  1. IHSCHRT ; LOOKUP CHART #
  1. Q:'$D(^AUPNPAT("D",AUPX))
  1. D IHSCHRT1:DUZ(2),IHSCHRT2:'DUZ(2)
  1. Q
  1. ;
  1. IHSCHRT1 ; LOOKUP CHART # WHEN DUZ(2)'=0
  1. F Y=0:0 S Y=$O(^AUPNPAT("D",AUPX,Y)) Q:Y="" Q:$D(^(Y,DUZ(2)))
  1. Q:Y=""
  1. D SETAUP^AUPNLKUT
  1. S AUPDFN=$S($D(AUPS(Y)):Y,1:-1)
  1. Q
  1. ;
  1. IHSCHRT2 ; LOOKUP CHART # WHEN DUZ(2)=0
  1. F AUPIFN=0:0 S AUPIFN=$O(^AUPNPAT("D",AUPX,AUPIFN)) Q:AUPIFN="" S Y=AUPIFN D SETAUP^AUPNLKUT
  1. S:AUPCNT=1&($D(AUPIFNS(AUPCNT))) AUPDFN=+AUPIFNS(AUPCNT) D PRTAUP^AUPNLKUT:'AUPDFN&(AUPCNT>AUPNUM)&(DIC(0)["E") I 'AUPDFN,$D(AUPSEL),AUPSEL="" S AUPDFN=-1
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. XREFS ; LOOKUP BY XREFS
  1. ; Upon returning from ^AUPNLK1 AUPDFN values/meanings are:
  1. ; 0 = No hits
  1. ; <0 = Hits but no selection
  1. ; >0 = Selection made
  1. D ^AUPNLK1
  1. I $D(DTOUT) S AUPQF=2 Q
  1. I AUPDFN>0 S AUPQF=4 Q
  1. I AUPDFN<0 S AUPQF=3 Q
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. DFN ; LOOKUP BY DFN
  1. Q:AUPX'?1N.N
  1. S AUPDFN=-1,AUPBEG=1,AUPNUM=0
  1. I $D(^DPT(AUPX,0)) S Y=X D SETAUP^AUPNLKUT S AUPDFN=$S($D(AUPS(Y)):Y,1:-1) D CHKDFN Q
  1. Q
  1. ;
  1. CHKDFN ;
  1. S:'$D(AUPDFN) AUPDFN=-1
  1. I +AUPDFN'>0!('$D(AUPS(+AUPDFN))) D:DIC(0)["Q" EN^DDIOL($C(7)_" ??") S AUPQF=3 Q
  1. S AUPQF=4
  1. Q
  1. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1. ;
  1. ADDPAT ; EXTERNAL ENTRY POINT - ADD PATIENT
  1. I AUPX?1"""".E1"""" S AUPX=$E(AUPX,2,$L(AUPX)-1)
  1. D ^AUPNLK2
  1. S Y=AUPDFN
  1. I Y<0 S AUPQF=3 Q
  1. S AUPQF=5
  1. Q