...
This page documents some initial ideas on the concept of 'reports' and other similar composite clinical information structures, including discharge summaries, and possible possibly care plans.
The key thing that distinguishes a 'report' as we understand it here is the notion of being able to 'quote', 'include' or 'copy' in existing content, and mix it with new content.
...
- include copies of structures, e.g. Entries
- include seriaisations serialisations of structures as text (e.g. HTML, XML, Markdown ...).
...
Logical model of serialised includable content could be something like:
Code Block | ||
---|---|---|
| ||
abstract class DOCUMENTVIEW_ITEMGROUP inherit CONTENT_ITEM value: DV_PARSABLE SECTION meta_data: CLUSTER[0..1] // serialised form of the content serialisation_method: DV_CODED_TEXT[0..1] // algorithmcuration-related usedend to serialiseabstract valueclass fromVIEW_ITEM structuredinherit sourceCONTENT_ITEM end class STATIC_CONTENTCITATION inherit DOCUMENTVIEW_ITEM source_ref: OBJECT_REF[1] // pointer to Composition, Entry source_type: ARCHETYPE_HRID[1] // RM type, archetype of target info end abstract class DYNAMIC_CONTENT inherit DOCUMENTVIEW_ITEM snapshot_time: Date_time[0..1] // time of generating result function is_dynamic: Boolean // True if no result snapshot included end class QUERY_RESULT inherit DYNAMIC_CONTENT query: String[1] // generating query end class API_CALL_RESULT inherit DYNAMIC_CONTENT api_call_name: String[1] // API call name api_call_arguments: String[*] // API call arguments end |
The above would allow mixing of document content and structured content. This arguably complicates things. A better model may be to make 'documents' a different kind of content consisting only of sections and serialised content.
Code Block | ||
---|---|---|
| ||
class DOCUMENT_COMPOSITION inherit COMPOSITION content: DOCUMENT_ITEM[*] // structured source elements serialised: DV_PARSABLE[0..1] // serialised form of the content serialisation_method: DV_CODED_TEXT[0..1] // algorithm used to serialise value from structured source serialisation_time: Date_time[1] // time of serialisation doc header info? end abstract class DOCUMENT_ITEM inherit LOCATABLE end class DOCUMENT_SECTION inherit DOCUMENT_ITEM // name attribute provides name of section end class DOCUMENT_STATIC_ITEM inherit DOCUMENT_ITEM source_ref: OBJECT_REF[1] // pointer to Composition, Entry source_type: ARCHETYPE_HRID[1] // RM type, archetype of target info end abstract class DOCUMENT_DYNAMIC_ITEM inherit DOCUMENT_ITEM function is_dynamic: Boolean // True if no result snapshot included end class DOCUMENT_QUERY_RESULT inherit DOCUMENT_DYNAMIC_ITEM query: String[1] // generating query end class DOCUMENT_API_CALL_RESULT inherit DOCUMENT_DYNAMIC_ITEM api_call_name: String[1] // API call name api_call_arguments: String[*] // API call arguments end |
...