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

PXRMDTAX.m

Go to the documentation of this file.
  1. PXRMDTAX ; SLC/AGP - Reminder Dialog Taxonomy Field editor/List Manager ;03/14/2014
  1. ;;2.0;CLINICAL REMINDERS;**26**;Feb 04, 2005;Build 404
  1. ;
  1. ;ADDTAXF1(FIELD,CODE,ARRAY) ;
  1. ADDTAXF1(CODE,ARRAY) ;
  1. N CURVALUE,PROMPT,RESULT,SARRAY,TEMP,TYPE,X,Y
  1. S CURVALUE=$$GETTEXT^PXRMDTAX(.ARRAY,CODE)
  1. ;I CURVALUE="" S CURVALUE="Selectable "_$S(FIELD=2:"current ",FIELD=3:"historical ",1:"")_$S($E(TEMP)="d":TEMP_"es",1:TEMP_"s")_" codes"
  1. Q CURVALUE
  1. ;
  1. ;central location for building array of codes when determine what codes go with an
  1. ;encounter type
  1. BLDCODE(TYPE,CODESYS) ;
  1. I TYPE="ALL" S (CODESYS("ICD"),CODESYS("10D"),CODESYS("CPT"),CODESYS("CPC"))="" Q
  1. I TYPE="POV" S (CODESYS("ICD"),CODESYS("10D"))="" Q
  1. I TYPE="CPT" S (CODESYS("CPT"),CODESYS("CPC"))="" Q
  1. Q
  1. ;
  1. ;build FDA array for Taxonomy Fields multiple
  1. BLDFDA(CODE,IEN,FDA,DEFAULT) ;
  1. N DA,ENCTYPE,FIELD,IENS,NODEIEN,RESULT,TEMP,VALUE,X
  1. S X=$S(CODE="POV":141,1:142)
  1. S VALUE=$$TAXDIR(X,CODE,IEN,.DEFAULT) I VALUE[U Q VALUE
  1. S FDA(801.41,IEN_",",X)=VALUE
  1. Q VALUE
  1. ;
  1. CHECKER(DIEN,TIEN,FIELD,OUTPUT) ;
  1. N CNT,FAIL,NAME,NODE,RESULT,TAXSEL,TDX,TDXNODE,TNAME,TPR,TPRNODE,TYPE
  1. S FAIL=""
  1. S NODE=$G(^PXRMD(801.41,DIEN,0)),NAME=$P(NODE,U),TYPE=$S($P(NODE,U,4)="G":"Group",1:"Element")
  1. S TNAME=$P($G(^PXD(811.2,TIEN,0)),U)
  1. I $P($G(^PXD(811.2,TIEN,0)),U,6)=1 S OUTPUT(1)="Dialog "_TYPE_" "_NAME_" contains an inactive taxonomy "_TNAME_".",FAIL="W" Q FAIL
  1. I '$D(^PXD(811.2,TIEN,20,"AUID")) S OUTPUT(1)="Dialog "_TYPE_" "_NAME_" contains a taxonomy "_TNAME_" that does not have codes marked to be used in a dialog.",FAIL=$S(FIELD="F":"F",1:"W") I FIELD'="" Q FAIL
  1. ;
  1. S TAXSEL=$P($G(^PXRMD(801.41,DIEN,"TAX")),U)
  1. S TDX=$$TOK(TIEN,"POV"),TPR=$$TOK(TIEN,"CPT")
  1. ;I TYPE="Group",TDX,TPR,TAXSEL'["N" S OUTPUT(1)="Dialog "_TYPE_" "_NAME_" cannot have a taxonomy selection field value other than 'No Pick List'.",FAIL="F" Q FAIL
  1. ;.I TAXSEL'["N" S OUTPUT(1)="Dialog "_TYPE_" "_NAME_" cannot have a taxonomy selection field value other than 'No Pick List'.",FAIL="F"
  1. I TAXSEL="N" Q FAIL
  1. S TDXNODE=$S($P($G(^PXRMD(801.41,DIEN,"POV")),U)'="":1,1:0),TPRNODE=$S($P($G(^PXRMD(801.41,DIEN,"CPT")),U)'="":1,1:0)
  1. S CNT=0
  1. I TAXSEL="A",TDX,TPR D Q FAIL
  1. .S RESULT=$$CHCKCOMP(TDXNODE,TDX,"POV",NAME) I RESULT'="" S FAIL="W",CNT=CNT+1,OUTPUT(CNT)=RESULT
  1. .S RESULT=$$CHCKCOMP(TPRNODE,TPR,"CPT",NAME) I RESULT'="" S FAIL="W",CNT=CNT+1,OUTPUT(CNT)=RESULT
  1. I TAXSEL="D" S RESULT=$$CHCKCOMP(TDXNODE,TDX,"POV",NAME) I RESULT'="" S FAIL="W",CNT=CNT+1,OUTPUT(CNT)=RESULT
  1. I TAXSEL="P" S RESULT=$$CHCKCOMP(TPRNODE,TPR,"CPT",NAME) I RESULT'="" S FAIL="W",CNT=CNT+1,OUTPUT(CNT)=RESULT
  1. I $$HASACT(TIEN)=0 S FAIL="W",CNT=CNT+1,OUTPUT(CNT)="Taxonomy "_TNAME_" does not contain active codes for "_$$FMTE^XLFDT(DT)
  1. Q FAIL
  1. ;
  1. CHCKCOMP(DNODE,TNODE,TYPE,NAME) ;
  1. N NODE S NODE=$S(TYPE="POV":"diagnosis",1:"procedure")
  1. I DNODE=1,TNODE=0 Q "Dialog element "_NAME_" "_NODE_" Header Text is defined, but the taxonomy does not have "_NODE_" codes marked to be used in a dialog."
  1. I DNODE=0,TNODE=1 Q "Dialog element "_NAME_" "_NODE_" Header Text is not defined, but the taxonomy does have "_NODE_" codes marked to be used in a dialog."
  1. Q ""
  1. ;
  1. ;write out code display used by List Manager
  1. CODES(TIEN,CODES,NLINE,HIST,ISMAIL) ;
  1. N BDATE,CODE,DATE,DATES,DESC,DTEXT,EDATE,NLINES,STR,SUB
  1. N TAB,TEXT,TEXTIN,TEXTOUT,X
  1. ;
  1. S SUB=""
  1. F S SUB=$O(CODES(SUB)) Q:SUB="" D
  1. .S CODE=$P(CODES(SUB),U,2),DESC=$P(CODES(SUB),U,3)
  1. .S BDATE=$$FMTE^XLFDT($P($G(CODE),":",2))
  1. .S EDATE=$S($P($G(CODE),":",3)'="":$$FMTE^XLFDT($P($G(CODE),":",3)),1:"")
  1. .S DATE=BDATE_"-"_EDATE
  1. .S STR=$$LJ^XLFSTR($P($G(CODE),":"),8)
  1. .S STR=STR_DESC
  1. .S TEXTIN(1)=STR
  1. .D FORMAT^PXRMTEXT(1,$S(ISMAIL:35,1:44),1,.TEXTIN,.NLINES,.TEXTOUT)
  1. .F X=1:1:NLINES D
  1. ..S DTEXT=$S(X=1:$$LJ^XLFSTR(TEXTOUT(X),$S(ISMAIL=1:38,1:45))_DATE,1:TEXTOUT(X))
  1. ..S NLINE=NLINE+1
  1. ..S ^TMP(NODE,$J,NLINE,0)=$J("",15)_DTEXT
  1. Q
  1. ;
  1. ;general field delete sub-routine
  1. DELFIELD(IENS,SUB,FIELD) ;Delete a field.
  1. N FDA,MSG
  1. S FDA(SUB,IENS,FIELD)="@"
  1. D FILE^DIE("","FDA","MSG")
  1. I $D(MSG) W !,"Error in delete",! D AWRITE^PXRMUTIL("MSG")
  1. Q
  1. ;
  1. ;Cross-reference delete when deleting Taxonomy fields in a dialog
  1. DELLOG(DA,FIELD,OLD,NEW) ;
  1. I OLD="" Q
  1. N IENS,POVIEN,PROCIEN
  1. I FIELD=123 D Q
  1. .I NEW=""!(NEW="N") D Q
  1. ..S IENS=DA_"," D DELFIELD(IENS,801.41,141)
  1. ..S IENS=DA_"," D DELFIELD(IENS,801.41,142)
  1. .I NEW="D" S IENS=DA_"," D DELFIELD(IENS,801.41,142) Q
  1. .I NEW="P" S IENS=DA_"," D DELFIELD(IENS,801.41,141)
  1. Q
  1. ;
  1. GETSTAT(TYPE) ;
  1. N HIST,RESULT,STATUS
  1. S RESULT=0
  1. S IEN=$O(^PXRMD(801.45,"B",TYPE,"")) I IEN'>0 Q RESULT
  1. I '$D(^PXRMD(801.45,IEN,1,"B",2)) S RESULT=1 Q RESULT
  1. S HIST=$O(^PXRMD(801.45,IEN,1,"B",2,"")) I HIST'>0 S RESULT=1 Q RESULT
  1. I $P($G(^PXRMD(801.45,IEN,1,HIST,0)),U,2)=1 S RESULT=1 Q RESULT
  1. S RESULT=2
  1. S STATUS=0 F S STATUS=$O(^PXRMD(801.45,IEN,1,"B",STATUS)) Q:STATUS'>0!(RESULT<2) I STATUS'=2 S RESULT=0
  1. Q RESULT
  1. ;
  1. ;this returns the default values from file 801.45 for POV or Procedure
  1. ;codes.
  1. ;DEFAULT(TYPE,pointer to file 801.9)=default
  1. ;DEFAULT(TYPE,pointer to file 801.9,ADDFIND,n)=additional finding node
  1. GETTAXDF(DEFAULT,TYPE,ISHIST) ;
  1. N CNT,IEN,FIND,STATUS
  1. S IEN=$O(^PXRMD(801.45,"B",TYPE,"")) I IEN'>0 Q
  1. ;get resolution status
  1. S CNT=0 F S CNT=$O(^PXRMD(801.45,IEN,1,CNT)) Q:CNT'>0 D
  1. .S STATUS=$P($G(^PXRMD(801.45,IEN,1,CNT,0)),U)
  1. .I ISHIST=1,STATUS'=2 Q
  1. .I ISHIST=0,STATUS=2 Q
  1. .;get prefix and suffix text
  1. .S DEFAULT(TYPE,"PREFIX")=$G(^PXRMD(801.45,IEN,1,CNT,3))
  1. .S DEFAULT(TYPE,"SUFFIX")=$G(^PXRMD(801.45,IEN,1,CNT,4))
  1. .;get additional findings
  1. .S FIND=0 F S FIND=$O(^PXRMD(801.45,IEN,1,CNT,5,FIND)) Q:FIND'>0 D
  1. ..S DEFAULT(TYPE,"ADDFIND",FIND)=$G(^PXRMD(801.45,IEN,1,CNT,5,FIND,0))
  1. Q
  1. ;
  1. ;Returns the default taxonomy checkbox header for the Encounter Type
  1. GETTEXT(VALUES,TYPE) ;
  1. ;GETTEXT(VALUES,TYPE,CURR) ;
  1. N ENCTYPE,IEN,TEXT
  1. S TEXT=""
  1. S TEXT=$G(VALUES(TYPE,"PREFIX"))_$G(VALUES(TYPE,"SUFFIX"))
  1. Q TEXT
  1. ;
  1. HASACT(TIEN) ;
  1. N SYS,CODE,SDATE,EDATE,START,TODAY,FOUND,END
  1. S TODAY=DT+1,FOUND=0
  1. S SYS="" F S SYS=$O(^PXD(811.2,TIEN,20,"AUID",SYS)) Q:SYS=""!(FOUND=1) D
  1. .S CODE="" F S CODE=$O(^PXD(811.2,TIEN,20,"AUID",SYS,CODE)) Q:CODE=""!(FOUND=1) D
  1. ..S SDATE=""
  1. ..F S SDATE=$O(^PXD(811.2,TIEN,20,"AUID",SYS,CODE,SDATE)) Q:SDATE=""!(FOUND=1) D
  1. ...S START=SDATE-1,EDATE=""
  1. ...F S EDATE=$O(^PXD(811.2,TIEN,20,"AUID",SYS,CODE,SDATE,EDATE)) Q:EDATE=""!(FOUND=1) D
  1. ....S END=$S(EDATE="DT":DT+1,1:EDATE+1) I DT>START,DT<END S FOUND=1 Q
  1. Q FOUND
  1. ;
  1. PRINT(TEXTIN,NIN) ;
  1. N LINE,NOUT,TEXTOUT
  1. D FORMAT^PXRMTEXT(1,75,NIN,.TEXTIN,.NOUT,.TEXTOUT)
  1. D MES^XPDUTL(.TEXTOUT)
  1. Q
  1. ;
  1. ;Builds a list of prompts associated with the taxonomy finding types
  1. ;Prompts the user to add the prompts to the dialog editor. Does not prompt if prompts
  1. ;are already defined to the element.
  1. PROMPTS(DA,SEL,DEFAULT,FDA,IENCNT) ;
  1. N CNT,CODE,DIR,DNUM,ENC,EXTVAL,FIELD,IEN,IENS,NAME,NODE,NUM,PROMPT,PROMPTS,START,VALUE,X,Y
  1. I $D(^PXRMD(801.41,DA,10)) Q 0
  1. S CODE="" F S CODE=$O(DEFAULT(CODE)) Q:CODE="" D
  1. .I SEL="P",CODE="POV" Q
  1. .I SEL="D",CODE="CPT" Q
  1. .S CNT=0 F S CNT=$O(DEFAULT(CODE,"ADDFIND",CNT)) Q:CNT'>0 D
  1. ..S NODE=DEFAULT(CODE,"ADDFIND",CNT)
  1. ..S IEN=$P(NODE,U)
  1. ..I $D(^PXRMD(801.41,DA,10,"D",IEN))>0 Q
  1. ..I $D(PROMPTS(IEN))>0 I $L(PROMPTS(IEN),U)<$L(NODE,U) S PROMPTS(IEN)=NODE
  1. ..S PROMPTS(IEN)=NODE
  1. ;
  1. I '$D(PROMPTS) Q 0
  1. S START=+$O(^PXRMD(801.41,DA,10,""),-1)
  1. S DNUM=0
  1. W !,"Default prompts for the taxonomy:"
  1. S IEN=0,CNT=0 F S IEN=$O(PROMPTS(IEN)) Q:IEN'>0 D
  1. .S CNT=CNT+1,START=START+1,DNUM=DNUM+1
  1. .S IENCNT=IENCNT+1,IENS="+"_IENCNT_","_DA_","
  1. .S NAME=$P($G(^PXRMD(801.41,IEN,0)),U)
  1. .S NODE=PROMPTS(IEN),CNT=$L(NODE,U)
  1. .I $P(NODE,U,3)>0 Q
  1. .S FDA(801.412,IENS,.01)=START
  1. .S FDA(801.412,IENS,2)=IEN
  1. .W !,"Prompt: "_NAME
  1. .I CNT=1 Q
  1. .F NUM=2:1:CNT D
  1. ..I NUM=3 Q
  1. ..I NUM=4 Q
  1. ..S VALUE=$P(NODE,U,NUM) I $G(VALUE)="" Q
  1. ..S FIELD=$S(NUM=2:9,NUM=4:.01,NUM=5:6,NUM=6:7,NUM=7:8,1:"") I $G(FIELD)="" Q
  1. ..S FDA(801.412,IENS,FIELD)=VALUE
  1. ..S PROMPT=$S(FIELD=.01:"Sequence",FIELD=6:"Override Prompt Caption",FIELD=7:"Start New Line",FIELD=8:"Exclude From PN Text",FIELD=9:"Required")
  1. ..I $G(PROMPT)="" Q
  1. ..I FIELD=6 S EXTVAL=VALUE
  1. ..I FIELD>6 S EXTVAL=$S(VALUE=1:"Yes",1:"No")
  1. ..W !," "_PROMPT_": "_EXTVAL
  1. ;
  1. I CNT=0 W !,"None" Q 0
  1. S DIR(0)="S^Y:Yes;N:No"
  1. S DIR("A")="Add Prompts to the dialog"
  1. S DIR("B")="Yes"
  1. D ^DIR
  1. I Y[U K FDA(801.412) Q 0
  1. I Y="N" K FDA(801.412)
  1. Q 1
  1. ;
  1. ;Prompts the user for values for the fields in the Taxonomy Fields multiple.
  1. ;Builds default values from existing values or from file 801.45
  1. TAXDIR(FIELD,CODE,DA,ARRAY) ;
  1. N DIR,CURVALUE,PROMPT,RESULT,SARRAY,TEMP,TYPE,X,Y
  1. S CURVALUE=""
  1. S DIR("A")=$S(CODE="POV":"Diagnosis Header",1:"Procedure Header")
  1. S DIR(0)="F^1:80"
  1. S TEMP=$S(CODE="POV":"diagnosis",1:"Procedure")
  1. I +DA>0 S CURVALUE=$$GET1^DIQ(801.41,DA_",",FIELD)
  1. I CURVALUE="" D
  1. .S CURVALUE=$$GETTEXT(.ARRAY,CODE)
  1. .I CURVALUE="" S CURVALUE="Selectable "_$S($E(TEMP)="d":TEMP_"es",1:TEMP_"s")_" codes"
  1. S DIR("B")=CURVALUE
  1. D ^DIR
  1. Q Y
  1. ;
  1. ;main taxonomy fields editor entry point. Returns ^ or ^^ or 1 is fields are answer.
  1. TAXDIAL(IEN,FIND) ;
  1. ;Protect FileMan variables
  1. N D,D0,DA,DC,DDES,DE,DG,DH,DI,DIC,DIDEL,DIE,DIEDA,DIEL,DIEN,DIR,DIETMP
  1. N DIEXREF,DIFLD,DIEIENS,DINUSE,DIP,DISYS,DK,DL,DM,DP,DQ,DR,DU
  1. ;
  1. N DEF,DEFAULT,DXTYPE,FDA,FDAIEN,HTEXT,IENCNT,IENS,ISHIST,MSG,NODEIEN,NAME,NONE,PRTYPE,RESULT,STR,TAXIEN,TAXSEL,TDX,TPR,VALUE,X,Y
  1. ;
  1. ENTAXDL ;
  1. ;
  1. S RESULT=1
  1. I FIND'["PXD(811.2" Q 0
  1. S DA=IEN,TAXIEN=+FIND I TAXIEN'>0 Q 0
  1. S ISHIST=$S($P($G(^PXRMD(801.41,IEN,1)),U,3)=2:1,1:0)
  1. S TDX=$$TOK(TAXIEN,"POV")
  1. S TPR=$$TOK(TAXIEN,"CPT")
  1. S DEF=$P($G(^PXRMD(801.41,DA,"TAX")),U)
  1. S DIR(0)="S^A:All;N:No Pick List" D HELP(.HTEXT,"")
  1. I TDX=1,TPR=1 S DIR(0)="S^A:All;D:ICD Diagnoses Only;P:CPT Procedures Only;N:No Pick List" D HELP(.HTEXT,"PD")
  1. I $P($G(^PXRMD(801.41,IEN,0)),U,4)="G" D
  1. .I $G(DEF)="" S DEF="N"
  1. .I TDX=1,TPR=1 S DIR(0)="S^D:ICD Diagnoses Only;P:CPT Procedures Only;N:No Pick List" D HELP(.HTEXT,"GPD") Q
  1. .I TPR=1 S DIR(0)="S^P:CPT Procedures Only;N:No Pick List" D HELP(.HTEXT,"GP") Q
  1. .S DIR(0)="S^D:ICD Diagnoses Only;N:No Pick List" D HELP(.HTEXT,"GD")
  1. I DIR(0)'[DEF S DEF=""
  1. S DIR("A")="Taxonomy Pick List"
  1. S DIR("B")=$S(DEF]"":DEF,1:"A")
  1. S DIR("?")="Select the pick list display value or '^' to quit. Enter ?? for detail help."
  1. S DIR("??")=U_"D HELP^PXRMEUT(.HTEXT)"
  1. D ^DIR
  1. I Y[U Q Y
  1. S VALUE=Y
  1. S FDA(801.41,DA_",",123)=VALUE
  1. I VALUE="N" G TAXUPD
  1. I TDX=1 D GETTAXDF(.DEFAULT,"POV",ISHIST)
  1. I TPR=1 D GETTAXDF(.DEFAULT,"CPT",ISHIST)
  1. S IENCNT=0
  1. I TDX=1,TPR=1,VALUE="A" D G TAXDIALX:RESULT="^^" G ENTAXDL:RESULT=U
  1. .S RESULT=$$BLDFDA("POV",IEN,.FDA,.DEFAULT) I RESULT[U Q
  1. .S RESULT=$$BLDFDA("CPT",IEN,.FDA,.DEFAULT)
  1. ;I TPR=1,VALUE="A" S RESULT=$$BLDFDA("CPT",IEN,.FDA,.DEFAULT) G TAXDIALX:RESULT="^^" G ENTAXDL:RESULT=U
  1. ;
  1. S RESULT=$$PROMPTS(IEN,VALUE,.DEFAULT,.FDA,.IENCNT) I RESULT[U G TAXDIALX:RESULT="^^" G ENTAXDL:RESULT=U
  1. K MSG
  1. TAXUPD ;
  1. D UPDATE^DIE("","FDA","","MSG")
  1. I $D(MSG) W !,"Error in update",! D AWRITE^PXRMUTIL("MSG")
  1. ;
  1. TAXDIALX ;
  1. Q RESULT
  1. ;
  1. ;This routine is used to display Taxonomy codes in the List Manager view for Dialog Text.
  1. ;TODO should we display any codes in Dialog Text view for Additional Findings or Taxonomy Pick List of N, D, P?
  1. TAXDISP(FIEN,SEQ,DIEN,NLINE,NODE,ADDFIND,ISMAIL) ;
  1. N ARRAY,CNT,CODESYS,FILE,HIST,TIEN,TSEQ
  1. N CNT,DTXT,FNODE,RSUB,TDX,TNAME,TPAR,TPR,TYP
  1. N TCUR,TDTXT,TDHTXT,THIS,TPTXT,TPHTXT
  1. S TIEN=$P(FIEN,";") Q:TIEN=""
  1. S HIST=0,FILE=""
  1. ;Get associated codes
  1. ;
  1. ;Get taxonomy name
  1. S TNAME=$P($G(^PXD(811.2,TIEN,0)),U,1)
  1. ;
  1. ;Check what type of taxonomy codes exist
  1. S TDX=$$TOK(TIEN,"POV")
  1. S TPR=$$TOK(TIEN,"CPT")
  1. ;
  1. S TAXSEL=$P($G(^PXRMD(801.41,DIEN,"TAX")),U)
  1. I ADDFIND=1 S TAXSEL="N"
  1. ;
  1. I TDX D
  1. .D BLDCODE("POV",.CODESYS)
  1. .D CODES^PXRMDLLB(TIEN,.CODESYS,.CODES)
  1. .I '$D(CODES) Q
  1. .S TEXT=$J("",15)_$S(TAXSEL="N":"Diagnoses Codes:",TAXSEL="P":"Procedures Codes:",1:"Selectable Diagnoses Codes:"),TAB=18
  1. .S STR=$$LJ^XLFSTR($G(TEXT),$S(ISMAIL=1:51,1:60))
  1. .S STR=STR_"Activation Periods"
  1. .S NLINE=NLINE+1
  1. .S ^TMP(NODE,$J,NLINE,0)=STR
  1. .D CODES(TIEN,.CODES,.NLINE,HIST,ISMAIL)
  1. .S NLINE=NLINE+1
  1. .S ^TMP(NODE,$J,NLINE,0)=$J("",79)
  1. ;
  1. I TPR D
  1. .K CODESYS,CODES
  1. .D BLDCODE("CPT",.CODESYS)
  1. .D CODES^PXRMDLLB(TIEN,.CODESYS,.CODES)
  1. .I '$D(CODES) Q
  1. .S TEXT=$J("",15)_$S(TAXSEL="N":"Procedures Codes:",TAXSEL="D":"Procedures Codes:",1:"Selectable Procedures codes:"),TAB=18
  1. .S STR=$$LJ^XLFSTR($G(TEXT),$S(ISMAIL=1:51,1:60))
  1. .S STR=STR_"Activation Periods"
  1. .S NLINE=NLINE+1
  1. .S ^TMP(NODE,$J,NLINE,0)=STR
  1. .D CODES(TIEN,.CODES,.NLINE,HIST,ISMAIL)
  1. .S NLINE=NLINE+1
  1. .S ^TMP(NODE,$J,NLINE,0)=$J("",79)
  1. Q
  1. ;
  1. TAXEDITC(TIEN,TEXT) ;
  1. N DARRAY,DIEN,HEADER,NAME,OCNT,OUTPUT,RARRAY,RESULT,TDX,TPR,TAXNODE
  1. N TAXSEL
  1. D FINDDIAL^PXRMFRPT(.DARRAY,"PXD(811.2,",TIEN)
  1. S TEXT(1)="Taxonomy and/or the following dialog(s) have problems."
  1. S TEXT(2)="Correct either the taxonomy or the following dialog(s):"
  1. S CNT=2
  1. I '$D(DARRAY) G TXEDITCX
  1. I '$D(^PXD(811.2,TIEN,20,"AUID")) S TEXT(1)="Taxonomy does not contain codes marked to be used in a dialog. It is assigned to the following dialog(s)." D Q
  1. .S CNT=1,NAME="" F S NAME=$O(DARRAY(NAME)) Q:NAME="" S CNT=CNT+1,TEXT(CNT)=" "_NAME
  1. S TDX=$$TOK(TIEN,"POV"),TPR=$$TOK(TIEN,"CPT")
  1. S NAME="" F S NAME=$O(DARRAY(NAME)) Q:NAME="" D
  1. .S IEN=DARRAY(NAME) S RESULT=$$CHECKER(IEN,TIEN,"",.OUTPUT) I RESULT="" Q
  1. .S TEXT(2)="See below for descriptions of the problem(s):"
  1. .N LINE,NIN,NOUT,TEMP
  1. .S NIN=$O(OUTPUT(""),-1)
  1. .D FORMAT^PXRMTEXT(1,75,NIN,.OUTPUT,.NOUT,.TEMP)
  1. .F LINE=1:1:NOUT S CNT=CNT+1,TEXT(CNT)=TEMP(LINE)
  1. TXEDITCX ;
  1. I CNT=2 K TEXT
  1. K ^TMP($J,"DLG FIND")
  1. Q
  1. ;
  1. ;change to use AUID cross-referenc instead of the selectable node, central location for checking what codes to use
  1. ;in a dialog for encounter type.
  1. TOK(TIEN,TYPE) ;Check if selectable codes exist
  1. I TYPE="POV" I $D(^PXD(811.2,TIEN,20,"AUID","ICD"))>0!($D(^PXD(811.2,TIEN,20,"AUID","10D"))>0) Q 1
  1. I TYPE="CPT" I $D(^PXD(811.2,TIEN,20,"AUID","CPT"))>0!($D(^PXD(811.2,TIEN,20,"AUID","CPC"))>0) Q 1
  1. Q 0
  1. ;
  1. HELP(HTEXT,TYPE) ;
  1. N CNT S CNT=1
  1. S HTEXT(CNT)="Set the taxonomy pick list display for the codes marked to be used in a dialog."
  1. I TYPE'["G" S CNT=CNT+1,HTEXT(CNT)="\\\\ A: To display a pick list for all codes "
  1. I TYPE["G" D Q
  1. .I "PD" D Q
  1. ..S CNT=CNT+1,HTEXT(CNT)="\\\\ D: To display a pick list for the diagnosis codes."
  1. ..S CNT=CNT+1,HTEXT(CNT)="\\\\ The procedure codes will automatically be filed to the encounter."
  1. ..S CNT=CNT+1,HTEXT(CNT)="\\\\ P: To display a pick list for the procedure codes."
  1. ..S CNT=CNT+1,HTEXT(CNT)="\\\\ The diagnosis codes will automatically be filed to the encounter."
  1. ..S CNT=CNT+1,HTEXT(CNT)="\\\\ N: To not display a pick list all codes will automatically be filed to the encounter."
  1. I TYPE["D" D
  1. .S CNT=CNT+1,HTEXT(CNT)="\\\\ D: To display a pick list for the diagnosis codes."
  1. .S CNT=CNT+1,HTEXT(CNT)="\\\\ The procedure codes will automatically be filed to the encounter."
  1. I TYPE["P" D
  1. .S CNT=CNT+1,HTEXT(CNT)="\\\\ P: To display a pick list for the procedure codes."
  1. .S CNT=CNT+1,HTEXT(CNT)="\\\\ The diagnosis codes will automatically be filed to the encounter."
  1. S CNT=CNT+1,HTEXT(CNT)="\\\\ N: To not display a pick list, all codes will automatically be filed "
  1. S CNT=CNT+1,HTEXT(CNT)="\\\\ to the encounter."
  1. Q
  1. ;