Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:omega:labview [2018/09/27 14:42] Boris Duchaj |
dev:omega:labview [2018/09/28 11:34] (aktuálne) Boris Duchaj |
||
---|---|---|---|
Riadok 1: | Riadok 1: | ||
====== Laboratórne výsledky pre TIMELINE-u ====== | ====== Laboratórne výsledky pre TIMELINE-u ====== | ||
+ | |||
+ | **vetva v GITe je duch/probios-labaky** | ||
+ | |||
+ | ===== Nastavenie cez SmartSearch ===== | ||
Základným prvkom je: | Základným prvkom je: | ||
Riadok 81: | Riadok 85: | ||
</runFunction> | </runFunction> | ||
<runFunction controlId="labsViewer" function="clearLabsViewer" /> | <runFunction controlId="labsViewer" function="clearLabsViewer" /> | ||
+ | <!-- toto je pre pripad ze mame InputText kde mame vlozene IDecko labakov --> | ||
<set formDataId="labID" value="" /> | <set formDataId="labID" value="" /> | ||
<updateControl controlId="labID_txt" /> | <updateControl controlId="labID_txt" /> | ||
Riadok 86: | Riadok 91: | ||
<set valueHelperDataId="lab_ouput_txt" value="" /> | <set valueHelperDataId="lab_ouput_txt" value="" /> | ||
<updateControl controlId="outputres_txt" /> | <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" /> | <layout controlId="transfer_btn" enabled="0" /> | ||
<broadcastEvent eventId="e_search_byBin" /> | <broadcastEvent eventId="e_search_byBin" /> | ||
Riadok 92: | Riadok 98: | ||
Následne musíme pridať do našej TimeLine-y Update na udalosť a pridáme** e_search_byBin** | Následne musíme pridať do našej TimeLine-y Update na udalosť a pridáme** e_search_byBin** | ||
- | Template pre timelinu | + | ===== Prenos výsledku do InputBoxu z LabViewera ===== |
+ | |||
+ | Na plochu pridáme prvok typu **Button** | ||
+ | |||
+ | do Actions pridáme | ||
+ | <code xml> | ||
+ | <runControl controlId="action_transfer_txt" /> | ||
+ | </code> | ||
+ | |||
+ | Následne pridáme prvok typu **Action** | ||
+ | |||
+ | * vložíme do Control ID //action_transfer_txt// | ||
+ | a do Actions | ||
+ | <code xml> | ||
+ | <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> | ||
+ | </code> | ||
+ | |||
+ | Následne vložíme prvok typu **Input text** | ||
+ | * Control ID = //outputres_txt// | ||
+ | * Data ID = //txt_resultOutput// | ||
+ | * update na udalosť = //e_laboutput_get// | ||
+ | |||
+ | Následne vložíme prvok typu **Action** | ||
+ | * Control ID = //action_transfer_textoutput// | ||
+ | * Update na udalosť = //e_laboutput_get// | ||
+ | |||
+ | a do Actions vložíme | ||
+ | <code xml> | ||
+ | <set formDataId="txt_resultOutput" valueHelperDataId="lab_ouput_txt" /> | ||
+ | <updateControl controlId="outputres_txt" /> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== 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// | ||
+ | |||
+ | * template_idf = je idefko daného templatu, mal by obsahovať len písmená, čísla a _ inak nič | ||
+ | * template_label = je nejaký nadpis v slovenčine t.j. napr. Základný výstup a pod | ||
+ | * account_id = sem nutné napísať učet uživateľa, ktorému tento template patrí | ||
+ | * template_data = toto je už formátovanie ako to bude vyzerať, code behind je v //medirexLab.class.php// metóda //getFormatedOutput// | ||
+ | |||
+ | Vzor takého templatu je napr. | ||
+ | <code php> | ||
+ | {$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} | ||
+ | </code> | ||
+ | |||
+ | 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 ===== | ||
<code xml> | <code xml> | ||
<layout version="1" updated="2018-01-04"> | <layout version="1" updated="2018-01-04"> | ||
Riadok 223: | Riadok 293: | ||
</row> | </row> | ||
</layout> | </layout> | ||
+ | </code> | ||
+ | |||
+ | ===== Funkčné xml tabu Dennej operatívy na testovanie samozrejme nutný code-behind ===== | ||
+ | |||
+ | |||
+ | |||
+ | <code xml> | ||
+ | <?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="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: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> | ||
</code> | </code> |