[613] | 1 | LRLNCST ;DALOI/FHS-LIST OF LOINC DEPRECIATED CODES ; 5/14/07 12:56pm
|
---|
| 2 | ;;5.2;LAB SERVICE;**334**;Sep 27, 1994;Build 12
|
---|
| 3 | EN ;
|
---|
| 4 | K LRIO,%ZIS,LRIO
|
---|
| 5 | K DIR,LRANS,Y
|
---|
| 6 | S DIR(0)="SO^L: List of Deprecated codes;M: Mapped Deprecated codes in use"
|
---|
| 7 | S DIR("?")="Listing of LOINC deprecated codes"
|
---|
| 8 | S DIR("?",1)="L = List of all LOINC deprecated codes"
|
---|
| 9 | S DIR("?",2)="M = List of mapped LOINC deprecated codes"
|
---|
| 10 | D ^DIR G END:$G(DIRUT)!($G(Y)="")
|
---|
| 11 | S LRANS=Y
|
---|
| 12 | DEVICE ;
|
---|
| 13 | S %ZIS="NQO",%ZIS("A")="Select Device: ",%ZIS("B")=""
|
---|
| 14 | D ^%ZIS I $G(POP) D END Q
|
---|
| 15 | I IO'=IO(0) D LOAD D END Q
|
---|
| 16 | I LRANS="M" D LNK,END Q
|
---|
| 17 | I LRANS="L" D LST,END
|
---|
| 18 | Q
|
---|
| 19 | LOAD ;
|
---|
| 20 | N ZTRTN,ZTIO,ZTDESC,ZTDTH
|
---|
| 21 | S ZTRTN=$S(LRANS="L":"LST^LRLNCST",1:"LNK^LRLNCST")
|
---|
| 22 | S ZTDTH=$H,ZTDESC="Print laboratory LOINC deprecated codes"
|
---|
| 23 | S ZTIO=IO
|
---|
| 24 | D ^%ZTLOAD
|
---|
| 25 | W !,$S($G(ZTSK):"Tasked to "_ION_" "_ZTSK,1:"Not Tasked")
|
---|
| 26 | Q
|
---|
| 27 | LST ;Print list of deprecated code
|
---|
| 28 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 29 | S LRHDR="List of deprecated codes"
|
---|
| 30 | S (LRPG,LRLNC)=0 D HDR
|
---|
| 31 | F S LRLNC=$O(^LAB(95.3,"AD",1,LRLNC)) Q:LRLNC<1 D
|
---|
| 32 | . K LRANS,ERR
|
---|
| 33 | . D GETS^DIQ(95.3,LRLNC,".01;80","E","LRANS","ERR")
|
---|
| 34 | . Q:$D(ERR)
|
---|
| 35 | . W !,$G(LRANS(95.3,LRLNC_",",.01,"E"))," ",$E($G(LRANS(95.3,LRLNC_",",80,"E")),1,60)
|
---|
| 36 | . I $Y>(IOSL-4) D HDR
|
---|
| 37 | D END Q
|
---|
| 38 | LNK ;Provide list of mapped deprecated LOINC codes
|
---|
| 39 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 40 | S (LRPG,LRIEN)=0,LRNM="",LRPLINE=0
|
---|
| 41 | S LRHDR="List of mapped LOINC deprecated codes" D HDR
|
---|
| 42 | S $P(LRPLN,"+",79)=""
|
---|
| 43 | F S LRNM=$O(^LAB(60,"B",LRNM)) Q:LRNM="" D
|
---|
| 44 | . S LRIEN=0 F S LRIEN=$O(^LAB(60,"B",LRNM,LRIEN)) Q:LRIEN<1 D
|
---|
| 45 | . . Q:$G(^LAB(60,"B",LRNM,LRIEN))
|
---|
| 46 | . . S LR60NM="["_LRIEN_"] "_LRNM_" ",LRPLINE=0
|
---|
| 47 | . . D LK64
|
---|
| 48 | D END Q
|
---|
| 49 | LK64 ;Start looking for NLT linked fields.
|
---|
| 50 | S LR64=$G(^LAB(60,LRIEN,64)),LRONLT=+LR64,LRRNLT=$P(LR64,U,2)
|
---|
| 51 | I LRONLT D ORDER
|
---|
| 52 | I LRRNLT D RESULT
|
---|
| 53 | Q
|
---|
| 54 | RESULT ;Look up result NLT codes
|
---|
| 55 | S LRFLD=1
|
---|
| 56 | D CHK(LRRNLT,LRFLD) Q:$G(LRNOP)
|
---|
| 57 | D LNC(LRRNLT,LRFLD)
|
---|
| 58 | Q
|
---|
| 59 | ORDER ;Look up NLT order codes
|
---|
| 60 | S LRFLD=2
|
---|
| 61 | D CHK(LRONLT,LRFLD) Q:$G(LRNOP)
|
---|
| 62 | D DEF(LRONLT,LRFLD)
|
---|
| 63 | Q
|
---|
| 64 | DEF(LRNLT,FLD) ;Check LOINC default code
|
---|
| 65 | S LRDEF=+$G(^LAM(LRNLT,9)) I LRDEF D
|
---|
| 66 | . S LRNLTNM=$P(^LAM(LRNLT,0),U)_" "_$P(^(0),U,2)
|
---|
| 67 | . I $G(^LAB(95.3,LRDEF,4)) D
|
---|
| 68 | . . I $Y>(IOSL-6) D HDR
|
---|
| 69 | . . D:'$G(LRPLINE) PLN
|
---|
| 70 | . . W !,"Test Name: ",LR60NM
|
---|
| 71 | . . W !,$S(FLD=1:"RESULT NLT Code LOINC Default ",1:"ORDER NLT Code LOINC Default ")
|
---|
| 72 | . . W !,"NLT Code: ",LRNLTNM
|
---|
| 73 | . . W !,LRDEF_"-"_$P(^LAB(95.3,LRDEF,0),U,15)_" "_$G(^LAB(95.3,LRDEF,80)),!
|
---|
| 74 | Q
|
---|
| 75 | CHK(LRP,FLD) ;Check for valid node
|
---|
| 76 | S LRNOP=0 I '$D(^LAM(LRP,0)) D Q
|
---|
| 77 | . D:'$G(LRPLINE) PLN
|
---|
| 78 | . S LRTXT="is not valid"
|
---|
| 79 | . S LRMSG="["_LRIEN_"] "_LRNM_$S(FLD=2:" Order NLT ",1:" Result NLT ")_LRTXT
|
---|
| 80 | . D MSG(LRMSG) S LRNOP=1
|
---|
| 81 | S LRNODE=^LAM(LRP,0),LRCC=$P($P(^(0),U,2),".")
|
---|
| 82 | Q
|
---|
| 83 | MSG(MSG) ;Print
|
---|
| 84 | W !,$$CJ^XLFSTR(MSG,IOM)
|
---|
| 85 | Q
|
---|
| 86 | LNC(LRNLT,LRFLD) ;Check for LOINC in suffixed NLT codes
|
---|
| 87 | S:'LRFLD LRFLD=1
|
---|
| 88 | K LRNOP,LRCC,LRQ,LRQB,NODE
|
---|
| 89 | S LRCC=$P(^LAM(LRNLT,0),U,2) Q:'LRCC!($G(LRNOP)) D
|
---|
| 90 | . S LRQB=$P(LRCC,".")
|
---|
| 91 | . S LRQ=""""_$P(LRCC,".")_".0""",NODE="^LAM(""E"","_LRQ_")"
|
---|
| 92 | . S NODE=$Q(@NODE) I $P($QS(NODE,2),".")'=LRQB S LRNOP=1 Q
|
---|
| 93 | . S LRINLT=$QS(NODE,3) D DEF(LRINLT,LRFLD)
|
---|
| 94 | . D SPEC(LRINLT,3)
|
---|
| 95 | Q
|
---|
| 96 | SPEC(LRNLT,LRFLD) ;Check specimen time aspect LOINC
|
---|
| 97 | S LRSPEC=0 F S LRSPEC=$O(^LAM(LRNLT,5,LRSPEC)) Q:LRSPEC<1 D
|
---|
| 98 | . S LRSPECN=$P($G(^LAB(61,LRSPEC,0)),U)
|
---|
| 99 | . S LRTASP=0 F S LRTASP=$O(^LAM(LRNLT,5,LRSPEC,1,LRTASP)) Q:LRTASP<1 D
|
---|
| 100 | . . S LRTASPN=$P($G(^LAB(64.061,LRTASP,0)),U)
|
---|
| 101 | . . S LRLNC=+$G(^LAM(LRNLT,5,LRSPEC,1,LRTASP,1))
|
---|
| 102 | . . I LRLNC,$G(^LAB(95.3,LRLNC,4)) D DISP
|
---|
| 103 | Q
|
---|
| 104 | DISP ;
|
---|
| 105 | I $Y>(IOSL-5) D HDR
|
---|
| 106 | D:'$G(LRPLINE) PLN
|
---|
| 107 | W !,"Test Name: ",LR60NM
|
---|
| 108 | W !,"NLT Code: ",$P($G(^LAM(LRNLT,0)),U)," ",$P(^(0),U,2)
|
---|
| 109 | W !," ("_LRSPEC_") "_LRSPECN
|
---|
| 110 | W !,"LOINC Code: ",LRTASPN_" ["_LRLNC_"-"_$P(^LAB(95.3,LRLNC,0),U,15)_"]"
|
---|
| 111 | W !,"LOINC Name: ",$G(^LAB(95.3,LRLNC,80))
|
---|
| 112 | Q
|
---|
| 113 | PLN ;
|
---|
| 114 | I $Y>(IOSL-6) D HDR
|
---|
| 115 | W !,LRPLN,!
|
---|
| 116 | S LRPLINE=1
|
---|
| 117 | Q
|
---|
| 118 | END ;
|
---|
| 119 | W !
|
---|
| 120 | W:$E($G(IOST),1,2)="P-" @IOF
|
---|
| 121 | D ^%ZISC
|
---|
| 122 | K ZTSK,ERR,DIRUT,LR64,LRMSG,LRNM,LRNODE,LRNOPE,LRSPEC,LRTXT
|
---|
| 123 | K DIR,LR60NM,LRANS,LRCC,LRDEF,LRFLD,LRHDR,LRIEN,LRINLT,LRNLTNM,LRONLT,LRPG,LRPLINE
|
---|
| 124 | K LRLNC,LRPLN,LRQ,LRQB,LRRNLT,LRSPECN,LRTASP,LRTASPN,NODE,POP,X,Y
|
---|
| 125 | Q
|
---|
| 126 | HDR ;
|
---|
| 127 | S LRPG=$G(LRPG)+1
|
---|
| 128 | W @IOF,LRHDR," Page: ",LRPG,!
|
---|
| 129 | Q
|
---|