| [613] | 1 | LRLNCDEL ; DALOI/CA/FHS - UNMAP LAB TESTS TO LOINC CODES OR DELETE LOINC MAPPINGS ;1-OCT-1998 | 
|---|
|  | 2 | ;;5.2;LAB SERVICE;**232,278**;Sep 27,1994 | 
|---|
|  | 3 | ;Reference to ^DD supported by IA 10154 | 
|---|
|  | 4 | ;================================================================= | 
|---|
|  | 5 | ; Ask VistA test to unmap-Lookup in Lab Test file #60 | 
|---|
|  | 6 | START ;entry point from option LR LOINC MAPPING | 
|---|
|  | 7 | S LREND=0 D TEST | 
|---|
|  | 8 | I $G(LREND) G EXIT | 
|---|
|  | 9 | W @IOF,!! D SPEC | 
|---|
|  | 10 | I $G(LREND) D EXIT G START | 
|---|
|  | 11 | D UNMAP | 
|---|
|  | 12 | D EXIT | 
|---|
|  | 13 | G START | 
|---|
|  | 14 | EXIT ; | 
|---|
|  | 15 | K DA,DIC,DIE,DINUM,DIR,DIRUT,DR,DTOUT,I,LRCODE,LRDATA,LREND,LRLNC,LRLNC0,LRLOINC,LRELEC,LRIEN,LRNLT,LRSPEC,LRSPECL,LRSPECN,LRTIME,LRTEST,LRUNITS,S,Y | 
|---|
|  | 16 | K LRNLTN,LRNLTNM,LRASPECT | 
|---|
|  | 17 | K D,D0,DD,DO,DLAYGO,LRLNCNAM,LRNO,LROUT,X | 
|---|
|  | 18 | QUIT | 
|---|
|  | 19 | TEST W !! | 
|---|
|  | 20 | N DIR,Y,X,LROUT,LRERR,DA,DIC,DIE,DR | 
|---|
|  | 21 | S DIR(0)="PO^60:QENMZ,",DIR("A")="VistA Lab Test to delete/unmap to LOINC " | 
|---|
|  | 22 | S DIR("?")="Select Lab test you wish to delete/unmap to a LOINC Code" | 
|---|
|  | 23 | D ^DIR K DIR | 
|---|
|  | 24 | I $D(DIRUT) K DIRUT S LREND=1 Q | 
|---|
|  | 25 | S LRIEN=+Y,LRTEST=$P(Y,U,2) | 
|---|
|  | 26 | ;Check for RESULT NLT CODE and if not one let enter | 
|---|
|  | 27 | L +^LAB(60,LRIEN):2 I '$T W !?4,"Locked by another user" H 5 G TEST | 
|---|
|  | 28 | I '$P($G(^LAB(60,LRIEN,64)),U,2) D  I $D(DUOUT)!($D(DTOUT)) S LREND=1 Q | 
|---|
|  | 29 | . W !!,"There is not a RESULT NLT CODE for "_LRTEST,".",! | 
|---|
|  | 30 | . W !,"You must select one now to continue with the mapping of this test!",! | 
|---|
|  | 31 | . K DIE,DR,DA S DA=LRIEN,DIE="^LAB(60,",DR=64.1 | 
|---|
|  | 32 | . D ^DIE | 
|---|
|  | 33 | . L -^LAB(60,LRIEN) | 
|---|
|  | 34 | . I $D(DUOUT)!($D(DTOUT)) Q | 
|---|
|  | 35 | . S DIC=DIE,DR=0 W !! W ?5,"IEN: [",DA,"] ",$P(^LAB(60,LRIEN,0),U) S S=$Y D EN^LRDIQ W ! | 
|---|
|  | 36 | L -^LAB(60,LRIEN) | 
|---|
|  | 37 | S LRNLT=$P($G(^LAB(60,LRIEN,64)),U,2) | 
|---|
|  | 38 | I 'LRNLT G TEST | 
|---|
|  | 39 | D GETS^DIQ(64,LRNLT_",",".01;1","E","LROUT","LRERR") | 
|---|
|  | 40 | S LRNLTNM=$G(LROUT(64,LRNLT_",",.01,"E")) | 
|---|
|  | 41 | S LRNLTN=$G(LROUT(64,LRNLT_",",1,"E")) | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | SPEC ; Ask Specimen- Lookup in Specimen multiple in Lab Test file #60 | 
|---|
|  | 44 | N DIR,DIRUT | 
|---|
|  | 45 | S DIR(0)="PO^61:ENQNZ",LREND=0 | 
|---|
|  | 46 | S DIR("S")="I $P(^(0),U,9),$P(^(0),U,10)" | 
|---|
|  | 47 | S DIR("?")="Enter a TOPOGRAPHY having a LEDI HL7 code defined." | 
|---|
|  | 48 | S DIR("A")="Specimen Source: " | 
|---|
|  | 49 | D ^DIR I $D(DIRUT) S LREND=1 Q | 
|---|
|  | 50 | S LRSPEC=+Y,LRSPECN=$P(Y,U,2) | 
|---|
|  | 51 | S LRELEC=$P(Y(0),U,9),LRASPECT=$P(Y(0),U,10) | 
|---|
|  | 52 | D GETS^DIQ(64.061,LRELEC_",",1,"E","LROUT","LRERR") | 
|---|
|  | 53 | S LRSPECL=$G(LROUT(64.061,LRELEC_",",1,"E")) | 
|---|
|  | 54 | I '$L(LRSPECL) W !?5,LRSPECN_" has a broken pointer" S LREND=1 | 
|---|
|  | 55 | Q | 
|---|
|  | 56 | UNMAP ;Check to see if already mapped to a LOINC code | 
|---|
|  | 57 | N DA,DIC,DIK,DIR,DIRUT,DR | 
|---|
|  | 58 | S DIR(0)="PO^64:EQNZM",DIR("S")="I $P($P(^(0),U,2),""."")="_$P(LRNLTN,".") | 
|---|
|  | 59 | S DIR("B")=$P(LRNLTN,".") | 
|---|
|  | 60 | D ^DIR I $D(DIRUT) S LREND=1 Q | 
|---|
|  | 61 | S LRNLT=+Y | 
|---|
|  | 62 | L +^LAM(LRNLT,5):1 I '$T W !,"Another user is editing this record",! H 5 Q | 
|---|
|  | 63 | I '$D(^LAM(LRNLT,5,LRSPEC,1,LRASPECT)) D  G INDEX60 | 
|---|
|  | 64 | . N LROUT | 
|---|
|  | 65 | . D GETS^DIQ(64.061,LRASPECT_",",.01,"E","LROUT") | 
|---|
|  | 66 | . W $C(7) | 
|---|
|  | 67 | . W !!!?5,"Lab Test: "_LRTEST_" / "_LRSPECL_" is NOT mapped to " | 
|---|
|  | 68 | . W !,"WKLD CODE: "_$P(Y,U,2)_"  Time Aspect of: "_$G(LROUT(64.061,LRASPECT_",",.01,"E")) | 
|---|
|  | 69 | DIS ;Show the data | 
|---|
|  | 70 | K DA,DIC,DIK,DIR,DR | 
|---|
|  | 71 | S DA(2)=LRNLT,DA(1)=LRSPEC,DA=LRASPECT,DIC="^LAM("_DA(2)_",5,"_DA(1)_",1," | 
|---|
|  | 72 | S S=0,DR="0:99" | 
|---|
|  | 73 | W !!,LRSPECN,! | 
|---|
|  | 74 | D EN^DIQ | 
|---|
|  | 75 | S DIR(0)="Y",DIR("A")="Are You  - SURE-   you want to delete this mapping" | 
|---|
|  | 76 | D ^DIR I $G(Y)'=1 L -^LAM(LRNLT,5) Q | 
|---|
|  | 77 | S DIK=DIC D ^DIK | 
|---|
|  | 78 | INDEX60 ;Stores LOINC code in Laboratory Test file (#60) so know what tests are mapped. | 
|---|
|  | 79 | K DIE,DA,DR S DA=LRSPEC,DA(1)=LRIEN,DIE="^LAB(60,"_DA(1)_",1,",DR="95.3///@" D ^DIE | 
|---|
|  | 80 | ;S ^LAB(60,LRIEN,1,LRSPEC,95.3)=LRCODE | 
|---|
|  | 81 | L -^LAM(LRNLT,5) | 
|---|
|  | 82 | Q | 
|---|
|  | 83 | SHOWPRE ;DISPLAY LOINC CODE ALREADY MAPPED TO NLT | 
|---|
|  | 84 | S LRLNC=$P($G(^LAM(LRNLT,5,LRSPEC,1,LRTIME,1)),U) | 
|---|
|  | 85 | W !!,"This test and specimen is mapped to:" | 
|---|
|  | 86 | W !,"LOINC code: ",LRLNC,"  ",$G(^LAB(95.3,+LRLNC,80)) | 
|---|
|  | 87 | W !! | 
|---|
|  | 88 | S DIR(0)="Y",DIR("A")="Are you sure you want to delete this mapping" | 
|---|
|  | 89 | S DIR("?")="If you enter yes, the current LOINC code mapping will be deleted." | 
|---|
|  | 90 | D ^DIR K DIR | 
|---|
|  | 91 | Q | 
|---|