Skip to main content

EnsLib.HL7.Message

persistent class EnsLib.HL7.Message extends %Library.Persistent, EnsLib.EDI.BatchDocument, EnsLib.EDI.Segmented, EnsLib.HL7.Util.MsgBodyMethods

SQL Table Name: EnsLib_HL7.Message

A class representing all HL7 v2 message documents using the Virtual Document (VDoc) architecture

Property Inventory

Method Inventory

Parameters

parameter DEFSEARCHCLASS = EnsLib.HL7.SearchTable;
Name of the default SearchTable indexing class used in UI choices and MessageBank submissions
parameter DOCCLASSFULLNAME = Health Level 7 (HL7) v2. Message;
Inherited description: Full descriptive name for this subclass of document
parameter DOCCLASSNAME = HL7 Message;
Inherited description: Compact descriptive name for this subclass of document
parameter DOCSHORTNAME = HL7;
parameter DOMAIN = Ensemble;
Use our own domain for localization
parameter EXTENTSIZE = 2000000;
Inherited description: The EXTENTSIZE parameter is used to inform the SQL Query Optimizer of the approximate number of instances in the extent containing instances of this class.

For example, a class that expects to have about 1,000,000 instances should define:

parameter EXTENTSIZE = 1000000;
parameter SCHEMACLASS = EnsLib.HL7.Schema:MS;
Name of the associated schema class and, after a colon, the schema class code that represents a DocType

Properties

property %maps [ MultiDimensional , Transient ];
A local array of orefs "orefs" - a local map of integer ids to segment objects And either a subscript into ^IRIS.Temp for this object's LVD maps (for notes on LVD implementation see EnsEDI.inc) or local storage for these additional maps: "runtimeIndex" - array for runtime index to segment; will always be defined unless mapRuntimePath is defined "runtimePath" - array for runtime path to segment "bidirectionalLink" - array for runtime path and index linkage
Property methods: %mapsDisplayToLogical(), %mapsGet(), %mapsIsValid(), %mapsLogicalToDisplay(), %mapsLogicalToOdbc(), %mapsNormalize(), %mapsSet()
property CS as %String [ Calculated , Transient ];
Component Separator
Property methods: CSDisplayToLogical(), CSIsValid(), CSLogicalToDisplay(), CSLogicalToOdbc(), CSNormalize()
property ChildCount as %Integer [ Calculated , Transient , ReadOnly ];
Number of Children
Property methods: ChildCountCompute(), ChildCountDisplayToLogical(), ChildCountIsValid(), ChildCountLogicalToDisplay(), ChildCountNormalize(), ChildCountSQLCompute()
property DocTypeCategory as %String [ Transient , ReadOnly ];
the category portion of the DocType
Property methods: DocTypeCategoryDisplayToLogical(), DocTypeCategoryGet(), DocTypeCategoryIsValid(), DocTypeCategoryLogicalToDisplay(), DocTypeCategoryLogicalToOdbc(), DocTypeCategoryNormalize(), DocTypeCategorySet()
property DocTypeName as %String [ Transient , ReadOnly ];
Stored raw document type name ; the secondary type name portion of the DocType
Property methods: DocTypeNameDisplayToLogical(), DocTypeNameGet(), DocTypeNameIsValid(), DocTypeNameLogicalToDisplay(), DocTypeNameLogicalToOdbc(), DocTypeNameNormalize()
property DocTypeSecondary as %String [ Calculated , Transient , ReadOnly ];
Property methods: DocTypeSecondaryDisplayToLogical(), DocTypeSecondaryIsValid(), DocTypeSecondaryLogicalToDisplay(), DocTypeSecondaryLogicalToOdbc(), DocTypeSecondaryNormalize()
property ESC as %String [ Calculated , Transient ];
Escape Character
Property methods: ESCDisplayToLogical(), ESCIsValid(), ESCLogicalToDisplay(), ESCLogicalToOdbc(), ESCNormalize()
property Envelope as %String);
XML or other 'envelope' For the HL7 message. The HL7 message will be inserted in place of the "<!--HL72MSG-->" string If present, otherwise after the end of the Envelope.
Property methods: EnvelopeDisplayToLogical(), EnvelopeGet(), EnvelopeGetStored(), EnvelopeIsValid(), EnvelopeLogicalToDisplay(), EnvelopeLogicalToOdbc(), EnvelopeNormalize(), EnvelopeSet()
property FS as %String [ Calculated , Transient ];
Field Separator
Property methods: FSDisplayToLogical(), FSIsValid(), FSLogicalToDisplay(), FSLogicalToOdbc(), FSNormalize()
property FullSize as %Integer [ Calculated , Transient , ReadOnly ];
Size in bytes of the message content. The calculation assumes 1-byte segment terminators and includes any segments that use more than one storage node.
Property methods: FullSizeCompute(), FullSizeDisplayToLogical(), FullSizeIsValid(), FullSizeLogicalToDisplay(), FullSizeNormalize(), FullSizeSQLCompute()
property Identifier as %String [ Calculated , Transient , ReadOnly ];
Unique document identification string found at MSH:10 / MessageControlId in document content
Property methods: IdentifierCompute(), IdentifierDisplayToLogical(), IdentifierIsValid(), IdentifierLogicalToDisplay(), IdentifierLogicalToOdbc(), IdentifierNormalize(), IdentifierSQLCompute()
property MessageTypeCategory as %String [ ReadOnly ];
Hint value: Schema Category that was combined with the MSH-declared MessageType to identify a schema Message Type that specifies a Message Structure used as the DocType for this Message.
Property methods: MessageTypeCategoryDisplayToLogical(), MessageTypeCategoryGet(), MessageTypeCategoryGetStored(), MessageTypeCategoryIsValid(), MessageTypeCategoryLogicalToDisplay(), MessageTypeCategoryLogicalToOdbc(), MessageTypeCategoryNormalize()
property Name as %String [ Calculated , Transient , ReadOnly ];
Raw type name of message found at MSH:9
Property methods: NameCompute(), NameDisplayToLogical(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize(), NameSQLCompute()
property ParentIds as %String [ Calculated , Transient , ReadOnly ];
A $List of the Ids of all the enclosing parent documents of this nested document, if nested, in order from from immediate to outermost E.g. for Id of enclosing EncounterBatch if we are an Encounter
Property methods: ParentIdsCompute(), ParentIdsDisplayToLogical(), ParentIdsIsValid(), ParentIdsLogicalToDisplay(), ParentIdsLogicalToOdbc(), ParentIdsNormalize(), ParentIdsSQLCompute()
property RS as %String [ Calculated , Transient ];
Repetition Separator
Property methods: RSDisplayToLogical(), RSIsValid(), RSLogicalToDisplay(), RSLogicalToOdbc(), RSNormalize()
property RawContent as %String (MAXLEN = 10000) [ Calculated , Transient , ReadOnly ];
The raw text content of the document. Note that this is a truncated version suitable for use in SQL results and visual inspection, but not a complete or definitive representation of the document.
Property methods: RawContentCompute(), RawContentDisplayToLogical(), RawContentIsValid(), RawContentLogicalToDisplay(), RawContentLogicalToOdbc(), RawContentNormalize(), RawContentSQLCompute()
property SS as %String [ Calculated , Transient ];
Subcomponent Separator
Property methods: SSDisplayToLogical(), SSIsValid(), SSLogicalToDisplay(), SSLogicalToOdbc(), SSNormalize()
property SegCount as %Integer [ Calculated , Transient , ReadOnly ];
Count of segments composing this message
Property methods: SegCountCompute(), SegCountDisplayToLogical(), SegCountIsValid(), SegCountLogicalToDisplay(), SegCountNormalize(), SegCountSQLCompute()
property SegmentTerminator as %String [ Calculated , Transient ];
Segment Terminator character(s)
Property methods: SegmentTerminatorDisplayToLogical(), SegmentTerminatorIsValid(), SegmentTerminatorLogicalToDisplay(), SegmentTerminatorLogicalToOdbc(), SegmentTerminatorNormalize()
property Separators as %String (MAXLEN = 8, MINLEN = 5) [ Transient ];
All 5 Separators as a String Additional characters will be output as the Segment Terminator; may have up to 3 additional chars for output with newlines
Property methods: SeparatorsDisplayToLogical(), SeparatorsGet(), SeparatorsIsValid(), SeparatorsLogicalToDisplay(), SeparatorsLogicalToOdbc(), SeparatorsNormalize(), SeparatorsSet()
property TypeVersion as %String [ Calculated , Transient , ReadOnly ];
Raw type version name of message found at MSH:12 in message content
Property methods: TypeVersionCompute(), TypeVersionDisplayToLogical(), TypeVersionIsValid(), TypeVersionLogicalToDisplay(), TypeVersionLogicalToOdbc(), TypeVersionNormalize(), TypeVersionSQLCompute()

Methods

method %ConstructClone(deep As %Integer = 0, ByRef cloned As %String, location As %String) as %RegisteredObject
Clone the current message object to a new object and return the new cloned object. By default references to parent messages are not preserved and child messages are not copied. If deep is 1 then this does a deep copy which will also construct clones of any child messages.
method BuildMap(pKeepParsingAfterError As %Library.Boolean = 1, pReportMissingLoopAsFirstSeg As %Library.Boolean = 0) as %Status
pKeepParsingAfterError means keep trying to parse after errors are encountered; returned Status will contain all errors encountered
method CSGet() as %String
method Clear() as %Status
Delete All Content and reset all properties
method CopyValues(pSource As EnsLib.HL7.Message, pSourcePath As %String, pTargetPath As %String, pAction As %String, pKey As %String, pEmptyFieldAsNull As %Boolean = 0, pIgnoreMissingSource As %Boolean = 0) as %Status
Inherited description: Copy a whole set of values from source to target when iteration is implied between 2 VDocs pSourcePath contains the property path to the source set
pTargetPath contains the property path to the target set
pAction contains an action code: "set", etc..
pKey contains an optional key value or a set of comma-separated key values to be used as array indices where empty array index placeholders are present in pPropertyPath.
method DocTypeSecondaryGet() as %String
method DocTypeSet(pDocType As %String, pBuildMap As %Boolean = 1) as %Status
method DumpMaps() as %Status
method ESCGet() as %String
classmethod EnumerateDocTypesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateDocTypesExecute(ByRef qHandle As %Binary, Category As %String, IncludeBase As %Boolean) as %Status
classmethod EnumerateDocTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status
classmethod EnumerateMessageTypesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateMessageTypesExecute(ByRef qHandle As %Binary, Category As %String, IncludeBase As %Boolean) as %Status
classmethod EnumerateMessageTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status
classmethod EnumerateSegTypesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateSegTypesExecute(ByRef qHandle As %Binary, Category As %String, Level As %String, IncludeBase As %Boolean) as %Status
classmethod EnumerateSegTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status
classmethod EnumerateTypeCategoriesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateTypeCategoriesExecute(ByRef qHandle As %Binary, Standard As %String = "") as %Status
classmethod EnumerateTypeCategoriesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status
method FSGet() as %String
method FindSegment(pSegName As %String, ByRef pIndex As %String = "", Output pStatus As %Status) as EnsLib.HL7.Segment
Gets the next segment after index pIndex with name pSegName. Supports pSegName = '*' to match any segment.
method FindSegmentValues(pSegmentPropertyPath As %String, pSeparators As %String, pValSepString As %String = "<>", Output pStatus As %Status, pSchemaCategory As %String = "", Output pIndices As %String) as %String
Finds all values matching a SegName:PropertyPath string, where the SegName is a simple segment type name (not a full schema-based seg path); PropertyPath describes a field or subfield within the segment.
Supports SegName = '*' to match any segment, and SegName(n) to match only the n'th segment of the given type.
Final parameter is an output of the list of segment indexes (separated by pValSepString) for the values found.
method FindSegmentValuesArray(pSegmentPropertyPath As %String, pSeparators As %String, ByRef pArray As %String, Output pStatus As %Status, pSchemaCategory As %String = "", ByRef pLongArray As %String)
Finds all values matching a SegName:PropertyPath string, where the SegName is a simple segment type name (not a full schema-based seg path); PropertyPath describes a field or subfield within the segment. Supports SegName = '*' to match any segment, and SegName(n) to match only the n'th segment of the given type.
method FullSizeGet() as %Integer
classmethod GetAlias(pContentArrayName As %String, pArrayPos As %String) as %String
This method computes the Alias string for a property name, given the property's node in the Content Array.
classmethod GetContentArray(Output pContents, pMode As %String, pDocType As %String, pLevel As %Integer, pIncludeBase As %Boolean) as %Status
Inherited description: Returns array of properties that make up the contents of this object.
This method in implemented within the document class.
The content array is in the form:
pContents(n,"type")="%String"
pContents(n,"name")="Field"
pContents(n,"alias")=alias code
If pContents(n) is non-zero then the property is a composite type with
sub-properties. The sub-properties are indexed with a similar structure under
pContents(n,m) where m is the index of the subtype property.
method GetFieldStreamBase64(ByRef pStream As %Stream.Object, pPropertyPath As %String = "", Output pRemainder As %String, pUnescapeFirst As %Boolean) as %Status
Read a field from a segment into a stream, decoding from Base64 to plain binary. pRemainder is the remainder of the segment after the stream field, including the field's terminating separator
method GetFieldStreamRaw(ByRef pStream As %Stream.Object, pPropertyPath As %String = "", Output pRemainder As %String, pProc As %String, ByRef pHint) as %Status
Read a field from a segment into a stream. pRemainder is the remainder of the segment after the stream field, including the field's terminating separator
method GetFieldStreamUnescaped(ByRef pStream As %Stream.Object, pPropertyPath As %String = "", Output pRemainder As %String = "") as %Status
Read a field from a segment into a stream, unescaping any encoded separators or newlines, to plain text. pRemainder is the remainder of the segment after the stream field, including the field's terminating separator
classmethod GetFullSize(pMsgId) as %Integer
method GetLengthCRC(pLen As %String = 0, ByRef pCRC As %String = 0, pSeparators As %String, pSequenceNumber As %String, pMSHEncoding As %String, pLenLen As %Integer = 5, pCRCLen As %Integer = 3) as %String
Returns an array of links to manager pages for this type of VDoc; item 0 is the family description
classmethod GetMsgType(pName As %String) as %String
Returns an array of links to manager pages for this type of VDoc; item 0 is the family description
method GetNextGroupPath(pGroup As %String, pPath As %String, ByRef pStatus As %Status = $$$OK) as %String
Gets the next path in a group
method GetNextIndex(pPath As %String, pIndex As %String, ByRef pStatus As %Status = $$$OK) as %String
Gets the next index in an array
method GetSegmentIndex(pPath As %String, Output pStatus As %Status) as %Integer
Given a segment path, find the corresponding segment index
method GetSegmentPath(pIndex As %Integer, Output pStatus As %Status) as %String
Given a segment index, find the corresponding segment path
method GetValueAt(pSegmentPropertyPath As %String, pSeparators As %String, Output pStatus As %Status, pTreatEmptyAsNull As %Boolean = 0, pReturnStreamIfLong As %Boolean = 0, Output pIsIncomplete As %Boolean) as %String
pPropertyPath is of syntax: field [ ( array ) ] [ . component [ . subcomponent ] ] Returns the value at the specified property path. pSeparators is used to specify the separators to be used when a non-atomic value is returned. All property path elements must be either name or index. If the length of the field is greater than the maximum string length on the system, then only the maximum string length will be retrieved using this method unless pReturnStreamIfLong is set to 1. If pReturnStreamIfLong is set to 0 and the value is longer than the maximum string length, output parameter pIsIncomplete will be set to 1 to indicate that there is more to the value than what is returned. (Note that with long strings enabled the limit is approximately 3.6MB.) If you have escaped or base64 encoded the field value use one of the following EnsLib.HL7.Segment methods:
  • GetFieldStreamUnescaped()(), or
  • GetFieldStreamBase64()()
  • method GetValueAtPath(pSegmentPropertyPath As %String, pSeparators As %String, Output pStatus As %Status, pTreatEmptyAsNull As %Boolean = 0) as %String
    pPropertyPath is of syntax: field [ ( array ) ] [ . component [ . subcomponent ] ] Returns the value at the specified property path. pSeparators is used to specify the separators to be used when a non-atomic value is returned. All property path elements must be either name or index. If the length of the value is greater than the maximum string length on the system, then the returned value will be a stream instead of a string (Note that on older Ensemble systems, this limit was 32K, but with long strings enabled the limit is approximately 3.6MB.) If you have escaped or base64 encoded the field value use one of the following EnsLib.HL7.Segment methods:
  • GetFieldStreamUnescaped()(), or
  • GetFieldStreamBase64()()
  • method IdentifierGet() as %String
    classmethod ImportFromDevice(Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.HL7.Message
    classmethod ImportFromFile(pFilename As %String, pDocNum As %Integer = 1, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.HL7.Message
    classmethod ImportFromIOStream(pIOStream As %IO.I.CharacterStream, Output pStatus As %Status = $$$OK, ByRef pConfigItem As %String = "", pIOFormatClassname As %String = "") as EnsLib.HL7.Message
    classmethod ImportFromLibraryStream(pLibStream As %Stream.Object, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.HL7.Message
    classmethod ImportFromOldStream(pOldStream As %Stream.Object, Output pStatus As %Status, ByRef pConfigItem As %String) as EnsLib.HL7.Message
    deprecated - use ImportFromLibraryStream
    classmethod ImportFromString(pString As %String, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.HL7.Message
    classmethod KillGlobals(Output pDeletedCount, pKeepExtentCount=0, pDisplayLog=1)
    classmethod NewControlID(pTimeUTCH As %String = $ZTS) as %Integer
    Get an new 20-character control ID, given $ZTS and $ZH timestamps. 2-char base-62 hash(letters or digits) of machine name (mod 31) and job slot(mod 124), 2-digit year,month,day,millisecond UTC time,and microseconds from $ZH
    method NewReplyDocument(pMessageType As %String = {$S(""'=..MessageTypeCategory As ..MessageTypeCategory, 1 As ..DocTypeCategory)_", pLocalFacilityApplication As %String = "", Output pSC As %Status, pForceACK As %Boolean = 1) as EnsLib.HL7.Message
    method OutputHTML() as %Status
    Display Segments as HTML, using DocType info if available
    method OutputHTMLZen() as %Status
    Display Segments as HTML, using DocType info if available
    method OutputToDevice(pSequenceNumber As %String, pSeparators As %String, pIOFormatClassname As %String) as %Status
    Note: order of args is reversed for OutputToDevice() so we can pretend to be a Stream and pass the Sequence number in place of pLen.
    method OutputToFile(pFilename As %String, pOverwrite As %Boolean, pSeparators As %String, pSequenceNumber As %String, pIOFormatClassname As %String) as %Status
    method OutputToIOStream(pIOStream As %IO.I.CharacterStream, pSeparators As %String, pSequenceNumber As %String, pFlush As %Boolean = 1, pIOFormatClassname As %String = "") as %Status
    method OutputToLibraryStream(pLibStream As %Stream.Object, pSeparators As %String, pSequenceNumber As %String, pIOFormatClassname As %String) as %Status
    method OutputToOldStream(pOldStream As %Stream.Object, pSeparators As %String, pSequenceNumber As %String) as %Status
    deprecated - use OutputToLibraryStream
    method OutputToString(pSeparators As %String, pSequenceNumber As %String, Output pStatus As %Status, pIOFormatClassname As %String) as %String
    method PokeDocType(pDocType As %String) as %Status
    method PokeTypeCategory(pMessageTypeCategory As %String) as %Status
    classmethod Purge(Output pDeletedCount As %Integer, pDaysToKeep As %Integer = 7, pDummy As %Boolean = 0) as %Status
    method RSGet() as %String
    method RawContentGet() as %String
    method SSGet() as %String
    method SegCountGet() as %Integer
    method SegmentTerminatorGet() as %String
    method SetValueAt(pValue As %String, pSegmentPropertyPath As %String, pAction As %String = "set", pKey As %String = "") as %Status
    Inherited description: Set the value of the designated virtual property.
    pValue contains the value to set.
    pPropertyPath contains a text expression representing the address within the document of the value of interest.
    pKey contains an optional key value or a set of comma-separated key values to be used as array indices where empty array index placeholders are present in pPropertyPath.
    pAction contains an action code: "set", "clear", "append", etc.
    method StoreFieldStreamBase64(pStream As %Stream.Object, pPropertyPath As %String = "", pRemainder As %String) as %Status
    Store a stream into a segment field, encoding as Base64. Note that this renders the segment immutable after completing, and therefore works only once per segment.
    method StoreFieldStreamEscaped(pStream As %Stream.Object, pPropertyPath As %String = "", pRemainder As %String) as %Status
    Store a stream into a segment field, applying HL7 escaping. Note that this renders the segment immutable after completing, and therefore works only once per segment.
    method StoreFieldStreamRaw(pStream As %Stream.Object, pPropertyPath As %String = "", pRemainder As %String, pProc As %String, ByRef pHint) as %Status
    Store a stream into a segment field. Note that this renders the segment immutable after completing, and therefore works only once per segment.
    classmethod TotalCount() as %Integer
    method TypeVersionGet() as %String
    Inherited description: Subclasses should override this if the version can be gotten from the document content
    method Validate(pValidationSpec As %String) as %Status
    Validates the HL7 message content against the schema that is referenced in its DocType property.
    method buildRuntimePathFromIndex(pId As %String, pPath As %String, pContentArray As %String, pType As %String, ByRef pCurrSeg As %Integer, pParentGrpOpt As %Boolean, pSC As %Status, pKeepParsingAfterError As %Boolean) as %Status
    Build a segment map for the current segment index array based on the document schema
    If pKeepParsingAfterError is false then stop parsing when first error is encountered
    classmethod checkDocType(ByRef pDocType As %String) as %Status
    method commitCollectionOpenSegments(pCollectionPath As %String) as %Status
    collapse segment objects within the collectionPath into just Id; Save if necessary
    method commitSegmentByIndex(pIndex As %Integer) as %Status
    collapse segment object into just ID; Save if necessary
    method commitSegmentByPath(pPath As %String) as %Status
    collapse segment object into just Id; Save if necessary
    method convertRuntimePathToSchemaPath(pPath As %String) as %String
    method getId() as %String
    The same as %Id(), but allocates the Id even if the object hasn't been saved already
    method getSegmentIdByIndex(pIndex As %Integer, Output pStatus As %Status) as %String
    method getSegmentIdByPath(pPath As %String, Output pStatus As %Status) as %String
    classmethod getSegsAsString(pId As %String, pMaxLen As %Integer = 10000, pStartOffset As %Integer = 1) as %String
    This method is for use from the RawContent property's SQL Compute invocation
    method resolveChildDocType() as %String
    Return the DocType of this document.

    Queries

    query EnumerateDocTypes(Category As %String = "", IncludeBase As %Boolean = 0)
    Selects Type As %String
    Returns a list of available DocTypes for this document class.
    The DocType is returned as the first column in the result set.
    The Category parameter can be used to restrict the list.
    If Category is:
    0 - return only DocTypes in standard categories
    + - return only DocTypes in user-defined categories
    empty - return DocTypes from all categories
    a category name - return only DocTypes in the named category
    a partial name suffixed with '%' - return only DocTypes in categories matching the partial category name
    other - return nothing
    If IncludeBase is:
    0 - return only DocTypes defined in the current schema category itself
    1 - return all DocTypes in the current schema category's base category in addition to those defined in the current category itself
    query EnumerateMessageTypes(Category As %String = "", IncludeBase As %Boolean = 0)
    Selects Type As %String
    Returns a list of available MessageTypes for this document class.
    The MessageTypes is returned as the first column in the result set.
    The Category parameter can be used to restrict the list.
    If Category is:
    0 - return only MessageTypes in standard categories
    + - return only MessageTypes in user-defined categories
    empty - return MessageTypes from all categories
    a category name - return only MessageTypes in the named category
    a partial name suffixed with '%' - return only MessageTypes in categories matching the partial category name
    other - return nothing
    If IncludeBase is:
    0 - return only MessageTypes defined in the current schema category itself
    1 - return all MessageTypes in the current schema category's base category in addition to those defined in the current category itself
    query EnumerateSegTypes(Category As %String = "", Level As %String = "", IncludeBase As %Boolean = 0)
    Selects SegType As %String, Field As %String, Description As %String, IsStandard As %Boolean
    Returns a list of schema categories and segment types and segment fields for this document class.
    The Category and Level parameters can be used to restrict the list.
    If Category is:
    0 - return only standard categories
    + - return only user-defined categories
    empty - return all categories
    a category name - return only SegTypes in the named category
    a category name:segment type name - return only information about the named SegType
    a partial name suffixed with '%' - return only SegTypes in categories matching the partial category name
    other - return nothing
    If Level is:
    0 - return all segment names
    n - return the given number of levels of nested field names within each segment
    empty - return all levels of nested field names within each segment
    If IncludeBase is:
    0 - return only segment names defined in the current schema category itself
    1 - return all segment names in the current schema category's base category in addition to those defined in the current category itself
    query EnumerateTypeCategories(Standard As %String = "")
    Selects Category As %String, Description As %String, IsStandard As %Boolean, Base As %String
    Returns a list of document type schema categories for the document class.
    The Standard parameter can be used to restrict the list.
    If Standard is: 0 - return only standard categories + - return only user-defined categories empty - return all categories a partial category name - return only categories starting with the given category name part
    other - return nothing

    Indexes

    index (Extent on ) [Extent, Type = bitmap];
    Index methods: ExtentClose(), ExtentExecute(), ExtentFetch(), ExtentFetchRows(), ExtentFunc(), ExtentGetInfo(), ExtentGetODBCInfo(), ExtentPrepare(), ExtentSendODBC()
    index (IDKEY on ) [IdKey, Type = key];
    Index methods: IDKEYCheck(), IDKEYDelete(), IDKEYExists(), IDKEYOpen(), IDKEYSQLCheckUnique(), IDKEYSQLExists(), IDKEYSQLFindPKeyByConstraint(), IDKEYSQLFindRowIDByConstraint()
    index (OriginalDocId on OriginalDocId);
    Index methods: OriginalDocIdDisplayToLogical(), OriginalDocIdExists(), OriginalDocIdGet(), OriginalDocIdGetStored(), OriginalDocIdIsValid(), OriginalDocIdLogicalToDisplay(), OriginalDocIdLogicalToOdbc(), OriginalDocIdNormalize(), OriginalDocIdSet()
    index (ParentId on ParentId);
    Index methods: ParentIdDisplayToLogical(), ParentIdExists(), ParentIdGet(), ParentIdGetStored(), ParentIdIsValid(), ParentIdLogicalToDisplay(), ParentIdLogicalToOdbc(), ParentIdNormalize(), ParentIdSet(), ParentIdsCompute(), ParentIdsDisplayToLogical(), ParentIdsGet(), ParentIdsIsValid(), ParentIdsLogicalToDisplay(), ParentIdsLogicalToOdbc(), ParentIdsNormalize(), ParentIdsSQLCompute()

    Triggers

    trigger OnDelete (BEFORE event DELETE);

    Inherited Members

    Inherited Properties

    Inherited Methods

    Storage

    Storage Model: Storage (EnsLib.HL7.Message)

    ^EnsLib.H.MessageD(ID)
    =
    %%CLASSNAME
    ParentId
    DocType
    IsMutable
    TimeCreated
    MessageTypeCategory
    Source
    Envelope
    OriginalDocId
    HandledIndividually

    Storage Model: Storage (EnsLib.HL7.Message)

    ^EnsLib.H.MessageD(ID,"UserValues",n)
    =
    UserValues(n)
    FeedbackOpens in a new tab