| 1 | GMTSLRSE ; SLC/JER,KER - Selected Lab Test Extract ; 09/21/2001 | 
|---|
| 2 | ;;2.7;Health Summary;**28,36,47,79**;Oct 20, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | ; External References | 
|---|
| 5 | ;    DBIA    67   ^LAB(60 | 
|---|
| 6 | ;    DBIA   524   ^LAB(61 | 
|---|
| 7 | ;    DBIA   525   ^LR( | 
|---|
| 8 | ; | 
|---|
| 9 | XTRCT ; Extract Selected Lab Test | 
|---|
| 10 | ; | 
|---|
| 11 | ; Call with    LRDFN    lab patient | 
|---|
| 12 | ;              GMTS1    begin date | 
|---|
| 13 | ;              GMTS2    end date | 
|---|
| 14 | ;              MAX      occurence limit | 
|---|
| 15 | ;              SEX      "M" or "F" | 
|---|
| 16 | ;              TEST     IFN to ^LAB(60) | 
|---|
| 17 | ;              RWIDTH   optional | 
|---|
| 18 | ; | 
|---|
| 19 | ; Returns      ^TMP("LRS",$J,GMTSI,IDRWDT)= | 
|---|
| 20 | ;              DRWDT^SPEC^TEST^RESULT^FLAG^UNIT^LO^HI | 
|---|
| 21 | ; | 
|---|
| 22 | ; Where        GMTSI=Order (1 to MAX) | 
|---|
| 23 | ;              IDRWDT=9999999-Draw Date/time | 
|---|
| 24 | ;              DRWDT=Draw Date/Time (internal) | 
|---|
| 25 | ;              SPEC=Specimen (int;ext) | 
|---|
| 26 | ;              TEST=Test (int;ext) | 
|---|
| 27 | ;              RESULT=Numeric Result | 
|---|
| 28 | ;              FLAG=Reference flag (H,*H,L,*L) | 
|---|
| 29 | ;              UNIT=Unit of measure (ext) | 
|---|
| 30 | ;              LO=Reference/Therapeutic Lower bound | 
|---|
| 31 | ;              HI=Ref/Ther Upper Bound | 
|---|
| 32 | ; | 
|---|
| 33 | N CNT,AGE,COM,GMI,X K ^TMP("LRS",$J,GMTSI) I $S("BO"'[$P(^LAB(60,TEST,0),U,3):1,1:0) Q | 
|---|
| 34 | D DEM^GMTSU S AGE=GMTSAGE S CNT=0 D CHEM:$P(^LAB(60,TEST,0),U,4)="CH" | 
|---|
| 35 | Q | 
|---|
| 36 | CHEM ; Gets all Chemistry tests w/in time/occurrence constraints | 
|---|
| 37 | N PTR,IDRWDT S PTR=+$P($P(^LAB(60,+TEST,0),U,5),";",2),IDRWDT=GMTS1 | 
|---|
| 38 | F  S IDRWDT=$O(^LR(LRDFN,"CH",IDRWDT)) Q:'IDRWDT!(IDRWDT>GMTS2)!(CNT'<MAX)  I $P(^(IDRWDT,0),U,3),($D(^(PTR))) S CNT=CNT+1 D:CNT'>MAX CHSET | 
|---|
| 39 | Q | 
|---|
| 40 | CHSET ; Sets Chemistry locals for printing | 
|---|
| 41 | N RESULT,FLAG,DRWDT,SITE,SPEC,TNM,DESCR,THER,UNIT,HI,LO,GMIDT,GMTSLRES | 
|---|
| 42 | S GMTSLRES=$$TSTRES^LRRPU(LRDFN,"CH",IDRWDT,PTR) | 
|---|
| 43 | ; S RESULT=$P(^LR(LRDFN,"CH",IDRWDT,PTR),U),FLAG=$P(^(PTR),U,2),DRWDT=9999999-IDRWDT | 
|---|
| 44 | S RESULT=$P(GMTSLRES,U,1),FLAG=$P(GMTSLRES,U,2),DRWDT=9999999-IDRWDT | 
|---|
| 45 | S RESULT=$$RESULT^GMTSLRCE(TEST,RESULT,$G(RWIDTH)) | 
|---|
| 46 | S X=DRWDT D REGDTM4^GMTSU S DRWDT=X K X | 
|---|
| 47 | S SITE=$P(^LR(LRDFN,"CH",IDRWDT,0),U,5),SPEC=SITE_";"_$P(^LAB(61,SITE,0),U) | 
|---|
| 48 | S TNM=TEST_";"_$S($L($P(^LAB(60,TEST,0),U))<21:$P(^(0),U),1:$P(^(.1),U)) | 
|---|
| 49 | ; S DESCR=$S($D(^LAB(60,TEST,1,SITE,0)):^(0),1:""),THER=$S($L($P(DESCR,U,11,12))>1:1,1:0) | 
|---|
| 50 | ; S UNIT=$P(DESCR,U,7),LO=$S(THER:$P(DESCR,U,11),1:$P(DESCR,U,2)),HI=$S(THER:$P(DESCR,U,12),1:$P(DESCR,U,3)) | 
|---|
| 51 | S UNIT=$P(GMTSLRES,U,5),LO=$P(GMTSLRES,U,3),HI=$P(GMTSLRES,U,4) | 
|---|
| 52 | ; S @("LO="_$S($L(LO):LO,1:"""""")),@("HI="_$S($L(HI):HI,1:"""""")) | 
|---|
| 53 | I $D(^TMP("LRS",$J,GMTSI,IDRWDT)) S GMIDT=IDRWDT+.0001 | 
|---|
| 54 | S GMIDT=IDRWDT | 
|---|
| 55 | S ^TMP("LRS",$J,GMTSI,GMIDT)=DRWDT_U_$E(SPEC,1,10)_U_TNM_U_RESULT_U_FLAG_U_UNIT_U_LO_U_HI | 
|---|
| 56 | I $D(^LR(LRDFN,"CH",IDRWDT,1,0)) D | 
|---|
| 57 | . S COM=0 | 
|---|
| 58 | . F GMI=1:1 S COM=$O(^LR(LRDFN,"CH",IDRWDT,1,COM)) Q:+COM'>0  S ^TMP("LRS",$J,"C",GMIDT,GMI)=^LR(LRDFN,"CH",IDRWDT,1,COM,0) | 
|---|
| 59 | Q | 
|---|