This is documentation for Caché & Ensemble.

For information on converting to InterSystems IRIS, see the InterSystems IRIS Adoption Guide and the InterSystems IRIS In-Place Conversion Guide, both available on the WRC Distributions page (login required).

Home > Class Reference > ENSLIB namespace > EnsLib.HL7.Annotation.Data

EnsLib.HL7.Annotation.Data

class EnsLib.HL7.Annotation.Data extends %Library.RegisteredObject

Utilities to interact with the HL7 Annotation global To use, first invoke %New(HL7 schema version), and on the created object, call Loadxx and Savexx methods. Contains methods to load and save annotations for various components The load methods return (byref) a multi-dimensional array, with a top subscript referencing the instance being annotated, and underneath that at least the following:
  • "Name" - a description for the instance
  • "U" - annotated usage indicator: X not supported, S supported, P planned support
  • "Note" - a plain text comment field.
    The U and Note nodes may be edited by calling apps, which would then call the corresponding Save method to update the global. Some load methods return additional nodes for display purposes. Except for LoadMG, the load methods also return a "UC" node indicating the actual computed usage, which is calculated by walking the HL7 tree structure. It would never be higher than the annotated usage, but gets determined by the best possible parent annotated usage path. There are also Get**XML methods to output parts of the schema in XML format These all take an argument pPlanned, and a byref argument to return a multidimensional variable, which will contain an array of strings. They will not include unsupported message types and segments, and will only include planned ones if this argument is true

    Property Inventory (Including Private)

    Method Inventory (Including Private)

    Properties (Including Private)

    property BaseVer as %String [ Private ];
    Property methods: BaseVerDisplayToLogical(), BaseVerGet(), BaseVerIsValid(), BaseVerLogicalToDisplay(), BaseVerLogicalToOdbc(), BaseVerNormalize(), BaseVerSet()
    property Lindex [ Private , MultiDimensional ];
    Property methods: LindexDisplayToLogical(), LindexGet(), LindexIsValid(), LindexLogicalToDisplay(), LindexLogicalToOdbc(), LindexNormalize(), LindexSet()
    property Names [ Private , MultiDimensional ];
    Property methods: NamesDisplayToLogical(), NamesGet(), NamesIsValid(), NamesLogicalToDisplay(), NamesLogicalToOdbc(), NamesNormalize(), NamesSet()
    property Schema [ Private , MultiDimensional ];
    Property methods: SchemaDisplayToLogical(), SchemaGet(), SchemaIsValid(), SchemaLogicalToDisplay(), SchemaLogicalToOdbc(), SchemaNormalize(), SchemaSet()
    property Version as %String [ Private ];
    Property methods: VersionDisplayToLogical(), VersionGet(), VersionIsValid(), VersionLogicalToDisplay(), VersionLogicalToOdbc(), VersionNormalize(), VersionSet()

    Methods (Including Private)

    private method %OnNew(pVersion) as %Status
    Inherited description: This callback method is invoked by the %New() method to provide notification that a new instance of an object is being created.

    If this method returns an error then the object will not be created.

    It is passed the arguments provided in the %New call. When customizing this method, override the arguments with whatever variables and types you expect to receive from %New(). For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:

    Method %OnNew(dob as %Date = "", name as %Name = "") as %Status If instead of returning a %Status code this returns an oref and this oref is a subclass of the current class then this oref will be the one returned to the caller of %New method.

    private method ArrayWalk(pGref, ByRef pRet, pPath, pUnion=0)
    method GetBase() as %String
    return base version (if this version doesn't inherit, returns this version)
    method GetCTXML(pPlanned, ByRef pData)
    method GetDSXML(pPlanned, ByRef pData)
    classmethod GetExportXML(pVersion, ByRef pData)
    Export the entire set of annotation in compact format for packaging. Not used anywhere, because we're using ExportXMLList^%apiOBJ instead
    method GetMGXML(pPlanned, ByRef pData)
    The Get**XML methods are used to product an XML version of the annotation report, by class ReportServerXML, for use with DocBook
    method GetMSXML(pPlanned, ByRef pData)
    method GetName(pType, pItem) as %String
    logic to retrieve the printable name of an item.
    method GetSSXML(pPlanned, ByRef pData)
    method GetType(pPlanned, pType, ByRef pData)
    This retrieves a list of all supported and/or planned items, of specified type (where type is MS, MT, SS, etc.)
    method LoadCT(ByRef pData)
    Load code tables. Subscripts is code table number. Code tables have no annotations of their own - their usage is just computed from segments and data structure fields that refer to them
    method LoadDS(pDS, ByRef pData)
    Load a multi-dimensional variable with annotation data for all fields for an input segment. Instance subscript is field #. Also returns
  • DS - Data Structure
  • CT - Code Table
  • method LoadMG(ByRef pData)
    Load a multidimensional variable with annotation data for all message groups. Instance subscript is a message group
    method LoadMS(pMS, ByRef pData)
    Load a multi-dimensional variable with annotation data for a message structure. Instance subscript is a sequential number. Also returns the following nodes for display:
  • Type: SEG (a segment), GRP a group begin, END, a group end
  • Code: a coded display value - some combination of segment ID and/or punctuation
  • SS: segment ID (3 letters, for type SEG)
  • Path: tree path to get to this one, for nested segments
  • method LoadMT(pMG, ByRef pData)
    Load a multi-dimensional variable with annotation data for all message types for an input message group. Instance subscript is a message type. Also returns MS node (message structure)
    method LoadOneCT(pCT, ByRef pData)
    Load one code table. Subscript is code Code table has no annotation - this is just loaded for browsing top level is code table name
    method LoadSS(pSS, ByRef pData)
    Load a multi-dimensional variable with annotation data for all fieds for an input segment. Instance subscript is field #. Also returns
  • DS - Data Structure
  • Rpt - repeat n..m
  • Len - length
  • CT - Code Table
  • Req - required flag
  • method ReIndex(force=0)
    Call to create/re-create the index for a version
    method SaveDS(pDS, pData, doindex=1)
    Save all of the segment field annotations for a specific data structure Pass in the HL7 version, the structure, and a reference to the local variable that contains the edited message annotations
    method SaveMG(pData, doindex=1)
    Save Message Groups - pass in HL7 version, reference to modified multi-dim data
    method SaveMS(pMS, pData, doindex=1)
    Save all of the message segment annotations for a specific message structure Pass in the HL7 version, the message structure, and a reference to the local variable that contains the edited message annotations
    method SaveMT(pData, doindex=1)
    Save all of the message types for a specific message group. Pass in the HL7 version, the message group,, and a reference to the local variable that contains the edited message types.
    method SaveSS(pSS, pData, doindex=1)
    Save all of the segment field annotations for a specific segment Pass in the HL7 version, the segment, and a reference to the local variable that contains the edited message annotations
    private method Saves(g, pData, doindex)

    Inherited Members

    Inherited Methods (Including Private)

  • FeedbackOpens in a new window