| 1 | LRLNCX  ;DALOI/FS- ROUTINE TO EXTRACT VISTA TEST NAMES FOR LOINC MAPPING;1-FEB-2001
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**232,278**;Sep 27,1994
 | 
|---|
| 3 |  ;;
 | 
|---|
| 4 |  ; Field Separator = "|"
 | 
|---|
| 5 |  ;LR60 = IEN from ^LAB(60
 | 
|---|
| 6 |  ;LRSP = SPECIMEN pointer to ^LAB(61
 | 
|---|
| 7 |  ;LR60N = TEST NAME FOR ^LAB(60 - *? are translated to spaces for RELMA
 | 
|---|
| 8 |  ;LRSPN = SPECIMEN NAME - attempt to get LOINC Abbrv if linked
 | 
|---|
| 9 |  ;LRUNIT = REPORTING UNITS FROM ^LAB(60,IEN,1,LRSP,0)
 | 
|---|
| 10 |  ;1-70|WBC BLD K/cmm
 | 
|---|
| 11 |  ;Capture the output into a text file to import into Relma.
 | 
|---|
| 12 |  ;Remove 1st and last lines before importing into Relma
 | 
|---|
| 13 | EN ;
 | 
|---|
| 14 |  K ^TMP("LR LOINC",$J),LREND,LRAA
 | 
|---|
| 15 |  D MSG W !
 | 
|---|
| 16 |  G END:$G(LREND)
 | 
|---|
| 17 |  S LRFS="|",LR60=0,LR60N=""
 | 
|---|
| 18 |  G @LRANS
 | 
|---|
| 19 | 3 ;Selected all tests
 | 
|---|
| 20 | 2 ;Selected accession area - screen on LRAA(#)
 | 
|---|
| 21 |  D ASK G END:$G(LREND)
 | 
|---|
| 22 |  F  S LR60N=$O(^LAB(60,"B",LR60N)) Q:LR60N=""  D
 | 
|---|
| 23 |  . S LR60=0 F  S LR60=$O(^LAB(60,"B",LR60N,LR60)) Q:LR60<1  D
 | 
|---|
| 24 |  . . Q:$G(^LAB(60,"B",LR60N,LR60))
 | 
|---|
| 25 |  . . I '$D(^LAB(60,LR60,0))#2 K ^LAB(60,"B",LR60N,LR60) Q
 | 
|---|
| 26 |  . . Q:$P(^LAB(60,LR60,0),U,3)="N"!($P(^(0),U,3)="")  D OUT
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | 1 ;create individual test list.
 | 
|---|
| 29 |  K ^TMP("LR LOINC",$J)
 | 
|---|
| 30 |  S ^TMP("LR LOINC",$J,0)=DT_U_DT_U_"LRLNCX TEST LIST"
 | 
|---|
| 31 |  K DIR
 | 
|---|
| 32 |  S DIR(0)="PO^60:NQEMZ"
 | 
|---|
| 33 |  S DIR("S")="I $L($P(^(0),U,3)),$P(^(0),U,3)'=""N"",$P($P(^(0),U,5),"";"",2)"
 | 
|---|
| 34 |  F  D ^DIR Q:Y<1  S ^TMP("LR LOINC",$J,Y(0,0)_+Y,0)=+Y_U_Y(0,0)
 | 
|---|
| 35 |  I $O(^TMP("LR LOINC",0))'="" D ASK G END:$G(LREND)
 | 
|---|
| 36 |  S LRNX=0
 | 
|---|
| 37 |  ;W !,$TR($$SITE^VASITE,U,"|")_"|"_$$FMTE^XLFDT($$NOW^XLFDT,1)
 | 
|---|
| 38 |  F  S LRNX=$O(^TMP("LR LOINC",$J,LRNX)) Q:LRNX=""  D
 | 
|---|
| 39 |  . S LR60=$G(^TMP("LR LOINC",$J,LRNX,0))
 | 
|---|
| 40 |  . Q:'$G(LR60)
 | 
|---|
| 41 |  . I $L($P(LR60,U,2)) S LR60N=$P(LR60,U,2),LR60=+LR60 D OUT
 | 
|---|
| 42 |  G END
 | 
|---|
| 43 |  Q
 | 
|---|
| 44 | OUT ;
 | 
|---|
| 45 |  I $G(LRAA) S LRNOP=1 D  Q:LRNOP
 | 
|---|
| 46 |  . S LR8=0 F  S LR8=$O(^LAB(60,LR60,8,LR8)) Q:LR8<1!('$G(LRNOP))  D
 | 
|---|
| 47 |  . . I $D(LRAA(+$P($G(^LAB(60,LR60,8,LR8,0)),U,2)))#2 S LRNOP=0
 | 
|---|
| 48 |  S LRSP=0 F  S LRSP=$O(^LAB(60,LR60,1,LRSP)) Q:LRSP<1  D
 | 
|---|
| 49 |  . S LRSP0=$G(^(LRSP,0)),LR61=$G(^LAB(61,LRSP,0)),LRUNIT=$P(LRSP0,U,7)
 | 
|---|
| 50 |  . S LRSPN=$P(LR61,U),LR64061=$P(LR61,U,9),LRLSPN=$P(LR61,U,8)
 | 
|---|
| 51 |  . K LR64N I LR64061 S LR64N=$P($G(^LAB(64.061,LR64061,0)),U,2)
 | 
|---|
| 52 |  . S LRSPN=$S($D(LR64N):LR64N,$L(LRLSPN):LRLSPN,1:LRSPN)
 | 
|---|
| 53 |  . D WRT
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 | WRT ;LR60N [test name] - translate "*" or "?" to spaces
 | 
|---|
| 56 |  W !,$E(LR60_"-"_LRSP_LRFS_$TR(LR60N,"*?"," ")_" "_LRSPN_LRFS_LRUNIT,1,80)
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | ASK ;
 | 
|---|
| 59 |  K DIR S DIR(0)="Y",DIR("A")="Ready to Capture"
 | 
|---|
| 60 |  D ^DIR S:$D(DIRUT) LREND=1
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | MSG ;
 | 
|---|
| 63 |  W @IOF
 | 
|---|
| 64 |  W !,"(NOTE) You should use the Add/Edit Topography Specimen HL7 Code"
 | 
|---|
| 65 |  W !,"[LR LOINC LEDI HL7 CODE] option before you proceed."
 | 
|---|
| 66 |  W !," -----    -----     -----     ----"
 | 
|---|
| 67 |  W !,"This option will create a Local Master Observation File (LMOF)"
 | 
|---|
| 68 |  W !,"from your local LABORATORY TEST (#60) file."
 | 
|---|
| 69 |  W !!,"Only 'CH' subscripted test having a dataname and having a type"
 | 
|---|
| 70 |  W !,"of 'BOTH', 'INPUT' or 'OUTPUT' will be extracted."
 | 
|---|
| 71 |  W !,"The LMOF file will use the vertical bar '|' as the field separator."
 | 
|---|
| 72 |  W !,"The 1st. field is the test internal number and internal number"
 | 
|---|
| 73 |  W !,"of the spec. (i.e. 1-72 will represent test 1 and specimen 72)."
 | 
|---|
| 74 |  W !,"The 2nd field contains |test name<SP>specimen."
 | 
|---|
| 75 |  W !,"The 3rd field is the reporting unit only (if any)."
 | 
|---|
| 76 |  W !!,"You will need to capture this printout into a text file."
 | 
|---|
| 77 |  W !,"Using a text editor, remove extraneous lines from the beginning"
 | 
|---|
| 78 |  W !,"and the end of the file so that only extracted test names remain."
 | 
|---|
| 79 |  W !,"Save the edited file. Use this file in the import function of the"
 | 
|---|
| 80 |  W !,"Regenstrief LOINC Mapping Assistant (RELMA)."
 | 
|---|
| 81 |  W !,"Consult the Regenstrief RELMA documentation for specifics."
 | 
|---|
| 82 |  K DIR S DIR(0)="E" D ^DIR S:$D(DIRUT) LREND=1 Q:$G(LREND)
 | 
|---|
| 83 | SEL ;Select method of extraction
 | 
|---|
| 84 |  K DIR,LRAA
 | 
|---|
| 85 |  S (LRANS,LREND)=0
 | 
|---|
| 86 |  S DIR(0)="SO^1:Individual single test;2:By Accession Area;3:All Test"
 | 
|---|
| 87 |  S DIR("A")="Select extraction criteria"
 | 
|---|
| 88 |  D ^DIR S:$D(DIRUT) LREND=1
 | 
|---|
| 89 |  I Y>0 S LRANS=Y
 | 
|---|
| 90 |  I LRANS=2 D
 | 
|---|
| 91 |  . K DIR
 | 
|---|
| 92 |  . S DIR(0)="PO^68:ENZM",DIR("A")="Select accession area "
 | 
|---|
| 93 |  . S DIR("S")="I $P(^(0),U,17)'=""S"""
 | 
|---|
| 94 |  . F  D ^DIR Q:Y<1  D
 | 
|---|
| 95 |  . . S LRAA=Y
 | 
|---|
| 96 |  . . S LRAA(+LRAA)=LRAA,DIR("A")="Select another accession area "
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | END ;
 | 
|---|
| 99 |  K DIR,DIRUT,LR60,LR60N,LR61,LR64061,LR64N,LR8,LRAA,LRANS,LREND,LRFS,LRLSPN,LRNOP,LRNX,LRSITE,LRSP,LRSP0,LRSPN,LRUNIT,Y
 | 
|---|
| 100 |  Q
 | 
|---|