Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ORWLRRG

ORWLRRG.m

Go to the documentation of this file.
  1. ORWLRRG ;SLC/STAFF- lab worksheet data ;4/9/10 12:52
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**280**;Dec 17, 1997;Build 85
  1. ;
  1. GRID(ROOT,DFN,START,END,SPEC,TESTS) ; from ORWLRR
  1. D GRID^LR7OGG(.ROOT,DFN,START,END,SPEC,.TESTS) Q ; **** remove when correct
  1. S ROOT=$NA(^TMP("ORGRID",$J))
  1. K ^TMP("ORGRID",$J),^TMP("ORWORK",$J)
  1. D GETTEST(DFN,START,END,SPEC,.TESTS)
  1. D GETDATA(DFN,START,END)
  1. D NTESTS^ORWLRRG1
  1. D NRESULTS^ORWLRRG1
  1. D SPECREF^ORWLRRG1
  1. D COMBINE^ORWLRRG1
  1. K ^TMP("ORWORK",$J)
  1. Q
  1. ;
  1. GETTEST(DFN,START,END,SPEC,ORTESTS) ;
  1. N FIRST,LAST,XX K XX
  1. D GRID^LR7OGG(.XX,DFN,START,START,SPEC,.ORTESTS) ; just get test info
  1. M ^TMP("ORWORK",$J,"TEST")=@XX
  1. S FIRST=$O(^TMP("ORWORK",$J,"TEST",0))
  1. S LAST=$O(^TMP("ORWORK",$J,"TEST",""),-1)
  1. I $L(FIRST) K ^TMP("ORWORK",$J,"TEST",FIRST)
  1. I $L(LAST) K ^TMP("ORWORK",$J,"TEST",LAST)
  1. K @XX,XX
  1. ;
  1. GETDATA(DFN,START,END) ;
  1. N COL,CNT,NUM,REFCHECK,RESULTS,RNUM,SPEC,TEST,TESTINFO,TESTSPEC,TYPEITEM,XX
  1. K TESTSPEC,XX
  1. S CNT=0
  1. S NUM=1
  1. F S NUM=$O(^TMP("ORWORK",$J,"TEST",NUM)) Q:NUM<1 D
  1. . S TESTINFO=^TMP("ORWORK",$J,"TEST",NUM)
  1. . S TYPEITEM="63^"_$P(TESTINFO,U,2)
  1. . D ITEMDATA^ORWGAPI(.XX,TYPEITEM,START,DFN,END)
  1. . S RNUM=0
  1. . F S RNUM=$O(XX(RNUM)) Q:RNUM<1 D
  1. .. S RESULTS=XX(RNUM)
  1. .. S REFCHECK=$P(RESULTS,U,2)_U_$P(RESULTS,U,7)_U_$P(RESULTS,U,10,11)
  1. .. S REFCHECK=$$UP^XLFSTR(REFCHECK)
  1. .. S CNT=CNT+1
  1. .. S ^TMP("ORWORK",$J,"RESULTS",CNT)=RESULTS
  1. .. S ^TMP("ORWORK",$J,"REFCHECK",REFCHECK)=""
  1. .. S COL=$P(RESULTS,U,3)
  1. .. I COL S ^TMP("ORWORK",$J,"COL",COL)=""
  1. .. S TEST=$P(RESULTS,U,2),SPEC=$P(RESULTS,U,7)
  1. .. I TEST,SPEC S TESTSPEC(TEST,SPEC)=$P(RESULTS,U,8)
  1. D REREF(DFN,.TESTSPEC)
  1. D COLLECT(DFN,START,END)
  1. K XX
  1. Q
  1. ;
  1. REREF(DFN,TESTSPEC) ;
  1. N AGE,DATA,DOB,HIGH,LOW,NUM,SEX,SPEC,SREF,SUB,TEST
  1. K DATA
  1. D DEMOG(.DFN,.SEX,.DOB)
  1. S AGE=$$FMDIFF^XLFDT(DT,DOB)\1
  1. D TESTSPEC^ORWGAPIC(.DATA)
  1. S NUM=0
  1. F S NUM=$O(DATA(NUM)) Q:NUM<1 D
  1. . S SREF=DATA(NUM)
  1. . S TEST=$P(SREF,U,1),SPEC=$P(SREF,U,2)
  1. . I TEST,SPEC,$L($G(TESTSPEC(TEST,SPEC))) D
  1. .. S LOW=$P(SREF,U,3) I $E(LOW,1,2)="$S" S @("LOW="_LOW)
  1. .. S HIGH=$P(SREF,U,4) I $E(HIGH,1,2)="$S" S @("HIGH="_HIGH)
  1. .. S SREF=$$UP^XLFSTR($P(SREF,U,1,2)_U_LOW_"!"_HIGH_U_$P(SREF,U,8))
  1. .. S SUB=TEST_U_SPEC_U
  1. .. S ^TMP("ORWORK",$J,"TESTSPEC",SUB)=SREF
  1. .. S ^TMP("ORWORK",$J,"SPECNAME",SPEC)=TESTSPEC(TEST,SPEC)
  1. .. I '$D(^TMP("ORWORK",$J,"REFCHECK",SREF)) S ^(SREF)=""
  1. .. K ^TMP("ORWORK",$J,"REFCHECK",SUB)
  1. K DATA
  1. Q
  1. ;
  1. DEMOG(DFN,SEX,DOB) ;
  1. N INFO
  1. D DEMOG^ORWPT16(.INFO,DFN)
  1. S SEX=$P(INFO,U,2),DOB=$P(INFO,U,3)
  1. Q
  1. ;
  1. COLLECT(DFN,START,END) ;
  1. N COL,COLCNT,COM,COMMENT,CNT,ERR,RESULTS
  1. K COM,RESULTS
  1. S COLCNT=0
  1. S CNT=0
  1. K RESULTS
  1. S COL=START
  1. F S COL=$O(^TMP("ORWORK",$J,"COL",COL),-1) Q:COL="" D Q:COL<END
  1. . S COLCNT=COLCNT+1
  1. . S ^TMP("ORWORK",$J,"COL",COL)=COLCNT
  1. . D SPEC^LRPXAPI(.RESULTS,DFN,COL,"S",.ERR)
  1. . I $L($G(RESULTS("S"))) D
  1. .. S COMMENT=""
  1. .. I $$COMMENT^LRPXAPI($$LRDFN^LRPXAPIU(DFN),$$LRIDT^LRPXAPIU(COL)) S COMMENT="**"
  1. .. S CNT=CNT+1
  1. .. S ^TMP("ORWORK",$J,"SPEC",CNT)=COMMENT_U_RESULTS("S")
  1. .. S ^TMP("ORWORK",$J,"SPECNUM",$P(RESULTS("S"),U))=CNT
  1. .. S COM(COL)=""
  1. . K RESULTS
  1. S ^TMP("ORWORK",$J,"COL",0)=COLCNT
  1. D NCOL
  1. D COMMENT(DFN,START,END,.COM)
  1. K COM,RESULTS
  1. Q
  1. ;
  1. NCOL ;
  1. N CNT,COL,COMMENT,INEXACT,INFO,NUM,SNUM,SPEC,SPECNAME
  1. S CNT=0
  1. S NUM=0
  1. F S NUM=$O(^TMP("ORWORK",$J,"SPEC",NUM)) Q:NUM<1 D
  1. . S INFO=^TMP("ORWORK",$J,"SPEC",NUM)
  1. . S COL=$P(INFO,U,2)
  1. . S SNUM=$G(^TMP("ORWORK",$J,"COL",COL)) I SNUM D
  1. .. S COMMENT=$P(INFO,U,1),INEXACT=$P(INFO,U,3),SPEC=$P(INFO,U,6)
  1. .. S SPECNAME=$G(^TMP("ORWORK",$J,"SPECNAME",SPEC))
  1. .. I INEXACT=1 S INEXACT=COL\1
  1. .. E S INEXACT=COL
  1. .. S ^TMP("ORWORK",$J,"NCOL",NUM)=SNUM_U_COL_U_SPEC_U_SPECNAME_U_COMMENT_U_INEXACT
  1. .. S CNT=CNT+1
  1. S ^TMP("ORWORK",$J,"NCOL",0)=CNT
  1. Q
  1. ;
  1. COMMENT(DFN,START,END,COM) ;
  1. N COL,COLCNT,COMMENT,CNT,ERR,RESULTS
  1. K RESULTS
  1. S CNT=0
  1. S COL=START
  1. F S COL=$O(COM(COL),-1) Q:COL="" D Q:COL<END
  1. . D SPEC^LRPXAPI(.RESULTS,DFN,COL,"C",.ERR)
  1. . I $L($O(RESULTS("C",0))) D
  1. .. S CNT=CNT+1
  1. .. S ^TMP("ORWORK",$J,"COMMENTS",CNT)=$P($$FMTE^XLFDT(COL),":",1,2)_" ** Comments:"
  1. .. S NUM=0
  1. .. F S NUM=$O(RESULTS("C",NUM)) Q:NUM<1 D
  1. ... S CNT=CNT+1
  1. ... S ^TMP("ORWORK",$J,"COMMENTS",CNT)=RESULTS("C",NUM)
  1. .. S CNT=CNT+1
  1. .. S ^TMP("ORWORK",$J,"COMMENTS",CNT)=""
  1. . K RESULTS
  1. S ^TMP("ORWORK",$J,"COMMENTS",0)=CNT
  1. K RESULTS
  1. Q
  1. ;