{
  "publisher": "openehr",
  "release": "1.1.0",
  "schema_name": "RM110",
  "schema_display_name": "RM 1.1.0",
  "schema_ids": [
    "openehr_base_foundation_types_1.1.0",
    "openehr_base_base_types_1.1.0",
    "openehr_base_resource_1.1.0",
    "openehr_base_1.1.0",
    "openehr_rm_data_types_1.1.0",
    "openehr_rm_structures_1.1.0",
    "openehr_rm_ehr_1.1.0",
    "openehr_rm_demographic_1.1.0",
    "openehr_rm_ehr_extract_1.1.0",
    "openehr_rm_1.1.0"
  ],
  "is_am": false,
  "is_rm": true,
  "packages": {
    "org": {
      "name": "org",
      "canonical_path": "org",
      "packages": {
        "openehr": {
          "name": "openehr",
          "canonical_path": "org.openehr",
          "packages": {
            "base": {
              "name": "base",
              "canonical_path": "org.openehr.base",
              "packages": {
                "foundation_types": {
                  "name": "foundation_types",
                  "canonical_path": "org.openehr.base.foundation_types",
                  "packages": {
                    "primitive_types": {
                      "name": "primitive_types",
                      "canonical_path": "org.openehr.base.foundation_types.primitive_types",
                      "classes": [
                        "Any",
                        "Ordered",
                        "Numeric",
                        "Ordered_Numeric",
                        "Octet",
                        "Byte",
                        "Boolean",
                        "Integer",
                        "Integer64",
                        "Real",
                        "Double",
                        "Character",
                        "String",
                        "Uri",
                        "Terminology_code",
                        "Terminology_term"
                      ]
                    },
                    "structures": {
                      "name": "structures",
                      "canonical_path": "org.openehr.base.foundation_types.structures",
                      "classes": [
                        "List",
                        "Array",
                        "Set",
                        "Hash",
                        "Container"
                      ]
                    },
                    "interval": {
                      "name": "interval",
                      "canonical_path": "org.openehr.base.foundation_types.interval",
                      "classes": [
                        "Interval",
                        "Multiplicity_interval",
                        "Cardinality"
                      ]
                    },
                    "time": {
                      "name": "time",
                      "canonical_path": "org.openehr.base.foundation_types.time",
                      "classes": [
                        "Temporal",
                        "Iso8601_type",
                        "Date",
                        "Time",
                        "Date_time",
                        "Duration",
                        "Iso8601_date",
                        "Iso8601_time",
                        "Iso8601_date_time",
                        "Iso8601_duration"
                      ]
                    }
                  }
                },
                "base_types": {
                  "name": "base_types",
                  "canonical_path": "org.openehr.base.base_types",
                  "packages": {
                    "definitions": {
                      "name": "definitions",
                      "canonical_path": "org.openehr.base.base_types.definitions",
                      "classes": [
                        "VALIDITY_KIND",
                        "VERSION_STATUS"
                      ]
                    },
                    "identification": {
                      "name": "identification",
                      "canonical_path": "org.openehr.base.base_types.identification",
                      "classes": [
                        "OBJECT_REF",
                        "OBJECT_ID",
                        "UID",
                        "LOCATABLE_REF",
                        "PARTY_REF",
                        "ACCESS_GROUP_REF",
                        "TERMINOLOGY_ID",
                        "UID_BASED_ID",
                        "GENERIC_ID",
                        "ARCHETYPE_ID",
                        "TEMPLATE_ID",
                        "OBJECT_VERSION_ID",
                        "HIER_OBJECT_ID",
                        "VERSION_TREE_ID",
                        "INTERNET_ID",
                        "UUID",
                        "ISO_OID"
                      ]
                    }
                  }
                },
                "resource": {
                  "name": "resource",
                  "canonical_path": "org.openehr.base.resource",
                  "classes": [
                    "AUTHORED_RESOURCE",
                    "TRANSLATION_DETAILS",
                    "RESOURCE_DESCRIPTION",
                    "RESOURCE_DESCRIPTION_ITEM",
                    "RESOURCE_ANNOTATIONS"
                  ]
                }
              }
            },
            "rm": {
              "name": "rm",
              "canonical_path": "org.openehr.rm",
              "packages": {
                "data_types": {
                  "name": "data_types",
                  "canonical_path": "org.openehr.rm.data_types",
                  "packages": {
                    "basic": {
                      "name": "basic",
                      "canonical_path": "org.openehr.rm.data_types.basic",
                      "classes": [
                        "DATA_VALUE",
                        "DV_BOOLEAN",
                        "DV_STATE",
                        "DV_IDENTIFIER"
                      ]
                    },
                    "text": {
                      "name": "text",
                      "canonical_path": "org.openehr.rm.data_types.text",
                      "classes": [
                        "DV_TEXT",
                        "DV_CODED_TEXT",
                        "TERM_MAPPING",
                        "CODE_PHRASE",
                        "DV_PARAGRAPH"
                      ]
                    },
                    "quantity": {
                      "name": "quantity",
                      "canonical_path": "org.openehr.rm.data_types.quantity",
                      "classes": [
                        "DV_INTERVAL",
                        "REFERENCE_RANGE",
                        "DV_ORDERED",
                        "DV_QUANTIFIED",
                        "DV_QUANTITY",
                        "DV_PROPORTION",
                        "PROPORTION_KIND",
                        "DV_AMOUNT",
                        "DV_ABSOLUTE_QUANTITY",
                        "DV_COUNT",
                        "DV_ORDINAL",
                        "DV_SCALE"
                      ],
                      "packages": {
                        "date_time": {
                          "name": "date_time",
                          "canonical_path": "org.openehr.rm.data_types.quantity.date_time",
                          "classes": [
                            "DV_TEMPORAL",
                            "DV_DATE",
                            "DV_DATE_TIME",
                            "DV_TIME",
                            "DV_DURATION"
                          ]
                        }
                      }
                    },
                    "encapsulated": {
                      "name": "encapsulated",
                      "canonical_path": "org.openehr.rm.data_types.encapsulated",
                      "classes": [
                        "DV_ENCAPSULATED",
                        "DV_MULTIMEDIA",
                        "DV_PARSABLE"
                      ]
                    },
                    "uri": {
                      "name": "uri",
                      "canonical_path": "org.openehr.rm.data_types.uri",
                      "classes": [
                        "DV_URI",
                        "DV_EHR_URI"
                      ]
                    },
                    "time_specification": {
                      "name": "time_specification",
                      "canonical_path": "org.openehr.rm.data_types.time_specification",
                      "classes": [
                        "DV_TIME_SPECIFICATION",
                        "DV_PERIODIC_TIME_SPECIFICATION",
                        "DV_GENERAL_TIME_SPECIFICATION"
                      ]
                    }
                  }
                },
                "demographic": {
                  "name": "demographic",
                  "canonical_path": "org.openehr.rm.demographic",
                  "classes": [
                    "PARTY",
                    "ROLE",
                    "ACTOR",
                    "PERSON",
                    "ORGANISATION",
                    "AGENT",
                    "GROUP",
                    "PARTY_RELATIONSHIP",
                    "CAPABILITY",
                    "CONTACT",
                    "ADDRESS",
                    "PARTY_IDENTITY"
                  ]
                },
                "ehr": {
                  "name": "ehr",
                  "canonical_path": "org.openehr.rm.ehr",
                  "classes": [
                    "EHR",
                    "EHR_ACCESS",
                    "EHR_STATUS",
                    "ACCESS_CONTROL_SETTINGS"
                  ]
                },
                "composition": {
                  "name": "composition",
                  "canonical_path": "org.openehr.rm.composition",
                  "classes": [
                    "COMPOSITION",
                    "EVENT_CONTEXT"
                  ],
                  "packages": {
                    "content": {
                      "name": "content",
                      "canonical_path": "org.openehr.rm.composition.content",
                      "classes": [
                        "CONTENT_ITEM"
                      ],
                      "packages": {
                        "navigation": {
                          "name": "navigation",
                          "canonical_path": "org.openehr.rm.composition.content.navigation",
                          "classes": [
                            "SECTION"
                          ]
                        },
                        "entry": {
                          "name": "entry",
                          "canonical_path": "org.openehr.rm.composition.content.entry",
                          "classes": [
                            "ENTRY",
                            "CARE_ENTRY",
                            "ADMIN_ENTRY",
                            "OBSERVATION",
                            "EVALUATION",
                            "INSTRUCTION",
                            "ACTION",
                            "ACTIVITY",
                            "ISM_TRANSITION",
                            "INSTRUCTION_DETAILS"
                          ]
                        },
                        "integration": {
                          "name": "integration",
                          "canonical_path": "org.openehr.rm.composition.content.integration",
                          "classes": [
                            "GENERIC_ENTRY"
                          ]
                        }
                      }
                    }
                  }
                },
                "data_structures": {
                  "name": "data_structures",
                  "canonical_path": "org.openehr.rm.data_structures",
                  "classes": [
                    "DATA_STRUCTURE"
                  ],
                  "packages": {
                    "item_structure": {
                      "name": "item_structure",
                      "canonical_path": "org.openehr.rm.data_structures.item_structure",
                      "classes": [
                        "ITEM_STRUCTURE",
                        "ITEM_SINGLE",
                        "ITEM_TABLE",
                        "ITEM_TREE",
                        "ITEM_LIST"
                      ],
                      "packages": {
                        "representation": {
                          "name": "representation",
                          "canonical_path": "org.openehr.rm.data_structures.item_structure.representation",
                          "classes": [
                            "ITEM",
                            "CLUSTER",
                            "ELEMENT"
                          ]
                        }
                      }
                    },
                    "history": {
                      "name": "history",
                      "canonical_path": "org.openehr.rm.data_structures.history",
                      "classes": [
                        "HISTORY",
                        "EVENT",
                        "POINT_EVENT",
                        "INTERVAL_EVENT"
                      ]
                    }
                  }
                },
                "common": {
                  "name": "common",
                  "canonical_path": "org.openehr.rm.common",
                  "packages": {
                    "generic": {
                      "name": "generic",
                      "canonical_path": "org.openehr.rm.common.generic",
                      "classes": [
                        "PARTICIPATION",
                        "PARTY_PROXY",
                        "PARTY_SELF",
                        "PARTY_IDENTIFIED",
                        "PARTY_RELATED",
                        "AUDIT_DETAILS",
                        "ATTESTATION",
                        "REVISION_HISTORY",
                        "REVISION_HISTORY_ITEM"
                      ]
                    },
                    "archetyped": {
                      "name": "archetyped",
                      "canonical_path": "org.openehr.rm.common.archetyped",
                      "classes": [
                        "PATHABLE",
                        "LOCATABLE",
                        "LINK",
                        "ARCHETYPED",
                        "FEEDER_AUDIT",
                        "FEEDER_AUDIT_DETAILS"
                      ]
                    },
                    "change_control": {
                      "name": "change_control",
                      "canonical_path": "org.openehr.rm.common.change_control",
                      "classes": [
                        "VERSIONED_OBJECT",
                        "CONTRIBUTION",
                        "VERSION",
                        "ORIGINAL_VERSION",
                        "IMPORTED_VERSION"
                      ]
                    },
                    "directory": {
                      "name": "directory",
                      "canonical_path": "org.openehr.rm.common.directory",
                      "classes": [
                        "FOLDER"
                      ]
                    }
                  }
                },
                "ehr_extract": {
                  "name": "ehr_extract",
                  "canonical_path": "org.openehr.rm.ehr_extract",
                  "packages": {
                    "common": {
                      "name": "common",
                      "canonical_path": "org.openehr.rm.ehr_extract.common",
                      "classes": [
                        "EXTRACT",
                        "EXTRACT_SPEC",
                        "EXTRACT_ITEM",
                        "EXTRACT_REQUEST",
                        "EXTRACT_UPDATE_SPEC",
                        "EXTRACT_ACTION_REQUEST",
                        "EXTRACT_CONTENT_ITEM",
                        "EXTRACT_FOLDER",
                        "EXTRACT_VERSION_SPEC",
                        "EXTRACT_CHAPTER",
                        "EXTRACT_ENTITY_CHAPTER",
                        "EXTRACT_MANIFEST",
                        "EXTRACT_ENTITY_MANIFEST",
                        "EXTRACT_PARTICIPATION"
                      ]
                    },
                    "openehr_extract": {
                      "name": "openehr_extract",
                      "canonical_path": "org.openehr.rm.ehr_extract.openehr_extract",
                      "classes": [
                        "OPENEHR_CONTENT_ITEM",
                        "X_VERSIONED_OBJECT",
                        "X_VERSIONED_PARTY",
                        "X_VERSIONED_EHR_ACCESS",
                        "X_VERSIONED_EHR_STATUS",
                        "X_VERSIONED_COMPOSITION",
                        "X_VERSIONED_FOLDER"
                      ]
                    },
                    "generic_extract": {
                      "name": "generic_extract",
                      "canonical_path": "org.openehr.rm.ehr_extract.generic_extract",
                      "classes": [
                        "GENERIC_CONTENT_ITEM"
                      ]
                    },
                    "sync_extract": {
                      "name": "sync_extract",
                      "canonical_path": "org.openehr.rm.ehr_extract.sync_extract",
                      "classes": [
                        "SYNC_EXTRACT",
                        "SYNC_EXTRACT_REQUEST",
                        "SYNC_EXTRACT_SPEC",
                        "X_CONTRIBUTION"
                      ]
                    },
                    "message": {
                      "name": "message",
                      "canonical_path": "org.openehr.rm.ehr_extract.message",
                      "classes": [
                        "ADDRESSED_MESSAGE",
                        "MESSAGE",
                        "MESSAGE_CONTENT"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "class_definitions": {
    "Any": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Any",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": true,
      "is_primitive_type": true
    },
    "Ordered": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Ancestor of types with total order relation defined, i.e. '<' and '='.",
      "name": "Ordered",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ]
    },
    "Numeric": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Ancestor of numeric types.",
      "name": "Numeric",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ]
    },
    "Ordered_Numeric": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Ancestor of ordered numeric types.",
      "name": "Ordered_Numeric",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Numeric",
        "Ordered"
      ]
    },
    "Octet": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Octet",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered"
      ]
    },
    "Byte": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Byte",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered"
      ]
    },
    "Boolean": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Boolean",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ]
    },
    "Integer": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Integer",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered_Numeric"
      ]
    },
    "Integer64": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Integer64",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered_Numeric"
      ]
    },
    "Real": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Real",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered_Numeric"
      ]
    },
    "Double": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Double",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered_Numeric"
      ]
    },
    "Character": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Character",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered"
      ]
    },
    "String": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "String",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered"
      ]
    },
    "Uri": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Uri",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "String"
      ]
    },
    "Terminology_code": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Terminology_code",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "terminology_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "terminology_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "terminology_version": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "terminology_version",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "code_string": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "code_string",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "uri": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "uri",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Uri"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "Terminology_term": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Terminology_term",
      "package_path": "org.openehr.base.foundation_types.primitive_types",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "text": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "text",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "concept": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "concept",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Terminology_code"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "List": {
      "_type": "BMM_GENERIC_CLASS",
      "name": "List",
      "package_path": "org.openehr.base.foundation_types.structures",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Container<V>"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "List<V>",
        "type_name_simple": "List<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "V",
            "effective_type_name": "Any",
            "parameter_name": "V"
          }
        ]
      }
    },
    "Array": {
      "_type": "BMM_GENERIC_CLASS",
      "name": "Array",
      "package_path": "org.openehr.base.foundation_types.structures",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Container<V>"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "Array<V>",
        "type_name_simple": "Array<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "V",
            "effective_type_name": "Any",
            "parameter_name": "V"
          }
        ]
      }
    },
    "Set": {
      "_type": "BMM_GENERIC_CLASS",
      "name": "Set",
      "package_path": "org.openehr.base.foundation_types.structures",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Container<V>"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "Set<V>",
        "type_name_simple": "Set<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "V",
            "effective_type_name": "Any",
            "parameter_name": "V"
          }
        ]
      }
    },
    "Hash": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Type defining Hash table / hash map structure, whose type parameters V and K represent a value type and an Ordered key type respectively.",
      "name": "Hash",
      "package_path": "org.openehr.base.foundation_types.structures",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Container<V>"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "Hash<K,V>",
        "type_name_simple": "Hash<Ordered,Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "K",
            "effective_type_name": "Ordered",
            "parameter_name": "K"
          },
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "V",
            "effective_type_name": "Any",
            "parameter_name": "V"
          }
        ]
      }
    },
    "Container": {
      "_type": "BMM_GENERIC_CLASS",
      "name": "Container",
      "package_path": "org.openehr.base.foundation_types.structures",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "Container<V>",
        "type_name_simple": "Container<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "V",
            "effective_type_name": "Any",
            "parameter_name": "V"
          }
        ]
      }
    },
    "Interval": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Type defining an interval of any ordered type.",
      "name": "Interval",
      "package_path": "org.openehr.base.foundation_types.interval",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "lower": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "lower",
          "type": {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Ordered",
            "parameter_name": "T"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "upper": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "upper",
          "type": {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Ordered",
            "parameter_name": "T"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "lower_unbounded": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "lower_unbounded",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "upper_unbounded": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "upper_unbounded",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "lower_included": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "lower_included",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "upper_included": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "upper_included",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "Interval<T>",
        "type_name_simple": "Interval<Ordered>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Ordered",
            "parameter_name": "T"
          }
        ]
      }
    },
    "Multiplicity_interval": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Multiplicity_interval",
      "package_path": "org.openehr.base.foundation_types.interval",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Interval<Integer>"
      ]
    },
    "Cardinality": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Cardinality",
      "package_path": "org.openehr.base.foundation_types.interval",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "is_ordered": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "is_ordered",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_unique": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "is_unique",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "interval": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "interval",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Multiplicity_interval"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "Temporal": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "Temporal",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Ordered"
      ]
    },
    "Iso8601_type": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Parent of ISO8601 types.",
      "name": "Iso8601_type",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": true,
      "is_primitive_type": true,
      "ancestors": [
        "Temporal"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "Date": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Date type based on IS8601 representation.",
      "name": "Date",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Time": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Time type based on IS8601 representation.",
      "name": "Time",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Date_time": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Date Time type based on IS8601 representation.",
      "name": "Date_time",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Duration": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Duration type based on IS8601 representation.",
      "name": "Duration",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Iso8601_date": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Date type based on IS8601 representation.",
      "name": "Iso8601_date",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Iso8601_time": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Time type based on IS8601 representation.",
      "name": "Iso8601_time",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Iso8601_date_time": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Date Time type based on IS8601 representation.",
      "name": "Iso8601_date_time",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "Iso8601_duration": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Duration type based on IS8601 representation.",
      "name": "Iso8601_duration",
      "package_path": "org.openehr.base.foundation_types.time",
      "is_abstract": false,
      "is_primitive_type": true,
      "ancestors": [
        "Iso8601_type"
      ]
    },
    "VALIDITY_KIND": {
      "_type": "BMM_ENUMERATION",
      "name": "VALIDITY_KIND",
      "package_path": "org.openehr.base.base_types.definitions",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "String"
      ],
      "underlying_type_name": "String",
      "item_names": [
        "mandatory",
        "optional",
        "prohibited"
      ]
    },
    "VERSION_STATUS": {
      "_type": "BMM_ENUMERATION",
      "name": "VERSION_STATUS",
      "package_path": "org.openehr.base.base_types.definitions",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "String"
      ],
      "underlying_type_name": "String",
      "item_names": [
        "alpha",
        "beta",
        "release_candidate",
        "released",
        "build"
      ]
    },
    "OBJECT_REF": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "OBJECT_REF",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "namespace": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "namespace",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "OBJECT_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "OBJECT_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "UID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "UID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "LOCATABLE_REF": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "LOCATABLE_REF",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_REF"
      ],
      "properties": {
        "id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "UID_BASED_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "path": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "path",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      }
    },
    "PARTY_REF": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "PARTY_REF",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_REF"
      ]
    },
    "ACCESS_GROUP_REF": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "ACCESS_GROUP_REF",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_REF"
      ]
    },
    "TERMINOLOGY_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "TERMINOLOGY_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_ID"
      ]
    },
    "UID_BASED_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "UID_BASED_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_ID"
      ]
    },
    "GENERIC_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "GENERIC_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_ID"
      ],
      "properties": {
        "scheme": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "scheme",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "ARCHETYPE_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "ARCHETYPE_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_ID"
      ]
    },
    "TEMPLATE_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "TEMPLATE_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "OBJECT_ID"
      ]
    },
    "OBJECT_VERSION_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "OBJECT_VERSION_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "UID_BASED_ID"
      ]
    },
    "HIER_OBJECT_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "HIER_OBJECT_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "UID_BASED_ID"
      ]
    },
    "VERSION_TREE_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "VERSION_TREE_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "INTERNET_ID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "INTERNET_ID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "UID"
      ]
    },
    "UUID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "UUID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "UID"
      ]
    },
    "ISO_OID": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "ISO_OID",
      "package_path": "org.openehr.base.base_types.identification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "UID"
      ]
    },
    "AUTHORED_RESOURCE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract idea of an online resource created by a human author.",
      "name": "AUTHORED_RESOURCE",
      "package_path": "org.openehr.base.resource",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "original_language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Language in which this resource was initially authored. Although there is no language primacy of resources overall, the language of original authoring is required to ensure natural language translations can preserve quality. Language is relevant in both the description and ontology sections.",
          "name": "original_language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Terminology_code"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_controlled": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if this resource is under any kind of change control (even file copying), in which case revision history is created.",
          "name": "is_controlled",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "translations": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "List of details for each natural-language translation made of this resource, keyed by language. For each translation listed here, there must be corresponding sections in all language-dependent parts of the resource. The `_original_language_` does not appear in this list.",
          "name": "translations",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,TRANSLATION_DETAILS>",
            "type_name_simple": "Hash<String,TRANSLATION_DETAILS>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "TRANSLATION_DETAILS"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "description": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description and lifecycle information of the resource.",
          "name": "description",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "RESOURCE_DESCRIPTION"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "annotations": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "annotations",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "RESOURCE_ANNOTATIONS"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*current_revision* (): `String` +  + __Post__: `Result = revision_history.most_recent_version`": {
          "prefix": "*1..1*",
          "declaration": "*current_revision* (): `String` +\n +\n__Post__: `Result = revision_history.most_recent_version`"
        },
        "*languages_available* (): `List<String>`": {
          "prefix": "",
          "declaration": "*languages_available* (): `List<String>`"
        }
      },
      "invariants": {
        "Original_language_valid": {
          "name": "Original_language_valid",
          "definition": "`code_set (Code_set_id_languages).has_code (original_language.as_string)`"
        },
        "Languages_available_valid": {
          "name": "Languages_available_valid",
          "definition": "`languages_available.has (original_language)`"
        },
        "Revision_history_valid": {
          "name": "Revision_history_valid",
          "definition": "`is_controlled xor revision_history = Void`"
        },
        "Current_revision_valid": {
          "name": "Current_revision_valid",
          "definition": "`(current_revision /= Void and not is_controlled) implies current_revision.is_equal (“(uncontrolled)”)`"
        },
        "Translations_valid": {
          "name": "Translations_valid",
          "definition": "`translations /= Void implies (not translations.is_empty and not translations.has (orginal_language.code_string))`"
        },
        "Description_valid": {
          "name": "Description_valid",
          "definition": "`translations /= Void implies (description.details.for_all (d |"
        }
      }
    },
    "TRANSLATION_DETAILS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Class providing details of a natural language translation.",
      "name": "TRANSLATION_DETAILS",
      "package_path": "org.openehr.base.resource",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Language of the translation.",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Terminology_code"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "author": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Translator name and other demographic details.",
          "name": "author",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "accreditation": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "accreditation",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "version_last_translated": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "version_last_translated",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Any other meta-data.",
          "name": "other_details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`code_set (Code_set_id_languages).has_code (language)`"
        }
      }
    },
    "RESOURCE_DESCRIPTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Defines the descriptive meta-data of a resource.",
      "name": "RESOURCE_DESCRIPTION",
      "package_path": "org.openehr.base.resource",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "original_author": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Original author of this resource, with all relevant details, including organisation.",
          "name": "original_author",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "original_namespace": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "original_namespace",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "original_publisher": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "original_publisher",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_contributors": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Other contributors to the resource, probably listed in  `'name <email>'`  form.",
          "name": "other_contributors",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<String>",
            "effective_type_name": "String",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "String"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "custodian_namespace": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "custodian_namespace",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "custodian_organisation": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "custodian_organisation",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "copyright": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "copyright",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "licence": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "licence",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "lifecycle_state": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Lifecycle state of the resource, typically including states such as: `initial | submitted | experimental | awaiting_approval | approved | superseded | obsolete`.",
          "name": "lifecycle_state",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "resource_package_uri": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "URI of package to which this resource belongs.",
          "name": "resource_package_uri",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "ip_acknowledgements": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "ip_acknowledgements",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "references": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "references",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "conversion_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "conversion_details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Additional non language-senstive resource meta-data, as a list of name/value pairs.",
          "name": "other_details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "parent_resource": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "{default{nbsp}={nbsp}0..1}`\nReference to owning resource.",
          "name": "parent_resource",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "AUTHORED_RESOURCE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of all parts of resource description that are natural language-dependent, keyed by language code.",
          "name": "details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,RESOURCE_DESCRIPTION_ITEM>",
            "type_name_simple": "Hash<String,RESOURCE_DESCRIPTION_ITEM>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "RESOURCE_DESCRIPTION_ITEM"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Original_author_valid": {
          "name": "Original_author_valid",
          "definition": "`not original_author.is_empty`"
        },
        "Lifecycle_state_valid": {
          "name": "Lifecycle_state_valid",
          "definition": "`not lifecycle_state.is_empty`"
        },
        "Details_valid": {
          "name": "Details_valid",
          "definition": "`not details.is_empty`"
        },
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`parent_resource /= Void implies details.for_all (d | parent_resource.languages_available.has (d.language.code_string))`"
        },
        "Parent_resource_valid": {
          "name": "Parent_resource_valid",
          "definition": "`parent_resource /= Void implies parent_resource.description = self`"
        }
      }
    },
    "RESOURCE_DESCRIPTION_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Language-specific detail of resource description. When a resource is translated for use in another language environment, each `RESOURCE_DESCRIPTION_ITEM` needs to be copied and translated into the new language.",
      "name": "RESOURCE_DESCRIPTION_ITEM",
      "package_path": "org.openehr.base.resource",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The localised language in which the items in this description item are written. Coded from openEHR code set `languages`.",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Terminology_code"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "purpose": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Purpose of the resource.",
          "name": "purpose",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "keywords": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Keywords which characterise this resource, used e.g. for indexing and searching.",
          "name": "keywords",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<String>",
            "effective_type_name": "String",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "String"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "use": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description of the uses of the resource, i.e. contexts in which it could be used.",
          "name": "use",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "misuse": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description of any misuses of the resource, i.e. contexts in which it should not be used.",
          "name": "misuse",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "original_resource_uri": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "URIs of original clinical document(s) or description of which resource is a formalisation, in the language of this description item; keyed by meaning.",
          "name": "original_resource_uri",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<Hash<String,String>>",
            "effective_type_name": "Hash<String,String>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "Hash<String,String>",
              "type_name_simple": "Hash<String,String>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "String"
                },
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "String"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Additional language-senstive resource metadata, as a list of name/value pairs.",
          "name": "other_details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`code_set (Code_set_id_languages).has_code (language)`"
        },
        "Purpose_valid": {
          "name": "Purpose_valid",
          "definition": "`not purpose.is_empty`"
        },
        "Use_valid": {
          "name": "Use_valid",
          "definition": "`use /= Void implies not use.is_empty`"
        },
        "misuse_valid": {
          "name": "misuse_valid",
          "definition": "`misuse /= Void implies not misuse.is_empty`"
        },
        "copyright_valid": {
          "name": "copyright_valid",
          "definition": "`copyright /= Void implies not copyright.is_empty`"
        }
      }
    },
    "RESOURCE_ANNOTATIONS": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "RESOURCE_ANNOTATIONS",
      "package_path": "org.openehr.base.resource",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "documentation": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "documentation",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,Hash<String,Hash<String,String>>>",
            "type_name_simple": "Hash<String,Hash<String,Hash<String,String>>>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "Hash<String,Hash<String,String>>",
                "type_name_simple": "Hash<String,Hash<String,String>>",
                "generic_parameters": [
                  {
                    "_type": "BMM_SIMPLE_TYPE",
                    "type_name": "String"
                  },
                  {
                    "_type": "BMM_GENERIC_TYPE",
                    "type_name": "Hash<String,String>",
                    "type_name_simple": "Hash<String,String>",
                    "generic_parameters": [
                      {
                        "_type": "BMM_SIMPLE_TYPE",
                        "type_name": "String"
                      },
                      {
                        "_type": "BMM_SIMPLE_TYPE",
                        "type_name": "String"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "DATA_VALUE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract parent of all `DV_` data value types.\nServes as a common ancestor of all data value types in openEHR models.",
      "name": "DATA_VALUE",
      "package_path": "org.openehr.rm.data_types.basic",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ]
    },
    "DV_BOOLEAN": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Items which are truly boolean data, such as true/false or yes/no answers. For such data, it is important to devise the meanings (usually questions in subjective data)  carefully, so that the only allowed results are in fact true or false.\n\nMisuse: The DV_BOOLEAN class should not be used as a replacement for naively modelled enumerated types such as male/female etc. Such values should be coded, and in any case the enumeration often has more than two values.",
      "name": "DV_BOOLEAN",
      "package_path": "org.openehr.rm.data_types.basic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Boolean value of this item. Actual values may be language or implementation dependent.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "DV_STATE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "For representing state values which obey a defined state machine, such as a variable  representing the states of an instruction or care process.\n\nDV_STATE is expressed as a String but its values are driven by archetype-defined  state machines. This provides a powerful way of capturing stateful complex processes  in simple data.",
      "name": "DV_STATE",
      "package_path": "org.openehr.rm.data_types.basic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The state name. State names are determined by a state/event table defined in archetypes, and coded using openEHR Terminology or local archetype terms, as specified by the archetype.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_terminal": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Indicates whether this state is a terminal state, such as  \"aborted\",  \"completed\" etc. from which no further transitions are possible.",
          "name": "is_terminal",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "DV_IDENTIFIER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Type for representing identifiers of real-world entities. Typical identifiers include drivers licence number, social security number, veterans affairs number, prescription id, order id, and so on.\n\nDV_IDENTIFIER is used to represent any identifier of a real thing, issued by some authority or agency.\n\nMisuse: DV_IDENTIFIER is not used to express identifiers generated by the infrastructure to refer to information items; the types OBJECT_ID and OBJECT_REF and subtypes are defined for this purpose.",
      "name": "DV_IDENTIFIER",
      "package_path": "org.openehr.rm.data_types.basic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "issuer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional authority which issues the kind of id used in the id field of this object.",
          "name": "issuer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The identifier value. Often structured, according to the definition of the issuing authority's rules.",
          "name": "id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional identifier type, such as  prescription , or  Social Security Number . One day a controlled vocabulary might be possible for this.",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "assigner": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional organisation that assigned the id to the item being identified.",
          "name": "assigner",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Id_valid": {
          "name": "Id_valid",
          "definition": "`not id.is_empty`"
        }
      }
    },
    "DV_TEXT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A text item, which may contain any amount of legal characters arranged as e.g. words, sentences etc (i.e. one `DV_TEXT` may be more than one word). Visual formatting and hyperlinks may be included via markdown.\n\nIf the `_formatting_` field is set, the `_value_` field is affected as follows:\n\n* `_formatting_ = \"plain\"`: plain text, may contain newlines;\n* `_formatting_ = \"plain_no_newlines\"`: plain text with no newlines;\n* `_formatting_ = \"markdown\"`: text in markdown format; use of CommonMark strongly recommended.\n\nA `DV_TEXT` can be coded by adding mappings to it.",
      "name": "DV_TEXT",
      "package_path": "org.openehr.rm.data_types.text",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Displayable rendition of the item, regardless of its underlying structure. For `DV_CODED_TEXT`, this is the rubric of the complete term as provided by the terminology service.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "hyperlink": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "DEPRECATED: this field is deprecated; use markdown link/text in the `_value_` attribute, and `\"markdown\"` as the value of the `_formatting_` field.\n\nOriginal usage, prior to RM Release 1.0.4: Optional link sitting behind a section of plain text or coded term item.",
          "name": "hyperlink",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_URI"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional indicator of the localised language in which the value is written. Coded from openEHR Code Set  languages . Only used when either the text object is in a different language from the enclosing `ENTRY`, or else the text object is being used outside of an `ENTRY` or other enclosing structure which indicates the language.",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "encoding": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Name of character encoding scheme in which this value is encoded. Coded from openEHR Code Set  character sets . Unicode is the default assumption in openEHR, with UTF-8 being the assumed encoding. This attribute allows for variations from these assumptions.",
          "name": "encoding",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "formatting": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "If set, contains one of the following values:\n\n* `\"plain\"`: use for plain text, possibly containing newlines, but otherwise unformatted (same as Void);\n* `\"plain_no_newlines\"`: use for text containing no newlines or other formatting;\n* `\"markdown\"`: use for markdown formatted text, strongly recommended in the format of the CommonMark specification.\n\nDEPRECATED usage: contains a string of the form `\"name:value; name:value...\"` , e.g. `\"font-weight : bold; font-family : Arial; font-size : 12pt;\"`. Values taken from W3C CSS2 properties lists for background and font .",
          "name": "formatting",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "mappings": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Terms from other terminologies most closely matching this term, typically used where the originator (e.g. pathology lab) of information uses a local terminology but also supplies one or more equivalents from well known terminologies (e.g. LOINC).",
          "name": "mappings",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<TERM_MAPPING>",
            "effective_type_name": "TERM_MAPPING",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "TERM_MAPPING"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "invariants": {
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`language /= Void implies code_set (Code_set_id_languages).has_code (language)`"
        },
        "Encoding_valid": {
          "name": "Encoding_valid",
          "definition": "`encoding /= Void implies code_set (Code_set_id_character_sets).has_code (encoding)`"
        },
        "Mappings_valid": {
          "name": "Mappings_valid",
          "definition": "`mappings /= void implies not mappings.is_empty`"
        },
        "Formatting_valid": {
          "name": "Formatting_valid",
          "definition": "`formatting /= void implies not formatting.is_empty`"
        }
      }
    },
    "DV_CODED_TEXT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A text item whose value must be the rubric from a controlled terminology, the key (i.e. the 'code') of which is the `_defining_code_` attribute. In other words: a `DV_CODED_TEXT` is a combination of a `CODE_PHRASE` (effectively a code) and the rubric of that term, from a terminology service, in the language in which the data were authored.\n\nSince `DV_CODED_TEXT` is a subtype of `DV_TEXT`, it can be used in place of it, effectively allowing the type `DV_TEXT` to mean  a text item, which may optionally be coded.\n\nMisuse: If the intention is to represent a term code attached in some way to a fragment of plain text, `DV_CODED_TEXT` should not be used; instead use a `DV_TEXT` and a `TERM_MAPPING` to a `CODE_PHRASE`.",
      "name": "DV_CODED_TEXT",
      "package_path": "org.openehr.rm.data_types.text",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TEXT"
      ],
      "properties": {
        "defining_code": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The term of which the  `_value_` attribute is the textual rendition (i.e. rubric).",
          "name": "defining_code",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "TERM_MAPPING": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents a coded term mapped to a `DV_TEXT`, and the relative match of the target term with respect to the mapped item. Plain or coded text items may appear in the EHR for which one or mappings in alternative terminologies are required. Mappings are only used to enable computer processing, so they can only be instances of `DV_CODED_TEXT`.\n\nUsed for adding classification terms (e.g. adding ICD classifiers to SNOMED descriptive terms), or mapping into equivalents in other terminologies (e.g. across nursing vocabularies).",
      "name": "TERM_MAPPING",
      "package_path": "org.openehr.rm.data_types.text",
      "is_abstract": false,
      "is_primitive_type": false,
      "properties": {
        "match": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The relative match of the target term with respect to the mapped text item. Result meanings:\n\n* `'>'`: the mapping is to a broader term e.g. orginal text =  arbovirus infection , target =  viral infection\n* `'='`: the mapping is to a (supposedly) equivalent to the original item\n* `'<'`: the mapping is to a narrower term. e.g. original text =  diabetes , mapping =  diabetes mellitus .\n* `'?'`: the kind of mapping is unknown.\n\nThe first three values are taken from the ISO standards 2788 ( Guide to Establishment and development of monolingual thesauri) and 5964 (Guide to Establishment and development of multilingual thesauri).",
          "name": "match",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Character"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "purpose": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Purpose of the mapping e.g. 'automated data mining', 'billing', 'interoperability'.",
          "name": "purpose",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "target": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The target term of the mapping.",
          "name": "target",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*narrower* (): `Boolean` +  + __Post__: `match = ‘<’ implies Result`": {
          "prefix": "*1..1*",
          "declaration": "*narrower* (): `Boolean` +\n +\n__Post__: `match = ‘<’ implies Result`"
        },
        "*broader* (): `Boolean` +  + __Post__: `match = ‘>’ implies Result`": {
          "prefix": "",
          "declaration": "*broader* (): `Boolean` +\n +\n__Post__: `match = ‘>’ implies Result`"
        },
        "*equivalent* (): `Boolean`": {
          "prefix": "",
          "declaration": "*equivalent* (): `Boolean`"
        },
        "*unknown* (): `Boolean` +  + __Post__: `match = ‘?’ implies Result`": {
          "prefix": "",
          "declaration": "*unknown* (): `Boolean` +\n +\n__Post__: `match = ‘?’ implies Result`"
        },
        "*is_valid_match_code* ( + c: `char[1]` + ): `Boolean` +  + __Post__: `Result := c = ‘>’ or c = ‘=’ or c = ‘<’ or c = ‘?’`": {
          "prefix": "",
          "declaration": "*is_valid_match_code* ( +\nc: `char[1]` +\n): `Boolean` +\n +\n__Post__: `Result := c = ‘>’ or c = ‘=’ or c = ‘<’ or c = ‘?’`"
        }
      },
      "invariants": {
        "Purpose_valid": {
          "name": "Purpose_valid",
          "definition": "`purpose /= Void implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_term_mapping_purpose, purpose.defining_code)`"
        },
        "Match_valid": {
          "name": "Match_valid",
          "definition": "`is_valid_match_code (match)`"
        }
      }
    },
    "CODE_PHRASE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A fully coordinated (i.e. all coordination has been performed) term from a terminology service (as distinct from a particular terminology).",
      "name": "CODE_PHRASE",
      "package_path": "org.openehr.rm.data_types.text",
      "is_abstract": false,
      "is_primitive_type": false,
      "properties": {
        "terminology_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of the distinct terminology from which the code_string (or its elements) was extracted.",
          "name": "terminology_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "TERMINOLOGY_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "code_string": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The key used by the terminology service to identify a concept or coordination of concepts. This string is most likely parsable inside the terminology service, but nothing can be assumed about its syntax outside that context.",
          "name": "code_string",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "preferred_term": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional attribute to carry preferred term corresponding to the code or expression in `_code_string_`. Typical use in integration situations which create mappings, and representing data for which both a (non-preferred) actual term and a preferred term are both required.",
          "name": "preferred_term",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Code_string_valid": {
          "name": "Code_string_valid",
          "definition": "`not code_string.is_empty`"
        }
      }
    },
    "DV_PARAGRAPH": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "DEPRECATED: use markdown formatted `DV_TEXT` instead.\n\nOriginal definition:\n\nA logical composite text value consisting of a series of `DV_TEXTs`, i.e. plain text (optionally coded) potentially with simple formatting, to form a larger tract of prose, which may be interpreted for display purposes as a paragraph.\n\n`DV_PARAGRAPH` is the standard way for constructing longer text items in summaries, reports and so on.",
      "name": "DV_PARAGRAPH",
      "package_path": "org.openehr.rm.data_types.text",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Items making up the paragraph, each of which is a text item (which may have its own formatting, and/or have hyperlinks).",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_TEXT>",
            "effective_type_name": "DV_TEXT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_TEXT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "invariants": {
        "Items_valid": {
          "name": "Items_valid",
          "definition": "`not items.is_empty`"
        }
      }
    },
    "DV_TEMPORAL": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specialised temporal variant of `DV_ABSOLUTE_QUANTITY` whose diff type is `DV_DURATION`.",
      "name": "DV_TEMPORAL",
      "package_path": "org.openehr.rm.data_types.quantity.date_time",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ABSOLUTE_QUANTITY"
      ],
      "properties": {
        "accuracy": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time accuracy, expressed as a duration.",
          "name": "accuracy",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*add* __alias__ \"+\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_temporal_class,DV_TEMPORAL>>`": {
          "prefix": "*1..1 +",
          "declaration": "*add* __alias__ \"+\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_temporal_class,DV_TEMPORAL>>`"
        },
        "*subtract* __alias__ \"-\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_temporal_class,DV_TEMPORAL>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_temporal_class,DV_TEMPORAL>>`"
        },
        "*diff* __alias__ \"-\" ( + other: `<<_dv_temporal_class,DV_TEMPORAL>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*diff* __alias__ \"-\" ( +\nother: `<<_dv_temporal_class,DV_TEMPORAL>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        }
      }
    },
    "DV_DATE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents an absolute point in time, as measured on the Gregorian calendar, and specified only to the day. Semantics defined by ISO 8601. Used for recording dates in real world time. The partial form is used for approximate birth dates, dates of death, etc.",
      "name": "DV_DATE",
      "package_path": "org.openehr.rm.data_types.quantity.date_time",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TEMPORAL",
        "Iso8601_date"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "ISO8601 date string.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*magnitude* (): `Integer`": {
          "prefix": "*1..1 +",
          "declaration": "*magnitude* (): `Integer`"
        },
        "*is_equal* ( + other: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_equal* ( +\nother: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` +\n): `Boolean`"
        },
        "*add* __alias__ \"+\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_date_class,DV_DATE>>`": {
          "prefix": "",
          "declaration": "*add* __alias__ \"+\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_date_class,DV_DATE>>`"
        },
        "*subtract* __alias__ \"-\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_date_class,DV_DATE>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_date_class,DV_DATE>>`"
        },
        "*diff* __alias__ \"-\" ( + other: `<<_dv_date_class,DV_DATE>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*diff* __alias__ \"-\" ( +\nother: `<<_dv_date_class,DV_DATE>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_date_class,DV_DATE>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude > other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_date_class,DV_DATE>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude > other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_date_class,DV_DATE>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_date_class,DV_DATE>>[1]` +\n): `Boolean`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`valid_iso8601_date(value)`"
        }
      }
    },
    "DV_DATE_TIME": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents an absolute point in time, specified to the second. Semantics defined by ISO 8601.\n\nUsed for recording a precise point in real world time, and for approximate time stamps, e.g. the origin of a `HISTORY` in an `OBSERVATION` which is only partially known.",
      "name": "DV_DATE_TIME",
      "package_path": "org.openehr.rm.data_types.quantity.date_time",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TEMPORAL",
        "Iso8601_date_time"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "ISO8601 date/time string.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*magnitude* (): `double`": {
          "prefix": "*1..1 +",
          "declaration": "*magnitude* (): `double`"
        },
        "*add* __alias__ \"+\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_date_time_class,DV_DATE_TIME>>`": {
          "prefix": "",
          "declaration": "*add* __alias__ \"+\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_date_time_class,DV_DATE_TIME>>`"
        },
        "*subtract* __alias__ \"-\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_date_time_class,DV_DATE_TIME>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_date_time_class,DV_DATE_TIME>>`"
        },
        "*diff* __alias__ \"-\" ( + other: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*diff* __alias__ \"-\" ( +\nother: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude > other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude > other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_date_time_class,DV_DATE_TIME>>[1]` +\n): `Boolean`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`valid_iso8601_date_time (value)`"
        }
      }
    },
    "DV_TIME": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents an absolute point in time from an origin usually interpreted as meaning the start of the current day, specified to a fraction of a second. Semantics defined by ISO 8601.\n\nUsed for recording real world times, rather than scientifically measured fine amounts of time. The partial form is used for approximate times of events and substance administrations.",
      "name": "DV_TIME",
      "package_path": "org.openehr.rm.data_types.quantity.date_time",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TEMPORAL",
        "Iso8601_time"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "ISO8601 time string",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*magnitude* (): `Real`": {
          "prefix": "*1..1 +",
          "declaration": "*magnitude* (): `Real`"
        },
        "*add* __alias__ \"+\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_time_class,DV_TIME>>`": {
          "prefix": "",
          "declaration": "*add* __alias__ \"+\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_time_class,DV_TIME>>`"
        },
        "*subtract* __alias__ \"-\" ( + a_diff: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_time_class,DV_TIME>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\na_diff: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_time_class,DV_TIME>>`"
        },
        "*diff* __alias__ \"-\" ( + other: `<<_dv_time_class,DV_TIME>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*diff* __alias__ \"-\" ( +\nother: `<<_dv_time_class,DV_TIME>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_time_class,DV_TIME>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude > other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_time_class,DV_TIME>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude > other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_time_class,DV_TIME>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_time_class,DV_TIME>>[1]` +\n): `Boolean`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`valid_iso8601_time (value)`"
        }
      }
    },
    "DV_DURATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents a period of time with respect to a notional point in time, which is not specified. A sign may be used to indicate the duration is  backwards  in time rather than forwards.\n\nNOTE: two deviations from ISO 8601 are supported, the first, to allow a negative sign, and the second allowing the 'W' designator to be mixed with other designators. See time types section in the Foundation Types model.\n\nUsed for recording the duration of something in the real world, particularly when there is a need a) to represent the duration in customary format, i.e. days, hours, minutes etc, and b) if it will be used in computational operations with date/time quantities, i.e. additions, subtractions etc.\n\nMisuse: Durations cannot be used to represent points in time, or intervals of time.",
      "name": "DV_DURATION",
      "package_path": "org.openehr.rm.data_types.quantity.date_time",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_AMOUNT",
        "Iso8601_duration"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "ISO8601 duration string, including described deviations to support negative values and weeks.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*add* __alias__ \"+\" ( + other: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "*1..1 +",
          "declaration": "*add* __alias__ \"+\" ( +\nother: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*subtract* __alias__ \"-\" ( + other: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\nother: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*multiply* __alias__ \"*\" ( + factor: `Real[1]` + ): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*multiply* __alias__ \"*\" ( +\nfactor: `Real[1]` +\n): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_duration_class,DV_DURATION>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_duration_class,DV_DURATION>>[1]` +\n): `Boolean`"
        },
        "*negative* __alias__ \"-\" (): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "",
          "declaration": "*negative* __alias__ \"-\" (): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*magnitude* (): `Double`": {
          "prefix": "",
          "declaration": "*magnitude* (): `Double`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`valid_iso8601_duration (value)`"
        }
      }
    },
    "DV_INTERVAL": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Generic class defining an interval (i.e. range) of a comparable type. An interval is a contiguous subrange of a comparable base type. Used to define intervals of dates, times, quantities (whose units match) and so on. The type parameter, `T`, must be a descendant of the type `DV_ORDERED`, which is necessary (but not sufficient) for instances to be compared (`_strictly_comparable_` is also needed).\n\nWithout the `DV_INTERVAL` class, quite a few more `DV_` classes would be needed to express logical intervals, namely interval versions of all the date/time classes, and of quantity classes. Further, it allows the semantics of intervals to be stated in one place unequivocally, including the conditions for strict comparison.\n\nThe basic semantics are derived from the class `Interval<T>`, described in the support RM.",
      "name": "DV_INTERVAL",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Interval<T>",
        "DATA_VALUE"
      ],
      "invariants": {
        "Limits_consistent": {
          "name": "Limits_consistent",
          "definition": "`(not upper_unbounded and not lower_unbounded) implies (lower.is_strictly_comparable_to(upper) and lower \\<= upper)`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "DV_INTERVAL<T>",
        "type_name_simple": "DV_INTERVAL<DV_ORDERED>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "DV_ORDERED",
            "parameter_name": "T"
          }
        ]
      }
    },
    "REFERENCE_RANGE": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Defines a named range to be associated with any `DV_ORDERED` datum. Each such range is particular to the patient and context, e.g. sex, age, and any other factor which affects ranges. May be used to represent normal, therapeutic, dangerous, critical etc ranges.",
      "name": "REFERENCE_RANGE",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "range": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The data range for this meaning, e.g. critical  etc.",
          "name": "range",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<T>",
            "type_name_simple": "DV_INTERVAL<DV_ORDERED>",
            "generic_parameters": [
              {
                "_type": "BMM_PARAMETER_TYPE",
                "type_name": "T",
                "effective_type_name": "DV_ORDERED",
                "parameter_name": "T"
              }
            ]
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "meaning": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Term whose value indicates the meaning of this range, e.g.  normal,  critical,  therapeutic  etc.",
          "name": "meaning",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*is_in_range* ( + v: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_in_range* ( +\nv: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean`"
        }
      },
      "invariants": {
        "Range_is_simple": {
          "name": "Range_is_simple",
          "definition": "`(range.lower_unbounded or else range.lower.is_simple) and (range.upper_unbounded or else range.upper.is_simple)`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "REFERENCE_RANGE<T>",
        "type_name_simple": "REFERENCE_RANGE<DV_ORDERED>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "DV_ORDERED",
            "parameter_name": "T"
          }
        ]
      }
    },
    "DV_ORDERED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract class defining the concept of ordered values, which includes ordinals as well as true quantities. It defines the functions  `<` and `_is_strictly_comparable_to()_`, the latter of which must evaluate to `True` for instances being compared with the  `<` function, or used as limits in the `DV_INTERVAL<T>` class.\n\nData value types which are to be used as limits in the `DV_INTERVAL<T>` class must inherit from this class, and implement the function `_is_strictly_comparable_to()_` to ensure that instances compare meaningfully. For example, instances of `DV_QUANTITY` can only be compared if they measure the same kind of physical quantity.",
      "name": "DV_ORDERED",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Ordered",
        "DATA_VALUE"
      ],
      "properties": {
        "normal_status": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional normal status indicator of value with respect to normal range for this value. Often included by lab, even if the normal range itself is not included. Coded by ordinals in series HHH, HH, H, (nothing), L, LL, LLL; see openEHR terminology group  `normal_status`.",
          "name": "normal_status",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "normal_range": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional normal range.",
          "name": "normal_range",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_ORDERED>",
            "type_name_simple": "DV_INTERVAL<DV_ORDERED>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_ORDERED"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_reference_ranges": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional tagged other reference ranges for this value in its particular measurement context.",
          "name": "other_reference_ranges",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<REFERENCE_RANGE<DV_ORDERED>>",
            "effective_type_name": "REFERENCE_RANGE<DV_ORDERED>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "REFERENCE_RANGE<DV_ORDERED>",
              "type_name_simple": "REFERENCE_RANGE<DV_ORDERED>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "DV_ORDERED"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "methods": {
        "(abstract)* *is_strictly_comparable_to* ( + other: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean`": {
          "prefix": "*1..1 +",
          "declaration": "(abstract)*\n*is_strictly_comparable_to* ( +\nother: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean`"
        },
        "*is_simple* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_simple* (): `Boolean`"
        },
        "*is_normal* (): `Boolean` +  + __Pre__: `normal_range /= Void or normal_status /= Void` + __Post_range__: `normal_range /= Void implies Result = normal_range.has (self)` + __Post_status__: `normal_status /= Void implies normal_status.code_string.is_equal (“N”)`": {
          "prefix": "",
          "declaration": "*is_normal* (): `Boolean` +\n +\n__Pre__: `normal_range /= Void or normal_status /= Void` +\n__Post_range__: `normal_range /= Void implies Result = normal_range.has (self)` +\n__Post_status__: `normal_status /= Void implies normal_status.code_string.is_equal (“N”)`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean` +  + __Pre_comparable__: `is_strictly_comparable_to (other)`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean` +\n +\n__Pre_comparable__: `is_strictly_comparable_to (other)`"
        }
      },
      "invariants": {
        "Other_reference_ranges_validity": {
          "name": "Other_reference_ranges_validity",
          "definition": "`other_reference_ranges /= Void implies not other_reference_ranges.is_empty`"
        },
        "Is_simple_validity": {
          "name": "Is_simple_validity",
          "definition": "`(normal_range = Void and other_reference_ranges = Void) implies is_simple`"
        },
        "Normal_status_validity": {
          "name": "Normal_status_validity",
          "definition": "`normal_status /= Void implies code_set (Code_set_id_normal_statuses).has_code (normal_status)`"
        },
        "Normal_range_and_status_consistency": {
          "name": "Normal_range_and_status_consistency",
          "definition": "`(normal_range /= Void and normal_status /= Void) implies (normal_status.code_string.is_equal (“N”) xor not normal_range.has (self))`"
        }
      }
    },
    "DV_QUANTIFIED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract class defining the concept of true quantified values, i.e. values which are not only ordered, but which have a precise magnitude.",
      "name": "DV_QUANTIFIED",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ORDERED"
      ],
      "properties": {
        "magnitude_status": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional status of magnitude with values:\n\n* `\"=\"`   :   magnitude is a point value\n* `\"<\"`   :   value is < magnitude\n* `\">\"`   :   value is > magnitude\n* `\"\\<=\"` : value is \\<= magnitude\n* `\">=\"` : value is >= magnitude\n* `\"~\"`   :   value is approximately magnitude\n\nIf not present, assumed meaning is  `\"=\"` .",
          "name": "magnitude_status",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "accuracy": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Accuracy of measurement. Exact form of expression determined in descendants.",
          "name": "accuracy",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Any"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*valid_magnitude_status* (): `Boolean` +  + __Post__: `Result = s in {\"=\", \"<\", \">\", \"\\<=\", \">=\", \"~\"}`": {
          "prefix": "*1..1*",
          "declaration": "*valid_magnitude_status* (): `Boolean` +\n +\n__Post__: `Result = s in {\"=\", \"<\", \">\", \"\\<=\", \">=\", \"~\"}`"
        },
        "(abstract)* *magnitude* (): `Ordered_Numeric`": {
          "prefix": "",
          "declaration": "(abstract)*\n*magnitude* (): `Ordered_Numeric`"
        },
        "*accuracy_unknown* (): `Boolean`": {
          "prefix": "",
          "declaration": "*accuracy_unknown* (): `Boolean`"
        },
        "*is_equal* ( + other: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_equal* ( +\nother: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` +\n): `Boolean`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_quantified_class,DV_QUANTIFIED>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        }
      },
      "invariants": {
        "Magnitude_status_valid": {
          "name": "Magnitude_status_valid",
          "definition": "`magnitude_status /= Void implies valid_magnitude_status (magnitude_status)`"
        }
      }
    },
    "DV_QUANTITY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Quantitified type representing  scientific  quantities, i.e. quantities expressed as a magnitude and units. Units are expressed in the UCUM syntax (http://unitsofmeasure.org/ucum.html[Unified Code for Units of Measure (UCUM)], by Gunther Schadow and Clement J. McDonald of The Regenstrief Institute)  (case-sensitive form) by default, or another system if `_units_system_` is set.\n\nCan also be used for time durations, where it is more convenient to treat these as simply a number of seconds rather than days, months, years (in the latter case, `DV_DURATION` may be used).",
      "name": "DV_QUANTITY",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_AMOUNT"
      ],
      "properties": {
        "magnitude": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Numeric magnitude of the quantity.",
          "name": "magnitude",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Real"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "property": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "property",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "units": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Quantity units, expressed as a code or syntax string from either UCUM (the default) or the units system specified in `_units_system_`, when set.\n\nIn either case, the value is the code or syntax - normally formed of standard ASCII - which is in principal not the same as the display string, although in simple cases such as 'm' (for meters) it will be.\n\nIf the `_units_display_name_` field is set, this may be used for display. If not, the implementations must effect the resolution of the `_units_` value to a display form locally, e.g. by lookup of reference tables, request to a terminology service etc.\n\nExample values from UCUM: \"kg/m^2\", “mm[Hg]\", \"ms-1\", \"km/h\".",
          "name": "units",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "units_system": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional field used to specify a units system from which codes in `_units_` are defined. Value is a URI identifying a terminology containing units concepts from the  (https://www.hl7.org/fhir/terminologies-systems.html[HL7 FHIR terminologies list]).\n\nIf not set, the UCUM standard (case-sensitive codes) is assumed as the units system.",
          "name": "units_system",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "units_display_name": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional field containing the displayable form of the `_units_` field, e.g. `'°C'`.\n\nIf not set, the application environment needs to determine the displayable form.\n\nNOTE: The display name may be language-dependent for various older and non-systematic units. For this reason, it is not recommended to add unit display names to archetypes, only to templates (for localisation purposes).",
          "name": "units_display_name",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "precision": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Precision to which the value of the quantity is expressed, in terms of number of decimal places. The value 0 implies an integral quantity.\nThe value -1 implies no limit, i.e. any number of decimal places.",
          "name": "precision",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "normal_range": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional normal range.",
          "name": "normal_range",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_QUANTITY>",
            "type_name_simple": "DV_INTERVAL<DV_QUANTITY>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_QUANTITY"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_reference_ranges": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional tagged other reference ranges for this value in its particular measurement context.",
          "name": "other_reference_ranges",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<REFERENCE_RANGE<DV_QUANTITY>>",
            "effective_type_name": "REFERENCE_RANGE<DV_QUANTITY>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "REFERENCE_RANGE<DV_QUANTITY>",
              "type_name_simple": "REFERENCE_RANGE<DV_QUANTITY>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "DV_QUANTITY"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*add* __alias__ \"+\" ( + other: `<<_dv_quantity_class,DV_QUANTITY>>[1]` + ): `<<_dv_quantity_class,DV_QUANTITY>>`": {
          "prefix": "*1..1 +",
          "declaration": "*add* __alias__ \"+\" ( +\nother: `<<_dv_quantity_class,DV_QUANTITY>>[1]` +\n): `<<_dv_quantity_class,DV_QUANTITY>>`"
        },
        "*subtract* __alias__ \"-\" ( + other: `<<_dv_quantity_class,DV_QUANTITY>>[1]` + ): `<<_dv_quantity_class,DV_QUANTITY>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\nother: `<<_dv_quantity_class,DV_QUANTITY>>[1]` +\n): `<<_dv_quantity_class,DV_QUANTITY>>`"
        },
        "*multiply* __alias__ \"*\" ( + factor: `Real[1]` + ): `<<_dv_quantity_class,DV_QUANTITY>>`": {
          "prefix": "",
          "declaration": "*multiply* __alias__ \"*\" ( +\nfactor: `Real[1]` +\n): `<<_dv_quantity_class,DV_QUANTITY>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_quantity_class,DV_QUANTITY>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_quantity_class,DV_QUANTITY>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        },
        "*is_integral* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_integral* (): `Boolean`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean`"
        }
      }
    },
    "DV_PROPORTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Models a ratio of values, i.e. where the numerator and denominator are both pure numbers. The `_valid_proportion_kind_` property of the `PROPORTION_KIND` class is used to control the type attribute to be one of a defined set.\n\nUsed for recording titers (e.g. 1:128), concentration ratios, e.g. Na:K (unitary denominator), albumin:creatinine ratio, and percentages, e.g. red cell distirbution width (RDW).\n\nMisuse: Should not be used to represent things like blood pressure which are often written using a  '/' character, giving the misleading impression that the item is a ratio, when in fact it is a structured value. Similarly, visual acuity, often written as (e.g.) \"6/24\" in clinical notes is not a ratio but an ordinal (which includes non-numeric symbols like CF = count fingers etc). Should not be used for formulations.",
      "name": "DV_PROPORTION",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_AMOUNT"
      ],
      "properties": {
        "numerator": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Numerator of ratio",
          "name": "numerator",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Real"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "denominator": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Denominator of ratio.",
          "name": "denominator",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Real"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Indicates semantic type of proportion, including percent, unitary etc.",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PROPORTION_KIND"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "precision": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Precision  to  which  the  `_numerator_` and `_denominator_` values of  the  proportion are expressed, in terms of number  of decimal places. The value 0 implies an integral quantity. The value -1 implies no limit, i.e. any number of decimal places.",
          "name": "precision",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_integral": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "is_integral",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "normal_range": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional normal range.",
          "name": "normal_range",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_PROPORTION>",
            "type_name_simple": "DV_INTERVAL<DV_PROPORTION>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_PROPORTION"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_reference_ranges": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional tagged other reference ranges for this value in its particular measurement context.",
          "name": "other_reference_ranges",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<REFERENCE_RANGE<DV_PROPORTION>>",
            "effective_type_name": "REFERENCE_RANGE<DV_PROPORTION>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "REFERENCE_RANGE<DV_PROPORTION>",
              "type_name_simple": "REFERENCE_RANGE<DV_PROPORTION>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "DV_PROPORTION"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "methods": {
        "*magnitude* (): `Real`": {
          "prefix": "*1..1 +",
          "declaration": "*magnitude* (): `Real`"
        },
        "*is_integral* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_integral* (): `Boolean`"
        },
        "*add* __alias__ \"+\" ( + other: `<<_dv_proportion_class,DV_PROPORTION>>[1]` + ): `<<_dv_proportion_class,DV_PROPORTION>>`": {
          "prefix": "",
          "declaration": "*add* __alias__ \"+\" ( +\nother: `<<_dv_proportion_class,DV_PROPORTION>>[1]` +\n): `<<_dv_proportion_class,DV_PROPORTION>>`"
        },
        "*subtract* __alias__ \"-\" ( + other: `<<_dv_proportion_class,DV_PROPORTION>>[1]` + ): `<<_dv_proportion_class,DV_PROPORTION>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\nother: `<<_dv_proportion_class,DV_PROPORTION>>[1]` +\n): `<<_dv_proportion_class,DV_PROPORTION>>`"
        },
        "*is_equal* ( + other: `<<_dv_proportion_class,DV_PROPORTION>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_equal* ( +\nother: `<<_dv_proportion_class,DV_PROPORTION>>[1]` +\n): `Boolean`"
        },
        "*multiply* __alias__ \"*\" ( + factor: `Real[1]` + ): `<<_dv_proportion_class,DV_PROPORTION>>`": {
          "prefix": "",
          "declaration": "*multiply* __alias__ \"*\" ( +\nfactor: `Real[1]` +\n): `<<_dv_proportion_class,DV_PROPORTION>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_proportion_class,DV_PROPORTION>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_proportion_class,DV_PROPORTION>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean`"
        }
      },
      "invariants": {
        "Type_validity": {
          "name": "Type_validity",
          "definition": "`valid_proportion_kind (type)`"
        },
        "Precision_validity": {
          "name": "Precision_validity",
          "definition": "`precision = 0 implies is_integral`"
        },
        "Is_integral_validity": {
          "name": "Is_integral_validity",
          "definition": "`is_integral implies (numerator.floor = numerator and denominator.floor = denominator)`"
        },
        "Fraction_validity": {
          "name": "Fraction_validity",
          "definition": "`(type = pk_fraction or type = pk_integer_fraction) implies is_integral`"
        },
        "Unitary_validity": {
          "name": "Unitary_validity",
          "definition": "`type = pk_unitary implies denominator = 1`"
        },
        "Percent_validity": {
          "name": "Percent_validity",
          "definition": "`type = pk_percent implies denominator = 100`"
        },
        "Valid_denominator": {
          "name": "Valid_denominator",
          "definition": "`denominator /= 0.0`"
        }
      }
    },
    "PROPORTION_KIND": {
      "_type": "BMM_ENUMERATION",
      "name": "PROPORTION_KIND",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Integer"
      ],
      "underlying_type_name": "Integer",
      "item_names": [
        "pk_ratio",
        "pk_unitary",
        "pk_percent",
        "pk_fraction",
        "pk_integer_fraction"
      ]
    },
    "DV_AMOUNT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract class defining the concept of relative quantified  'amounts'. For relative quantities, the  `+` and  `-` operators are defined (unlike descendants of `DV_ABSOLUTE_QUANTITY`, such as the date/time types).",
      "name": "DV_AMOUNT",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DV_QUANTIFIED"
      ],
      "properties": {
        "accuracy": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Accuracy of measurement, expressed either as a half-range percent value (`_accuracy_is_percent_` = `True`) or a half-range quantity. A value of `0` means that accuracy is 100%, i.e. no error.\n\nA value of `_unknown_accuracy_value_` means that accuracy was not recorded.",
          "name": "accuracy",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Real"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "accuracy_is_percent": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "If `True`, indicates that when this object was created, `_accuracy_` was recorded as a percent value; if `False`, as an absolute quantity value.",
          "name": "accuracy_is_percent",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*valid_percentage* ( + number: `Ordered_Numeric[1]` + ): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*valid_percentage* ( +\nnumber: `Ordered_Numeric[1]` +\n): `Boolean`"
        },
        "*add* __alias__ \"+\" ( + other: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `<<_dv_amount_class,DV_AMOUNT>>` +  + __Pre_comparable__: `is_strictly_comparable_to (other)`": {
          "prefix": "",
          "declaration": "*add* __alias__ \"+\" ( +\nother: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `<<_dv_amount_class,DV_AMOUNT>>` +\n +\n__Pre_comparable__: `is_strictly_comparable_to (other)`"
        },
        "*subtract* __alias__ \"-\" ( + other: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `<<_dv_amount_class,DV_AMOUNT>>` +  + __Pre_comparable__: `is_strictly_comparable_to (other)`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\nother: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `<<_dv_amount_class,DV_AMOUNT>>` +\n +\n__Pre_comparable__: `is_strictly_comparable_to (other)`"
        },
        "*is_equal* ( + other: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_equal* ( +\nother: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `Boolean`"
        },
        "*multiply* __alias__ \"*\" ( + factor: `Real[1]` + ): `<<_dv_amount_class,DV_AMOUNT>>`": {
          "prefix": "",
          "declaration": "*multiply* __alias__ \"*\" ( +\nfactor: `Real[1]` +\n): `<<_dv_amount_class,DV_AMOUNT>>`"
        },
        "*negative* __alias__ \"-\" (): `<<_dv_amount_class,DV_AMOUNT>>`": {
          "prefix": "",
          "declaration": "*negative* __alias__ \"-\" (): `<<_dv_amount_class,DV_AMOUNT>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        }
      },
      "invariants": {
        "Accuracy_is_percent_validity": {
          "name": "Accuracy_is_percent_validity",
          "definition": "`accuracy = 0 implies not accuracy_is_percent`"
        },
        "Accuracy_validity": {
          "name": "Accuracy_validity",
          "definition": "`accuracy_is_percent implies valid_percentage (accuracy)`"
        }
      }
    },
    "DV_ABSOLUTE_QUANTITY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract class defining the concept of quantified entities whose values are absolute with respect to an origin. Dates and Times are the main example.",
      "name": "DV_ABSOLUTE_QUANTITY",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DV_QUANTIFIED"
      ],
      "properties": {
        "accuracy": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "accuracy",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_AMOUNT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "(abstract)* *add* __alias__ \"+\" ( + a_diff: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>`": {
          "prefix": "*1..1 +",
          "declaration": "(abstract)*\n*add* __alias__ \"+\" ( +\na_diff: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>`"
        },
        "(abstract)* *subtract* __alias__ \"-\" ( + a_diff: `<<_dv_amount_class,DV_AMOUNT>>[1]` + ): `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>`": {
          "prefix": "",
          "declaration": "(abstract)*\n*subtract* __alias__ \"-\" ( +\na_diff: `<<_dv_amount_class,DV_AMOUNT>>[1]` +\n): `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>`"
        },
        "(abstract)* *diff* __alias__ \"-\" ( + other: `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>[1]` + ): `<<_dv_amount_class,DV_AMOUNT>>`": {
          "prefix": "",
          "declaration": "(abstract)*\n*diff* __alias__ \"-\" ( +\nother: `<<_dv_absolute_quantity_class,DV_ABSOLUTE_QUANTITY>>[1]` +\n): `<<_dv_amount_class,DV_AMOUNT>>`"
        }
      }
    },
    "DV_COUNT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Countable quantities. Used for countable types such as pregnancies and steps (taken by a physiotherapy patient), number of cigarettes smoked in a day.\n\nMisuse: Not to be used for amounts of physical entities (which all have units).",
      "name": "DV_COUNT",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_AMOUNT"
      ],
      "properties": {
        "magnitude": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "magnitude",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer64"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "normal_range": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional normal range.",
          "name": "normal_range",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_COUNT>",
            "type_name_simple": "DV_INTERVAL<DV_COUNT>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_COUNT"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_reference_ranges": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional tagged other reference ranges for this value in its particular measurement context.",
          "name": "other_reference_ranges",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<REFERENCE_RANGE<DV_COUNT>>",
            "effective_type_name": "REFERENCE_RANGE<DV_COUNT>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "REFERENCE_RANGE<DV_COUNT>",
              "type_name_simple": "REFERENCE_RANGE<DV_COUNT>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "DV_COUNT"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*add* __alias__ \"+\" ( + other: `<<_dv_count_class,DV_COUNT>>[1]` + ): `<<_dv_count_class,DV_COUNT>>`": {
          "prefix": "*1..1 +",
          "declaration": "*add* __alias__ \"+\" ( +\nother: `<<_dv_count_class,DV_COUNT>>[1]` +\n): `<<_dv_count_class,DV_COUNT>>`"
        },
        "*subtract* __alias__ \"-\" ( + other: `<<_dv_count_class,DV_COUNT>>[1]` + ): `<<_dv_count_class,DV_COUNT>>`": {
          "prefix": "",
          "declaration": "*subtract* __alias__ \"-\" ( +\nother: `<<_dv_count_class,DV_COUNT>>[1]` +\n): `<<_dv_count_class,DV_COUNT>>`"
        },
        "*multiply* __alias__ \"*\" ( + factor: `Real[1]` + ): `<<_dv_count_class,DV_COUNT>>`": {
          "prefix": "",
          "declaration": "*multiply* __alias__ \"*\" ( +\nfactor: `Real[1]` +\n): `<<_dv_count_class,DV_COUNT>>`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_count_class,DV_COUNT>>[1]` + ): `Boolean` +  + __Post_result__: `Result = magnitude < other.magnitude`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_count_class,DV_COUNT>>[1]` +\n): `Boolean` +\n +\n__Post_result__: `Result = magnitude < other.magnitude`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_ordered_class,DV_ORDERED>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_ordered_class,DV_ORDERED>>[1]` +\n): `Boolean`"
        }
      }
    },
    "DV_ORDINAL": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A data type that represents integral score values, e.g. pain, Apgar values, etc, where there is:\n\na) implied ordering,\nb) no implication that the distance between each value is constant, and\nc) the total number of values is finite;\nd) integer values only.\n\nNote that although the term 'ordinal' in mathematics means natural numbers only, here any integer is allowed, since negative and zero values are often used by medical professionals for values around a neutral point. Examples of sets of ordinal values:\n\n*   -3, -2, -1, 0, 1, 2, 3  -- reflex response values\n*    0, 1, 2                  -- Apgar values\n\nThis class is used for recording any clinical datum which is customarily recorded using symbolic values. Example: the results on a urinalysis strip, e.g. `{neg, trace, +, ++, +++}` are used for leucocytes, protein, nitrites etc; for non-haemolysed blood `{neg, trace, moderate}`; for haemolysed blood `{small, moderate, large}`.\n\nFor scores or scales that include Real numbers (or might in the future, i.e. not fixed for all time, such as Apgar), use `DV_SCALE`. `DV_SCALE` may also be used in future for representing purely Integer-based scales, however, the `DV_ORDINAL` type should continue to be supported in software implementations in order to accommodate existing data that are instances of this type.",
      "name": "DV_ORDINAL",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ORDERED"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Value in ordered enumeration of values. Any integer value can be used.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "symbol": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Coded textual representation of this value in the enumeration, which may be strings made from  +  symbols, or other enumerations of terms such as  `mild`, `moderate`, `severe`, or even the same number series as the values, e.g. 1, 2, 3.",
          "name": "symbol",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_ordinal_class,DV_ORDINAL>>[1]` + ): `Boolean` +  + __Pre_comparable__: `is_strictly_comparable_to (other)`": {
          "prefix": "*1..1 +",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_ordinal_class,DV_ORDINAL>>[1]` +\n): `Boolean` +\n +\n__Pre_comparable__: `is_strictly_comparable_to (other)`"
        },
        "*is_strictly_comparable_to* ( + other: `<<_dv_ordinal_class,DV_ORDINAL>>[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_ordinal_class,DV_ORDINAL>>[1]` +\n): `Boolean`"
        }
      }
    },
    "DV_SCALE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A data type that represents scale values, where there is:\n\na) implied ordering,\nb) no implication that the distance between each value is constant, and\nc) the total number of values is finite;\nd) non-integer values are allowed.\n\nExample:\n\n----\nBorg CR 10 Scale\n\n0    No Breathlessness at all\n0.5  Very Very Slight (Just Noticeable)\n1    Very Slight\n2    Slight Breathlessness\n3    Moderate\n... etc\n----\n\nFor scores that include only Integers, `DV_SCALE` may also be used, but `DV_ORDINAL` should be supported to accommodate existing data instances of that type.",
      "name": "DV_SCALE",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ORDERED"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Real number value of Scale item.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Real"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "symbol": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Coded textual representation of this value in the scale range, which may be strings made from symbols or other enumerations of terms such as  `no breathlessness`, `very very slight`, `slight breathlessness`. Codes come from archetypes.\n\nIn some cases, a scale may include values that have no code/symbol. In this case, the symbol will be a `DV-CODED_TEXT` including the `_terminology_id_` and a blank String value for `_code_string_`.",
          "name": "symbol",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*is_strictly_comparable_to* ( + other: `<<_dv_scale_class,DV_SCALE>>[1]` + ): `Boolean`": {
          "prefix": "*1..1 +",
          "declaration": "*is_strictly_comparable_to* ( +\nother: `<<_dv_scale_class,DV_SCALE>>[1]` +\n): `Boolean`"
        },
        "*less_than* __alias__ \"<\" ( + other: `<<_dv_scale_class,DV_SCALE>>[1]` + ): `Boolean` +  + __Pre_comparable__: `is_strictly_comparable_to (other)`": {
          "prefix": "",
          "declaration": "*less_than* __alias__ \"<\" ( +\nother: `<<_dv_scale_class,DV_SCALE>>[1]` +\n): `Boolean` +\n +\n__Pre_comparable__: `is_strictly_comparable_to (other)`"
        }
      }
    },
    "DV_ENCAPSULATED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract class defining the common meta-data of all types of encapsulated data.",
      "name": "DV_ENCAPSULATED",
      "package_path": "org.openehr.rm.data_types.encapsulated",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "charset": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Name of character encoding scheme in which this value is encoded. Coded from openEHR Code Set  character sets . Unicode is the default assumption in openEHR, with UTF-8 being the assumed encoding. This attribute allows for variations from these assumptions.",
          "name": "charset",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional indicator of the localised language in which the data is written, if relevant. Coded from openEHR Code Set `languages`.",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`language /= Void implies code_set (Code_set_id_languages).has_code (language)`"
        },
        "Charset_valid": {
          "name": "Charset_valid",
          "definition": "`charset /= Void implies code_set (Code_set_id_character_sets).has_code (charset)`"
        }
      }
    },
    "DV_MULTIMEDIA": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A specialisation of `DV_ENCAPSULATED` for audiovisual and bio-signal types. Includes further metadata relating to multimedia types which are not applicable to other subtypes of `DV_ENCAPSULATED`.",
      "name": "DV_MULTIMEDIA",
      "package_path": "org.openehr.rm.data_types.encapsulated",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ENCAPSULATED"
      ],
      "properties": {
        "alternate_text": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Text to display in lieu of multimedia display/replay.",
          "name": "alternate_text",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "uri": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "URI reference to electronic information stored outside the record as a file, database entry etc, if supplied as a reference.",
          "name": "uri",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_URI"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "data": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The actual data found at `_uri_`, if supplied inline.",
          "name": "data",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "Array<Octet>",
            "effective_type_name": "Octet",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "Octet"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "Array",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "Array<V>",
                "type_name_simple": "Array<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "media_type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Data media type coded from openEHR code set  media types  (interface for the IANA MIME types code set).",
          "name": "media_type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "compression_algorithm": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Compression type, a coded value from the openEHR Integrity check code set. Void means no compression.",
          "name": "compression_algorithm",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "integrity_check": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Binary cryptographic integrity checksum.",
          "name": "integrity_check",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "Array<Octet>",
            "effective_type_name": "Octet",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "Octet"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "Array",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "Array<V>",
                "type_name_simple": "Array<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "integrity_check_algorithm": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Type of integrity check, a coded value from the openEHR `Integrity check` code set.",
          "name": "integrity_check_algorithm",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "thumbnail": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The thumbnail for this item, if one exists; mainly for graphics formats.",
          "name": "thumbnail",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_MULTIMEDIA"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "size": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Original size in bytes of unencoded encapsulated data. I.e. encodings such as base64, hexadecimal etc do not change the value of this attribute.",
          "name": "size",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*is_external* (): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_external* (): `Boolean`"
        },
        "*is_inline* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_inline* (): `Boolean`"
        },
        "*is_compressed* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_compressed* (): `Boolean`"
        },
        "*has_integrity_check* (): `Boolean`": {
          "prefix": "",
          "declaration": "*has_integrity_check* (): `Boolean`"
        }
      },
      "invariants": {
        "Not_empty": {
          "name": "Not_empty",
          "definition": "`is_inline or is_external`"
        },
        "Media_type_valid": {
          "name": "Media_type_valid",
          "definition": "`media_type /= Void and then code_set (Code_set_id_media_types).has_code (media_type)`"
        },
        "Compression_algorithm_validity": {
          "name": "Compression_algorithm_validity",
          "definition": "`compression_algorithm /= Void implies code_set (Code_set_id_compression_algorithms).has_code (compression_algorithm)`"
        },
        "Integrity_check_validity": {
          "name": "Integrity_check_validity",
          "definition": "`integrity_check /= Void implies integrity_check_algorithm /= Void`"
        },
        "Integrity_check_algorithm_validity": {
          "name": "Integrity_check_algorithm_validity",
          "definition": "`integrity_check_algorithm /= Void implies code_set (Code_set_id_integrity_check_algorithms).has_code (integrity_check_algorithm)`"
        },
        "Size_valid": {
          "name": "Size_valid",
          "definition": "`size >= 0`"
        }
      }
    },
    "DV_PARSABLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Encapsulated data expressed as a parsable String. The internal model of the data item is not described in the openEHR model in common with other encapsulated types, but in this case, the form of the data is assumed to be plaintext, rather than compressed or other types of large binary data.",
      "name": "DV_PARSABLE",
      "package_path": "org.openehr.rm.data_types.encapsulated",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_ENCAPSULATED"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The string, which may validly be empty in some syntaxes.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "formalism": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Name of the formalism, e.g.  GLIF 1.0 ,  Proforma  etc.",
          "name": "formalism",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*size* (): `Integer`": {
          "prefix": "*1..1*",
          "declaration": "*size* (): `Integer`"
        }
      },
      "invariants": {
        "Formalism_valid": {
          "name": "Formalism_valid",
          "definition": "`not formalism.is_empty`"
        },
        "Size_valid": {
          "name": "Size_valid",
          "definition": "`size >= 0`"
        }
      }
    },
    "DV_URI": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A reference to an object which structurally conforms to the Universal Resource Identifier (URI) RFC-3986 standard. The reference is contained in the `_value_` attribute, which is a `String`. So-called 'plain-text URIs' that contain RFC-3986 forbidden characters such as spaces etc, are allowed on the basis that they need to be RFC-3986 encoded prior to use in e.g. REST APIs or other contexts relying on machine-level conformance.",
      "name": "DV_URI",
      "package_path": "org.openehr.rm.data_types.uri",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Value of URI as a String. 'Plain-text' URIs are allowed, enabling better readability, but must be RFC-3986 encoded in use.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*scheme* (): `String`": {
          "prefix": "*1..1*",
          "declaration": "*scheme* (): `String`"
        },
        "*path* (): `String`": {
          "prefix": "",
          "declaration": "*path* (): `String`"
        },
        "*fragment_id* (): `String`": {
          "prefix": "",
          "declaration": "*fragment_id* (): `String`"
        },
        "*query* (): `String`": {
          "prefix": "",
          "declaration": "*query* (): `String`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`not value.is_empty`"
        }
      }
    },
    "DV_EHR_URI": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A `DV_EHR_URI` is a `DV_URI` which has the scheme name 'ehr', and which can only reference items in EHRs.\n\nUsed to reference items in an EHR, which may be the same as the current EHR (containing this link), or another.",
      "name": "DV_EHR_URI",
      "package_path": "org.openehr.rm.data_types.uri",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_URI"
      ],
      "invariants": {
        "Scheme_valid": {
          "name": "Scheme_valid",
          "definition": "`scheme.is_equal (Ehr_scheme)`"
        }
      }
    },
    "DV_TIME_SPECIFICATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "This is an abstract class of which all timing specifications are specialisations. Specifies points in time, possibly linked to the calendar, or a real world repeating event, such as  breakfast.",
      "name": "DV_TIME_SPECIFICATION",
      "package_path": "org.openehr.rm.data_types.time_specification",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_VALUE"
      ],
      "properties": {
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The specification, in the HL7v3 syntax for `PIVL` or `EIVL` types.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_PARSABLE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "(abstract)* *calendar_alignment* (): `String`": {
          "prefix": "*1..1 +",
          "declaration": "(abstract)*\n*calendar_alignment* (): `String`"
        },
        "(abstract)* *event_alignment* (): `String`": {
          "prefix": "",
          "declaration": "(abstract)*\n*event_alignment* (): `String`"
        },
        "(abstract)* *institution_specified* (): `Boolean`": {
          "prefix": "",
          "declaration": "(abstract)*\n*institution_specified* (): `Boolean`"
        }
      }
    },
    "DV_PERIODIC_TIME_SPECIFICATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specifies periodic points in time, linked to the calendar (phase-linked), or a real world repeating event, such as  breakfast  (event-linked). Based on the HL7v3 data types `PIVL<T>` and `EIVL<T>`.\n\nUsed in therapeutic prescriptions, expressed as `INSTRUCTIONs` in the openEHR model.",
      "name": "DV_PERIODIC_TIME_SPECIFICATION",
      "package_path": "org.openehr.rm.data_types.time_specification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TIME_SPECIFICATION"
      ],
      "methods": {
        "*period* (): `<<_dv_duration_class,DV_DURATION>>`": {
          "prefix": "*1..1*",
          "declaration": "*period* (): `<<_dv_duration_class,DV_DURATION>>`"
        },
        "*calendar_alignment* (): `String`": {
          "prefix": "",
          "declaration": "*calendar_alignment* (): `String`"
        },
        "*event_alignment* (): `String`": {
          "prefix": "",
          "declaration": "*event_alignment* (): `String`"
        },
        "*institution_specified* (): `Boolean`": {
          "prefix": "",
          "declaration": "*institution_specified* (): `Boolean`"
        }
      },
      "invariants": {
        "Value_valid": {
          "name": "Value_valid",
          "definition": "`value.formalism.is_equal (“HL7:PIVL”) or value.formalism. is_equal (“HL7:EIVL”)`"
        }
      }
    },
    "DV_GENERAL_TIME_SPECIFICATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specifies points in time in a general syntax. Based on the HL7v3 GTS data type.",
      "name": "DV_GENERAL_TIME_SPECIFICATION",
      "package_path": "org.openehr.rm.data_types.time_specification",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DV_TIME_SPECIFICATION"
      ],
      "methods": {
        "*calendar_alignment* (): `String`": {
          "prefix": "*1..1 +",
          "declaration": "*calendar_alignment* (): `String`"
        },
        "*event_alignment* (): `String`": {
          "prefix": "",
          "declaration": "*event_alignment* (): `String`"
        },
        "*institution_specified* (): `Boolean`": {
          "prefix": "",
          "declaration": "*institution_specified* (): `Boolean`"
        }
      }
    },
    "PARTY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Ancestor of all Party types, including real world entities and their roles. A Party is any entity which can participate in an activity. The `_name_` attribute inherited from `LOCATABLE` is used to indicate the actual type of party (note that the actual names, i.e. identities of parties are indicated in the `_identities_` attribute, not the `_name_` attribute).\n\nNOTE: It is strongly recommended that the inherited attribute `_uid_` be populated in `PARTY` objects, using the UID copied from the `_object_id()_` of the `_uid_` field of the enclosing `VERSION` object. +\nFor example, the `ORIGINAL_VERSION.uid` `87284370-2D4B-4e3d-A3F3-F303D2F4F34B::uk.nhs.ehr1::2`  would be copied to the `_uid_` field of the `PARTY` object.",
      "name": "PARTY",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "UID_BASED_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "All other details for this Party.",
          "name": "details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "identities": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Identities used by the party to identify itself, such as legal name, stage names, aliases, nicknames and so on.",
          "name": "identities",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<PARTY_IDENTITY>",
            "effective_type_name": "PARTY_IDENTITY",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "PARTY_IDENTITY"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "contacts": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Contacts for this party.",
          "name": "contacts",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "Set<CONTACT>",
            "effective_type_name": "CONTACT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "CONTACT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "Set",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "Set<V>",
                "type_name_simple": "Set<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "relationships": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Relationships in which this Party takes part as source.",
          "name": "relationships",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "Set<PARTY_RELATIONSHIP>",
            "effective_type_name": "PARTY_RELATIONSHIP",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "PARTY_RELATIONSHIP"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "Set",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "Set<V>",
                "type_name_simple": "Set<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "reverse_relationships": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "References to relationships in which this Party takes part as target.",
          "name": "reverse_relationships",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<LOCATABLE_REF>",
            "effective_type_name": "LOCATABLE_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "LOCATABLE_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*type* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*type* (): `DV_TEXT`"
        }
      },
      "invariants": {
        "Type_valid": {
          "name": "Type_valid",
          "definition": "`type = name`"
        },
        "Contacts_valid": {
          "name": "Contacts_valid",
          "definition": "`contacts /= Void implies not contacts.is_empty`"
        },
        "Relationships_validity": {
          "name": "Relationships_validity",
          "definition": "`relationships /= Void implies (not relationships.is_empty and then relationships.for_all (r | r.source = self)`"
        },
        "Reverse_relationships_validity": {
          "name": "Reverse_relationships_validity",
          "definition": "`reverse_relationships /= Void implies (not reverse_relationships.empty and then reverse_relationships.for_all (item | repository (\"demographics\").all_party_relationships.has_object (item) and then repository(\"demographics\").all_party_relationships.object (item).target = self))`"
        },
        "Is_archetype_root": {
          "name": "Is_archetype_root",
          "definition": "`is_archetype_root`"
        },
        "Uid_mandatory": {
          "name": "Uid_mandatory",
          "definition": "`uid /= Void`"
        }
      }
    },
    "ROLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic description of a role performed by an Actor. The role corresponds to a competency of the Party. Roles are used to define the responsibilities undertaken by a Party for a purpose. Roles should have credentials qualifying the performer to perform the role.",
      "name": "ROLE",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PARTY"
      ],
      "properties": {
        "performer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to Version container of Actor playing the role.",
          "name": "performer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "capabilities": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The capabilities of this role.",
          "name": "capabilities",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<CAPABILITY>",
            "effective_type_name": "CAPABILITY",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "CAPABILITY"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "time_validity": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Valid time interval for this role.",
          "name": "time_validity",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE>",
            "type_name_simple": "DV_INTERVAL<DV_DATE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Capabilities_valid": {
          "name": "Capabilities_valid",
          "definition": "`capabilities /= Void implies not capabilities.empty`"
        }
      }
    },
    "ACTOR": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Ancestor of all real-world types, including people and organisations. An actor is any real-world entity capable of taking on a role.",
      "name": "ACTOR",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "PARTY"
      ],
      "properties": {
        "roles": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Identifiers of the Version container for each Role played by this Party.",
          "name": "roles",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<PARTY_REF>",
            "effective_type_name": "PARTY_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "PARTY_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "languages": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Languages which can be used to communicate with this actor, in preferred order of use (if known, else order irrelevant).",
          "name": "languages",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_TEXT>",
            "effective_type_name": "DV_TEXT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_TEXT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      }
    },
    "PERSON": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic description of persons. Provides a dedicated type to which Person archetypes can be targeted.",
      "name": "PERSON",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ACTOR"
      ]
    },
    "ORGANISATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic description of organisations. An organisation is a legally constituted body whose existence (in general) outlives the existence of parties considered to be part of it.",
      "name": "ORGANISATION",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ACTOR"
      ]
    },
    "AGENT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic concept of any kind of agent, including devices, software systems, but not humans or organisations.",
      "name": "AGENT",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ACTOR"
      ]
    },
    "GROUP": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A group is a real world group of parties which is created by another party, usually an organisation, for some specific purpose. A typical clinical example is that of the specialist care team, e.g.  cardiology team . The members of the group usually work together.",
      "name": "GROUP",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ACTOR"
      ]
    },
    "PARTY_RELATIONSHIP": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic description of a relationship between parties.",
      "name": "PARTY_RELATIONSHIP",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "source": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Source of relationship.",
          "name": "source",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "target": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Target of relationship.",
          "name": "target",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The detailed description of the relationship.",
          "name": "details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time_validity": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Valid time interval for this relationship.",
          "name": "time_validity",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE>",
            "type_name_simple": "DV_INTERVAL<DV_DATE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*type* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*type* (): `DV_TEXT`"
        }
      },
      "invariants": {
        "Source_valid": {
          "name": "Source_valid",
          "definition": "`source /= Void and then source.relationships.has (self)`"
        },
        "Target_valid": {
          "name": "Target_valid",
          "definition": "`target /= Void and then not target.reverse_relationships.has (self)`"
        },
        "Type_validity": {
          "name": "Type_validity",
          "definition": "`type = name`"
        }
      }
    },
    "CAPABILITY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Capability of a role, such as  ehr modifier ,  health care provider . Capability should be backed up by credentials.",
      "name": "CAPABILITY",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "credentials": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The qualifications of the performer of the role for this capability. This might include professional qualifications and official identifications such as provider numbers etc.",
          "name": "credentials",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time_validity": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Valid time interval for the credentials of this capability.",
          "name": "time_validity",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE>",
            "type_name_simple": "DV_INTERVAL<DV_DATE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      }
    },
    "CONTACT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Description of a means of contact of a Party. Actual structure is archetyped.",
      "name": "CONTACT",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "time_validity": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Valid time interval for this contact descriptor.",
          "name": "time_validity",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE>",
            "type_name_simple": "DV_INTERVAL<DV_DATE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "addresses": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "A set of address alternatives for this contact purpose and time validity combination.",
          "name": "addresses",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ADDRESS>",
            "effective_type_name": "ADDRESS",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ADDRESS"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "purpose": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "purpose",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*purpose* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*purpose* (): `DV_TEXT`"
        }
      },
      "invariants": {
        "Purpose_valid": {
          "name": "Purpose_valid",
          "definition": "`purpose = name`"
        }
      }
    },
    "ADDRESS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Address of contact, which may be electronic or geographic.",
      "name": "ADDRESS",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Archetypable structured address.",
          "name": "details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*type* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*type* (): `DV_TEXT`"
        }
      },
      "invariants": {
        "Type_valid": {
          "name": "Type_valid",
          "definition": "`type = name`"
        }
      }
    },
    "PARTY_IDENTITY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "An identity  owned  by a Party, such as a person name or company name, and which is used by the Party to identify itself. Actual structure is archetyped.",
      "name": "PARTY_IDENTITY",
      "package_path": "org.openehr.rm.demographic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The value of the identity. This will often taken the form of a parseable string or a small structure of strings.",
          "name": "details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "purpose": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "purpose",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*purpose* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*purpose* (): `DV_TEXT`"
        }
      },
      "invariants": {
        "Purpose_valid": {
          "name": "Purpose_valid",
          "definition": "`purpose = name`"
        }
      }
    },
    "EHR": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The EHR object is the root object and access point of an EHR for a subject of care.",
      "name": "EHR",
      "package_path": "org.openehr.rm.ehr",
      "is_abstract": false,
      "is_primitive_type": false,
      "properties": {
        "system_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The identifier of the logical EHR management system in which this EHR was created.",
          "name": "system_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "ehr_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The unique identifier of this EHR.\n\nNOTE: is is strongly recommended that a UUID always be used for this field.",
          "name": "ehr_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time_created": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of creation of the EHR.",
          "name": "time_created",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "ehr_access": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to `EHR_ACCESS` object for this EHR.",
          "name": "ehr_access",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "ehr_status": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to `EHR_STATUS` object for this EHR.",
          "name": "ehr_status",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "directory": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional directory structure for this EHR. If present, this is a reference to the first member of `_folders_`.",
          "name": "directory",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "folders": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional additional Folder structures for this EHR. If set, the `_directory_` attribute refers to the first member.",
          "name": "folders",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "compositions": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Master list of all Versioned Composition references in this EHR.",
          "name": "compositions",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "contributions": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of contributions causing changes to this EHR. Each contribution contains a list of versions, which may include references to any number of `VERSION` instances, i.e. items of type `VERSIONED_COMPOSITION` and `VERSIONED_FOLDER`.",
          "name": "contributions",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "most_recent_composition": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "most_recent_composition",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "COMPOSITION"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Contributions_valid": {
          "name": "Contributions_valid",
          "definition": "`for_all c in contributions | c.type.is_equal(\"CONTRIBUTION\")`"
        },
        "Ehr_access_valid": {
          "name": "Ehr_access_valid",
          "definition": "`ehr_access.type.is_equal (\"VERSIONED_EHR_ACCESS\")`"
        },
        "Ehr_status_valid": {
          "name": "Ehr_status_valid",
          "definition": "`ehr_status.type.is_equal(\"VERSIONED_EHR_STATUS\")`"
        },
        "Compositions_valid": {
          "name": "Compositions_valid",
          "definition": "`for_all c in compositions | c.type.is_equal (\"VERSIONED_COMPOSITION\")`"
        },
        "Directory_valid": {
          "name": "Directory_valid",
          "definition": "`directory /= Void implies directory.type.is_equal (\"VERSIONED_FOLDER\")`"
        },
        "Folders_valid": {
          "name": "Folders_valid",
          "definition": "`folders /= Void implies for_all f in folders | f.type.is_equal(\"VERSIONED_FOLDER\")`"
        },
        "Directory_in_folders": {
          "name": "Directory_in_folders",
          "definition": "`folders /= Void implies folders.item(1) = directory`"
        }
      }
    },
    "EHR_ACCESS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "EHR-wide access control object. All access decisions to data in the EHR must be made in accordance with the policies and rules in this object.\n\nNOTE: It is strongly recommended that the inherited attribute `_uid_` be populated in `EHR_ACCESS` objects, using the UID copied from the `_object_id()_` of the `_uid_` field of the enclosing `VERSION` object. +\nFor example, the `ORIGINAL_VERSION.uid` `87284370-2D4B-4e3d-A3F3-F303D2F4F34B::uk.nhs.ehr1::2` would be copied to the `_uid_` field of the `EHR_ACCESS` object.",
      "name": "EHR_ACCESS",
      "package_path": "org.openehr.rm.ehr",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "settings": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Access control settings for the EHR. Instance is a subtype of the type `ACCESS_CONTROL_SETTINGS`, allowing for the use of different access control schemes.",
          "name": "settings",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ACCESS_CONTROL_SETTINGS"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*scheme* (): `String`": {
          "prefix": "*1..1*",
          "declaration": "*scheme* (): `String`"
        }
      },
      "invariants": {
        "Scheme_valid": {
          "name": "Scheme_valid",
          "definition": "`not scheme.is_empty`"
        },
        "Is_archetype_root": {
          "name": "Is_archetype_root",
          "definition": "`is_archetype_root`"
        }
      }
    },
    "EHR_STATUS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Single object per EHR containing various EHR-wide status flags and settings, including whether this EHR can be queried, modified etc. This object is always modifiable, in order to change the status of the EHR as a whole.\n\nNOTE: It is strongly recommended that the inherited attribute `_uid_` be populated in `EHR_STATUS` objects, using the UID copied from the `_object_id()_` of the `_uid_` field of the enclosing `VERSION` object. +\nFor example, the `ORIGINAL_VERSION.uid` `87284370-2D4B-4e3d-A3F3-F303D2F4F34B::uk.nhs.ehr1::2`  would be copied to the `_uid_` field of the `EHR_STATUS` object.",
      "name": "EHR_STATUS",
      "package_path": "org.openehr.rm.ehr",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "subject": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The subject of this EHR. The `_external_ref_` attribute can be used to contain a direct reference to the subject in a demographic or identity service. Alternatively, the association between patients and their records may be done elsewhere for security reasons.",
          "name": "subject",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_SELF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_queryable": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if this EHR should be included in population queries, i.e. if this EHR is considered active in the population.",
          "name": "is_queryable",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_modifiable": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if the EHR, other than the `EHR_STATUS` object, is allowed to be written to. The `EHR_STATUS` object itself can always be written to.",
          "name": "is_modifiable",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Any other details of the EHR summary object, in the form of an archetyped `ITEM_STRUCTURE`.",
          "name": "other_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Is_archetype_root": {
          "name": "Is_archetype_root",
          "definition": "`is_archetype_root`"
        }
      }
    },
    "ACCESS_CONTROL_SETTINGS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Access Control Settings for the EHR and components. Intended to support multiple access control schemes. Currently implementation dependent.",
      "name": "ACCESS_CONTROL_SETTINGS",
      "package_path": "org.openehr.rm.ehr",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ]
    },
    "SECTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Represents a heading in a heading structure, or  section tree.  Created according to archetyped structures for typical headings such as SOAP,  physical examination, but also pathology result heading structures.  Should not be used instead of `ENTRY` hierarchical structures.",
      "name": "SECTION",
      "package_path": "org.openehr.rm.composition.content.navigation",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CONTENT_ITEM"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Ordered list of content items under this section, which may include:\n\n* more `SECTIONs`;\n* `ENTRYs`.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<CONTENT_ITEM>",
            "effective_type_name": "CONTENT_ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "CONTENT_ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "invariants": {
        "Items_valid": {
          "name": "Items_valid",
          "definition": "`items /= Void implies not items.is_empty`"
        }
      }
    },
    "ENTRY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The abstract parent of all `ENTRY` subtypes. An `ENTRY` is the root of a logical item of  hard  clinical information created in the  clinical statement  context, within a clinical session. There can be numerous such contexts in a clinical session. Observations and other Entry types only ever document information captured/created in the event documented by the enclosing Composition.\n\nAn `ENTRY` is also the minimal unit of information any query should return, since a whole `ENTRY` (including subparts) records spatial structure, timing information, and contextual information, as well as the subject and generator of the information.",
      "name": "ENTRY",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "CONTENT_ITEM"
      ],
      "properties": {
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Mandatory indicator of the localised language in which this Entry is written. Coded from openEHR Code Set  languages .",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "encoding": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Name of character set in which text values in this Entry are encoded. Coded from openEHR Code Set  character sets.",
          "name": "encoding",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "subject": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Id of human subject of this `ENTRY`, e.g.:\n\n* organ donor\n* foetus\n* a family member\n* another clinically relevant person.",
          "name": "subject",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "provider": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional identification of provider of the information in this `ENTRY`, which might be:\n\n* the patient\n* a patient agent, e.g. parent, guardian\n* the clinician\n* a device or software\n\nGenerally only used when the recorder needs to make it explicit. Otherwise, Composition composer and other participants are assumed.",
          "name": "provider",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_participations": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Other participations at `ENTRY` level.",
          "name": "other_participations",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<PARTICIPATION>",
            "effective_type_name": "PARTICIPATION",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "PARTICIPATION"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "workflow_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of externally held workflow engine data for this workflow execution, for this subject of care.",
          "name": "workflow_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*subject_is_self* (): `Boolean` +  + __Post_condition__: `Result implies subject.generating_type = “PARTY_SELF”`": {
          "prefix": "*1..1*",
          "declaration": "*subject_is_self* (): `Boolean` +\n +\n__Post_condition__: `Result implies subject.generating_type = “PARTY_SELF”`"
        }
      },
      "invariants": {
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`code_set (Code_set_id_languages).has_code (language)`"
        },
        "Encoding_valid": {
          "name": "Encoding_valid",
          "definition": "`code_set (Code_set_id_character_sets).has_code (encoding)`"
        },
        "Subject_validity": {
          "name": "Subject_validity",
          "definition": "`subject_is_self implies subject.generating_type = “PARTY_SELF”`"
        },
        "Other_participations_valid": {
          "name": "Other_participations_valid",
          "definition": "`other_participations /= Void implies not other_participations.is_empty`"
        },
        "Is_archetype_root": {
          "name": "Is_archetype_root",
          "definition": "`is_archetype_root`"
        }
      }
    },
    "CARE_ENTRY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract ENTRY subtype corresponding to any type of ENTRY in the clinical care cycle.",
      "name": "CARE_ENTRY",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "ENTRY"
      ],
      "properties": {
        "protocol": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description of the method (i.e. how) the information in this entry was arrived at. For `OBSERVATIONs`, this is a description of the method or instrument used. For `EVALUATIONs`, how the evaluation was arrived at. For `INSTRUCTIONs`, how to execute the Instruction. This may take the form of references to guidelines, including manually followed and executable; knowledge references such as a paper in Medline; clinical reasons within a larger care process.",
          "name": "protocol",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "guideline_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional external identifier of guideline creating this Entry if relevant.",
          "name": "guideline_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      }
    },
    "ADMIN_ENTRY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Entry subtype for administrative information, i.e. information about setting up the clinical process, but not itself clinically relevant. Archetypes will define contained information.\n\nUsed for administrative details of admission, episode, ward location, discharge, appointment (if not stored in a practice management or appointments system).\n\nNot to be used for any clinically significant information.",
      "name": "ADMIN_ENTRY",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ENTRY"
      ],
      "properties": {
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Content of the Admin Entry.\nThe data of the Entry; modelled in archetypes.",
          "name": "data",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "OBSERVATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "ENTRY subtype used to represent observation information in time, as either a single or multiple samples.",
      "name": "OBSERVATION",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CARE_ENTRY"
      ],
      "properties": {
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Data of the observation, in the form of a HISTORY of EVENTs.",
          "name": "data",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "HISTORY<ITEM_STRUCTURE>",
            "type_name_simple": "HISTORY<ITEM_STRUCTURE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "ITEM_STRUCTURE"
              }
            ]
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "state": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional recording of the state of subject of this observation during the observation process, in the form of a separate history of values which may be of any complexity. State may also be recorded within the History of the data attribute.",
          "name": "state",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "HISTORY<ITEM_STRUCTURE>",
            "type_name_simple": "HISTORY<ITEM_STRUCTURE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "ITEM_STRUCTURE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "EVALUATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Entry type for evaluation statements. Used for all kinds of statements which evaluate other information, such as interpretations of observations, diagnoses, differential diagnoses, hypotheses, risk assessments, goals and plans.\n\nShould not be used for actionable statements such as medication orders - these are represented using the `INSTRUCTION` type.",
      "name": "EVALUATION",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CARE_ENTRY"
      ],
      "properties": {
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The data of this evaluation, in the form of a spatial data structure.",
          "name": "data",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "INSTRUCTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Used to specify actions in the future. Enables simple and complex specifications to be expressed, including in a fully-computable workflow form. Used for any actionable statement such as medication and therapeutic orders, monitoring, recall and review. Enough details must be provided for the specification to be directly executed by an actor, either human or machine.\n\nNot to be used for plan items which are only specified in general terms.",
      "name": "INSTRUCTION",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CARE_ENTRY"
      ],
      "properties": {
        "narrative": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Mandatory human-readable version of what the Instruction is about.",
          "name": "narrative",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "expiry_time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional expiry date/time to assist determination of when an Instruction can be assumed to have expired. This helps prevent false listing of Instructions as Active when they clearly must have been terminated in some way or other.",
          "name": "expiry_time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "wf_definition": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional workflow engine executable expression of the Instruction.",
          "name": "wf_definition",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_PARSABLE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "activities": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of all activities in Instruction.",
          "name": "activities",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ACTIVITY>",
            "effective_type_name": "ACTIVITY",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ACTIVITY"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "invariants": {
        "Activities_valid": {
          "name": "Activities_valid",
          "definition": "`activities /= Void implies not activities.is_empty`"
        }
      }
    },
    "ACTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Used to record a clinical action that has been performed, which may have been ad hoc, or due to the execution of an Activity in an Instruction workflow. Every Action corresponds to a careflow step of some kind or another.",
      "name": "ACTION",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CARE_ENTRY"
      ],
      "properties": {
        "time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Point in time at which this action completed.",
          "name": "time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "description": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description of the action that has been performed, in the form of an archetyped structure.",
          "name": "description",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "ism_transition": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of transition in the Instruction state machine caused by this Action.",
          "name": "ism_transition",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ISM_TRANSITION"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "instruction_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of the Instruction that caused this Action to be performed, if there was one.",
          "name": "instruction_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "INSTRUCTION_DETAILS"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "ACTIVITY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Defines a single activity within an Instruction, such as a medication administration.",
      "name": "ACTIVITY",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "description": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Description of the activity, in the form of an archetyped structure.",
          "name": "description",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "timing": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Timing of the activity, in the form of a parsable string. If used, the preferred syntax is ISO8601 'R' format, but other formats may be used including HL7 GTS.\n\nMay be omitted if:\n\n* timing is represented structurally in the `_description_` attribute (e.g. via archetyped elements), or\n* unavailable, e.g. imported legacy data; in such cases, the `INSTRUCTION._narrative_` should carry text that indicates the timing of its `_activities_`.",
          "name": "timing",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_PARSABLE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "action_archetype_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Perl-compliant regular expression pattern, enclosed in  '//' delimiters, indicating the valid identifiers of archetypes for Actions corresponding to this Activity specification.\n\nDefaults to  `/.*/`, meaning any archetype.",
          "name": "action_archetype_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Action_archetype_id_valid": {
          "name": "Action_archetype_id_valid",
          "definition": "`not action_archetype_id.is_empty`"
        }
      }
    },
    "ISM_TRANSITION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Model of a transition in the Instruction State Machine, caused by a careflow step. The attributes document the careflow step as well as the ISM transition.",
      "name": "ISM_TRANSITION",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PATHABLE"
      ],
      "properties": {
        "current_state": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The ISM current state. Coded by openEHR terminology group Instruction states.",
          "name": "current_state",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "transition": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The ISM transition which occurred to arrive in the current_state. Coded by openEHR terminology group  Instruction transitions.",
          "name": "transition",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "careflow_step": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The step in the careflow process which occurred as part of generating this action, e.g.  dispense ,  start_administration. This attribute represents the clinical  label for the activity, as  opposed to current_state which represents  the state machine (ISM)  computable form. Defined in archetype.",
          "name": "careflow_step",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "reason": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Optional possibility of adding one or more reasons for this careflow step having been taken. Multiple reasons may occur in medication management for example.",
          "name": "reason",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_TEXT>",
            "effective_type_name": "DV_TEXT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_TEXT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "invariants": {
        "Current_state_valid": {
          "name": "Current_state_valid",
          "definition": "`terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_instruction_states, current_state.defining_code)`"
        },
        "Transition_valid": {
          "name": "Transition_valid",
          "definition": "`transition /= Void implies terminology (Terminology_id_openehr)."
        }
      }
    },
    "INSTRUCTION_DETAILS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Used to record details of the Instruction causing an Action.",
      "name": "INSTRUCTION_DETAILS",
      "package_path": "org.openehr.rm.composition.content.entry",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PATHABLE"
      ],
      "properties": {
        "instruction_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to causing Instruction.",
          "name": "instruction_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "LOCATABLE_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "wf_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Various workflow engine state details, potentially including such things as:\n\n* condition that fired to cause this Action to be done (with actual variables substituted);\n* list of notifications which actually occurred (with all variables substituted);\n* other workflow engine state.\n\nThis specification does not currently define the actual structure or semantics of this field.",
          "name": "wf_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "activity_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of Activity within Instruction, in the form of its archetype path.",
          "name": "activity_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Activity_path_valid": {
          "name": "Activity_path_valid",
          "definition": "`not activity_id.is_empty`"
        }
      }
    },
    "GENERIC_ENTRY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "This class is used to create intermediate representations of data from sources not otherwise conforming to openEHR classes, such as HL7 messages, relational databases and so on.",
      "name": "GENERIC_ENTRY",
      "package_path": "org.openehr.rm.composition.content.integration",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "CONTENT_ITEM"
      ],
      "properties": {
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The ‘data’ from the source message or record.",
          "name": "data",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_TREE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "CONTENT_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract ancestor of all concrete content types.",
      "name": "CONTENT_ITEM",
      "package_path": "org.openehr.rm.composition.content",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ]
    },
    "COMPOSITION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Content of one version in a `VERSIONED_COMPOSITION`. A Composition is considered the unit of modification of the record, the unit of transmission in record Extracts, and the unit of attestation by authorising clinicians. In this latter sense, it may be considered equivalent to a signed document.\n\nNOTE: It is strongly recommended that the inherited attribute `_uid_` be populated in Compositions, using the UID copied from the `_object_id()_` of the `_uid_` field of the enclosing `VERSION` object. +\nFor example, the `ORIGINAL_VERSION.uid` `87284370-2D4B-4e3d-A3F3-F303D2F4F34B::uk.nhs.ehr1::2` would be copied to the `_uid_` field of the Composition.",
      "name": "COMPOSITION",
      "package_path": "org.openehr.rm.composition",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "language": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Mandatory indicator of the localised language in which this Composition is written. Coded from openEHR Code Set  `languages`. The language of an Entry if different from the Composition is indicated in `ENTRY._language_`.",
          "name": "language",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "territory": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Name of territory in which this Composition was written. Coded from openEHR  countries  code set, which is an expression of the ISO 3166 standard.",
          "name": "territory",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "category": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Temporal category of this Composition, i.e.\n\n* `431|persistent|` - of potential life-time validity;\n* `451|episodic|` - valid over the life of a care episode;\n* `433|event|` - valid at the time of recording (long-term validity requires subsequent clinical assessment).\n\nor any other code defined in the openEHR terminology group 'category'.",
          "name": "category",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "composer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The person primarily responsible for the content of the Composition (but not necessarily its committal into the EHR system). This is the identifier which should appear on the screen. It may or may not be the person who entered the data. When it is the patient, the special self  instance of `PARTY_PROXY` will be used.",
          "name": "composer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "context": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The clinical session context of this Composition, i.e. the contextual attributes of the clinical session.",
          "name": "context",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EVENT_CONTEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "content": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The content of this Composition.",
          "name": "content",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<CONTENT_ITEM>",
            "effective_type_name": "CONTENT_ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "CONTENT_ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "methods": {
        "*is_persistent* (): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_persistent* (): `Boolean`"
        }
      },
      "invariants": {
        "Category_validity": {
          "name": "Category_validity",
          "definition": "`terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_composition_category, category.defining_code)`"
        },
        "Territory_valid": {
          "name": "Territory_valid",
          "definition": "`code_set(Code_set_id_countries).has_code(territory)`"
        },
        "Language_valid": {
          "name": "Language_valid",
          "definition": "`code_set(Code_set_id_languages).has_code(language)`"
        },
        "Content_valid": {
          "name": "Content_valid",
          "definition": "`content /= Void implies not content.is_empty`"
        },
        "Is_archetype_root": {
          "name": "Is_archetype_root",
          "definition": "`is_archetype_root`"
        }
      }
    },
    "EVENT_CONTEXT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Documents the context information of a healthcare event involving the subject of care and the health system. The context information recorded here are independent of the attributes recorded in the version audit, which document the  system interaction  context, i.e. the context of a user interacting with the health record system. Healthcare events include patient contacts, and any other business activity, such as pathology investigations which take place on behalf of the patient.",
      "name": "EVENT_CONTEXT",
      "package_path": "org.openehr.rm.composition",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PATHABLE"
      ],
      "properties": {
        "health_care_facility": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The health care facility under whose care the event took place. This is the most specific workgroup or delivery unit within a care delivery enterprise that has an official identifier in the health system, and can be used to ensure medico-legal accountability.",
          "name": "health_care_facility",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_IDENTIFIED"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "start_time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Start time of the clinical session or other kind of event during which a provider performs a service of any kind for the patient.",
          "name": "start_time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "end_time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional end time of the clinical session.",
          "name": "end_time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "participations": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Parties involved in the healthcare event. These would normally include the physician(s) and often the patient (but not the latter if the clinical session is a pathology test for example).",
          "name": "participations",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<PARTICIPATION>",
            "effective_type_name": "PARTICIPATION",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "PARTICIPATION"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "location": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The actual location where the session occurred, e.g. 'microbiology lab 2', 'home', 'ward A3'  and so on.",
          "name": "location",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "setting": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The setting in which the clinical session took place. Coded using the openEHR Terminology,  setting  group.",
          "name": "setting",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_context": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Other optional context which will be archetyped.",
          "name": "other_context",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Setting_valid": {
          "name": "Setting_valid",
          "definition": "`Terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_setting, setting.defining_code)`"
        },
        "Participations_validity": {
          "name": "Participations_validity",
          "definition": "`participations /= Void implies not participations.is_empty`"
        },
        "location_valid": {
          "name": "location_valid",
          "definition": "`location /= Void implies not location.is_empty`"
        }
      }
    },
    "ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The abstract parent of `CLUSTER` and `ELEMENT` representation classes.",
      "name": "ITEM",
      "package_path": "org.openehr.rm.data_structures.item_structure.representation",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ]
    },
    "CLUSTER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The grouping variant of `ITEM`, which may contain further instances of `ITEM`, in an ordered list.",
      "name": "CLUSTER",
      "package_path": "org.openehr.rm.data_structures.item_structure.representation",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Ordered list of items - `CLUSTER` or `ELEMENT` objects - under this `CLUSTER`.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ITEM>",
            "effective_type_name": "ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      }
    },
    "ELEMENT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The leaf variant of `ITEM`, to which a `DATA_VALUE` instance is attached.",
      "name": "ELEMENT",
      "package_path": "org.openehr.rm.data_structures.item_structure.representation",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM"
      ],
      "properties": {
        "null_flavour": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Flavour of null value, e.g. `253|unknown|`, `271|no information|`, `272|masked|`, and `273|not applicable|`.",
          "name": "null_flavour",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "value": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Property representing leaf value object of `ELEMENT`. In real data, any concrete subtype of `DATA_VALUE` can be used.",
          "name": "value",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DATA_VALUE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "null_reason": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional specific reason for null value; if set, `_null_flavour_` must be set. Null reason may apply only to a minority of clinical data, commonly needed in reporting contexts.",
          "name": "null_reason",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*is_null* (): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_null* (): `Boolean`"
        }
      },
      "invariants": {
        "Inv_is_null_valid": {
          "name": "Inv_is_null_valid",
          "definition": "`is_null() = (value = Void)`"
        },
        "Inv_null_flavour_indicated": {
          "name": "Inv_null_flavour_indicated",
          "definition": "`is_null() xor null_flavour = Void`"
        },
        "Inv_null_flavour_valid": {
          "name": "Inv_null_flavour_valid",
          "definition": "`is_null implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_null_flavour, null_flavour.defining_code)`"
        },
        "Inv_null_reason_valid": {
          "name": "Inv_null_reason_valid",
          "definition": "`null_reason /= Void implies is_null()`"
        }
      }
    },
    "ITEM_STRUCTURE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract parent class of all spatial data types.",
      "name": "ITEM_STRUCTURE",
      "package_path": "org.openehr.rm.data_structures.item_structure",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_STRUCTURE"
      ]
    },
    "ITEM_SINGLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Logical single value data structure. Used to represent any data which is logically a single value, such as a person's height or weight.",
      "name": "ITEM_SINGLE",
      "package_path": "org.openehr.rm.data_structures.item_structure",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM_STRUCTURE"
      ],
      "properties": {
        "item": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "item",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ELEMENT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*as_hierarchy* (): `<<_element_class,ELEMENT>>`": {
          "prefix": "*1..1 +",
          "declaration": "*as_hierarchy* (): `<<_element_class,ELEMENT>>`"
        }
      }
    },
    "ITEM_TABLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Logical relational database style table data structure, in which columns are named and ordered with respect to each other. Implemented using Cluster-per-row encoding. Each row Cluster must have an identical number of Elements, each of which in turn must have identical names and value types in the corresponding positions in each row.\n\nSome columns may be designated  key' columns, containing key data for each row, in the manner of relational tables. This allows row-naming, where each row represents a body site, a blood antigen etc. All values in a column have the same data type.\n\nUsed for representing any data which is logically a table of values, such as blood pressure, most protocols, many blood tests etc.\n\nMisuse: Not to be used for time-based data, which should be represented with the temporal class `HISTORY`. The table may be empty.",
      "name": "ITEM_TABLE",
      "package_path": "org.openehr.rm.data_structures.item_structure",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM_STRUCTURE"
      ],
      "properties": {
        "rows": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Physical representation of the table as a list of `CLUSTERs`, each containing the data of one row of the table.",
          "name": "rows",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<CLUSTER>",
            "effective_type_name": "CLUSTER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "CLUSTER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*row_count* (): `Integer`": {
          "prefix": "*1..1*",
          "declaration": "*row_count* (): `Integer`"
        },
        "*column_count* (): `Integer`": {
          "prefix": "",
          "declaration": "*column_count* (): `Integer`"
        },
        "*row_names* (): `List<DV_TEXT>`": {
          "prefix": "",
          "declaration": "*row_names* (): `List<DV_TEXT>`"
        },
        "*column_names* (): `List<DV_TEXT>`": {
          "prefix": "",
          "declaration": "*column_names* (): `List<DV_TEXT>`"
        },
        "*ith_row* ( + i: `Integer[1]` + ): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*ith_row* ( +\ni: `Integer[1]` +\n): `<<_cluster_class,CLUSTER>>`"
        },
        "*has_row_with_name* ( + a_key: `String[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*has_row_with_name* ( +\na_key: `String[1]` +\n): `Boolean`"
        },
        "*has_column_with_name* ( + a_key: `String[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*has_column_with_name* ( +\na_key: `String[1]` +\n): `Boolean`"
        },
        "*named_row* ( + a_key: `String[1]` + ): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*named_row* ( +\na_key: `String[1]` +\n): `<<_cluster_class,CLUSTER>>`"
        },
        "*has_row_with_key* ( + keys: `List<String>[0..1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*has_row_with_key* ( +\nkeys: `List<String>[0..1]` +\n): `Boolean`"
        },
        "*row_with_key* ( + keys: `List<String>[0..1]` + ): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*row_with_key* ( +\nkeys: `List<String>[0..1]` +\n): `<<_cluster_class,CLUSTER>>`"
        },
        "*element_at_cell_ij* ( + i: `Integer[1]`, + j: `Integer[1]` + ): `<<_element_class,ELEMENT>>`": {
          "prefix": "",
          "declaration": "*element_at_cell_ij* ( +\ni: `Integer[1]`, +\nj: `Integer[1]` +\n): `<<_element_class,ELEMENT>>`"
        },
        "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`"
        }
      },
      "invariants": {
        "Valid_structure": {
          "name": "Valid_structure",
          "definition": "`rows.for_all (items.for_all (instance_of (\"ELEMENT\")))`"
        }
      }
    },
    "ITEM_TREE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Logical tree data structure. The tree may be empty. Used for representing data which are logically a tree such as audiology results, microbiology results, biochemistry results.",
      "name": "ITEM_TREE",
      "package_path": "org.openehr.rm.data_structures.item_structure",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM_STRUCTURE"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The items comprising the `ITEM_TREE`. Can include 0 or more `CLUSTERs` and/or 0 or more individual `ELEMENTs`.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ITEM>",
            "effective_type_name": "ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*has_element_path* ( + a_path: `String[1]` + ): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*has_element_path* ( +\na_path: `String[1]` +\n): `Boolean`"
        },
        "*element_at_path* ( + a_path: `String[1]` + ): `<<_element_class,ELEMENT>>`": {
          "prefix": "",
          "declaration": "*element_at_path* ( +\na_path: `String[1]` +\n): `<<_element_class,ELEMENT>>`"
        },
        "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`"
        }
      }
    },
    "ITEM_LIST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Logical list data structure, where each item has a value and can be referred to by a name and a positional index in the list. The list may be empty.\n\n`ITEM_LIST` is used to represent any data which is logically a list of values, such as blood pressure, most protocols, many blood tests etc.\n\nNot to be used for time-based lists, which should be represented with the proper temporal class, i.e. `HISTORY`.",
      "name": "ITEM_LIST",
      "package_path": "org.openehr.rm.data_structures.item_structure",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "ITEM_STRUCTURE"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Physical representation of the list.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ELEMENT>",
            "effective_type_name": "ELEMENT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ELEMENT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*item_count* (): `Integer`": {
          "prefix": "*1..1*",
          "declaration": "*item_count* (): `Integer`"
        },
        "*names* (): `List<DV_TEXT>`": {
          "prefix": "",
          "declaration": "*names* (): `List<DV_TEXT>`"
        },
        "*named_item* ( + a_name: `String[1]` + ): `<<_element_class,ELEMENT>>`": {
          "prefix": "",
          "declaration": "*named_item* ( +\na_name: `String[1]` +\n): `<<_element_class,ELEMENT>>`"
        },
        "*ith_item* ( + i: `Integer[1]` + ): `<<_element_class,ELEMENT>>`": {
          "prefix": "",
          "declaration": "*ith_item* ( +\ni: `Integer[1]` +\n): `<<_element_class,ELEMENT>>`"
        },
        "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`": {
          "prefix": "",
          "declaration": "*as_hierarchy* (): `<<_cluster_class,CLUSTER>>`"
        }
      },
      "invariants": {
        "Valid_structure": {
          "name": "Valid_structure",
          "definition": "` items.forall (i:ITEM | i.type = \"ELEMENT\")`"
        }
      }
    },
    "HISTORY": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Root object of a linear history, i.e. time series structure. This is a generic class whose type parameter must be a descendant of `ITEM_STRUCTURE`, ensuring that each Event in the `_events_` of a given instance is of the same structural type, i.e. `ITEM_TREE`, `ITEM_LIST` etc.\n\nFor a periodic series of events, period will be set, and the time of each Event in the History must correspond; i.e. the `EVENT._offset_` must be a multiple of period for each Event. Missing events in a period History are however allowed.",
      "name": "HISTORY",
      "package_path": "org.openehr.rm.data_structures.history",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "DATA_STRUCTURE"
      ],
      "properties": {
        "origin": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time origin of this event history. The first event is not necessarily at the origin point.",
          "name": "origin",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "period": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Period between samples in this segment if periodic.",
          "name": "period",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "duration": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Duration of the entire History; either corresponds to the duration of all the events, and/or the duration represented by the summary, if it exists.",
          "name": "duration",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "summary": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional summary data that aggregates, organizes, reduces and transforms the event series. This may be a text or image that presents a graphical presentation, or some data that assists with the interpretation of the data.",
          "name": "summary",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "events": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The events in the series. This attribute is of a generic type whose parameter must be a descendant of `ITEM_SUTRUCTURE`.",
          "name": "events",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EVENT<T>>",
            "effective_type_name": "EVENT<T>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "EVENT<T>",
              "type_name_simple": "EVENT<ITEM_STRUCTURE>",
              "generic_parameters": [
                {
                  "_type": "BMM_PARAMETER_TYPE",
                  "type_name": "T",
                  "effective_type_name": "ITEM_STRUCTURE",
                  "parameter_name": "T"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "methods": {
        "*is_periodic* (): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_periodic* (): `Boolean`"
        }
      },
      "invariants": {
        "Events_valid": {
          "name": "Events_valid",
          "definition": "`(events /= Void and then not events.is_empty) or summary /= Void`"
        },
        "Periodic_validity": {
          "name": "Periodic_validity",
          "definition": "`is_periodic xor period = Void`"
        },
        "Period_consistency": {
          "name": "Period_consistency",
          "definition": "`is_periodic implies events.for_all (e: EVENT | e.offset. to_seconds.mod(period.to_seconds) = 0)`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "HISTORY<T>",
        "type_name_simple": "HISTORY<ITEM_STRUCTURE>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "ITEM_STRUCTURE",
            "parameter_name": "T"
          }
        ]
      }
    },
    "EVENT": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Defines the abstract notion of a single event in a series. This class is generic, allowing types to be generated which are locked to particular spatial types, such as `EVENT<ITEM_LIST>`. Subtypes express point or intveral data.",
      "name": "EVENT",
      "package_path": "org.openehr.rm.data_structures.history",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of this event. If the width is non-zero, it is the time point of the trailing edge of the event.",
          "name": "time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "state": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional state data for this event.",
          "name": "state",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The data of this event.",
          "name": "data",
          "type": {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "ITEM_STRUCTURE",
            "parameter_name": "T"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "offset": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "offset",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": false,
          "is_computed": true,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*offset* (): `DV_DURATION` +  + __Post_condition__: `Result = time.diff(parent.origin)`": {
          "prefix": "*1..1*",
          "declaration": "*offset* (): `DV_DURATION` +\n +\n__Post_condition__: `Result = time.diff(parent.origin)`"
        }
      },
      "invariants": {
        "Offset_validity1": {
          "name": "Offset_validity1",
          "definition": "`offset /= Void and then offset = time.diff (parent.origin)`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "EVENT<T>",
        "type_name_simple": "EVENT<ITEM_STRUCTURE>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "ITEM_STRUCTURE",
            "parameter_name": "T"
          }
        ]
      }
    },
    "POINT_EVENT": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Defines a single point event in a series.",
      "name": "POINT_EVENT",
      "package_path": "org.openehr.rm.data_structures.history",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EVENT<T>"
      ],
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "POINT_EVENT<T>",
        "type_name_simple": "POINT_EVENT<ITEM_STRUCTURE>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "ITEM_STRUCTURE",
            "parameter_name": "T"
          }
        ]
      }
    },
    "INTERVAL_EVENT": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Defines a single interval event in a series.",
      "name": "INTERVAL_EVENT",
      "package_path": "org.openehr.rm.data_structures.history",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EVENT<T>"
      ],
      "properties": {
        "width": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Duration of the time interval during which the values recorded under `data` are true and, if set, the values recorded under `state` are true. Void if an instantaneous event.",
          "name": "width",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "sample_count": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional count of original samples to which this event corresponds.",
          "name": "sample_count",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "math_function": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Mathematical function of the data of this event, e.g.  maximum, mean etc. Coded using https://github.com/openEHR/terminology/blob/master/openEHR_RM/en/openehr_terminology.xml[openEHR vocabulary `event math function`]. Default value `640|actual|`, meaning 'actual value'.",
          "name": "math_function",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*interval_start_time* (): `DV_DATE_TIME`": {
          "prefix": "*1..1*",
          "declaration": "*interval_start_time* (): `DV_DATE_TIME`"
        }
      },
      "invariants": {
        "Math_function_validity": {
          "name": "Math_function_validity",
          "definition": "`terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_event_math_function, math_function.defining_code)`"
        },
        "Interval_start_time_valid": {
          "name": "Interval_start_time_valid",
          "definition": "`interval_start_time = time - width`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "INTERVAL_EVENT<T>",
        "type_name_simple": "INTERVAL_EVENT<ITEM_STRUCTURE>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "ITEM_STRUCTURE",
            "parameter_name": "T"
          }
        ]
      }
    },
    "DATA_STRUCTURE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract parent class of all data structure types. Includes the `_as_hierarchy_` function which can generate the equivalent CEN EN13606 single hierarchy for each subtype's physical representation. For example, the physical representation of an `ITEM_LIST` is `List<ELEMENT>`; its implementation of `_as_hierarchy_` will generate a `CLUSTER` containing the set of `ELEMENT` nodes from the list.",
      "name": "DATA_STRUCTURE",
      "package_path": "org.openehr.rm.data_structures",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "methods": {
        "*as_hierarchy* (): `<<_item_class,ITEM>>`": {
          "prefix": "*1..1*",
          "declaration": "*as_hierarchy* (): `<<_item_class,ITEM>>`"
        }
      }
    },
    "PARTICIPATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Model of a participation of a Party (any Actor or Role) in an activity.  Used to represent any participation of a Party in some activity, which is not  explicitly in the model, e.g. assisting nurse. Can be used to record past or  future participations.\n\nShould not be used in place of more permanent relationships between demographic entities.",
      "name": "PARTICIPATION",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "function": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). This attribute should be coded, but cannot be limited to the HL7v3:ParticipationFunction vocabulary, since it is too limited and hospital-oriented.",
          "name": "function",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The time interval during which the participation took place, if it is used in an observational context (i.e. recording facts about the past); or the intended time interval of the participation when used in future contexts, such as EHR Instructions.",
          "name": "time",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE_TIME>",
            "type_name_simple": "DV_INTERVAL<DV_DATE_TIME>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE_TIME"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "mode": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional field for recording the 'mode' of the performer / activity interaction, e.g. present, by telephone, by email etc.",
          "name": "mode",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "performer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The id and possibly demographic system link of the party participating in the activity.",
          "name": "performer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Function_valid": {
          "name": "Function_valid",
          "definition": "`function.generating_type.is_equal (\"DV_CODED_TEXT\") implies"
        },
        "Mode_valid": {
          "name": "Mode_valid",
          "definition": "`mode /= Void implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_mode, mode.defining_code)`"
        }
      }
    },
    "PARTY_PROXY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract concept of a proxy description of a party, including an optional link to data for this party in a demographic or other identity management system. Sub- typed into `PARTY_IDENTIFIED` and `PARTY_SELF`.",
      "name": "PARTY_PROXY",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "external_ref": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional reference to more detailed demographic or identification information for this party, in an external system.",
          "name": "external_ref",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_REF"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      }
    },
    "PARTY_SELF": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Party proxy representing the subject of the record. Used to indicate that the party is the owner of the record. May or may not have `_external_ref_` set.",
      "name": "PARTY_SELF",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PARTY_PROXY"
      ]
    },
    "PARTY_IDENTIFIED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Proxy data for an identified party other than the subject of the record, minimally consisting of human-readable identifier(s), such as name, formal (and possibly computable) identifiers such as NHS number, and an optional link to external data. There must be at least one of name, identifier or external_ref present.\n\nUsed to describe parties where only identifiers may be known, and there is no entry at all in the demographic system (or even no demographic system). Typically for health care providers, e.g. name and provider number of an institution.\n\nShould not be used to include patient identifying information.",
      "name": "PARTY_IDENTIFIED",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PARTY_PROXY"
      ],
      "properties": {
        "name": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional human-readable name (in String form).",
          "name": "name",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "identifiers": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "One or more formal identifiers (possibly computable).",
          "name": "identifiers",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_IDENTIFIER>",
            "effective_type_name": "DV_IDENTIFIER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_IDENTIFIER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "invariants": {
        "Basic_validity": {
          "name": "Basic_validity",
          "definition": "`name /= Void or identifiers /= Void or external_ref /= Void`"
        },
        "Name_valid": {
          "name": "Name_valid",
          "definition": "`name /= Void implies not name.is_empty`"
        },
        "Identifiers_valid": {
          "name": "Identifiers_valid",
          "definition": "`identifiers /= Void implies not identifiers.is_empty`"
        }
      }
    },
    "PARTY_RELATED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Proxy type for identifying a party and its relationship to the subject of the record. Use where the relationship between the party and the subject of the record must be known.",
      "name": "PARTY_RELATED",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "PARTY_IDENTIFIED"
      ],
      "properties": {
        "relationship": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Relationship of subject of this ENTRY to the subject of the record. May be coded. If it is the patient, coded as  self.",
          "name": "relationship",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Relationship_valid": {
          "name": "Relationship_valid",
          "definition": "`terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_subject_relationship, relationship.defining_code)`"
        }
      }
    },
    "AUDIT_DETAILS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The set of attributes required to document the committal of an information item to a repository.",
      "name": "AUDIT_DETAILS",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "system_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of the logical EHR system where the change was committed. This is almost always owned by the organisation legally responsible for the EHR, and is distinct from any application, or any hosting infrastructure.",
          "name": "system_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time_committed": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of committal of the item.",
          "name": "time_committed",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "change_type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Type of change. Coded using the openEHR Terminology  audit change type  group.",
          "name": "change_type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "description": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reason for committal. This may be used to qualify the value in the `_change_type_` field. For example, if the change affects only the EHR directory, this field might be used to indicate 'Folder \"episode 2018-02-16\" added' or similar.",
          "name": "description",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "committer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identity and optional reference into identity management service, of user who committed the item.",
          "name": "committer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "System_id_valid": {
          "name": "System_id_valid",
          "definition": "`not system_id.is_empty`"
        },
        "Change_type_valid": {
          "name": "Change_type_valid",
          "definition": "`terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_audit_change_type, change_type.defining_code)`"
        }
      }
    },
    "ATTESTATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Record an attestation of a party (the committer) to item(s) of record content. An attestation is an explicit signing by one healthcare agent of particular content for various particular purposes, including:\n\n* for authorisation of a controlled substance or procedure (e.g. sectioning of patient under mental health act);\n* witnessing of content by senior clinical professional;\n* indicating acknowledgement of content by intended recipient, e.g. GP who ordered a test result.",
      "name": "ATTESTATION",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "AUDIT_DETAILS"
      ],
      "properties": {
        "attested_view": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional visual representation of content attested e.g. screen image.",
          "name": "attested_view",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_MULTIMEDIA"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "proof": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Proof of attestation.",
          "name": "proof",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Items attested, expressed as fully qualified runtime paths to the items in question. Although not recommended, these may include fine-grained items which have been attested in some other system. Otherwise it is assumed to be for the entire VERSION with which it is associated.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_EHR_URI>",
            "effective_type_name": "DV_EHR_URI",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_EHR_URI"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "reason": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reason of this attestation. Optionally coded by the openEHR Terminology group  attestation reason ; includes values like  authorisation ,  witness  etc.",
          "name": "reason",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_pending": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if this attestation is outstanding; False means it has been completed.",
          "name": "is_pending",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Items_valid": {
          "name": "Items_valid",
          "definition": "`items /= Void implies not items.is_empty`"
        },
        "Reason_valid": {
          "name": "Reason_valid",
          "definition": "`(reason.generating_type.is_equal (“DV_CODED_TEXT”) implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_attestation_reason, reason.defining_code))`"
        }
      }
    },
    "REVISION_HISTORY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Purpose Defines the notion of a revision history of audit items, each associated with the version for which that audit was committed. The list is in most-recent-first order.",
      "name": "REVISION_HISTORY",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The items in this history in most-recent-last order.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<REVISION_HISTORY_ITEM>",
            "effective_type_name": "REVISION_HISTORY_ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "REVISION_HISTORY_ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "methods": {
        "*most_recent_version* (): `String` +  + __Post__: `Result.is_equal (items.last.version_id.value)`": {
          "prefix": "*1..1*",
          "declaration": "*most_recent_version* (): `String` +\n +\n__Post__: `Result.is_equal (items.last.version_id.value)`"
        },
        "*most_recent_version_time_committed* (): `String` +  + __Post__: `Result.is_equal (items.last.audits.first. time_committed.value)`": {
          "prefix": "",
          "declaration": "*most_recent_version_time_committed* (): `String` +\n +\n__Post__: `Result.is_equal (items.last.audits.first. time_committed.value)`"
        }
      }
    },
    "REVISION_HISTORY_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "An entry in a revision history, corresponding to a version from a versioned container. Consists of `AUDIT_DETAILS` instances with revision identifier of the revision to which the `AUDIT_DETAILS` instance belongs.",
      "name": "REVISION_HISTORY_ITEM",
      "package_path": "org.openehr.rm.common.generic",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "version_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Version identifier for this revision.",
          "name": "version_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_VERSION_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "audits": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The audits for this revision; there will always be at least one commit audit (which may itself be an `ATTESTATION`), there may also be further attestations.",
          "name": "audits",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<AUDIT_DETAILS>",
            "effective_type_name": "AUDIT_DETAILS",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "AUDIT_DETAILS"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      }
    },
    "PATHABLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The `PATHABLE` class defines the pathing capabilities used by nearly all classes in the openEHR reference model, mostly via inheritance of `LOCATABLE`. The defining characteristics of `PATHABLE` objects are that they can locate child objects using paths, and they know their parent object in a compositional hierarchy. The parent feature is defined as abstract in the model, and may be implemented in any way convenient.",
      "name": "PATHABLE",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "methods": {
        "*parent* (): `<<_pathable_class,PATHABLE>>`": {
          "prefix": "*1..1*",
          "declaration": "*parent* (): `<<_pathable_class,PATHABLE>>`"
        },
        "*item_at_path* ( + a_path: `String[1]` + ): `Any` +  + __Pre__: `path_unique (a_path)`": {
          "prefix": "",
          "declaration": "*item_at_path* ( +\na_path: `String[1]` +\n): `Any` +\n +\n__Pre__: `path_unique (a_path)`"
        },
        "*items_at_path* ( + a_path: `String[1]` + ): `List<Any>`": {
          "prefix": "",
          "declaration": "*items_at_path* ( +\na_path: `String[1]` +\n): `List<Any>`"
        },
        "*path_exists* ( + a_path: `String[1]` + ): `Boolean` +  + __Pre__: `not a_path.is_empty`": {
          "prefix": "",
          "declaration": "*path_exists* ( +\na_path: `String[1]` +\n): `Boolean` +\n +\n__Pre__: `not a_path.is_empty`"
        },
        "*path_unique* ( + a_path: `String[1]` + ): `Boolean` +  + __Pre__: `path_exists (a_path)`": {
          "prefix": "",
          "declaration": "*path_unique* ( +\na_path: `String[1]` +\n): `Boolean` +\n +\n__Pre__: `path_exists (a_path)`"
        },
        "*path_of_item* ( + a_loc: `<<_pathable_class,PATHABLE>>[1]` + ): `String`": {
          "prefix": "",
          "declaration": "*path_of_item* ( +\na_loc: `<<_pathable_class,PATHABLE>>[1]` +\n): `String`"
        }
      }
    },
    "LOCATABLE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Root class of all information model classes that can be archetyped. Most classes in the openEHR reference model inherit from the `LOCATABLE` class, which defines the idea of  locatability in an archetyped structure. `LOCATABLE` defines a runtime name and an `_archetype_node_id_`.",
      "name": "LOCATABLE",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "PATHABLE"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional globally unique object identifier for root points of archetyped structures.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "UID_BASED_ID"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "archetype_node_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths. Always in the form of an at-code, e.g.  `at0005`. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.\n\nAt an archetype root point, the value of this attribute is always the stringified form of the `_archetype_id_` found in the `_archetype_details_` object.",
          "name": "archetype_node_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "name": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Runtime name of this fragment, used to build runtime paths. This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.",
          "name": "name",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "archetype_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of archetyping used on this node.",
          "name": "archetype_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ARCHETYPED"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "feeder_audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.",
          "name": "feeder_audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "FEEDER_AUDIT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "links": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Links to other archetyped structures (data whose root object inherits from `ARCHETYPED`, such as `ENTRY`, `SECTION` and so on). Links may be to structures in other compositions.",
          "name": "links",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<LINK>",
            "effective_type_name": "LINK",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "LINK"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      },
      "methods": {
        "*concept* (): `DV_TEXT`": {
          "prefix": "*1..1*",
          "declaration": "*concept* (): `DV_TEXT`"
        },
        "*is_archetype_root* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_archetype_root* (): `Boolean`"
        }
      },
      "invariants": {
        "Links_valid": {
          "name": "Links_valid",
          "definition": "`links /= Void implies not links.is_empty`"
        },
        "Archetyped_valid": {
          "name": "Archetyped_valid",
          "definition": "`is_archetype_root xor archetype_details = Void`"
        },
        "Archetype_node_id_valid": {
          "name": "Archetype_node_id_valid",
          "definition": "`not archetype_node_id.is_empty`"
        }
      }
    },
    "LINK": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The `LINK` type defines a logical relationship between two items, such as two `ENTRYs` or an `ENTRY` and a `COMPOSITION`. Links can be used across compositions, and across EHRs. Links can potentially be used between interior (i.e. non archetype root) nodes, although this probably should be prevented in archetypes. Multiple `LINKs` can be attached to the root object of any archetyped structure to give the effect of a 1->N link.\n\n1:1 and 1:N relationships between archetyped content elements (e.g. `ENTRYs`) can be expressed by using one, or more than one, respectively, `LINKs`. Chains of links can be used to see  problem threads  or other logical groupings of items.\n\nLinks should be between archetyped structures only, i.e. between objects representing complete domain concepts because relationships between sub-elements of whole concepts are not necessarily meaningful, and may be downright confusing. Sensible links only exist between whole `ENTRYs`, `SECTIONs`, `COMPOSITIONs` and so on.",
      "name": "LINK",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "meaning": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Used to describe the relationship, usually in clinical terms, such as  in response to  (the relationship between test results and an order),  follow-up to  and so on. Such relationships can represent any clinically meaningful connection between pieces of information. Values for meaning include those described in Annex C, ENV 13606 pt 2 under the categories of  generic ,  documenting and reporting ,  organisational ,  clinical ,  circumstancial , and  view management .",
          "name": "meaning",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The type attribute is used to indicate a clinical or domain-level meaning for the kind of link, for example  problem  or  issue . If type values are designed appropriately, they can be used by the requestor of EHR extracts to categorise links which must be followed and which can be broken when the extract is created.",
          "name": "type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "target": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The logical  to  object in the link relation, as per the linguistic sense of the meaning attribute.",
          "name": "target",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_EHR_URI"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "ARCHETYPED": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Archetypes act as the configuration basis for the particular structures of instances defined by the reference model. To enable archetypes to be used to create valid data, key classes in the reference model act as  root  points for archetyping; accordingly, these classes have the `_archetype_details_` attribute set.\n\nAn instance of the class `ARCHETYPED` contains the relevant archetype identification information, allowing generating archetypes to be matched up with data instances.",
      "name": "ARCHETYPED",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "archetype_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Globally unique archetype identifier.",
          "name": "archetype_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ARCHETYPE_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "template_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Globally unique template identifier, if a template was active at this point in the structure. Normally, a template would only be used at the top of a top-level structure, but the possibility exists for templates at lower levels.",
          "name": "template_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "TEMPLATE_ID"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "rm_version": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Version of the openEHR reference model used to create this object. Expressed in terms of the release version string, e.g.  1.0 ,  1.2.4 .",
          "name": "rm_version",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      },
      "invariants": {
        "Rm_version_valid": {
          "name": "Rm_version_valid",
          "definition": "`not rm_version.is_empty`"
        }
      }
    },
    "FEEDER_AUDIT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The `FEEDER_AUDIT` class defines the semantics of an audit trail which is constructed to describe the origin of data that have been transformed into openEHR form and committed to the system.",
      "name": "FEEDER_AUDIT",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "originating_system_item_ids": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Identifiers used for the item in the originating system, e.g. filler and placer ids.",
          "name": "originating_system_item_ids",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_IDENTIFIER>",
            "effective_type_name": "DV_IDENTIFIER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_IDENTIFIER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "feeder_system_item_ids": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Identifiers used for the item in the feeder system, where the feeder system is distinct from the originating system.",
          "name": "feeder_system_item_ids",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_IDENTIFIER>",
            "effective_type_name": "DV_IDENTIFIER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_IDENTIFIER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "original_content": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional inline inclusion of or reference to original content corresponding to the openEHR content at this node. Typically a URI reference to a document or message in a persistent store associated with the EHR.",
          "name": "original_content",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_ENCAPSULATED"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "originating_system_audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Any audit information for the information item from the originating system.",
          "name": "originating_system_audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "FEEDER_AUDIT_DETAILS"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "feeder_system_audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Any audit information for the information item from the feeder system, if different from the originating system.",
          "name": "feeder_system_audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "FEEDER_AUDIT_DETAILS"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      }
    },
    "FEEDER_AUDIT_DETAILS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Audit details for any system in a feeder system chain. Audit details here means the general notion of who/where/when the information item to which the audit is attached was created. None of the attributes is defined as mandatory, however, in different scenarios, various combinations of attributes will usually be mandatory. This can be controlled by specifying feeder audit details in legacy archetypes.",
      "name": "FEEDER_AUDIT_DETAILS",
      "package_path": "org.openehr.rm.common.archetyped",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "system_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of the system which handled the information item. This is the IT system owned by the organisation legally responsible for handling the data, and at which the data were previously created or passed by an earlier system.",
          "name": "system_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "location": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of the particular site/facility within an organisation which handled the item. For computability, this identifier needs to be e.g. a PKI identifier which can be included in the identifier list of the `PARTY_IDENTIFIED` object.",
          "name": "location",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_IDENTIFIED"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "provider": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional provider(s) who created, committed, forwarded or otherwise handled the item.",
          "name": "provider",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_IDENTIFIED"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "subject": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifiers for subject of the received information item.",
          "name": "subject",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of handling the item. For an originating system, this will be time of creation, for an intermediate feeder system, this will be a time of accession or other time of handling, where available.",
          "name": "time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "version_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Any identifier used in the system such as  \"interim\" ,  \"final\" , or numeric versions if available.",
          "name": "version_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional attribute to carry any custom meta-data. May be archetyped.",
          "name": "other_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "System_id_valid": {
          "name": "System_id_valid",
          "definition": "`not system_id.is_empty`"
        }
      }
    },
    "VERSIONED_OBJECT": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Version control abstraction, defining semantics for versioning one complex object.",
      "name": "VERSIONED_OBJECT",
      "package_path": "org.openehr.rm.common.change_control",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Unique identifier of this version container in the form of a UID with no extension. This id will be the same in all instances of the same container in a distributed environment, meaning that it can be understood as the uid of the  virtual version tree.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "owner_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to object to which this version container belongs, e.g. the id of the containing EHR or other relevant owning entity.",
          "name": "owner_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "time_created": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of initial creation of this versioned object.",
          "name": "time_created",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      },
      "methods": {
        "*version_count* (): `Integer`": {
          "prefix": "*1..1*",
          "declaration": "*version_count* (): `Integer`"
        },
        "*all_version_ids* (): `List<OBJECT_VERSION_ID>`": {
          "prefix": "",
          "declaration": "*all_version_ids* (): `List<OBJECT_VERSION_ID>`"
        },
        "*all_versions* (): `List<<<_version_class,VERSION>>>`": {
          "prefix": "",
          "declaration": "*all_versions* (): `List<<<_version_class,VERSION>>>`"
        },
        "*has_version_at_time* ( + a_time: `DV_DATE_TIME[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*has_version_at_time* ( +\na_time: `DV_DATE_TIME[1]` +\n): `Boolean`"
        },
        "*has_version_id* ( + a_version_uid: `OBJECT_VERSION_ID[1]` + ): `Boolean`": {
          "prefix": "",
          "declaration": "*has_version_id* ( +\na_version_uid: `OBJECT_VERSION_ID[1]` +\n): `Boolean`"
        },
        "*version_with_id* ( + a_version_uid: `OBJECT_VERSION_ID[1]` + ): `<<_version_class,VERSION>>` +  + __Pre__: `has_version_id (a_ver_id)`": {
          "prefix": "",
          "declaration": "*version_with_id* ( +\na_version_uid: `OBJECT_VERSION_ID[1]` +\n): `<<_version_class,VERSION>>` +\n +\n__Pre__: `has_version_id (a_ver_id)`"
        },
        "*is_original_version* ( + a_version_uid: `OBJECT_VERSION_ID[1]` + ): `Boolean` +  + __Pre__: `has_version_id(a_ver_id)`": {
          "prefix": "",
          "declaration": "*is_original_version* ( +\na_version_uid: `OBJECT_VERSION_ID[1]` +\n): `Boolean` +\n +\n__Pre__: `has_version_id(a_ver_id)`"
        },
        "*version_at_time* ( + a_time: `DV_DATE_TIME[1]` + ): `<<_version_class,VERSION>>` +  + __Pre__: `has_version_at_time (a_time)`": {
          "prefix": "",
          "declaration": "*version_at_time* ( +\na_time: `DV_DATE_TIME[1]` +\n): `<<_version_class,VERSION>>` +\n +\n__Pre__: `has_version_at_time (a_time)`"
        },
        "*revision_history* (): `<<_revision_history_class,REVISION_HISTORY>>`": {
          "prefix": "",
          "declaration": "*revision_history* (): `<<_revision_history_class,REVISION_HISTORY>>`"
        },
        "*latest_version* (): `<<_version_class,VERSION>>`": {
          "prefix": "",
          "declaration": "*latest_version* (): `<<_version_class,VERSION>>`"
        },
        "*latest_trunk_version* (): `<<_version_class,VERSION>>`": {
          "prefix": "",
          "declaration": "*latest_trunk_version* (): `<<_version_class,VERSION>>`"
        },
        "*trunk_lifecycle_state* (): `DV_CODED_TEXT` +  + __Post__: `Result = latest_trunk_version.lifecycle_state`": {
          "prefix": "",
          "declaration": "*trunk_lifecycle_state* (): `DV_CODED_TEXT` +\n +\n__Post__: `Result = latest_trunk_version.lifecycle_state`"
        },
        "*commit_original_version* ( + a_contribution: `OBJECT_REF[1]`, + a_new_version_uid: `OBJECT_VERSION_ID[1]`, + a_preceding_version_id: `OBJECT_VERSION_ID[1]`, + an_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, + a_lifecycle_state: `DV_CODED_TEXT[1]`, + a_data: `T[1]`, + signing_key: `String[1]` + ): `void` +  + __Pre__: `all_version_ids.has (a_preceding_version_uid) or else version_count = 0`": {
          "prefix": "",
          "declaration": "*commit_original_version* ( +\na_contribution: `OBJECT_REF[1]`, +\na_new_version_uid: `OBJECT_VERSION_ID[1]`, +\na_preceding_version_id: `OBJECT_VERSION_ID[1]`, +\nan_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, +\na_lifecycle_state: `DV_CODED_TEXT[1]`, +\na_data: `T[1]`, +\nsigning_key: `String[1]` +\n): `void` +\n +\n__Pre__: `all_version_ids.has (a_preceding_version_uid) or else version_count = 0`"
        },
        "*commit_original_merged_version* ( + a_contribution: `OBJECT_REF[1]`, + a_new_version_uid: `OBJECT_VERSION_ID[1]`, + a_preceding_version_id: `OBJECT_VERSION_ID[1]`, + an_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, + a_lifecycle_state: `DV_CODED_TEXT[1]`, + a_data: `T[1]`, + an_other_input_uids: `List<OBJECT_VERSION_ID>[1]`, + signing_key: `String[1]` + ): `void` +  + __Pre__: `all_version_ids.has (a_preceding_version_uid) or else version_count = 0`": {
          "prefix": "",
          "declaration": "*commit_original_merged_version* ( +\na_contribution: `OBJECT_REF[1]`, +\na_new_version_uid: `OBJECT_VERSION_ID[1]`, +\na_preceding_version_id: `OBJECT_VERSION_ID[1]`, +\nan_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, +\na_lifecycle_state: `DV_CODED_TEXT[1]`, +\na_data: `T[1]`, +\nan_other_input_uids: `List<OBJECT_VERSION_ID>[1]`, +\nsigning_key: `String[1]` +\n): `void` +\n +\n__Pre__: `all_version_ids.has (a_preceding_version_uid) or else version_count = 0`"
        },
        "*commit_imported_version* ( + a_contribution: `OBJECT_REF[1]`, + an_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, + a_version: `<<_original_version_class,ORIGINAL_VERSION>>[1]` + ): `void`": {
          "prefix": "",
          "declaration": "*commit_imported_version* ( +\na_contribution: `OBJECT_REF[1]`, +\nan_audit: `<<_audit_details_class,AUDIT_DETAILS>>[1]`, +\na_version: `<<_original_version_class,ORIGINAL_VERSION>>[1]` +\n): `void`"
        },
        "*commit_attestation* ( + an_attestation: `<<_attestation_class,ATTESTATION>>[1]`, + a_ver_id: `OBJECT_VERSION_ID[1]`, + signing_key: `String[1]` + ): `void` +  + __Pre__: `has_version_id(a_ver_id) and is_original_version(a_ver_id)`": {
          "prefix": "",
          "declaration": "*commit_attestation* ( +\nan_attestation: `<<_attestation_class,ATTESTATION>>[1]`, +\na_ver_id: `OBJECT_VERSION_ID[1]`, +\nsigning_key: `String[1]` +\n): `void` +\n +\n__Pre__: `has_version_id(a_ver_id)\nand is_original_version(a_ver_id)`"
        }
      },
      "invariants": {
        "Version_count_valid": {
          "name": "Version_count_valid",
          "definition": "`version_count >= 0`"
        },
        "All_version_ids_valid": {
          "name": "All_version_ids_valid",
          "definition": "`all_version_ids.count = version_count`"
        },
        "All_versions_valid": {
          "name": "All_versions_valid",
          "definition": "`all_versions.count = version_count`"
        },
        "Latest_version_valid": {
          "name": "Latest_version_valid",
          "definition": "`version_count > 0 implies latest_version /= Void`"
        },
        "Uid_validity": {
          "name": "Uid_validity",
          "definition": "`extension.is_empty`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "VERSIONED_OBJECT<T>",
        "type_name_simple": "VERSIONED_OBJECT<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Any",
            "parameter_name": "T"
          }
        ]
      }
    },
    "CONTRIBUTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Documents a Contribution (change set) of one or more versions added to a change-controlled repository.",
      "name": "CONTRIBUTION",
      "package_path": "org.openehr.rm.common.change_control",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Unique identifier for this Contribution.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Audit trail corresponding to the committal of this Contribution.",
          "name": "audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "AUDIT_DETAILS"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "versions": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Set of references to Versions causing changes to this EHR. Each contribution contains a list of versions, which may include paths pointing to any number of versionable items, i.e. items of types such as `COMPOSITION` and `FOLDER`.",
          "name": "versions",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "VERSION": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Abstract model of one Version within a Version container, containing data, commit audit trail, and the identifier of its Contribution.",
      "name": "VERSION",
      "package_path": "org.openehr.rm.common.change_control",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "contribution": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Contribution in which this version was added.",
          "name": "contribution",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "commit_audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Audit trail corresponding to the committal of this version to the `VERSIONED_OBJECT`.",
          "name": "commit_audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "AUDIT_DETAILS"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "signature": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "OpenPGP digital signature or digest of content committed in this Version.",
          "name": "signature",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      },
      "methods": {
        "(abstract)* *uid* (): `OBJECT_VERSION_ID`": {
          "prefix": "*1..1 +",
          "declaration": "(abstract)*\n*uid* (): `OBJECT_VERSION_ID`"
        },
        "(abstract)* *preceding_version_uid* (): `OBJECT_VERSION_ID`": {
          "prefix": "",
          "declaration": "(abstract)*\n*preceding_version_uid* (): `OBJECT_VERSION_ID`"
        },
        "(abstract)* *data* (): `T`": {
          "prefix": "",
          "declaration": "(abstract)*\n*data* (): `T`"
        },
        "(abstract)* *lifecycle_state* (): `DV_CODED_TEXT`": {
          "prefix": "",
          "declaration": "(abstract)*\n*lifecycle_state* (): `DV_CODED_TEXT`"
        },
        "*canonical_form* (): `String`": {
          "prefix": "",
          "declaration": "*canonical_form* (): `String`"
        },
        "*owner_id* (): `HIER_OBJECT_ID` +  + __Post__: `Result.value.is_equal (uid.object_id.value)`": {
          "prefix": "",
          "declaration": "*owner_id* (): `HIER_OBJECT_ID` +\n +\n__Post__: `Result.value.is_equal (uid.object_id.value)`"
        },
        "*is_branch* (): `Boolean`": {
          "prefix": "",
          "declaration": "*is_branch* (): `Boolean`"
        }
      },
      "invariants": {
        "Preceding_version_uid_validity": {
          "name": "Preceding_version_uid_validity",
          "definition": "`uid.version_tree_id.is_first xor preceding_version_uid /= Void`"
        },
        "Lifecycle_state_ valid": {
          "name": "Lifecycle_state_ valid",
          "definition": "`lifecycle_state /= Void and then terminology (Term_id_openehr).has_code_for_group_id (Group_id_version_lifecycle_state, lifecycle_state.defining_code)`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "VERSION<T>",
        "type_name_simple": "VERSION<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Any",
            "parameter_name": "T"
          }
        ]
      }
    },
    "ORIGINAL_VERSION": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "A Version containing locally created content and optional attestations.",
      "name": "ORIGINAL_VERSION",
      "package_path": "org.openehr.rm.common.change_control",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "VERSION<T>"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Stored version of inheritance precursor.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_VERSION_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "preceding_version_uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Stored version of inheritance precursor.",
          "name": "preceding_version_uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_VERSION_ID"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "other_input_version_uids": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Identifiers of other versions whose content was merged into this version, if any.",
          "name": "other_input_version_uids",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_VERSION_ID>",
            "effective_type_name": "OBJECT_VERSION_ID",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_VERSION_ID"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "attestations": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Set of attestations relating to this version.",
          "name": "attestations",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ATTESTATION>",
            "effective_type_name": "ATTESTATION",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "ATTESTATION"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "lifecycle_state": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Lifecycle state of the content item in this version; coded by openEHR vocabulary `version lifecycle state`.",
          "name": "lifecycle_state",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Data content of this Version.",
          "name": "data",
          "type": {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Any",
            "parameter_name": "T"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "methods": {
        "*is_merged* (): `Boolean`": {
          "prefix": "*1..1*",
          "declaration": "*is_merged* (): `Boolean`"
        }
      },
      "invariants": {
        "Attestations_valid": {
          "name": "Attestations_valid",
          "definition": "`attestations /= Void implies not attestations.is_empty`"
        },
        "Is_merged_validity": {
          "name": "Is_merged_validity",
          "definition": "`other_input_version_ids = Void xor is_merged`"
        },
        "Other_input_version_uids_valid": {
          "name": "Other_input_version_uids_valid",
          "definition": "`other_input_version_uids /= Void implies not other_input_version_uids.is_empty`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "ORIGINAL_VERSION<T>",
        "type_name_simple": "ORIGINAL_VERSION<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Any",
            "parameter_name": "T"
          }
        ]
      }
    },
    "IMPORTED_VERSION": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Versions whose content is an `ORIGINAL_VERSION` copied from another location; this class inherits `_commit_audit_` and `_contribution_` from `VERSION<T>`, providing imported versions with their own audit trail and Contribution, distinct from those of the imported `ORIGINAL_VERSION`.",
      "name": "IMPORTED_VERSION",
      "package_path": "org.openehr.rm.common.change_control",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "VERSION<T>"
      ],
      "properties": {
        "item": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The `ORIGINAL_VERSION` object that was imported.",
          "name": "item",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "ORIGINAL_VERSION<T>",
            "type_name_simple": "ORIGINAL_VERSION<Any>",
            "generic_parameters": [
              {
                "_type": "BMM_PARAMETER_TYPE",
                "type_name": "T",
                "effective_type_name": "Any",
                "parameter_name": "T"
              }
            ]
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        }
      },
      "methods": {
        "*uid* (): `OBJECT_VERSION_ID` +  + __Post__: `Result = item.uid`": {
          "prefix": "*1..1 +",
          "declaration": "*uid* (): `OBJECT_VERSION_ID` +\n +\n__Post__: `Result = item.uid`"
        },
        "*preceding_version_uid* (): `OBJECT_VERSION_ID` +  + __Post__: `Result = item.preceding_version_uid`": {
          "prefix": "",
          "declaration": "*preceding_version_uid* (): `OBJECT_VERSION_ID` +\n +\n__Post__: `Result = item.preceding_version_uid`"
        },
        "*lifecycle_state* (): `DV_CODED_TEXT`": {
          "prefix": "",
          "declaration": "*lifecycle_state* (): `DV_CODED_TEXT`"
        },
        "*data* (): `T`": {
          "prefix": "",
          "declaration": "*data* (): `T`"
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "IMPORTED_VERSION<T>",
        "type_name_simple": "IMPORTED_VERSION<Any>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "Any",
            "parameter_name": "T"
          }
        ]
      }
    },
    "FOLDER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The concept of a named folder.\n\nNOTE: It is strongly recommended that the inherited attribute `_uid_` be populated in _top-level_ (i.e. tree-root) `FOLDER` objects, using the UID copied from the `_object_id()_` of the `_uid_` field of the enclosing `VERSION` object. +\nFor example, the `ORIGINAL_VERSION.uid` `87284370-2D4B-4e3d-A3F3-F303D2F4F34B::uk.nhs.ehr1::2`  would be copied to the `_uid_` field of the top `FOLDER` object.",
      "name": "FOLDER",
      "package_path": "org.openehr.rm.common.directory",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "folders": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Sub-folders of this `FOLDER`.",
          "name": "folders",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<FOLDER>",
            "effective_type_name": "FOLDER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "FOLDER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The list of references to other (usually) versioned objects logically in this folder.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Archetypable meta-data for `FOLDER`.",
          "name": "details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Folders_valid": {
          "name": "Folders_valid",
          "definition": "`not folders.is_empty`"
        }
      }
    },
    "EXTRACT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic model of an Extract of some information from a repository.",
      "name": "EXTRACT",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "request_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to causing Request, if any.",
          "name": "request_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "time_created": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Creation time of this Extract",
          "name": "time_created",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "system_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of creating system.",
          "name": "system_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "sequence_nr": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Number of this Extract response in sequence of responses to Extract request identified by `_request_id_`. If this is the sole response, or there was no request, value is 1.",
          "name": "sequence_nr",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "specification": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The specification that this Extract actually conforms to; might not be identical with the specification of the corresponding request.",
          "name": "specification",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EXTRACT_SPEC"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "chapters": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The content extracted and serialised from the source repository for this Extract.",
          "name": "chapters",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EXTRACT_CHAPTER>",
            "effective_type_name": "EXTRACT_CHAPTER",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "EXTRACT_CHAPTER"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "participations": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Participations relevant to the creation of this Extract.",
          "name": "participations",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EXTRACT_PARTICIPATION>",
            "effective_type_name": "EXTRACT_PARTICIPATION",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "EXTRACT_PARTICIPATION"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "invariants": {
        "Sequence_nr_valid": {
          "name": "Sequence_nr_valid",
          "definition": "`sequence_nr >= 1`"
        }
      }
    },
    "EXTRACT_SPEC": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specification of an Extract's contents. Subtypes can be used to add details specific to the type of Extract. The specification consists of attributes specifying the directory, and two further groups of attributes in their own classes, namely a version specfication (which versions of information items are to be included) and a manifest (which entities are to be included in the extract).\n\nUse: Used in a request to specify an Extract, as well as to describe what is contained in an Extract.",
      "name": "EXTRACT_SPEC",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "extract_type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Coded term indicating the type of content required, e.g.\n\n* `|openehr-ehr|`\n* `|openehr-demographic|`\n* `|generic-emr|`\n* `|other|`\n\nCoded by openEHR Terminology group `'extract content type'`.",
          "name": "extract_type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "include_multimedia": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Indicates whether in-line instances of `DV_MULTIMEDIA` in the source data are included or not.",
          "name": "include_multimedia",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "priority": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Requested priority of this request to be handled by server. Priority schemes are likely to be local, and use values agreed by both ends.\n\nTBD: alternative is standard coded terms",
          "name": "priority",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "link_depth": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Degree of links to follow emanating from content items specified for inclusion. The kind of links to follow is dependent on the type of Extract.\n\nAll items at the target end of followed links at the given depth are also included in the extract; `EXTRACT_CONTENT_ITEM._is_primary_` is used to differentiate.\n\n* 0 = don't follow;\n* 1 = follow first degree links;\n* 2 = follow 2nd degree links;\n* ....\n* n = follow nth degree links",
          "name": "link_depth",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "criteria": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Queries specifying the contents of this Extract.",
          "name": "criteria",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_PARSABLE>",
            "effective_type_name": "DV_PARSABLE",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_PARSABLE"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "manifest": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Specification of entities (e.g. records) to include in the Extract.",
          "name": "manifest",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EXTRACT_MANIFEST"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "version_spec": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Specification of which versions of information items to include in the Extract. If Void, the default is latest versions only (which is reasonable for non-versioning systems as well).",
          "name": "version_spec",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EXTRACT_VERSION_SPEC"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Other specification items. Archetypable.",
          "name": "other_details",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "ITEM_STRUCTURE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "EXTRACT_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract parent of Extract Folder and Content types.",
      "name": "EXTRACT_ITEM",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ]
    },
    "EXTRACT_REQUEST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic model of a Request for an Extract, containing an Extract specification.",
      "name": "EXTRACT_REQUEST",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of this Request, generated by requestor.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "extract_spec": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Specification details of the request.",
          "name": "extract_spec",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EXTRACT_SPEC"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "update_spec": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Update details of the request.",
          "name": "update_spec",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "EXTRACT_UPDATE_SPEC"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "EXTRACT_UPDATE_SPEC": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specification of the how the request should be processed by server. The request can be persisted in the server, meaning that a) it can be re-activated by the requesting system simply by indicating Request id, and b) that a changes-only pattern of Extract updates can be set up. To achieve this, the server has to remember what was sent in the previous response.\n\nThe update mode may be event-driven and periodic update or a mixture of both. The candidate items to be sent each time are the result of re-evaluating the content and versioning parts of the specification; what is actually sent is determined by the `_send_changes_only_` flag.",
      "name": "EXTRACT_UPDATE_SPEC",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "persist_in_server": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "If True, this Request is persisted in the server until further notice.",
          "name": "persist_in_server",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "trigger_events": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Set of Event names that will cause sending of update Extracts. Event types include:\n\n* `|any_change|` - any change in content items matched by content specification, e.g. new versions of persistent compositions. If the content list allows matching of any, or a wide range of archetypes, this event type will match any additions to the record.\n* `|correction|` - match error corrections only, including deletions.\n* `|update|` - match updates (i.e. new versions) of included content items.\n\nCoded by openEHR Terminology group 'extract update trigger event type'.",
          "name": "trigger_events",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<DV_CODED_TEXT>",
            "effective_type_name": "DV_CODED_TEXT",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "DV_CODED_TEXT"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        },
        "repeat_period": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Period for resending update Extracts in response to original Request.",
          "name": "repeat_period",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DURATION"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "update_method": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Indicate mode of update. Can be: send only items that are changed (including logical deletions) or new since last send. For `_persist_in_server_` Requests only.",
          "name": "update_method",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "CODE_PHRASE"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Overall_validity": {
          "name": "Overall_validity",
          "definition": "`repeat_period /= Void or trigger_events /= Void`"
        },
        "Trigger_events_validity": {
          "name": "Trigger_events_validity",
          "definition": "`trigger_events /= Void implies not trigger_events.is_empty`"
        },
        "Send_changes_only_validity": {
          "name": "Send_changes_only_validity",
          "definition": "`send_changes_only implies persist_in_server`"
        }
      }
    },
    "EXTRACT_ACTION_REQUEST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Generic model of a Request for an Extract, containing an Extract specification.",
      "name": "EXTRACT_ACTION_REQUEST",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "request_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of previous `EXTRACT_REQUEST`.",
          "name": "request_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "action": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Requested action: `cancel | resend | send new`. Coded by openEHR Terminology group `'extract action type'`.",
          "name": "action",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      }
    },
    "EXTRACT_CONTENT_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract model of a wrapper for one content item in an Extract, containing various meta-data. Indicates whether it was part of the primary set and what its original path was. Intended to be subtyped for wrappers of specific types of content.",
      "name": "EXTRACT_CONTENT_ITEM",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "EXTRACT_ITEM"
      ],
      "properties": {
        "is_primary": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if the content item carried in this container was part of the primary set for the Extract, i.e. not added due to link-following.",
          "name": "is_primary",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "is_changed": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if the content item carried in this container is any kind of change since last send, in repeat sending situations.",
          "name": "is_changed",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "is_masked": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if the content of this item has not been included due to insufficient access rights of requestor.",
          "name": "is_masked",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "item": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Content object.",
          "name": "item",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Any"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Item_validity": {
          "name": "Item_validity",
          "definition": "`is_masked xor item /= Void`"
        }
      }
    },
    "EXTRACT_FOLDER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Folder in local Folder structure in an Extract. Empty Folders are allowed.",
      "name": "EXTRACT_FOLDER",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EXTRACT_ITEM"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of Folders and content items in this Folder.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EXTRACT_ITEM>",
            "effective_type_name": "EXTRACT_ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "EXTRACT_ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "EXTRACT_VERSION_SPEC": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specification of what versions should be included in an Extract. By default, only latest versions are included in the Extract, in which case this part of the Extract specification is not needed at all. The attributes `_include_all_versions_` and `_commit_time_interval_` are used to modify this; the former forces all versions to be included; the latter limits the versions to be those latest versions committed in the time interval, or if `_include_all_versions_` is `True`, all versions committed in the time interval.",
      "name": "EXTRACT_VERSION_SPEC",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "include_all_versions": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if all versions of each item in the Extract are included.",
          "name": "include_all_versions",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "commit_time_interval": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Specifies commit time interval of items to source repository to include in Extract. By default, only latest versions whose commit times fall in the range are included. If include_all_versions is True, then the range includes all versions committed within the interval.",
          "name": "commit_time_interval",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE_TIME>",
            "type_name_simple": "DV_INTERVAL<DV_DATE_TIME>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE_TIME"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "include_revision_history": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if revision histories of the items in the Extract are included. If included, it is always the full revision history.",
          "name": "include_revision_history",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "include_data": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "`True` if the data of items matched by the content spec should be included. This is the default. If `False`, only revision history is included in serialised versions. Turning this option on in openEHR systems causes `X_VERSIONED_OBJECTs` to have `_revision_history_` set, but versions Void. Useful for interrogating a server without having to look at any content data. In other systems it may or may not have a sensible meaning.",
          "name": "include_data",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Includes_revision_history_valid": {
          "name": "Includes_revision_history_valid",
          "definition": "`not include_data implies include_revision_history`"
        }
      }
    },
    "EXTRACT_CHAPTER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "One content chapter of an Extract; contains information relating to only one entity.",
      "name": "EXTRACT_CHAPTER",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ],
      "properties": {
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "The information content of this chapter.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EXTRACT_ITEM>",
            "effective_type_name": "EXTRACT_ITEM",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "EXTRACT_ITEM"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "EXTRACT_ENTITY_CHAPTER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Type of chapter that contains information relating to a single demographic entity.",
      "name": "EXTRACT_ENTITY_CHAPTER",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EXTRACT_CHAPTER"
      ],
      "properties": {
        "extract_id_key": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to entity, usually a demographic entity such as a patient that the content of this chapter relates to.",
          "name": "extract_id_key",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "EXTRACT_MANIFEST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Specification of the candidate entities and optionally top-level items (e.g. Compositions) to be included in the Extract.",
      "name": "EXTRACT_MANIFEST",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "entities": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of entity manifests uids of items included in the Extract; for openEHR data, these are uids identifying the version containers.",
          "name": "entities",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<EXTRACT_ENTITY_MANIFEST>",
            "effective_type_name": "EXTRACT_ENTITY_MANIFEST",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "EXTRACT_ENTITY_MANIFEST"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 1
          }
        }
      }
    },
    "EXTRACT_ENTITY_MANIFEST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The manifest for one entity (e.g. EHR subject), identifying the entity and optionally specifying top-level items to be included in the Extract. The list actually included may be modified by the `_version_spec_` part of the specification, and also by the link_depth attribute. In repeat (standing order) requests, the final inclusion may be modified by the send_changes_only value for `EXTRACT_UPDATE_SPEC._update_method_`.\n\nVarious identifiers may be provided for the entity; these are to be used by the receiver system to locate the entity. The `_extract_id_key_` attribute is used to record the identifier that will be used throughout the Extract for this entity, including in instances of `EXTRACT_ENTITY_IDENTIFIER`.",
      "name": "EXTRACT_ENTITY_MANIFEST",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "extract_id_key": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier by which this entity is known in the Extract. May be one of the other identifiers, e.g. ehr_id or subject_id, or it may be something else, including a simple integer.",
          "name": "extract_id_key",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "ehr_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "EHR / EMR identifier for the entity at the target system.",
          "name": "ehr_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "subject_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Subject (i.e. patient or similar) identifier for the entity at the target system.",
          "name": "subject_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "other_ids": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Other identifiers that may be used to find the entity at the target system, keyed by type. May include medicare numbers, drivers license number, tax number etc.",
          "name": "other_ids",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<String>",
            "effective_type_name": "String",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "String"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "item_list": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of Uids of items to be included in the Extract, in cases where individual items are being requested by id. More typically, this attribute is not used, and the `EXTRACT_SPEC._criteria query_` defines the Extract contents. If set, for openEHR data, these are Uids identifying the version containers.",
          "name": "item_list",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<OBJECT_REF>",
            "effective_type_name": "OBJECT_REF",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "OBJECT_REF"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "EXTRACT_PARTICIPATION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Model of a participation of a Party (any Actor or Role) in an activity.  Used to represent any participation of a Party in some activity, which is not  explicitly in the model, e.g. assisting nurse. Can be used to record past or  future participations.\n\nShould not be used in place of more permanent relationships between demographic entities.",
      "name": "EXTRACT_PARTICIPATION",
      "package_path": "org.openehr.rm.ehr_extract.common",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "performer": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Uid of demographic entity within Extract who performed this participation.",
          "name": "performer",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "function": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The function of the Party in this participation (note that a given party might participate in more than one way in a particular activity). This attribute should be coded, but cannot be limited to the HL7v3:ParticipationFunction vocabulary, since it is too limited and hospital-oriented.",
          "name": "function",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_TEXT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "mode": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The mode of the performer / activity interaction, e.g. present, by telephone, by email etc.",
          "name": "mode",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The time interval during which the participation took place, if it is used in an observational context (i.e. recording facts about the past); or the intended time interval of the participation when used in future contexts, such as EHR Instructions.",
          "name": "time",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "DV_INTERVAL<DV_DATE_TIME>",
            "type_name_simple": "DV_INTERVAL<DV_DATE_TIME>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "DV_DATE_TIME"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        }
      },
      "invariants": {
        "Function_valid": {
          "name": "Function_valid",
          "definition": "`function /= Void and then function.generating_type.is_equal (“DV_CODED_TEXT”) implies terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_function, function.defining_code)`"
        },
        "Mode_valid": {
          "name": "Mode_valid",
          "definition": "`mode /= Void and terminology (Terminology_id_openehr).has_code_for_group_id (Group_id_participation_mode, mode.defining_code)`"
        }
      }
    },
    "OPENEHR_CONTENT_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `EHR EXTRACT_ITEM` containing openEHR serialised `VERSIONED_OBJECTs`.",
      "name": "OPENEHR_CONTENT_ITEM",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EXTRACT_CONTENT_ITEM"
      ],
      "properties": {
        "item": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Content object.",
          "name": "item",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "X_VERSIONED_OBJECT<LOCATABLE>",
            "type_name_simple": "X_VERSIONED_OBJECT<LOCATABLE>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "LOCATABLE"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "X_VERSIONED_OBJECT": {
      "_type": "BMM_GENERIC_CLASS",
      "documentation": "Variety of Extract content that consists is a sharable data-oriented version of `VERSIONED_OBJECT<T>`.",
      "name": "X_VERSIONED_OBJECT",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Uid of original `VERSIONED_OBJECT`.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "owner_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Owner_id from original `VERSIONED_OBJECT`, which identifies source EHR.",
          "name": "owner_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "OBJECT_REF"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "time_created": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Creation time of original `VERSIONED_OBJECT`.",
          "name": "time_created",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "total_version_count": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Total number of versions in original `VERSIONED_OBJECT` at time of creation of this `X_VERSIONED_OBJECT`.",
          "name": "total_version_count",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "extract_version_count": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The number of Versions in this extract for this Versioned object, i.e. the count of items in the versions attribute. May be 0 if only revision history is requested.",
          "name": "extract_version_count",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "revision_history": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional revision history of the original `VERSIONED_OBJECT`. If included, it is the complete revision history.",
          "name": "revision_history",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "REVISION_HISTORY"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": true
        },
        "versions": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "0 or more Versions from the original `VERSIONED_OBJECT`, according to the Extract specification.",
          "name": "versions",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<ORIGINAL_VERSION<T>>",
            "effective_type_name": "ORIGINAL_VERSION<T>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "ORIGINAL_VERSION<T>",
              "type_name_simple": "ORIGINAL_VERSION<LOCATABLE>",
              "generic_parameters": [
                {
                  "_type": "BMM_PARAMETER_TYPE",
                  "type_name": "T",
                  "effective_type_name": "LOCATABLE",
                  "parameter_name": "T"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      },
      "type": {
        "_type": "BMM_GENERIC_TYPE",
        "type_name": "X_VERSIONED_OBJECT<T>",
        "type_name_simple": "X_VERSIONED_OBJECT<LOCATABLE>",
        "generic_parameters": [
          {
            "_type": "BMM_PARAMETER_TYPE",
            "type_name": "T",
            "effective_type_name": "LOCATABLE",
            "parameter_name": "T"
          }
        ]
      }
    },
    "X_VERSIONED_PARTY": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `X_VERSIONED_OBJECT` for `PARTY` demographic object.",
      "name": "X_VERSIONED_PARTY",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "X_VERSIONED_OBJECT<PARTY>"
      ]
    },
    "X_VERSIONED_EHR_ACCESS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `X_VERSIONED_OBJECT` for `EHR_ACCESS` EHR object.",
      "name": "X_VERSIONED_EHR_ACCESS",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "X_VERSIONED_OBJECT<EHR_ACCESS>"
      ]
    },
    "X_VERSIONED_EHR_STATUS": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `X_VERSIONED_OBJECT` for `EHR_STATUS` EHR object.",
      "name": "X_VERSIONED_EHR_STATUS",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "X_VERSIONED_OBJECT<EHR_STATUS>"
      ]
    },
    "X_VERSIONED_COMPOSITION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `X_VERSIONED_OBJECT` for `COMPOSITION` EHR object.",
      "name": "X_VERSIONED_COMPOSITION",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "X_VERSIONED_OBJECT<COMPOSITION>"
      ]
    },
    "X_VERSIONED_FOLDER": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Form of `X_VERSIONED_OBJECT` for `FOLDER` EHR object.",
      "name": "X_VERSIONED_FOLDER",
      "package_path": "org.openehr.rm.ehr_extract.openehr_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "X_VERSIONED_OBJECT<FOLDER>"
      ]
    },
    "GENERIC_CONTENT_ITEM": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Single item in generic extract, designed for 13606 and CDA data.",
      "name": "GENERIC_CONTENT_ITEM",
      "package_path": "org.openehr.rm.ehr_extract.generic_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "EXTRACT_CONTENT_ITEM"
      ],
      "properties": {
        "item_type": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of model or schema used to create the content.",
          "name": "item_type",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "item_type_version": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Version of model or schema used to create the content item.",
          "name": "item_type_version",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "author": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to a demographic entity elsewhere in this Extract representing the author of the item version. The reference should be a UID corresponding to the UID of a `GENERIC_CONTENT_ITEM` containing the demographic information.",
          "name": "author",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "creation_time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of creation of this item version on the original system. This may be an earlier commit time, or it may be the time at which the item was created during the Extract generation process.",
          "name": "creation_time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Iso8601_date_time"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "authoriser": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Reference to a demographic entity elsewhere in this Extract representing an authoriser of the item version, if relevant. The reference should be a UID corresponding to the UID of a `GENERIC_CONTENT_ITEM` containing the demographic information.",
          "name": "authoriser",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "authorisation_time": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Time of authorisation of this item version on the original system where relevant.",
          "name": "authorisation_time",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Iso8601_date_time"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "item_status": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Coded lifecycle status of the item.",
          "name": "item_status",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_CODED_TEXT"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "version_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Version id of this item in original system.",
          "name": "version_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "version_set_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Version set id of this item in original system, where applicable.",
          "name": "version_set_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "system_id": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identifier of EMR or other system from which the item was created / extracted. Typically in the form of a domain name.",
          "name": "system_id",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": true,
          "is_im_infrastructure": false
        },
        "other_details": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Other details about the content item.",
          "name": "other_details",
          "type": {
            "_type": "BMM_GENERIC_TYPE",
            "type_name": "Hash<String,String>",
            "type_name_simple": "Hash<String,String>",
            "generic_parameters": [
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              },
              {
                "_type": "BMM_SIMPLE_TYPE",
                "type_name": "String"
              }
            ]
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "item": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Content object.",
          "name": "item",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "LOCATABLE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "SYNC_EXTRACT": {
      "_type": "BMM_SIMPLE_CLASS",
      "name": "SYNC_EXTRACT",
      "package_path": "org.openehr.rm.ehr_extract.sync_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "MESSAGE_CONTENT"
      ],
      "properties": {
        "specification": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of specification of this Extract.",
          "name": "specification",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "SYNC_EXTRACT_SPEC"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "items": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Content, in the form of a serialised Contributions.",
          "name": "items",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<X_CONTRIBUTION>",
            "effective_type_name": "X_CONTRIBUTION",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "X_CONTRIBUTION"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "SYNC_EXTRACT_REQUEST": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Type of request designed for synchronisation of Contributions between openEHR servers.",
      "name": "SYNC_EXTRACT_REQUEST",
      "package_path": "org.openehr.rm.ehr_extract.sync_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "MESSAGE_CONTENT"
      ],
      "properties": {
        "specification": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of specification of synchronisation request.",
          "name": "specification",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "SYNC_EXTRACT_SPEC"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "SYNC_EXTRACT_SPEC": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Details of specification of Extract, used in a request to specify an Extract, or in a response, to describe what is actually in the Extract.",
      "name": "SYNC_EXTRACT_SPEC",
      "package_path": "org.openehr.rm.ehr_extract.sync_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "includes_versions": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if the Versions from the Contribution are included; False if just the Contribution and its Audit are included.",
          "name": "includes_versions",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "contribution_list": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "List of Contributions to include / that are included in the Extract.",
          "name": "contribution_list",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<HIER_OBJECT_ID>",
            "effective_type_name": "HIER_OBJECT_ID",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "HIER_OBJECT_ID"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "contributions_since": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Specify Contributions included in Extract by threshold date.",
          "name": "contributions_since",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "DV_DATE_TIME"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "all_contributions": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "True if all Contributions in the record are included.",
          "name": "all_contributions",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Boolean"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "X_CONTRIBUTION": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Serialised form of Contribution for an Extract.",
      "name": "X_CONTRIBUTION",
      "package_path": "org.openehr.rm.ehr_extract.sync_extract",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "uid": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Uid of Contribution in source system.",
          "name": "uid",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "HIER_OBJECT_ID"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Audit of Contribution in source system.",
          "name": "audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "AUDIT_DETAILS"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "versions": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Serialised Versions from Contribution in source system.",
          "name": "versions",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<VERSION<LOCATABLE>>",
            "effective_type_name": "VERSION<LOCATABLE>",
            "base_type": {
              "_type": "BMM_GENERIC_TYPE",
              "type_name": "VERSION<LOCATABLE>",
              "type_name_simple": "VERSION<LOCATABLE>",
              "generic_parameters": [
                {
                  "_type": "BMM_SIMPLE_TYPE",
                  "type_name": "LOCATABLE"
                }
              ]
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        }
      }
    },
    "ADDRESSED_MESSAGE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "The concept of a message addressed to nominated recipients.",
      "name": "ADDRESSED_MESSAGE",
      "package_path": "org.openehr.rm.ehr_extract.message",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "sender": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Party sending the message.",
          "name": "sender",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "sender_reference": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Identification of message used by sender. This will be the same no matter how many times this message is sent to these recipients.",
          "name": "sender_reference",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "addressees": {
          "_type": "BMM_CONTAINER_PROPERTY",
          "documentation": "Intended recipients, in the form of internet addresses.",
          "name": "addressees",
          "type": {
            "_type": "BMM_CONTAINER_TYPE",
            "type_name": "List<String>",
            "effective_type_name": "String",
            "base_type": {
              "_type": "BMM_SIMPLE_TYPE",
              "type_name": "String"
            },
            "container_type": {
              "_type": "BMM_GENERIC_CLASS",
              "name": "List",
              "package_path": "org.openehr.base.foundation_types.structures",
              "is_abstract": false,
              "is_primitive_type": true,
              "ancestors": [
                "Container<V>"
              ],
              "type": {
                "_type": "BMM_GENERIC_TYPE",
                "type_name": "List<V>",
                "type_name_simple": "List<Any>",
                "generic_parameters": [
                  {
                    "_type": "BMM_PARAMETER_TYPE",
                    "type_name": "V",
                    "effective_type_name": "Any",
                    "parameter_name": "V"
                  }
                ]
              }
            }
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false,
          "cardinality": {
            "_type": "Multiplicity_interval",
            "lower_unbounded": false,
            "upper_unbounded": true,
            "lower_included": true,
            "upper_included": false,
            "lower": 0
          }
        },
        "urgency": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Urgency with which destination should deal with message:\n\n* -1 - low\n* 0 - normal\n* 1 - high",
          "name": "urgency",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "Integer"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "message": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "The content of the message.",
          "name": "message",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "MESSAGE"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "MESSAGE": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "A “message” is an authored, possibly signed, piece of content intended for one or more recipients. Since the recipient may or may not be known directly, recipients are specified in the `ADDRESSED_MESSAGE` class.",
      "name": "MESSAGE",
      "package_path": "org.openehr.rm.ehr_extract.message",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Any"
      ],
      "properties": {
        "author": {
          "_type": "BMM_SINGLE_PROPERTY",
          "name": "author",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "PARTY_PROXY"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "audit": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Details of who actually created the message and when. This is the person who entered the data or otherwise caused the message to be created, or might be a piece of software.",
          "name": "audit",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "AUDIT_DETAILS"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "content": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Content of the message.",
          "name": "content",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "MESSAGE_CONTENT"
          },
          "is_mandatory": true,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        },
        "signature": {
          "_type": "BMM_SINGLE_PROPERTY",
          "documentation": "Optional signature by the author of message content in openPGP format. The signature is created as a Hash and optional signing of the serialisation of this message object with this signature field Void.",
          "name": "signature",
          "type": {
            "_type": "BMM_SIMPLE_TYPE",
            "type_name": "String"
          },
          "is_mandatory": false,
          "is_computed": false,
          "is_im_runtime": false,
          "is_im_infrastructure": false
        }
      }
    },
    "MESSAGE_CONTENT": {
      "_type": "BMM_SIMPLE_CLASS",
      "documentation": "Abstract parent of message payload types.",
      "name": "MESSAGE_CONTENT",
      "package_path": "org.openehr.rm.ehr_extract.message",
      "is_abstract": true,
      "is_primitive_type": false,
      "ancestors": [
        "LOCATABLE"
      ]
    }
  },
  "enumeration_definitions": {
    "VALIDITY_KIND": {
      "_type": "BMM_ENUMERATION",
      "name": "VALIDITY_KIND",
      "package_path": "org.openehr.base.base_types.definitions",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "String"
      ],
      "underlying_type_name": "String",
      "item_names": [
        "mandatory",
        "optional",
        "prohibited"
      ]
    },
    "VERSION_STATUS": {
      "_type": "BMM_ENUMERATION",
      "name": "VERSION_STATUS",
      "package_path": "org.openehr.base.base_types.definitions",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "String"
      ],
      "underlying_type_name": "String",
      "item_names": [
        "alpha",
        "beta",
        "release_candidate",
        "released",
        "build"
      ]
    },
    "PROPORTION_KIND": {
      "_type": "BMM_ENUMERATION",
      "name": "PROPORTION_KIND",
      "package_path": "org.openehr.rm.data_types.quantity",
      "is_abstract": false,
      "is_primitive_type": false,
      "ancestors": [
        "Integer"
      ],
      "underlying_type_name": "Integer",
      "item_names": [
        "pk_ratio",
        "pk_unitary",
        "pk_percent",
        "pk_fraction",
        "pk_integer_fraction"
      ]
    }
  }
}
