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

PXRMDLG2.m

Go to the documentation of this file.
  1. PXRMDLG2 ; SLC/PJH - Reminder Dialog Edit/Inquiry ;06/02/2009
  1. ;;2.0;CLINICAL REMINDERS;**12**;Feb 04, 2005;Build 73
  1. ;
  1. ;Find description for dialog type
  1. LIT(INP) ;
  1. Q:INP="G" "Dialog group: "
  1. Q:INP="F" "Forced value: "
  1. Q:INP="P" "Prompt: "
  1. Q:INP="E" "Dialog element: "
  1. Q "???"
  1. ;
  1. ;Additional Findings
  1. ADD(DIEN) ;
  1. N FIND,FSUB,FTYP,FNAME,FNUM
  1. S FSUB=0
  1. F S FSUB=$O(^PXRMD(801.41,DIEN,3,FSUB)) Q:'FSUB D
  1. .S FIND=$P($G(^PXRMD(801.41,DIEN,3,FSUB,0)),U) Q:FIND=""
  1. .S FNAME="" D DESC(FIND) Q:FNAME=""
  1. .S FNAME="Additional Finding: "_FNAME
  1. .;Save additional finding name
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
  1. Q
  1. ;Finding description
  1. DESC(FIEN) ;
  1. ;Determine finding type
  1. S FGLOB=$P(FIEN,";",2) Q:FGLOB=""
  1. S FITEM=$P(FIEN,";") Q:FITEM=""
  1. ;Diagnosis POV
  1. I FGLOB["ICD9" D Q
  1. .S FTYP="DIAGNOSIS",FGLOB=U_FGLOB_FITEM_",0)"
  1. .S FNAME=$P($G(@FGLOB),U,3)_" ["_FITEM_"]"
  1. ;Procedure CPT
  1. I FGLOB["ICPT" D Q
  1. .S FTYP="PROCEDURE",FGLOB=U_FGLOB_FITEM_",0)"
  1. .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]"
  1. ;Quick order
  1. I FGLOB["ORD(101.41" D Q
  1. .S FTYP="QUICK ORDER",FGLOB=U_FGLOB_FITEM_",0)"
  1. .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]"
  1. ;Short name for finding type
  1. S FTYP=$G(DEF1(FGLOB)) Q:FTYP=""
  1. S FNUM=" ["_FTYP_"("_FITEM_")]"
  1. ;Long name
  1. S FTYP=$G(DEF2(FTYP))
  1. S FGLOB=U_FGLOB_FITEM_",0)"
  1. S FNAME=$P($G(@FGLOB),U,1)
  1. I FNAME="" S FNAME=$P($G(@FGLOB),U)
  1. I FNAME]"" S FNAME=FNAME_FNUM Q
  1. S FNAME=FITEM
  1. Q
  1. ;
  1. ;Dialog Details (DD)
  1. DETAIL(PIEN) ;
  1. ;Get prompt data
  1. N DATA
  1. S DATA=$G(^PXRMD(801.41,PIEN,0))
  1. ;Extract name, type and disabled
  1. S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP)
  1. ;Result (if any)
  1. S RESULT=$P(DATA,U,15)
  1. I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U)
  1. ;Get Resolution/Finding details
  1. S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5)
  1. ;Resolution status name (assume this is a set)
  1. S RNAME="???"
  1. I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???"
  1. ;Set Default display values
  1. S FNAME="???",FTYP="???",ONAME="???"
  1. ;For quick orders get the orderable item
  1. I RNAME="ORDERED" D
  1. .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*"
  1. .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN
  1. .S FGLOB="^ORD(101.43,"_OIEN_",0)"
  1. .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]"
  1. ;Description of finding
  1. D DESC(FIEN)
  1. ;
  1. S RNAME="Resolution: "_RNAME
  1. S FTYP="Finding type: "_FTYP
  1. S FNAME="Finding item: "_FNAME
  1. S VALMCNT=VALMCNT+1
  1. S PTXT=$J(SEQ,3)_$J("",12)_PTYP_PNAME
  1. S ^TMP("PXRMDLG",$J,VALMCNT,0)=PTXT_$J("",72-$L(PTXT))_$S(+PDIS>0:" (Disabled)",1:"")
  1. S ^TMP("PXRMDLG",$J,"IDX",SEQ,PIEN)=""
  1. ;Save resolution
  1. I ('DGRP),(FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D
  1. .I RNAME'["???" D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME
  1. .I FTYP["QUICK ORDER" D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME
  1. I ('DGRP) D
  1. .;Save finding type
  1. .I FTYP'["???" D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP
  1. ;Save finding name
  1. I ('DGRP),(FNAME'["???") D
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
  1. ;Additional Findings
  1. I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN)
  1. ;Result group/element (mental health)
  1. I RESULT D
  1. .;Save result details
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Result name: "_RESNM
  1. ;Get additional prompts/dialog group elements
  1. D PROMPT^PXRMDLG1(PIEN,20,DHED,DGRP)
  1. Q
  1. ;
  1. ;Group findings and prompts
  1. GROUP(PIEN) ;
  1. ;Get prompt data
  1. S DATA=$G(^PXRMD(801.41,PIEN,0))
  1. ;Extract name, type and disabled
  1. S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP)
  1. ;Result (if any)
  1. S RESULT=$P(DATA,U,15)
  1. I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U)
  1. ;Get Resolution/Finding details
  1. S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5)
  1. ;Resolution status name (assume this is a set)
  1. S RNAME="???"
  1. I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???"
  1. ;Set Default display values
  1. S FNAME="???",FTYP="???",ONAME="???"
  1. ;For quick orders get the orderable item
  1. I RNAME="ORDERED" D
  1. .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*"
  1. .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN
  1. .S FGLOB="^ORD(101.43,"_OIEN_",0)"
  1. .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]"
  1. ;Description of finding
  1. D DESC(FIEN)
  1. ;
  1. S RNAME="Resolution: "_RNAME
  1. S FTYP="Finding type: "_FTYP
  1. S FNAME="Finding item: "_FNAME
  1. ;Save resolution
  1. I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D
  1. .I RNAME'["???" D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME
  1. .I FTYP["QUICK ORDER" D
  1. ..S VALMCNT=VALMCNT+1
  1. ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME
  1. ;Save finding type
  1. I FTYP'["???" D
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP
  1. ;Save finding name
  1. I (FNAME'["???") D
  1. .S VALMCNT=VALMCNT+1
  1. .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
  1. ;Additional Findings
  1. I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN)
  1. ;Get additional prompts/dialog group elements
  1. D PROMPT^PXRMDLG1(PIEN,20,"Additional prompts: ",0)
  1. ;Final line feed
  1. S VALMCNT=VALMCNT+1
  1. S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
  1. Q