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

ONCEDIT.m

Go to the documentation of this file.
  1. ONCEDIT ;HINES OIFO/GWB - Inter-field edits ;03/24/11
  1. ;;2.2;ONCOLOGY;**1,4,10,15**;Jul 31, 2013;Build 5
  1. ;
  1. N BCOD,COCE,COCI,HSTE,HSTFLD,HSTI,SSTE,SSTI,STAT,TOPE,TOPI,TRSE,TRSI,X
  1. K MSG
  1. S RHSP=$$GET1^DIQ(165.5,PRM,.03,"I") ;REPORTING FACILITY
  1. S COCI=$E($$GET1^DIQ(165.5,PRM,.04,"E"),1,2) ;CLASS OF CASE
  1. S COCE=$$GET1^DIQ(165.5,PRM,.04,"E")
  1. S STAT=$$GET1^DIQ(165.5,PRM,.091) ;STATUS
  1. S TRSI=$$GET1^DIQ(165.5,PRM,1.2,"I") ;TYPE OF REPORTING SOURCE
  1. S TRSE=$$GET1^DIQ(165.5,PRM,1.2,"E")
  1. S RFAC=$$GET1^DIQ(165.5,PRM,6,"I") ;FACILITY REFERRED FROM
  1. S TFAC=$$GET1^DIQ(165.5,PRM,7,"I") ;FACILITY REFERRED TO
  1. S TOPI=$$GET1^DIQ(165.5,PRM,20,"I") ;PRIMARY SITE
  1. S TOPE=$$GET1^DIQ(165.5,PRM,20,"E")
  1. S HSTI=$$HIST^ONCFUNC(PRM,.HSTFLD) ;HISTOLOGY
  1. S HSTE=$$GET1^DIQ(165.5,PRM,HSTFLD,"E")
  1. S BCOD=$E(HSTI,5) ;BEHAVIOR CODE
  1. I DTDX<3180000 S SSTI=$$GET1^DIQ(165.5,PRM,35,"I") ;SUMMARY STAGE 2000
  1. I DTDX<3180000 S SSTE=$$GET1^DIQ(165.5,PRM,35,"E")
  1. I DTDX>3171231 S SSTI=$$GET1^DIQ(165.5,PRM,1764,"I") ;SUMMARY STAGE 2018
  1. I DTDX>3171231 S SSTE=$$GET1^DIQ(165.5,PRM,1764,"E")
  1. ;
  1. IF02 ;S SDX=""
  1. ;S SDXI=$$GET1^DIQ(165.5,PRM,16,"I") ;STATE AT DX
  1. ;S SDXE=$$GET1^DIQ(165.5,PRM,16,"E")
  1. ;I SDXI'="" S SDX=$P(^DIC(5,SDXI,0),U,1)
  1. ;S PCDX=$$GET1^DIQ(165.5,PRM,9,"I") ;POSTAL CODE AT DX
  1. ;I SDX="YY",PCDX'=888888888 D D ERRMSG
  1. ;.S MSG(1)="STATE AT DX = YY ("_SDXE_")"
  1. ;.S MSG(2)="POSTAL CODE AT DX must be 888888888"
  1. ;I SDX="ZZ",PCDX'=999999999 D D ERRMSG
  1. ;.S MSG(1)="STATE AT DX = ZZ ("_SDXE_")"
  1. ;.S MSG(2)="POSTAL CODE AT DX must be 999999999"
  1. ;K MSG,PCDX,SDX,SDXI,SDXE
  1. ;
  1. IF03 I RHSP=RFAC D D ERRMSG
  1. .S MSG(1)="REPORTING HOSPITAL = FACILITY REFERRED FROM"
  1. I RHSP=TFAC D D ERRMSG
  1. .S MSG(1)="REPORTING HOSPITAL = FACILITY REFERRED TO"
  1. ;
  1. IF10 I (COCI=20)!(COCI=21)!(COCI=22)!(COCI=30)!(COCI=31)!(COCI=32)!(COCI=33)!(COCI=36)!(COCI=37),RFAC="" D D ERRMSG
  1. .S MSG(1)="CLASS OF CASE = "_COCI
  1. .S MSG(2)="("_$E(COCE,4,99)_")"
  1. .S MSG(3)="FACILITY REFERRED FROM may not be blank"
  1. K MSG,RHSP,RFAC,TFAC
  1. ;
  1. IF06 N DDXE,DDXI
  1. S DIAI=$$GET1^DIQ(165.5,PRM,155,"I") ;DATE OF FIRST CONTACT
  1. S DIAE=$$GET1^DIQ(165.5,PRM,155,"E")
  1. S DDXI=$$GET1^DIQ(165.5,PRM,3,"I") ;DATE DX
  1. S DDXE=$$GET1^DIQ(165.5,PRM,3,"E")
  1. I DIAE="99/99/9999" G IF06EX
  1. S MSG(1)="CLASS OF CASE = "_COCE
  1. S MSG(2)="DATE OF FIRST CONTACT..: "_DIAE
  1. S MSG(3)=" later than"
  1. I COCI="00" D
  1. .S SPSI=$$GET1^DIQ(165.5,PRM,50,"I") ;MOST DEFINITIVE SURG DATE
  1. .S SPSE=$$GET1^DIQ(165.5,PRM,50,"E")
  1. .S RADI=$$GET1^DIQ(165.5,PRM,51,"I") ;DATE RADIATION STARTED
  1. .S RADE=$$GET1^DIQ(165.5,PRM,51,"E")
  1. .S CNSI=$$GET1^DIQ(165.5,PRM,52,"I") ;RADIATION THERAPY TO CNS DATE
  1. .S CNSE=$$GET1^DIQ(165.5,PRM,52,"E")
  1. .S CHMI=$$GET1^DIQ(165.5,PRM,53,"I") ;CHEMOTHERAPY DATE
  1. .S CHME=$$GET1^DIQ(165.5,PRM,53,"E")
  1. .S HORI=$$GET1^DIQ(165.5,PRM,54,"I") ;HORMONE THERAPY DATE
  1. .S HORE=$$GET1^DIQ(165.5,PRM,54,"E")
  1. .S BRMI=$$GET1^DIQ(165.5,PRM,55,"I") ;IMMUNOTHERAPY DATE
  1. .S BRME=$$GET1^DIQ(165.5,PRM,55,"E")
  1. .S OTHI=$$GET1^DIQ(165.5,PRM,57,"I") ;OTHER TREATMENT START DATE
  1. .S OTHE=$$GET1^DIQ(165.5,PRM,57,"E")
  1. .I SPSI'="0000000",DIAI>SPSI D D ERRMSG
  1. ..S MSG(4)="MOST DEFINITIVE SURG DATE....: "_SPSE
  1. .I RADI'="0000000",DIAI>RADI D D ERRMSG
  1. ..S MSG(4)="DATE RADIATION STARTED.......: "_RADE
  1. .I DDXI<2960000,CNSI'="0000000",DIAI>CNSI D D ERRMSG
  1. ..S MSG(4)="RADIATION THERAPY TO CNS DATE: "_CNSE
  1. .I CHMI'="0000000",DIAI>CHMI D D ERRMSG
  1. ..S MSG(4)="CHEMOTHERAPY DATE............: "_CHME
  1. .I HORI'="0000000",DIAI>HORI D D ERRMSG
  1. ..S MSG(4)="HORMONE THERAPY DATE.........: "_HORE
  1. .I BRMI'="0000000",DIAI>BRMI D D ERRMSG
  1. ..S MSG(4)="IMMUNOTHERAPY DATE...........: "_BRME
  1. .I OTHI'="0000000",DIAI>OTHI D D ERRMSG
  1. ..S MSG(4)="OTHER TREATMENT START DATE...: "_OTHE
  1. IF06EX K BRME,BRMI,CHME,CHMI,CNSE,CNSI,DIAI,DIAE,HORE,HORI,MSG,OTHE
  1. K OTHI,RADE,RADI,SPSE,SPSI
  1. ;
  1. IF0708 S DXCF=$$GET1^DIQ(165.5,PRM,26,"I") ;DIAGNOSTIC CONFIRMATION
  1. S SEQ=$$GET1^DIQ(165.5,PRM,.06,"I") ;SEQUENCE NUMBER
  1. S SEQN=+$$GET1^DIQ(165.5,PRM,.06,"I")
  1. S PRIM=$$GET1^DIQ(165.5,PRM,20,"I") ;PRIMARY SITE
  1. S OVER=$$GET1^DIQ(165.5,PRM,223,"I") ;OVER-RIDE HOSPSEQ/DXCONF
  1. I TRSI=6,COCI'=38 D D ERRMSG
  1. .S MSG(1)="TYPE OF REPORTING SOURCE = 6 ("_TRSE_")"
  1. .S MSG(2)="CLASS OF CASE must be 38"
  1. .S MSG(3)="(Dx by autopsy at rpt facility)"
  1. I COCI=38,TRSI'=6 D D ERRMSG
  1. .S MSG(1)="CLASS OF CASE = "_COCI
  1. .S MSG(2)="("_$E(COCE,4,99)_")"
  1. .S MSG(3)="TYPE OF REPORTING SOURCE must be 6 (Autopsy only)"
  1. I TRSI=7,DXCF'=9 D D ERRMSG
  1. .S MSG(1)="TYPE OF REPORTING SOURCE = 7 ("_TRSE_")"
  1. .S MSG(2)="DIAGNOSTIC CONFIRMATION must be 9 (Unk if microscopically confirmed)"
  1. I TRSI=6,((DXCF'=1)&(DXCF'=6)) D D ERRMSG
  1. .S MSG(1)="TYPE OF REPORTING SOURCE = 6 ("_TRSE_")"
  1. .S MSG(2)="DIAGNOSTIC CONFIRMATION must be 1 (Pos histology) or"
  1. .S MSG(3)=" 6 (Direct visualization)"
  1. I ($E(PRIM,3,4)=76)!(PRIM=67809) G IF11
  1. I DXCF>5,((SEQN>0)&(SEQN<60))!(SEQN>88),OVER="" D D ERRMSG K DIR S DIR(0)="YA",DIR("A")="Do you wish to set the OVER-RIDE HOSPSEQ/DXCONF flag to 'Reviewed'? ",DIR("B")="Y" D ^DIR W ! I Y=1 S $P(^ONCO(165.5,PRM,"OVRD"),U,19)=1,CMPLT=SAVCMPLT
  1. .S SAVCMPLT=CMPLT
  1. .S MSG(1)="DIAGNOSTIC CONFIRMATION > 5 ("_DXCF_")"
  1. .S MSG(2)="SEQUENCE NUMBER > 00 ("_SEQ_")"
  1. .S MSG(3)="OVER-RIDE HOSPSEQ/DXCONF is required"
  1. K MSG,DXCF,SEQ,SEQN,PRIM,OVER,SAVCMPLT,DIR,Y
  1. ;
  1. IF11 G:TOPI="" IF11EX
  1. S PORG=$$GET1^DIQ(164,TOPI,.07,"I") ;PAIRED ORGAN
  1. S LTRL=$$GET1^DIQ(165.5,PRM,28,"I") ;LATERALITY
  1. I PORG=1,LTRL=0,DDXI>3031231 D D ERRMSG
  1. .S MSG(1)=TOPE_" is a paired site"
  1. .S MSG(2)="LATERALITY must be provided for specified paired organs/sites"
  1. .S MSG(3)=""
  1. .S:TOPI=67300 MSG(4)="NOTE: If NASAL CARTILAGE or NASAL SEPTUM, override this warning."
  1. .S:TOPI=67340 MSG(4)="NOTE: If CARINA, override this warning."
  1. .S:TOPI=67413 MSG(4)="NOTE: If STERNUM, override this warning."
  1. .S:TOPI=67414 MSG(4)="NOTE: If SACRUM, COCCYX or SYMPHYSIS PUBIS, override this warning."
  1. I PORG=1,LTRL="" D D ERRMSG
  1. .S MSG(1)=TOPE_" is a paired site"
  1. .S MSG(2)="LATERALITY must be provided for specified paired organs/sites"
  1. ;I PORG="",LTRL'=0 D D ERRMSG
  1. I PORG="",LTRL'=0,TOPI'=67444 D D ERRMSG
  1. .S MSG(1)=TOPE_" is an unpaired site"
  1. .S MSG(2)="LATERALITY must be 0 (Not a paired site)"
  1. IF11EX K MSG,PORG,LTRL
  1. ;
  1. S RADI=$$GET1^DIQ(165.5,PRM,51.2,"I") ;RADIATION
  1. S RADE=$$GET1^DIQ(165.5,PRM,51.2,"E")
  1. S LRTI=$$GET1^DIQ(165.5,PRM,126,"I") ;LOCATION OF RADIATION TX
  1. I RADI'=0,LRTI=0 D D ERRMSG
  1. .S MSG(1)="RADIATION = "_RADI_" ("_RADE_")"
  1. .S MSG(2)="LOCATION OF RADIATION TX cannot be 0 (No radiation tx)"
  1. K MSG,RADI,RADE,LRTI
  1. ;all 8's inter-field checks removed in p4
  1. ;Treatment codes of 88 or dates of 88/88/8888 will prohibit 'Completion'
  1. ;S DRS=$$GET1^DIQ(165.5,PRM,51,"E") ;DATE RADIATION STARTED
  1. ;S DRSFAC=$$GET1^DIQ(165.5,PRM,51.5,"E") ;RADIATION @FACILITY DATE
  1. ;S DRE=$$GET1^DIQ(165.5,PRM,361,"E") ;DATE RADIATION ENDED
  1. ;S CI=$$GET1^DIQ(165.5,PRM,53.2,"I") ;CHEMOTHERAPY
  1. ;S CE=$$GET1^DIQ(165.5,PRM,53.2,"E")
  1. ;S CFACI=$$GET1^DIQ(165.5,PRM,53.3,"I") ;CHEMOTHERAPY @FAC
  1. ;S CFACE=$$GET1^DIQ(165.5,PRM,53.3,"E") ;CHEMOTHERAPY @FAC
  1. ;S CD=$$GET1^DIQ(165.5,PRM,53,"E") ;CHEMOTHERAPY DATE
  1. ;S CFACD=$$GET1^DIQ(165.5,PRM,53.4,"E") ;CHEMOTHERAPY @FAC DATE
  1. ;S HTI=$$GET1^DIQ(165.5,PRM,54.2,"I") ;HORMONE THERAPY
  1. ;S HTE=$$GET1^DIQ(165.5,PRM,54.2,"E")
  1. ;S HTFACI=$$GET1^DIQ(165.5,PRM,54.3,"I") ;HORMONE THERAPY @FAC
  1. ;S HTFACE=$$GET1^DIQ(165.5,PRM,54.3,"E")
  1. ;S HTD=$$GET1^DIQ(165.5,PRM,54,"E") ;HORMONE THERAPY DATE
  1. ;S HTFACD=$$GET1^DIQ(165.5,PRM,54.4,"E") ;HORMONE THERAPY @FAC DATE
  1. ;S ITI=$$GET1^DIQ(165.5,PRM,55.2,"I") ;IMMUNOTHERAPY
  1. ;S ITE=$$GET1^DIQ(165.5,PRM,55.2,"E")
  1. ;S ITFACI=$$GET1^DIQ(165.5,PRM,55.3,"I") ;IMMUNOTHERAPY @FAC
  1. ;S ITFACE=$$GET1^DIQ(165.5,PRM,55.3,"E")
  1. ;S ITD=$$GET1^DIQ(165.5,PRM,55,"E") ;IMMUNOTHERAPY DATE
  1. ;S ITFACD=$$GET1^DIQ(165.5,PRM,55.4,"E") ;IMMUNOTHERAPY @FAC DATE
  1. ;S HTEPI=$$GET1^DIQ(165.5,PRM,153,"I") ;HEMA TRANS/ENDOCRINE PROC
  1. ;S HTEPE=$$GET1^DIQ(165.5,PRM,153,"E")
  1. ;S HTEPD=$$GET1^DIQ(165.5,PRM,153.1,"E") ;HEMA TRANS/ENDOCRINE PROC DATE
  1. ;I DRS="88/88/8888" D D TXDT88,ERRMSG
  1. ;.S MSG(1)="DATE RADIATION STARTED = "_DRS
  1. ;I DRSFAC="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="RADIATION @FACILITY DATE = "_DRSFAC
  1. ;I DRE="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="DATE RADIATION ENDED = "_DRE
  1. ;I CI=88 D D ERRMSG
  1. ;.S MSG(1)="CHEMOTHERAPY = "_CI_" ("_CE_")"
  1. ;I CD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="CHEMOTHERAPY DATE = "_CD
  1. ;I CFACI=88 D D ERRMSG
  1. ;.S MSG(1)="CHEMOTHERAPY @FAC = "_CFACI_" ("_CFACE_")"
  1. ;I CFACD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="CHEMOTHERAPY @FAC DATE = "_CFACD
  1. ;I HTI=88 D D ERRMSG
  1. ;.S MSG(1)="HORMONE THERAPY = "_HTI_" ("_HTE_")"
  1. ;I HTD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="HORMONE THERAPY DATE = "_HTD
  1. ;I HTFACI=88 D D ERRMSG
  1. ;.S MSG(1)="HORMONE THERAPY @FAC = "_HTFACI_" ("_HTFACE_")"
  1. ;I HTFACD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="HORMONE THERAPY @FAC DATE = "_HTFACD
  1. ;I ITI=88 D D ERRMSG
  1. ;.S MSG(1)="IMMUNOTHERAPY = "_ITI_" ("_ITE_")"
  1. ;I ITD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="IMMUNOTHERAPY DATE = "_ITD
  1. ;I ITFACI=88 D D ERRMSG
  1. ;.S MSG(1)="IMMUNOTHERAPY @FAC = "_ITFACI_" ("_ITFACE_")"
  1. ;I ITFACD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="IMMUNOTHERAPY @FAC DATE = "_ITFACD
  1. ;I HTEPI=12 D D ERRMSG
  1. ;.S MSG(1)="HEMA TRANS/ENDOCRINE PROC = 88 ("_HTEPE_")"
  1. ;I HTEPD="88/88/8888" D D ERRMSG
  1. ;.S MSG(1)="HEMA TRANS/ENDOCRINE PROC DATE = "_HTEPD
  1. ;K CD,CE,CFACD,CFACE,CFACI,CI,DRE,DRS,DRSFAC,HTD,HTE,HTEPD,HTEPE,HTEPI
  1. ;K HTFACD,HTFACE,HTFACI,HTI,ITD,ITE,ITFACD,ITFACE,ITFACI,ITI
  1. ;
  1. FCTD ;
  1. ;N FCTD
  1. ;S FCTD=$$GET1^DIQ(165.5,PRM,49)
  1. ;I FCTD="00/00/0000",COCI'=38 D D ERRMSG
  1. ;.S MSG(1)="FIRST COURSE OF TREATMENT DATE = 00/00/0000"
  1. ;.S MSG(2)="CLASS OF CASE must be 38"
  1. ;.S MSG(3)="(Dx by autopsy at rpt facility)"
  1. ;I COCI=38,FCTD'="00/00/0000" D D ERRMSG
  1. ;.S MSG(1)="CLASS OF CASE = 38"
  1. ;.S MSG(2)="(Dx by autopsy at rpt facility)"
  1. ;.S MSG(3)="FIRST COURSE OF TREATMENT DATE must be 00/00/0000"
  1. ;
  1. PHCSEQ S SEQ=$$GET1^DIQ(165.5,PRM,.06,"I")
  1. S PHC=$$GET1^DIQ(165.5,PRM,148,"E")
  1. ;I PHC="Yes",SEQ="00" D D ERRMSG
  1. ;.S MSG(1)="OTHER CANCER = Yes"
  1. ;.S MSG(2)="SEQUENCE NUMBER = "_SEQ
  1. ;.S MSG(3)="SEQUENCE NUMBER cannot not be 00"
  1. I PHC="No",(SEQ'="00")&(SEQ'=60) D D ERRMSG
  1. .S MSG(1)="OTHER CANCER = No"
  1. .S MSG(2)="SEQUENCE NUMBER = "_SEQ
  1. .S MSG(3)="SEQUENCE NUMBER must be 00 or 60"
  1. K SEQ,PHC,MSG
  1. ;
  1. G ^ONCEDIT2
  1. ;
  1. ERRMSG ;Error message
  1. S CMPLT=0
  1. W !," WARNING: "
  1. S MSGSUB=0 F S MSGSUB=$O(MSG(MSGSUB)) Q:MSGSUB'>0 W ?10,MSG(MSGSUB),!
  1. R Z:10
  1. K MSGSUB,Z
  1. Q
  1. ;
  1. TXDT88 ;Treatment date = 88/88/8888 error message
  1. S MSG(2)="This abstract cannot be 'Complete' without a valid treatment date."
  1. S MSG(3)="This inter-field edit WARNING may not be overridden."
  1. S OVERRIDE="NO"
  1. Q
  1. ;
  1. CLEANUP ;Cleanup
  1. K CMPLT,OVERRIDE,PRM