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

PXRMVSCS.m

Go to the documentation of this file.
  1. PXRMVSCS ;SLC/PKR - Value set code search routines. ;11/21/2014
  1. ;;2.0;CLINICAL REMINDERS;**47**;Feb 04, 2005;Build 291
  1. ;==========================================
  1. CODESRCH ;Search all value sets for a specified code.
  1. N CODE,CSYSIEN,RESULT
  1. D FULL^VALM1
  1. S RESULT=$$GETCODE(.CSYSIEN,.CODE)
  1. I 'RESULT Q
  1. D CSEARCH(CSYSIEN,CODE)
  1. S VALMBCK="R"
  1. Q
  1. ;
  1. ;==========================================
  1. CSEARCH(CSYSIEN,CODE) ;Find all value sets containing the specified code.
  1. N IND,JND,NL,TEXT,VSIEN,VSL,VSOID,VSNAME,VSVDATE
  1. S VSNAME=""
  1. F S VSNAME=$O(^PXRM(802.2,"B",VSNAME)) Q:VSNAME="" D
  1. . S VSIEN=0
  1. . F S VSIEN=+$O(^PXRM(802.2,"B",VSNAME,VSIEN)) Q:VSIEN=0 D
  1. .. I '$D(^PXRM(802.2,VSIEN,2,"B",CSYSIEN)) Q
  1. .. S IND=$O(^PXRM(802.2,VSIEN,2,"B",CSYSIEN,""))
  1. .. S JND=0
  1. .. F S JND=+$O(^PXRM(802.2,VSIEN,2,IND,1,JND)) Q:JND=0 D
  1. ... I ^PXRM(802.2,VSIEN,2,IND,1,JND,0)=CODE S VSL(VSNAME,VSIEN)=""
  1. ;Build the output.
  1. S TEXT(1)="Searching all value sets for the "_$P(^PXRM(802.1,CSYSIEN,0),U,1)_" code "_CODE
  1. I $D(VSL) S TEXT(2)="It was found in the following value sets:"
  1. E S TEXT(2)=" It was not found in any value set."
  1. S VSNAME="",NL=2
  1. F S VSNAME=$O(VSL(VSNAME)) Q:VSNAME="" D
  1. . S VSIEN=0
  1. . F S VSIEN=+$O(VSL(VSNAME,VSIEN)) Q:VSIEN=0 D
  1. .. S VSOID=$P(^PXRM(802.2,VSIEN,1),U,1)
  1. .. S VSVDATE=$P(^PXRM(802.2,VSIEN,1),U,3)
  1. .. S NL=NL+1,TEXT(NL)=""
  1. .. S NL=NL+1,TEXT(NL)=" "_VSNAME
  1. .. S NL=NL+1,TEXT(NL)=" OID: "_VSOID
  1. .. S NL=NL+1,TEXT(NL)=" Version date: "_$$FMTE^XLFDT(VSVDATE)
  1. .. S NL=NL+1,TEXT(NL)=""
  1. D BROWSE^DDBR("TEXT","NR","Value Set Code Search")
  1. Q
  1. ;
  1. ;==========================================
  1. GETCODE(CSYSIEN,CODE) ;Prompt the user for the code to search for.
  1. N CSIEN,CSNAME,CSVER,DIC,DIR,X,Y
  1. W !!,"NLM Value Set Coding Systems"
  1. S CSNAME=""
  1. F S CSNAME=$O(^PXRM(802.1,"B",CSNAME)) Q:CSNAME="" D
  1. . S CSIEN=$O(^PXRM(802.1,"B",CSNAME,""))
  1. . S CSVER=$P(^PXRM(802.1,CSIEN,0),U,3)
  1. . W !," ",CSNAME," version ",CSVER
  1. S DIC=802.1,DIC(0)="AE"
  1. S DIC("A")="Select the coding system: "
  1. D ^DIC
  1. S CSYSIEN=$P(Y,U,1)
  1. I CSYSIEN=-1 Q 0
  1. S DIR(0)="FAU^3:64"
  1. S DIR("A")="Input the code: "
  1. D ^DIR
  1. S CODE=Y
  1. I CODE="^" Q 0
  1. Q 1
  1. ;