PXRMDLG1 ; SLC/PJH - Reminder Dialog Edit/Inquiry (overflow) ;07/29/2004
 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
 ;
 ;Get selectable codes for a taxonomy
 ;-----------------------------------
CODES(FILE,TIEN,NLINE,HIST) ;
 N BDATE,CODES,CODE,DATES,DESC,DTEXT,EDATE,STR,SUB,TAB,TEXT
 ;Display text
 D CODES^PXRMDLLB(FILE,TIEN,.CODES)
 I '$D(CODES) Q
 S TEXT=$J("",15)_"Selectable codes:",TAB=18
 S STR=$$LJ^XLFSTR($G(TEXT),60)
 S STR=STR_"Activation Periods"
 S NLINE=NLINE+1
 S ^TMP(NODE,$J,NLINE,0)=STR
 S SUB=""
 F  S SUB=$O(CODES(SUB)) Q:SUB=""  D
 .S CODE=$P(CODES(SUB),U,2),DESC=$P(CODES(SUB),U,3)
 .S BDATE=$$FMTE^XLFDT($P($G(CODE),":",2))
 .I $P($G(CODE),":",3)'="" S EDATE=$$FMTE^XLFDT($P($G(CODE),":",3))
 .S DATE=BDATE I $G(EDATE)'="" S DATE=DATE_"-"_EDATE
 .S STR=$$LJ^XLFSTR($P($G(CODE),":"),8)
 .S STR=STR_$$LJ^XLFSTR(DESC,31)
 .S DTEXT=STR_DATE
 .S NLINE=NLINE+1
 .S ^TMP(NODE,$J,NLINE,0)=$J("",15)_DTEXT
 Q
 ;Either dialog text or P/N text
 ;------------------------------
TSUB(IEN,VIEW) ;
 ;Dialog View uses Dialog text
 I VIEW=1 Q 25
 I VIEW=2,$D(^PXRMD(801.41,IEN,25)) Q 25
 ;P/N View uses P/N TEXT if defined
 I $D(^PXRMD(801.41,IEN,35)) Q 35
 ;Otherwise Dialog Text
 Q 25
 ;
 ;additional prompts in the dialog file
 ;-------------------------------------
PROMPT(IEN,TAB,TEXT,DGRP) ;
 N DATA,DDIS,DGSEQ,DSUB,DTITLE,DTXT,DTYP,SEQ,SUB
 S SEQ=0
 F  S SEQ=$O(^PXRMD(801.41,IEN,10,"B",SEQ)) Q:'SEQ  D
 .S SUB=$O(^PXRMD(801.41,IEN,10,"B",SEQ,"")) Q:'SUB
 .S DSUB=$P($G(^PXRMD(801.41,IEN,10,SUB,0)),U,2) Q:'DSUB 
 .S DATA=$G(^PXRMD(801.41,DSUB,0)) Q:DATA=""
 .S DNAME=$P(DATA,U),DDIS=$P(DATA,U,3),DTYP=$P(DATA,U,4)
 .I VIEW,('DGRP),(DTYP'="P") Q
 .I ('VIEW),('DGRP),("FP"'[DTYP) Q
 .S:VIEW DDIS=""
 .I DTYP="F" S DNAME=DNAME_" (forced value)"
 .I DGRP D
 ..S DGSEQ=$P($G(^PXRMD(801.41,IEN,10,SUB,0)),U)
 ..S DNAME=DGSEQ_$J("",3-$L(DGSEQ))_DNAME
 .I TAB=0,DTYP="P" D
 ..;Override prompt caption
 ..S DTITLE=$P($G(^PXRMD(801.41,IEN,10,SUB,0)),U,6)
 ..I DTITLE="" S DTITLE=$P($G(^PXRMD(801.41,DSUB,2)),U,4)
 ..S DNAME=$J("",3)_DTITLE
 .I TAB=0,DTYP="F" S DNAME=$J("",3)_DNAME
 .S DNAME=$J("",15)_$G(TEXT)_DNAME
 .S:DDIS]"" DNAME=DNAME_$J("",72-$L(DNAME))_DDIS
 .S VALMCNT=VALMCNT+1
 .S ^TMP("PXRMDLG",$J,VALMCNT,0)=DNAME
 .S TEXT=$J("",TAB)
 Q
 ;
FIND(FIEN,SEQ,DIEN,NLINE,NODE) ;
 N FNUM,TIEN,HIST,SUB,CODE,CODES,BDATE,EDATE,DATE,DESC,DTEXT
 S HIST=0
 S TIEN=$P(FIEN,";")
 I FIEN["ICPT" S FNUM=81
 I FIEN["ICD9" S FNUM=80
 I FNUM=80 S CODE=$P($G(^ICD9(TIEN,0)),U) D PERIOD^ICDAPIU(CODE,.CODES)
 I FNUM=81 S CODE=$P($$CPT^ICPTCOD(TIEN),U,2) D PERIOD^ICPTAPIU(CODE,.CODES)
 S TEXT=$J("",15)_"Selectable codes:",TAB=18
 S STR=$$LJ^XLFSTR($G(TEXT),60)
 S STR=STR_"Activation Periods"
 S NLINE=NLINE+1
 S ^TMP(NODE,$J,NLINE,0)=STR
 S BDATE=""
 F  S BDATE=$O(CODES(BDATE)) Q:BDATE=""  D
 .I $G(BDATE)=0 Q
 .S EDATE=$P(CODES(BDATE),U),DESC=$P(CODES(BDATE),U,2)
 .S BDATE=$$FMTE^XLFDT(BDATE)
 .I $G(EDATE)'="" S EDATE=$$FMTE^XLFDT(EDATE)
 .S DATE=BDATE I $G(EDATE)'="" S DATE=DATE_"-"_EDATE
 .S STR=$$LJ^XLFSTR($G(CODE),8)
 .S STR=STR_$$LJ^XLFSTR(DESC,31)
 .S DTEXT=STR_DATE
 .S NLINE=NLINE+1
 .S ^TMP(NODE,$J,NLINE,0)=$J("",15)_DTEXT
 S NLINE=NLINE+1
 S ^TMP(NODE,$J,NLINE,0)=$J("",79)
 Q
 ;
TAX(FIEN,SEQ,DIEN,NLINE,NODE) ;
 N ARRAY,CNT,FILE,HIST,TIEN,TSEQ
 N CNT,DTXT,FNODE,RSUB,TDX,TNAME,TPAR,TPR,TYP
 N TCUR,TDTXT,TDHTXT,THIS,TPTXT,TPHTXT
 S TIEN=$P(FIEN,";") Q:TIEN=""
 S HIST=0,FILE=""
 ;Get associated codes
 ;
 ;Get taxonomy name
 S TNAME=$P($G(^PXD(811.2,TIEN,0)),U,1)
 ;
 ;Check what type of taxonomy codes exist
 S TDX=$$TOK^PXRMDLLA(TIEN,"SDX")
 S TPR=$$TOK^PXRMDLLA(TIEN,"SPR")
 ;
 ;Diagnoses
 I TDX D
 .;Diagnosis texts
 .S TPAR=$G(^PXD(811.2,TIEN,"SDZ"))
 .;Get parameter file node for this finding type
 .S FNODE=$O(^PXRMD(801.45,"B","POV","")) Q:FNODE=""
 .;check if finding parameters are disabled
 .S TCUR=$P($G(^PXRMD(801.45,FNODE,1,1,0)),U,2)
 .S THIS=$P($G(^PXRMD(801.45,FNODE,1,2,0)),U,2)
 .;get category text (diagnoses)
 .S FILE=80
 ;Procedures
 I TPR D
 .;Procedure texts
 .S TPAR=$G(^PXD(811.2,TIEN,"SPZ"))
 .;Get parameter file node for this finding type
 .S FNODE=$O(^PXRMD(801.45,"B","CPT","")) Q:FNODE=""
 .;check if finding parameters are disabled
 .S TCUR=$P($G(^PXRMD(801.45,FNODE,1,1,0)),U,2)
 .S THIS=$P($G(^PXRMD(801.45,FNODE,1,2,0)),U,2)
 .;get category text (procedures)
 .S FILE=81
 I FILE]"" D CODES(FILE,TIEN,.NLINE,HIST)
 S NLINE=NLINE+1
 S ^TMP(NODE,$J,NLINE,0)=$J("",79)
 Q
 ;
