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

LRAPLG1.m

Go to the documentation of this file.
  1. LRAPLG1 ;DALOI/CKA,JMC,PMK - LOG-IN CONT. ;02/17/17 13:42
  1. ;;5.2;LAB SERVICE;**72,121,248,308,350,427,433,462,479,485**;Sep 27, 1994;Build 1
  1. ;
  1. ; Reference to DISP^SROSPLG supported by IA #893
  1. ;
  1. START ; Start logging in the specimens.
  1. N LRFND,LRMSG,LRXX
  1. ;
  1. ; Lock ^LR( and ^LRO
  1. D LOCK^DILF("^LR(LRDFN,LRSS)")
  1. I '$T D Q
  1. . S LRMSG="This record is locked by another user. Please try later."
  1. . D EN^DDIOL(LRMSG,"","!!")
  1. ;
  1. D LOCK^DILF("^LRO(68,LRAA,1,LRAD,1,0)")
  1. I '$T D Q
  1. . L -^LR(LRDFN,LRSS)
  1. . S LRMSG="Someone else is logging in specimens. Please wait and try again."
  1. . D EN^DDIOL(LRMSG,"","!!")
  1. ;
  1. ; Check that accession date exists first
  1. D CHECK68^LRWLST1(LRAA,LRAD)
  1. ;
  1. EN ;
  1. N LRAPDAN
  1. ;
  1. S (LRI,LRIDT)=""
  1. S LRAN=1
  1. S LRAPDAN=$$GET^XPAR("ALL","LR AP DEFAULT ACCESSION NUMBER","`"_LRAA,"Q")
  1. I LRAPDAN=2 S LRAN=+$P(^LRO(68,LRAA,1,LRAD,1,0),U,3)
  1. F Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN)) S LRAN=LRAN+1
  1. W !!,"Assign ",LRO(68)," (",LRABV,") accession #: ",LRAN S %=1 D YN^LRU
  1. I %<1 L -^LRO(68,LRAA,1,LRAD,1,0),-^LR(LRDFN,LRSS) Q
  1. ;
  1. I %=1,$D(LRXREF),$D(^LR(LRXREF,LRH(2),LRABV,LRAN)) D Q:$D(LRFND)
  1. . I $D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),$P(^(0),U) S X=LRAN D ^LRUTELL S LRFND=1
  1. . I '$D(LRFND) D ^LRAPLG2
  1. . I $D(LRFND) L -^LRO(68,LRAA,1,LRAD,1,0),-^LR(LRDFN,LRSS) Q
  1. . S %=0
  1. ;
  1. I %=1 D CRE868 I $D(LRMSG) G EN
  1. ;
  1. I %=2 D OS I $D(LRFND) K LRFND L -^LRO(68,LRAA,1,LRAD,1,0),-^LR(LRDFN,LRSS) Q
  1. ;
  1. L -^LRO(68,LRAA,1,LRAD,1,0)
  1. ;
  1. S LRAC=$P(^LRO(68,LRAA,0),U,11)_" "_$S(LRAD["0000":$E(LRAD,2,3),1:$E(LRAD,4,7))_" "_LRAN
  1. ;
  1. AU ; Autopsy Specific
  1. I LRSS="AU" D ^LRAUAW Q
  1. S:'$D(^LR(LRDFN,LRSS,0)) ^(0)="^"_LRSF_"DA^0^0"
  1. ;
  1. ; If orginal login then create entry in file #63
  1. LR7OFA0 ;
  1. I LRIDT="" D CRE863
  1. I LRI="" Q
  1. ;
  1. K DA,DTOUT,DIWESUB
  1. ;S DIWESUB=$E(PNM,1,27-$L(LRACC))_" ["_LRACC_"]"
  1. S LR(.07)=$S($D(SRDOC):SRDOC,1:"") K SRDOC
  1. S:LR(.07) LR(.07)=$P($G(^VA(200,LR(.07),0)),"^")
  1. S DA=LRI,DA(1)=LRDFN
  1. S DIC(0)="EQLMF",DLAYGO=63,DIE="^LR(LRDFN,LRSS,"
  1. D @LR("L")
  1. D ^DIE K DLAYGO
  1. S:'$D(LRRC) LRRC=LRNT
  1. ;
  1. ; Check if topography and collection sample entered on each specimen.
  1. ; If not entered then define Y to cause entry to be deleted.
  1. I LRSS?1(1"SP",1"CY",1"EM") D
  1. . N I,LRJ,X
  1. . S LRJ=0
  1. . F S LRJ=$O(^LR(LRDFN,LRSS,LRI,.1,LRJ)) Q:LRJ<1 D Q:$D(Y)
  1. . . S X=$G(^LR(LRDFN,LRSS,LRI,.1,LRJ,0))
  1. . . F I=6,7 I $P(X,"^",I)="" S Y="" Q
  1. ;
  1. ; Delete entry if prompts not answered unless report has been released.
  1. I $D(DTOUT)!$D(Y) D Q
  1. . N DA,DIK
  1. . I LRSS?1(1"SP",1"CY",1"EM"),($P(^LR(LRDFN,LRSS,LRI,0),"^",11)!$P(^LR(LRDFN,LRSS,LRI,0),"^",15)) Q
  1. . W $C(7),!!,"All Prompts not answered - <ENTRY DELETED>"
  1. . S DA(1)=LRDFN,DA=LRI
  1. . S DIK="^LR("_DA(1)_","""_LRSS_""","
  1. . D ^DIK,X,END
  1. ;
  1. D GETSTCS ; Store specimen topography, coll sample in temp array
  1. ;
  1. TST ; Get the ordered test and store in temp array
  1. N II
  1. D ORDTST
  1. ; Delete entry if no ordered tests unless report has been released.
  1. I II=2 D Q
  1. . I LRSS?1(1"SP",1"CY",1"EM"),($P(^LR(LRDFN,LRSS,LRI,0),"^",11)!$P(^LR(LRDFN,LRSS,LRI,0),"^",15)) Q
  1. . N DA,DIK
  1. . W $C(7),!!,"No ordered test selected - <ENTRY DELETED>"
  1. . S DA(1)=LRDFN,DA=LRI,DIK="^LR("_DA(1)_","""_LRSS_""","
  1. . D ^DIK,X,END
  1. ;
  1. I LRSS="CY",LRCAPA D CK^LRAPCWK
  1. ;
  1. ; Check for surgery case references and move info if user wants surgical case info copied to Lab.
  1. I LRSS="SP" D SPMOVE
  1. ;
  1. ; Fill out the stub accession with related info
  1. I '$D(LRC(5)) S LRC(5)=""
  1. D ^LRUWLF
  1. ;
  1. I LRCAPA D
  1. . I LRSS="CY" D ^LRAPCWK
  1. . I LRSS?1(1"SP",1"EM") D ^LRAPSWK
  1. ;
  1. I LRSS?1(1"SP",1"CY",1"EM") D ^LRSPGD
  1. ;
  1. I $T(ADD^MAGTP005)'="" N MAGNEWCASE S MAGNEWCASE=1 D ADD^MAGTP005(LRAC) ; add case to file #2005.42 - P433
  1. ;
  1. D OERR^LR7OB63D,LDSI
  1. ;
  1. I $T(NEW^MAGT7MA)'="" D NEW^MAGT7MA ; invoke Imaging HL7 routine - P433
  1. ;
  1. Q
  1. ;
  1. ;
  1. LDSI ; LDSI tasks
  1. ;
  1. N LRLLOC,LRALOC,LRPRAC,LROUTINE,LROPL,LRODT,LRNT,LRFILE,LRIENS,LRORD,LRSRDT,LRTST
  1. ;
  1. ; Get variables for ORUT node
  1. S LROUTINE=$P($G(^LAB(69.9,1,3)),"^",2) ;default urgency
  1. S LRPROVL=LRMD(1) ;Ordering provider-CKA
  1. ; Get ORDER TYPE
  1. ;;*
  1. S:$G(LRORDR)="" LRORDR="WC" ;Default to 'Ward Collect' for now
  1. ;;;*
  1. S LRNT=$$NOW^XLFDT() ;Date ordered = current date/time
  1. S LRODT=$P(LRNT,".")
  1. ; Get Provider, Location abbrev, Collection date/time
  1. S LRFILE=$S(LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,1:"")
  1. S LRIENS=LRI_","_LRDFN_","
  1. S LRPRAC=$$GET1^DIQ(LRFILE,LRIENS,.07,"I")
  1. S LRLLOC=$$GET1^DIQ(LRFILE,LRIENS,.08,"I")
  1. I LRLLOC="" S LRLLOC="NO ABRV"
  1. S LRSDT=+$$GET1^DIQ(LRFILE,LRIENS,.01,"I")
  1. S LRSRDT=$$GET1^DIQ(LRFILE,LRIENS,.1,"I") ; Specimen received date/time
  1. ; Get CPRS Order #
  1. S ORIFN="" ; Default to blank for now
  1. ;
  1. ; Get Lab Order #, update file #69 and #68
  1. LDSI1 S (LRORD,LRSPEC,LRTST,LRSAMP,LRADD,LROT)="",LRCNT=1
  1. F S LRSPEC=$O(LRXX(LRSPEC)) Q:'LRSPEC D
  1. . N LRRECINF
  1. . S LRSAMP=$P(LRXX(LRSPEC),"^",1),LRNLT=$P(LRXX(LRSPEC),"^",2),LRTST=$P(LRXX(LRSPEC),"^",3)
  1. . Q:'LRTST
  1. . ;I LRORD,$G(^LAB(69.9,1,21661)) S LRADD=1 D ZSN^LR7OFAO("",.LRRECINF)
  1. . ; Get Lab Order # first time thru
  1. . D:'LRORD EN^LR7OFAO(LRODT,LRDFN,LRSAMP,LRORDR,LRNT,LRPRAC,LRLLOC,LRSDT,ORIFN,LRSPEC,LRSS,LRTST,LRUID,.LRRECINF)
  1. . S LRSN=+$P(^LRO(68,LRAA,1,LRAD,1,LRAN,0),U,5),LRCDT=0,LREAL=""
  1. . I LRSN>0 S LRCDT=$P($G(^LRO(69,LRODT,1,LRSN,1)),"^",1,2),LREAL=$P(LRCDT,"^",2),LRCDT=+LRCDT
  1. . D UPD68,UPD63
  1. . S LRCNT=LRCNT+1
  1. ;
  1. Q
  1. ;
  1. ;
  1. UPD68 ; Update #68 with required test data
  1. N LRFILE,LRERR,IEN,LRIEN
  1. S LRFILE=68.04,IEN(1)=LRTST
  1. S LRIEN="?+1,"_LRAN_","_LRAD_","_LRAA_","
  1. S FDA(3,LRFILE,LRIEN,.01)=LRTST
  1. S FDA(3,LRFILE,LRIEN,1)=LROUTINE
  1. ;;*
  1. S FDA(3,LRFILE,LRIEN,8.1)=LRTST
  1. ;;;*
  1. D UPDATE^DIE("","FDA(3)","IEN","LRERR(3)")
  1. I $D(LRERR(3)) D LRMSG("UPD68-3~LRAPLG1",.LRERR)
  1. ;
  1. ;
  1. ; Update #68 with specimen data
  1. K LRFILE,FDAIEN,IEN
  1. S LRFILE=68.05
  1. ; Check or Set top node for 68.05
  1. S FDAIEN="?+"_LRCNT_","_LRAN_","_LRAD_","_LRAA_","
  1. S FDA(31,LRFILE,FDAIEN,.01)=LRSPEC
  1. S FDA(31,LRFILE,FDAIEN,1)=LRSAMP
  1. D UPDATE^DIE("","FDA(31)","IEN","LRERR(31)")
  1. I $D(LRERR(31)) D LRMSG("UPD68-31~LRAPLG1",.LRERR)
  1. ;
  1. Q
  1. ;
  1. ;
  1. UPD63 ; Update ORUT Node in #63
  1. S LRTSORU=LRTST,LRURG=9,LRI=LRIDT
  1. D SLRSS^LRWLST11
  1. D ORUT^LRWLST11
  1. ;
  1. ;
  1. Q
  1. ;
  1. ;
  1. X ; from LRAUAW
  1. I "CYEMSP"[LRSS K ^LR(LRXREF,LRH(2),LRABV,LRAN)
  1. I LRSS="AU" D
  1. . I $D(^LR(LRDFN,"AV")) K ^LR(LRDFN,"AV")
  1. . I $D(^LR(LRDFN,"AW")) K ^LR(LRDFN,"AW")
  1. . I $D(^LR(LRDFN,"AWI")) K ^LR(LRDFN,"AWI")
  1. . I $D(LRRC) K ^LR("AAUA",+$E(LRRC,1,3),LRABV,LRAN),^LR("AAU",+LRRC,LRDFN)
  1. I $G(LRRC)>1 K:LRSS?1(1"SP",1"CY",1"EM") ^LR(LRXR,LRRC,LRDFN,LRI)
  1. K LRRC
  1. Q
  1. ;
  1. ;
  1. OS ; User choosing accession number
  1. N DIR,DIROUT,DIRUT,DTOUT,LRSPEC,X,Y
  1. S DIR(0)="N^1:999999:0^D OSDIR^LRAPLG1"
  1. S DIR("A")="Enter Accession #"
  1. D ^DIR
  1. I $D(DIRUT) S LRFND=1 Q
  1. S LRAN=Y
  1. ;
  1. ;Do not allow edits to accessions already on file.
  1. ;Otherwise, several orders will be created for the same order number
  1. ;and CPRS will not display the edited/updated information.
  1. ;
  1. I $G(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) D Q
  1. . W !!,?5,"This accession has already been logged in."
  1. . W !,?5,"""Log-in menu, anat path"" should NOT be used to edit an accession."
  1. . W !,?5,"Use ""Edit/modify data, anat path"" instead."
  1. . S LRFND=1
  1. ;
  1. I $D(LRXREF),$D(^LR(LRXREF,LRH(2),LRABV,LRAN)) D ^LRAPLG2 Q
  1. ;
  1. D CRE868
  1. I $D(LRMSG) S LRFND=1
  1. Q
  1. ;
  1. ;
  1. ;
  1. OSDIR ; Called from DIR call in OS above
  1. ;
  1. ;ZEXCEPT: LRAA,LRAD,LRDFN,X
  1. ;
  1. ; Accession number doesn't exist in file #68 - quit, OK to use this number
  1. I $O(^LRO(68,LRAA,1,LRAD,1,+X,""))="" Q
  1. ;
  1. N LRX
  1. S LRX=$G(^LRO(68,LRAA,1,LRAD,1,+X,0))
  1. I LRX<1 K X Q
  1. ;
  1. ; Stub entry which matches on LRDFN
  1. I LRX=LRDFN Q
  1. ;
  1. I $P(LRX,U)'=LRDFN S X=+X D ^LRUTELL K X
  1. ;
  1. Q
  1. ;
  1. ;
  1. ORDTST ; Prompt for ordered test(s); translate to NLT code for storage in ORUT
  1. ; Add NLT code to temp array LRXX (This code currently assumes one ordered test per accession)
  1. ;
  1. N DIR,DIROUT,DIRUT,DTOUT,DUOUT,LRNLT,LRWKCD,XX
  1. S (LRNLT,LRWKCD)="",II=0
  1. S DIR(0)="P^LAB(60,:AEMOQ",DIR("B")=$G(LRTST(0))
  1. S DIR("S")="I $P(^LAB(60,Y,0),""^"",4)=LRSS,""IBO""[$P(^LAB(60,Y,0),""^"",3),$P($G(^LAB(60,Y,64)),""^"")"
  1. D ^DIR
  1. I $D(DIRUT) S II=2 Q
  1. S LRWKCD=+$G(^LAB(60,+Y,64)),LRNLT=$P($G(^LAM(LRWKCD,0)),"^",2),II=1
  1. S XX=0
  1. F S XX=$O(LRXX(XX)) Q:'XX S $P(LRXX(XX),"^",2)=LRNLT_"^"_+Y
  1. ;
  1. Q
  1. ;
  1. ;
  1. GETSTCS ;Get spec top and coll samp
  1. N LRI
  1. K LRXX
  1. S LRI=0,(LRXX,X)=""
  1. F S LRI=$O(^LR(LRDFN,LRSS,LRIDT,.1,LRI)) Q:'LRI D
  1. . S X=$G(^LR(LRDFN,LRSS,LRIDT,.1,LRI,0))
  1. . I $P(X,"^",6)'="" S LRXX($P(X,"^",6))=$P(X,"^",7)_"^"
  1. Q
  1. ;
  1. ;
  1. CRE868 ; Create accession number in file 68
  1. N LRFDA,LRFDAIEN,LRIEN
  1. K LRMSG
  1. S LRIEN="+1,"_LRAD_","_LRAA_","
  1. S LRFDAIEN(1)=LRAN
  1. S LRFDA(1,68.02,LRIEN,.01)=LRDFN
  1. D UPDATE^DIE("S","LRFDA(1)","LRFDAIEN","LRMSG")
  1. I $D(LRMSG) S LRSD=LRAD D LRMSG("EN~LRAPGL1",.LRMSG) Q
  1. S X=LRAN
  1. Q
  1. ;
  1. ;
  1. CRE863 ; Create entry in file #63
  1. ;
  1. N DIR,DIRUT,DTOUT,DUOUT,X,Y
  1. S DIR(0)="DO^:NOW:ET"
  1. S DIR("A")="Date/time Specimen taken",DIR("B")="NOW"
  1. ;;
  1. I '$G(LRAPDIAL) D ^DIR K DIR I Y<1 D END Q
  1. I $G(LRAPDIAL) S Y=LRCDT
  1. ;;;*
  1. S (LRY,LRSD)=Y,LRI=9999999-LRY
  1. ;
  1. ; Process and get unique LRI
  1. F Q:'$D(^LR(LRDFN,LRSS,LRI,0)) D
  1. . S (LRSD,LRY)=$$FMADD^XLFDT(LRY,,,,1)
  1. . S LRI=9999999-LRY
  1. ;
  1. N LRFDA,LRIEN,LRFILE,LRFDAIEN
  1. K DIERR,LRMSG
  1. S LRACC=LRAC,LRNT=$$NOW^XLFDT()
  1. S LRFILE=$S(LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,1:63.08)
  1. S LRFDAIEN(1)=LRI
  1. S LRIEN="+1,"_LRDFN_","
  1. S LRFDA(2,LRFILE,LRIEN,.01)=LRSD ;DATE/TIME SPECIMEN TAKEN
  1. S LRFDA(2,LRFILE,LRIEN,.06)=LRACC
  1. ;;*
  1. I $G(LRAPDIAL) D ; STORE ORDERING PROVIDER - LRAPDIAL SET IN LRAPKOE
  1. . I $G(LRPHY) S LRFDA(2,LRFILE,LRIEN,.02)=+$G(LRPHY) ;Pathologist
  1. . I $G(LRORPROV) S LRFDA(2,LRFILE,LRIEN,.07)=LRORPROV ; ORDERING PROVIDER
  1. . I $G(LRLLOC)'="" S LRFDA(2,LRFILE,LRIEN,.08)=LRLLOC ; ORDER LOCATION
  1. . I $G(LRSUBBY)'="" S LRFDA(2,LRFILE,LRIEN,.011)=LRSUBBY ; SUBMIT BY
  1. . S LRFDA(2,LRFILE,LRIEN,.1)=LRNT ;DATE/TIME SPECIMEN RECIEVED
  1. ;;;*
  1. ;
  1. D UPDATE^DIE("","LRFDA(2)","LRFDAIEN","LRMSG")
  1. L -^LR(LRDFN,LRSS)
  1. I $D(LRMSG) D LRMSG("F~LRAPLG1",.LRMSG) Q
  1. ;
  1. S (LRI,LRIDT)=LRFDAIEN(1)
  1. ;
  1. Q
  1. ;
  1. ;
  1. SPMOVE ; Copy surgery information into lab package
  1. ; - store surgery package reference to retrieve surgeon/attending.
  1. ; - LRFLAG used to determine if data copied from Surgery packge and moved to Lab and generate notice.
  1. ; if no data before and data after call to SROSPLG then add disclaimer.
  1. ;
  1. S X="SROSPLG" X ^%ZOSF("TEST")
  1. I '$T Q
  1. ;
  1. N I,LRFIELD,LRFLAG,LRJ,LRSREF,LRSRTN,LRWP
  1. S LRFLAG="",LRSRTN=$G(SRTN)
  1. I LRSRTN D
  1. . N LRDATA,LRDIE
  1. . S LRDATA(.01)=LRDFN_","_LRSS_","_LRI_",0"
  1. . S LRDATA(.02)=1
  1. . S LRDATA(1)=LRSRTN_";SRF("
  1. . D SETREF^LRUEPR(LRDFN,LRDATA(.01),.LRDATA,1)
  1. . F I=.2,.3,.4,.5 I '$O(^LR(LRDFN,LRSS,LRI,I,0)) S $P(LRFLAG,"^",I*10)=1
  1. ;
  1. D DISP^SROSPLG
  1. ;
  1. ; Create notation on where info came from if site wants reference.
  1. ; also store referece as external package reference.
  1. S LRSREF=$$GET^XPAR("DIV^PKG","LR AP SURGERY REFERENCE",1,"Q")
  1. S LRFIELD(.013)="(#60) BRIEF CLIN HISTORY"
  1. S LRFIELD(.014)="(#32) PRINCIPAL PRE-OP DIAGNOSIS, (#.72) OTHER PREOP DIAGNOSIS"
  1. S LRFIELD(.015)="(#59) OPERATIVE FINDINGS"
  1. S LRFIELD(.016)="(#34) PRINCIPAL POST-OP DIAG, (#.74) OTHER POSTOP DIAGS"
  1. S LRWP(1)=" "
  1. F LRJ=.2,.3,.4,.5 I $P(LRFLAG,"^",LRJ*10),$O(^LR(LRDFN,LRSS,LRI,LRJ,0)) D
  1. . N LRDATA,LRDIE
  1. . S LRFIELD=$P("^.013^.014^.015^.016","^",LRJ*10)
  1. . S LRWP(2)="Information automatically documented from SURGERY package case #"_LRSRTN_" Field "_LRFIELD(LRFIELD)
  1. . I LRSREF=1 D WP^DIE(63.08,LRI_","_LRDFN_",",LRFIELD,"A","LRWP","LRDIE(LRFIELD)")
  1. . S LRDATA(.01)=LRDFN_","_LRSS_","_LRI_","_LRJ_",0"
  1. . S LRDATA(.02)=1
  1. . S LRDATA(1)=LRSRTN_";SRF(;"_LRWP(2)
  1. . D SETREF^LRUEPR(LRDFN,LRDATA(.01),.LRDATA,1)
  1. ;
  1. Q
  1. ;
  1. ;
  1. LRMSG(LRRNAME,LRFMERR) ;
  1. ; Filing error notification
  1. ; Inputs
  1. ; LRRNAME: Routine name (TAG~RTN)
  1. ; LRFMERR:<byref> FileMan error local array
  1. N DIR,DIROUT,DIRUT,DTOUT,DUOUT,LRDIE
  1. S LRRNAME=$TR($G(LRRNAME),"^","~")
  1. M LRDIE=LRFMERR
  1. D MAILALRT^LRWLST12(LRRNAME,.LRFMERR)
  1. S DIR(0)="EA"
  1. S DIR("A",1)="Filing error in "_LRRNAME_" for this accession/specimen"
  1. S DIR("A")="Press the return key to continue"
  1. D ^DIR
  1. Q
  1. ;
  1. ;
  1. OUT ;
  1. ; Exit point
  1. Q
  1. ;
  1. ;
  1. END ; from LRAUAW, LRAPLG2
  1. ; Lock Accession file
  1. D LOCK^DILF("^LRO(68,LRAA,1,LRAD,1,0)")
  1. I '$T D EN^DDIOL("Someone else is logging in specimens. Please wait and try again.","","!!") Q
  1. ;
  1. N DIK,DA
  1. S DA=LRAN,DA(1)=LRAD,DA(2)=LRAA
  1. S DIK="^LRO(68,"_DA(2)_",1,"_DA(1)_",1,"
  1. D ^DIK
  1. ;
  1. L -^LRO(68,LRAA,1,LRAD,1,0)
  1. Q
  1. ;
  1. ;
  1. FIX ; Entry point to delete an orphan AP entry in file #63
  1. ;
  1. N DA,DFN,DIC,DIK,DIR,DIROUT,DIRUT,DIQ,DR,DTOUT
  1. N LRAA,LRABV,LRAC,LRAD,LRAN,LRDFN,LRDPA,LRDPF,LRH,LRI,LRRC,LRSS,LRWHN,LRXR,LRXREF
  1. N AGE,PNM,SEX,X,Y
  1. ;
  1. D ^LRAP Q:'$D(Y)
  1. D XR^LRU
  1. ;
  1. I LRSS'?1(1"SP",1"CY",1"EM") W !,"This program only supports SP, CY and EM subscripts",! Q
  1. ;
  1. S LRH(2)=$E(LRAD,1,3),LRWHN=$E(LRAD,2,3)
  1. ;
  1. D EN1^LRUPS Q:LRAN=-1
  1. I $P(^LR(LRDFN,LRSS,LRI,0),"^",11)'="" W !,"Report has been released!",! Q
  1. I $D(^LR(LRDFN,LRSS,LRI,2005)) D Q
  1. . W !,"Report has associated images in IMAGING package!"
  1. . W !,"Disposition these images before deleting this entry!",!
  1. ;
  1. K DR
  1. S DIC="^LR("_LRDFN_","""_LRSS_""",",DA(1)=LRDFN,DA=LRI,DIQ(0)="ACR"
  1. D EN^DIQ
  1. ;
  1. S DIR(0)="Y",DIR("A")="DELETE this entry",DIR("B")="NO"
  1. D ^DIR
  1. I Y<1 Q
  1. ;
  1. K DIR
  1. S DIR(0)="Y",DIR("A")="Are you sure",DIR("B")="NO"
  1. D ^DIR
  1. I Y<1 Q
  1. ;
  1. ; Lock record
  1. D LOCK^DILF("^LR(LRDFN,LRSS,LRI)")
  1. I '$T D Q
  1. . D EN^DDIOL("Someone else is accessing this record. Please wait and try again.","","!!")
  1. . D KVA^VADPT,V^LRU
  1. ;
  1. K DA,DIK
  1. S DA=LRI,DA(1)=LRDFN,DIK="^LR("_DA(1)_","""_LRSS_""","
  1. D ^DIK
  1. ;
  1. ; Cleanup some cross-references.
  1. I LRSS?1(1"SP",1"CY",1"EM") D
  1. . K ^LR(LRXREF,LRH(2),LRABV,LRAN,LRDFN,LRI)
  1. . I $G(LRRC)>1 K ^LR(LRXR,LRRC,LRDFN,LRI)
  1. ;
  1. I LRSS="AU" D
  1. . I $D(^LR(LRDFN,"AV")) K ^LR(LRDFN,"AV")
  1. . I $D(^LR(LRDFN,"AW")) K ^LR(LRDFN,"AW")
  1. . I $D(^LR(LRDFN,"AWI")) K ^LR(LRDFN,"AWI")
  1. . I $D(LRRC) K ^LR("AAUA",+$E(LRRC,1,3),LRABV,LRAN),^LR("AAU",+LRRC,LRDFN)
  1. ;
  1. ; Release lock
  1. L -^LR(LRDFN,LRSS,LRI)
  1. ;
  1. W !!,"Entry deleted",!
  1. D KVA^VADPT,V^LRU
  1. ;
  1. Q