| 1 | ONCSAPID ;Hines OIFO/SG - COLLABORATIVE STAGING (DEMO) ; 12/7/06 9:33am | 
|---|
| 2 | ;;2.11;ONCOLOGY;**40,47**;Mar 07, 1995;Build 19 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ;***** DEMO ENTRY POINT | 
|---|
| 7 | ; | 
|---|
| 8 | ; [.ONCSAPI]    Reference to the API descriptor (see ^ONCSAPI) | 
|---|
| 9 | ; | 
|---|
| 10 | DEMO(ONCSAPI) ; | 
|---|
| 11 | N DISPLAY,EXIT,I,INPUT,RC,STATUS,STORE | 
|---|
| 12 | W !!?10,"DEMO CLIENT FOR THE COLLABORATIVE STAGING API",! | 
|---|
| 13 | D CLEAR^ONCSAPIE(1) | 
|---|
| 14 | ;--- Check the DLL version | 
|---|
| 15 | S RC=$$CHKVER^ONCSAPIV(.ONCSAPI) | 
|---|
| 16 | D:RC<0 PRTERRS^ONCSAPIE() | 
|---|
| 17 | ; | 
|---|
| 18 | ;--- | 
|---|
| 19 | S EXIT=0 | 
|---|
| 20 | F  D  Q:EXIT | 
|---|
| 21 | . D CLEAR^ONCSAPIE() | 
|---|
| 22 | . ;--- Review/Edit input values | 
|---|
| 23 | . S RC=$$INPUT(.INPUT) | 
|---|
| 24 | . I RC<0  S EXIT=1  Q | 
|---|
| 25 | . ;--- Call the CS API | 
|---|
| 26 | . S RC=$$CALC^ONCSAPI3(.ONCSAPI,.INPUT,.STORE,.DISPLAY,.STATUS) | 
|---|
| 27 | . ;--- Display the output values | 
|---|
| 28 | . W !!,"Output values of the Collaborative Staging API",! | 
|---|
| 29 | . I $D(STORE)>1  S I=""  D  W ! | 
|---|
| 30 | . . F  S I=$O(STORE(I))  Q:I=""  D | 
|---|
| 31 | . . . W !?2,$NA(STORE(I))_"="""_$G(STORE(I))_"""" | 
|---|
| 32 | . . . W ?42,$NA(DISPLAY(I))_"="""_$G(DISPLAY(I))_"""" | 
|---|
| 33 | . I RC  D  D ZW^ONCSAPIU("STATUS") | 
|---|
| 34 | . . W !,"$$CALC^ONCSAPI3="""_RC_"""",! | 
|---|
| 35 | . ;--- Display formatted error messages | 
|---|
| 36 | . D:RC<0 PRTERRS^ONCSAPIE() | 
|---|
| 37 | . ;--- Pause the output | 
|---|
| 38 | . S EXIT=$$PAGE^ONCSAPIU()  W ! | 
|---|
| 39 | ;--- | 
|---|
| 40 | Q | 
|---|
| 41 | ; | 
|---|
| 42 | ;***** USER INPUT FOR THE DEMO ENTRY POINT | 
|---|
| 43 | ; | 
|---|
| 44 | ; .ONCINP       Reference to a local variable for input parameters | 
|---|
| 45 | ; | 
|---|
| 46 | ; Return values: | 
|---|
| 47 | ; | 
|---|
| 48 | ;       -2  Timeout | 
|---|
| 49 | ;       -1  User entered an up-arrow | 
|---|
| 50 | ;        0  Ok | 
|---|
| 51 | ; | 
|---|
| 52 | INPUT(ONCINP) ; | 
|---|
| 53 | ;;HIST     ^8000^4^Histologic Type ICD-O-3 | 
|---|
| 54 | ;;SITE     ^C000^4^Primary Site | 
|---|
| 55 | ;;BEHAV    ^3   ^1^Behavior Code ICD-O-3 | 
|---|
| 56 | ;;GRADE    ^1   ^1^Grade | 
|---|
| 57 | ;;AGE      ^043 ^3^Age at Diagnosis | 
|---|
| 58 | ;;SIZE     ^010 ^3^CS Tumor Size^1 | 
|---|
| 59 | ;;EXT      ^20  ^2^CS Extension^2 | 
|---|
| 60 | ;;EXTEVAL  ^0   ^1^CS Size/Ext Eval^3 | 
|---|
| 61 | ;;NODES    ^11  ^2^CS Lymph Nodes^4 | 
|---|
| 62 | ;;NODESEVAL^0   ^1^CS Reg Nodes Eval^5 | 
|---|
| 63 | ;;LNPOS    ^98  ^2^Regional Nodes Positive^6 | 
|---|
| 64 | ;;LNEXAM   ^00  ^2^Regional Nodes Examined^7 | 
|---|
| 65 | ;;METS     ^00  ^2^CS Mets at DX^8 | 
|---|
| 66 | ;;METSEVAL ^0   ^1^CS Mets Eval^9 | 
|---|
| 67 | ;;SSF1     ^001 ^3^CS Site-Specific Factor 1^10 | 
|---|
| 68 | ;;SSF2     ^000 ^3^CS Site-Specific Factor 2^11 | 
|---|
| 69 | ;;SSF3     ^000 ^3^CS Site-Specific Factor 3^12 | 
|---|
| 70 | ;;SSF4     ^000 ^3^CS Site-Specific Factor 4^13 | 
|---|
| 71 | ;;SSF5     ^000 ^3^CS Site-Specific Factor 5^14 | 
|---|
| 72 | ;;SSF6     ^000 ^3^CS Site-Specific Factor 6^15 | 
|---|
| 73 | ; | 
|---|
| 74 | N DIR,DIRUT,DTOUT,DUOUT,FLDLST,ICOL,IFLD,IIF,IROW,ML,NAME,NFL,NR,ONCBUF,RC,TABLE,TMP,VAL,X,Y | 
|---|
| 75 | W !,"Input values for Collaborative Staging API" | 
|---|
| 76 | S RC=0 | 
|---|
| 77 | ;--- Determine number of fields and load default values | 
|---|
| 78 | F NFL=1:1  S TMP=$P($T(INPUT+NFL),";;",2)  Q:TMP=""  D | 
|---|
| 79 | . S FLDESCR(NFL)=TMP,NAME=$TR($P(TMP,U)," ") | 
|---|
| 80 | . S:'$D(ONCINP(NAME)) ONCINP(NAME)=$TR($P(TMP,U,2)," ") | 
|---|
| 81 | S NFL=NFL-1 | 
|---|
| 82 | ; | 
|---|
| 83 | ;--- Review and/or edit field values | 
|---|
| 84 | F  W !  D  Q:RC | 
|---|
| 85 | . ;--- Display current values | 
|---|
| 86 | . S NR=NFL\2 | 
|---|
| 87 | . F IROW=1:1:NR  W !  D | 
|---|
| 88 | . . F ICOL=1,2   D | 
|---|
| 89 | . . . S IFLD=NR*(ICOL-1)+IROW,X=(ICOL-1)*40 | 
|---|
| 90 | . . . S TMP=$P($T(INPUT+IFLD),";;",2),NAME=$TR($P(TMP,U)," ") | 
|---|
| 91 | . . . W ?(X+2),"["_$J(IFLD,2)_"] "_$P(TMP,U,4) | 
|---|
| 92 | . . . W ?(X+35),$G(ONCINP(NAME)) | 
|---|
| 93 | . ; | 
|---|
| 94 | . ;--- Ask for field(s) to be edited | 
|---|
| 95 | . K DIR | 
|---|
| 96 | . S DIR(0)="LO^1:"_NFL_":0" | 
|---|
| 97 | . S DIR("A")="Select a field" | 
|---|
| 98 | . S DIR("?")="Enter field number(s), '^' to exit, or hit RETURN to call the CS API." | 
|---|
| 99 | . W !  D ^DIR | 
|---|
| 100 | . I $D(DTOUT)  S RC=-2  Q | 
|---|
| 101 | . I $D(DUOUT)  S RC=-1  Q | 
|---|
| 102 | . I '$G(Y)  S RC=1  Q | 
|---|
| 103 | . S FLDLST=Y | 
|---|
| 104 | . ; | 
|---|
| 105 | . F IIF=1:1  S IFLD=$P(FLDLST,",",IIF)  Q:IFLD'>0  D  Q:RC<0 | 
|---|
| 106 | . . ;--- Edit the field value | 
|---|
| 107 | . . S TMP=$P($T(INPUT+IFLD),";;",2) | 
|---|
| 108 | . . S NAME=$TR($P(TMP,U)," "),ML=+$TR($P(TMP,U,3)," ") | 
|---|
| 109 | . . S TABLE=+$TR($P(TMP,U,5)," ") | 
|---|
| 110 | . . K DIR | 
|---|
| 111 | . . S DIR(0)="FO^1:"_ML | 
|---|
| 112 | . . S:TABLE>0 $P(DIR(0),U,3)="D INPUT^ONCSAPI1("_TABLE_","_ML_",,$G(ONCINP(""SITE"")),$G(ONCINP(""HIST"")))" | 
|---|
| 113 | . . S DIR("A")=$P(TMP,U,4) | 
|---|
| 114 | . . S DIR("B")=$G(ONCINP(NAME)) | 
|---|
| 115 | . . S X=$S(ML>1:ML_" characters",1:"1 character") | 
|---|
| 116 | . . S DIR("?")="Enter the field value ("_X_")" | 
|---|
| 117 | . . S:TABLE>0 DIR("??")="^D HELP^ONCSAPI1("_TABLE_",,$G(ONCINP(""SITE"")),$G(ONCINP(""HIST"")))" | 
|---|
| 118 | . . W ! | 
|---|
| 119 | . . S TMP=$$TBLTTL^ONCSAPIT(,$G(ONCINP("SITE")),$G(ONCINP("HIST")),TABLE) | 
|---|
| 120 | . . I TMP'<0  D:$P(TMP,U,3)'="" WW^ONCSAPIU($P(TMP,U,3),75) | 
|---|
| 121 | . . D ^DIR | 
|---|
| 122 | . . I $D(DTOUT)  S RC=-2  Q | 
|---|
| 123 | . . I $D(DUOUT)  S RC=-1  Q | 
|---|
| 124 | . . S ONCINP(NAME)=Y | 
|---|
| 125 | . S:(RC=-1)!(RC=-2) RC=0 | 
|---|
| 126 | ;--- | 
|---|
| 127 | Q $S(RC<0:RC,1:0) | 
|---|