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

ONCSAPI1.m

Go to the documentation of this file.
  1. ONCSAPI1 ;Hines OIFO/SG - COLLABORATIVE STAGING (DD TOOLS) ;06/23/10
  1. ;;2.2;ONCOLOGY;**1**;Jul 31, 2013;Build 8
  1. ;
  1. Q
  1. ;
  1. ;***** DISPLAYS THE ERRORS
  1. ERRORS(MODE,ERRCODE) ;
  1. S ERRCODE=+$G(ERRCODE)
  1. ;--- Display the explanations (for the user)
  1. I MODE="HLP" D:(ERRCODE=-10)
  1. . D ERROR^ONCSAPIE(-19,"Please try later.")
  1. E I MODE="INP" D:(ERRCODE'=-2)
  1. . D ERROR^ONCSAPIE(-20,"Please inform IRM about the problem.")
  1. E I MODE="CDN" D:(ERRCODE=-10)
  1. . D ERROR^ONCSAPIE(-21,"Please try later.")
  1. ;--- Display the error stack (for the IRM)
  1. D PRTERRS^ONCSAPIE()
  1. Q
  1. ;
  1. ;***** DISPLAYS THE HELP FOR A FIELD
  1. ;
  1. ; TABLE Table number (see the ^ONCSAPI routine)
  1. ;
  1. ; [IEN] IEN of the record in the file #165.5
  1. ;
  1. ; [SITE] Primary site
  1. ; [HIST] Histology
  1. ;
  1. ; Either the IEN or both the SITE and HIST must be provided.
  1. ;
  1. HELP(TABLE,IEN,SITE,HIST) ;
  1. N DISCRIM,EXIT,I,MNL,NODE,NOTE,ONCMSG,ONCSAPI,RC,ROW,SHNS,TBLIEN,TMP
  1. S SHNS=$S($G(X)="":1,1:X="??")
  1. D CLEAR^ONCSAPIE(1)
  1. D:$G(IEN)>0
  1. . S SITE=$TR($$GET1^DIQ(165.5,IEN,20.1,,,"ONCMSG"),".")
  1. . S HIST=$E($$HIST^ONCFUNC(IEN),1,4)
  1. . S DISCRIM=$$GET1^DIQ(165.5,IEN,240)
  1. I ($G(SITE)="")&($G(HIST)="") D Q
  1. . S TMP=""
  1. . S:$D(IEN)#10 TMP=TMP_", IEN="_IEN
  1. . S:$D(SITE)#10 TMP=TMP_", SITE="_SITE
  1. . S:$D(HIST)#10 TMP=TMP_", HIST="_HIST
  1. . S TMP=$P(TMP,", ",2,999)
  1. . D PRTERRS^ONCSAPIE($$ERROR^ONCSAPIE(-16,TMP,"IEN, SITE, HIST"))
  1. ;---
  1. L +^XTMP("ONCSAPI","TABLES","JOB",$J):5 E D Q
  1. . D ERROR^ONCSAPIE(-15,,"access control node")
  1. . D ERRORS("HLP")
  1. ;
  1. S RC=0 D
  1. . ;--- Get the table IEN
  1. . S TBLIEN=$$GETCSTBL^ONCSAPIT(.ONCSAPI,SITE,HIST,TABLE)
  1. . I TBLIEN<0 S RC=TBLIEN Q
  1. . ;--- Initialize constants and variables
  1. . S NODE=$NA(^XTMP("ONCSAPI","TABLES",TBLIEN))
  1. . S MNL=$S($G(IOSL)>3:IOSL-3,1:20),$Y=0
  1. . ;--- Display the title and optional subtitle
  1. . S TMP=$G(@NODE@(0))
  1. . D WW^ONCSAPIU($P(TMP,U,5))
  1. . D:$P(TMP,U,6)'="" WW^ONCSAPIU($P(TMP,U,6))
  1. . ;--- Display top notes
  1. . I SHNS D I $Y'<MNL S EXIT=$$PAGE^ONCSAPIU() Q:EXIT
  1. . . S (EXIT,NOTE)=0
  1. . . F S NOTE=$O(@NODE@("TN",NOTE)) Q:NOTE'>0 D Q:EXIT
  1. . . . D EN^DDIOL(" ")
  1. . . . I $Y'<MNL S EXIT=$$PAGE^ONCSAPIU() Q:EXIT
  1. . . . S I=0
  1. . . . F S I=$O(@NODE@("TN",NOTE,I)) Q:I'>0 D Q:EXIT
  1. . . . . D EN^DDIOL(@NODE@("TN",NOTE,I))
  1. . . . . S:$Y'<MNL EXIT=$$PAGE^ONCSAPIU()
  1. . ;--- Display the table
  1. . D EN^DDIOL(" ")
  1. . S (EXIT,ROW)=0
  1. . F S ROW=$O(@NODE@(ROW)) Q:ROW'>0 D Q:EXIT
  1. . . D EN^DDIOL($J($P(@NODE@(ROW,1),U),7))
  1. . . D:$D(@NODE@(ROW,3,1)) EN^DDIOL(@NODE@(ROW,3,1),,"?9")
  1. . . I $Y'<MNL S EXIT=$$PAGE^ONCSAPIU() Q:EXIT
  1. . . S I=1
  1. . . F S I=$O(@NODE@(ROW,3,I)) Q:I="" D Q:EXIT
  1. . . . D EN^DDIOL(@NODE@(ROW,3,I),,"!?9")
  1. . . . S:$Y'<MNL EXIT=$$PAGE^ONCSAPIU()
  1. . ;--- Display footnotes
  1. . I SHNS D I $Y'<MNL S EXIT=$$PAGE^ONCSAPIU() Q:EXIT
  1. . . S (EXIT,NOTE)=0
  1. . . F S NOTE=$O(@NODE@("FN",NOTE)) Q:NOTE'>0 D Q:EXIT
  1. . . . D EN^DDIOL(" ")
  1. . . . I $Y'<MNL S EXIT=$$PAGE^ONCSAPIU() Q:EXIT
  1. . . . S I=0
  1. . . . F S I=$O(@NODE@("FN",NOTE,I)) Q:I'>0 D Q:EXIT
  1. . . . . D EN^DDIOL(@NODE@("FN",NOTE,I))
  1. . . . . S:$Y'<MNL EXIT=$$PAGE^ONCSAPIU()
  1. . . D EN^DDIOL(" ")
  1. ;
  1. L -^XTMP("ONCSAPI","TABLES","JOB",$J)
  1. D:RC<0 ERRORS("HLP",RC)
  1. Q
  1. ;
  1. ;***** VALIDATES AND TRANSFORMS THE INPUT (CODES)
  1. ;
  1. ; X Input value should be assigned to the X local
  1. ; variable before calling this procedure. The
  1. ; variable is KILL'ed if it has an invalid value.
  1. ;
  1. ; TABLE Table number (see the ^ONCSAPI routine)
  1. ;
  1. ; CODELEN Valid length of the code
  1. ;
  1. ; [IEN] IEN of the record in the file #165.5
  1. ;
  1. ; [SITE] Primary site
  1. ; [HIST] Histology
  1. ;
  1. ; [SILENT] Silent mode flags (can be combined):
  1. ; D Do not display code description
  1. ; E Do not display error messages
  1. ;
  1. ; Either the IEN or both the SITE and HIST must be provided.
  1. ;
  1. INPUT(TABLE,CODELEN,IEN,SITE,HIST,SILENT) ;
  1. N CODE,ONCBUF,ONCSAPI,RC,TBLIEN,TMP
  1. S X=$$TRIM^XLFSTR($G(X))
  1. I X'?@(CODELEN_"N") K X Q
  1. S:'($D(SILENT)#10) SILENT=$S($G(DIUTIL)="VERIFY FIELDS":"DE",1:"")
  1. D CLEAR^ONCSAPIE(1)
  1. ;---
  1. D:$G(IEN)>0
  1. . S SITE=$TR($$GET1^DIQ(165.5,IEN,20.1,,,"ONCMSG"),".")
  1. . S HIST=$E($$HIST^ONCFUNC(IEN),1,4)
  1. . S DISCRIM=$$GET1^DIQ(165.5,IEN,240)
  1. I ($G(SITE)="")&($G(HIST)="") D K X Q
  1. . D PRTERRS^ONCSAPIE($$ERROR^ONCSAPIE(-16,,"IEN, SITE, HIST"))
  1. ;---
  1. L +^XTMP("ONCSAPI","TABLES","JOB",$J):5 E D K X Q
  1. . D ERROR^ONCSAPIE(-15,,"access control node")
  1. . D ERRORS("INP")
  1. ;
  1. S RC=0 D
  1. . ;--- Get the table IEN
  1. . S TBLIEN=$$GETCSTBL^ONCSAPIT(.ONCSAPI,SITE,HIST,TABLE)
  1. . I TBLIEN<0 S RC=TBLIEN Q
  1. . ;--- Check the single code
  1. . S CODE=+$G(X)
  1. . Q:$D(^XTMP("ONCSAPI","TABLES",TBLIEN,"C",CODE))
  1. . ;--- Check the interval
  1. . S TMP=$O(^XTMP("ONCSAPI","TABLES",TBLIEN,"C",CODE),-1)
  1. . I TMP'="" D Q:CODE'>$P(TMP,U,2)
  1. . . S TMP=$G(^XTMP("ONCSAPI","TABLES",TBLIEN,"C",TMP))
  1. . ;--- Invalid value
  1. . K X
  1. ;
  1. I $D(X)&(RC'<0) D:SILENT'["D"
  1. . Q:$$CODEDESC^ONCSAPIT(.ONCSAPI,SITE,HIST,TABLE,X,"ONCBUF")<0
  1. . I ONCBUF(1)["OBSOLETE" K X W " OBSOLETE code" Q
  1. . S TMP=""
  1. . F S TMP=$O(ONCBUF(TMP)) Q:TMP="" S ONCBUF(TMP,"F")="!?2"
  1. . D EN^DDIOL(.ONCBUF),EN^DDIOL(" ")
  1. ;
  1. L -^XTMP("ONCSAPI","TABLES","JOB",$J)
  1. I RC<0 D:SILENT'["E" ERRORS("INP",RC) K X
  1. Q
  1. ;
  1. CLEANUP ;Cleanup
  1. K DIUTIL