| 1 | LRLNCV ;DALOI/CA-VALIDATE LOINC MAPPING ;18-JUL-2001 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**232,278**;Sep 27,1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ;================================================================= | 
|---|
| 5 | ; Ask VistA test in Lab Test file #60 | 
|---|
| 6 | START ;entry point from option LR LOINC VALIDATE | 
|---|
| 7 | S LREND=0 D TEST | 
|---|
| 8 | I $G(LREND) G EXIT | 
|---|
| 9 | ; | 
|---|
| 10 | W !!,"NAME OF NLT CODE: ",$P(^LAM(LRNLT,0),U) | 
|---|
| 11 | W !,"NLT CODE: ",$P(^LAM(LRNLT,0),U,2) S LRNLTN=$P($G(^LAM(LRNLT,0)),U,2) | 
|---|
| 12 | S LRDEF=+$G(^LAM(LRNLT,9)) | 
|---|
| 13 | I LRDEF W !,"DEFAULT LOINC CODE: ",$S(LRDEF:LRDEF_"  "_$P(^LAB(95.3,LRDEF,80),U),1:"NONE") | 
|---|
| 14 | ASKSPEC ; Ask Specimen- Lookup in Specimen multiple in Lab Test file #60 | 
|---|
| 15 | W !! | 
|---|
| 16 | LOOK61 K DIR,DA | 
|---|
| 17 | S DIR(0)="PO^61:EZMN",DIR("S")="I $P(^(0),U,9)" | 
|---|
| 18 | S DIR("A")="Select a Specimen source that has a LEDI HL7 code" | 
|---|
| 19 | S DIC("A")="Specimen source: " | 
|---|
| 20 | D ^DIR | 
|---|
| 21 | I $D(DUOUT)!($D(DTOUT))!(Y<1) G START | 
|---|
| 22 | S LRSPEC=+Y | 
|---|
| 23 | SUFFIX ;Set LRCDEF Value | 
|---|
| 24 | S LREND=0,DIC="^LRO(68.2,",DIC(0)="AQEM",DIC("A")="Work Load Area: ",DIC("S")="I $D(^(""SUF"")),+^(""SUF"")" D ^DIC S:Y<1 LREND=1 K DIC | 
|---|
| 25 | I $G(LREND) G START | 
|---|
| 26 | S LRCDEF=$P(^LRO(68.2,+Y,"SUF"),U,3) | 
|---|
| 27 | LOINC S LRMSG=1 | 
|---|
| 28 | S LRLOINC=$$LNC^LRVER1(LRNLTN,LRCDEF,LRSPEC) | 
|---|
| 29 | I LRLOINC S LRLOINC=LRLOINC_"-"_$P($G(^LAB(95.3,LRLOINC,0)),U,15) | 
|---|
| 30 | I 'LRLOINC W !!,"TEST NOT MAPPED",!! D EXIT G START | 
|---|
| 31 | S LRDA=$P(LRMSGM,"-",2),LRDA=+$O(^LAM("C",LRDA,0)) | 
|---|
| 32 | S LRDAN="Unknown code number" | 
|---|
| 33 | I $G(LRDA),$D(^LAM(LRDA,0)) S LRDAN=$P($G(^LAM(LRDA,0)),U) | 
|---|
| 34 | W !!,"LOINC Code: ",LRLOINC,!,$G(^LAB(95.3,+LRLOINC,80)),! | 
|---|
| 35 | W !,$$CJ^XLFSTR("LOINC code was located @ NLT CODE: "_LRDAN,IOM) | 
|---|
| 36 | W !,$$CJ^XLFSTR($P(LRMSGM,"-",2,99),IOM) | 
|---|
| 37 | D EXIT G START | 
|---|
| 38 | Q | 
|---|
| 39 | EXIT K DA,DIC,DIE,DINUM,DIR,DIRUT,DR,DTOUT,DUOUT,LREND,LRLOINC,LRIEN,LRMSG,LRNLT,LRSPEC,LRSPECN,LRSUF,LRTEST,S,Y | 
|---|
| 40 | K DD,DO,DLAYGO,LRDEF,X | 
|---|
| 41 | QUIT | 
|---|
| 42 | TEST W !! | 
|---|
| 43 | K DIR | 
|---|
| 44 | S DIR(0)="PO^60:QENMZ,",DIR("A")="VistA Lab Test" | 
|---|
| 45 | S DIR("?")="Select Lab test" | 
|---|
| 46 | D ^DIR K DIR | 
|---|
| 47 | I $D(DIRUT)!'Y K DIRUT S LREND=1 Q | 
|---|
| 48 | S LRIEN=+Y,LRTEST=$P(Y,U,2) | 
|---|
| 49 | ;Check for RESULT NLT CODE and if not one let enter | 
|---|
| 50 | I '$P($G(^LAB(60,+$G(LRIEN),64)),U,2) D | 
|---|
| 51 | .W $$CJ^XLFSTR("There is not a RESULT NLT CODE for "_LRTEST,IOM) | 
|---|
| 52 | .W $$CJ^XLFSTR("You MAY select one now to continue with the LOINC lookup",IOM),! | 
|---|
| 53 | K DIE,DR,DA S DA=LRIEN,DIE="^LAB(60,",DR=64.1 | 
|---|
| 54 | D ^DIE | 
|---|
| 55 | I $D(DUOUT)!($D(DTOUT)) G START | 
|---|
| 56 | I '$P($G(^LAB(60,+$G(LRIEN),64)),U,2) D | 
|---|
| 57 | .S DIC=DIE,DR=0 W !! W ?5,"IEN: [",DA,"] ",$P(^LAB(60,LRIEN,0),U) S S=$Y D EN^LRDIQ W ! | 
|---|
| 58 | W ! | 
|---|
| 59 | S LRNLT=$P($G(^LAB(60,+$G(LRIEN),64)),U,2) | 
|---|
| 60 | I 'LRNLT G TEST | 
|---|
| 61 | Q | 
|---|