This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Static Model BNF Grammar

From HL7Wiki
Jump to navigation Jump to search

for RMIM attribute rendering

<attribute> :== <attName> “: “ <type> “ “ <cardinality> <defaultValue>? <hl7Metadata>

<attName> :== <lowerCamelCase>

<type> :== <typeBase> <flavorExtension>? ( “(“ <typeArguments> “)” )?

<typeBase> :== ( ‘A’-‘Z’ )+

<flavorExtension> :== ( “.” <typeBase> )+

<typeArguments> :== <type> ( “,” <type> )*

<defaultValue> :== “= “ <anyText>

| “ R”

| “ NP”

| “ I”

| “ U”

<vocabBinding>	:== < conceptDomainBinding> | <valueSetBinding> | <codeBinding>

< conceptDomainBinding> :== “ < CD: ” ( <domainName> | ( “x_” <domainName> ) )

<domainName> :== <upperCamelCase>

<valueSetBinding> :== <valueSetFull>

| <valueSetShort>

<valueSetFull> :== “ < V:” ( <valueSetName> | <oid> ) <valueSetVersion>? <strength> <anyText>

<valueSetShort> :== <valueSetLT> | <valueSetLE>

<valueSetLT> :== “ < “ ( ‘A’-‘Z’ )+

<valueSetLE> :== “ <= “ ( ‘A’-‘Z’ )+

<valueSetName> :== <upperCamelCase> | ( “x_” <upperCamelCase> ) )

<valueSetVersion> :== “#” ( ‘0’-‘9’ ){8} ( ( ‘0’-‘9’ ){6} )?

<strength> :== “ CWE” | “ CNE”

<codeBinding> :== <codeFull>

| <codeShort>

<codeFull > :== “ < = C:” ( <codeSystemName> | <oid> ) “#” <anyText>

<codeSystemName> :== <upperCamelCase>

<codeShort> :== “ =” <anyText>

<fixedValue> :== ‘ = “’ <anyText> ‘”’

<enumeration> :== “ = [“ <enumerationVals> “]”

<enumerationVals> :== ‘”’ <anyText> ‘”’ ( ‘, “’ <anyText> ‘”’ )*

<allowedRange> :== “ = [“ <number> “..” <number> “]”

<lengthLimits> :== “ Len=” ( <fixedLength> | <lengthRange> )

<fixedLength> :== <number>

<lengthRange> :== <number> “..” <number>

<updateMode> :== “ {“ <mode> ( “: “ <modeList> )? “}”

<modeList> :== <mode> | <mode> “,” <modeList>

<mode> ::= 'A' | ‘AR’ | 'D' | ‘K’ | ‘N’ | ‘R’ | ‘REF’ | 'U'

<extensionOid> :== “ EXT:” <oid>

<businessNames> :== <businessName> (“ “ <businessNames>)?

<businessName> :== “ (“ <realm>? <anyText> “)”

<realm> :== (‘A’-‘Z’){2} “-“

<oid> :== “2” (“.” ( ‘0’-‘9’ )* )+

<number> :== ( ‘0’-‘9’ )+

<upperCamelCase> :== ( ‘A’-’Z’ )+ ( ‘a’-‘z’ | ’A’-‘Z’ | ‘0’-‘9’ )*

<lowerCamelCase> :== ( ‘a’-’z’ )+ ( ‘a’-‘z’ | ’A’-‘Z’ | ‘0’-‘9’ )*

<anyText> :== ( ‘a’-‘z’ | ’A’-‘Z’ | ‘0’-‘9’ | ‘ ‘ | ‘-‘ | ‘_’ | ‘#’ | ‘&’ )*


Examples:

moodCode: CS [1..1] { M <= INT }

code: CD [0..1] { R < CD: ActProcedureCode (CA-Procedure Type) }

code: CV [1..1] { M < = C:LN#123456 }

sequenceNumber: INT [1..1] { M =[1..10] }

addr: DSET(AD) [0..*] { R {A: A,AR,R,D} (Mailing addresses) }

RMIM Association rendering

<association> :== <cardinality> <hl7AssocMetadata> <EOL> <associationName> <cardinality> :== “[”<number> “..” <number> “]” <hl7AssocMetadata> :== “{“ <mandatoryConf> <updateMode>? “}” <associationName> :== <lowerCamelCase>

Examples:

[1..1] {M}

assignedPerson

[0..1] {R {A: A,AR,R,D}}

assignedPerson

CMET Rendering

<cmet> :== “<CMET>”<stdText> <EOL> <cmetName> <EOL>” “ <attribution> <EOLseparatorLine> <modelatt> <stdTEXT> :== “CMET:” “(“ <definingVocabulary> ”)” <cmetName> :== <cmetAct> | <cmetEntity> | <cmetRole> | <cmetOther> <cmetAct> :== “A_”<upperCamelCase> <cmetEntity> :== “E_”<upperCamelCase> <cmetOther> :== “O_”<upperCamelCase> <cmetRole> :== “R_”<upperCamelCase> <attribution> :== “[” <cmetAttributionKindanyText> “]” <cmetAttributionKind> :== <anyText > <model> :== “(” <modelId> “)” <att> :== “classCode { < ” ( ‘A’-‘Z’ )+ “ }”

Examples:

         <CMET>

R_AssignedPerson universal classCode { < OBS }

STUB rendering

<stub> :== <stdText>”<CMET>” <EOL> <stubName> <separatorLine> <att> <stdTEXT> :== “STUB:” “(“ <definingVocabulary> | “OTHER” ”)” <stubName> :== <stubAct> | <stubEntity> | <stubRole> | <stubOther> <stubAct> :== “A_”<upperCamelCase> <stubEntity> :== “E_”<upperCamelCase> <stubRole> :== “R_”<upperCamelCase> <stubbOther> :== “O_”<upperCamelCase> <att> :== “classCode { < ” ( ‘A’-‘Z’ )+ “ }”

Examples:

 <STUB>

R_Payload classCode { < ROL }