Issue Template Syntax

From IotaMedWiki
Jump to: navigation, search

The issue template is based on an HTML5 document. When it is used to instantiate an issue worksheet, that worksheet must also be HTML5 based, or be able to export and import to HTML5, since it must be exchangeable with other EHR systems.

Data link syntax

The data linking elements in the document should have the following parts:

  • Data type definition
  • Observation sequence identifier
  • Observation value

The data type definition

  1. The URI for the used table, optional
  2. The checksum on the used table, canonical
  3. The digital signature on the checksum, optional
  4. The code ID for the row in the table

Observation sequence identifier

To locate an individual observation, one may need to number it, label it with a datetime stamp, or identify it in some other way.

Observation value

The actual value may be a simple type such as string or number, but may be a video or image. If it is a media element, it may even be interactive.

An evolving example

This is a snippet of the XML I'm using during the development of iotaPad.

<?xml version="1.0" encoding="UTF-8" ?>

<template title="Rehabilitation" lang="SE" templateUuid="DF54A996-1222-4FBD-8399-44BEEFF16BD2" toICD10="D" fromICD10="E"
          type="issue">
    <title>
        <prompt lang="sv">Rehabilitering</prompt>
        <prompt lang="en">Rehabilitation</prompt>
    </title>

    <?dictionary parentUuid='D4F2EC50-A4B7-40DB-B909-69C2D1C1E0A9' prefix='rr'?>

    <block title="Lokomat Rehabilitaton" templateUuid="EB642EE2-B623-4827-A3D7-78426EB8F000" type="initial"
           repeats="no">
        <title>
            <prompt lang="sv">Robotrehabilitering</prompt>
            <prompt lang="en">Robotic rehabilitation</prompt>
        </title>

        <description type="template">Mall för journalföring vid ett robotrehabiliteringstillfälle.</description>

        <item name="rr:History"/>
        <item name="rr:PainLevel"/>
        <item name="rr:Spasticity"/>
        <item name="rr:Title_Lokomat"/>
        <item name="rr:Purpose"/>
        <item name="rr:Title_Readings"/>
        <item name="rr:ManeuveringForceLeftLeg"/>
        <item name="rr:ManeuveringForceRightLeg"/>
        <item name="rr:TimeWalking"/>
        <item name="rr:Distance"/>
        <item name="rr:BodyWeightSupport"/>
        <item name="rr:Deviation"/>
        <item name="rr:OtherComments"/>
    </block>

    <block title="Rehabilitation Assessment" templateUuid="E1BEF2E2-1653-44EC-92B4-F9C49FCEF045" type="any"
           repeats="yes">
        <title>
            <prompt lang="sv">Rehabilitering, utredning</prompt>
            <prompt lang="en">Rehabilitation, assessment</prompt>
        </title>

        <item name="rr:Weight"/>
        <item name="rr:Height"/>
        <item name="rr:ASIA"/>
        <item name="rr:PainLevel"/>
        <item name="rr:SkinCondition"/>
        <item name="rr:BloodPressure"/>
        <item name="rr:JointMobility"/>
        <item name="rr:MuscleStructure"/>
        <item name="rr:OrthostaticTest"/>
    </block>


    <block title="Patient Form" templateUuid="E8B79D14-B496-457A-9953-AC249B16C60F" type="patient" repeats="yes">

        <description type="template">Om du aktiverar denna mall kommer den att presenteras till patienten via
            applikationen "minIota" som patienten kan köra på sin egen iPad. Befintliga data ur journalen kan användas i
            mallen automatiskt, medan patienten själv kan fylla i data som sedan kan importeras i journalen vid nästa
            kontakt.
        </description>
        
        <title>
            <prompt lang='sv'>Patientformulär</prompt>
            <prompt lang='en'>Patient Form</prompt>
        </title>

        <item name="rr:PatFormIntro"></item>

        <item name="rr:PainLevel"/>
        <item name="rr:SpasticityP"/>
        <item name="rr:PhysicalActivity"/>
    </block>

    <block title="Patient Form (view)" templateUuid="31E49B01-917E-494E-A022-5E7392B41854" type="any" repeats="yes">

        <description type="template">Om du aktiverar denna mall kommer den att presenteras till patienten via
            applikationen "minIota" som patienten kan köra på sin egen iPad. Befintliga data ur journalen kan användas i
            mallen automatiskt, medan patienten själv kan fylla i data som sedan kan importeras i journalen vid nästa
            kontakt.
        </description>

        <title>
            <prompt lang='sv'>Patientformulär (visualiserad)</prompt>
            <prompt lang='en'>Patient Form (visualized)</prompt>
        </title>

        <item name="rr:PatFormIntro"></item>

        <item name="rr:PainLevel"/>
        <item name="rr:SpasticityP"/>
        <item name="rr:PhysicalActivity"/>
    </block>
</template>

Dictionary

The template above refers to a dictionary for the actual data definitions.

<?xml version="1.0" encoding="UTF-8"?>
<dictionary dictionaryUuid="D4F2EC50-A4B7-40DB-B909-69C2D1C1E0A9">

    <!--rehabiliterings block-->

    <obsdef info="file:lokomat" type="title" name="Title_Lokomat">
        <prompt lang='en'>Lokomat</prompt>
        <prompt lang='sv'>Lokomat</prompt>
    </obsdef>

    <obsdef type="string" name="History">
        <prompt lang="en">History</prompt>
        <prompt lang="sv">Anamnes</prompt>
    </obsdef>

    <obsdef info="file:painlevel" type="select" name="PainLevel" dimension="NRS">
        <prompt lang="en">Pain level</prompt>
        <prompt lang="sv">Smärta</prompt>
        <select value="0">
            <prompt lang="en">0</prompt>
        </select>
        <select value="1">
            <prompt lang="en">1</prompt>
        </select>
        <select value="2">
            <prompt lang="en">2</prompt>
        </select>
        <select value="3">
            <prompt lang="en">3</prompt>
        </select>
        <select value="4">
            <prompt lang="en">4</prompt>
        </select>
        <select value="5">
            <prompt lang="en">5</prompt>
        </select>
        <select value="6">
            <prompt lang="en">6</prompt>
        </select>
        <select value="7">
            <prompt lang="en">7</prompt>
        </select>
        <select value="8">
            <prompt lang="en">8</prompt>
        </select>
        <select value="9">
            <prompt lang="en">9</prompt>
        </select>
        <select value="10">
            <prompt lang="en">10</prompt>
        </select>
    </obsdef>

    <obsdef info="file:ashworth" type="string" name="Spasticity" dimension= "Ashworth scale">
        <prompt lang="en">Spasticity</prompt>
        <prompt lang="sv">Spasticitet</prompt>
    </obsdef>

    <obsdef type="string" name="Purpose">
        <prompt lang="en">Purpose/Goal</prompt>
        <prompt lang="sv">Syfte/Mål</prompt>
    </obsdef>

    <obsdef type="title" name="Title_Readings">
        <prompt lang="en">Readings</prompt>
        <prompt lang="en">Mätvärden</prompt>
    </obsdef>

    <obsdef type="string" name="ManeuveringForceLeftLeg" dimension="%">
        <prompt lang="en">Maneuvering force left leg</prompt>
        <prompt lang="sv">Manövreringskraft vänsterben</prompt>
    </obsdef>

    <obsdef type="string" name="ManeuveringForceRightLeg" dimension="%">
        <prompt lang="en">Maneuvering force right leg</prompt>
        <prompt lang="sv">Manövreringskraft högerben</prompt>
    </obsdef>

    <obsdef type="numeric" name="TimeWalking" dimension="min">
        <prompt lang="en">Time spent walking</prompt>
        <prompt lang="sv">Gångtid</prompt>
    </obsdef>

    <obsdef type="numeric" name="Distance" dimension="m">
        <prompt lang="en">Distance</prompt>
        <prompt lang="sv">Distans</prompt>
    </obsdef>

    <obsdef type="numeric" name="BodyWeightSupport" dimension="kg">
        <prompt lang="en">Bodyweight support</prompt>
        <prompt lang="sv">Avlastning</prompt>
    </obsdef>

    <obsdef type="string" name="Deviation">
        <prompt lang="en">Deviation</prompt>
        <prompt lang="sv">Avvikelse</prompt>
    </obsdef>

    <obsdef type="string" name="OtherComments">
        <prompt lang="en">Other comments</prompt>
        <prompt lang="sv">Övriga kommentarer</prompt>
    </obsdef>

    <obsdef type="numeric" name="Weight" dimension ="kg">
        <prompt lang="en">Weight</prompt>
        <prompt lang="sv">Vikt</prompt>
    </obsdef>

    <obsdef type="numeric" name="Height" dimension ="m">
        <prompt lang="en">Height (cm)</prompt>
        <prompt lang="sv">Längd (cm)</prompt>
    </obsdef>

    <obsdef info="file:asia" type="string" name="ASIA">
        <prompt lang="en">ASIA ISNCSCI</prompt>
        <prompt lang="sv">ASIA ISNCSCI </prompt>
    </obsdef>

    <obsdef type="string" name="SkinCondition">
        <prompt lang="en">Skin condition</prompt>
        <prompt lang="sv">Hudstatus</prompt>
    </obsdef>

    <obsdef type="numeric" name="BloodPressure">
        <prompt lang="en">Blood pressure</prompt>
        <prompt lang="sv">Blodtryck</prompt>
    </obsdef>

    <obsdef type="string" name="JointMobility">
        <prompt lang="en">Joint mobility</prompt>
        <prompt lang="sv">Ledrörlighet</prompt>
    </obsdef>

    <obsdef type="string" name="MuscleStructure">
        <prompt lang="en">Muscle structure</prompt>
        <prompt lang="sv">Muskelstruktur</prompt>
    </obsdef>

    <obsdef type="string" name="OrthostaticTest">
        <prompt lang="en">Orthostatic test</prompt>
        <prompt lang="sv">Ortostatiskt test</prompt>
    </obsdef>

    <obsdef type="string" name="PhysicalActivity">
        <prompt lang="en">Physical activity</prompt>
        <prompt lang="sv">Fysisk aktivitet</prompt>
    </obsdef>
    
     <obsdef type="string" name="SpasticityP">
        <prompt lang="en">Spasticity</prompt>
        <prompt lang="sv">Spasticitet</prompt>
    </obsdef>

    <obsdef name='PatFormIntro' type='title'>
        <prompt lang='sv'>Här kan du själv fylla i hur du skattar din smärta, spasticitet och träning.</prompt>
        <prompt lang='en'>Please enter your own estimation of pain level, spasticity, and training.</prompt>
    </obsdef>
</dictionary>