Obsah

Laboratórne výsledky pre TIMELINE-u

vetva v GITe je duch/probios-labaky

Nastavenie cez SmartSearch

Základným prvkom je:

tieto je nutné položiť na plochu Dennej operatívy napr. viď obrázok

Môžeme vložiť Prvok - Medic Select Patient, tento nám zistí SmartSearch fnc na hľadanie pacientov

V nastaveniach prvku Medic Select Patient nastavíme následovné

Pridáme na plochu prvok typu Action a do jeho Nastavenia/Actions vložíme následovné

<set helperValueDataId="dicom_type" value="MEDIREX" />
<runFunction controlId="patientLabs_tml" function="setLaboratory" pass="arguments">
  <param value="MEDIREX" type="string" />
  <param value="FALSE" type="boolean" />
</runFunction>
<broadcastEvent eventId="e_show_patient_labs" />

Vložíme prvok typu Action nastavíme ho:

<runFunction controlId="labsViewer" function="setLabsId" pass="arguments">
  <param valueHelperDataId="_runControlArg0" />
</runFunction>
<set formDataId="form_labsId" valueHelperDataId="_runControlArg0" />
<updateControl controlId="txt_labsId" />
<layout controlId="transfer_btn" enabled="1" />

pre korektné správanie je nutné mať, ale vytvorený script v tabuľke st2_dailyop_library

{strip}
<!--<b>{$series_name|escape}</b><br>-->
 
<a href="asfunction:_DAILY_OPERATIONS_FORM.runControl,ctrl_load_labs|{$series_id}|{$data_type}">{$series_name}</a><br> <b>Počet položiek</b>-{$exam_count},
<b>Typ hodnoty</b>-{$group_type}{/strip}
{$exam_items}

Toto má na starosti to, že keď klikneme v TimeLine na nejaký záznam tak sa aktivuje prehliadač výsledkov a zobrazí nám už naformatované hodnoty.

Toto by nám malo zaistiť pri výbere pacienta nahratie jeho základných laboratórnych hodnôt.

Hľadenie vložením rodného čísla

Na plochu vložíme prvok typu Input Text

nastavíme ho:

Na plochu vložíme prvok typu Button nastavíme ho tak že do Actions vložíme nasledovný kód

<runFunction controlId="patientLabs_tml" function="searchLabResultsByBin" pass="arguments">
  <param valueFormDataId="testBinTxt" />
  <param value="MEDIREX" type="string" />
</runFunction>
<runFunction controlId="labsViewer" function="clearLabsViewer" />
<!-- toto je pre pripad ze mame InputText kde mame vlozene IDecko labakov -->
<set formDataId="labID" value="" />
<updateControl controlId="labID_txt" />
<set formDataId="txt_resultOutput" value="" />
<set valueHelperDataId="lab_ouput_txt" value="" />
<updateControl controlId="outputres_txt" />
<!-- toto je na to ze ked mame button na prenos vysledkov tak pri nacitani novych hodnot sa deaktivuje -->
<layout controlId="transfer_btn" enabled="0" />
<broadcastEvent eventId="e_search_byBin" />

Následne musíme pridať do našej TimeLine-y Update na udalosť a pridáme e_search_byBin

Prenos výsledku do InputBoxu z LabViewera

Na plochu pridáme prvok typu Button

do Actions pridáme

<runControl controlId="action_transfer_txt" />

Následne pridáme prvok typu Action

a do Actions

<request function="module:dicom/medirexLabs/dtrq_getFormatedOuput" disableForm="yes" resultHelperDataId="lab_ouput_txt" broadcastEventId="e_laboutput_get" _onErrorBroadcastEvent="e_info_status_reset">
  <!-- dava IDecko posledne kliknuteho vysetrenia -->
  <param key="labsId" valueHelperDataId="_runControlArg0" />
  <!-- udava o aky typ hodnot sa jedna text/values -->
  <param key="dataType" valueHelperDataId="_runControlArg1" />
 
</request>

Následne vložíme prvok typu Input text

Následne vložíme prvok typu Action

a do Actions vložíme

<set formDataId="txt_resultOutput" valueHelperDataId="lab_ouput_txt" />
<updateControl controlId="outputres_txt" />

Výstupné textové templaty

Spracovanie textových hodnôt je jednoduché prenesie sa text tak ako bol obdržaný z MEDIREXu

Avšak prenos tabuľkových hodnôt je trochu iný. Vzhľadom na to, že lekári majú tendenciu si robiť vlastné zobrazenia výstupov takýchto hodnôt, existuje templater na túto okolnosť.

V databáze omegy sa nachádza tabuľka dasta_exams_results_templates

Vzor takého templatu je napr.

{$exam_label}-/[{$exam_accepted}]
-------------------------------------------
{strip|'\r'}{foreach from=$data item=row key=r}
{$row.exam_idf} ({$row.exam_label})...{$row.exam_value}[{$row.exam_unit}] ({$row.exam_scale.min}...{$row.exam_scale.max}),{/foreach}

Prakticky povedané su to nazvy polí tabuľky dasta_exams_results_data Poukladané tak ako aby to sedelo dľa požiadaviek

Jednotlivé templaty sú spojené s combo_boxom v LabsViewery kde sa naťahujú pri jeho inicializácii súbor dicom_medirexlabs_loader_symbol.as

Template pre timelinu

<layout version="1" updated="2018-01-04">
	<contentTemplate type="DICOM_MEDIREXLABS" insert="append" clear="yes">
    {include file="dailyop:dicom/medirexlabs_content1"}
	</contentTemplate>
	<trigger group="rowSlotExtraContent">
    {$rowType}-ec:{$hasExtraHeaderContent}
	</trigger>
	<trigger group="rowBase">
    {$rowType}-d:{$$display}
	</trigger>
	<declare>
    * extra_header_content_mc
		Extra obsah, napr. z modulov.
 
	* base1_mc
		Základňa pre výpočet výšky elementu.
 
	* line1_mc
		Deliaca čiara.
 
 
	* date_mc
		Informácie o čase medického záznamu.
 
		//row/contentFunction/control[@controlId="date_mc"]/data[@id="base"]
			Základné vizuálne nastavenie.
 
		//row/contentFunction/control[@controlId="date_mc"][@date="date"]
			Bude vždy zobrazený dátum.
 
		//row/contentFunction/control[@controlId="date_mc"][@date="human"]
			Dnes a včera bude ako text.
 
		//row/contentFunction/control[@controlId="date_mc"][@time="hide"]
			Skrytie času.
 
 
	* title_mc
		Názov štúdie.
 
		//row/contentFunction/control[@controlId="date_mc"][@display="patient"]
			S nazvom studie sa zobrazi aj meno pacienta.
 
		//row/contentFunction/control[@controlId="title_mc"]/data[@id="base"]
			Základné vizuálne nastavenie.
 
		//row/contentFunction/control[@controlId="title_mc"]/data[@id="study"]
			Základné vizuálne nastavenie pre nazov studie.
 
		//row/contentFunction/control[@controlId="title_mc"]/data[@id="base"]
			Základné vizuálne nastavenie pre meno pacienta.
	</declare>
	<row>
		<trigger group="rowSlotExtraContent" id="dicom_medirexlabs-ec:0" />
		<contentFunction>
			<control controlId="extra_header_content_mc" />
		</contentFunction>
		<control controlId="extra_header_content_mc" left="6" top="20" visible="no" xscale="100" rightBase="__row.right" right="0" border="yes" initFirst="yes" />
		<control controlId="base1_mc" topBase="extra_header_content_mc.bottom" top="20" />
		<control controlId="line1_mc" topBase="extra_header_content_mc.bottom" top="0" />
	</row>
	<row>
		<trigger group="rowSlotExtraContent" id="dicom_medirexlabs-ec:1" />
		<control controlId="base1_mc" top="40" visible="no" />
		<control controlId="line1_mc" top="10" visible="no" />
		<control controlId="extra_header_content_mc" top="15" visible="yes" />
	</row>
	<row>
		<trigger group="rowBase" id="dicom_medirexlabs-d:header" />
		<_trigger group="rowBase" id="dicom_medirexlabs-d:full" />
		<_trigger group="rowBase" id="dicom_medirexlabs-d:teaser" />
 
		<contentFunction>
			<control controlId="line_mc" _runLater="yes" />
			<control controlId="date_mc" date="human" runLater="yes" />
			<control controlId="title_mc" _display="patient" runLater="yes" />
			<control controlId="patient_mc" runLater="yes" />
			<control controlId="init_handlers" runLater="yes" />
		</contentFunction>
 
		<control controlId="__row" height="20" elementHeight="20" rightBase="__panel.right" right="-5">
			<background>
				<key color="#ffffcc" position="0" />
				<key color="#ffffcc" position="53" />
			</background>
		</control>
		<control controlId="__row" heightBase="base1_mc.top" height="20" elementHeightBase="base1_mc.top" elementHeight="20" rightBase="__panel.right" right="-5" />
		<control controlId="report_mc" visible="no" top="20" />
 
		<control controlId="title_mc" left="6" top="0" width="200" xscale="100" visible="yes" _border="1" />
		<control controlId="date_mc" leftBase="title_mc.right" left="2" top="0" rightBase="__row.right" right="-4" visible="yes" _border="1" />
		<control controlId="patient_mc" _leftBase="title_mc.right" left="6" top="18"  width="200" xscale="85" visible="yes" border="0" />\
		<control controlId="line1_mc" visible="yes" left="5" top="0" xscale="100" topBase="patient_mc.bottom" color="#ffffff"/>
	</row>
 
	<!--<row>
		<trigger group="rowBase" id="dicom_medirexlabs-d:teaser" />
		<contentFunction>
			<control controlId="fill_content" type="teaser" />
		</contentFunction>
		<control controlId="__row" heightBase="base1_mc.top" height="0" elementHeightUnset="yes" />
		<control controlId="line1_mc" left="10" rightBase="__row.right" right="-5" visible="no" />
		<_control controlId="report_mc" left="8" topBase="base1_mc.top" width="200" top="1" bottomBase="__row.bottom" bottom="0" rightBase="__row.right" right="-1" visible="yes" />
	</row>-->
 
	<row>
		<trigger group="rowBase" id="dicom_medirexlabs-d:full" />
		<contentFunction>
			<control controlId="fill_content" type="full" height="20" rightBase="__panel.right" right="-10"  />
		</contentFunction>
 
		<control controlId="__row" height="150" elementHeight="150" rightBase="__panel.right" right="-5">
			<background>
				<key color="#ffffcc" position="0" />
				<key color="#ffffcc" position="53" />
			</background>
		</control>
 
 
		<control controlId="title_mc" left="6" top="0" width="200" xscale="100" visible="yes" _border="1" />
		<control controlId="date_mc" leftBase="title_mc.right" left="2" top="0" rightBase="__row.right" right="-4" visible="yes" _border="1" />
		<control controlId="patient_mc" _leftBase="title_mc.right" left="6" top="18"  width="200" xscale="85" visible="yes" border="0" />
 
		<control controlId="line1_mc" left="10" rightBase="__row.right" right="-10" visible="no" />
		<control controlId="report_mc" left="8" topBase="base1_mc.top" top="1" width="200" rightBase="__row.right" right="-8" visible="yes" selectable="yes" _border="1" initFirst="yes" />
 
		<control controlId="__row" heightBase="report_mc.bottom" height="4" elementHeightUnset="yes" />
	</row>
</layout>

Funkčné xml tabu Dennej operatívy na testovanie samozrejme nutný code-behind

<?xml version="1.0" encoding="UTF-8"?><controls><dicomTimeline patientDataId="patient_ms_id" eventHack1="1" controlId="patientLabs_tml" version="2" layer="5" top="10" left="340" headerStyle="99" height="460" width="320"><inputEvent mouse="click" actionType="open_close" /><updateOnEvent eventId="e_select_lab" /><updateOnEvent eventId="e_search_byBin" /><updateOnEvent eventId="e_show_patient_labs" /><broadcastOnSelect eventId="e_tl_selected" /><layoutSettings timestamp="1538045574059"><layout version="1" updated="2018-01-04"><contentTemplate type="DICOM_MEDIREXLABS" insert="append" clear="yes">{include file=&quot;dailyop:dicom/medirexlabs_content1&quot;}</contentTemplate><trigger group="rowSlotExtraContent">{$rowType}-ec:{$hasExtraHeaderContent}</trigger><trigger group="rowBase">{$rowType}-d:{$$display}</trigger><declare>* extra_header_content_mc
		Extra obsah, napr. z modulov.
 
	* base1_mc
		Základňa pre výpočet výšky elementu.
 
	* line1_mc
		Deliaca čiara.
 
 
	* date_mc
		Informácie o čase medického záznamu.
 
		//row/contentFunction/control[@controlId=&quot;date_mc&quot;]/data[@id=&quot;base&quot;]
			Základné vizuálne nastavenie.
 
		//row/contentFunction/control[@controlId=&quot;date_mc&quot;][@date=&quot;date&quot;]
			Bude vždy zobrazený dátum.
 
		//row/contentFunction/control[@controlId=&quot;date_mc&quot;][@date=&quot;human&quot;]
			Dnes a včera bude ako text.
 
		//row/contentFunction/control[@controlId=&quot;date_mc&quot;][@time=&quot;hide&quot;]
			Skrytie času.
 
 
	* title_mc
		Názov štúdie.
 
		//row/contentFunction/control[@controlId=&quot;date_mc&quot;][@display=&quot;patient&quot;]
			S nazvom studie sa zobrazi aj meno pacienta.
 
		//row/contentFunction/control[@controlId=&quot;title_mc&quot;]/data[@id=&quot;base&quot;]
			Základné vizuálne nastavenie.
 
		//row/contentFunction/control[@controlId=&quot;title_mc&quot;]/data[@id=&quot;study&quot;]
			Základné vizuálne nastavenie pre nazov studie.
 
		//row/contentFunction/control[@controlId=&quot;title_mc&quot;]/data[@id=&quot;base&quot;]
			Základné vizuálne nastavenie pre meno pacienta.</declare><row><trigger group="rowSlotExtraContent" id="dicom_medirexlabs-ec:0" /><contentFunction><control controlId="extra_header_content_mc" /></contentFunction><control controlId="extra_header_content_mc" left="6" top="20" visible="no" xscale="100" rightBase="__row.right" right="0" border="yes" initFirst="yes" /><control controlId="base1_mc" topBase="extra_header_content_mc.bottom" top="20" /><control controlId="line1_mc" topBase="extra_header_content_mc.bottom" top="0" /></row><row><trigger group="rowSlotExtraContent" id="dicom_medirexlabs-ec:1" /><control controlId="base1_mc" top="40" visible="no" /><control controlId="line1_mc" top="10" visible="no" /><control controlId="extra_header_content_mc" top="15" visible="yes" /></row><row><trigger group="rowBase" id="dicom_medirexlabs-d:header" /><_trigger group="rowBase" id="dicom_medirexlabs-d:full" /><_trigger group="rowBase" id="dicom_medirexlabs-d:teaser" /><contentFunction><control controlId="line_mc" _runLater="yes" /><control controlId="date_mc" date="human" runLater="yes" /><control controlId="title_mc" _display="patient" runLater="yes" /><control controlId="patient_mc" runLater="yes" /><control controlId="init_handlers" runLater="yes" /></contentFunction><control controlId="__row" height="20" elementHeight="20" rightBase="__panel.right" right="-5"><background><key color="#ffffcc" position="0" /><key color="#ffffcc" position="53" /></background></control><control controlId="__row" heightBase="base1_mc.top" height="20" elementHeightBase="base1_mc.top" elementHeight="20" rightBase="__panel.right" right="-5" /><control controlId="report_mc" visible="no" top="20" /><control controlId="title_mc" left="6" top="0" width="200" xscale="100" visible="yes" _border="1" /><control controlId="date_mc" leftBase="title_mc.right" left="2" top="0" rightBase="__row.right" right="-4" visible="yes" _border="1" /><control controlId="patient_mc" _leftBase="title_mc.right" left="6" top="18" width="200" xscale="85" visible="yes" border="0" />\<control controlId="line1_mc" visible="yes" left="5" top="0" xscale="100" topBase="patient_mc.bottom" color="#ffffff" /></row><row><trigger group="rowBase" id="dicom_medirexlabs-d:full" /><contentFunction><control controlId="fill_content" type="full" height="20" rightBase="__panel.right" right="-10" /></contentFunction><control controlId="__row" height="150" elementHeight="150" rightBase="__panel.right" right="-5"><background><key color="#ffffcc" position="0" /><key color="#ffffcc" position="53" /></background></control><control controlId="title_mc" left="6" top="0" width="200" xscale="100" visible="yes" _border="1" /><control controlId="date_mc" leftBase="title_mc.right" left="2" top="0" rightBase="__row.right" right="-4" visible="yes" _border="1" /><control controlId="patient_mc" _leftBase="title_mc.right" left="6" top="18" width="200" xscale="85" visible="yes" border="0" /><control controlId="line1_mc" left="10" rightBase="__row.right" right="-10" visible="no" /><control controlId="report_mc" left="8" topBase="base1_mc.top" top="1" width="200" rightBase="__row.right" right="-8" visible="yes" selectable="yes" _border="1" initFirst="yes" /><control controlId="__row" heightBase="report_mc.bottom" height="4" elementHeightUnset="yes" /></row></layout></layoutSettings></dicomTimeline><action dataId="labsId" controlId="ctrl_load_labs" version="3" layer="5" top="90" left="835" runOnUpdate="1" height="20" width="100"><broadcastEvent eventId="labs_update" /><actions><_analyze /><runFunction controlId="labsViewer" function="setLabsId" pass="arguments"><param valueHelperDataId="_runControlArg0" /></runFunction><set formDataId="form_labsId" valueHelperDataId="_runControlArg0" /><updateControl controlId="txt_labsId" /><layout controlId="transfer_btn" enabled="1" /></actions></action><dicom_medirexlabs version="2" controlId="labsViewer" layer="5" top="15" left="20" dataId="dicom_medirexlabs_1528261294" shadow="1" height="425" width="310"><dicom_medirexlabs>New dicom_medirexlabs</dicom_medirexlabs><updateOnEvent eventId="labs_update" /></dicom_medirexlabs><medicSelectPatient clearButton="1" version="2" controlId="patientSelect" layer="5" top="10" left="690" dataId="patient_ms_id" height="20" width="220"><broadcastEvent eventId="e_patient_selected" /></medicSelectPatient><action version="3" controlId="action_after_patient" layer="5" top="60" left="695" runOnUpdate="1" height="20" width="100"><updateOnEvent eventId="e_patient_selected" /><actions><_analyze /><set helperValueDataId="dicom_type" value="MEDIREX" /><runFunction controlId="patientLabs_tml" function="setLaboratory" pass="arguments"><param value="MEDIREX" type="string" /><param value="FALSE" type="boolean" /></runFunction><broadcastEvent eventId="e_show_patient_labs" /></actions></action><button broadcastOnClick="1" version="6" layer="5" top="60" left="825" height="20" width="100"><label>MEDIREX</label><broadcastEvent eventId="e_select_lab" /><actions><runFunction controlId="patientLabs_tml" function="setLaboratory" pass="arguments"><param value="MEDIREX" type="string" /><param value="false" type="boolean" /></runFunction></actions></button><button version="6" layer="5" top="155" left="835" height="20" width="100"><label>Copy to clipboard</label><hint>Uloží dáta z labákov do schránky....</hint><actions><_analyze /><runFunction controlId="labsViewer" function="copyToClipboard"><_param valueHelperDataId="_runControlArg0" /></runFunction></actions></button><inputText version="6" controlId="txt_testBin" layer="5" top="120" left="690" dataId="testBinTxt" height="18" width="120"><broadcastEvent eventId="textBinTest" /></inputText><button version="6" layer="5" top="120" left="835" height="20" width="100"><label>Labaky MEDIREX</label><actions><_analyze /><runFunction controlId="patientLabs_tml" function="searchLabResultsByBin" pass="arguments"><param valueFormDataId="testBinTxt" /><param value="MEDIREX" type="string" /></runFunction><runFunction controlId="labsViewer" function="clearLabsViewer" /><set formDataId="labID" value="" /><updateControl controlId="labID_txt" /><set formDataId="txt_resultOutput" value="" /><set valueHelperDataId="lab_ouput_txt" value="" /><updateControl controlId="outputres_txt" /><layout controlId="transfer_btn" enabled="0" /><broadcastEvent eventId="e_search_byBin" /></actions></button><label selectable="1" version="5" showAs="label" layer="5" top="150" left="695" shadow="1" height="75" width="115">0001201684
5954177196
7651038164
7352209370</label><button controlId="transfer_btn" version="6" layer="5" top="185" left="835" height="30" width="110"><label>Transfer LAB output</label><actions><runControl controlId="action_transfer_txt" /></actions></button><action controlId="action_transfer_txt" version="3" layer="5" top="225" left="835" runOnUpdate="1" height="35" width="115"><actions><request function="module:dicom/medirexLabs/dtrq_getFormatedOuput" disableForm="yes" resultHelperDataId="lab_ouput_txt" broadcastEventId="e_laboutput_get" _onErrorBroadcastEvent="e_info_status_reset"><param key="labsId" valueHelperDataId="_runControlArg0" /><param key="dataType" valueHelperDataId="_runControlArg1" /><_param key="credentialCode" valueHelperDataPath="resource_role.credential_code" /><_param key="hciDataCode" valueHelperDataPath="resource_role.hci_data_code" /><_param key="hceDataCode" valueHelperDataPath="resource_role.hce_data_code" /><_param key="projectMsId" valueHelperDataId="active_project_ms_id" /></request></actions></action><inputText controlId="outputres_txt" appearance="outline" mode="multiline_wrap" version="6" layer="5" top="265" left="670" dataId="txt_resultOutput" height="216" width="305"><updateOnEvent eventId="e_laboutput_get" /></inputText><action controlId="action_transfer_textoutput" version="3" layer="5" top="235" left="695" runOnUpdate="1" height="20" width="100"><updateOnEvent eventId="e_laboutput_get" /><actions><_analyze /><set formDataId="txt_resultOutput" valueHelperDataId="lab_ouput_txt" /><updateControl controlId="outputres_txt" /></actions></action><inputText version="6" controlId="txt_labsId" layer="5" top="95" left="695" dataId="form_labsId" height="18" width="120" /></controls>