- HMPMDUTL ;DSS/BLJ,ASMR/RRB - FileMan JSON utilities for HMP;4 November 2015 @16:51:35
- ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**;Sep 01, 2011;Build 63
- ;Per VA Directive 6402, this routine should not be modified.
- ;
- ;DE2818 SQA findings Newed HMPCNT, HMPFINI, HMPLAST, TERMCHLD, TERMUNIT, and TERMQUAL ASMR/RRB
- ;
- Q
- ;
- EN Q ; Only call via linetag.
- TERM ; Retrieves list of terms
- ; NOTE: This tag will NOT support paged retrieves unless necessary.
- ; Do not expect them.
- ;
- ; DE2818 SQA findings HMPCNT, HMPFINI, HMPLAST
- ;
- ; Gets terminology.
- N HMPFINI,TERMIENS,TERMCNT,X
- D LIST^DIC("704.101",,,,,,,,"I $P(^(0),U,5)=1")
- M TERMIENS=^TMP("DILIST",$J,2)
- S TERMCNT=$P($G(^TMP("DILIST",$J,0)),U,1)
- K ^TMP("DILIST",$J)
- ;
- F X=0:0 S X=$O(TERMIENS(X)) Q:'X D
- . N HMPCNT,HMPLAST,RESULT
- . ; term
- . D ONETERM($G(TERMIENS(X)),"RESULT")
- . ;
- . D ADD^HMPEF("RESULT")
- . S HMPCNT=X,HMPLAST=X
- I 'X S HMPFINI=1
- Q
- ONETERM(ID,TARGET) ; load one term
- Q:+ID<1 ; Validate integer/id.
- N $ES,$ET,ERRMSG
- S ERRMSG=$$ERRMSG^HMPEF("CLiO Term",ID)
- S $ET="D ERRHDLR^HMPDERRH"
- N TERM,TRM,TERMTYPE
- ;
- D GETS^DIQ("704.101",ID_",","*","IE","TERM")
- N TRM S TRM=$NA(TERM(704.101,""_ID_","))
- S @TARGET@("id")=$G(@TRM@(.01,"E"))
- S @TARGET@("uid")="urn:va:clioterminology:"_$G(@TARGET@("id"))
- S @TARGET@("term")=$$SANITIZE($G(@TRM@(.02,"E")))
- S @TARGET@("abbreviation")=$$SANITIZE($G(@TRM@(.03,"E")))
- S @TARGET@("displayName")=$$SANITIZE($G(@TRM@(.04,"E")))
- ; Get Term Type
- S TERMTYPE=$$SANITIZE($G(@TRM@(.05,"I")))
- D TERMTYPE(TERMTYPE,.TARGET)
- ;
- S @TARGET@("dataType")=$$SANITIZE($G(@TRM@(.06,"I")))
- S @TARGET@("valueType")=$$SANITIZE($G(@TRM@(.07,"I")))
- S @TARGET@("active")=$$SANITIZE($G(@TRM@(.09,"E")))
- S @TARGET@("description")=$$SANITIZE($G(@TRM@(.1,"E")))
- S @TARGET@("helpText")=$$SANITIZE($G(@TRM@(.2,"E")))
- S @TARGET@("booleanValueTrue")=$$SANITIZE($G(@TRM@(.31,"E")))
- S @TARGET@("booleanValueFalse")=$$SANITIZE($G(@TRM@(.32,"E")))
- S @TARGET@("multiSelectPicklist")=$$SANITIZE($G(@TRM@(.33,"E")))
- S @TARGET@("VUID")="urn:va:vuid:"_$$SANITIZE($G(@TRM@(99.99,"E")))
- ; term -> child terms
- ;
- ; NOTE: As coded, the initial load is a function of DFN. But this load
- ; is a function of UID. May become normed either to UID or IFN.
- ;
- D TERMCHLD($G(@TRM@(.01,"E")),.TARGET)
- ;
- ; term -> unit pair
- D TERMUNIT($G(@TRM@(.01,"E")),.TARGET)
- ;
- ; term -> qualifier pair
- ;
- D TERMQUAL($G(@TRM@(.01,"E")),.TARGET,ID)
- ;
- ; NOTE: As coded, term -> unit conversions are not retrieved.
- ; That will be part of future development.
- ;
- K TERMTYPE,TRM
- Q
- ;
- TERMTYPE(ID,TARGET) ; Load term types.
- ;
- ; TARGET is passed by reference.
- ;
- Q:+ID<1 ; Validate for direct IFN lookup.
- N TERMTYPE
- D GETS^DIQ("704.102",ID_",","*","E","TERMTYPE") ;ICR 5748 DE2818 ASF 11/25/15
- N HMPNAME S HMPNAME=$T(TTFLDS+1)
- ;
- N HMPEPLAC S HMPEPLAC("""")="\"""
- S @TARGET@("termType",$P(HMPNAME,";",3))=ID
- S @TARGET@("termType",$P(HMPNAME,";",4))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.01,"E"),.HMPEPLAC)) ;ICR 5748 DE2818 ASF 11/25/15
- S @TARGET@("termType",$P(HMPNAME,";",5))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.02,"E"),.HMPEPLAC))
- S @TARGET@("termType",$P(HMPNAME,";",6))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.03,"E"),.HMPEPLAC))
- K TERMTYPE
- Q
- TERMCHLD(ID,TARGET) ;Loads child terms for a term
- ;
- ;DE2818 SQA findings Newed TERMCHLD
- N MSGROOT,TERMCHLD
- S MSGROOT="TERMCHLD("""_ID_""")"
- D FIND^DIC("704.106",,".02E;.03I;.04I;.05E;.06E;.07E;.08E;.09E","M",ID,,,,,MSGROOT)
- ; Check to see if we actually have any children.
- I +$P(TERMCHLD(ID,"DILIST",0),U,1)<1 K @MSGROOT Q
- N X F X=0:0 S X=($O(TERMCHLD(ID,"DILIST","ID",X))) Q:'X D
- . ; .01 is the Term ID
- . S @TARGET@("termChild",X,"childOrder")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.02)))
- . ; .03 is the Child ID
- . N CHILD S CHILD=$NA(@TARGET@("termChild",X,"childTerm"))
- . D ONETERM($G(TERMCHLD(ID,"DILIST","ID",X,.03)),.CHILD)
- . S @TARGET@("termChild",X,"valueType")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.05)))
- . S @TARGET@("termChild",X,"valueDelimiter")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.06)))
- . S @TARGET@("termChild",X,"valueStart")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.07)))
- . S @TARGET@("termChild",X,"valueStop")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.08)))
- . S @TARGET@("termChild",X,"description")=$$SANITIZE($G(TERMCHLD(ID,"DILIST","ID",X,.09)))
- K @MSGROOT
- Q
- TERMUNIT(ID,TARGET) ;Loads Units for a term.
- ;
- ;DE2818 SQA findings Newed TERMUNIT
- N MSGROOT,TERMUNIT
- S MSGROOT="TERMUNIT("""_ID_""")"
- D FIND^DIC("704.105",,".02I;.03E;.04E;.05E;.06E;.07E","M",ID,,,,,MSGROOT)
- ; Check to see if we actually have any children.
- I +$P(TERMUNIT(ID,"DILIST",0),U,1)<1 K @MSGROOT Q
- N X F X=0:0 S X=($O(TERMUNIT(ID,"DILIST","ID",X))) Q:'X D
- . ; .01 is the Term ID
- . ; .02 is the Unit ID
- . N UNIT S UNIT=$NA(@TARGET@("units",X,"unitTerm"))
- . D ONETERM($G(TERMUNIT(ID,"DILIST","ID",X,.02)),.UNIT)
- . S @TARGET@("units",X,"minValue")=$$SANITIZE($G(TERMUNIT(ID,"DILIST","ID",X,.03)))
- . S @TARGET@("units",X,"maxValue")=$$SANITIZE($G(TERMUNIT(ID,"DILIST","ID",X,.04)))
- . S @TARGET@("units",X,"decPrecision")=$$SANITIZE($G(TERMUNIT(ID,"DILIST","ID",X,.05)))
- . S @TARGET@("units",X,"refLow")=$$SANITIZE($G(TERMUNIT(ID,"DILIST","ID",X,.06)))
- . S @TARGET@("units",X,"refHigh")=$$SANITIZE($G(TERMUNIT(ID,"DILIST","ID",X,.07)))
- K @MSGROOT
- Q
- TERMQUAL(ID,TARGET,IFN) ;Loads Qualifiers for a term
- ;
- ;DE2818 SQA findings Newed TERQUAL
- N MSGROOT,TERMQUAL
- S MSGROOT="TERMQUAL("""_ID_""")"
- D FIND^DIC("704.103",,".02E;.03I;.04E","M",ID,,,,,MSGROOT)
- ; Check to see if we actually have any qualifiers.
- I +$P(TERMQUAL(ID,"DILIST",0),U,1)<1 K @MSGROOT Q
- N X F X=0:0 S X=($O(TERMQUAL(ID,"DILIST","ID",X))) Q:'X D
- . ; .01 is the Term ID
- . ; .03 is the Qualifier ID
- . N QUAL S QUAL=$NA(@TARGET@("qualifiers",X,"qualTerm"))
- . ; blj 28 Feb 2014: bandaid to prevent recursive calls if someone has messed up the structure of the TERM_QUALIFIER file.
- . I IFN'=$G(TERMQUAL(ID,"DILIST","ID",X,.03)) D ONETERM($G(TERMQUAL(ID,"DILIST","ID",X,.03)),.QUAL)
- . S @TARGET@("qualifiers",X,"qualOrder")=$$SANITIZE($G(TERMQUAL(ID,"DILIST","ID",X,.02)))
- . S @TARGET@("qualifiers",X,"ranking")=$$SANITIZE($G(TERMQUAL(ID,"DILIST","ID",X,.04)))
- K @MSGROOT
- Q
- SANITIZE(VALUE) ; Makes sure values are formatted correctly.
- I +VALUE'=VALUE Q VALUE
- I VALUE?1".".N S VALUE="0"_VALUE
- I VALUE?1"-.".N S VALUE="-0"_$E(VALUE,2,$LENGTH(VALUE))
- Q VALUE
- ;
- GENGUID() ;
- N X,AB
- S X="",AB=$R(4),AB=$S(AB=0:"8",AB=1:"9",AB=2:"A",1:"B")
- F S X=X_$$BASE^XLFUTL($R(16),10,16) Q:$L(X)>31
- S X="{"_$E(X,1,8)_"-"_$E(X,9,12)_"-"_"4"_$E(X,14,16)_"-"_AB_$E(X,18,20)_"-"_$E(X,21,32)_"}"
- Q X
- TRMFLDS ;Fields for terminology
- ;;.01;id
- ;;.02;term
- ;;.03;abbreviation
- ;;.04;displayName
- ;;.05;termType
- ;;.06;dataType
- ;;.07;valueType
- ;;.09;active
- ;;.1;description
- ;;.2;helpText;
- ;;.31;booleanValueTrue
- ;;.32;booleanValueFalse;
- ;;.33;multiSelectPicklist
- ;;99.99;VUID
- ;;***
- TTFLDS ;Fields for Term Typea
- ;;id;type;xmlTag;VUID
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HHMPMDUTL 7367 printed Mar 13, 2025@20:58:45 Page 2
- HMPMDUTL ;DSS/BLJ,ASMR/RRB - FileMan JSON utilities for HMP;4 November 2015 @16:51:35
- +1 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**;Sep 01, 2011;Build 63
- +2 ;Per VA Directive 6402, this routine should not be modified.
- +3 ;
- +4 ;DE2818 SQA findings Newed HMPCNT, HMPFINI, HMPLAST, TERMCHLD, TERMUNIT, and TERMQUAL ASMR/RRB
- +5 ;
- +6 QUIT
- +7 ;
- EN ; Only call via linetag.
- QUIT
- TERM ; Retrieves list of terms
- +1 ; NOTE: This tag will NOT support paged retrieves unless necessary.
- +2 ; Do not expect them.
- +3 ;
- +4 ; DE2818 SQA findings HMPCNT, HMPFINI, HMPLAST
- +5 ;
- +6 ; Gets terminology.
- +7 NEW HMPFINI,TERMIENS,TERMCNT,X
- +8 DO LIST^DIC("704.101",,,,,,,,"I $P(^(0),U,5)=1")
- +9 MERGE TERMIENS=^TMP("DILIST",$JOB,2)
- +10 SET TERMCNT=$PIECE($GET(^TMP("DILIST",$JOB,0)),U,1)
- +11 KILL ^TMP("DILIST",$JOB)
- +12 ;
- +13 FOR X=0:0
- SET X=$ORDER(TERMIENS(X))
- if 'X
- QUIT
- Begin DoDot:1
- +14 NEW HMPCNT,HMPLAST,RESULT
- +15 ; term
- +16 DO ONETERM($GET(TERMIENS(X)),"RESULT")
- +17 ;
- +18 DO ADD^HMPEF("RESULT")
- +19 SET HMPCNT=X
- SET HMPLAST=X
- End DoDot:1
- +20 IF 'X
- SET HMPFINI=1
- +21 QUIT
- ONETERM(ID,TARGET) ; load one term
- +1 ; Validate integer/id.
- if +ID<1
- QUIT
- +2 NEW $ESTACK,$ETRAP,ERRMSG
- +3 SET ERRMSG=$$ERRMSG^HMPEF("CLiO Term",ID)
- +4 SET $ETRAP="D ERRHDLR^HMPDERRH"
- +5 NEW TERM,TRM,TERMTYPE
- +6 ;
- +7 DO GETS^DIQ("704.101",ID_",","*","IE","TERM")
- +8 NEW TRM
- SET TRM=$NAME(TERM(704.101,""_ID_","))
- +9 SET @TARGET@("id")=$GET(@TRM@(.01,"E"))
- +10 SET @TARGET@("uid")="urn:va:clioterminology:"_$GET(@TARGET@("id"))
- +11 SET @TARGET@("term")=$$SANITIZE($GET(@TRM@(.02,"E")))
- +12 SET @TARGET@("abbreviation")=$$SANITIZE($GET(@TRM@(.03,"E")))
- +13 SET @TARGET@("displayName")=$$SANITIZE($GET(@TRM@(.04,"E")))
- +14 ; Get Term Type
- +15 SET TERMTYPE=$$SANITIZE($GET(@TRM@(.05,"I")))
- +16 DO TERMTYPE(TERMTYPE,.TARGET)
- +17 ;
- +18 SET @TARGET@("dataType")=$$SANITIZE($GET(@TRM@(.06,"I")))
- +19 SET @TARGET@("valueType")=$$SANITIZE($GET(@TRM@(.07,"I")))
- +20 SET @TARGET@("active")=$$SANITIZE($GET(@TRM@(.09,"E")))
- +21 SET @TARGET@("description")=$$SANITIZE($GET(@TRM@(.1,"E")))
- +22 SET @TARGET@("helpText")=$$SANITIZE($GET(@TRM@(.2,"E")))
- +23 SET @TARGET@("booleanValueTrue")=$$SANITIZE($GET(@TRM@(.31,"E")))
- +24 SET @TARGET@("booleanValueFalse")=$$SANITIZE($GET(@TRM@(.32,"E")))
- +25 SET @TARGET@("multiSelectPicklist")=$$SANITIZE($GET(@TRM@(.33,"E")))
- +26 SET @TARGET@("VUID")="urn:va:vuid:"_$$SANITIZE($GET(@TRM@(99.99,"E")))
- +27 ; term -> child terms
- +28 ;
- +29 ; NOTE: As coded, the initial load is a function of DFN. But this load
- +30 ; is a function of UID. May become normed either to UID or IFN.
- +31 ;
- +32 DO TERMCHLD($GET(@TRM@(.01,"E")),.TARGET)
- +33 ;
- +34 ; term -> unit pair
- +35 DO TERMUNIT($GET(@TRM@(.01,"E")),.TARGET)
- +36 ;
- +37 ; term -> qualifier pair
- +38 ;
- +39 DO TERMQUAL($GET(@TRM@(.01,"E")),.TARGET,ID)
- +40 ;
- +41 ; NOTE: As coded, term -> unit conversions are not retrieved.
- +42 ; That will be part of future development.
- +43 ;
- +44 KILL TERMTYPE,TRM
- +45 QUIT
- +46 ;
- TERMTYPE(ID,TARGET) ; Load term types.
- +1 ;
- +2 ; TARGET is passed by reference.
- +3 ;
- +4 ; Validate for direct IFN lookup.
- if +ID<1
- QUIT
- +5 NEW TERMTYPE
- +6 ;ICR 5748 DE2818 ASF 11/25/15
- DO GETS^DIQ("704.102",ID_",","*","E","TERMTYPE")
- +7 NEW HMPNAME
- SET HMPNAME=$TEXT(TTFLDS+1)
- +8 ;
- +9 NEW HMPEPLAC
- SET HMPEPLAC("""")="\"""
- +10 SET @TARGET@("termType",$PIECE(HMPNAME,";",3))=ID
- +11 ;ICR 5748 DE2818 ASF 11/25/15
- SET @TARGET@("termType",$PIECE(HMPNAME,";",4))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.01,"E"),.HMPEPLAC))
- +12 SET @TARGET@("termType",$PIECE(HMPNAME,";",5))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.02,"E"),.HMPEPLAC))
- +13 SET @TARGET@("termType",$PIECE(HMPNAME,";",6))=$$SANITIZE($$REPLACE^XLFSTR(TERMTYPE("704.102",ID_",",.03,"E"),.HMPEPLAC))
- +14 KILL TERMTYPE
- +15 QUIT
- TERMCHLD(ID,TARGET) ;Loads child terms for a term
- +1 ;
- +2 ;DE2818 SQA findings Newed TERMCHLD
- +3 NEW MSGROOT,TERMCHLD
- +4 SET MSGROOT="TERMCHLD("""_ID_""")"
- +5 DO FIND^DIC("704.106",,".02E;.03I;.04I;.05E;.06E;.07E;.08E;.09E","M",ID,,,,,MSGROOT)
- +6 ; Check to see if we actually have any children.
- +7 IF +$PIECE(TERMCHLD(ID,"DILIST",0),U,1)<1
- KILL @MSGROOT
- QUIT
- +8 NEW X
- FOR X=0:0
- SET X=($ORDER(TERMCHLD(ID,"DILIST","ID",X)))
- if 'X
- QUIT
- Begin DoDot:1
- +9 ; .01 is the Term ID
- +10 SET @TARGET@("termChild",X,"childOrder")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.02)))
- +11 ; .03 is the Child ID
- +12 NEW CHILD
- SET CHILD=$NAME(@TARGET@("termChild",X,"childTerm"))
- +13 DO ONETERM($GET(TERMCHLD(ID,"DILIST","ID",X,.03)),.CHILD)
- +14 SET @TARGET@("termChild",X,"valueType")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.05)))
- +15 SET @TARGET@("termChild",X,"valueDelimiter")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.06)))
- +16 SET @TARGET@("termChild",X,"valueStart")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.07)))
- +17 SET @TARGET@("termChild",X,"valueStop")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.08)))
- +18 SET @TARGET@("termChild",X,"description")=$$SANITIZE($GET(TERMCHLD(ID,"DILIST","ID",X,.09)))
- End DoDot:1
- +19 KILL @MSGROOT
- +20 QUIT
- TERMUNIT(ID,TARGET) ;Loads Units for a term.
- +1 ;
- +2 ;DE2818 SQA findings Newed TERMUNIT
- +3 NEW MSGROOT,TERMUNIT
- +4 SET MSGROOT="TERMUNIT("""_ID_""")"
- +5 DO FIND^DIC("704.105",,".02I;.03E;.04E;.05E;.06E;.07E","M",ID,,,,,MSGROOT)
- +6 ; Check to see if we actually have any children.
- +7 IF +$PIECE(TERMUNIT(ID,"DILIST",0),U,1)<1
- KILL @MSGROOT
- QUIT
- +8 NEW X
- FOR X=0:0
- SET X=($ORDER(TERMUNIT(ID,"DILIST","ID",X)))
- if 'X
- QUIT
- Begin DoDot:1
- +9 ; .01 is the Term ID
- +10 ; .02 is the Unit ID
- +11 NEW UNIT
- SET UNIT=$NAME(@TARGET@("units",X,"unitTerm"))
- +12 DO ONETERM($GET(TERMUNIT(ID,"DILIST","ID",X,.02)),.UNIT)
- +13 SET @TARGET@("units",X,"minValue")=$$SANITIZE($GET(TERMUNIT(ID,"DILIST","ID",X,.03)))
- +14 SET @TARGET@("units",X,"maxValue")=$$SANITIZE($GET(TERMUNIT(ID,"DILIST","ID",X,.04)))
- +15 SET @TARGET@("units",X,"decPrecision")=$$SANITIZE($GET(TERMUNIT(ID,"DILIST","ID",X,.05)))
- +16 SET @TARGET@("units",X,"refLow")=$$SANITIZE($GET(TERMUNIT(ID,"DILIST","ID",X,.06)))
- +17 SET @TARGET@("units",X,"refHigh")=$$SANITIZE($GET(TERMUNIT(ID,"DILIST","ID",X,.07)))
- End DoDot:1
- +18 KILL @MSGROOT
- +19 QUIT
- TERMQUAL(ID,TARGET,IFN) ;Loads Qualifiers for a term
- +1 ;
- +2 ;DE2818 SQA findings Newed TERQUAL
- +3 NEW MSGROOT,TERMQUAL
- +4 SET MSGROOT="TERMQUAL("""_ID_""")"
- +5 DO FIND^DIC("704.103",,".02E;.03I;.04E","M",ID,,,,,MSGROOT)
- +6 ; Check to see if we actually have any qualifiers.
- +7 IF +$PIECE(TERMQUAL(ID,"DILIST",0),U,1)<1
- KILL @MSGROOT
- QUIT
- +8 NEW X
- FOR X=0:0
- SET X=($ORDER(TERMQUAL(ID,"DILIST","ID",X)))
- if 'X
- QUIT
- Begin DoDot:1
- +9 ; .01 is the Term ID
- +10 ; .03 is the Qualifier ID
- +11 NEW QUAL
- SET QUAL=$NAME(@TARGET@("qualifiers",X,"qualTerm"))
- +12 ; blj 28 Feb 2014: bandaid to prevent recursive calls if someone has messed up the structure of the TERM_QUALIFIER file.
- +13 IF IFN'=$GET(TERMQUAL(ID,"DILIST","ID",X,.03))
- DO ONETERM($GET(TERMQUAL(ID,"DILIST","ID",X,.03)),.QUAL)
- +14 SET @TARGET@("qualifiers",X,"qualOrder")=$$SANITIZE($GET(TERMQUAL(ID,"DILIST","ID",X,.02)))
- +15 SET @TARGET@("qualifiers",X,"ranking")=$$SANITIZE($GET(TERMQUAL(ID,"DILIST","ID",X,.04)))
- End DoDot:1
- +16 KILL @MSGROOT
- +17 QUIT
- SANITIZE(VALUE) ; Makes sure values are formatted correctly.
- +1 IF +VALUE'=VALUE
- QUIT VALUE
- +2 IF VALUE?1".".N
- SET VALUE="0"_VALUE
- +3 IF VALUE?1"-.".N
- SET VALUE="-0"_$EXTRACT(VALUE,2,$LENGTH(VALUE))
- +4 QUIT VALUE
- +5 ;
- GENGUID() ;
- +1 NEW X,AB
- +2 SET X=""
- SET AB=$RANDOM(4)
- SET AB=$SELECT(AB=0:"8",AB=1:"9",AB=2:"A",1:"B")
- +3 FOR
- SET X=X_$$BASE^XLFUTL($RANDOM(16),10,16)
- if $LENGTH(X)>31
- QUIT
- +4 SET X="{"_$EXTRACT(X,1,8)_"-"_$EXTRACT(X,9,12)_"-"_"4"_$EXTRACT(X,14,16)_"-"_AB_$EXTRACT(X,18,20)_"-"_$EXTRACT(X,21,32)_"}"
- +5 QUIT X
- TRMFLDS ;Fields for terminology
- +1 ;;.01;id
- +2 ;;.02;term
- +3 ;;.03;abbreviation
- +4 ;;.04;displayName
- +5 ;;.05;termType
- +6 ;;.06;dataType
- +7 ;;.07;valueType
- +8 ;;.09;active
- +9 ;;.1;description
- +10 ;;.2;helpText;
- +11 ;;.31;booleanValueTrue
- +12 ;;.32;booleanValueFalse;
- +13 ;;.33;multiSelectPicklist
- +14 ;;99.99;VUID
- +15 ;;***
- TTFLDS ;Fields for Term Typea
- +1 ;;id;type;xmlTag;VUID