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

ONCGENED.m

Go to the documentation of this file.
  1. ONCGENED ;HINES OIFO/GWB - EDITS API ;10/19/11
  1. ;;2.2;ONCOLOGY;**1,4,6,10,13,16,17,19,20**;Jul 31, 2013;Build 5
  1. ;P10 V18 NAACCR / P16 WRONG EXTVER variable
  1. ;P17 V22 metafile, P20 V23 metafile
  1. ;P19 Edits of XML DATA to DC Cloud Web Service
  1. NAACCR D CLEAR^ONCSAPIE(1)
  1. K ^TMP("ONC",$J)
  1. K ^TMP("ONC1",$J)
  1. N BLANK,DEVICE,DXH,EXT,IINPNT,MSGLST,NINE,OIEN,ONCEDLST,OSP,ACD160
  1. N PAGE,PAGEX,STAT1,ZERO,ZNINE,ONCCSID,ONCCSTP,ONCREID,ONCDTTIM
  1. S ABSTAT=$$GET1^DIQ(165.5,D0,91,"I")
  1. S:(ABSTAT=3)&($$GET1^DIQ(165.5,D0,282,"I")="N") $P(^ONCO(165.5,D0,"EDITS"),U,3)="U"
  1. S:($$GET1^DIQ(165.5,D0,282,"I")="") $P(^ONCO(165.5,D0,"EDITS"),U,3)="N"
  1. S ACD160=$$GET1^DIQ(165.5,D0,.02,"I")
  1. D PID^ONCOCOP S ONCCSID=X
  1. ;S ONCREID=$$ICN^ONCACDU2(ACD160)
  1. S ONCREID=D0
  1. S ONCCSTP=$$GET1^DIQ(165.5,D0,282,"I")
  1. S BLANK=" "
  1. S ZERO=0
  1. S NINE=9
  1. S ZNINE="09"
  1. S EXTRACT=$O(^ONCO(160.16,"B","VACCR EXTRACT V23.0",0))
  1. S EXT="VACCR"
  1. S EXTVER=$G(^ONCO(160.16,EXTRACT,"FIELD",7,4))
  1. S DEVICE=0,OIEN=0,PAGE=1,OUT=0
  1. S OSP=$O(^ONCO(160.1,"C",DUZ(2),0))
  1. I OSP="" S OSP=$O(^ONCO(160.1,0))
  1. S IINPNT=$P($G(^ONCO(160.1,OSP,1)),U,4)
  1. S DXH=$$GET1^DIQ(160.19,IINPNT,.01,"I")
  1. S STAT1=DXH
  1. S PAGE=1
  1. S IEN=D0
  1. S ONCDST=$NA(^TMP("ONC",$J))
  1. S MSGLST=$NA(^TMP("ONC1",$J))
  1. ;P19
  1. D XMLHDR^ONCSED01 ;build XML request header
  1. D XMLEDIT^ONCSED01 ;build XML request message body
  1. K ^TMP("ONCSED01R",$J) ;clear the response ^TMP global
  1. S ONCEXEC="P" D T3^ONCWEB1 ;send request to cloud server
  1. S ERRFLG=0 D PARSE^ONCWEBP1 ;new code parse rspns from cloud server
  1. I ERRFLG=2 W !,"XML/server problem" Q ;error in server call
  1. I ERRFLG=1 D DISPLAY^ONCWEBP1 Q ;display EDITs errors from server
  1. I ERRFLG=0 Q ;case complete
  1. ;
  1. ;S RC=$$PARSE^ONCSED02(.ONCSAPI,ONC8RDAT,ONC8MSG) ;this is part of P19 testing
  1. ;S RC=$$RBQPREP^ONCSED01(.ONCSAPI,.ONCDST) ;comment for testing
  1. ;S RC=$$RBQPREP^ONCSED01(.ONCSAPI,.ONCDST,"DEBUG") ;comment for cloud server
  1. ;S ERRFLG=RC ; comment out for Patch 19
  1. ;I RC<0 D PRTERRS^ONCSAPIE() Q ; comment out for Patch 19
  1. ;
  1. N D0
  1. D OUTPUT(IEN,EXTRACT,.OUT)
  1. I $G(EDITS)="NO" D END^ONCSNACR(.ONCDST) Q
  1. ;
  1. EDITS S RC=$$RBQEXEC^ONCSED01(.ONCSAPI,.ONCDST,MSGLST)
  1. S ERRFLG=RC
  1. I RC<0 D PRTERRS^ONCSAPIE()
  1. I RC>0 D Q:RC<0
  1. . N %ZIS,IOP,POP
  1. . S %ZIS("B")="HOME"
  1. . D ^%ZIS Q:$G(POP) U IO
  1. . S RC=$$REPORT^ONCSED01(.ONCSAPI,MSGLST,"MT")
  1. . D ^%ZISC
  1. Q
  1. ;
  1. OUTPUT(IEN,EXTRACT,OUT) ;
  1. N POS
  1. S ACD160=$P(^ONCO(165.5,IEN,0),U,2)
  1. S POS=0
  1. F S POS=$O(^ONCO(160.16,EXTRACT,"FIELD","B",POS)) Q:POS<1 D Q:OUT
  1. .N NODE
  1. .S NODE=0
  1. .F S NODE=$O(^ONCO(160.16,EXTRACT,"FIELD","B",POS,NODE)) Q:NODE<1 D Q:OUT
  1. ..N STRING,DEFAULT,FILL,LEN
  1. ..Q:$G(^ONCO(160.16,EXTRACT,"FIELD",NODE,0))=""
  1. ..S STRING=$TR(^ONCO(160.16,EXTRACT,"FIELD",NODE,1),"~","^")
  1. ..S DEFAULT=^ONCO(160.16,EXTRACT,"FIELD",NODE,2)
  1. ..S FILL=$P(^ONCO(160.16,EXTRACT,"FIELD",NODE,3),U,1)
  1. ..S LEN=$P(^ONCO(160.16,EXTRACT,"FIELD",NODE,0),U,2)
  1. ..D DATA(IEN,ACD160,STRING,DEFAULT,FILL,LEN,NODE,POS)
  1. Q
  1. ;
  1. DATA(IEN,ACD160,STRING,DEFAULT,FILL,LEN,NODE,POS) ;Data print
  1. N ACDANS
  1. S:'$D(ONCPHI) ONCPHI=0 ;P2.2*4
  1. X STRING
  1. I ACDANS="" D Q
  1. .N X,I
  1. .S X=""
  1. .I DEFAULT=8 D Q
  1. ..F I=1:1:LEN D WRITE^ONCSNACR(.ONCDST,DEFAULT)
  1. .I @DEFAULT="09" D WRITE^ONCSNACR(.ONCDST,@DEFAULT) Q
  1. .F I=1:1:LEN D WRITE^ONCSNACR(.ONCDST,@DEFAULT)
  1. I $L(ACDANS)=LEN D WRITE^ONCSNACR(.ONCDST,ACDANS) Q
  1. I $L(ACDANS)>LEN D WRITE^ONCSNACR(.ONCDST,$E(ACDANS,1,LEN)) Q
  1. E D Q
  1. .N JUST,STUFF,I,REM,CAL
  1. .S JUST=$P(FILL,","),STUFF=$P(FILL,",",2)
  1. .S REM=LEN-$L(ACDANS)
  1. .I JUST="R" D WRITE^ONCSNACR(.ONCDST,ACDANS)
  1. .F I=1:1:REM D WRITE^ONCSNACR(.ONCDST,@STUFF)
  1. .I JUST="L" D WRITE^ONCSNACR(.ONCDST,ACDANS)
  1. Q
  1. ;
  1. CHKSUM ;Compute checksum
  1. N CHECKSUM
  1. Q:'$D(ONCDST)
  1. Q:$P($G(^ONCO(165.5,D0,7)),U,2)'=3
  1. W !," Computing checksum value for this abstract..."
  1. S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
  1. S $P(^ONCO(165.5,D0,"EDITS"),U,1)=CHECKSUM
  1. S $P(^ONCO(165.5,D0,"EDITS"),U,2)=EXTVER
  1. Q
  1. ;
  1. CHANGE ;Check for change to ONCOLOGY PRIMARY (165.5) record
  1. ;first check if there are missing required fields.
  1. ;if there are and DTDX>3031231, set abstract status to incomplete - P54
  1. N ONCFILE,DTDX,PRM
  1. S ONCFILE=165.5,PRM=ONCOD0P
  1. S DTDX=$P(^ONCO(165.5,PRM,0),U,16)
  1. D F1655^ONCOEDC1
  1. I $D(LIST),(DTDX>3031231),ABSTAT=3 D Q
  1. .S ONCTYP="A" D PRINT^ONCOEDC
  1. .S DIE="^ONCO(165.5,"
  1. .S DA=ONCOD0P
  1. .S DR="91///^S X=0" D ^DIE
  1. .W !!,"ABSTRACT STATUS changed to 0 (Incomplete).",!
  1. .K DIR S DIR(0)="E" D ^DIR
  1. ;
  1. N ERRFLG
  1. S EDITS="NO" D NAACCR K EDITS
  1. S:'$D(CHECKSUM) CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
  1. Q:$P($G(^ONCO(165.5,ONCOD0P,"EDITS")),U,1)=""
  1. I (ABSTAT=3),(CHECKSUM'=$P($G(^ONCO(165.5,ONCOD0P,"EDITS")),U,1)) D
  1. .W !
  1. .W !," You have made a change to a 'Complete' abstract."
  1. .W !," This abstract needs to be re-run through the EDITS API."
  1. .W !!," Calling EDITS API..."
  1. .S $P(^ONCO(165.5,ONCOD0P,"EDITS"),U,3)="U"
  1. .S DIE="^ONCO(165.5,"
  1. .S DA=ONCOD0P
  1. .S DR="198///^S X=DT"
  1. .D ^DIE
  1. .D ^ONCGENED
  1. .I ERRFLG'=0 D Q
  1. ..W !!," EDITS errors were encountered."
  1. ..W !!," The ABSTRACT STATUS has been changed to 0 (Incomplete)."
  1. ..S DIE="^ONCO(165.5,"
  1. ..S DA=ONCOD0P
  1. ..S DR="91///0;197///@;199////^S X=DUZ"
  1. ..D ^DIE
  1. ..W !
  1. ..Q:$G(EAFLAG)="YES"
  1. ..K DIR S DIR(0)="YA"
  1. ..S DIR("A")=" Do you wish to return to the Primary Menu Options? "
  1. ..S DIR("B")="Yes" D ^DIR K DIR
  1. ..I Y=1 S Y="@0"
  1. .W !!," No EDITS errors or warnings. ABSTRACT STATUS = 3 (Complete)."
  1. .S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
  1. .S DIE="^ONCO(165.5,"
  1. .S DA=ONCOD0P
  1. .S DR="197///^S X=CHECKSUM;197.1///^S X=EXTVER;199////^S X=DUZ"
  1. .D ^DIE
  1. .;S EDITS="NO" D NAACCR K EDITS
  1. .;S CHECKSUM=$$CRC32^ONCSNACR(.ONCDST)
  1. .;S $P(^ONCO(165.5,D0,"EDITS"),U,1)=CHECKSUM
  1. .;S $P(^ONCO(165.5,D0,"EDITS"),U,2)=EXTVER
  1. .W !
  1. .K DIR S DIR(0)="E" D ^DIR
  1. K DA,DIE,DR,RC
  1. Q
  1. ;
  1. CLEANUP ;Cleanup
  1. K EAFLAG,EXTVER,ONCDST,ONCOD0P,ONCSAPI,Y