Packages

ISO/HL7 FHIR Application Server

Current section

Files

Jump to
hl7 schema DataRequirement.schema.json
Raw

schema/DataRequirement.schema.json

{
"schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://hl7.erp.uno/schema/DataRequirement.schema.json",
"$ref": "#/definitions/DataRequirement",
"description": "see https://hl7.org/fhir/R5/json.html for information about the FHIR Json Schemas",
"definitions": {
"Period": {
"allOf": [
{
"description": "A time period defined by a start and end date and optionally time.",
"properties": {
"start": {
"description": "The start of the period. The boundary is inclusive.",
"type": "string",
"pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
},
"end": {
"description": "The end of the period. If the end of the period is missing, it means that the period is ongoing. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.",
"type": "string",
"pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
}
}
}
]
},
"Identifier": {
"allOf": [
{
"description": "A technical identifier - identifies some entity uniquely and unambiguously.",
"properties": {
"use": {
"description": "The purpose of this identifier.",
"enum": [
"usual",
"official",
"temp",
"secondary"
],
"type": "string"
},
"type": {
"description": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.",
"$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
},
"system": {
"description": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.",
"type": "string"
},
"value": {
"description": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.",
"type": "string"
},
"period": {
"description": "Time period during which identifier is/was valid for use.",
"$ref": "#/definitions/Period"
},
"assigner": {
"description": "Organization that issued/manages the identifier.",
"$ref": "#/definitions/Reference"
}
}
}
]
},
"Reference": {
"allOf": [
{
"description": "A reference from one resource to another.",
"properties": {
"reference": {
"description": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with \u0027#\u0027) refer to contained resources.",
"type": "string"
},
"identifier": {
"description": "An identifier for the other resource. This is used when there is no way to reference the other resource directly, either because the entity is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.",
"$ref": "#/definitions/Identifier"
},
"display": {
"description": "Plain text narrative that identifies the resource in addition to the resource reference.",
"type": "string"
}
}
}
]
},
"DataRequirement": {
"allOf": [
{
"description": "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.",
"properties": {
"type": {
"description": "The type of the required data, specified as the type name of a resource. For profiles, this value is set to the type of the base resource of the profile.",
"type": "string",
"pattern": "[^\\s]+([\\s]?[^\\s]+)*"
},
"profile": {
"description": "The profile of the required data, specified as the uri of the profile definition.",
"type": "array",
"items": {
"type": "string"
}
},
"mustSupport": {
"description": "Indicates that specific elements of the type are referenced by the knowledge module and must be supported by the consumer in order to obtain an effective evaluation. This does not mean that a value is required for this element, only that the consuming system must understand the element and be able to provide values for it if they are available. Note that the value for this element can be a path to allow references to nested elements. In that case, all the elements along the path must be supported.",
"type": "array",
"items": {
"type": "string"
}
},
"codeFilter": {
"description": "Code filters specify additional constraints on the data, specifying the value set of interest for a particular element of the data.",
"type": "array",
"items": {
"$ref": "#/definitions/DataRequirement_CodeFilter"
}
},
"dateFilter": {
"description": "Date filters specify additional constraints on the data in terms of the applicable date range for specific elements.",
"type": "array",
"items": {
"$ref": "#/definitions/DataRequirement_DateFilter"
}
}
}
}
]
},
"DataRequirement_CodeFilter": {
"allOf": [
{
"description": "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.",
"properties": {
"path": {
"description": "The code-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type code, Coding, or CodeableConcept.",
"type": "string"
},
"valueSetString": {
"description": "The valueset for the code filter. The valueSet and value elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.",
"type": "string"
},
"valueSetReference": {
"description": "The valueset for the code filter. The valueSet and value elements are exclusive. If valueSet is specified, the filter will return only those data items for which the value of the code-valued element specified in the path is a member of the specified valueset.",
"$ref": "#/definitions/Reference"
},
"valueCode": {
"description": "The codes for the code filter. Only one of valueSet, valueCode, valueCoding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified codes.",
"type": "array",
"items": {
"type": "string",
"pattern": "[^\\s]+([\\s]?[^\\s]+)*"
}
},
"valueCoding": {
"description": "The Codings for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified Codings.",
"type": "array",
"items": {
"$ref": "Coding.schema.json#/definitions/Coding"
}
},
"valueCodeableConcept": {
"description": "The CodeableConcepts for the code filter. Only one of valueSet, valueCode, valueConding, or valueCodeableConcept may be specified. If values are given, the filter will return only those data items for which the code-valued attribute specified by the path has a value that is one of the specified CodeableConcepts.",
"type": "array",
"items": {
"$ref": "CodeableConcept.schema.json#/definitions/CodeableConcept"
}
}
}
}
]
},
"DataRequirement_DateFilter": {
"allOf": [
{
"description": "Describes a required data item for evaluation in terms of the type of data, and optional code or date-based filters of the data.",
"properties": {
"path": {
"description": "The date-valued attribute of the filter. The specified path must be resolvable from the type of the required data. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers ([x]) to traverse multiple-cardinality sub-elements. Note that the index must be an integer constant. The path must resolve to an element of type dateTime, Period, Schedule, or Timing.",
"type": "string"
},
"valueDateTime": {
"description": "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from now.",
"pattern": "-?[0-9]{4}(-(0[1-9]|1[0-2])(-(0[0-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?",
"type": "string"
},
"valuePeriod": {
"description": "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from now.",
"$ref": "#/definitions/Period"
},
"valueDuration": {
"description": "The value of the filter. If period is specified, the filter will return only those data items that fall within the bounds determined by the Period, inclusive of the period boundaries. If dateTime is specified, the filter will return only those data items that are equal to the specified dateTime. If a Duration is specified, the filter will return only those data items that fall within Duration from now.",
"$ref": "Duration.schema.json#/definitions/Duration"
}
}
}
]
}
}
}