-
-
Save denniskigen/80e4cd0765cbeda0efba79c6e6675e49 to your computer and use it in GitHub Desktop.
Standard schema for OpenMRS 3.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://json-schema.org/draft-07/schema#", | |
"title": "OpenMRS 3.0 form schema", | |
"type": "object", | |
"properties": { | |
"name": { | |
"type": "string", | |
"description": "Name of the form" | |
}, | |
"uuid": { | |
"type": "string", | |
"description": "Unique identifier of the form. Autogenerated by the system" | |
}, | |
"encounterType": { | |
"type": "string", | |
"description": "The encounter type UUID that represents the encounter type that the form gets mapped to" | |
}, | |
"pages": { | |
"type": "array", | |
"description": "Pages of the form", | |
"properties": { | |
"label": { | |
"type": "string", | |
"description": "Label of the page" | |
}, | |
"sections": { | |
"type": "array", | |
"description": "Sections of the page", | |
"properties": { | |
"label": { | |
"type": "string", | |
"description": "Label of the section" | |
}, | |
"isExpanded": { | |
"type": "string", | |
"description": "Whether the section is expanded or not" | |
}, | |
"questions": { | |
"type": "array", | |
"description": "Question in a section", | |
"properties": { | |
"id": { | |
"type": "string", | |
"description": "Unique identifier of the question" | |
}, | |
"label": { | |
"type": "string", | |
"description": "Label of the question" | |
}, | |
"required": { | |
"type": "boolean", | |
"description": "Whether the question is a required field or not" | |
}, | |
"questionOptions": { | |
"type": "object", | |
"description": "Options of the question", | |
"properties": { | |
"type": { | |
"type": "string", | |
"description": "The datatype that the question maps to in OpenMRS" | |
}, | |
"rendering": { | |
"type": "string", | |
"description": "Rendering type of the question" | |
}, | |
"concept": { | |
"type": "string", | |
"description": "Concept UUID of the question" | |
}, | |
"conceptMappings": { | |
"type": "array", | |
"description": "Concept mappings associated with the answer", | |
"properties": { | |
"relationship": { | |
"type": "string", | |
"description": "Relationship between concepts" | |
}, | |
"type": { | |
"type": "string", | |
"description": "Concept mapping references" | |
}, | |
"value": { | |
"type": "string", | |
"description": "Concept reference term" | |
} | |
} | |
}, | |
"required": { | |
"type": "boolean", | |
"description": "Whether the question is a required field or not" | |
}, | |
"answers": { | |
"type": "array", | |
"description": "Answers of the question", | |
"properties": { | |
"concept": { | |
"type": "string", | |
"description": "Concept UUID of the answer" | |
}, | |
"label": { | |
"type": "string", | |
"description": "Label of the answer" | |
} | |
}, | |
"required": [ | |
"concept", | |
"label" | |
] | |
}, | |
"calculate": { | |
"type": "object", | |
"description": "Calculate logic of the question", | |
"properties": { | |
"calculateExpression": { | |
"type": "string", | |
"description": "JavaScript expression that determines the value of the question from evaluating a calculation" | |
} | |
} | |
}, | |
"min": { | |
"type": "string", | |
"description": "Minimum value of the question" | |
}, | |
"max": { | |
"type": "string", | |
"description": "Maximum value of the question" | |
}, | |
"minLength": { | |
"type": "string", | |
"description": "Minimum length of the question" | |
}, | |
"maxLength": { | |
"type": "string", | |
"description": "Maximum length of the question" | |
} | |
}, | |
"required": [ | |
"type", | |
"rendering", | |
"answers" | |
] | |
}, | |
"validators": { | |
"type": "array", | |
"description": "Validators of the question", | |
"properties": { | |
"type": { | |
"type": "string", | |
"description": "Type of the validator" | |
}, | |
"message": { | |
"type": "string", | |
"description": "Message to be displayed when the validation fails" | |
}, | |
"allowFutureDates": { | |
"type": "string", | |
"description": "Whether future dates are allowed or not" | |
}, | |
"failsWhenExpression": { | |
"type": "string", | |
"description": "JavaScript expression that determines whether the validation fails or not" | |
}, | |
"warnsWhenExpression": { | |
"type": "string", | |
"description": "JavaScript expression that determines whether the a warning shoud be displayed next to the field or not" | |
} | |
} | |
}, | |
"hide": { | |
"type": "object", | |
"description": "Hide logic of the question", | |
"properties": { | |
"hideWhenExpression": { | |
"type": "string", | |
"description": "JavaScript expression that determines whether the question should be hidden or not" | |
} | |
} | |
}, | |
"historicalExpression": { | |
"type": "object", | |
"description": "Logic that encapsulates information from past encounters specific to a question" | |
} | |
} | |
} | |
}, | |
"required": [ | |
"label", | |
"questions" | |
] | |
} | |
}, | |
"required": [ | |
"label", | |
"sections" | |
] | |
}, | |
"processor": { | |
"type": "string", | |
"description": "Processor that mediates conversion of data between form data and the OpenMRS API" | |
}, | |
"published": { | |
"type": "boolean", | |
"description": "Whether the form is published or not" | |
}, | |
"retired": { | |
"type": "boolean", | |
"description": "Whether the form is retired or not" | |
}, | |
"version": { | |
"type": "string", | |
"description": "Version of the form" | |
}, | |
"availableIntents": { | |
"type": "string", | |
"description": "Intents that are available for the form" | |
}, | |
"inlineRendering": { | |
"type": "string", | |
"description": "Whether the form is rendered inline or not" | |
} | |
}, | |
"required": [ | |
"name", | |
"version", | |
"pages", | |
"encounterType" | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment