Skjema for multimedia

Skjermbilde

Under er et skjermbilde av hvordan et skjema kan se ut.

mm form

AQL

Eksempel på AQL spørringer

---
/*
* Uttrekk av bilder for dhack2024
* @since 02.12.2024
* @author mho@dips.no
*/
SELECT
 c/context/start_time/value as "ctx_start_time",
   cl/items[at0001]/value/value as "organ",
   cl/items[at0012]/value/value as "anatomical_location",
   cl/items[at0003]/value/value as "clinical_description",
   cl/items[at0006]/value as "interpretation",
   cl/items[at0007]/value/value as "comment",
   cl2/items[at0001]/value as "mm_item",
   cl2/items[at0002]/value/value as "mm_name",
   cl2/items[at0005]/value/value as "mm_description",
   cl2/items[at0004]/value/value as "mm_created_date",
   cl2/items[at0007]/value/value as "mm_comment"
FROM
   COMPOSITION c[openEHR-EHR-COMPOSITION.encounter.v1]
      CONTAINS OBSERVATION o[openEHR-EHR-OBSERVATION.exam.v1]
         CONTAINS CLUSTER cl[openEHR-EHR-CLUSTER.exam.v2]
            CONTAINS CLUSTER cl2[openEHR-EHR-CLUSTER.media_file.v1]
--Eksempel på where betingelser for å filtrere ut sårtype, vil komme som SNOMED-CT kode
--where  cl/items[at0006]/value/defining_code/code_string ='Trykksår'
order by c/context/start_time/value desc,    cl2/items[at0004]/value/value desc
---

openEHR og Multimedia

Støtte for multimedia finner vi i referansemodellen for openEHR. Det er en egen datatype kalt DV_MULTIMEDIA. Se mer her: https://specifications.openehr.org/releases/RM/development/data_types.html#_dv_multimedia_class

Definisjonen av datatypen er kopiert og lagt inn under som en referanse.

---
{
  "_type": "DV_MULTIMEDIA",
  "uri": {
    "value": "https://image-repository.oslo-east.smud.dev.dips.no/api/image/e4f2708d-ef8e-4ddc-bffd-9e8b8643ebee"
  },
  "media_type": {
    "terminology_id": {
      "value": "openehr"
    },
    "code_string": "image/png"
  },
  "size": 354692,
  "thumbnail": {
    "media_type": {
      "terminology_id": {
        "value": "openehr"
      },
      "code_string": "image/png"
    },
    "size": 51883
  }
}
---

DV_MULTIMEDIA Class

Som vi ser av definisjonen under er det to representasjoner av data i denne klassen. På første nivå finner vi det faktiske bildet eller multimedia objektet. Dette kan være svært store objekter med video eller høyoppløselige bilder. Slike store objekter skal selvsagt ikke lagres sammen med data. For disse bør det brukes eget multimedia arkiv. Av og til kan primærdata være små nok til å lagre sammen med dokumentet i pasientens journal. DV_MULTIMEDIA er tilpasset begge disse behovene slik at:

  • Bruk uri feltet for å representere objektet i en ekstern tjeneste.

  • Bruk data attributtet for å lagre objektet sammen med dokumentet.

    NOTE

    For d:hack 2024 er målet å få etablert en multimediatjeneste i Kubernetes/SMUD. Da vil det foretrukne være å bruk uri attributtet.

Class

DV_MULTIMEDIA

Description

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.

Inherit

DV_ENCAPSULATED

Attributes

Signature

Meaning

0..1

alternate_text: String

Text to display in lieu of multimedia display/replay.

0..1

uri: DV_URI

URI reference to electronic information stored outside the record as a file, database entry etc, if supplied as a reference.

0..1

data: List<Byte>

The actual data found at uri, if supplied inline.

1..1

media_type: CODE_PHRASE

Data media type coded from openEHR code set media types (interface for the IANA MIME types code set).

0..1

compression_algorithm: CODE_PHRASE

Compression type, a coded value from the openEHR Integrity check code set. Void means no compression.

0..1

integrity_check: List<Byte>

Binary cryptographic integrity checksum.

0..1

integrity_check_algorithm: CODE_PHRASE

Type of integrity check, a coded value from the openEHR Integrity check code set.

0..1

thumbnail: DV_MULTIMEDIA

The thumbnail for this item, if one exists; mainly for graphics formats.

1..1

size: Integer

Original size in bytes of unencoded encapsulated data. I.e. encodings such as base64, hexadecimal etc do not change the value of this attribute.

Functions

Signature

Meaning

1..1

is_external (): Boolean

Computed from the value of the uri attribute: True if the data is stored externally to the record, as indicated by uri. A copy may also be stored internally, in which case is_expanded is also true.

1..1

is_inline (): Boolean

Computed from the value of the data attribute. True if the data is stored in expanded form, ie within the EHR itself.

1..1

is_compressed (): Boolean

Computed from the value of the compression_algorithm attribute: True if the data is stored in compressed form.

1..1

has_integrity_check (): Boolean

Computed from the value of the integrity_check_algorithm attribute: True if an integrity check has been computed.

Invariants

Not_empty: is_inline or is_external

Media_type_valid: media_type /= Void and then code_set (Code_set_id_media_types).has_code (media_type)

Compression_algorithm_validity: compression_algorithm /= Void implies code_set (Code_set_id_compression_algorithms).has_code (compression_algorithm)

Integrity_check_validity: integrity_check /= Void implies integrity_check_algorithm /= Void

Integrity_check_algorithm_validity: integrity_check_algorithm /= Void implies code_set (Code_set_id_integrity_check_algorithms).has_code (integrity_check_algorithm)

Size_valid: size >= 0