- LRWLST11 ;DALOI/STAFF - ACCESSION SETUP ;Mar 27, 2008
- ;;5.2;LAB SERVICE;**121,128,153,202,286,331,375,350,440,461**;Sep 27, 1994;Build 15
- ;
- ST21 ;
- S LRTS="",LRIX=0
- F S LRIX=$O(LRTSTS(LRWLC,LRUNQ,LRAA,LRIX)) Q:LRIX<1 D SET Q:LRUNQ
- ;
- S LRNT=$$NOW^XLFDT
- D SCDT,SLRSS
- ;
- COMMON ; Setup 'in common' accession if not already setup unless it will be
- ; when tests are accessioned to the 'in common' area.
- I +LRWLC,+LRWLC'=+LRAA,$G(^LRO(68,LRWLC,1,LRAD,1,LRAN,0))=$G(LRDFN) D
- . I 'LRUNQ,$D(LRTSTS(LRWLC,LRUNQ,LRWLC)) Q
- . Q:$G(^LRO(68,LRWLC,1,LRAD,1,LRAN,.1))
- . N LRAA,LRACC,LRCDTX,LRCOMMON,LREND,LRIDT,LRNODE3,LRORDRR,LRORU3,LRQUIET,LRTJ,LRUID,X,Y
- . S (LRQUIET,LRCOMMON)=1,LRAA=+LRWLC,LRORDRR=""
- . S X=LRSS,LRCDTX=LRCDT
- . N LRCDT,LRSS
- . S LRCDT=LRCDTX,LRSS=X_U_(1+$G(LRLBLBP))
- . D STWLN^LRWLST1 Q:$G(LREND)
- . D ST2^LRWLST1 Q:$G(LREND)
- . D SCDT,SLRSS
- ;
- Q
- ;
- ;
- SCDT ; Set collection, inverse and lab arrival date/times on accession
- N FDA,LR6802,LRDIE
- S LR6802=LRAN_","_LRAD_","_LRAA_","
- S FDA(4,68.02,LR6802,9)=LRCDT
- S FDA(4,68.02,LR6802,10)=LREAL
- I '$D(LRPHSET) S FDA(4,68.02,LR6802,12)=LRNT
- S FDA(4,68.02,LR6802,13.5)=LRIDT
- D FILE^DIE("","FDA(4)","LRDIE(4)")
- I $D(LRDIE(4)) D MAILALRT^LRWLST12("SCDT~LRWLST11")
- Q
- ;
- ;
- ;
- N FDA,FDAIEN,LRDIE,LRX
- S LRX=$S(LRSS="CH":63.04,LRSS="MI":63.05,LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,LRSS="BB":63.01,1:0)
- S X=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,5,1,0)) ; change for AP
- S H8=$S($D(LRSPEC):LRSPEC,1:X)_U_$S("CYEMSPAU"[LRSS:LRACC,1:LRACC)_U_$S(LRSS="MI":LRPRAC,1:"")_U_$S(LRSS="MI":LRLLOC,1:"")_"^^"_$S(LRSS="CH":LRPRAC,1:LRNT)_"^"_$S(LRSS="MI":$P(LRSAMP,";",1),LRSS="CH":LRLLOC,1:"")
- ;
- I $S(LRSS="CH":1,LRSS="MI":1,1:0) D
- . I $G(LRORDRR)="R",+$G(LRRSITE("RSITE")) S $P(H8,U,9)=+LRRSITE("RSITE")_";DIC(4,"
- . I $G(LROLLOC),$G(LRORDRR)'="R" S $P(H8,U,9)=LROLLOC_";SC("
- . S $P(H8,U,10)=$S($G(LRDUZ(2)):LRDUZ(2),1:$G(DUZ(2)))
- ;
- D SLRSS^LRWLST1A
- ;allow labels to print for Anatomic Pathology accessions
- ;by commenting out the line below
- ;(The two lines below that were already commented out.)
- ;Q:"SPEMCY"[LRSS
- ;S ^LR(LRDFN,LRSS,LRIDT,0)=LRCDT_U_LREAL_"^^^"_H8
- ;I $G(LRORU3)'="" S ^LR(LRDFN,LRSS,LRIDT,"ORU")=LRORU3
- ;
- ST3 ;
- I LRSS="MI" D ST4
- D LRCCOM
- ;
- S LRDPF=$P(^LR(LRDFN,0),U,2),DFN=$P(^(0),U,3),LRPR=1
- S LRRB=0
- I LRDPF=2 S LRRB=$$GET1^DIQ(2,DFN_",",.101),LRRB=$S(LRRB'="":LRRB,1:0)
- ;
- Q:$G(LRORDR)="P"
- ;
- I '$D(LRTJ) D Q
- . I $G(LRORDRR)="R",LRSS="CH",$G(LRORU3)'="",$P(LRORU3,"^")'=$P(LRORU3,"^",4) Q ; Don't print, use label from sending facility.
- . I $G(LRLBLBP),'$G(LRCOMMON) S LRLBL(LRAA,LRAN)=LRSN_U_LRAD_U_LRODT_U_LRRB_U_LRLLOC_U_LRACC_U_$S($D(LRORD):LRORD,1:"")
- ;Anatomic Pathology labels do not print on collection lists
- Q:"SPEMCY"[LRSS
- S I=0
- F S I=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I)) Q:I<.5 S LRTS=^(I,0) D Z
- ;
- Q
- ;
- ;
- ST4 ;
- ;S $P(^LR(LRDFN,LRSS,LRIDT,0),U,10)=$S($D(LRNT):LRNT,1:""),$P(^(0),U,8)=LRLLOC
- ; Used to be LRSPCDSC,63.05,.9 (Word Processing field) replaces 63.05,.99
- S:$D(LRCCOM) ^LR(LRDFN,LRSS,LRIDT,99)=LRCCOM
- I '$D(LRPHSET) D
- . N DA,DIE,DR
- . S DIE="^LR("_LRDFN_",""MI"",",DA=LRIDT,DA(1)=LRDFN
- . ;S DR=.9
- . ;I '$G(LRQUIET) W:DR'=.9 !!,"Order comment:"
- . S DR=.99_$S($L($G(LRGCOM)):"///"_LRGCOM,$L($G(LRCCOM)):"//"_LRCCOM,1:"")
- . I '$G(LRQUIET) W:DR'=.99 !!,"Order comment:"
- . D ^DIE
- I '$G(LRQUIET),'$D(LRPHSET),'$D(LRGCOM) W !,"Description OK? Y//" D % G ST4:%["N"
- K DR,DIC,DIE
- Q
- ;
- ;
- ST5 S I("SUBSC")=$S(I("EDIT")[11.5:26,I("EDIT")[15:27,I("EDIT")[19:28,I("EDIT")[23:29,I("EDIT")[34:30,1:-1) Q:I("SUBSC")=-1
- S I("PNTR")=$S(I("EDIT")[11.5:"^63.061A^",I("EDIT")[15:"^63.361A^",I("EDIT")[19:"^63.111A^",I("EDIT")[23:"^63.181A^",1:"^63.432A^")
- S I("N")=1+$S($D(^LR(LRDFN,"MI",LRIDT,I("SUBSC"),0)):$P(^(0),U,4),1:0),^(0)=I("PNTR")_I("N")_U_I("N"),^(I("N"),0)=I("TEST")
- Q
- ;
- ;
- SET ;
- S LRTS=LRTSTS(LRWLC,LRUNQ,LRAA,LRIX)
- S LRIN=$P(LRTS,U,3),LRORIFN=$P(LRTS,U,4),LRTSORU=+$P(LRTS,U,6),LRBACK=$P(LRTS,U,5),LRTS=$P(LRTS,U,1,2)
- ;
- I '$G(LRQUIET),'$D(LRPHSET) D
- . W !,$P(^LAB(60,+LRTS,0),U)
- . I $D(LRSPEC),LRSPEC D
- . . S I=$S($D(^LAB(61,+LRSPEC,0)):$P(^(0),U),1:""),J=$S($D(^LAB(62,+LRSAMP,0)):$P(^(0),U),1:"")
- . . W ?30,J W:I'=J " ",I
- ;
- I '$G(LRQUIET),'$D(LRPHSET),+LRTS,$O(^LAB(60,+LRTS,7,0))>0 D
- . N S
- . S DIC="^LAB(60,",DA=+LRTS,DR=7
- . D EN^DIQ H 3
- I '$G(LRQUIET),'$D(LRPHSET),+LRTS D
- . N S
- . S DIC="^LAB(60,"_(+LRTS)_",3,"
- . S DA=+$O(^LAB(60,+LRTS,3,"B",+LRSAMP,0)),DR=2
- . I DA>0,$O(^LAB(60,+LRTS,3,DA,2,0))>0 D EN^DIQ H 3
- ;
- D ORUT
- ;
- ; Check if LEDI specimen being accessioned then
- ; - update test status of order in file #69.6
- ; - if LEDI AP specimen copy data accompanying order from file #69.6 to file #63
- ; - update remote ordering provider from file #69.6 to ordered test multiple (#.35)
- I $G(LRORDRR)="R",$G(LR696)>0 D
- . D ORUT2^LRWLST12
- . D PROVCPY^LRWLST12
- . I "SPCYEM"[LRSS D APMOVE^LRWLST12
- ;
- D CAP^LRWLST12
- K LRTSTS(LRWLC,LRUNQ,LRAA,LRIX)
- ;
- S ^LRO(69,LRODT,1,LRSN,2,LRIN,0)=LRTS_U_LRAD_U_LRAA_U_LRAN_"^^"_LRORIFN_"^^IP^L^^^^"_LRBACK
- S ^LRO(69,LRODT,1,LRSN,2,"B",+LRTS,LRIN)=""
- ;
- ; When file 63 is enhanced to accept comments per test comments should
- ; be put there instead of field 99.
- I $O(^LRO(69,LRODT,1,LRSN,2,LRIN,1,0)) D
- . I LRSS'="CH"!($D(^LR(LRDFN,LRSS,LRIDT,0))[0) Q
- . S X=$S($D(^LR(LRDFN,LRSS,LRIDT,1,0)):$P(^(0),"^",3),1:0),I=0
- . F S I=$O(^LRO(69,LRODT,1,LRSN,2,LRIN,1,I)) Q:I<1 S II=^(I,0) S X=X+1,^LR(LRDFN,LRSS,LRIDT,1,X,0)=II
- . S:X ^LR(LRDFN,LRSS,LRIDT,1,0)="^63.041^"_X_U_X
- ;
- RUID I $G(LRORU3)'="" D
- . N DA,DIE,DIC,DLAYGO,DR,X,Y
- . S DLAYGO=69
- . S DA=LRIN,DA(1)=LRSN,DA(2)=LRODT,DIC="^LRO(69,"_DA(2)_",1,"_DA(1)_",2,"
- . S DIE=DIC,DR="13////"_$P(LRORU3,U)_";14////"_$P(LRORU3,U,2)_";15////"_$P(LRORU3,U,3)_";16////"_$P(LRORU3,U,4)_";17////"_$P(LRORU3,U,5)
- . D ^DIE
- Q
- ;
- ;
- % R %:DTIME Q:%=""!(%["N")!(%["Y") W !,"Answer 'Y' or 'N': " G %
- ;
- ;
- LRCCOM ; Copy comments from file #69 to file #63 comment multiple
- N I,LRCCOM,LRTN,X
- S (I,LRTN,LRCCOM)=0
- ;
- I LRSS'="CH"!($D(^LR(LRDFN,LRSS,LRIDT,0))[0) Q
- ;
- ; Copy (#16) WARD COMMENTS ON SPECIMEN to file #63 comment multiple
- F S I=$O(^LRO(69,LRODT,1,LRSN,6,I)) Q:I<1 I $D(^(I,0)) S X=^(0),LRCCOM=LRCCOM+1,^LR(LRDFN,LRSS,LRIDT,1,LRCCOM,0)=X
- ;
- ; Copy expanded panels (#99) TEST COMMENTS to file #63 comment multiple
- F S LRTN=$O(^LRO(69,LRODT,1,LRSN,2,LRTN)) Q:'LRTN I $D(^(LRTN,0)) S X=^(0) I $P(X,"^",8),'$P(X,"^",3),$O(^(1,0)) D
- . S I=0
- . F S I=$O(^LRO(69,LRODT,1,LRSN,2,LRTN,1,I)) Q:'I I $D(^(I,0)) S X=^(0),LRCCOM=LRCCOM+1,^LR(LRDFN,LRSS,LRIDT,1,LRCCOM,0)=X
- ;
- S:LRCCOM ^LR(LRDFN,LRSS,LRIDT,1,0)="^63.041^"_LRCCOM_U_LRCCOM
- ;
- Q
- ;
- ;
- Z ; Update collection list (#69.1)
- L +^LRO(69.1,LRTE):999
- S LRZ3=$S($D(^LRO(69.1,LRTE,1,0)):$P(^(0),U,3),1:0)
- ;
- Z1 S LRZ3=LRZ3+1 G:$D(^LRO(69.1,LRTE,1,LRZ3)) Z1
- S LRZO="^LRO(69.1,"_LRTE_",1,",LRZ1="69.11P",LRZB=+LRTS,LRIFN=LRZ3
- D Z^LRWU
- S ^LRO(69.1,LRTE,1,LRIFN,0)=+LRTS_"^"_LRLLOC_"^"_LRRB_"^"_LRDFN_"^"_LRSN_"^"_LRTJ_"^"_LRAD_"^"_LRAA_"^"_LRAN_"^"_+LROLLOC
- S ^LRO(69.1,"LRPH",LRTE,LRLLOC,LRRB,LRDFN,LRSN)=LRTJ_"^"_LRAD_"^"_LRIFN,^(LRSN,LRAA,LRAN,+LRTS)=+LRTS
- L -^LRO(69.1,LRTE)
- Q
- ;
- ;
- ORUT ;Set ORUT/ordered test node in file 63
- ;LRSS=subscript-required
- ;LRIDT=inverse date-required
- ;LRDFN=IEN file 63-required
- ;LRTSORU=ordered test (file #60 IEN)-required
- ;LRURG=ordered urgency
- ;LRORIFN=CPRS order #
- ;LRORNUM=Lab order # LR_XXXX where XXXX is a julian date
- ;LRORTYP=ordered type
- ;LRPROVL=ordering provider local
- ;LRSPEC=specimen topography
- ;LRSAMP=Collection sample
- ;
- N LRFDA,LRFILE,LRIEN,LRIENS,LRJUL,LRMSG,LRNLT,LRORNUM,LRORTYP
- N LRPROVL,LRX,LRY,DIERR
- S LRFILE=$S(LRSS="CH":63.07,LRSS="MI":63.5,LRSS="SP":63.53,LRSS="CY":63.51,LRSS="EM":63.52,1:"")
- Q:'LRFILE!('$G(LRTSORU))
- ;
- S LRNLT=$$NLT^LRVER1(+LRTSORU) Q:+LRNLT<1
- S LRORTYP=""
- I $P($G(LRORDTYP),"^",2) S LRORTYP=$P(LRORDTYP,"^",2)
- I LRORTYP="" D
- . I $G(LRORDR)'="" S LRX=$S($G(LRORDR)="WC":"O",1:"L")
- . I $G(LRORDR)="" S LRX=$S($G(LRORDRR)="R":"O",$G(LRLWC)="WC":"O",1:"L")
- . S LRORTYP=$$FIND1^DIC(64.061,"","OX",LRX,"D","I $P(^(0),U,5)=""0065""")
- S LRPROVL=$S($G(LRPRAC)?1.N:LRPRAC,1:"")
- I $G(LRORD) D
- . S LRX=$$FMDIFF^XLFDT(DT,$E(DT,1,3)_"0101",1)
- . S LRX=LRX+1,LRJUL=$E("000",1,3-$L(LRX))_LRX
- . S LRORNUM="LR-"_LRORD_"-"_$E(DT,1,3)_LRJUL
- ;
- S LRIEN="?+1"_","_LRIDT_","_LRDFN_","
- S LRFDA(5,LRFILE,LRIEN,.01)=LRNLT
- I $G(LRURG) S LRFDA(5,LRFILE,LRIEN,2)=LRURG
- I $G(LRORIFN) S LRFDA(5,LRFILE,LRIEN,3)=LRORIFN
- I $G(LRORNUM)'="" S LRFDA(5,LRFILE,LRIEN,4)=LRORNUM
- I LRORTYP'="" S LRFDA(5,LRFILE,LRIEN,5)=LRORTYP
- I LRPROVL'="" S LRFDA(5,LRFILE,LRIEN,6)=LRPROVL
- I $G(LRSPEC) S LRFDA(5,LRFILE,LRIEN,8)=LRSPEC
- I $G(LRSAMP) S LRFDA(5,LRFILE,LRIEN,9)=LRSAMP
- I +LRTSORU S LRFDA(5,LRFILE,LRIEN,13)=+LRTSORU
- I $P($G(LRORDTYP),"^",3) D
- . S LRFDA(5,LRFILE,LRIEN,14)=$P(LRORDTYP,"^",3)
- . S LRFDA(5,LRFILE,LRIEN,15)=$P(LRORDTYP,"^",4)
- D UPDATE^DIE("","LRFDA(5)","LRIENS","LRMSG")
- D CLEAN^DILF
- ;
- Q
- ;
- ;
- SICA ; Check accessions 'in common' and setup reference to this accession
- N FDA,LR6802,LRDIE,LRAA
- S LRX=$P($G(^LRO(68,LRWLC,1,LRAD,1,LRAN,.2)),"^"),LRAA=0
- F S LRAA=$O(LRTSTS(LRWLC,LRUNQ,LRAA)) Q:LRAA<1 I LRWLC'=LRAA D
- . I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) Q
- . K FDA,LRDIE
- . S LR6802=LRAN_","_LRAD_","_LRAA_","
- . S FDA(5,68.02,LR6802,15.1)=LRX
- . D FILE^DIE("","FDA(5)","LRDIE(5)")
- . I $D(LRDIE(5)) D MAILALRT^LRWLST12("SICA~LRWLST11")
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRWLST11 9631 printed Feb 18, 2025@23:48:55 Page 2
- LRWLST11 ;DALOI/STAFF - ACCESSION SETUP ;Mar 27, 2008
- +1 ;;5.2;LAB SERVICE;**121,128,153,202,286,331,375,350,440,461**;Sep 27, 1994;Build 15
- +2 ;
- ST21 ;
- +1 SET LRTS=""
- SET LRIX=0
- +2 FOR
- SET LRIX=$ORDER(LRTSTS(LRWLC,LRUNQ,LRAA,LRIX))
- if LRIX<1
- QUIT
- DO SET
- if LRUNQ
- QUIT
- +3 ;
- +4 SET LRNT=$$NOW^XLFDT
- +5 DO SCDT
- DO SLRSS
- +6 ;
- COMMON ; Setup 'in common' accession if not already setup unless it will be
- +1 ; when tests are accessioned to the 'in common' area.
- +2 IF +LRWLC
- IF +LRWLC'=+LRAA
- IF $GET(^LRO(68,LRWLC,1,LRAD,1,LRAN,0))=$GET(LRDFN)
- Begin DoDot:1
- +3 IF 'LRUNQ
- IF $DATA(LRTSTS(LRWLC,LRUNQ,LRWLC))
- QUIT
- +4 if $GET(^LRO(68,LRWLC,1,LRAD,1,LRAN,.1))
- QUIT
- +5 NEW LRAA,LRACC,LRCDTX,LRCOMMON,LREND,LRIDT,LRNODE3,LRORDRR,LRORU3,LRQUIET,LRTJ,LRUID,X,Y
- +6 SET (LRQUIET,LRCOMMON)=1
- SET LRAA=+LRWLC
- SET LRORDRR=""
- +7 SET X=LRSS
- SET LRCDTX=LRCDT
- +8 NEW LRCDT,LRSS
- +9 SET LRCDT=LRCDTX
- SET LRSS=X_U_(1+$GET(LRLBLBP))
- +10 DO STWLN^LRWLST1
- if $GET(LREND)
- QUIT
- +11 DO ST2^LRWLST1
- if $GET(LREND)
- QUIT
- +12 DO SCDT
- DO SLRSS
- End DoDot:1
- +13 ;
- +14 QUIT
- +15 ;
- +16 ;
- SCDT ; Set collection, inverse and lab arrival date/times on accession
- +1 NEW FDA,LR6802,LRDIE
- +2 SET LR6802=LRAN_","_LRAD_","_LRAA_","
- +3 SET FDA(4,68.02,LR6802,9)=LRCDT
- +4 SET FDA(4,68.02,LR6802,10)=LREAL
- +5 IF '$DATA(LRPHSET)
- SET FDA(4,68.02,LR6802,12)=LRNT
- +6 SET FDA(4,68.02,LR6802,13.5)=LRIDT
- +7 DO FILE^DIE("","FDA(4)","LRDIE(4)")
- +8 IF $DATA(LRDIE(4))
- DO MAILALRT^LRWLST12("SCDT~LRWLST11")
- +9 QUIT
- +10 ;
- +11 ;
- +1 ;
- +2 NEW FDA,FDAIEN,LRDIE,LRX
- +3 SET LRX=$SELECT(LRSS="CH":63.04,LRSS="MI":63.05,LRSS="SP":63.08,LRSS="CY":63.09,LRSS="EM":63.02,LRSS="BB":63.01,1:0)
- +4 ; change for AP
- SET X=$GET(^LRO(68,LRAA,1,LRAD,1,LRAN,5,1,0))
- +5 SET H8=$SELECT($DATA(LRSPEC):LRSPEC,1:X)_U_$SELECT("CYEMSPAU"[LRSS:LRACC,1:LRACC)_U_$SELECT(LRSS="MI":LRPRAC,1:"")_U_$SELECT(LRSS="MI":LRLLOC,1:"")_"^^"_$SELECT(LRSS="CH":LRPRAC,1:LRNT)_"^"_$SELECT(LRSS="MI":$PIECE(LRSAMP,";",1),LRSS="CH":LRLLO
- C,1:"")
- +6 ;
- +7 IF $SELECT(LRSS="CH":1,LRSS="MI":1,1:0)
- Begin DoDot:1
- +8 IF $GET(LRORDRR)="R"
- IF +$GET(LRRSITE("RSITE"))
- SET $PIECE(H8,U,9)=+LRRSITE("RSITE")_";DIC(4,"
- +9 IF $GET(LROLLOC)
- IF $GET(LRORDRR)'="R"
- SET $PIECE(H8,U,9)=LROLLOC_";SC("
- +10 SET $PIECE(H8,U,10)=$SELECT($GET(LRDUZ(2)):LRDUZ(2),1:$GET(DUZ(2)))
- End DoDot:1
- +11 ;
- +12 DO SLRSS^LRWLST1A
- +13 ;allow labels to print for Anatomic Pathology accessions
- +14 ;by commenting out the line below
- +15 ;(The two lines below that were already commented out.)
- +16 ;Q:"SPEMCY"[LRSS
- +17 ;S ^LR(LRDFN,LRSS,LRIDT,0)=LRCDT_U_LREAL_"^^^"_H8
- +18 ;I $G(LRORU3)'="" S ^LR(LRDFN,LRSS,LRIDT,"ORU")=LRORU3
- +19 ;
- ST3 ;
- +1 IF LRSS="MI"
- DO ST4
- +2 DO LRCCOM
- +3 ;
- +4 SET LRDPF=$PIECE(^LR(LRDFN,0),U,2)
- SET DFN=$PIECE(^(0),U,3)
- SET LRPR=1
- +5 SET LRRB=0
- +6 IF LRDPF=2
- SET LRRB=$$GET1^DIQ(2,DFN_",",.101)
- SET LRRB=$SELECT(LRRB'="":LRRB,1:0)
- +7 ;
- +8 if $GET(LRORDR)="P"
- QUIT
- +9 ;
- +10 IF '$DATA(LRTJ)
- Begin DoDot:1
- +11 ; Don't print, use label from sending facility.
- IF $GET(LRORDRR)="R"
- IF LRSS="CH"
- IF $GET(LRORU3)'=""
- IF $PIECE(LRORU3,"^")'=$PIECE(LRORU3,"^",4)
- QUIT
- +12 IF $GET(LRLBLBP)
- IF '$GET(LRCOMMON)
- SET LRLBL(LRAA,LRAN)=LRSN_U_LRAD_U_LRODT_U_LRRB_U_LRLLOC_U_LRACC_U_$SELECT($DATA(LRORD):LRORD,1:"")
- End DoDot:1
- QUIT
- +13 ;Anatomic Pathology labels do not print on collection lists
- +14 if "SPEMCY"[LRSS
- QUIT
- +15 SET I=0
- +16 FOR
- SET I=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I))
- if I<.5
- QUIT
- SET LRTS=^(I,0)
- DO Z
- +17 ;
- +18 QUIT
- +19 ;
- +20 ;
- ST4 ;
- +1 ;S $P(^LR(LRDFN,LRSS,LRIDT,0),U,10)=$S($D(LRNT):LRNT,1:""),$P(^(0),U,8)=LRLLOC
- +2 ; Used to be LRSPCDSC,63.05,.9 (Word Processing field) replaces 63.05,.99
- +3 if $DATA(LRCCOM)
- SET ^LR(LRDFN,LRSS,LRIDT,99)=LRCCOM
- +4 IF '$DATA(LRPHSET)
- Begin DoDot:1
- +5 NEW DA,DIE,DR
- +6 SET DIE="^LR("_LRDFN_",""MI"","
- SET DA=LRIDT
- SET DA(1)=LRDFN
- +7 ;S DR=.9
- +8 ;I '$G(LRQUIET) W:DR'=.9 !!,"Order comment:"
- +9 SET DR=.99_$SELECT($LENGTH($GET(LRGCOM)):"///"_LRGCOM,$LENGTH($GET(LRCCOM)):"//"_LRCCOM,1:"")
- +10 IF '$GET(LRQUIET)
- if DR'=.99
- WRITE !!,"Order comment:"
- +11 DO ^DIE
- End DoDot:1
- +12 IF '$GET(LRQUIET)
- IF '$DATA(LRPHSET)
- IF '$DATA(LRGCOM)
- WRITE !,"Description OK? Y//"
- DO %
- if %["N"
- GOTO ST4
- +13 KILL DR,DIC,DIE
- +14 QUIT
- +15 ;
- +16 ;
- ST5 SET I("SUBSC")=$SELECT(I("EDIT")[11.5:26,I("EDIT")[15:27,I("EDIT")[19:28,I("EDIT")[23:29,I("EDIT")[34:30,1:-1)
- if I("SUBSC")=-1
- QUIT
- +1 SET I("PNTR")=$SELECT(I("EDIT")[11.5:"^63.061A^",I("EDIT")[15:"^63.361A^",I("EDIT")[19:"^63.111A^",I("EDIT")[23:"^63.181A^",1:"^63.432A^")
- +2 SET I("N")=1+$SELECT($DATA(^LR(LRDFN,"MI",LRIDT,I("SUBSC"),0)):$PIECE(^(0),U,4),1:0)
- SET ^(0)=I("PNTR")_I("N")_U_I("N")
- SET ^(I("N"),0)=I("TEST")
- +3 QUIT
- +4 ;
- +5 ;
- SET ;
- +1 SET LRTS=LRTSTS(LRWLC,LRUNQ,LRAA,LRIX)
- +2 SET LRIN=$PIECE(LRTS,U,3)
- SET LRORIFN=$PIECE(LRTS,U,4)
- SET LRTSORU=+$PIECE(LRTS,U,6)
- SET LRBACK=$PIECE(LRTS,U,5)
- SET LRTS=$PIECE(LRTS,U,1,2)
- +3 ;
- +4 IF '$GET(LRQUIET)
- IF '$DATA(LRPHSET)
- Begin DoDot:1
- +5 WRITE !,$PIECE(^LAB(60,+LRTS,0),U)
- +6 IF $DATA(LRSPEC)
- IF LRSPEC
- Begin DoDot:2
- +7 SET I=$SELECT($DATA(^LAB(61,+LRSPEC,0)):$PIECE(^(0),U),1:"")
- SET J=$SELECT($DATA(^LAB(62,+LRSAMP,0)):$PIECE(^(0),U),1:"")
- +8 WRITE ?30,J
- if I'=J
- WRITE " ",I
- End DoDot:2
- End DoDot:1
- +9 ;
- +10 IF '$GET(LRQUIET)
- IF '$DATA(LRPHSET)
- IF +LRTS
- IF $ORDER(^LAB(60,+LRTS,7,0))>0
- Begin DoDot:1
- +11 NEW S
- +12 SET DIC="^LAB(60,"
- SET DA=+LRTS
- SET DR=7
- +13 DO EN^DIQ
- HANG 3
- End DoDot:1
- +14 IF '$GET(LRQUIET)
- IF '$DATA(LRPHSET)
- IF +LRTS
- Begin DoDot:1
- +15 NEW S
- +16 SET DIC="^LAB(60,"_(+LRTS)_",3,"
- +17 SET DA=+$ORDER(^LAB(60,+LRTS,3,"B",+LRSAMP,0))
- SET DR=2
- +18 IF DA>0
- IF $ORDER(^LAB(60,+LRTS,3,DA,2,0))>0
- DO EN^DIQ
- HANG 3
- End DoDot:1
- +19 ;
- +20 DO ORUT
- +21 ;
- +22 ; Check if LEDI specimen being accessioned then
- +23 ; - update test status of order in file #69.6
- +24 ; - if LEDI AP specimen copy data accompanying order from file #69.6 to file #63
- +25 ; - update remote ordering provider from file #69.6 to ordered test multiple (#.35)
- +26 IF $GET(LRORDRR)="R"
- IF $GET(LR696)>0
- Begin DoDot:1
- +27 DO ORUT2^LRWLST12
- +28 DO PROVCPY^LRWLST12
- +29 IF "SPCYEM"[LRSS
- DO APMOVE^LRWLST12
- End DoDot:1
- +30 ;
- +31 DO CAP^LRWLST12
- +32 KILL LRTSTS(LRWLC,LRUNQ,LRAA,LRIX)
- +33 ;
- +34 SET ^LRO(69,LRODT,1,LRSN,2,LRIN,0)=LRTS_U_LRAD_U_LRAA_U_LRAN_"^^"_LRORIFN_"^^IP^L^^^^"_LRBACK
- +35 SET ^LRO(69,LRODT,1,LRSN,2,"B",+LRTS,LRIN)=""
- +36 ;
- +37 ; When file 63 is enhanced to accept comments per test comments should
- +38 ; be put there instead of field 99.
- +39 IF $ORDER(^LRO(69,LRODT,1,LRSN,2,LRIN,1,0))
- Begin DoDot:1
- +40 IF LRSS'="CH"!($DATA(^LR(LRDFN,LRSS,LRIDT,0))[0)
- QUIT
- +41 SET X=$SELECT($DATA(^LR(LRDFN,LRSS,LRIDT,1,0)):$PIECE(^(0),"^",3),1:0)
- SET I=0
- +42 FOR
- SET I=$ORDER(^LRO(69,LRODT,1,LRSN,2,LRIN,1,I))
- if I<1
- QUIT
- SET II=^(I,0)
- SET X=X+1
- SET ^LR(LRDFN,LRSS,LRIDT,1,X,0)=II
- +43 if X
- SET ^LR(LRDFN,LRSS,LRIDT,1,0)="^63.041^"_X_U_X
- End DoDot:1
- +44 ;
- RUID IF $GET(LRORU3)'=""
- Begin DoDot:1
- +1 NEW DA,DIE,DIC,DLAYGO,DR,X,Y
- +2 SET DLAYGO=69
- +3 SET DA=LRIN
- SET DA(1)=LRSN
- SET DA(2)=LRODT
- SET DIC="^LRO(69,"_DA(2)_",1,"_DA(1)_",2,"
- +4 SET DIE=DIC
- SET DR="13////"_$PIECE(LRORU3,U)_";14////"_$PIECE(LRORU3,U,2)_";15////"_$PIECE(LRORU3,U,3)_";16////"_$PIECE(LRORU3,U,4)_";17////"_$PIECE(LRORU3,U,5)
- +5 DO ^DIE
- End DoDot:1
- +6 QUIT
- +7 ;
- +8 ;
- % READ %:DTIME
- if %=""!(%["N")!(%["Y")
- QUIT
- WRITE !,"Answer 'Y' or 'N': "
- GOTO %
- +1 ;
- +2 ;
- LRCCOM ; Copy comments from file #69 to file #63 comment multiple
- +1 NEW I,LRCCOM,LRTN,X
- +2 SET (I,LRTN,LRCCOM)=0
- +3 ;
- +4 IF LRSS'="CH"!($DATA(^LR(LRDFN,LRSS,LRIDT,0))[0)
- QUIT
- +5 ;
- +6 ; Copy (#16) WARD COMMENTS ON SPECIMEN to file #63 comment multiple
- +7 FOR
- SET I=$ORDER(^LRO(69,LRODT,1,LRSN,6,I))
- if I<1
- QUIT
- IF $DATA(^(I,0))
- SET X=^(0)
- SET LRCCOM=LRCCOM+1
- SET ^LR(LRDFN,LRSS,LRIDT,1,LRCCOM,0)=X
- +8 ;
- +9 ; Copy expanded panels (#99) TEST COMMENTS to file #63 comment multiple
- +10 FOR
- SET LRTN=$ORDER(^LRO(69,LRODT,1,LRSN,2,LRTN))
- if 'LRTN
- QUIT
- IF $DATA(^(LRTN,0))
- SET X=^(0)
- IF $PIECE(X,"^",8)
- IF '$PIECE(X,"^",3)
- IF $ORDER(^(1,0))
- Begin DoDot:1
- +11 SET I=0
- +12 FOR
- SET I=$ORDER(^LRO(69,LRODT,1,LRSN,2,LRTN,1,I))
- if 'I
- QUIT
- IF $DATA(^(I,0))
- SET X=^(0)
- SET LRCCOM=LRCCOM+1
- SET ^LR(LRDFN,LRSS,LRIDT,1,LRCCOM,0)=X
- End DoDot:1
- +13 ;
- +14 if LRCCOM
- SET ^LR(LRDFN,LRSS,LRIDT,1,0)="^63.041^"_LRCCOM_U_LRCCOM
- +15 ;
- +16 QUIT
- +17 ;
- +18 ;
- Z ; Update collection list (#69.1)
- +1 LOCK +^LRO(69.1,LRTE):999
- +2 SET LRZ3=$SELECT($DATA(^LRO(69.1,LRTE,1,0)):$PIECE(^(0),U,3),1:0)
- +3 ;
- Z1 SET LRZ3=LRZ3+1
- if $DATA(^LRO(69.1,LRTE,1,LRZ3))
- GOTO Z1
- +1 SET LRZO="^LRO(69.1,"_LRTE_",1,"
- SET LRZ1="69.11P"
- SET LRZB=+LRTS
- SET LRIFN=LRZ3
- +2 DO Z^LRWU
- +3 SET ^LRO(69.1,LRTE,1,LRIFN,0)=+LRTS_"^"_LRLLOC_"^"_LRRB_"^"_LRDFN_"^"_LRSN_"^"_LRTJ_"^"_LRAD_"^"_LRAA_"^"_LRAN_"^"_+LROLLOC
- +4 SET ^LRO(69.1,"LRPH",LRTE,LRLLOC,LRRB,LRDFN,LRSN)=LRTJ_"^"_LRAD_"^"_LRIFN
- SET ^(LRSN,LRAA,LRAN,+LRTS)=+LRTS
- +5 LOCK -^LRO(69.1,LRTE)
- +6 QUIT
- +7 ;
- +8 ;
- ORUT ;Set ORUT/ordered test node in file 63
- +1 ;LRSS=subscript-required
- +2 ;LRIDT=inverse date-required
- +3 ;LRDFN=IEN file 63-required
- +4 ;LRTSORU=ordered test (file #60 IEN)-required
- +5 ;LRURG=ordered urgency
- +6 ;LRORIFN=CPRS order #
- +7 ;LRORNUM=Lab order # LR_XXXX where XXXX is a julian date
- +8 ;LRORTYP=ordered type
- +9 ;LRPROVL=ordering provider local
- +10 ;LRSPEC=specimen topography
- +11 ;LRSAMP=Collection sample
- +12 ;
- +13 NEW LRFDA,LRFILE,LRIEN,LRIENS,LRJUL,LRMSG,LRNLT,LRORNUM,LRORTYP
- +14 NEW LRPROVL,LRX,LRY,DIERR
- +15 SET LRFILE=$SELECT(LRSS="CH":63.07,LRSS="MI":63.5,LRSS="SP":63.53,LRSS="CY":63.51,LRSS="EM":63.52,1:"")
- +16 if 'LRFILE!('$GET(LRTSORU))
- QUIT
- +17 ;
- +18 SET LRNLT=$$NLT^LRVER1(+LRTSORU)
- if +LRNLT<1
- QUIT
- +19 SET LRORTYP=""
- +20 IF $PIECE($GET(LRORDTYP),"^",2)
- SET LRORTYP=$PIECE(LRORDTYP,"^",2)
- +21 IF LRORTYP=""
- Begin DoDot:1
- +22 IF $GET(LRORDR)'=""
- SET LRX=$SELECT($GET(LRORDR)="WC":"O",1:"L")
- +23 IF $GET(LRORDR)=""
- SET LRX=$SELECT($GET(LRORDRR)="R":"O",$GET(LRLWC)="WC":"O",1:"L")
- +24 SET LRORTYP=$$FIND1^DIC(64.061,"","OX",LRX,"D","I $P(^(0),U,5)=""0065""")
- End DoDot:1
- +25 SET LRPROVL=$SELECT($GET(LRPRAC)?1.N:LRPRAC,1:"")
- +26 IF $GET(LRORD)
- Begin DoDot:1
- +27 SET LRX=$$FMDIFF^XLFDT(DT,$EXTRACT(DT,1,3)_"0101",1)
- +28 SET LRX=LRX+1
- SET LRJUL=$EXTRACT("000",1,3-$LENGTH(LRX))_LRX
- +29 SET LRORNUM="LR-"_LRORD_"-"_$EXTRACT(DT,1,3)_LRJUL
- End DoDot:1
- +30 ;
- +31 SET LRIEN="?+1"_","_LRIDT_","_LRDFN_","
- +32 SET LRFDA(5,LRFILE,LRIEN,.01)=LRNLT
- +33 IF $GET(LRURG)
- SET LRFDA(5,LRFILE,LRIEN,2)=LRURG
- +34 IF $GET(LRORIFN)
- SET LRFDA(5,LRFILE,LRIEN,3)=LRORIFN
- +35 IF $GET(LRORNUM)'=""
- SET LRFDA(5,LRFILE,LRIEN,4)=LRORNUM
- +36 IF LRORTYP'=""
- SET LRFDA(5,LRFILE,LRIEN,5)=LRORTYP
- +37 IF LRPROVL'=""
- SET LRFDA(5,LRFILE,LRIEN,6)=LRPROVL
- +38 IF $GET(LRSPEC)
- SET LRFDA(5,LRFILE,LRIEN,8)=LRSPEC
- +39 IF $GET(LRSAMP)
- SET LRFDA(5,LRFILE,LRIEN,9)=LRSAMP
- +40 IF +LRTSORU
- SET LRFDA(5,LRFILE,LRIEN,13)=+LRTSORU
- +41 IF $PIECE($GET(LRORDTYP),"^",3)
- Begin DoDot:1
- +42 SET LRFDA(5,LRFILE,LRIEN,14)=$PIECE(LRORDTYP,"^",3)
- +43 SET LRFDA(5,LRFILE,LRIEN,15)=$PIECE(LRORDTYP,"^",4)
- End DoDot:1
- +44 DO UPDATE^DIE("","LRFDA(5)","LRIENS","LRMSG")
- +45 DO CLEAN^DILF
- +46 ;
- +47 QUIT
- +48 ;
- +49 ;
- SICA ; Check accessions 'in common' and setup reference to this accession
- +1 NEW FDA,LR6802,LRDIE,LRAA
- +2 SET LRX=$PIECE($GET(^LRO(68,LRWLC,1,LRAD,1,LRAN,.2)),"^")
- SET LRAA=0
- +3 FOR
- SET LRAA=$ORDER(LRTSTS(LRWLC,LRUNQ,LRAA))
- if LRAA<1
- QUIT
- IF LRWLC'=LRAA
- Begin DoDot:1
- +4 IF '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
- QUIT
- +5 KILL FDA,LRDIE
- +6 SET LR6802=LRAN_","_LRAD_","_LRAA_","
- +7 SET FDA(5,68.02,LR6802,15.1)=LRX
- +8 DO FILE^DIE("","FDA(5)","LRDIE(5)")
- +9 IF $DATA(LRDIE(5))
- DO MAILALRT^LRWLST12("SICA~LRWLST11")
- End DoDot:1
- +10 QUIT