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

LRWLST1.m

Go to the documentation of this file.
  1. LRWLST1 ;DALOI/CJS/RWF/FHS - ACCESSION SETUP ; 21-Jul-2015 06:30 ; MKK
  1. ;;5.2;LAB SERVICE;**48,65,1010,121,128,1013,153,202,261,1018,286,1027,1030,331,379,331,379,1031,1032,415,1033,1034,1035**;NOV 1, 1997;Build 5
  1. ;
  1. ; Reference to ^DIC(42 supported by IA #10039
  1. ; Reference to ^SC( supported by IA #10040
  1. ;
  1. EP ; EP
  1. S LRWLC=0
  1. F S LRWLC=$O(LRTSTS(LRWLC)) Q:LRWLC<1 S LRAD=DT D SPLIT
  1. ;
  1. ; If LEDI and comments came with order then copy to order in #69
  1. I $G(LRORDRR)="R",$G(LR696),$D(^LRO(69.6,LR696,99)) D
  1. . N LRDIE
  1. . D WP^DIE(69.01,LRSN_","_LRODT_",",16,"A","^LRO(69.6,LR696,99)","LRDIE(16)")
  1. ;
  1. K DIC,DLAYGO,DR,DA,DIE,LRIXX
  1. Q:$G(LRORDR)="P"
  1. K LRNM,LRTSTS
  1. K ^TMP("LR",$J,"TMP")
  1. K ^TMP("LRWLST1",$J)
  1. Q
  1. ;
  1. SPLIT ;
  1. N LRAA,LRX
  1. ; Setup regular accessions (LRUNQ=0)
  1. S LRUNQ=0,LREND=0
  1. I $D(LRTSTS(LRWLC,0)) D
  1. . D GTWLN
  1. . I LREND Q
  1. . S LRAA=0
  1. . F S LRAA=$O(LRTSTS(LRWLC,0,LRAA)) Q:LRAA<1 D
  1. . . S LRSS=LRTSTS(LRWLC,0,LRAA)
  1. . . ; D STWLN,ST2,^LRWLST11,EN^LA7ADL(LRUID)
  1. . . D STWLN,ST2,^LRWLST11,IHSLOG,EN^LA7ADL(LRUID) ; IHS/MSC/MKK - LR*5.2*1031
  1. . D SICA^LRWLST11
  1. ;
  1. ; Setup accessions requiring 'unique' accession numbers (LRUNQ=1)
  1. S LRUNQ=1,LRAA=0
  1. F S LRAA=$O(LRTSTS(LRWLC,1,LRAA)) Q:LRAA<1 D
  1. . S LRSS=LRTSTS(LRWLC,1,LRAA)
  1. . F D GTWLN Q:LREND D Q:$O(LRTSTS(LRWLC,1,LRAA,0))<1
  1. . . ; D STWLN,ST2,^LRWLST11,EN^LA7ADL(LRUID),SICA^LRWLST11
  1. . . D STWLN,ST2,^LRWLST11,IHSLOG,EN^LA7ADL(LRUID),SICA^LRWLST11 ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. Q
  1. ;
  1. ; ---- BEGIN IHS/OIT/MKK -- LR*5.2*1027
  1. IHSLOG ; EP -- Create entry for PCC transfer
  1. ; Q:'BLRLOG
  1. Q:'+$G(BLRLOG) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. D ^BLREVTQ("C","A",$G(BLROPT),,LRODT_","_LRSN_","_LRAA_","_LRAD_","_LRAN_","_LRACC) ;IHS/OIRM TUC/AAB 12/12/96
  1. Q
  1. ; ---- END IHS/OIT/MKK -- LR*5.2*1027
  1. ;
  1. ;
  1. STWLN ; Set accession number
  1. D GETLOCK(LRAA,LRAD)
  1. D CHECK68(LRAA,LRAD)
  1. ;
  1. S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3)
  1. ;
  1. ; Handle 'in common' area that was not setup in GTWLN call.
  1. I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN)) D SETAN(LRAA,LRAD,LRAN)
  1. ;
  1. S LREND=0,LRLBLBP=1-$P(LRSS,U,2),LRSS=$P(LRSS,U)
  1. S LRACC=$P(^LRO(68,LRAA,0),U,11)_" "_$S(LRAD["0000":$E(LRAD,2,3),1:$E(LRAD,4,7))_" "_LRAN
  1. ;
  1. S LRPRAC=""
  1. I $D(^LRO(69,LRODT,1,LRSN,0)) S LRPRAC=$P(^(0),U,6) S:$D(LRNT) ^(3)=LRNT
  1. ;
  1. ; Location type
  1. S LRCAPLOC=$P($G(^SC(+LROLLOC,0)),U,3)
  1. I LRCAPLOC="" S LRCAPLOC="Z"
  1. ;
  1. ; File information in file #68 for this accession
  1. N FDA,LR6802,LRDIE
  1. S LR6802=LRAN_","_LRAD_","_LRAA_","
  1. S FDA(1,68.02,LR6802,.01)=LRDFN
  1. S FDA(1,68.02,LR6802,1)=LRDPF
  1. S FDA(1,68.02,LR6802,2)=LRAD
  1. S FDA(1,68.02,LR6802,3)=LRODT
  1. S FDA(1,68.02,LR6802,4)=LRSN
  1. S FDA(1,68.02,LR6802,6)=LRLLOC
  1. S X=$G(^LRO(69,LRODT,1,LRSN,.1)) I X'="" S FDA(1,68.02,LR6802,14)=X
  1. ;
  1. ; No ordering provider/location on controls
  1. I LRDPF'=62.3 D
  1. . S FDA(1,68.02,LR6802,6.5)=LRPRAC
  1. . S FDA(1,68.02,LR6802,94)=LROLLOC
  1. ;
  1. ; Only store treating specialty on file #2 patients
  1. ; If no treating specialty then use specialty from file #44 location
  1. I LRDPF=2 D
  1. . S LRTREA=$P($G(^DPT(DFN,.103)),U)
  1. . I 'LRTREA S LRTREA=$P($G(^SC(+LROLLOC,0)),U,20)
  1. . I LRTREA S FDA(1,68.02,LR6802,6.6)=LRTREA
  1. ;
  1. S FDA(1,68.02,LR6802,6.7)=DUZ
  1. S FDA(1,68.02,LR6802,15)=LRACC
  1. S FDA(1,68.02,LR6802,26)=DUZ(2)
  1. S FDA(1,68.02,LR6802,92)=LRCAPLOC
  1. ;
  1. D FILE^DIE("","FDA(1)","LRDIE(1)")
  1. ; I $D(LRDIE(1)) D MAILALRT
  1. I $D(LRDIE(1)) D MAILALRT(1) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1032
  1. ; ONLY use data from the 69 for the Specimen & data from 60 for the Collection sample
  1. ;
  1. ; If specimen defined then set nodes, force to ien=1 since many lab
  1. ; routines expect the specimen to be record number 1.
  1. ; I $G(LRSPEC) D
  1. ; I +$G(LRSPEC) D ; IHS/MSC/MKK - LR*5.2*1031
  1. ; . N FDAIEN
  1. ; . S FDAIEN(1)=1
  1. ; . S FDA(2,68.05,"+1,"_LR6802,.01)=LRSPEC
  1. ; . S FDA(2,68.05,"+1,"_LR6802,1)=$P(LRSAMP,";",1)
  1. ; . ;
  1. ; . ; Modification to prevent lock failures - loop 10 times to give system a chance to get lock
  1. ; . N LRLOCKOK,LRLOOPCT
  1. ; . S LRLOCKOK=0
  1. ; . F LRLOOPCT=1:1:10 Q:LRLOCKOK D I 'LRLOCKOK H 5
  1. ; . . K LRDIE(2)
  1. ; . . D UPDATE^DIE("","FDA(2)","FDAIEN","LRDIE(2)")
  1. ; . . S:$D(LRDIE(2))=0 LRLOCKOK=1
  1. ; . K LRLOCKOK,LRLOOPCT
  1. ; . ;
  1. ; . D UPDATE^DIE("","FDA(2)","FDAIEN","LRDIE(2)")
  1. ; . I $D(LRDIE(2)) D MAILALRT
  1. ; . I $D(LRDIE(2)) D MAILALRT(2) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ; If no specimen defined then use specimen values from file #69.
  1. ; I $G(LRSPEC)="",$D(^LRO(69,LRODT,1,LRSN,4,0)) D
  1. ; I +$G(LRSPEC)<1,$D(^LRO(69,LRODT,1,LRSN,4,0)) D ; IHS/MSC/MKK - LR*5.2*1031
  1. I $D(^LRO(69,LRODT,1,LRSN,4,0)) D
  1. . ; ----- END IHS/MSC/MKK - LR*5.2*1032
  1. . N FDA,FDAIEN,LRI,LRX
  1. . S LRI=0
  1. . F S LRI=$O(^LRO(69,LRODT,1,LRSN,4,LRI)) Q:'LRI D
  1. . . S FDAIEN(1)=LRI,LRX=$G(^LRO(69,LRODT,1,LRSN,4,LRI,0))
  1. . . S FDA(LRI,68.05,"+1,"_LR6802,.01)=$P(LRX,"^")
  1. . . ; S FDA(LRI,68.05,"+1,"_LR6802,1)=$P($G(^LRO(69,LRODT,1,LRSN,0)),"^",3) ; IHS/MSC/MKK - LR*5.2*1031 - Collection Sample
  1. . . ; D IHSCOLS ; IHS/MSC/MKK - LR*5.2*1032
  1. . . D IHSCOLS^BLRUTIL6 ; IHS/MSC/MKK - LR*5.2*1033
  1. . . D UPDATE^DIE("","FDA(LRI)","FDAIEN","LRDIE(LRI)")
  1. . . ; I $D(LRDIE(LRI)) D MAILALRT
  1. . . I $D(LRDIE(LRI)) D MAILALRT("3 ("_LRI_")") ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ; Create UID.
  1. S LRUID=$$LRUID^LRX(LRAA,LRAD,LRAN)
  1. ;
  1. D STORACCS(LRODT,LRSN,LRUID)
  1. ;
  1. ; I '$D(LRPHSET),('$G(LRQUIET)) W !!,"ACCESSION: ",LRACC," <",LRUID,">"
  1. ;----- BEGIN IHS/MSC/MKK MODIFICATIONS LR*5.2*1031
  1. D ENTRYAUD^BLRUTIL("STWLN^LRWLST1 8.5","LRDIE")
  1. I '$D(LRPHSET),('$G(LRQUIET)) W:'$G(BLRGUI)&('$D(^TMP("LRWLST1",$J,LRACC,LRUID))) !!,"ACCESSION: ",LRACC," <",LRUID,">" S ^TMP("LRWLST1",$J,LRACC,LRUID)="" S:$G(BLRGUI) BPCACC=BPCACC_" "_LRACC
  1. ;----- END IHS/MSC/MKK MODIFICATIONS LR*5.2*1031
  1. ;
  1. D UPD696
  1. ;
  1. L -^LRO(68,LRAA,1,LRAD,1,0)
  1. Q
  1. ;
  1. ;
  1. UPD696 ; Update file #69.6 if LEDI referral patient and no existing entry
  1. K LR696IEN
  1. I $G(LRORDRR)="R" D
  1. . S LR696IEN=0
  1. . I $G(LRRSITE("SMID"))'="",$G(LRSD("RUID"))'="" S LR696IEN=+$O(^LRO(69.6,"AD",LRRSITE("SMID"),LRSD("RUID"),0))
  1. . I LR696IEN Q
  1. . I '$G(LRRSTAT(0)) S LRRSTAT(0)=$$FIND1^DIC(64.061,"","OMX","Specimen in process","","I $P(^LAB(64.061,Y,0),U,7)=""U""")
  1. . D PSET^LRPEND(SSN(2),+LRRSITE("RSITE"),LRSD("RUID"),+LRSD("RPSITE"),LRSPEC,LRSAMP,LRRSTAT(0),LRODT,$P(LRCDT,U),LRRSITE("SDT"),LRNT,.LROT)
  1. Q
  1. ;
  1. ;
  1. ST2 ; Find next available node in LR global
  1. ;
  1. N FDA,FDAIEN,LRDIE,LRX,LRXIDT
  1. ;
  1. ; Autopsy ("AU") is not a mulitple - do not attempt to set in ^LR global
  1. I LRSS="AU" S LRIDT=0 Q
  1. ;
  1. S LRIDT=0
  1. F D Q:LRIDT
  1. . S LRXIDT=9999999-LRCDT
  1. . L +^LR(LRDFN,LRSS,LRXIDT,0):5
  1. . I '$T S LRCDT=$$FMADD^XLFDT(LRCDT,0,0,0,1) Q
  1. . I '$D(^LR(LRDFN,LRSS,LRXIDT,0)) S LRIDT=LRXIDT Q
  1. . L -^LR(LRDFN,LRSS,LRXIDT,0)
  1. . S LRCDT=$$FMADD^XLFDT(LRCDT,0,0,0,1)
  1. ;
  1. ; Create entry in appropriate subscript in LAB DATA file (#63).
  1. S LRX=$S(LRSS="CH":63.04,LRSS="MI":63.05,LRSS="BB":63.01,LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,1:0)
  1. S FDAIEN(1)=LRIDT
  1. S FDA(63,LRX,"+1,"_LRDFN_",",.01)=LRCDT
  1. S FDA(63,LRX,"+1,"_LRDFN_",",.06)=LRACC
  1. I LRSS'="CH" S FDA(63,LRX,"+1,"_LRDFN_",",.1)=LRNT
  1. I LRSS="CH" S FDA(63,LRX,"+1,"_LRDFN_",",.12)=3
  1. I LRSS="MI" S FDA(63,LRX,"+1,"_LRDFN_",",38)=3
  1. I LRX D UPDATE^DIE("","FDA(63)","FDAIEN","LRDIE(63)")
  1. ; I $D(LRDIE(63)) D MAILALRT
  1. I $D(LRDIE(63)) D MAILALRT(4) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ; Uncomment following code when new field .9 in"MI" subscript is released
  1. ;I LRSS="MI" D
  1. ;. N LRN,ERR,IENS
  1. ;. S IENS=LRIDT_","_LRDFN_",",LRN=0
  1. ;. F S LRN=$O(^LRO(69,LRODT,1,LRSN,2,LRN)) Q:LRN<1 D
  1. ;. . I '$D(^LRO(69,LRODT,1,LRSN,2,LRN,1,0)) Q
  1. ;. . D WP^DIE(63.05,IENS,.9,"A","^LRO(69,"_LRODT_",1,"_LRSN_",2,"_LRN_",1)","ERR")
  1. ;
  1. L -^LR(LRDFN,LRSS,LRIDT,0)
  1. ;
  1. Q
  1. ;
  1. ;
  1. GTWLN ;
  1. N X
  1. ;
  1. ; Execute accession transform for this area.
  1. S LRAN=0
  1. S X=$G(^LRO(68,LRWLC,.1)) X:X'="" X
  1. ;
  1. D GETLOCK(LRWLC,LRAD)
  1. D CHECK68(LRWLC,LRAD)
  1. ;
  1. S:'LRAN LRAN=1+$P($G(^LRO(68,LRWLC,1,LRAD,1,0)),U,3)
  1. ;
  1. I "CYEMSP"'[LRSS F Q:'$D(^LRO(68,LRWLC,1,LRAD,1,LRAN)) S LRAN=LRAN+1
  1. ;
  1. ; check for AP Accessions
  1. I "CYEMSP"[LRSS F Q:'$D(^LRO(68,LRWLC,1,LRAD,1,LRAN))&'$D(^LR("A"_LRSS_"A",$E(LRAD,1,3),LRAN)) S LRAN=LRAN+1
  1. ;
  1. I '$D(LRPHSET),$D(LRNCWL)!$P(^LAB(69.9,1,0),U,8) D ASK Q:LREND
  1. ;
  1. D SETAN(LRWLC,LRAD,LRAN)
  1. ;
  1. L -^LRO(68,LRWLC,1,LRAD,1,0)
  1. Q
  1. ;
  1. ;
  1. ASK ;
  1. ; Don't ask if tasked or a "silent" call
  1. I $D(ZTQUEUED)!($G(LRQUIET)) Q
  1. ;
  1. N DIR,DIROUT,DIRUT,DTOUT,DUOUT,LROK,LRANX,X,Y
  1. S LROK=0
  1. F D Q:LREND!(LROK)
  1. . K DIR
  1. . S DIR(0)="NO^1:"_$S($P(LRLABKY,U,2):999999,1:LRAN)_":0"
  1. . S DIR("A")="Force to",DIR("B")=LRAN
  1. . D ^DIR
  1. . I $D(DIRUT) S LREND=1 Q
  1. . S LRANX=Y
  1. . I LRANX<+$P($G(^LRO(68,LRWLC,1,LRAD,1,0)),U,3) D
  1. . . W !,"This accession number may be already assigned either in this "
  1. . . W !,"area or a common accession area."
  1. . I $D(^LRO(68,LRWLC,1,LRAD,1,LRANX,0)) D Q:'LROK
  1. . . N LRDFNX S LRDFNX=LRDFN
  1. . . N DFN,LRDFN,LRDPF,PNM,SSN
  1. . . NEW HRCN
  1. . . S LRDFN=+^LRO(68,LRWLC,1,LRAD,1,LRANX,0),LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^LR(LRDFN,0),U,3)
  1. . . D PT^LRX
  1. . . ; W !,"THIS NUMBER BELONGS TO ",!,PNM," SSN: ",SSN
  1. . . W !,"THIS NUMBER BELONGS TO ",!,PNM," HRCN: ",HRCN ; IHS/MSC/MKK - LR*5.2*1031
  1. . . D INF^LRX
  1. . . I LRDFN=LRDFNX S LROK=1
  1. . K DIR
  1. . S DIR(0)="YO",DIR("A")="Are you sure",DIR("B")="NO"
  1. . D ^DIR
  1. . I $D(DIRUT) S LREND=1 Q
  1. . I Y=1 S LRAN=LRANX,LROK=1
  1. ;
  1. ; Unlock if aborting.
  1. I LREND L -^LRO(68,LRWLC,1,LRAD,1,0)
  1. ;
  1. Q
  1. ;
  1. ;
  1. CHECK68(LRAA,LRAD) ; Check for/set header node of ^LRO(68) 68.01 subfile.
  1. ;
  1. ; Call with LRAA = ien of entry in file #68
  1. ; LRAD = accession date in fileman format
  1. ;
  1. ; Set accession date in file #68 for this acession.
  1. ; Check for existence of accession number multiple but not accession date multiple,
  1. ; FileMan DBS call fails when accession number multiple exists but accession date multiple does not.
  1. ; If this condition found then set missing node directly and quit.
  1. ;
  1. I '$D(^LRO(68,LRAA,1,LRAD,0)) D
  1. . N FDA,FDAIEN,LRDIE,X
  1. . S X=$Q(^LRO(68,LRAA,1,LRAD,0))
  1. . I X'="",$QS(X,4)=LRAD S $P(^LRO(68,LRAA,1,LRAD,0),"^")=LRAD Q
  1. . S (FDAIEN(1),FDA(1,68.01,"+1,"_LRAA_",",.01))=LRAD
  1. . D UPDATE^DIE("","FDA(1)","FDAIEN","LRDIE(1)")
  1. . ; I $D(LRDIE(1)) D MAILALRT
  1. . I $D(LRDIE(1)) D MAILALRT(5) ; IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. Q
  1. ;
  1. ;
  1. GETLOCK(LRAA,LRAD) ; Obtain lock on zeroth node of this accession date
  1. ; Call with LRAA = ien of entry in file #68
  1. ; LRAD = accession date in fileman format
  1. ;
  1. F L +^LRO(68,LRAA,1,LRAD,1,0):10 Q:$T D
  1. . I $D(ZTQUEUED)!($G(LRQUIET)) Q
  1. . W !!?5,"Accession area ",$P(^LRO(68,LRAA,0),"^")," is locked by another user.",!,$C(7)
  1. Q
  1. ;
  1. ;
  1. SETAN(LRAA,LRAD,LRAN) ; Create stub entry in file #68 for this acession.
  1. ;
  1. ; Call with LRAA = ien of entry in file #68
  1. ; LRAD = accession date in fileman format
  1. ; LRAN = accession number
  1. ;
  1. N FDA,FDAIEN,LR6802,LRDIE
  1. ;
  1. S LR6802=LRAD_","_LRAA_","
  1. S FDAIEN(1)=LRAN
  1. S FDA(2,68.02,"+1,"_LR6802,.01)=LRDFN
  1. ;
  1. ; Modification to prevent lock failures - loop 10 times to give system a chance to get lock
  1. N LRLOCKOK,LRLOOPCT
  1. S LRLOCKOK=0
  1. F LRLOOPCT=1:1:10 Q:LRLOCKOK D I 'LRLOCKOK H 5
  1. . K LRDIE(2)
  1. . D UPDATE^DIE("","FDA(2)","FDAIEN","LRDIE(2)")
  1. . S:$D(LRDIE(2))=0 LRLOCKOK=1
  1. K LRLOCKOK,LRLOOPCT
  1. ;
  1. ;D UPDATE^DIE("","FDA(2)","FDAIEN","LRDIE(2)")
  1. ; I $D(LRDIE(2)) D MAILALRT
  1. I $D(LRDIE(2)) D MAILALRT(6) ; IHS/MSC/MKK - LR*5.2*1031
  1. Q
  1. ;
  1. ;
  1. ; MAILALRT ; Send mail message alert when FileMan DBS errors returned
  1. MAILALRT(MSGN) ; Send mail message alert when FileMan DBS errors returned - IHS/MSC/MKK - LR*5.2*1031
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1031
  1. ; Known VA Bug. Ignore for now. See LR*5.2*331.
  1. Q:$$UP^XLFSTR($G(LRDIE(MSGN,"DIERR",1,"TEXT",1)))["ALREADY EXISTS"
  1. ; ----- END IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. ;
  1. N J,LR68,LRCNT,LRMTXT,X,XMINSTR,XMSUB,XMTO
  1. ;
  1. I $D(^LRO(68,LRAA,1,LRAD,1,LRAN)) M LR68=^LRO(68,LRAA,1,LRAD,1,LRAN)
  1. ;
  1. S LRMTXT(1)="The following debugging information is provided to assist"
  1. S LRMTXT(2)="support staff in resolving error during accessioning."
  1. ; S LRMTXT(3)=" "
  1. ; S LRCNT=3
  1. ;
  1. ; ----- BEGIN IHS/OIT/MKK - LR*5.2*1030 -- Better identification of where error occurred
  1. S:+$G(MSGN)<7 LRMTXT(3)=" LRWLST1 Message #:"_$G(MSGN)
  1. S:+$G(MSGN)=7 LRMTXT(3)=" LRWLST11 Message #:"_$G(MSGN)
  1. S LRMTXT(4)=" "
  1. S LRCNT=4
  1. ; ----- END IHS/OIT/MKK - LR*5.2*1030
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1031
  1. S LRCNT=LRCNT+1,LRMTXT(LRCNT)=" DUZ="_$G(DUZ)
  1. S LRCNT=LRCNT+1,LRMTXT(LRCNT)=" DUZ(2)="_$G(DUZ(2))
  1. S LRCNT=LRCNT+1,LRMTXT(LRCNT)=" "
  1. ; ----- END IHS/MSC/MKK - LR*5.2*1031
  1. ;
  1. F J="FDA","FDAIEN","LR68","LRAA","LRAD","LRAN","LRDFN","LRDIE","LRSS","LRTSTS","LRUNQ","LRWLC","XQY","XQY0" D
  1. . S X=$G(@J)
  1. . I X'="" S LRCNT=LRCNT+1,LRMTXT(LRCNT)=J_"="_X
  1. . F S J=$Q(@J) Q:J="" S LRCNT=LRCNT+1,LRMTXT(LRCNT)=J_"="_@J
  1. ;
  1. ; S XMSUB="FileMan DBS call failed during accessioning in routine LRWLST1"
  1. S XMSUB="FileMan DBS call failed during accessioning in routine "_$S(+$G(MSGN)<7:"LRWLST1",1:"LRWLST11") ; IHS/MSC/MKK - LR*5.2*1031
  1. S XMTO("G.LMI")=""
  1. S XMINSTR("FROM")=.5
  1. S XMINSTR("ADDR FLAGS")="R"
  1. D SENDMSG^XMXAPI(DUZ,XMSUB,"LRMTXT",.XMTO,.XMINSTR)
  1. Q
  1. ;
  1. ; ----- BEGIN IHS/MSC/MKK - LR*5.2*1034
  1. STORACCS(LRODT,LRSN,LRUID) ; EP
  1. NEW (DILOCKTM,DISYS,DT,DTIME,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,IOST,IOT,IOXY,LRODT,LRSN,LRUID,U,XPARSYS,XQXFLG)
  1. ;
  1. S ORDLOC=+$$GET1^DIQ(69.01,LRSN_","_LRODT,23,"I") ; Ordering Location
  1. S ORDLINST=+$$GET1^DIQ(44,ORDLOC,3,"I") ; Ordering Location's Institution
  1. Q:+$$GET1^DIQ(9009029,ORDLINST,3001,"I")<1 ; Quit if no Reference Lab setup
  1. ;
  1. S ORDERN=$$GET1^DIQ(69.01,LRSN_","_LRODT,9.5,"I")
  1. Q:ORDERN<1 ; Quit if no Order #
  1. ;
  1. Q:$L(LRUID)<1 ; Quit if no UID
  1. ;
  1. D REFLAB68^BLRLINKU ; Make sure ^XTMP("BLRLINKU") is current. See documentation at REFLAB68^BLRLINKU.
  1. S X=$Q(^LRO(68,"C",LRUID,0)),LRAA=+$QS(X,4) ; Get Accession Area IEN
  1. ;
  1. Q:$D(^XTMP("BLRLINKU",ORDLINST,LRAA))<1 ; Quit if Accession Area not Reference Lab
  1. ;
  1. S LRDFN=$$GET1^DIQ(69.01,LRSN_","_LRODT,.01,"I")
  1. S DFN=$$GET1^DIQ(63,LRDFN,.03,"I")
  1. ;
  1. ; S X=$$ORD^BLRRLEDI(ORDERN,DFN) ; Store Order # if not in there already
  1. S ORDIEN=$$FIND1^DIC(9009026.3,,,ORDERN)
  1. ;
  1. Q:ORDIEN<1 ; Quit if Order # NOT in 9009026.3
  1. ;
  1. S LRASIEN=1+$O(^BLRRLO(ORDIEN,3,"A"),-1)
  1. ;
  1. K ERRS,FDA
  1. S FDA(9009026.33,"?+1,"_ORDIEN_",",.01)=LRUID
  1. D UPDATE^DIE(,"FDA",,"ERRS")
  1. ;
  1. Q
  1. ; ----- END IHS/MSC/MKK - LR*5.2*1034