This wiki has undergone a migration to Confluence found Here
Difference between revisions of "Static Model BNF Grammar"
Jump to navigation
Jump to search
m (→CMET Rendering) |
|||
Line 99: | Line 99: | ||
===Examples:=== | ===Examples:=== | ||
− | + | <CMET> | |
R_AssignedPerson universal | R_AssignedPerson universal | ||
classCode { < OBS } | classCode { < OBS } |
Revision as of 23:37, 2 August 2009
Contents
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 <!-- Must prohibit the “{“ character hl7Metadata :== “{“ mandatoryConf (vocabBinding | fixedValue | enumeration | allowedRange | lengthLimits)? updateMode? extensionOid? businessNames? “ }” mandatoryConf :== “ M” <!-- isMandatory = true, required --> | “ R” <!-- isMandatory = false, required --> | “ NP” <!-- isMandatory = false, not permitted --> | “ I” <!-- isMandatory = false, ignored --> | “ U” <!-- isMandatory = false, unspecified --> vocabBinding :== conceptDomainBinding | valueSetBinding | codeBinding conceptDomainBinding :== “ < CD: ” ( domainName | ( “x_” domainName ) ) domainName :== upperCamelCase valueSetBinding :== valueSetFull <!-- used for all non-immutable codes --> | valueSetShort <!-- used for all immutable codes --> valueSetFull :== “ < V:” ( valueSetName | oid ) valueSetVersion? strength anyText valueSetShort :== valueSetLT | valueSetLE valueSetLT :== “ < “ ( ‘A’-‘Z’ )+ <!-- all specializations of specified root code --> valueSetLE :== “ <= “ ( ‘A’-‘Z’ )+ <!-- —specified root code and all specializations --> valueSetName :== upperCamelCase | ( “x_” upperCamelCase ) ) valueSetVersion :== “#” ( ‘0’-‘9’ ){8} ( ( ‘0’-‘9’ ){6} )? <!-- date with optional time --> strength :== “ CWE” | “ CNE” codeBinding :== codeFull <!-- used for all non-immutable codes --> | codeShort <!-- used for all immutable codes --> 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 “)” <!-- Must exclude “(“ --> 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 }