ONCGENED ;Hines OIFO/GWB - EDITS API ; 3/7/07 4:21pm
 ;;2.11;ONCOLOGY;**47**;Mar 07,1995;Build 19
 ;
NAACCR D CLEAR^ONCSAPIE(1)
 K ^TMP("ONC",$J)
 K ^TMP("ONC1",$J)
 K ONCEDLST
 N BLANK,NINE,ZERO,ZNINE,X
 S BLANK=" "
 S ZERO=0
 S NINE=9
 S ZNINE="09"
 S EXTRACT=$O(^ONCO(160.16,"B","VACCR EXTRACT V11.1",0))
 S EXT="VACCR"
 S DEVICE=0,OIEN=0,PAGE=1,HDRIEN=12,OUT=0
 S OSP=$O(^ONCO(160.1,"C",DUZ(2),0))
 I OSP="" S OSP=$O(^ONCO(160.1,0))
 S IINPNT=$P($G(^ONCO(160.1,OSP,1)),U,4)
 S DXH=$$GET1^DIQ(160.19,IINPNT,.01,"I")
 S STAT1=DXH
 S PAGE=1
 S IEN=D0
 S ONCDST=$NA(^TMP("ONC",$J))
 S MSGLST=$NA(^TMP("ONC1",$J))
 ;
 ;S RC=$$RBQPREP^ONCSED01(.ONCSAPI,.ONCDST,"DEBUG")
 S RC=$$RBQPREP^ONCSED01(.ONCSAPI,.ONCDST)
 ;S ERRFLG=RC
 I RC<0 D PRTERRS^ONCSAPIE() Q
 ;
 N D0
 D OUTPUT(IEN,EXTRACT,.OUT)
 I $G(EDITS)="NO" D END^ONCSNACR(.ONCDST) Q
 ;
EDITS S RC=$$RBQEXEC^ONCSED01(.ONCSAPI,.ONCDST,MSGLST)
 S ERRFLG=RC
 I RC<0 D PRTERRS^ONCSAPIE()
 I RC>0 D  Q:RC<0
 . N %ZIS,IOP,POP
 . S %ZIS("B")="HOME"
 . D ^%ZIS  Q:$G(POP)  U IO
 . S RC=$$REPORT^ONCSED01(.ONCSAPI,MSGLST,"MT")
 . D ^%ZISC
 Q
 ;
OUTPUT(IEN,EXTRACT,OUT) ;
 N POS
 S ACD160=$P(^ONCO(165.5,IEN,0),U,2)
 S POS=0
 F  S POS=$O(^ONCO(160.16,EXTRACT,"FIELD","B",POS)) Q:POS<1  D  Q:OUT
 .N NODE
 .S NODE=0
 .F  S NODE=$O(^ONCO(160.16,EXTRACT,"FIELD","B",POS,NODE)) Q:NODE<1  D  Q:OUT
 ..N STRING,DEFAULT,FILL,LEN
 ..Q:$G(^ONCO(160.16,EXTRACT,"FIELD",NODE,0))=""
 ..S STRING=$TR(^ONCO(160.16,EXTRACT,"FIELD",NODE,1),"~","^")
 ..S DEFAULT=^ONCO(160.16,EXTRACT,"FIELD",NODE,2)
 ..S FILL=$P(^ONCO(160.16,EXTRACT,"FIELD",NODE,3),U,1)
 ..S LEN=$P(^ONCO(160.16,EXTRACT,"FIELD",NODE,0),U,2)
 ..D DATA(IEN,ACD160,STRING,DEFAULT,FILL,LEN,NODE,POS)
 Q
 ;
DATA(IEN,ACD160,STRING,DEFAULT,FILL,LEN,NODE,POS) ;Data print
 N ACDANS
 X STRING
 I ACDANS="" D  Q
 .N X,I
 .S X=""
 .I DEFAULT=8 D  Q
 ..F I=1:1:LEN D WRITE^ONCSNACR(.ONCDST,DEFAULT)
 .I @DEFAULT="09" D WRITE^ONCSNACR(.ONCDST,@DEFAULT) Q
 .F I=1:1:LEN D WRITE^ONCSNACR(.ONCDST,@DEFAULT)
 I $L(ACDANS)=LEN D WRITE^ONCSNACR(.ONCDST,ACDANS) Q
 I $L(ACDANS)>LEN D WRITE^ONCSNACR(.ONCDST,$E(ACDANS,1,LEN)) Q
 E  D  Q
 .N JUST,STUFF,I,REM,CAL
 .S JUST=$P(FILL,","),STUFF=$P(FILL,",",2)
 .S REM=LEN-$L(ACDANS)
 .I JUST="R" D WRITE^ONCSNACR(.ONCDST,ACDANS)
 .F I=1:1:REM D WRITE^ONCSNACR(.ONCDST,@STUFF)
 .I JUST="L" D WRITE^ONCSNACR(.ONCDST,ACDANS)
 Q
 ;
CHKSUM ;Compute checksum
 Q:'$D(ONCDST)
 Q:$P($G(^ONCO(165.5,D0,7)),U,2)'=3
 W !," Computing checksum value for this abstract..."
 S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
 S $P(^ONCO(165.5,D0,"EDITS"),U,1)=CHECKSUM
 Q
 ;
CHANGE ;Check for change to ONCOLOGY PRIMARY (165.5) record
 S EDITS="NO" D NAACCR K EDITS
 S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
 Q:$P($G(^ONCO(165.5,ONCOD0P,"EDITS")),U,1)=""
 I CHECKSUM'=$P($G(^ONCO(165.5,ONCOD0P,"EDITS")),U,1) D
 .W !
 .W !," You have made a change to a 'Completed' abstract."
 .W !," This abstract needs to be re-run through the EDITS API."
 .W !!," Calling EDITS API..."
 .D ^ONCGENED
 .I ERRFLG'=0 D  Q
 ..W !!," EDITS errors were encountered."
 ..W !!," The ABSTRACT STATUS has been changed to 0 (Incomplete)."
 ..S DIE="^ONCO(165.5,"
 ..S DA=ONCOD0P
 ..S DR="91///0;197///@;198///^S X=DT;199///^S X=DUZ"
 ..D ^DIE
 ..W !
 ..K DIR S DIR(0)="YA"
 ..S DIR("A")=" Do you wish to return to the Primary Menu Options? "
 ..S DIR("B")="Yes" D ^DIR K DIR
 ..I Y=1 S Y="@0"
 .W !!," No EDITS errors or warnings.  ABSTRACT STATUS = 3 (Complete)."
 .S DIE="^ONCO(165.5,"
 .S DA=ONCOD0P
 .S DR="197///^S X=CHECKSUM;198///^S X=DT;199///^S X=DUZ"
 .D ^DIE
 .S EDITS="NO" D NAACCR K EDITS
 .S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
 .S $P(^ONCO(165.5,D0,"EDITS"),U,1)=CHECKSUM
 .W !
 .K DIR S DIR(0)="E" D ^DIR
 Q
