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

PXRMLEXL.m

Go to the documentation of this file.
  1. PXRMLEXL ;SLC/PKR - List Manager routines for Taxonomies and Lexicon. ;14-Aug-2015 08:20;du
  1. ;;2.0;CLINICAL REMINDERS;**26,1005**;Feb 04, 2005;Build 23
  1. ;
  1. ;=========================================
  1. ADDSEL(ENUM,UID) ;Add entry ENUM to the selected list and highlight it.
  1. N CODE
  1. S CODE=^TMP("PXRMLEXL",$J,"CODE",ENUM)
  1. S ^TMP("PXRMLEXL",$J,"SELECTED",ENUM)=CODE_U_UID
  1. D HLITE(ENUM,1,UID)
  1. Q
  1. ;
  1. ;=========================================
  1. BLDLIST ;Build the Lexicon list.
  1. N CODE,CODESYS,CODESYSP,DESC,ENUM,FMTSTR,IND,JND
  1. N NCODES,NL,NLINES,NSEL,NUID,NUM,OUTPUT,START,TAXIEN,TERM,TEXT,UID
  1. S FMTSTR=$$LMFMTSTR^PXRMTEXT(.VALMDDF,"RLLLL")
  1. ;^TMP("PXRMLEXTC",$J) nodes are set in PXRMTXSM which calls this
  1. ;List Manager selection.
  1. ;Clear the display.
  1. D KILL^VALM10
  1. K ^TMP("PXRMLEXL",$J)
  1. S CODESYS=^TMP("PXRMLEXTC",$J,"CODESYS")
  1. S TAXIEN=^TMP("PXRMLEXTC",$J,"TAX IEN")
  1. S TERM=^TMP("PXRMLEXTC",$J,"LEX TERM")
  1. ;Clear the display.
  1. D KILL^VALM10
  1. K ^TMP("PXRMLEXL",$J)
  1. I '$D(^TMP("PXRMLEXS",$J,TERM,CODESYS)) D
  1. . D LEXLIST(TAXIEN,TERM,CODESYS,.NCODES,.NLINES,.TEXT)
  1. . M ^TMP("PXRMTEXT",$J,TERM,CODESYS,"TEXT")=TEXT
  1. . S ^TMP("PXRMTEXT",$J,TERM,CODESYS,"NCODES")=NCODES
  1. . S ^TMP("PXRMTEXT",$J,TERM,CODESYS,"NLINES")=NLINES
  1. I $D(^TMP("PXRMTEXT",$J,TERM,CODESYS)) D
  1. . S NCODES=^TMP("PXRMTEXT",$J,TERM,CODESYS,"NCODES")
  1. . S NLINES=^TMP("PXRMTEXT",$J,TERM,CODESYS,"NLINES")
  1. ;Get the coding system Lexicon information for building the display.
  1. ;DBIA #5679
  1. S CODESYSP=$$CSYS^LEXU(CODESYS)
  1. S TEXT=^TMP("PXRMLEXTC",$J,"LEX TERM")
  1. S TEXT=$S(($L(TEXT)'>66):TEXT,1:$E(TEXT,1,63)_"...")
  1. S VALMHDR(1)="Term/Code: "_TEXT
  1. S VALMHDR(2)=NCODES_" "_$P(CODESYSP,U,4)_$S(NCODES=1:" code was found",1:" codes were found")
  1. I NCODES=1,'$$UIDOK S VALMHDR(2)=VALMHDR(2)_" It cannot be used in a dialog."
  1. I NCODES>1,'$$UIDOK S VALMHDR(2)=VALMHDR(2)_" These cannot be used in a dialog."
  1. ;Set these so LM shows Page 1 of 1 when there are no codes.
  1. I NCODES=0 S VALMHDR(2)=VALMHDR(2)_".",^TMP("PXRMLEXL",$J,1,0)="",VALMCNT=1 Q
  1. ;
  1. ;If the display list has been saved restore it, if not build it.
  1. I $D(^TMP("PXRMLEXS",$J,TERM,CODESYS)) D
  1. . M ^TMP("PXRMLEXL",$J)=^TMP("PXRMLEXS",$J,TERM,CODESYS)
  1. . S VALMCNT=^TMP("PXRMLEXS",$J,TERM,CODESYS,"VALMCNT")
  1. I '$D(^TMP("PXRMLEXS",$J,TERM,CODESYS)) D
  1. . S VALMCNT=0
  1. . F IND=1:1:NLINES D
  1. .. S NUM=$P(TEXT(IND),U,1),CODE=$P(TEXT(IND),U,2)
  1. .. I NUM'="",CODE'="" S ENUM=NUM,^TMP("PXRMLEXL",$J,"CODE",NUM)=CODE,START=VALMCNT+1
  1. .. D FORMAT(TEXT(IND),FMTSTR,.NL,.OUTPUT)
  1. .. F JND=1:1:NL D
  1. ... S VALMCNT=VALMCNT+1,^TMP("PXRMLEXL",$J,VALMCNT,0)=OUTPUT(JND)
  1. ... S ^TMP("PXRMLEXL",$J,"IDX",VALMCNT,ENUM)=""
  1. .. S ^TMP("PXRMLEXL",$J,"LINES",ENUM)=START_U_VALMCNT
  1. . S ^TMP("PXRMLEXL",$J,"NCODES")=NCODES
  1. . S ^TMP("PXRMLEXL",$J,"VALMCNT")=VALMCNT
  1. ;If the display list has not been saved, save it.
  1. I '$D(^TMP("PXRMLEXS",$J,TERM,CODESYS)) M ^TMP("PXRMLEXS",$J,TERM,CODESYS)=^TMP("PXRMLEXL",$J)
  1. ;
  1. ;Mark any entries that were previously selected.
  1. S ENUM="",(NSEL,NUID)=0
  1. F S ENUM=$O(^TMP("PXRMLEXL",$J,"CODE",ENUM)) Q:ENUM="" D
  1. . S CODE=^TMP("PXRMLEXL",$J,"CODE",ENUM)
  1. . I CODE'="",$D(^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)) D Q
  1. .. S NSEL=NSEL+1
  1. .. S UID=+^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)
  1. .. I UID S NUID=NUID+1
  1. .. D ADDSEL(ENUM,UID)
  1. S VALMHDR(2)=VALMHDR(2)_", "_NSEL_" are selected."
  1. S PXRMLEXV="ALL"
  1. I $D(PXRMBGS("ALL")) S VALMBG=PXRMBGS("ALL")
  1. Q
  1. ;
  1. ;=========================================
  1. BLDSLIST ;Build the Lexicon list, selected or UID codes only.
  1. N CODE,CODESYS,CODESYSP,DONE,FMTSTR,IND,JND,KND
  1. N NL,NSEL,NUID,OUTPUT,START,TERM,TEXT,UID
  1. S FMTSTR=$$LMFMTSTR^PXRMTEXT(.VALMDDF,"RLLLL")
  1. ;^TMP("PXRMLEXTC",$J) nodes are set in PXRMTXSM which calls this
  1. ;List Manager selection.
  1. ;Clear the display.
  1. D KILL^VALM10
  1. K ^TMP("PXRMLEXL",$J)
  1. S CODESYS=^TMP("PXRMLEXTC",$J,"CODESYS")
  1. ;DBIA #5679
  1. S CODESYSP=$$CSYS^LEXU(CODESYS)
  1. S TERM=^TMP("PXRMLEXTC",$J,"LEX TERM")
  1. S TEXT=^TMP("PXRMLEXTC",$J,"LEX TERM")
  1. S TEXT=$S(($L(TEXT)'>66):TEXT,1:$E(TEXT,1,63)_"...")
  1. ;Get the entries that were previously selected.
  1. S NLINES=^TMP("PXRMTEXT",$J,TERM,CODESYS,"NLINES")
  1. S (NSEL,NUID,VALMCNT)=0
  1. F IND=1:1:NLINES D
  1. . S TEMP=^TMP("PXRMTEXT",$J,TERM,CODESYS,"TEXT",IND)
  1. . S CODE=$P(TEMP,U,2)
  1. . I (CODE'=""),'$D(^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)) Q
  1. .;Skip additional activation/inactivation lines for non-selected codes.
  1. . I CODE="" Q
  1. . I CODE'="" S UID=^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)
  1. . I UID S NUID=NUID+1
  1. . S NSEL=NSEL+1
  1. . S ^TMP("PXRMLEXL",$J,"CODE",NSEL)=CODE,START=VALMCNT+1
  1. . S TEXT=NSEL_U_CODE_U_$P(TEMP,U,3,5)
  1. . D FORMAT(TEXT,FMTSTR,.NL,.OUTPUT)
  1. . F JND=1:1:NL D
  1. .. S VALMCNT=VALMCNT+1,^TMP("PXRMLEXL",$J,VALMCNT,0)=OUTPUT(JND)
  1. .. S ^TMP("PXRMLEXL",$J,"IDX",VALMCNT,NSEL)=""
  1. . ;S ^TMP("PXRMLEXL",$J,"LINES",NSEL)=START_U_VALMCNT
  1. . ;D ADDSEL(NSEL,UID)
  1. .;Check for additional activation/inactivation lines.
  1. . S KND=IND
  1. . S DONE=$S(IND<NLINES:0,1:1)
  1. . F Q:DONE D
  1. .. S KND=KND+1
  1. .. S TEMP=^TMP("PXRMTEXT",$J,TERM,CODESYS,"TEXT",KND)
  1. .. I $P(TEMP,U,2)'="" S DONE=1 Q
  1. .. I KND=NLINES S DONE=1
  1. .. S IND=KND
  1. .. D FORMAT(TEMP,FMTSTR,.NL,.OUTPUT)
  1. .. F JND=1:1:NL D
  1. ... S VALMCNT=VALMCNT+1,^TMP("PXRMLEXL",$J,VALMCNT,0)=OUTPUT(JND)
  1. ... S ^TMP("PXRMLEXL",$J,"IDX",VALMCNT,NSEL)=""
  1. . S ^TMP("PXRMLEXL",$J,"LINES",NSEL)=START_U_VALMCNT
  1. . D ADDSEL(NSEL,UID)
  1. S ^TMP("PXRMLEXL",$J,"NCODES")=NSEL
  1. S ^TMP("PXRMLEXL",$J,"VALMCNT")=VALMCNT
  1. S VALMHDR(1)="Term/Code: "_TERM
  1. S VALMHDR(2)="Selected "_$P(CODESYSP,U,4)_": "_NSEL_" selected codes, "_NUID_" UID codes."
  1. S PXRMLEXV="SEL"
  1. S VALMBG=$S($D(PXRMBGS("SEL")):PXRMBGS("SEL"),1:1)
  1. Q
  1. ;
  1. ;=========================================
  1. CPLIST(TAXIEN,TERM,CODESYS,NCODES,NLINES,TEXT) ;Build the list for a copy from
  1. ;a range list of codes.
  1. N ACTDT,CODE,DATA,INACTDT,NUM,SDESC,TEMP
  1. S CODE="",(NCODES,NLINES)=0
  1. F S CODE=$O(^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)) Q:CODE="" D
  1. . K DATA
  1. .;DBIA #1997, #3991
  1. . I CODESYS="CPC" D PERIOD^ICPTAPIU(CODE,.DATA)
  1. . I CODESYS="CPT" D PERIOD^ICPTAPIU(CODE,.DATA)
  1. . I CODESYS="ICD" D PERIOD^ICDAPIU(CODE,.DATA)
  1. . I CODESYS="ICP" D PERIOD^ICDAPIU(CODE,.DATA)
  1. . I +DATA(0)=-1 Q
  1. . S NCODES=NCODES+1
  1. . S (ACTDT,NUM)=0
  1. . F S ACTDT=$O(DATA(ACTDT)) Q:ACTDT="" D
  1. .. S TEMP=DATA(ACTDT)
  1. .. S NUM=NUM+1
  1. .. S INACTDT=$P(TEMP,U,1)
  1. .. S SDESC=$P(TEMP,U,2)
  1. .. S NLINES=NLINES+1
  1. .. I NUM=1 S TEXT(NLINES)=NCODES_U_CODE_U_ACTDT_U_INACTDT_U_SDESC
  1. .. E S TEXT(NLINES)=U_U_ACTDT_U_INACTDT_U_SDESC
  1. Q
  1. ;
  1. ;=========================================
  1. ENTRY ;Entry code
  1. D INITMPG^PXRMLEXL
  1. D BLDLIST^PXRMLEXL
  1. D XQORM
  1. Q
  1. ;
  1. ;=========================================
  1. EXIT ;Exit code
  1. D INITMPG^PXRMLEXL
  1. D FULL^VALM1
  1. D CLEAN^VALM10
  1. D KILL^VALM10
  1. D CLEAR^VALM1
  1. S VALMBCK="Q"
  1. Q
  1. ;
  1. ;=========================================
  1. EXITS ;Exit and save action.
  1. D SAVE^PXRMLEXL
  1. S VALMBCK="Q"
  1. Q
  1. ;
  1. ;=========================================
  1. FORMAT(TEXT,FMTSTR,NL,OUTPUT) ;Format entry number, code,
  1. ;activation date, inactivation date, short text for LM display.
  1. N ACTDT,INACTDT
  1. S ACTDT=$P(TEXT,U,3),INACTDT=$P(TEXT,U,4)
  1. S ACTDT=$$FMTE^XLFDT(ACTDT,5)
  1. S INACTDT=$$FMTE^XLFDT(INACTDT,5)
  1. S $P(TEXT,U,3)=ACTDT,$P(TEXT,U,4)=INACTDT
  1. D COLFMT^PXRMTEXT(FMTSTR,TEXT," ",.NL,.OUTPUT)
  1. Q
  1. ;
  1. ;=========================================
  1. GETLIST(LIST) ;Let the user input a list of items.
  1. N INUM,ITEM,LEND,LELEM,NCODES,LSTART,X,Y
  1. S NCODES=+$G(^TMP("PXRMLEXL",$J,"NCODES"))
  1. I NCODES=0 Q
  1. I NCODES=1 S LIST(1)="" Q
  1. S DIR(0)="LC^1:"_NCODES
  1. D ^DIR
  1. I $E(Y,1)="^" Q
  1. ;Populate the list.
  1. F INUM=1:1:($L(Y,",")-1) D
  1. . S LELEM=$P(Y,",",INUM)
  1. . I LELEM?1.N S LIST(LELEM)=""
  1. . S LSTART=$P(LELEM,"-",1),LEND=$P(LELEM,"-",2)
  1. . F ITEM=LSTART:1:LEND S LIST(ITEM)=""
  1. Q
  1. ;
  1. ;=========================================
  1. HDR ; Header code
  1. S VALMHDR(1)="Select Lexicon items to include in the taxonomy."
  1. S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
  1. Q
  1. ;
  1. ;=========================================
  1. HELP ;Display help.
  1. D HELP^BPXRMEXT
  1. Q
  1. ;
  1. ;=========================================
  1. HLITE(ENUM,MODE,UID) ;Highlight/unhighlight an entry. MODE=1 turns on
  1. ;highlighting, MODE=0 turns it off.
  1. N LINE,START,STOP,VCTRL
  1. S VCTRL=$S(MODE=1:IOINHI,1:IOINORM)
  1. S START=$P(^TMP("PXRMLEXL",$J,"LINES",ENUM),U,1)
  1. S STOP=$P(^TMP("PXRMLEXL",$J,"LINES",ENUM),U,2)
  1. F LINE=START:1:STOP D CNTRL^VALM10(LINE,1,80,VCTRL,IOINORM)
  1. ;If the entry is marked Use In Dialog turn on marker.
  1. I MODE=1,UID=1 D FLDCTRL^VALM10(START,"CODE",IORVON,IORVOFF,"")
  1. I MODE=0 D FLDCTRL^VALM10(START,"CODE",IORVOFF,IORVOFF,"")
  1. Q
  1. ;
  1. ;=========================================
  1. IMPLIST(TAXIEN,TERM,CODESYS,NCODES,NLINES,TEXT) ;Build the list for an
  1. ;imported set of codes.
  1. D IMPLIST^BPXRMEXT(TAXIEN,TERM,CODESYS,.NCODES,.NLINES,.TEXT)
  1. Q
  1. ;
  1. ;=========================================
  1. INCL ;Put the selected entries on the selected list and highlight them.
  1. N SEL,SELLIST
  1. ;Get the list.
  1. D GETLIST(.SELLIST)
  1. ;If there is no list quit.
  1. I '$D(SELLIST) Q
  1. S SEL=""
  1. F S SEL=$O(SELLIST(SEL)) Q:SEL="" D ADDSEL(SEL,"")
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;=========================================
  1. INCX(LIST,UID) ;Put the selected entries on the selected list and highlight
  1. ;them.
  1. N ENUM,IND
  1. F IND=1:1:$L(LIST,",") D
  1. . S ENUM=$P(LIST,",",IND)
  1. . D ADDSEL(ENUM,UID)
  1. Q
  1. ;
  1. ;=========================================
  1. INITMPG ;Initialize all the ^TMP globals.
  1. K ^TMP("PXRMLEXL",$J)
  1. Q
  1. ;
  1. ;=========================================
  1. LEXLIST(TAXIEN,TERM,CODESYS,NCODES,NLINES,TEXT) ;Call Lexicon to get the list
  1. ;of codes.
  1. I $E(TERM,1,9)="Copy from" D CPLIST(TAXIEN,TERM,CODESYS,.NCODES,.NLINES,.TEXT) Q
  1. I TERM["(imported)" D IMPLIST(TAXIEN,TERM,CODESYS,.NCODES,.NLINES,.TEXT) Q
  1. N ACTDT,CODE,CODEI,INACTDT,IND,NUM
  1. N RESULT,SRC,SDESC,TEMP
  1. W @IOF,"Searching Lexicon ..."
  1. K ^TMP("LEXTAX",$J)
  1. ;DBIA #5681
  1. S RESULT=$$TAX^LEX10CS(TERM,CODESYS,DT,"LEXTAX",0)
  1. S NCODES=+RESULT
  1. I NCODES=-1 S (NCODES,NLINES)=0 K ^TMP("LEXTAX",$J) Q
  1. S SRC=+$O(^TMP("LEXTAX",$J,0))
  1. I CODESYS="SCT" D SCTDESC("LEXTAX")
  1. S CODEI="",(NLINES,NUM)=0
  1. F S CODEI=$O(^TMP("LEXTAX",$J,SRC,CODEI)) Q:CODEI="" D
  1. . S NUM=NUM+1,IND=0
  1. . F S IND=$O(^TMP("LEXTAX",$J,SRC,CODEI,IND)) Q:IND="" D
  1. .. S TEMP=^TMP("LEXTAX",$J,SRC,CODEI,IND)
  1. .. S ACTDT=$P(TEMP,U,1),INACTDT=$P(TEMP,U,2)
  1. .. S TEMP=^TMP("LEXTAX",$J,SRC,CODEI,IND,0)
  1. .. S CODE=$P(TEMP,U,1),SDESC=$P(TEMP,U,2)
  1. .. S NLINES=NLINES+1
  1. .. I IND=1 S TEXT(NLINES)=NUM_U_CODE_U_ACTDT_U_INACTDT_U_SDESC
  1. .. E S TEXT(NLINES)=U_U_ACTDT_U_INACTDT_U_SDESC
  1. K ^TMP("LEXTAX",$J)
  1. Q
  1. ;
  1. ;=========================================
  1. PEXIT ; Protocol exit code
  1. S VALMSG="+ Next Screen - Prev Screen ?? More Actions"
  1. ;Reset after page up/down etc
  1. D XQORM
  1. Q
  1. ;
  1. ;=========================================
  1. RFD(ENUM) ;Remove UID from the selected entry.
  1. N START
  1. S $P(^TMP("PXRMLEXL",$J,"SELECTED",ENUM),U,2)=0
  1. S START=$P(^TMP("PXRMLEXL",$J,"LINES",ENUM),U,1)
  1. D FLDCTRL^VALM10(START,"CODE",IORVOFF,IORVOFF,"")
  1. Q
  1. ;
  1. ;=========================================
  1. RFDL ;Remove UID from the selected entries.
  1. N SEL,SELLIST
  1. ;Get the list.
  1. D GETLIST(.SELLIST)
  1. ;If there is no list quit.
  1. I '$D(SELLIST) Q
  1. S SEL=""
  1. F S SEL=$O(SELLIST(SEL)) Q:SEL="" D RFD(SEL)
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;=========================================
  1. RFDX(LIST) ;Remove UID from the selected entries.
  1. N ENUM,IND
  1. F IND=1:1:$L(LIST,",") D
  1. . S ENUM=$P(LIST,",",IND)
  1. . D RFD(ENUM)
  1. Q
  1. ;
  1. ;=========================================
  1. RFT(ENUM) ;Remove entry ENUM from the selected list and unhighlight it.
  1. K ^TMP("PXRMLEXL",$J,"SELECTED",ENUM)
  1. D HLITE(ENUM,0,0)
  1. Q
  1. ;
  1. ;=========================================
  1. RFTL ;Remove the selected entries from the selected list and unhighlight them.
  1. N SEL,SELLIST
  1. ;Get the list.
  1. D GETLIST(.SELLIST)
  1. ;If there is no list quit.
  1. I '$D(SELLIST) Q
  1. S SEL=""
  1. F S SEL=$O(SELLIST(SEL)) Q:SEL="" D RFT(SEL)
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;=========================================
  1. RFTX(LIST) ;Remove the selected entries from the selected list and unhighlight
  1. ;them.
  1. N ENUM,IND
  1. F IND=1:1:$L(LIST,",") D
  1. . S ENUM=$P(LIST,",",IND)
  1. . D RFT(ENUM)
  1. Q
  1. ;
  1. ;=========================================
  1. SAVE ;Save the selected entries in the taxonomy.
  1. N CODE,CODESYS,ENUM,TEMP,TERM,UID
  1. ;^TMP("PXRMLEXTC",$J) nodes are set in PXRMTXSM which calls this
  1. ;List Manager selection.
  1. S CODESYS=^TMP("PXRMLEXTC",$J,"CODESYS")
  1. S TERM=^TMP("PXRMLEXTC",$J,"LEX TERM")
  1. K ^TMP("PXRMCODES",$J,TERM,CODESYS)
  1. ;Mark this coding system as having been edited so it is not reloaded
  1. ;from the taxonomy in CODELIST^PXRMTXSM.
  1. S ^TMP("PXRMCODES",$J,TERM,CODESYS)=""
  1. S ENUM=0,NSEL=0
  1. F S ENUM=$O(^TMP("PXRMLEXL",$J,"SELECTED",ENUM)) Q:ENUM="" D
  1. . S TEMP=^TMP("PXRMLEXL",$J,"SELECTED",ENUM)
  1. . S CODE=$P(TEMP,U,1),UID=$P(TEMP,U,2)
  1. . S ^TMP("PXRMCODES",$J,TERM,CODESYS,CODE)=UID
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;=========================================
  1. SCTDESC(NODE) ;Append the SNOMED hierarchy to the description and then
  1. ;sort the list by description.
  1. D SCTDESC^BPXRMEXT(NODE)
  1. Q
  1. ;
  1. ;=========================================
  1. UIDL ;Mark selected entries as UID.
  1. N SEL,SELLIST
  1. ;Get the list.
  1. D GETLIST(.SELLIST)
  1. ;If there is no list quit.
  1. I '$D(SELLIST) Q
  1. S SEL=""
  1. F S SEL=$O(SELLIST(SEL)) Q:SEL="" D ADDSEL(SEL,1)
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;=========================================
  1. UIDOK() ;Check the coding system to determine if it can be used in a dialog.
  1. ;IHS/MSC/MGH ICD and SNOMEDs turned off to be used in dialogs P1005
  1. N CODESYS
  1. S CODESYS=^TMP("PXRMLEXTC",$J,"CODESYS")
  1. ;I CODESYS="10D" Q 1
  1. I CODESYS="CPC" Q 1
  1. I CODESYS="CPT" Q 1
  1. ;I CODESYS="ICD" Q 1
  1. ;I CODESYS="SCT" Q 1
  1. S (XQORQUIT,XQORPOP)=1
  1. Q 0
  1. ;
  1. ;=========================================
  1. VIEW() ;Select the view.
  1. S VALMBCK="R"
  1. Q
  1. ;I PXRMLEXV="ALL" S PXRMBGS("ALL")=VALMBG D BLDSLIST Q
  1. ;I PXRMLEXV="SEL" S PXRMBGS("SEL")=VALMBG D BLDLIST Q
  1. ;Q
  1. ;
  1. ;=========================================
  1. XQORM ; Set range for selection.
  1. N NCODES
  1. S NCODES=+$G(^TMP("PXRMLEXL",$J,"NCODES"))
  1. I NCODES=0 Q
  1. S XQORM("#")=$O(^ORD(101,"B","PXRM LEXICON SELECT ENTRY",0))_U_"1:"_NCODES
  1. S XQORM("A")="Select Action: "
  1. Q
  1. ;
  1. ;=========================================
  1. XSEL ;Entry action for protocol PXRM LEXICON SELECT ENTRY.
  1. D XSEL^BPXRMEXT
  1. Q
  1. ;